Replace spaces with tabs and remove trailing whitespaces
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2015-11-27  Martin Liska  <mliska@suse.cz>
2
3         * tree-ssa-uninit.c: Fix whitespaces in the source file.
4         The change is just automatical.
5
6 2015-11-27  Martin Liska  <mliska@suse.cz>
7
8         * tree-chkp.c (chkp_make_static_bounds): Release buffer
9         used for string.
10
11 2015-11-27  Martin Liska  <mliska@suse.cz>
12
13         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
14         Do not release memory for comp_alias_ddrs.
15         * tree-vect-loop.c (destroy_loop_vec_info): Release
16         the memory for all loop_vec_info.
17
18 2015-11-27  Martin Liska  <mliska@suse.cz>
19
20         * ipa-devirt.c (ipa_devirt): Use auto_vec instead
21         of a local-scope vec.
22         (struct final_warning_record): Use auto_vec instead
23         of vec.
24
25 2015-11-27  Richard Biener  <rguenther@suse.de>
26
27         PR tree-optimization/68553
28         * tree-vect-slp.c (vect_get_mask_element): Remove.
29         (vect_transform_slp_perm_load): Implement in a simpler way.
30
31 2015-11-26  Alexandre Oliva <aoliva@redhat.com>
32
33         PR rtl-optimization/67753
34         PR rtl-optimization/64164
35         * function.c (assign_parm_setup_block): Right-shift
36         upward-padded big-endian args when bypassing the stack slot.
37
38 2015-11-26  Maciej W. Rozycki  <macro@imgtec.com>
39
40         * doc/invoke.texi (Option Summary) <MIPS Options>: Reorder
41         `-mcompact-branches='.
42         (MIPS Options): Likewise.
43
44 2015-11-26  Jakub Jelinek  <jakub@redhat.com>
45
46         * Makefile.in (build/genmatch.o): Depend on internal-fn.def.
47
48 2015-11-26  David Edelsohn  <dje.gcc@gmail.com>
49
50         * doc/install.texi (Prerequisites): Increase ISL requirement to
51         0.14 or 0.15.
52
53 2015-11-26  Matthew Wahab  <matthew.wahab@arm.com>
54
55         * config/aarch64/arm_neon.h
56         (vqrdmlah_laneq_s16, vqrdmlah_laneq_s32): New.
57         (vqrdmlahq_laneq_s16, vqrdmlahq_laneq_s32): New.
58         (vqrdmlsh_lane_s16, vqrdmlsh_lane_s32): New.
59         (vqrdmlshq_laneq_s16, vqrdmlshq_laneq_s32): New.
60         (vqrdmlah_lane_s16, vqrdmlah_lane_s32): New.
61         (vqrdmlahq_lane_s16, vqrdmlahq_lane_s32): New.
62         (vqrdmlahh_s16, vqrdmlahh_lane_s16, vqrdmlahh_laneq_s16): New.
63         (vqrdmlahs_s32, vqrdmlahs_lane_s32, vqrdmlahs_laneq_s32): New.
64         (vqrdmlsh_lane_s16, vqrdmlsh_lane_s32): New.
65         (vqrdmlshq_lane_s16, vqrdmlshq_lane_s32): New.
66         (vqrdmlshh_s16, vqrdmlshh_lane_s16, vqrdmlshh_laneq_s16): New.
67         (vqrdmlshs_s32, vqrdmlshs_lane_s32, vqrdmlshs_laneq_s32): New.
68
69 2015-11-26  Matthew Wahab  <matthew.wahab@arm.com>
70
71         * config/aarch64/arm_neon.h (vqrdmlah_s16, vqrdmlah_s32): New.
72         (vqrdmlahq_s16, vqrdmlahq_s32): New.
73         (vqrdmlsh_s16, vqrdmlsh_s32): New.
74         (vqrdmlshq_s16, vqrdmlshq_s32): New.
75
76 2015-11-26  Matthew Wahab  <matthew.wahab@arm.com>
77
78         * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add
79         ARM_FEATURE_QRDMX.
80
81 2015-11-26  Pierre-Marie de Rodat  <derodat@adacore.com>
82
83         PR debug/53927
84         * tree-nested.c (finalize_nesting_tree_1): Append a field to
85         hold the frame base address.
86         * dwarf2out.c (gen_subprogram_die): Generate for
87         DW_AT_static_link a location description that computes the value
88         of this field.
89
90 2015-11-26  Tom de Vries  <tom@codesourcery.com>
91
92         revert:
93         2015-11-25  Tom de Vries  <tom@codesourcery.com>
94
95         * cfgloop.c (find_single_latch): New function, factored out of ...
96         (flow_loops_find): ... here.
97         (verify_loop_structure): Improve verification of loop->latch.
98         * cfgloop.h (find_single_latch): Declare.
99         * omp-low.c (expand_omp_for_generic): Initialize latch of orig_loop.
100
101 2015-11-26  Matthew Wahab  <matthew.wahab@arm.com>
102
103         * config/aarch64/aarch64-simd-builtins.def:
104         Add missing changes from r230962.
105
106 2015-11-26  Nathan Sidwell  <nathan@acm.org>
107
108         * config/nvptx/nvptx.c (write_func_decl_from_insn): Replace callee
109         arg with name.  Don't deal with split regs.  Tweak formatting.
110         (nvptx_expand_call): Adjust write_func_decl_from_insn call.
111         (nvptx_output_call_insn): Don't deal with split regs here.
112
113 2015-11-26  Matthew Wahab  <matthew.wahab@arm.com>
114
115         * config/aarch64/aarch64-simd-builtins.def
116         (sqrdmlah, sqrdmlsh): New.
117         (sqrdmlah_lane, sqrdmlsh_lane): New.
118         (sqrdmlah_laneq, sqrdmlsh_laneq): New.
119
120 2015-11-26  Matthew Wahab  <matthew.wahab@arm.com>
121
122         * config/aarch64/aarch64-simd.md
123         (aarch64_sqmovun<mode>): Fix some white-space.
124         (aarch64_<sur>qmovun<mode>): Likewise.
125         (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h<mode>): New.
126         (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): New.
127         (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): New.
128         * config/aarch64/iterators.md (UNSPEC_SQRDMLAH): New.
129         (UNSPEC_SQRDMLSH): New.
130         (SQRDMLH_AS): New.
131         (rdma_as): New.
132
133 2015-11-26  Richard Biener  <rguenther@suse.de>
134
135         PR tree-optimization/66721
136         * tree-vect-loop.c (vect_analyze_loop_2): Compute scalar
137         iteration cost earlier.  Re-do analysis without SLP when
138         vectorization using SLP fails and without has a chance to succeed.
139
140 2015-11-26  Richard Biener  <rguenther@suse.de>
141
142         * genmatch.c (dt_simplify::gen_1): For generic wrap all
143         multi-result-use captures in a SAVE_EXPR.
144
145 2015-11-26  Matthew Wahab  <matthew.wahab@arm.com>
146
147         * config/aarch64/aarch64.h (AARCH64_ISA_RDMA): New.
148         (TARGET_SIMD_RDMA): New.
149
150 2015-11-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
151
152         * combine.c (subst): Do not return clobber of zero in widening mult
153         case.  Just return x unchanged if it is a no-op substitution.
154
155 2015-11-26  Vladimir Makarov  <vmakarov@redhat.com>
156
157         PR target/68416
158         * config/i386/i386.h (enum reg_class): Add
159         bounds registers to ALL_REGS.
160
161 2015-11-26  Jakub Jelinek  <jakub@redhat.com>
162
163         PR tree-optimization/68128
164         * tree.h (OMP_CLAUSE_SHARED_READONLY): Define.
165         * gimplify.c: Include gimple-walk.h.
166         (enum gimplify_omp_var_data): Add GOVD_WRITTEN.
167         (omp_notice_variable): Set flags to n->value if n already
168         exists in target region, but we need to jump to do_outer.
169         (omp_shared_to_firstprivate_optimizable_decl_p,
170         omp_mark_stores, omp_find_stores_op, omp_find_stores_stmt): New
171         functions.
172         (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_SHARED_READONLY
173         on OMP_CLAUSE_SHARED if it is a scalar non-addressable that is
174         not modified in the body.  Call omp_mark_stores for outer
175         contexts on OMP_CLAUSE_SHARED clauses if they could be written
176         in the body or on OMP_CLAUSE_LASTPRIVATE.
177         (gimplify_adjust_omp_clauses): Add body argument, call
178         omp_find_stores_{stmt,op} on the body through walk_gimple_seq.
179         Set OMP_CLAUSE_SHARED_READONLY
180         on OMP_CLAUSE_SHARED if it is a scalar non-addressable that is
181         not modified in the body.  Call omp_mark_stores for outer
182         contexts on OMP_CLAUSE_SHARED clauses if they could be written
183         in the body or on OMP_CLAUSE_LASTPRIVATE or on OMP_CLAUSE_LINEAR
184         without OMP_CLAUSE_LINEAR_NO_COPYOUT or on OMP_CLAUSE_REDUCTION.
185         (gimplify_oacc_cache, gimplify_omp_parallel, gimplify_omp_task,
186         gimplify_omp_for, gimplify_omp_workshare, gimplify_omp_target_update,
187         gimplify_expr): Adjust gimplify_adjust_omp_clauses callers.
188         * tree-nested.c (convert_nonlocal_omp_clauses,
189         convert_local_omp_clauses): Clear OMP_CLAUSE_SHARED_READONLY on
190         non-local vars or local vars referenced from nested routines.
191         * omp-low.c (scan_sharing_clauses): For OMP_CLAUSE_SHARED_READONLY
192         attempt to optimize it into OMP_CLAUSE_FIRSTPRIVATE.  Even for
193         TREE_READONLY, don't call use_pointer_for_field with non-NULL
194         second argument until we are sure we are keeping OMP_CLAUSE_SHARED.
195
196 2015-11-26  Paolo Bonzini <bonzini@gnu.org>
197
198         * doc/implement-c.texi (Integers Implementation): Make GCC's promises
199         about signed left shift stronger and clarify the cases when they're
200         broken.
201
202 2015-11-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
203             Bernd Schmidt  <bschmidt@redhat.com>
204
205         PR rtl-optimization/67226
206         * calls.c (store_one_arg): Take into account
207         crtl->args.pretend_args_size when checking for overlap between
208         arg->value and argblock + arg->locate.offset during sibcall
209         optimization.
210
211 2015-11-26  Wilco Dijkstra  <wdijkstr@arm.com>
212
213         * config/aarch64/aarch64.md (cbranch<mode>4): Use
214         aarch64_fp_compare_operand.
215         (store_pairsf): Use aarch64_reg_or_fp_zero.
216         (store_pairdf): Likewise.
217         (cstore<mode>4): Use aarch64_fp_compare_operand.
218         (cmov<mode>6): Likewise.
219         * config/aarch64/aarch64-ldpstp.md: Use aarch64_reg_or_fp_zero.
220
221 2015-11-25  Aditya Kumar  <aditya.k7@samsung.com>
222             Sebastian Pop  <s.pop@samsung.com>
223
224         PR tree-optimization/68453
225         * graphite-isl-ast-to-gimple.c (translate_isl_ast_for_loop): Do
226         not redirect edges already pointing to their destination.
227         (translate_isl_ast_node_for): Split edges after loops to create
228         basic blocks for close phi nodes.  Save merge points at the end of
229         a loop guard.
230         (translate_isl_ast_node_if): Save merge points at the end of the
231         if region.
232         (add_close_phis_to_outer_loops): New.
233         (add_close_phis_to_merge_points): New.
234         (copy_loop_close_phi_args): Call add_close_phis_to_merge_points.
235         (copy_bb_and_scalar_dependences): Do not split basic blocks on
236         loop close phi locations.
237
238 2015-11-25  Jan Hubicka  <jh@suse.cz>
239
240         * ipa-visibility.c (cgraph_externally_visible_p,
241         varpool_node::externally_visible_p): When doing incremental linking,
242         hidden symbols may be still used later.
243         (update_visibility_by_resolution_info): Do not drop weak during
244         incremental link.
245         (function_and_variable_visibility): Fix formating.
246         * flag-types.h (lto_linker_output): Declare.
247         * common.opt 9flag_incremental_link): New flag.
248
249 2015-11-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
250
251         * config/rs6000/constraints.md (wb constraint): New constraint for
252         ISA 3.0 d-form scalar addressing.
253
254         * config/rs6000/rs6000.c (mode_supports_vmx_dform): Add support
255         for ISA 3.0 D-form addressing to load SFmode/DFmode scalars into
256         Altivec registers.  Add wb constraint for Altivec registers with
257         D-form addressing.  If we have ISA 3.0 d-form support, undo
258         secondary reload support for using FPR registers if we want to do
259         D-form addressing.
260         (rs6000_debug_reg_global): Likewise.
261         (rs6000_setup_reg_addr_masks): Likewise.
262         (rs6000_init_hard_regno_mode_ok): Likewise.
263         (rs6000_secondary_reload): Likewise.
264         (rs6000_preferred_reload_class): Likewise.
265         (rs6000_secondary_reload_class): Likewise.
266
267         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wb
268         constraint.
269
270         * config/rs6000/rs6000.md (f32_lr2 mode attribute): Add support
271         for ISA 3.0 SFmode/DFmode d-form addressing to Altivec registers.
272         (f32_lm2): Likewise.
273         (f32_li2): Likewise.
274         (f32_sr2): Likewise.
275         (f32_sm2): Likewise.
276         (f32_si2): Likewise.
277         (f64_p9): Likewise.
278         (extendsfdf2_fpr): Likewise.
279         (mov<mode>_hardfloat): Likewise.
280         (mov<mode>_hardfloat32): Likewise.
281         (mov<mode>_hardfloat64): Likewise.
282
283         * doc/md.texi (RS/6000 constraints): Document wb constraint.
284         Fixup we constraint documentation.
285
286 2015-11-25  Tom de Vries  <tom@codesourcery.com>
287
288         * omp-low.c (pass_expand_omp_ssa::clone): New function.
289         * passes.def: Add pass_oacc_kernels pass group.
290         * tree-ssa-loop-ch.c (pass_ch::clone): New function.
291
292 2015-11-25  Tom de Vries  <tom@codesourcery.com>
293
294         * tree-pass.h (make_pass_oacc_kernels, make_pass_oacc_kernels2):
295         Declare.
296         * tree-ssa-loop.c (gate_oacc_kernels): New static function.
297         (pass_data_oacc_kernels, pass_data_oacc_kernels2): New pass_data.
298         (class pass_oacc_kernels, class pass_oacc_kernels2): New pass.
299         (make_pass_oacc_kernels, make_pass_oacc_kernels2): New function.
300
301 2015-11-25  Jan Hubicka  <hubicka@ucw.cz>
302
303         * timevar.def (TV_IPA_LTO_DECOMPRESS, TV_IPA_LTO_COMPRESS,
304         TV_IPA_LTO_OUTPUT): New.
305         * lto-compress.c: Include timevar.h
306         (lto_end_compression, lto_end_uncompression): Add timers.
307         * langhooks.c: Include timevar.h
308         (lhd_append_data): Add timer.
309
310 2015-11-25  Jan Hubicka  <hubicka@ucw.cz>
311
312         * varasm.c (default_elf_asm_output_limited_string,
313         default_elf_asm_output_ascii): Replace fprintf by putc.
314
315 2015-11-25  Vladimir Makarov  <vmakarov@redhat.com>
316
317         PR rtl-optimization/67954
318         * lra-constraints.c (curr_insn_transform): Add check on scratch
319         pseudo when change class to NO_REGS.  Add an assert.
320
321 2015-11-25  Nathan Sidwell  <nathan@acm.org>
322
323         * config/nvptx/nvptx.md (load_arg_reg<mode>): Arg number
324         constraint is 'n'.
325         * config/nvptx/nvptx.c (write_one_arg): Use 'i' directly as arg
326         number.
327         (nvptx_write_function_decl): Number args from 0.
328         (nvptx_declare_function_name): Likewise.
329         (nvptx_function_incoming_arg): Likewise.
330         (nvptx_output_call_insn): Correct formatting.
331
332 2015-11-25  David Sherwood  <david.sherwood@arm.com>
333
334         * optabs.def: Add new optabs fmax_optab/fmin_optab.
335         * internal-fn.def: Add new fmax/fmin internal functions.
336         * doc/md.texi: Add fmin and fmax patterns.
337
338 2015-11-25  Jason Merrill  <jason@redhat.com>
339
340         PR c++/68385
341         * tree.c (integer_zerop, integer_onep, integer_each_onep)
342         (integer_all_onesp, integer_minus_onep, integer_pow2p)
343         (integer_nonzerop, integer_truep, tree_log2, tree_floor_log2)
344         (real_zerop, real_onep, real_minus_onep): Remove STRIP_NOPS.
345
346 2015-11-25  Richard Biener  <rguenther@suse.de>
347
348         PR middle-end/68528
349         * fold-const.c (fold_binary_loc): Do not call negate_expr_p
350         on stripped operands.
351
352 2015-11-25  Nathan Sidwell  <nathan@acm.org>
353
354         * config/nvptx/nvptx.c (walk_args_for_params): Delete.
355         (nvptx_declare_function_name): Move assignments next to register
356         declarations, and process params here.
357
358 2015-11-25  David Edelsohn  <dje.gcc@gmail.com>
359
360         * config/rs6000/rs6000.c (rs6000_declare_alias): Rename and globalize
361         both the symbol and the "dot" symbol for function descriptors. Fix
362         inversion for rename of symbols with dollar sign.
363
364 2015-11-25  Tom de Vries  <tom@codesourcery.com>
365
366         * cfgloop.c (find_single_latch): New function, factored out of ...
367         (flow_loops_find): ... here.
368         (verify_loop_structure): Improve verification of loop->latch.
369         * cfgloop.h (find_single_latch): Declare.
370         * omp-low.c (expand_omp_for_generic): Initialize latch of orig_loop.
371
372 2015-11-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
373
374         * config/sol2.h (SUPPORTS_INIT_PRIORITY): Move up.
375         (STARTFILE_VTV_SPEC, ENDFILE_VTV_SPEC): Define.
376         (STARTFILE_SPEC): Use %(startfile_vtv).
377         (ENDFILE_SPEC): Use %(endfile_vtv).
378         (SUBTARGET_EXTRA_SPECS): Handle STARTFILE_VTV_SPEC,
379         ENDFILE_VTV_SPEC.
380
381         * gcc.c (LINK_COMMAND_SPEC): Move VTABLE_VERIFICATION_SPEC after %{L*}.
382
383 2015-11-25  Bernd Schmidt  <bschmidt@redhat.com>
384
385         * ifcvt.c (noce_mem_write_may_trap_or_fault_p,
386         noce_can_store_speculate): Delete.
387         (noce_process_if_block): Don't try to handle single MEM stores.
388         * rtl.h (memory_must_be_modified_in_insn_p): Don't declare.
389         * alias.c (memory_must_be_modified_in_insn_p): Delete.
390
391 2015-11-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
392
393         PR rtl-optimization/68435
394         * ifcvt.c (noce_try_cmove_arith): Skip final insn when checking
395         for conflicts between a, b and the set destinations.
396
397 2015-11-25  Richard Biener  <rguenther@suse.de>
398
399         PR tree-optimization/68517
400         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses):
401         Properly handle zero-sized types.
402
403 2015-11-24  Jan Hubicka  <hubicka@ucw.cz>
404
405         * ipa-inline-analysis.c: Include gimplify.h
406         (set_cond_stmt_execution_predicate,
407         set_switch_stmt_execution_predicate): Be sure to not leak locations
408         to function body.
409
410 2015-11-25  Jakub Jelinek  <jakub@redhat.com>
411
412         PR target/67089
413         * tree-ssa-math-opts.c (uaddsub_overflow_check_p,
414         match_uaddsub_overflow): New functions.
415         (pass_optimize_widening_mul::execute): Call match_uaddsub_overflow.
416
417 2015-11-25  Richard Biener  <rguenther@suse.de>
418
419         PR tree-optimization/68492
420         * tree-vect-slp.c (vect_build_slp_tree): Consistently build up
421         op from scalars after operand swapping.
422
423 2015-11-25  Richard Biener  <rguenther@suse.de>
424
425         PR tree-optimization/68502
426         * tree-vect-data-refs.c (vect_analyze_group_access_1): Restore
427         check that the step is a multiple of the type size.
428
429 2015-11-24  Michael Collison  <michael.collison@linaro.org>
430
431         * config/aarch64/aarch64-simd.md (widen_ssum, widen_usum)
432         (aarch64_<ANY_EXTEND:su><ADDSUB:optab>w<mode>_internal): New patterns
433         * config/aarch64/iterators.md (Vhalf, VDBLW): New mode attributes.
434
435 2015-11-24  Steve Ellcey  <sellcey@imgtec.com>
436
437         * frame-header-opt.c (gate): Check for optimize > 0.
438         (has_inlined_assembly): New function.
439         (needs_frame_header_p): Remove is_leaf_function check,
440         add argument type check.
441         (callees_functions_use_frame_header): Add is_leaf_function
442         and has_inlined_assembly calls..
443         (set_callers_may_not_allocate_frame): New function.
444         (frame_header_opt): Add is_leaf_function call, add
445         set_callers_may_not_allocate_frame call.
446         * config/mips/mips.c (mips_compute_frame_info): Add check
447         to see if callee saved regs can be put in frame header.
448         (mips_expand_prologue): Add check to see if step1 is zero,
449         fix cfa restores when using frame header to store regs.
450         (mips_can_use_return_insn): Check to see if registers are
451         stored in frame header.
452         * config/mips/mips.h (machine_function): Add
453         callers_may_not_allocate_frame and
454         use_frame_header_for_callee_saved_regs fields.
455
456 2015-11-24  Segher Boessenkool  <segher@kernel.crashing.org>
457
458         PR rtl-optimization/68520
459         * shrink-wrap.c (try_shrink_wrapping): Don't push a block to VEC if
460         its bit was already set in BB_WITH.
461
462 2015-11-24  Jan Hubicka  <hubicka@ucw.cz>
463
464         * alias.c (get_alias_set): Before checking TYPE_ALIAS_SET_KNOWN_P
465         double check that type is main variant.
466         * tree.c (build_variant_type_copy): Clear TYPE_ALIAS_SET when producing
467         variant.
468         (verify_type_variant): Verify that variants have no
469         TYPE_ALIAS_SET_KNOWN_P set
470         * tree-streamer-out.c (pack_ts_type_common_value_fields): Reorder
471         streaming so constant fields come first; stream TYPE_ALIAS_SET==0
472         only for main variants; stream TYPE_ALIAS_SET as a bit.
473         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Update
474         accordingly.
475
476 2015-11-24  Jan Hubicka  <hubicka@ucw.cz>
477
478         * tree.c (make_vector_type): Properly compute canonical type of the
479         main variant.
480         (verify_type): Verify that TYPE_CANONICAL of TYPE_MAIN_VARIANT is
481         a main variant.
482
483 2015-11-24  Nathan Sidwell  <nathan@acm.org>
484
485         * config/nvptx/nvptx.c (maybe_split_mode): Return new mode or
486         VOIDmode, don't alter incoming mode.
487         (nvptx_split_reg_p): Delete.
488         (write_one_arg, walk_args_for_param, nvptx_declare_function_name,
489         write_func_decl_from_insn, nvptx_output_call_insn): Adjust
490         maybe_split_mode calls.
491         (nvptx_print_operand): Use maybe_split_mode.
492
493 2015-11-24  Jan Hubicka  <hubicka@ucw.cz>
494
495         * lto-streamer-in.c (lto_read_body_or_constructor): Set TYPE_CANONICAL
496         only for types where LTO sets them.
497         * tree.c (build_array_type_1): Do ont set TYPE_CANONICAL for LTO.
498         (make_vector_type): Likewise.
499         (gimple_canonical_types_compatible_p): Use canonical_type_used_p.
500         * tree.h (canonical_type_used_p): New inline.
501         * alias.c (get_alias_set): Handle structural equality for all
502         types that pass canonical_type_used_p.
503         (record_component_aliases): Look through all types with
504         record_component_aliases for possible pointers; sanity check that
505         the alias sets match.
506
507 2015-11-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
508
509         * config/rs6000/rs6000.md (lround<mode>di2): Remove constraints.
510
511 2015-11-24  Jan Hubicka  <hubicka@ucw.cz>
512
513         * tree.c (free_node): New function.
514         (type_hash_canon): Use it.
515         * tree.h (free_node): Declare.
516
517 2015-11-24  David Edelsohn  <dje.gcc@gmail.com>
518             Michael Meissner  <meissner@linux.vnet.ibm.com>
519
520         * config/rs6000/rs6000.md (UNSPEC_XSRDPI): New unspec.
521         (Fv2): New mode attribute to be used when ISA 2.07 instructions
522         are used on SF values, and ISA 2.06 instructions on DF values.
523         (add<mode>3_fpr): Use <Fv2> instead of <Fv>.
524         (sub<mode>3_fpr): Use <Fv2> instead of <Fv>.
525         (mul<mode>3_fpr): Use <Fv2> instead of <Fv>.
526         (div<mode>3_fpr): Use <Fv2> instead of <Fv>.
527         (sqrt<mode>2): Use <Fv2> instead of <Fv>.
528         (fre<Fs>): Use <Fv2> instead of <Fv>.
529         (rsqrt<mode>2): Use <Fv2> instead of <Fv>.
530         (cmp<mode>_fpr): Use <Fv2> instead of <Fv>.
531         (xsrdpi<mode>): Add support for the lround function.
532         (lround<mode>di2): Likewise.
533         (fma<mode>4_fpr): Use <Fv2> instead of <Fv>.
534         (fms<mode>4_fpr): Use <Fv2> instead of <Fv>.
535         (nfma<mode>4_fpr): Use <Fv2> instead of <Fv>.
536         (nfms<mode>4_fpr): Use <Fv2> instead of <Fv>.
537
538 2015-11-24  Aditya Kumar  <aditya.k7@samsung.com>
539             Sebastian Pop  <s.pop@samsung.com>
540
541         PR tree-optimization/67984
542         * graphite-isl-ast-to-gimple.c (is_constant): New.
543         (get_rename): Call is_constant.
544         (get_new_name): Same.
545
546 2015-11-24  Aditya Kumar  <aditya.k7@samsung.com>
547             Sebastian Pop  <s.pop@samsung.com>
548
549         * graphite-dependences.c: Only include graphite.h.
550         * graphite-isl-ast-to-gimple.c: Same.
551         * graphite-optimize-isl.c: Same.
552         * graphite-poly.c: Same.
553         * graphite-scop-detection.c: Same.
554         * graphite-sese-to-poly.c: Same.
555         * graphite.c: Same.
556         * graphite-isl-ast-to-gimple.h: Move to graphite.h.
557         * graphite-poly.h: Same.
558         * graphite-scop-detection.h: Same.
559         * graphite.h: New.
560
561 2015-11-24  Pierre-Marie de Rodat  <derodat@adacore.com>
562
563         * dwarf2out.c (gen_decl_die): Generate DW_TAG_imported_* instead of
564         DW_TAG_namespace for IMPORTED_DECL declarations.  Call
565         dwarf2out_imported_module_or_decl_1 for all DWARF versions as this
566         function already takes care of checking what it can emit.
567
568 2015-11-24  Szabolcs Nagy  <szabolcs.nagy@arm.com>
569
570         * doc/invoke.texi (-fpic): Add the AArch64 limit.
571         (-fPIC): Add AArch64.
572
573 2015-11-24  Tom de Vries  <tom@codesourcery.com>
574
575         * tree-ssa-loop-im.c (tree_ssa_lim): Make static.
576         (pass_lim::execute): Allow to run outside pass_tree_loop.
577
578 2015-11-24  Wilco Dijkstra  <wdijkstr@arm.com>
579
580         * config/aarch64/aarch64.md (add<mode>3):
581         Block early expansion into 2 add instructions.
582         (add<mode>3_pluslong): New pattern to combine complex
583         immediates into 2 additions.
584
585 2015-11-24  Segher Boessenkool  <segher@kernel.crashing.org>
586
587         PR target/66217
588         PR target/67677
589         PR target/68332
590         * config/rs6000/predicates.md (and_operand): Check that the operand
591         is a const_int before calling rs6000_is_valid_and_mask.
592
593 2015-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
594
595         * config/aarch64/aarch64.md (*condjump): Rename to...
596         (condjump): ... This.
597         (*compare_condjump<mode>): New define_insn_and_split.
598         (*compare_cstore<mode>_insn): Likewise.
599         (*cstore<mode>_insn): Rename to...
600         (cstore<mode>_insn): ... This.
601         * config/aarch64/iterators.md (CMP): Handle ne code.
602         * config/aarch64/predicates.md (aarch64_imm24): New predicate.
603
604 2015-11-24  Mikhail Maltsev  <maltsevm@gmail.com>
605
606         PR target/68497
607         * config/i386/i386.c (output_387_binary_op): Fix assertion for
608         -fno-checking case.
609
610 2015-11-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
611
612         * tree-ssa-uncprop.c (struct val_ssa_equiv_hash_traits): Remove.
613         (val_ssa_equiv_hash_traits::remove): Likewise.
614         (pass_uncprop::execute): Adjust.
615
616 2015-11-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
617
618         * hash-map-traits.h (simple_hashmap_traits ::remove): call
619         destructors on values that are being removed.
620         * mem-stats.h (hash_map): Pass type of values to
621         simple_hashmap_traits.
622         * tree-sra.c (sra_deinitialize): Remove work around for hash
623         maps not destructing values.
624         * genmatch.c (sinfo_hashmap_traits): Adjust.
625         * tree-ssa-uncprop.c (val_ssa_equiv_hash_traits): Likewise.
626
627 2015-11-24  Richard Biener  <rguenther@suse.de>
628             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
629
630         PR middle-end/68375
631         * cfgloop.c (get_loop_body_in_bfs_order): Restructure loop to avoid
632         bogus assertion.
633
634 2015-11-24  Jakub Jelinek  <jakub@redhat.com>
635
636         PR target/68483
637         * tree-vect-generic.c (lower_vec_perm): If VEC_PERM_EXPR
638         is valid vec_shr pattern, don't lower it even if can_vec_perm_p
639         returns false.
640         * optabs.c (shift_amt_for_vec_perm_mask): Return NULL_RTX
641         whenever first is nelt or above.  Don't mask expected with
642         2 * nelt - 1.
643
644 2015-11-24  Ilya Enkovich  <enkovich.gnu@gmail.com>
645
646         PR c/68337
647         * gimple-fold.c: Include ipa-chkp.h.
648         (gimple_fold_builtin_memory_op): Don't fold call if we
649         are going to instrument it and it may copy pointers.
650
651 2015-11-24  Bernd Schmidt <bschmidt@redhat.com>
652             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
653
654         PR rtl-optimization/68194
655         PR rtl-optimization/68328
656         PR rtl-optimization/68185
657         * ree.c (combine_reaching_defs): Reject copy_needed case if
658         copies_list is not empty.
659
660 2015-11-24  Richard Biener  <rguenther@suse.de>
661
662         PR middle-end/68221
663         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Properly
664         use mem_ref_offset.
665
666 2015-11-24  Segher Boessenkool  <segher@kernel.crashing.org>
667
668         PR rtl-optimization/68381
669         * combine.c (is_parallel_of_n_reg_sets): Return false if the pattern
670         is poisoned.
671
672 2015-11-23  Nick Clifton  <nickc@redhat.com>
673             Jeff Law  <law@redhat.com>
674
675         * ree.c (add_removable_extension): Avoid mis-optimizing cases where
676         the source/dest of the target extension require a different number of
677         hard registers.
678         (combine_set_extension): Remove #if 0 code.
679
680 2015-11-23  Aditya Kumar  <aditya.k7@samsung.com>
681             Sebastian Pop  <s.pop@samsung.com>
682
683         PR tree-optimization/68314
684         * graphite-optimize-isl.c (optimize_isl): Do not call isl_union_map_is_equal.
685         * graphite-poly.c (new_scop): Remove original_schedule.
686         (free_scop): Same.
687         * graphite-poly.h (struct scop): Same.
688         * graphite-sese-to-poly.c (build_pbb_minimal_scattering_polyhedrons): Remove.
689         (build_pbb_scattering_polyhedrons): Add back.
690         (build_scop_minimal_scattering): Remove.
691         (build_scop_scattering): Add back.
692         (build_scop_original_schedule): Remove.
693         (build_poly_scop): Revert to only call build_scop_scattering.
694
695 2015-11-23  Aditya Kumar  <aditya.k7@samsung.com>
696             Sebastian Pop  <s.pop@samsung.com>
697
698         PR tree-optimization/68493
699         * graphite-isl-ast-to-gimple.c (translate_pending_phi_nodes): Add
700         missing early return when codegen_error is set.
701
702 2015-11-23  Aditya Kumar  <aditya.k7@samsung.com>
703             Sebastian Pop  <s.pop@samsung.com>
704
705         PR tree-optimization/68279
706         * graphite-poly.c (new_scop): Remove poly_scop_p.
707         * graphite-poly.h (struct scop): Same.
708         (build_poly_scop): Declare.
709         * graphite-sese-to-poly.c: Do not include graphite-sese-to-poly.h.
710         (cleanup_loop_iter_dom): New.
711         (build_loop_iteration_domains): Early return when scev analysis fails.
712         (create_pw_aff_from_tree): Same.
713         (add_condition_to_pbb): Same.
714         (add_conditions_to_domain): Same.
715         (add_conditions_to_constraints): Same.
716         (build_scop_iteration_domain): Same.
717         (build_poly_scop): Same.  Do not initialize poly_scop_p.
718         * graphite-sese-to-poly.h: Remove.
719         * graphite.c: Do not include graphite-sese-to-poly.h.
720         (graphite_transform_loops): Stop before code generation when
721         build_poly_scop fails.
722         * sese.c (scalar_evolution_in_region): Add fixme note about scev
723         analysis.
724
725 2015-11-23  Aditya Kumar  <aditya.k7@samsung.com>
726             Sebastian Pop  <s.pop@samsung.com>
727
728         * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_user):
729         Remove call to update_ssa.
730         * sese.c (sese_insert_phis_for_liveouts): Same.
731
732 2015-11-23  Marek Polacek  <polacek@redhat.com>
733
734         PR tree-optimization/68455
735         * tree-vrp.c (extract_range_from_binary_expr_1): Don't call
736         extract_range_from_multiplicative_op_1 on symbolic ranges.
737
738 2015-11-23  Richard Henderson  <rth@redhat.com>
739
740         * optabs.def (uaddv4_optab, usubv4_optab): New.
741         * internal-fn.c (expand_addsub_overflow): Use them.
742         * doc/md.texi (Standard Names): Add uaddv<m>4, usubv<m>4.
743
744         * config/i386/i386.c (ix86_cc_mode): Extend add overflow check
745         to reversed operands.
746         * config/i386/i386.md (uaddv<SWI>4, usubv<SWI>4): New.
747         (*add<SWI>3_cconly_overflow_1): Rename *add<SWI>3_cconly_overflow.
748         (*add<SWI>3_cc_overflow_1): Rename *add<SWI>3_cc_overflow.
749         (*addsi3_zext_cc_overflow_1): Rename *add3_zext_cc_overflow.
750         (*add<SWI>3_cconly_overflow_2): New.
751         (*add<SWI>3_cc_overflow_2): New.
752         (*addsi3_zext_cc_overflow_2): New.
753
754 2015-11-23  Richard Biener  <rguenther@suse.de>
755
756         PR tree-optimization/68465
757         * tree-ssa-sccvn.c (sccvn_dom_walker::before_dom_children):
758         Also record equalities from multiple predecessor blocks if
759         only one non-backedge exists.
760
761 2015-11-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
762
763         PR target/68363
764         * config/aarch64/aarch64.c (aarch64_madd_needs_nop): Reject arguments
765         that are not INSN_P.
766
767 2015-11-23  Bilyan Borisov  <bilyan.borisov@arm.com>
768
769         * config/aarch64/aarch64-builtins.c
770         (aarch64_gimple_fold_builtin): Fold FMULX.
771
772 2015-11-23  David Edelsohn  <dje.gcc@gmail.com>
773
774         * system.h: Don't poison calloc and strdup if USES_ISL is defined.
775         * graphite-dependences.c: Define USES_ISL.  Include ISL header files
776         after GCC header files and before graphite header files.
777         * graphite-dependences.c: Same.
778         * graphite-isl-ast-to-gimple.c: Same.
779         * graphite-optimize-isl.c: Same.
780         * graphite-poly.c: Same.
781         * graphite-scop-detection.c: Same.
782         * graphite-sese-to-poly.c: Same.
783         * graphite.c: Same.
784
785 2015-11-23  Richard Biener  <rguenth@gcc.gnu.org>
786             Jiong Wang  <jiong.wang@arm.com>
787
788         PR tree-optimization/68317
789         PR tree-optimization/68326
790         * tree-vrp.c (adjust_range_with_scev): Call drop_tree_overflow if the
791         final min and max are not infinity.
792
793 2015-11-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
794             Richard Biener  <rguenther@suse.de>
795
796         PR tree-optimization/68327
797         * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
798         compute vectype for non-relevant mask producers.
799         * tree-vect-stmts.c (vectorizable_comparison): Check stmt
800         relevance earlier.
801
802 2015-11-23  Tom de Vries  <tom@codesourcery.com>
803
804         PR tree-optimization/68460
805         * tree-parloops.c (gather_scalar_reductions): Also call
806         free_stmt_vec_info_vec if simple_loop_info == NULL.
807
808 2015-11-23  Maxim Ostapenko  <m.ostapenko@partner.samsung.com>
809
810         * opts.c (finish_options): Allow -fsanitize-recover=address for
811         userspace sanitization.
812         * asan.c (asan_expand_check_ifn): Redefine recover_p.
813         * doc/invoke.texi (fsanitize-recover): Update documentation.
814
815 2015-11-23  Tom de Vries  <tom@codesourcery.com>
816
817         * omp-low.c (build_receiver_ref): Mark by_ref mem_ref as non-trapping.
818
819 2015-11-23  Richard Biener  <rguenther@suse.de>
820
821         PR tree-optimization/68445
822         * tree-vect-slp.c (vect_create_mask_and_perm): Properly use
823         two different strides.
824
825 2015-11-23  Robin Dapp  <rdapp@linux.vnet.ibm.com>
826
827         * config/s390/s390.h: Add new symref flags, _NOTALIGN2 etc.
828         * config/s390/s390.c (s390_check_symref_alignment): Use new
829         symref flags, early abort on wrong alignment
830         (s390_secondary_reload): Use new symref flags.
831         (s390_encode_section_info): Likewise.
832         * config/s390/predicates.md: Likewise.
833
834 2015-11-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
835
836         PR target/68390
837         * config/arm/arm.c (arm_function_ok_for_sibcall): Get function type
838         for indirect function call.
839
840 2015-11-22  Bilyan Borisov  <bilyan.borisov@arm.com>
841
842         * config/aarch64/aarch64-simd.md
843         (*aarch64_mulx_elt_<vswap_width_name><mode>, VDQSF): New.
844         (*aarch64_mulx_elt<mode>, VDQF): Likewise.
845         (*aarch64_mulx_elt_to_64v2df): Likewise.
846         (*aarch64_vgetfmulx<mode>, VDQF_DF): Likewise.
847         * config/aarch64/arm_neon.h (vmulx_lane_f32): New.
848         (vmulx_lane_f64): Likewise.
849         (vmulxq_lane_f32): Refactored & moved.
850         (vmulxq_lane_f64): Likewise.
851         (vmulx_laneq_f32): New.
852         (vmulx_laneq_f64): Likewise.
853         (vmulxq_laneq_f32): Likewise.
854         (vmulxq_laneq_f64): Likewise.
855         (vmulxs_lane_f32): Likewise.
856         (vmulxs_laneq_f32): Likewise.
857         (vmulxd_lane_f64): Likewise.
858         (vmulxd_laneq_f64): Likewise.
859
860 2015-11-21  Jan Hubicka  <hubicka@ucw.cz>
861
862         * tree.c (build_pointer_type_for_mode,build_reference_type_for_mode):
863         In LTO we do not compute TYPE_CANONICAL of pointers.
864         (gimple_canonical_types_compatible_p): Improve coments; sanity check
865         that pointers do not have canonical type that would make us believe
866         they are different.
867         * alias.c (get_alias_set): Do structural type equality on pointers;
868         enable pointer path for LTO; also glob pointer to vector with pointer
869         to vector element; glob pointers and references for LTO; do more strict
870         sanity checking about build_pointer_type returning the canonical type
871         which is also the main variant.
872         (record_component_aliases): When component type is pointer and we
873         do LTO; record void_type_node alias set.
874
875 2015-11-21  Nathan Sidwell  <nathan@acm.org>
876
877         * config/nvptx/nvptx.md (clz<mode>2): Use operand 1 for type.
878
879         * config/nvptx/nvptx.c (write_function_decl_and_comment): Print
880         leading blank line.
881         (write_func_decl_from_insn): Likewise.
882         (init_output_initializer, nvptx_assemble_undefined_decl): Likewise.
883         (nvptx_file_end): Likewise.
884         (nvptx_function_end): Undent output.
885         (nvptx_expand_call): Fix formatting.
886         (nvptx_output_call_insn): Indent output.
887         * config/nvptx/nvptx.h (ASM_OUTPUT_ALIGNED_DECL_COMMON,
888         ASM__OUTPUT_ALIGNED_DECL_LOCAL): Print leading blank line.
889
890 2015-11-21  Jakub Jelinek  <jakub@redhat.com>
891
892         PR debug/66432
893         * tree-inline.c (copy_debug_stmt): If
894         gimple_debug_source_bind_get_value is DECL_ORIGIN of a PARM_DECL
895         in decl_debug_args, don't call remap_gimple_op_r on it.
896
897 2015-11-07  Jan Hubicka  <hubicka@ucw.cz>
898
899         * ipa-icf.c (sem_item::add_type): Do not look for TYPE_CANONICAL;
900         do not check AGGREGATE_TYPE_P when adding TYPE_MODE;
901         Check that all record types are complete.
902         * ipa-icf-gimple.c (func_checker::compatible_types_p): Do not
903         compare alias sets for types w/o alias sets.
904
905 2015-11-20  Eric Botcazou  <ebotcazou@adacore.com>
906
907         * config/sparc/sparc.md (umulxhi_vis): Move around.
908         (*umulxhi_sp64): Likewise.
909         (umulxhi_v8plus): Likewise.
910         (xmulx_vis): Likewise.
911         (*xmulx_sp64): Likewise.
912         (xmulx_v8plus): Likewise.
913         (xmulxhi_vis): Likewise.
914         (*xmulxhi_sp64): Likewise.
915         (xmulxhi_v8plus): Likewise.
916
917 2015-11-20  David Malcolm  <dmalcolm@redhat.com>
918
919         PR 62314
920         * diagnostic-show-locus.c (colorizer::set_fixit_hint): New.
921         (class layout): Update comment
922         (layout::print_any_fixits): New method.
923         (layout::move_to_column): New method.
924         (diagnostic_show_locus): Add call to layout.print_any_fixits.
925
926 2015-11-20  Jakub Jelinek  <jakub@redhat.com>
927
928         PR middle-end/68221
929         * omp-low.c (lower_rec_input_clauses): If C/C++ array reduction
930         has non-zero bias, subtract it in integer type instead of
931         pointer plus of negated bias.
932
933         PR middle-end/68339
934         * omp-low.c (expand_simd_clones): Call node->get_body () before
935         allocating stuff in GC.
936
937 2015-11-20  Jim Wilson  <jim.wilson@linaro.org>
938
939         * tree-vect-data-refs.c (compare_tree): Call STRIP_NOPS.
940
941 2015-11-20  Evandro Menezes  <e.menezes@samsung.com>
942
943         * config/aarch64/aarch64.md (predicated): Copy attribute from
944         "arm.md".
945         * config/arm/arm.md (predicated): Added description.
946
947 2015-11-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
948
949         * config/arm/arm.c (arm_option_override): Require TARGET_32BIT
950         for unaligned_access.
951         * config/arm/arm.md (unaligned_loadsi): Remove redundant TARGET_32BIT
952         from matching condition.
953         (unaligned_loadhis): Likewise.
954         (unaligned_loadhiu): Likewise.
955         (unaligned_storesi): Likewise.
956         (unaligned_storehi): Likewise.
957
958 2015-11-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
959
960         PR target/68149
961         * config/arm/arm.md (unaligned_loaddi): Delete.
962         (unaligned_storedi): Likewise.
963         * config/arm/arm.c (gen_movmem_ldrd_strd): Don't generate
964         unaligned DImode memory ops.  Instead perform two back-to-back
965         unaligned SImode ops.
966
967 2015-11-20  Nathan Sidwell  <nathan@codesourcery.com>
968             James Norris  <jnorris@codesourcery.com>
969
970         * config/nvptx/nvptx.c (nvptx_use_anchors_for_symbol_p): New.
971         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Override.
972
973 2015-11-20  Alan Hayward <alan.hayward@arm.com>
974
975         PR tree-optimization/68413
976         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Cache
977         evolution base
978         (vectorizable_reduction): Use cached base
979
980 2015-11-20  Tom de Vries  <tom@codesourcery.com>
981
982         * tree-parloops.c (build_new_reduction): Fix trailing whitespace in
983         dump-file string.
984         (try_create_reduction_list): Same.  Fix typo in dump-file string.
985
986 2015-11-20  Eric Botcazou  <ebotcazou@adacore.com>
987
988         * doc/md.texi (Standard Names): Move entry for addptr3 around,
989         add entries for addv4, subv4, mulv4, umulv4 and negv3, fixes
990         glitch in entries for cbranch4 and jump.
991
992 2015-11-20  Tom de Vries  <tom@codesourcery.com>
993
994         PR tree-optimization/68373
995         * tree-scalar-evolution.c (final_value_replacement_loop): Factor out
996         of ...
997         (scev_const_prop): ... here.
998         * tree-scalar-evolution.h (final_value_replacement_loop): Declare.
999         * tree-parloops.c (try_create_reduction_list): Call
1000         final_value_replacement_loop.
1001
1002 2015-11-20  Bin Cheng  <bin.cheng@arm.com>
1003
1004         PR tree-optimization/52272
1005         * tree-ssa-loop-ivopts.c (struct iv_common_cand): New struct.
1006         (struct iv_common_cand_hasher): New struct.
1007         (iv_common_cand_hasher::hash): New function.
1008         (iv_common_cand_hasher::equal): New function.
1009         (struct ivopts_data): New fields, iv_common_cand_tab and
1010         iv_common_cands.
1011         (tree_ssa_iv_optimize_init): Initialize above fields.
1012         (record_common_cand, common_cand_cmp): New functions.
1013         (add_iv_candidate_derived_from_uses): New function.
1014         (add_iv_candidate_for_use): Record iv_common_cands derived from
1015         iv use in hash table, instead of adding candidates directly.
1016         (add_iv_candidate_for_uses): Call add_iv_candidate_derived_from_uses.
1017         (record_important_candidates): Add important candidates to iv uses'
1018         related_cands.  Always keep related_cands for future use.
1019         (try_add_cand_for): Use iv uses' related_cands.
1020         (free_loop_data, tree_ssa_iv_optimize_finalize): Release new fields
1021         in struct ivopts_data, iv_common_cand_tab and iv_common_cands.
1022
1023 2015-11-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1024
1025         * config/s390/s390.md ("bswaphi2"): New pattern.
1026
1027 2015-11-20  Dominik Vogt  <vogt@linux.vnet.ibm.com>
1028
1029         * config/s390/s390.md (GPR1_REGNUM): New constant.
1030         ("*trunc<BFP:mode><DFP_ALL:mode>2")
1031         ("*trunc<DFP_ALL:mode><BFP:mode>2")
1032         ("trunc<BFP:mode><DFP_ALL:mode>2")
1033         ("trunc<DFP_ALL:mode><BFP:mode>2")
1034         ("*extend<BFP:mode><DFP_ALL:mode>2")
1035         ("*extend<DFP_ALL:mode><BFP:mode>2")
1036         ("extend<BFP:mode><DFP_ALL:mode>2")
1037         ("extend<DFP_ALL:mode><BFP:mode>2"): Clobber r1.
1038
1039 2015-11-19  Aditya Kumar  <aditya.k7@samsung.com>
1040             Sebastian Pop  <s.pop@samsung.com>
1041
1042         PR tree-optimization/68428
1043         * graphite-scop-detection.c (harmful_stmt_in_region): Do not iterate
1044         over basic blocks outside the scop.
1045
1046 2015-11-19  Aditya Kumar  <aditya.k7@samsung.com>
1047             Sebastian Pop  <s.pop@samsung.com>
1048
1049         PR tree-optimization/68341
1050         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Remove
1051         gcc_unreachable and safely fail codegen.
1052         (copy_loop_close_phi_args): Do not insert merge phis in a basic
1053         block with loop phi nodes.
1054         (edge_for_new_close_phis): New.
1055         (copy_bb_and_scalar_dependences): Call edge_for_new_close_phis.
1056
1057 2015-11-19  Nathan Sidwell  <nathan@acm.org>
1058
1059         * config/nvptx/nvptx.h (SUPPORTS_WEAK): Define.
1060         * config/nvptx/nvptx.c (nvptx_write_function_decl): Support DECL_WEAK.
1061         (nvptx_declare_objec_name): Likewise.
1062
1063 2015-11-19  Aditya Kumar  <aditya.k7@samsung.com>
1064
1065         * graphite-isl-ast-to-gimple.c (get_true_edge_from_guard_bb): Move...
1066         (get_false_edge_from_guard_bb): Move...
1067         * sese.c (get_false_edge_from_guard_bb)
1068         (get_true_edge_from_guard_bb): ... here.
1069
1070 2015-11-19  David Edelsohn  <dje.gcc@gmail.com>
1071
1072         Revert
1073         2015-11-18  Alan Modra  <amodra@gmail.com>
1074
1075         * config/rs6000/rs6000.c (use_toc_relative_ref): Ignore
1076         type-limits warning.
1077
1078
1079 2015-11-19  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
1080
1081         * tree.h (desired_pro_or_demotion_p): New function.
1082         * tree-vrp.c (simplify_cond_using_ranges): Call it.
1083
1084 2015-11-19  Michael Matz  <matz@suse.de>
1085
1086         * fwprop.c (update_uses): Use flag_checking instead of
1087         gcc_checking_assert.
1088
1089 2015-11-19  David Malcolm  <dmalcolm@redhat.com>
1090
1091         * doc/gty.texi (Support for inheritance): Fix missing
1092         parentheses in example.
1093
1094 2015-11-19  Marek Polacek  <polacek@redhat.com>
1095
1096         PR tree-optimization/68431
1097         * tree-vrp.c (extract_range_from_binary_expr_1): Fix condition.
1098
1099 2015-11-19  Nathan Sidwell  <nathan@acm.org>
1100
1101         * config/nvptx/nvptx.md (atomic_compare_and_swap<mode>_1,
1102         atomic_exchange<mode>): Input values can be immediates.
1103
1104 2015-11-19  Eric Botcazou  <ebotcazou@adacore.com>
1105
1106         PR lto/61313
1107         * configure.ac (PLUGIN_LD_SUFFIX): Do not touch the value specified
1108         by the user.
1109         * configure: Regenerate.
1110
1111 2015-11-19  Eric Botcazou  <ebotcazou@adacore.com>
1112
1113         PR target/68408
1114         * config/sparc/sp-elf.h (CTORS_SECTION_ASM_OP): Undefine.
1115         (DTORS_SECTION_ASM_OP): Likewise.
1116
1117 2015-11-19  Jakub Jelinek  <jakub@redhat.com>
1118
1119         PR rtl-optimization/68376
1120         * ifcvt.c (noce_try_abs): Disable one_cmpl optimization if
1121         encountering x <= 0 ? ~x : x or x > 0 ? ~x : x.
1122
1123 2015-11-19  Richard Biener  <rguenther@suse.de>
1124
1125         PR middle-end/68117
1126         * tree-ssa.c (delete_tree_ssa): Revert removal of call to
1127         redirect_edge_var_map_destroy.
1128
1129 2015-11-19  Jakub Jelinek  <jakub@redhat.com>
1130
1131         PR target/67770
1132         * config/i386/i386.md (simple_return): Disable if
1133         ix86_static_chain_on_stack is true.
1134
1135 2015-11-19  Richard Sandiford  <richard.sandiford@arm.com>
1136
1137         PR bootstrap/68393
1138         * internal-fn.c (expand_direct_optab_fn): Handle SUBREG_PROMOTED_VAR_P
1139         destinations.
1140
1141 2015-11-18  Jeff Law  <law@redhat.com>
1142
1143         PR tree-optimization/68198
1144         * tree-ssa-threadupdate.c (valid_jump_thread_path): Distinguish
1145         between threading a multi-way branch and a thread path that contains
1146         a multi-way branch.  Disallow the case where a path contains a
1147         multi-way branch and does not thread a multi-way branch.
1148         (thread_through_all_blocks): Update comment.
1149
1150 2015-11-18  Joseph Myers  <joseph@codesourcery.com>
1151
1152         PR c/65083
1153         * ginclude/stdatomic.h (atomic_thread_fence, atomic_signal_fence)
1154         (atomic_flag_test_and_set, atomic_flag_test_and_set_explicit)
1155         (atomic_flag_clear, atomic_flag_clear_explicit): Declare as
1156         functions before defining as macros.
1157
1158 2015-11-18  Nathan Sidwell  <nathan@codesourcery.com>
1159
1160         * config/nvptx/nvptx.c (nvptx_process_pars): Fix whitespace.
1161         (nvptx_record_offload_symbol): Remove code compensating for lack
1162         of default dimension handling.
1163         (nvptx_goacc_validate_dims): Remove incorrect ARG_UNUSED markers.
1164
1165 2015-11-18  Aditya Kumar  <aditya.k7@samsung.com>
1166
1167         * graphite-isl-ast-to-gimple.c (copy_loop_phi_args): Change the return
1168         type to bool for early exit.
1169         (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Early return
1170         in case of error.
1171         (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
1172         (add_phi_arg_for_new_expr): Enable codegen for if-block where one
1173         predecessor dominates the other.
1174         (translate_isl_ast_to_gimple::copy_cond_phi_args): Fix. When the
1175         element is not found it returns -1.
1176         (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Bail
1177         out early when codegen fails.
1178         (graphite_regenerate_ast_isl): Remove codegen region when pending
1179         phis could not be generated.
1180
1181 2015-11-18  Aditya Kumar  <aditya.k7@samsung.com>
1182
1183         * graphite-isl-ast-to-gimple.c (struct ast_build_info): Remove
1184         semicolon.
1185         (class translate_isl_ast_to_gimple): Indentation.
1186         (translate_pending_phi_nodes): Comment.
1187         (add_parameters_to_ivs_params): Moved from sese.c inside class
1188         translate_isl_ast_to_gimple.
1189         (get_max_schedule_dimensions): Same.
1190         (generate_isl_context): Same.
1191         (extend_schedule): Same.
1192         (generate_isl_schedule): Same.
1193         (set_options): Same.
1194         (scop_to_isl_ast): Same.
1195         (is_valid_rename): Same.
1196         (get_rename): Same.
1197         (get_rename_from_scev): Same.
1198         (get_def_bb_for_const): Same.
1199         (get_new_name): Same.
1200         (collect_all_ssa_names): Same.
1201         (copy_loop_phi_args): Same.
1202         (copy_loop_phi_nodes): Same.
1203         (copy_loop_close_phi_args): Same.
1204         (copy_loop_close_phi_nodes): Same.
1205         (copy_cond_phi_args): Same.
1206         (copy_cond_phi_nodes): Same.
1207         (graphite_copy_stmts_from_block): Same.
1208         (copy_bb_and_scalar_dependences): Same.
1209         (add_phi_arg_for_new_expr): Same.
1210         (rename_uses): Same.
1211         (set_rename): Same.
1212         (set_rename_for_each_def): Same.
1213         (gsi_insert_earliest): Same.
1214         (rename_all_uses): Same.
1215         (codegen_error_p): Same.
1216         (print_isl_ast_node): Same.
1217         (translate_isl_ast_for_loop): Call function codegen_error_p.
1218         (translate_isl_ast_to_gimple::translate_isl_ast): Same.
1219         (translate_isl_ast_node_user): Make nb_loops const and release
1220         iv_map before exit.
1221         (get_true_edge_from_guard_bb): Move all free-functions early.
1222         (get_false_edge_from_guard_bb): Same.
1223         (bb_contains_loop_close_phi_nodes): Same.
1224         (bb_contains_loop_phi_nodes): Same.
1225         (is_loop_closed_ssa_use):  Same.
1226         (number_of_phi_nodes): Same.
1227         (phi_uses_name): Same.
1228         (later_of_the_two): Same.
1229         (substitute_ssa_name):
1230         (get_edges): Same.
1231         (get_loc): Same.
1232         (get_loop_init_value): Same.
1233         (find_init_value): Same.
1234         (find_init_value_close_phi): Same.
1235         (ast_build_before_for): Same.
1236         (graphite_regenerate_ast_isl): Formatting changes.
1237         * graphite-scop-detection.c (build_cross_bb_scalars_use): Same.
1238         * sese.c (get_rename): Move to graphite-isl-ast-to-gimple.c
1239         (set_rename): Same.
1240         (gsi_insert_earliest): Same.
1241         (collect_all_ssa_names): Same.
1242         (rename_all_uses): Same.
1243         (rename_uses): Same.
1244         (get_def_bb_for_const): Same.
1245         (copy_loop_phi_nodes): Same.
1246         (copy_loop_close_phi_args): Same.
1247         (copy_loop_close_phi_nodes): Same.
1248         (copy_cond_phi_args): Same.
1249         (copy_cond_phi_nodes): Same.
1250         (set_rename_for_each_def): Same.
1251         (graphite_copy_stmts_from_block): Same.
1252         (copy_bb_and_scalar_dependences): Same.
1253         (if_region_set_false_region): Same.
1254         (scev_analyzable_p): Same.
1255         * sese.h: Delete extern functions moved to graphite-isl-ast-to-gimple.c.
1256
1257 2015-11-18  Andreas Tobler  <andreast@gcc.gnu.org>
1258
1259         * config/i386/freebsd.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Bring in the
1260         commit from r125920 for FreeBSD.
1261
1262 2015-11-18  Jason Merrill  <jason@redhat.com>
1263
1264         * ggc-page.c (ggc_globals): Change finalizers and vec_finalizers
1265         to be vecs of vecs.
1266         (add_finalizer): Split out from ggc_internal_alloc.
1267         (ggc_handle_finalizers): Run finalizers for the current depth.
1268         (init_ggc, ggc_pch_read): Reserve space for finalizers.
1269
1270 2015-11-18  Sandra Loosemore  <sandra@codesourcery.com>
1271
1272         PR target/68410
1273         * config/nios2/nios2.c (cdx_and_immed): Remove duplicate tests
1274         from || expression.
1275
1276 2015-11-18  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
1277
1278         * config/avr/avr-mcus.def: Add new avr4 devices atmega48pb and
1279         atmega88pb. Add new avr5 devices ata5791, ata8210, ata8510, atmega168pb
1280         and atmega328pb.
1281         * doc/avr-mmcu.texi: Regenerate.
1282
1283 2015-11-18  Nathan Sidwell  <nathan@codesourcery.com>
1284
1285         * config/nvptx/nvptx.c (bb_pair_t, bb_pair_vec_t): New types.
1286         (pseudo_node_t, struct bracket, bracket_vec_t): New types.
1287         (struct bb_sese): New struct.
1288         (bb_sese::~bb_sese, bb_sese::append, bb_sese::remove): New.
1289         (BB_GET_SESE, BB_SET_SESE): Define.
1290         (nvptx_sese_number, nvptx_sese_pseudo, nvptx_sese_color): New.
1291         (nvptx_find_sese): New.
1292         (nvptx_neuter_pars): Find SESE regions when optimizing.
1293
1294 2015-11-18  Alan Modra  <amodra@gmail.com>
1295
1296         * config/rs6000/rs6000.c (use_toc_relative_ref): Ignore
1297         type-limits warning.
1298
1299 2015-11-18  Richard Sandiford  <richard.sandiford@arm.com>
1300
1301         PR bootstrap/68406
1302         * hash-set.h (hash_set::traverse): Expand Key typedef.
1303
1304 2015-11-18  Martin Liska  <mliska@suse.cz>
1305
1306         * config/arm/arm.c (arm_valid_target_attribute_p): Finalize
1307         options struct.
1308
1309 2015-11-18  Nathan Sidwell  <nathan@codesourcery.com>
1310
1311         * config/nvptx/nvptx.c (global_lock_var): New.
1312         (nvptx_global_lock_addr): New.
1313         (nvptx_lockless_update): Recomment and adjust for clarity.
1314         (nvptx_lockfull_update): New.
1315         (nvptx_reduction_update): New.
1316         (nvptx_goacc_reduction_fini): Call it.
1317
1318 2015-11-18  Bernd Schmidt  <bschmidt@redhat.com>
1319
1320         * regrename.h (struct du_head): Add target_data_1 and target_data_2
1321         fields.
1322         * regrename.c (create_new_chain): Clear entire struct after allocating.
1323
1324         * config/i386/i386.opt (mmitigate-rop): New option.
1325         * doc/invoke.texi (mmitigate-rop): Document.
1326         * config/i386/i386.c: Include "regrename.h".
1327         (ix86_rop_should_change_byte_p, reg_encoded_number,
1328         ix86_get_modrm_for_rop, set_rop_modrm_reg_bits, ix86_mitigate_rop): New
1329         static functions.
1330         (ix86_reorg): Call ix86_mitigate_rop if -fmitigate-rop.
1331         * config/i386/i386.md (attr "modrm_class"): New.
1332         (cmp<mode>_ccno_1, mov<mode>_xor, movstrict<mode>_xor,
1333         x86_mov<mode>cc_0_m1. x86_mov<mode>cc_0_m1_se)
1334         (x86_mov<mode>cc_0_m1_neg): Override modrm_class attribute.
1335
1336 2015-11-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
1337
1338         PR target/68405
1339         * config/i386/i386.c (ix86_expand_mask_vec_cmp): Add missing break.
1340
1341 2015-11-18  Jakub Jelinek  <jakub@redhat.com>
1342
1343         PR tree-optimization/68157
1344         * tree-ssa-reassoc.c (attempt_builtin_powi): Set uid of
1345         pow_stmt or mul_stmt from stmt's uid.
1346         (reassociate_bb): Set uid of mul_stmt from stmt's uid.
1347
1348 2015-11-18  Martin Liska  <mliska@suse.cz>
1349
1350         * haifa-sched.c (haifa_finish_h_i_d): Release reg_set_list.
1351
1352 2015-11-18  Martin Liska  <mliska@suse.cz>
1353
1354         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
1355         Fix GNU coding style.
1356         (find_def_preds): Use auto_vec.
1357         (destroy_predicate_vecs): Change signature of the function.
1358         (prune_uninit_phi_opnds_in_unrealizable_paths): Use the
1359         new signature.
1360         (simplify_preds_4): Use destroy_predicate_vecs instread of
1361         just releasing preds vector.
1362         (normalize_preds): Likewise.
1363         (is_use_properly_guarded): Use new signature of
1364         destroy_predicate_vecs.
1365         (find_uninit_use): Likewise.
1366
1367 2015-11-18  Richard Biener  <rguenther@suse.de>
1368
1369         PR tree-optimization/67790
1370         * tree-vect-loop.c (vect_is_simple_reduction_1): Remove
1371         IL rewrite for MINUS_EXPR reductions, rename back to ...
1372         (vect_is_simple_reduction): ... this, removing the wrapper.
1373         (vect_force_simple_reduction): Adjust.
1374         (vectorizable_reduction): Adjust reduc_index for MINUS_EXPR
1375         reductions and make use if reduc_index in all places.  For
1376         the final reduction of MINUS_EXPR use PLUS_EXPR.
1377
1378 2015-11-18  Alan Modra  <amodra@gmail.com>
1379
1380         * configure.ac (POWERPC64_TOC_POINTER_ALIGNMENT): Pass -z norelro
1381         to ld.
1382         * configure: Regenerate.
1383
1384 2015-11-17  Tom de Vries  <tom@codesourcery.com>
1385
1386         * tree-ssa-loop.c (pass_tree_loop_init::execute): Improve comments.
1387
1388 2015-11-17  Tom de Vries  <tom@codesourcery.com>
1389
1390         * tree-scalar-evolution.c (scev_const_prop): Dump details if replacing
1391         uses of ssa_name with constant.
1392
1393 2015-11-17  Tom de Vries  <tom@codesourcery.com>
1394
1395         * tree-ssa-ccp.c (do_ssa_ccp): Clear LOOP_CLOSED_SSA in loops state if
1396         something changed.
1397
1398 2015-11-17  Tom de Vries  <tom@codesourcery.com>
1399
1400         * cfgloop.h (struct loop): Add in_oacc_kernels_region field.
1401         * omp-low.c (mark_loops_in_oacc_kernels_region): New function.
1402         (expand_omp_target): Call mark_loops_in_oacc_kernels_region.
1403
1404 2015-11-17  Bernd Schmidt  <bschmidt@redhat.com>
1405
1406         * regrename.c (regrename_find_superclass): New function, code moved
1407         from ...
1408         (rename_chains): ... here.  Call it.
1409         * regrename.h (regrename_find_superclass): Declare.
1410
1411         * regrename.c (record_out_operands): Terminate earlyclobbered
1412         operands here.
1413
1414         PR target/66785
1415         * regrename.c (record_operand_use): Keep track of failed operands
1416         and stop appending if we see any.
1417         * regrename.h (struct operand_rr_info): Add a failed field and shrink
1418         n_chains to short.
1419
1420 2015-11-17  Sandra Loosemore  <sandra@codesourcery.com>
1421
1422         PR 48568
1423         * doc/extend.texi (Common Function Attributes) [visibility]:
1424         Add cross-references to matching variable and type attributes.
1425         (Common Variable Attributes) [visibility]: Add missing entry.
1426
1427 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1428
1429         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function): Remove
1430         entries that map directly to optabs.
1431
1432 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1433
1434         * config/i386/i386.c (ix86_builtin_vectorized_function): Remove
1435         entries that map directly to optabs.
1436
1437 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1438
1439         * internal-fn.h (direct_internal_fn_info): Add vectorizable flag.
1440         * internal-fn.c (direct_internal_fn_array): Update accordingly.
1441         * tree-vectorizer.h (vectorizable_function): Delete.
1442         * tree-vect-stmts.c: Include internal-fn.h.
1443         (vectorizable_internal_function): New function.
1444         (vectorizable_function): Inline into...
1445         (vectorizable_call): ...here.  Explicitly reject calls that read
1446         from or write to memory.  Try using an internal function before
1447         falling back on the old vectorizable_function behavior.
1448
1449 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1450
1451         * target.def (builtin_vectorized_function): Take a combined_fn (in
1452         the form of an unsigned int) rather than a function decl.
1453         (builtin_md_vectorized_function): New.
1454         * targhooks.h (default_builtin_vectorized_function): Replace the
1455         fndecl argument with an unsigned int.
1456         (default_builtin_md_vectorized_function): Declare.
1457         * targhooks.c (default_builtin_vectorized_function): Replace the
1458         fndecl argument with an unsigned int.
1459         (default_builtin_md_vectorized_function): New function.
1460         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_MD_VECTORIZED_FUNCTION):
1461         New hook.
1462         * doc/tm.texi: Regenerate.
1463         * tree-vect-stmts.c (vectorizable_function): Update call to
1464         builtin_vectorized_function, also passing internal functions.
1465         Call builtin_md_vectorized_function for target-specific builtins.
1466         * config/aarch64/aarch64-protos.h
1467         (aarch64_builtin_vectorized_function): Replace fndecl argument
1468         with an unsigned int.
1469         * config/aarch64/aarch64-builtins.c: Include case-cfn-macros.h.
1470         (aarch64_builtin_vectorized_function): Update after above changes.
1471         Use CASE_CFN_*.
1472         * config/arm/arm-protos.h (arm_builtin_vectorized_function): Replace
1473         fndecl argument with an unsigned int.
1474         * config/arm/arm-builtins.c: Include case-cfn-macros.h
1475         (arm_builtin_vectorized_function): Update after above changes.
1476         Use CASE_CFN_*.
1477         * config/i386/i386.c: Include case-cfn-macros.h
1478         (ix86_veclib_handler): Take a combined_fn rather than a
1479         built_in_function.
1480         (ix86_veclibabi_svml, ix86_veclibabi_acml): Likewise.  Use
1481         mathfn_built_in rather than calling builtin_decl_implicit directly.
1482         (ix86_builtin_vectorized_function) Update after above changes.
1483         Use CASE_CFN_*.
1484         * config/rs6000/rs6000.c: Include case-cfn-macros.h
1485         (rs6000_builtin_vectorized_libmass): Replace fndecl argument
1486         with a combined_fn.  Use CASE_CFN_*.  Use mathfn_built_in rather
1487         than calling builtin_decl_implicit directly.
1488         (rs6000_builtin_vectorized_function): Update after above changes.
1489         Use CASE_CFN_*.  Move BUILT_IN_MD to...
1490         (rs6000_builtin_md_vectorized_function): ...this new function.
1491         (TARGET_VECTORIZE_BUILTIN_MD_VECTORIZED_FUNCTION): Define.
1492
1493 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1494
1495         * tree-vect-patterns.c: Include internal-fn.h.
1496         (vect_recog_pow_pattern): Use IFN_SQRT instead of BUILT_IN_SQRT*.
1497
1498 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1499
1500         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P)
1501         (BUILTIN_CBRT_P, BUILTIN_ROOT_P): Delete.
1502
1503 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1504
1505         * builtins.c (expand_errno_check, expand_builtin_mathfn)
1506         (expand_builtin_mathfn_2): Delete.
1507         (expand_builtin): Remove handling of functions with
1508         internal function equivalents.
1509         * internal-fn.def (SET_EDOM): New internal function.
1510         * internal-fn.h (set_edom_supported_p): Declare.
1511         * internal-fn.c (expand_SET_EDOM): New function.
1512         (set_edom_supported_p): Likewise.
1513         * tree-call-cdce.c: Include builtins.h and internal-fn.h.
1514         Rewrite comment at head of file.
1515         (is_call_dce_candidate): Rename to...
1516         (can_test_argument_range): ...this.  Don't check gimple_call_lhs
1517         or gimple_call_builtin_p here.
1518         (edom_only_function): New function.
1519         (shrink_wrap_one_built_in_call_with_conds): New function, split out
1520         from...
1521         (shrink_wrap_one_built_in_call): ...here.
1522         (can_use_internal_fn, use_internal_fn): New functions.
1523         (shrink_wrap_conditional_dead_built_in_calls): Call use_internal_fn
1524         for calls that have an lhs.
1525         (pass_call_cdce::gate): Remove optimize_function_for_speed_p check.
1526         (pass_call_cdce::execute): Skip blocks that are optimized for size.
1527         Check gimple_call_builtin_p here.  Use can_use_internal_fn for
1528         calls with an lhs.
1529         * opts.c (default_options_table): Enable -ftree-builtin-call-cdce
1530         at -O and above.
1531
1532 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1533
1534         * builtins.h (called_as_built_in): Declare.
1535         * builtins.c (called_as_built_in): Make external.
1536         * internal-fn.h (expand_internal_call): Define a variant that
1537         specifies the internal function explicitly.
1538         * internal-fn.c (expand_load_lanes_optab_fn)
1539         (expand_store_lanes_optab_fn, expand_ANNOTATE, expand_GOMP_SIMD_LANE)
1540         (expand_GOMP_SIMD_VF, expand_GOMP_SIMD_LAST_LANE)
1541         (expand_GOMP_SIMD_ORDERED_START, expand_GOMP_SIMD_ORDERED_END)
1542         (expand_UBSAN_NULL, expand_UBSAN_BOUNDS, expand_UBSAN_VPTR)
1543         (expand_UBSAN_OBJECT_SIZE, expand_ASAN_CHECK, expand_TSAN_FUNC_EXIT)
1544         (expand_UBSAN_CHECK_ADD, expand_UBSAN_CHECK_SUB)
1545         (expand_UBSAN_CHECK_MUL, expand_ADD_OVERFLOW, expand_SUB_OVERFLOW)
1546         (expand_MUL_OVERFLOW, expand_LOOP_VECTORIZED)
1547         (expand_mask_load_optab_fn, expand_mask_store_optab_fn)
1548         (expand_ABNORMAL_DISPATCHER, expand_BUILTIN_EXPECT, expand_VA_ARG)
1549         (expand_UNIQUE, expand_GOACC_DIM_SIZE, expand_GOACC_DIM_POS)
1550         (expand_GOACC_LOOP, expand_GOACC_REDUCTION, expand_direct_optab_fn)
1551         (expand_unary_optab_fn, expand_binary_optab_fn): Add an internal_fn
1552         argument.
1553         (internal_fn_expanders): Update prototype.
1554         (expand_internal_call): Define a variant that specifies the
1555         internal function explicitly. Use it to implement the previous
1556         interface.
1557         * cfgexpand.c (expand_call_stmt): Try to expand calls to built-in
1558         functions as calls to internal functions.
1559
1560 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1561
1562         * Makefile.in (MOSTLYCLEANFILES): Add cfn-operators.pd.
1563         (generated_files): Likewise.
1564         (s-cfn-operators, cfn-operators.pd): New rules.
1565         (s-match): Depend on cfn-operators.pd.
1566         * gencfn-macros.c: Expand comment to describe -o behavior.
1567         (print_define_operator_list): New function.
1568         (main): Accept -o.  Call print_define_operator_list.
1569         * genmatch.c (main): Add the current directory to the include path.
1570         * match.pd (DEFINE_MATH_FN): Delete.  Include cfn-operators.pd
1571         instead.
1572
1573 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1574
1575         * doc/match-and-simplify.texi: Document the "null" identifier.
1576         * genmatch.c (id_base::NULL_ID): New kind.
1577         (null_id): New variable.
1578         (get_operator): Add a parameter that says whether null identifiers
1579         are allowed.
1580         (contains_id): New function.
1581         (lower_for): Skip substitutions that would have a null_id in
1582         either the match or the result.
1583         (parser::parse_for): Allow the null identifier to be used.
1584         (parser::parse_operator_list): Likewise.
1585         (main): Initialize null_id.
1586
1587 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1588
1589         * match.pd: Use HYPOT and COS rather than hypot and cos.
1590         Use CASE_CFN_* macros.  Guard log/exp folds with
1591         SCALAR_FLOAT_TYPE_P.
1592         * genmatch.c (internal_fn): New enum.
1593         (fn_id::fn): Change to an unsigned int.
1594         (fn_id::fn_id): Accept internal_fn too.
1595         (add_builtin): Rename to...
1596         (add_function): ...this and turn into a template.
1597         (get_operator): Only try one variation if the original name fails.
1598         Only add _EXPR if the original name was all lower case.
1599         Try converting internal and built-in function names to their
1600         CFN equivalents.
1601         (expr::gen_transform): Use maybe_build_call_expr_loc for generic.
1602         (dt_simplify::gen_1): Likewise.
1603         (dt_node::gen_kids_1): Use gimple_call_combined_fn for gimple
1604         and get_call_combined_fn for generic.
1605         (dt_simplify::gen): Use combined_fn as the type of fn_ids.
1606         (decision_tree::gen): Likewise.
1607         (main): Use lower case in the strings for {VIEW_,}CONVERT[012].
1608         Use add_function rather than add_builtin.  Register internal
1609         functions too.
1610         * generic-match-head.c: Include case-cfn-macros.h.
1611         * gimple-fold.c (replace_stmt_with_simplification): Use
1612         gimple_call_combined_fn to test whether we can keep an
1613         existing call.
1614         * gimple-match.h (code_helper): Replace built_in_function
1615         with combined_fn.
1616         * gimple-match-head.c: Include fold-const-call.h, internal-fn.h
1617         and case-fn-macros.h.
1618         (gimple_resimplify1): Use fold_const_call.
1619         (gimple_resimplify2, gimple_resimplify3): Likewise.
1620         (build_call_internal, build_call): New functions.
1621         (maybe_push_res_to_seq): Use them.
1622         (gimple_simplify): Use fold_const_call.  Set *rcode to a combined_fn
1623         rather than a built-in function.
1624         * tree.h (build_call_expr_internal_loc): Declare.
1625         (maybe_build_call_expr_loc): Likewise.
1626         * tree.c (build_call_expr_internal_loc_array): New function.
1627         (maybe_build_call_expr_loc): Likewise.
1628
1629 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1630
1631         * builtins.h (mathfn_built_in): Add a variant that takes
1632         a combined_fn.
1633         * builtins.c: Include case-cfn-macros.h.
1634         (CASE_MATHFN): Use CASE_CFN_*.
1635         (CASE_MATHFN_REENT): Use CFN_ codes.
1636         (mathfn_built_in_2, mathfn_built_in_1): Replace built_in_function
1637         argument with a combined_fn.
1638         (mathfn_built_in): Add a variant that takes a combined_fn.
1639         (expand_builtin_int_roundingfn_2): Update callers accordingly.
1640         (fold_builtin_sincos, fold_builtin_classify): Likewise.
1641
1642 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1643
1644         * tree-vect-patterns.c: Include case-cfn-macros.h.
1645         (vect_recog_pow_pattern): Use combined_fn instead of built-in codes.
1646
1647 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1648
1649         * tree-ssa-math-opts.c: Include case-cfn-macros.h.
1650         (execute_cse_sincos_1): Use combined_fn instead of built-in codes.
1651         (pass_cse_sincos::execute): Likewise.
1652
1653 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1654
1655         * tree-ssa-reassoc.c: Include case-cfn-macros.h.
1656         (stmt_is_power_of_op): Use combined_fn instead of built-in codes.
1657         (decrement_power, acceptable_pow_call): Likewise.
1658         (attempt_builtin_copysign): Likewise.
1659
1660 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1661
1662         * tree-vrp.c: Include case-cfn-macros.h.
1663         (extract_range_basic): Switch on combined_fn rather than handling
1664         built-in functions and internal functions separately.
1665
1666 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1667
1668         * fold-const.h (negate_mathfn_p): Take a combined_fn rather
1669         than a built_in_function.
1670         (tree_call_nonnegative_warnv_p): Take a combined_fn rather than
1671         a function decl.
1672         (integer_valued_real_call_p): Likewise.
1673         * fold-const.c: Include case-cfn-macros.h
1674         (negate_mathfn_p): Take a combined_fn rather than a built_in_function.
1675         (negate_expr_p): Update accordingly.
1676         (tree_call_nonnegative_warnv_p): Take a combined_fn rather than
1677         a function decl.
1678         (integer_valued_real_call_p): Likewise.
1679         (tree_invalid_nonnegative_warnv_p): Update accordingly.
1680         (integer_valued_real_p): Likewise.
1681         * gimple-fold.c (gimple_call_nonnegative_warnv_p): Update call
1682         to tree_call_nonnegative_warnv_p.
1683         (gimple_call_integer_valued_real_p): Likewise
1684         integer_valued_real_call_p.
1685         * gimple-ssa-backprop.c: Include case-cfn-macros.h.
1686         (backprop::process_builtin_call_use): Extend to combined_fn.
1687         (strip_sign_op_1): Likewise.
1688         (backprop::process_use): Don't check for built-in calls here.
1689         (backprop::execute): Likewise.
1690         (backprop::optimize_builtin_call): Update call to negate_mathfn_p.
1691
1692 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1693
1694         * fold-const-call.h (fold_const_call): Replace built_in_function
1695         arguments with combined_fn arguments.
1696         * fold-const-call.c: Include case-cfn-macros.h.
1697         (fold_const_call_ss, fold_const_call_cs, fold_const_call_sc)
1698         (fold_const_call_cc, fold_const_call_sss, fold_const_call_ccc)
1699         (fold_const_call_ssss, fold_const_call_1, fold_const_call): Replace
1700         built_in_function arguments with combined_fn arguments.
1701         * builtins.c (fold_builtin_sincos, fold_builtin_1, fold_builtin_2)
1702         (fold_builtin_3): Update calls to fold_const_call.
1703
1704 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1705
1706         * Makefile.in (HASH_TABLE_H): Add GGC_H.
1707         (MOSTLYCLEANFILES, generated_files): Add case-fn-macros.h.
1708         (s-case-cfn-macros, case-cfn-macros.h, build/gencfn-macros.o)
1709         (build/gencfn-macros$(build_exeext): New rules.
1710         (genprogerr): Add cfn-macros.
1711         * hash-set.h (hash_set): Use the traits value_type as the key.
1712         * gencfn-macros.c: New file.
1713
1714 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1715
1716         * internal-fn.def (DEF_INTERNAL_INT_FN): New macro.
1717         (CLRSB, CLZ, CTZ, FFS, PARITY, POPCOUNT): New functions.
1718         * builtins.c (associated_internal_fn): Handle them.
1719
1720 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1721
1722         * builtins.h (associated_internal_fn): Declare.
1723         (replacement_internal_fn): Likewise.
1724         * builtins.c: Include internal-fn.h
1725         (associated_internal_fn, replacement_internal_fn): New functions.
1726         * internal-fn.def (DEF_INTERNAL_FLT_FN): New macro.
1727         (ACOS, ASIN, ATAN, COS, EXP, EXP10, EXP2, EXPM1, LOG, LOG10, LOG1P)
1728         (LOG2, LOGB, SIGNIFICAND, SIN, SQRT, TAN, CEIL, FLOOR, NEARBYINT)
1729         (RINT, ROUND, TRUNC, ATAN2, COPYSIGN, FMOD, POW, REMAINDER, SCALB)
1730         (LDEXP): New functions.
1731         * internal-fn.c: Include recog.h.
1732         (unary_direct, binary_direct): New macros.
1733         (expand_direct_optab_fn): New function.
1734         (expand_unary_optab_fn): New macro.
1735         (expand_binary_optab_fn): Likewise.
1736         (direct_unary_optab_supported_p): Likewise.
1737         (direct_binary_optab_supported_p): Likewise.
1738
1739 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1740
1741         * coretypes.h (tree_pair): New type.
1742         * internal-fn.def (DEF_INTERNAL_OPTAB_FN): New macro.  Use it
1743         for MASK_LOAD, LOAD_LANES, MASK_STORE and STORE_LANES.
1744         * internal-fn.h (direct_internal_fn_info): New structure.
1745         (direct_internal_fn_array): Declare.
1746         (direct_internal_fn_p, direct_internal_fn): New functions.
1747         (direct_internal_fn_types, direct_internal_fn_supported_p): Declare.
1748         * internal-fn.c (not_direct, mask_load_direct, load_lanes_direct)
1749         (mask_store_direct, store_lanes_direct): New macros.
1750         (direct_internal_fn_array) New array.
1751         (get_multi_vector_move): Return the optab handler without asserting
1752         that it is available.
1753         (expand_LOAD_LANES): Rename to...
1754         (expand_load_lanes_optab_fn): ...this and add an optab argument.
1755         (expand_STORE_LANES): Rename to...
1756         (expand_store_lanes_optab_fn): ...this and add an optab argument.
1757         (expand_MASK_LOAD): Rename to...
1758         (expand_mask_load_optab_fn): ...this and add an optab argument.
1759         (expand_MASK_STORE): Rename to...
1760         (expand_mask_store_optab_fn): ...this and add an optab argument.
1761         (direct_internal_fn_types, direct_optab_supported_p)
1762         (multi_vector_optab_supported_p, direct_internal_fn_supported_p)
1763         (direct_internal_fn_supported_p): New functions.
1764         (direct_mask_load_optab_supported_p): New macro.
1765         (direct_load_lanes_optab_supported_p): Likewise.
1766         (direct_mask_store_optab_supported_p): Likewise.
1767         (direct_store_lanes_optab_supported_p): Likewise.
1768
1769 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1770
1771         * tree-core.h (internal_fn): Move immediately after the definition
1772         of built_in_function.
1773         (combined_fn): New enum.
1774         * tree.h (as_combined_fn, builtin_fn_p, as_builtin_fn)
1775         (internal_fn_p, as_internal_fn): New functions.
1776         (get_call_combined_fn, combined_fn_name): Declare.
1777         * tree.c (get_call_combined_fn): New function.
1778         (combined_fn_name): Likewise.
1779         * gimple.h (gimple_call_combined_fn): Declare.
1780         * gimple.c (gimple_call_combined_fn): New function.
1781
1782 2015-11-17  Martin Sebor  <msebor@redhat.com>
1783
1784         PR c++/68308
1785         * cp/init.c (build_new_1): Check for expression constness
1786         the right way.
1787
1788 2015-11-17  Sandra Loosemore  <sandra@codesourcery.com>
1789
1790         PR target/53587
1791         * doc/invoke.texi (Option Summary): Add -mms-bitfields to x86
1792         option list.
1793         (x86 Options): Add -mms-bitfields and -mno-ms-bitfields.  Move
1794         discussion of the Microsoft structure layout details here from
1795         its former home in extend.texi.
1796         * doc/extend.texi (x86 Variable Attributes): Replace detailed
1797         discussion with pointer to its new location.  Add cross-reference
1798         to corresponding type attributes.
1799         (x86 Type Attributes): Add cross-references to command-line options
1800         and variable attributes.
1801
1802 2015-11-17  Ilya Enkovich  <enkovich.gnu@gmail.com>
1803
1804         PR middle-end/68134
1805         * targhooks.c (default_get_mask_mode): Filter out
1806         scalar modes returned by mode_for_vector.
1807
1808 2015-11-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1809
1810         PR target/68143
1811         * config/arm/arm.c (arm_block_set_unaligned_vect): Keep track of
1812         offset from dstbase and use it appropriately in
1813         adjust_automodify_address.
1814         (arm_block_set_aligned_vect): Likewise.
1815
1816 2015-11-17  Eric Botcazou  <ebotcazou@adacore.com>
1817
1818         * config/visium/t-visium (MULTILIB_OPTIONS): Add muser-mode.
1819         (MULTILIB_DIRNAMES): Adjust accordingly.
1820
1821 2015-11-17  James Greenhalgh  <james.greenhalgh@arm.com>
1822
1823         * config/aarch64/aarch64-cores.def (cortex-a35): New.
1824         * config/aarch64/aarch64.c (cortexa35_tunings): New.
1825         * config/aarch64/aarch64-tune.md: Regenerate.
1826         * doc/invoke.texi (-mcpu): Add Cortex-A35
1827
1828 2015-11-17  Uros Bizjak  <ubizjak@gmail.com>
1829
1830         PR target/68263
1831         * config/i386/i386.h (BIGGEST_ALIGNMENT): Always define
1832         to 32 for IAMCU.
1833         * config/i386/sse.md (*mov<mode>_internal): Always enable
1834         AVX and SSE unaligned moves for IAMCU.
1835
1836 2015-11-17  Venkataramanan Kumar  <Venkataramanan.Kumar@amd.com>
1837
1838         * tree-if-conv.c: Include varasm.h
1839         (ref_DR_map): Define.
1840         (baseref_DR_map): Like wise
1841         (struct ifc_dr): Add new tree predicate field.
1842         (hash_memrefs_baserefs_and_store_DRs_read_written_info): New function.
1843         (memrefs_read_or_written_unconditionally): Remove.
1844         (write_memrefs_written_at_least_once): Remove.
1845         (ifcvt_memrefs_wont_trap): Use hash maps to query
1846         unconditional read/written information.
1847         (if_convertible_loop_p_1):  Initialize hash maps and predicates
1848         before hashing data references and delete hashmaps at the end.
1849
1850 2015-11-16  Thomas Preud'homme <thomas.preudhomme@arm.com>
1851
1852         PR 56036
1853         * doc/invoke.texi (Optimize Options): Move @end table to the right
1854         place.
1855
1856 2015-11-16  Sandra Loosemore  <sandra@codesourcery.com>
1857
1858         PR 65129
1859         * doc/extend.texi (__builtin_assume_aligned): Fix formatting of
1860         return value.
1861
1862 2015-11-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
1863
1864         * config/rs6000/vsx.md (VSX_L): Do not include IBM extended double
1865         128-bit types, just types that fit in a single vector.
1866         * config/rs6000/rs6000.md (FMOVE128_GPR): Likewise.
1867
1868 2015-11-16  David Wohlferd  <dw@LimeGreenSocks.com>
1869
1870         * doc/md.texi ('#' and '*' constraint modifiers): Do not include these
1871         in the user documentation.
1872         (define_peephole2, define_split): Similarly.
1873
1874 2015-11-16 Andris Pavenis <andris.pavenis@iki.fi>
1875
1876         * lto-streamer-out.c (write_global_references): Adjust integer type.
1877         (lto_output_decl_state_refs): Likewise.
1878
1879 2015-11-16  James Greenhalgh  <james.greenhalgh@arm.com>
1880
1881         * config/arm/arm-cores.def (cortex-a35): New.
1882         * config/arm/arm.c (arm_cortex_a35_tune): New.
1883         * config/arm/arm-tables.opt: Regenerate.
1884         * config/arm/arm-tune.md: Regenerate.
1885         * config/arm/bpabi.h (BE8_LINK_SPEC): Add cortex-a35.
1886         * config/arm/t-aprofile: Likewise.
1887         * doc/invoke.texi (-mcpu): Likewise.
1888
1889 2015-11-16  Jim Wilson  <jim.wilson@linaro.org>
1890
1891         * config/arm/t-aprofile (MULTILIB_MATCHES): Add lines for exynos-m1
1892         and qdf24xx and xgene1 to match -march=armv8-a.
1893
1894 2015-11-16  Segher Boessenkool  <segher@kernel.crashing.org>
1895
1896         PR rtl-optimization/68330
1897         * simplify-rtx.c (simplify_unary_operation_1): Simplify SIGN_EXTEND
1898         of LSHIFTRT by a non-zero constant integer.
1899
1900 2015-11-16  Richard Biener  <rguenther@suse.de>
1901
1902         PR tree-optimization/68306
1903         * tree-vect-data-refs.c (vect_verify_datarefs_alignment): Fix
1904         bogus copying from verify_data_ref_alignment and use continue
1905         instead of return.
1906
1907 2015-11-16  Oleg Endo  <olegendo@gcc.gnu.org>
1908             Kaz Kojima  <kkojima@gcc.gnu.org>
1909
1910         PR target/68277
1911         * config/sh/sh.md (addsi3_scr): Handle reg overlap of operands[0] and
1912         operands[2].
1913         (*addsi3): Add another insn_and_split variant for reload.
1914
1915 2015-11-16  Richard Biener  <rguenther@suse.de>
1916
1917         PR middle-end/68117
1918         * cfgexpand.c (pass_expand::execute): Destroy the edge
1919         redirection var map before setting RTL CFG hooks.
1920
1921 2015-11-16  Alan Lawrence  <alan.lawrence@arm.com>
1922
1923         * config/i386/sse.md (reduc_splus_v8df): Rename to...
1924         (reduc_plus_scal_v8df): ...here; reduce to temp and extract scalar.
1925
1926         (reduc_splus_v4df): Rename to...
1927         (reduc_plus_scal_v4df): ...here; reduce to temp and extract scalar.
1928
1929         (reduc_splus_v2df): Rename to...
1930         (reduc_plus_scal_v2df): ...here; reduce to temp and extract scalar.
1931
1932         (reduc_splus_v16sf): Rename to...
1933         (reduc_plus_scal_v16sf): ...here; reduce to temp and extract scalar.
1934
1935         (reduc_splus_v8sf): Rename to...
1936         (reduc_plus_scal_v8sf): ...here; reduce to temp and extract scalar.
1937
1938         (reduc_splus_v4sf): Rename to...
1939         (reduc_plus_scal_v4sf): ...here; reduce to temp and extract scalar.
1940
1941         (reduc_<code>_<mode>, all 3 variants): Rename each to...
1942         (reduc_<code>_scal_<mode>): ...here; reduce to temp and extract scalar.
1943
1944         (reduc_umin_v8hf): Rename to...
1945         (reduc_umin_scal_v8hf): ...here; reduce to temp and extract scalar.
1946
1947 2015-11-16  Kirill Yukhin  <kirill.yukhin@intel.com>
1948
1949         * omp-low.c (pass_omp_simd_clone::gate): If target allows - call
1950         without additional conditions.
1951         * doc/extend.texi (@item simd): New.
1952
1953 2015-11-16  Tom de Vries  <tom@codesourcery.com>
1954
1955         * passes.c (first_pass_instance): Remove variable.
1956         (execute_todo): Remove setting of first_pass_instance.
1957         * tree-pass.h (first_pass_instance): Remove declaration.
1958
1959 2015-11-16  Tom de Vries  <tom@codesourcery.com>
1960
1961         * passes.def: Add arg to pass_ccp pass instantiation.
1962         * tree-ssa-ccp.c (ccp_finalize): Add param nonzero_p.  Use nonzero_p
1963         instead of first_pass_instance.
1964         (do_ssa_ccp): Add and handle param nonzero_p.
1965         (pass_ccp::pass_ccp): Initialize nonzero_p.
1966         (pass_ccp::set_pass_param): New member function.  Set nonzero_p.
1967         (pass_ccp::execute): Call do_ssa_ccp with extra arg.
1968         (pass_ccp::nonzero_p): New private member.
1969
1970 2015-11-16  Tom de Vries  <tom@codesourcery.com>
1971
1972         * passes.def: Add arg to pass_object_sizes pass instantiation.
1973         * tree-object-size.c (pass_object_sizes::pass_object_sizes): Initialize
1974         insert_min_max_p.
1975         (pass_object_sizes::set_pass_param): New member function.  Set
1976         insert_min_max_p.
1977         (pass_object_sizes::insert_min_max_p): New private member.
1978         (pass_object_sizes::execute): Use insert_min_max_p instead of
1979         first_pass_instance.
1980
1981 2015-11-16  Tom de Vries  <tom@codesourcery.com>
1982
1983         * passes.def: Add arg to pass_dominator pass instantiation.
1984         * tree-pass.h (first_pass_instance): Remove pass_dominator-related bit
1985         of comment.
1986         * tree-ssa-dom.c (pass_dominator::pass_dominator): Initialize
1987         may_peel_loop_headers_p.
1988         (pass_dominator::set_pass_param): New member function.  Set
1989         may_peel_loop_headers_p.
1990         (pass_dominator::may_peel_loop_headers_p): New private member.
1991         (pass_dominator::execute): Use may_peel_loop_headers_p instead of
1992         first_pass_instance.
1993
1994 2015-11-16  Tom de Vries  <tom@codesourcery.com>
1995
1996         * passes.def: Add arg to pass_reassoc pass instantiation.
1997         * tree-ssa-reassoc.c (reassoc_insert_powi_p): New static variable.
1998         (acceptable_pow_call, reassociate_bb): Use reassoc_insert_powi_p instead
1999         of first_pass_instance.
2000         (execute_reassoc): Add and handle insert_powi_p parameter.
2001         (pass_reassoc::insert_powi_p): New private member.
2002         (pass_reassoc::pass_reassoc): Initialize insert_powi_p.
2003         (pass_reassoc::set_pass_param): New member function.  Set insert_powi_p.
2004         (pass_reassoc::execute): Call execute_reassoc with extra arg.
2005
2006 2015-11-16  Tom de Vries  <tom@codesourcery.com>
2007
2008         * gdbhooks.py (class PassNames): Handle extra arg NEXT_PASS argument.
2009         * gen-pass-instances.awk (handle_line): Same.
2010         * pass_manager.h (class pass_manager): Define and undefine
2011         NEXT_PASS_WITH_ARG.
2012         * passes.c (opt_pass::set_pass_param): New function.
2013         (pass_manager::pass_manager): Define and undefine NEXT_PASS_WITH_ARG.
2014         * passes.def: Add extra arg to NEXT_PASS (pass_vrp).
2015         * tree-pass.h (gimple_opt::set_pass_param): Declare.
2016         * tree-vrp.c (vrp_finalize, execute_vrp): Add and handle
2017         warn_array_bounds_p parameter.
2018         (pass_vrp::pass_vrp): Initialize warn_array_bounds_p.
2019         (pass_vrp::set_pass_param): New function.
2020         (pass_vrp::execute): Add warn_array_bounds_p arg to execute_vrp call.
2021         (pass_vrp::warn_array_bounds_p): New private member.
2022
2023 2015-11-16  Eric Botcazou  <ebotcazou@adacore.com>
2024
2025         * config/sparc/sparc.c (sparc_emit_probe_stack_range): Adjust.
2026         (output_probe_stack_range): Rotate the loop and simplify.
2027
2028 2015-11-16  Eric Botcazou  <ebotcazou@adacore.com>
2029
2030         * config/rs6000/rs6000.c (rs6000_emit_probe_stack_rang): Adjust.
2031         (output_probe_stack_range): Rotate the loop and simplify.
2032
2033 2015-11-16  Eric Botcazou  <ebotcazou@adacore.com>
2034
2035         * config/i386/i386.c (ix86_adjust_stack_and_probe): Adjust and use
2036         an lea instruction when possible.
2037         (output_adjust_stack_and_probe): Rotate the loop and simplify.
2038         (ix86_emit_probe_stack_range): Adjust.
2039         (output_probe_stack_range): Rotate the loop and simplify.
2040
2041 2015-11-16  Christian Bruel  <christian.bruel@st.com>
2042
2043         * config/arm/arm_neon.h: Remove #ifndef check on __ARM_NEON.
2044         Replace #ifdef __ARM_FEATURE_CRYPTO, __ARM_FEATURE_FMA, __ARM_FP
2045         with appropriate pragma GCC target.
2046
2047 2015-11-16  Christian Bruel  <christian.bruel@st.com>
2048
2049         PR target/65837
2050         * config/arm/arm-c.c (arm_cpu_builtins): Conditionally set and reset
2051         __ARM_FEATURE_FMA and __ARM_NEON_FP, __ARM_FP.
2052
2053 2015-11-16  James Greenhalgh  <james.greenhalgh@arm.com>
2054
2055         * config/aarch64/aarch64.c (cortexa57_branch_costs): New.
2056         (cortexa57_tunings): Use it.
2057
2058 2015-11-16  Christian Bruel  <christian.bruel@st.com>
2059
2060         PR target/65837
2061         * config/arm/arm-c.c (arm_cpu_builtins): Set or reset
2062         __ARM_FEATURE_CRYPTO, __VFP_FP__, __ARM_NEON__
2063         (arm_pragma_target_parse): Change check for arm_cpu_builtins.
2064         undefine __ARM_FP.
2065         * config/arm/arm.c (arm_can_inline_p): Check FPUs.
2066         (arm_valid_target_attribute_rec): Handle -mfpu attribute target.
2067         * doc/invoke.texi (-mfpu=): Mention attribute and pragma.
2068         * doc/extend.texi (-mfpu=): Describe attribute.
2069
2070 2015-11-16  Christian Bruel  <christian.bruel@st.com>
2071
2072         PR target/65837
2073         * config/arm/arm-protos.h (arm_init_neon_builtins): Declare.
2074         * config/arm/arm.c (arm_valid_target_attribute_tree): Call
2075         arm_init_neon_builtins.
2076         * config/arm/arm-builtins.c (arm_init_neon_builtins): Split into...
2077         (arm_init_neon_builtins_internal)
2078         (arm_init_crypto_builtins_internal):
2079         Test and set neon_set_p, neon_crypto_set_p.
2080         (neon_set_p, neon_crypto_set_p): New static booleans.
2081
2082 2015-11-16  Christian Bruel  <christian.bruel@st.com>
2083
2084         PR target/65837
2085         * config/arm/arm.c (arm_fpu_desc): Remove.
2086         (all_fpus): Make global.
2087         (arm_option_override): Use FPU TARGET accessors.
2088         (arm_declare_function_name): Likewise.
2089         * config/arm/arm.h (TARGET_VFP, TARGET_VFPD32, TARGET_VFP5)
2090         (TARGET_VFP_SINGLE, TARGET_VFP_DOUBLE, TARGET_NEON_FP16)
2091         (TARGET_FP16, TARGET_FMA, TARGET_FPU_ARMV8, TARGET_CRYPTO)
2092         (TARGET_NEON): Likewise.
2093         (all_fpus): Declare extern.
2094         (TARGET_FPU_NAME, TARGET_FPU_MODEL, TARGET_FPU_REV)
2095         (TARGET_FPU_REGS, TARGET_FPU_FEATURES): Define all_fpus accessors.
2096
2097 2015-11-15  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2098
2099         PR middle-end/68366
2100         * sdbout.c: Include emit-rtl.h and function.h.
2101
2102 2015-11-15  Gerald Pfeifer  <gerald@pfeifer.com>
2103
2104         * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Change to i586.
2105         Remove support for FreeBSD 5 and earlier.
2106
2107 2015-11-14  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2108
2109         * configure: Regenerate.
2110         * configure.ac: Always define ENABLE_OFFLOADING.
2111         * cgraph.c (cgraph_node::create): Adjust.
2112         * gcc.c (process_command): Likewise.
2113         * omp-low.c (create_omp_child_function): Likewise.
2114         (expand_omp_target): Likewise.
2115         * varpool.c (varpool_node::get_create): Likewise.
2116
2117 2015-11-14  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2118
2119         * defaults.h (EH_RETURN_HANDLER_RTX): New default definition.
2120         * df-scan.c (df_get_exit_block_use_set): Adjust.
2121         * except.c (expand_eh_return): Likewise.
2122
2123 2015-11-14  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2124
2125         * config/i386/i386.h (TARGET_PECOFF): Remove define.
2126         * defaults.h (TARGET_PECOFF): New default definition.
2127         * varasm.c (handle_vtv_comdat_section): Adjust.
2128
2129 2015-11-14  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2130
2131         * defaults.h: New definition of SDB_DEBUGGING_INFO.
2132         * doc/tm.texi: Regenerate.
2133         * doc/tm.texi.in: Adjust.
2134         * final.c (rest_of_clean_state): Remove check if
2135         SDB_DEBUGGING_INFO is defined.
2136         * function.c (number_blocks): Likewise.
2137         * output.h: Likewise.
2138         * sdbout.c: Likewise.
2139         * toplev.c (process_options): Likewise.
2140
2141 2015-11-14  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2142
2143         * gsyms.h (enum sdb_type): Remove code for EXTENDED_SDB_BASIC_TYPES.
2144         (enum sdb_masks): Likewise.
2145         * sdbout.c (plain_type_1): Likewise.
2146         * system.h: Poison EXTENDED_SDB_BASIC_TYPES macro.
2147
2148 2015-11-14  Jakub Jelinek  <jakub@redhat.com>
2149
2150         * omp-low.c (lower_omp_ordered): Add argument to GOMP_SMD_ORDERED_*
2151         internal calls - 0 if ordered simd and 1 for ordered threads simd.
2152         * tree-vectorizer.c (adjust_simduid_builtins): If GOMP_SIMD_ORDERED_*
2153         argument is 1, replace it with GOMP_ordered_* call instead of removing
2154         it.
2155
2156 2015-11-13  Rich Felker <dalias@libc.org>
2157
2158         * config/sh/sh.md (symGOT_load): Suppress __stack_chk_guard
2159         address loading hack for FDPIC targets.
2160
2161 2015-11-13  Ajit Agarwal  <ajitkum@xilinx.com>
2162             Jeff Law  <law@redhat.com>
2163
2164         * Makefile.in (OBJS): Add gimple-ssa-split-paths.o
2165         * common.opt (-fsplit-paths): New flag controlling path splitting.
2166         * doc/invoke.texi (fsplit-paths): Document.
2167         * opts.c (default_options_table): Add -fsplit-paths to -O2.
2168         * passes.def: Add split_paths pass.
2169         * timevar.def (TV_SPLIT_PATHS): New timevar.
2170         * tracer.c: Include "tracer.h"
2171         (ignore_bb_p): No longer static.
2172         (transform_duplicate): New function, broken out of tail_duplicate.
2173         (tail_duplicate): Use transform_duplicate.
2174         * tracer.h (ignore_bb_p): Declare
2175         (transform_duplicate): Likewise.
2176         * tree-pass.h (make_pass_split_paths): Declare.
2177         * gimple-ssa-split-paths.c: New file.
2178
2179 2015-11-13  Kai Tietz  <ktietz70@googlemail.com>
2180             Marek Polacek  <polacek@redhat.com>
2181             Jason Merrill  <jason@redhat.com>
2182
2183         * convert.c (maybe_fold_build1_loc): New.
2184         (maybe_fold_build2_loc): New.
2185         (convert_to_pointer_1): Split out from convert_to_pointer.
2186         (convert_to_pointer_nofold): New.
2187         (convert_to_real_1): Split out from convert_to_real.
2188         (convert_to_real_nofold): New.
2189         (convert_to_integer_1): Split out from convert_to_integer.
2190         (convert_to_integer_nofold): New.
2191         (convert_to_complex_1): Split out from convert_to_complex.
2192         (convert_to_complex_nofold): New.
2193         * convert.h: Declare new functions.
2194         * tree-complex.c (create_one_component_var): Break up line to
2195         avoid sequence point issues.
2196
2197 2015-11-13  Jason Merrill  <jason@redhat.com>
2198
2199         * fold-const.c (fold_convert_const): Fold changing cv-quals on
2200         VECTOR_CST.
2201
2202         * hash-map.h (hash_map::empty): New.
2203
2204 2015-11-13  Nathan Sidwell  <nathan@codesourcery.com>
2205
2206         * omp-low.c (scan_sharing_clauses): Accept INDEPENDENT, AUTO & SEQ.
2207         (oacc_loop_fixed_partitions): Correct return type to bool.
2208         (oacc_loop_auto_partitions): New.
2209         (oacc_loop_partition): Take mask argument, call
2210         oacc_loop_auto_partitions.
2211         (execute_oacc_device_lower): Provide mask to oacc_loop_partition.
2212
2213 2015-11-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
2214
2215         * config/rs6000/constraints.md (we constraint): New constraint for
2216         64-bit power9 vector support.
2217         (wL constraint): New constraint for the element in a vector that
2218         can be addressed by the MFVSRLD instruction.
2219
2220         * config/rs6000/rs6000-protos.h (convert_float128_to_int): Add
2221         declaration.
2222         (convert_int_to_float128): Likewise.
2223         (rs6000_generate_compare): Add support for ISA 3.0 (power9)
2224         hardware support for IEEE 128-bit floating point.
2225         (rs6000_expand_float128_convert): Likewise.
2226         (convert_float128_to_int): Likewise.
2227         (convert_int_to_float128): Likewise.
2228
2229         * config/rs6000/rs6000.md (UNSPEC_ROUND_TO_ODD): New unspecs for
2230         ISA 3.0 hardware IEEE 128-bit floating point.
2231         (UNSPEC_IEEE128_MOVE): Likewise.
2232         (UNSPEC_IEEE128_CONVERT): Likewise.
2233         (FMA_F): Add support for IEEE 128-bit floating point hardware support.
2234         (Ff): Add support for DImode.
2235         (Fv): Likewise.
2236         (any_fix code iterator): New and updated iterators for IEEE
2237         128-bit floating point hardware support.
2238         (any_float code iterator): Likewise.
2239         (s code attribute): Likewise.
2240         (su code attribute): Likewise.
2241         (az code attribute): Likewise.
2242         (uns code attribute): Likewise.
2243         (neg<mode>2, FLOAT128 iterator): Add support for IEEE 128-bit
2244         floating point hardware support.
2245         (abs<mode>2, FLOAT128 iterator): Likewise.
2246         (add<mode>3, IEEE128 iterator): New insns for IEEE 128-bit
2247         floating point hardware.
2248         (sub<mode>3, IEEE128 iterator): Likewise.
2249         (mul<mode>3, IEEE128 iterator): Likewise.
2250         (div<mode>3, IEEE128 iterator): Likewise.
2251         (copysign<mode>3, IEEE128 iterator): Likewise.
2252         (sqrt<mode>2, IEEE128 iterator): Likewise.
2253         (neg<mode>2, IEEE128 iterator): Likewise.
2254         (abs<mode>2, IEEE128 iterator): Likewise.
2255         (nabs<mode>2, IEEE128 iterator): Likewise.
2256         (fma<mode>4_hw, IEEE128 iterator): Likewise.
2257         (fms<mode>4_hw, IEEE128 iterator): Likewise.
2258         (nfma<mode>4_hw, IEEE128 iterator): Likewise.
2259         (nfms<mode>4_hw, IEEE128 iterator): Likewise.
2260         (extend<SFDF:mode><IEEE128:mode>2_hw): Likewise.
2261         (trunc<mode>df2_hw, IEEE128 iterator): Likewise.
2262         (trunc<mode>sf2_hw, IEEE128 iterator): Likewise.
2263         (fix_fixuns code attribute): Likewise.
2264         (float_floatuns code attribute): Likewise.
2265         (fix<uns>_<mode>si2_hw): Likewise.
2266         (fix<uns>_<mode>di2_hw): Likewise.
2267         (float<uns>_<mode>si2_hw): Likewise.
2268         (float<uns>_<mode>di2_hw): Likewise.
2269         (xscvqp<su>wz_<mode>): Likewise.
2270         (xscvqp<su>dz_<mode>): Likewise.
2271         (xscv<su>dqp_<mode): Likewise.
2272         (ieee128_mfvsrd): Likewise.
2273         (ieee128_mfvsrwz): Likewise.
2274         (ieee128_mtvsrw): Likewise.
2275         (ieee128_mtvsrd): Likewise.
2276         (trunc<mode>df2_odd): Likewise.
2277         (cmp<mode>_h): Likewise.
2278         (128-bit GPR splitters): Don't split a 128-bit move that is a
2279         direct move between GPR and vector registers using ISA 3.0 direct
2280         move instructions.
2281         (maddld4): Add support for the ISA 3.0 integer multiply-add
2282         instruction.
2283
2284         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add ISA 3.0
2285         debugging.
2286         (rs6000_init_hard_regno_mode_ok): If ISA 3.0 and 64-bit, enable we
2287         constraint.  Disable the VSX<->GPR direct move helpers if we have
2288         the MFVSRLD and MTVSRDD instructions.
2289         (rs6000_secondary_reload_simple_move): Add support for doing
2290         vector direct moves directly without additional scratch registers
2291         if we have ISA 3.0 instructions.
2292         (rs6000_secondary_reload_direct_move): Update comments.
2293         (rs6000_output_move_128bit): Add support for ISA 3.0 vector
2294         instructions.
2295
2296         * config/rs6000/vsx.md (vsx_mov<mode>): Add support for ISA 3.0
2297         direct move instructions.
2298         (vsx_movti_64bit): Likewise.
2299         (vsx_extract_<mode>): Likewise.
2300
2301         * config/rs6000/rs6000.h (VECTOR_ELEMENT_MFVSRLD_64BIT): New
2302         macros for ISA 3.0 direct move instructions.
2303         (TARGET_DIRECT_MOVE_128): Likewise.
2304         (TARGET_MADDLD): Add support for the ISA 3.0 integer multiply-add
2305         instruction.
2306
2307         * doc/md.texi (RS/6000 constraints): Document we, wF, wG, wL
2308         constraints.  Update wa documentation to say not to use %x<n> on
2309         instructions that only take Altivec registers.
2310
2311 2015-11-13  David Malcolm  <dmalcolm@redhat.com>
2312
2313         * Makefile.in (OBJS): Add gcc-rich-location.o.
2314         * diagnostic.c (diagnostic_append_note): Pass line_table to
2315         rich_location ctor.
2316         (emit_diagnostic): Likewise.
2317         (inform): Likewise.
2318         (inform_n): Likewise.
2319         (warning): Likewise.
2320         (warning_at): Likewise.
2321         (warning_n): Likewise.
2322         (pedwarn): Likewise.
2323         (permerror): Likewise.
2324         (error): Likewise.
2325         (error_n): Likewise.
2326         (error_at): Likewise.
2327         (sorry): Likewise.
2328         (fatal_error): Likewise.
2329         (internal_error): Likewise.
2330         (internal_error_no_backtrace): Likewise.
2331         (source_range::debug): Likewise.
2332         * gcc-rich-location.c: New file.
2333         * gcc-rich-location.h: New file.
2334         * genmatch.c (fatal_at): Pass line_table to rich_location ctor.
2335         (warning_at): Likewise.
2336         * gimple.h (gimple_set_block): Use set_block function.
2337         * input.c (dump_line_table_statistics): Dump stats on how many
2338         ranges were optimized vs how many needed ad-hoc table.
2339         (write_digit_row): Add "map" param; use its range_bits
2340         to calculate the per-character offset.
2341         (dump_location_info): Print the range and column bits for each
2342         ordinary map.  Use the range bits to calculate the per-character
2343         offset.  Pass the map as a new param to the various calls to
2344         write_digit_row.  Eliminate uses of
2345         ORDINARY_MAP_NUMBER_OF_COLUMN_BITS.
2346         * print-tree.c (print_node): Print any source range information.
2347         * rtl-error.c (diagnostic_for_asm): Likewise.
2348         * toplev.c (general_init): Initialize line_table's
2349         default_range_bits.
2350         * tree-cfg.c (move_block_to_fn): Likewise.
2351         (move_block_to_fn): Likewise.
2352         * tree-inline.c (copy_phis_for_bb): Likewise.
2353         * tree.c (tree_set_block): Likewise.
2354         (get_pure_location): New function.
2355         (set_source_range): New functions.
2356         (set_block): New function.
2357         (set_source_range): New functions.
2358         * tree.h (CAN_HAVE_RANGE_P): New.
2359         (EXPR_LOCATION_RANGE): New.
2360         (EXPR_HAS_RANGE): New.
2361         (get_expr_source_range): New inline function.
2362         (DECL_LOCATION_RANGE): New.
2363         (set_source_range): New decls.
2364         (get_decl_source_range): New inline function.
2365
2366 2015-11-13  Alan Lawrence  <alan.lawrence@arm.com>
2367
2368         PR tree-optimization/67682
2369         * tree-vect-slp.c (vect_split_slp_store_group): New.
2370         (vect_analyze_slp_instance): During basic block SLP, recurse on
2371         subgroups if vect_build_slp_tree fails after 1st vector.
2372
2373 2015-11-13  Christian Bruel  <christian.bruel@st.com>
2374
2375         PR target/65837
2376         * config/arm/arm.c (arm_option_override): Move NEON check...
2377         (arm_option_check_internal): here
2378         (arm_file_start): Move .fpu print...
2379         (arm_declare_function_name): here
2380         (arm_option_print): Dump current fpu name.
2381         * config/arm/arm.opt (arm_fpu_index): Mark Save.
2382
2383 2015-11-13  Segher Boessenkool  <segher@kernel.crashing.org>
2384             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2385
2386         * combine.c (subst): Don't substitute or simplify when
2387         handling register-wise widening multiply.
2388         (force_to_mode): Likewise.
2389
2390 2015-11-13  Richard Sandiford  <richard.sandiford@arm.com>
2391
2392         PR tree-optimization/68264
2393         * tree-call-cdce.c (gen_one_condition): Update commentary.
2394         (gen_conditions_for_pow_int_base): Invert the sense of the tests
2395         passed to gen_one_condition.
2396         (gen_conditions_for_domain): Likewise.  Use unordered comparisons.
2397         (shrink_wrap_one_built_in_call): Invert the sense of the tests,
2398         using EDGE_FALSE_VALUE for edges to the call block and
2399         EDGE_TRUE_VALUE for the others.
2400
2401 2015-11-13  Nathan Sidwell  <nathan@codesourcery.com>
2402
2403         * config/nvptx/nvptx.c (nvptx_generate_vector_shuffle): Deal with
2404         complex types.
2405
2406 2015-11-13  Nathan Sidwell  <nathan@codesourcery.com>
2407
2408         * gimplify.c (oacc_default_clause): Use inform for enclosing scope.
2409
2410 2015-11-13  Tom de Vries  <tom@codesourcery.com>
2411
2412         * gen-pass-instances.awk (handle_line): Rename prefix_len var to
2413         len_of_prefix.
2414
2415 2015-11-13  Tom de Vries  <tom@codesourcery.com>
2416
2417         * gen-pass-instances.awk (handle_line): Add args_str variable.
2418
2419 2015-11-13  Martin Liska  <mliska@suse.cz>
2420
2421         * graphite-poly.c (free_scop): Release scop->drs vector.
2422         * graphite-scop-detection.c (scop_detection::harmful_stmt_in_region):
2423         Release dom vector.
2424         (try_generate_gimple_bb): Use vNULL as a default initialization
2425         for vectors.
2426
2427 2015-11-13  Martin Liska  <mliska@suse.cz>
2428
2429         PR ipa/68311
2430         * ipa-icf.c (sem_item_optimizer::traverse_congruence_split):
2431         Replace array initialization (using a variable post-increment)
2432         that possible triggers multiple unsequenced modifications
2433         with a pair of pushes to a vector.
2434
2435 2015-11-13  Richard Biener  <rguenther@suse.de>
2436
2437         PR tree-optimization/68306
2438         * tree-vect-data-refs.c (verify_data_ref_alignment): Move
2439         loop related checks ...
2440         (vect_verify_datarefs_alignment): ... here.
2441         (vect_slp_analyze_and_verify_node_alignment): Compute and
2442         verify alignment of the single DR that it matters.
2443         * tree-vect-stmts.c (vectorizable_store): Add an assert.
2444         (vectorizable_load): Add a comment.
2445         * tree-vect-slp.c (vect_analyze_slp_cost_1): Fix DR used
2446         for determining load cost.
2447
2448 2015-11-13  Ilya Enkovich  <enkovich.gnu@gmail.com>
2449
2450         * tree-vect-loop.c (vect_determine_vectorization_factor): Check
2451         mix of boolean and integer vectors in a single statement.
2452         * tree-vect-slp.c (vect_mask_constant_operand_p): New.
2453         (vect_get_constant_vectors): Use vect_mask_constant_operand_p to
2454         determine constant type.
2455         * tree-vect-stmts.c (vectorizable_comparison): Provide vectype
2456         for loop invariants.
2457
2458 2015-11-13  Alan Hayward <alan.hayward@arm.com>
2459
2460         PR tree-optimization/66558
2461         * tree-vect-loop.c (is_integer_induction):Add.
2462         (vectorizable_reduction): Add integer induction checks.
2463
2464 2015-11-13  Christophe Lyon  <christophe.lyon@linaro.org>
2465
2466         Revert [ARM] Remove neon-testgen.ml and generated tests.
2467
2468         2015-11-12  Christophe Lyon  <christophe.lyon@linaro.org>
2469
2470         [ARM] Remove neon-testgen.ml and generated tests.
2471
2472         * config/arm/neon-testgen.ml: Remove.
2473
2474 2015-11-13  Richard Biener  <rguenther@suse.de>
2475
2476         * tree-vect-loop.c (vect_analyze_loop_2): Add fatal parameter.
2477         Signal fatal failure if early checks fail.
2478         (vect_analyze_loop): If vect_analyze_loop_2 fails fatally
2479         do not bother testing further vector sizes.
2480
2481 2015-11-13  Uros Bizjak  <ubizjak@gmail.com>
2482
2483         * config/i386/predicates.md (misaligned_operand): Return true if
2484         operand is aligned to less than its natural alignmnet.
2485
2486 2015-11-13  Ilya Enkovich  <enkovich.gnu@gmail.com>
2487
2488         * doc/md.texi (vec_cmp@var{m}@var{n}): New item.
2489         (vec_cmpu@var{m}@var{n}): New item.
2490         (vcond@var{m}@var{n}): Specify comparison is signed.
2491         (vcondu@var{m}@var{n}): New item.
2492         (vcond_mask_@var{m}@var{n}): New item.
2493         (maskload@var{m}@var{n}): New item.
2494         (maskstore@var{m}@var{n}): New item.
2495
2496 2015-11-13  Ilya Enkovich  <enkovich.gnu@gmail.com>
2497
2498         * tree-vect-stmts.c (vectorizable_mask_load_store): Check
2499         types of stored value and storage are compatible.
2500
2501 2015-11-13  Andris Pavenis  <andris.pavenis@iki.fi>
2502
2503         * gcc.c (POST_LINK_SPEC): Define if not already defined.
2504         (LINK_COMMAND_SPEC): Use post_link.
2505         (post_link_spec): New, initialize to POST_LINK_SPEC.
2506         (post_link): Initialize new static spec.
2507         * doc/tm.texi.in (POST_LINK_SPEC): Document.
2508         * doc/tm.texi: Regenerated.
2509
2510 2015-11-13  David Malcolm  <dmalcolm@redhat.com>
2511
2512         PR driver/67613
2513         * Makefile.in (GCC_OBJS): Add spellcheck.o.
2514         (OBJS): Add spellcheck-tree.o.
2515         * gcc.c: Include "spellcheck.h".
2516         (suggest_option): New function.
2517         (driver::handle_unrecognized_options): Call suggest_option to
2518         provide a hint about misspelled options.
2519         * spellcheck.c: Update file comment.
2520         (levenshtein_distance): Convert 4-param implementation from static
2521         to extern scope.  Remove note about unit tests from leading
2522         comment for const char * implementation.  Move tree
2523         implementation to...
2524         * spellcheck-tree.c: New file.
2525         * spellcheck.h (levenshtein_distance):  Add 4-param decl.
2526
2527 2015-11-13  David Malcolm  <dmalcolm@redhat.com>
2528
2529         * Makefile.in (OBJS): Add spellcheck.o.
2530         * spellcheck.c: New file.
2531         * spellcheck.h: New file.
2532
2533 2015-11-13  James Bowman  <james.bowman@ftdichip.com>
2534
2535         * config/ft32/ft32.md (*sne): New insn pattern.
2536
2537 2015-11-12  Brad Lucier  <lucier@math.purdue.edu>
2538
2539         * cprop.c (is_too_expensive): Remove.
2540         (gcse.h): Include.
2541         (one_cprop_pass): Call gcse_or_cprop_is_too_expensive, not
2542         is_too_expensive.
2543         * gcse.h (gcse_or_cprop_is_too_expensive): Declare.
2544         * gcse.c (is_too_expensive): Rename to ...
2545         (gcse_or_cprop_is_too_expensive): ... this.
2546         Expand warning to add required size of max-gcse-memory.
2547         (one_pre_gcse_pass): Use it.
2548         (one_code_hoisting_pass): Use it.
2549         * params.def (max-gcse-memory): Increase from 50MB to 128MB.
2550
2551 2015-11-12  James Norris  <jnorris@codesourcery.com>
2552             Joseph Myers  <joseph@codesourcery.com>
2553
2554         * gimple-pretty-print.c (dump_gimple_omp_target): Handle
2555         GF_OMP_TARGET_KIND_OACC_DECLARE.
2556         * gimple.h (enum gf_mask): Add GF_OMP_TARGET_KIND_OACC_DECLARE.
2557         (is_gomple_omp_oacc): Handle GF_OMP_TARGET_KIND_OACC_DECLARE.
2558         * gimplify.c (oacc_declare_returns): New.
2559         (gimplify_bind_expr): Prepend 'exit' stmt to cleanup.
2560         (device_resident_p): New function.
2561         (oacc_default_clause): Handle device_resident clause.
2562         (gimplify_oacc_declare_1, gimplify_oacc_declare): New functions.
2563         (gimplify_expr): Handle OACC_DECLARE.
2564         * omp-builtins.def (BUILT_IN_GOACC_DECLARE): New builtin.
2565         * omp-low.c (expand_omp_target): Handle
2566         GF_OMP_TARGET_KIND_OACC_DECLARE and BUILTIN_GOACC_DECLARE.
2567         (build_omp_regions_1): Handlde GF_OMP_TARGET_KIND_OACC_DECLARE.
2568         (lower_omp_target): Handle GF_OMP_TARGET_KIND_OACC_DECLARE,
2569         GOMP_MAP_DEVICE_RESIDENT and GOMP_MAP_LINK.
2570         (make_gimple_omp_edges): Handle GF_OMP_TARGET_KIND_OACC_DECLARE.
2571         * tree-pretty-print.c (dump_omp_clause): Handle GOMP_MAP_LINK and
2572         GOMP_MAP_DEVICE_RESIDENT.
2573
2574 2015-11-12  Christophe Lyon  <christophe.lyon@linaro.org>
2575
2576         [ARM] Remove neon-testgen.ml and generated tests.
2577
2578         * config/arm/neon-testgen.ml: Remove.
2579
2580 2015-11-12  Jim Wilson  <jim.wilson@linaro.org>
2581
2582         * config/aarch64/aarch64-cores.def (qdf24xx): New.
2583         * config/aarch64/aarch64-tune.md: Regenerated.
2584         * config/arm/arm-cores.def (qdf24xx): New.
2585         * config/arm/arm-tables.opt, config/arm/arm-tune.md: Regenerated.
2586         * config/arm/bpabi.h (BE8_LINK_SPEC): Add qdf24xx support.
2587         * doc/invoke.texi (AArch64 Options/-mtune): Add "qdf24xx".
2588         (ARM Options/-mtune): Likewise.
2589
2590 2015-11-12  Martin Liska  <mliska@suse.cz>
2591
2592         * config/i386/i386.c (ix86_valid_target_attribute_p):
2593         Finalize options at the of the function.
2594         * gcc.c (driver_get_configure_time_options): Call newly
2595         introduced init_opts_obstack.
2596         * lto-wrapper.c (main): Likewise.
2597         * opts.c (init_opts_obstack): New function.
2598         (init_options_struct): Call newly introduced init_opts_obstack.
2599         * opts.h (init_options_struct): Declare.
2600
2601 2015-11-12  Martin Liska  <mliska@suse.cz>
2602
2603         PR ipa/68035
2604         * ipa-icf.c (void sem_item::set_hash): New function.
2605         (sem_function::get_hash): Use renamed m_hash member variable.
2606         (sem_item::update_hash_by_addr_refs): Utilize get_hash.
2607         (sem_item::update_hash_by_local_refs): Likewise.
2608         (sem_variable::get_hash): Use renamed m_hash member variable.
2609         (sem_item_optimizer::update_hash_by_addr_refs): Utilize get_hash.
2610         (sem_item_optimizer::build_hash_based_classes): Utilize set_hash.
2611         (sem_item_optimizer::build_graph): As the hash value of an item
2612         is lazy initialized, force the calculation.
2613         * ipa-icf.h (set_hash): Declare new function and rename hash member
2614         variable to m_hash.
2615
2616 2015-11-12  Richard Biener  <rguenther@suse.de>
2617
2618         * tree-vectorizer.h (vect_slp_analyze_data_ref_dependences):
2619         Rename to vect_slp_analyze_instance_dependence.
2620         * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependence):
2621         Remove WAR special-case.
2622         (vect_slp_analyze_node_dependences): Instead add more specific
2623         code here, not relying on other instances being vectorized.
2624         (vect_slp_analyze_instance_dependence): Adjust accordingly.
2625         * tree-vect-slp.c (vect_build_slp_tree_1): Remove excessive
2626         vertical space in dump files.
2627         (vect_print_slp_tree): Likewise.
2628         (vect_analyze_slp_instance): Dump a header for the final SLP tree.
2629         (vect_slp_analyze_bb_1): Delay computing relevant stmts and
2630         not vectorized stmts until after dependence analysis removed
2631         instances.  Merge alignment and dependence checks.
2632         * tree-vectorizer.c (pass_slp_vectorize::execute): Clear visited
2633         flag on all stmts.
2634
2635 2015-11-12  Evandro Menezes  <e.menezes@samsung.com>
2636
2637         * config/aarch64/aarch64-protos.h (tune_params): Add new members
2638         "max_case_values" and "cache_line_size".
2639         * config/aarch64/aarch64.c (aarch64_case_values_threshold): New
2640         function.
2641         (aarch64_override_options_internal): Tune heuristics based on new
2642         members in "tune_params".
2643         (TARGET_CASE_VALUES_THRESHOLD): Define macro.
2644
2645 2015-11-12  Richard Biener  <rguenther@suse.de>
2646
2647         PR tree-optimization/68306
2648         * tree-vect-data-refs.c (verify_data_ref_alignment): Remove
2649         relevant and vectorizable checks here.
2650         (vect_verify_datarefs_alignment): Add relevant check here.
2651
2652 2015-11-12  Nathan Sidwell  <nathan@codesourcery.com>
2653
2654         * gimplify.c (oacc_default_clause): New.
2655         (omp_notice_variable): Call it.
2656
2657 2015-11-12  Ilya Enkovich  <enkovich.gnu@gmail.com>
2658
2659         PR tree-optimization/68305
2660         * tree-vect-slp.c (vect_get_constant_vectors): Support
2661         COND_EXPR with SSA_NAME as a condition.
2662
2663 2015-11-12  Eric Botcazou  <ebotcazou@adacore.com>
2664
2665         * config/visium/visium-protos.h (notice_update_cc): Delete.
2666         (print_operand): Likewise.
2667         (print_operand_address): Likewise.
2668
2669 2015-11-12  Uros Bizjak  <ubizjak@gmail.com>
2670
2671         * config/alpha/alpha.h (FUNCTION_VALUE, LIBCALL_VALUE,
2672         FUNCTION_VALUE_REGNO_P): Remove.
2673         * config/alpha/alpha-protos.h (function_value): Remove.
2674         * config/alpha/alpha.c (function_value): Rename to...
2675         (alpha_function_value_1): ... this.  Make static.
2676         (alpha_function_value, alpha_libcall_value,
2677         alpha_function_value_regno_p): New functions.
2678         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
2679         TARGET_FUNCTION_VALUE_REGNO_P): Define.
2680
2681 2015-11-12  Uros Bizjak  <ubizjak@gmail.com>
2682
2683         * config/alpha/alpha.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
2684         * config/alpha/alpha.c (alpha_memory_latency): Make static.
2685         (alpha_register_move_cost, alpha_memory_move_cost): New functions.
2686         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
2687
2688 2015-11-12  Eric Botcazou  <ebotcazou@adacore.com>
2689
2690         PR target/67265
2691         * config/i386/i386.c (ix86_adjust_stack_and_probe): Remove obsolete
2692         assertion on the CFA register.
2693
2694 2015-11-12  Ilya Enkovich  <enkovich.gnu@gmail.com>
2695
2696         * expr.c (do_store_flag): Expand vector comparison as
2697         VEC_COND_EXPR if vector comparison is not supported by target.
2698
2699 2015-11-12  Renlin Li  <renlin.li@arm.com>
2700
2701         * config/arm/arm.md (addsi3_compare_op2): Make the order of
2702         assembly pattern consistent with constraint order.
2703
2704 2015-11-12  Tom de Vries  <tom@codesourcery.com>
2705
2706         * gen-pass-instances.awk (handle_line): Simplify match regexp.
2707
2708 2015-11-12  Tom de Vries  <tom@codesourcery.com>
2709
2710         * gen-pass-instances.awk (handle_line): Simplify init of
2711         postfix_starts_at.
2712
2713 2015-11-12  Tom de Vries  <tom@codesourcery.com>
2714
2715         * gen-pass-instances.awk (handle_line): Rename var where to
2716         call_starts_at.
2717
2718 2015-11-12  Claudiu Zissulescu  <claziss@synopsys.com>
2719
2720         * config/arc/arc.c (gen_compare_reg): Swap operands also when we
2721         do not expand to rtl.
2722
2723 2015-11-12  Richard Biener  <rguenther@suse.de>
2724
2725         PR tree-optimization/58497
2726         * tree-vect-generic.c: Include gimplify.h.
2727         (tree_vec_extract): Lookup constant/constructor DEFs.
2728         (do_cond): Unshare cond.
2729
2730 2015-11-12  Uros Bizjak  <ubizjak@gmail.com>
2731
2732         * config/i386/i386.c (ix86_legitimate_combined_insn): Reject
2733         combined insn if the alignment of vector mode memory operand
2734         is less than ssememalign.
2735
2736 2015-11-12  Tom de Vries  <tom@codesourcery.com>
2737
2738         * gen-pass-instances.awk (handle_line): Print parentheses and
2739         pass_name explicitly.
2740
2741 2015-11-12  Tom de Vries  <tom@codesourcery.com>
2742
2743         * gen-pass-instances.awk (handle_line): Add pass_num, prefix
2744         and postfix vars.
2745
2746 2015-11-12  Tom de Vries  <tom@codesourcery.com>
2747
2748         * gen-pass-instances.awk (handle_line): Add comments.
2749
2750 2015-11-12  Tom de Vries  <tom@codesourcery.com>
2751
2752         * gen-pass-instances.awk (handle_line): Rename len_of_end to
2753         len_of_close.
2754
2755 2015-11-12  Tom de Vries  <tom@codesourcery.com>
2756
2757         * gen-pass-instances.awk (handle_line): Add len_of_call variable.
2758
2759 2015-11-12  Tom de Vries  <tom@codesourcery.com>
2760
2761         * gen-pass-instances.awk (handle_line): Restructure using early-out.
2762
2763 2015-11-12  Tom de Vries  <tom@codesourcery.com>
2764
2765         * gen-pass-instances.awk (handle_line): Unify semicolon use.
2766
2767 2015-11-12  Tom de Vries  <tom@codesourcery.com>
2768
2769         * gen-pass-instances.awk (handle_line): Remove unused var line_length.
2770
2771 2015-11-12  Tom de Vries  <tom@codesourcery.com>
2772
2773         * gen-pass-instances.awk: Add emacs indent setting.
2774
2775 2015-11-12  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
2776
2777         * fold-const.c (fold_binary_loc) : Move Convert A/B/C to A/(B*C)
2778         to match.pd.
2779         Move Convert A/(B/C) to (A/B)*C to match.pd.
2780         Move Convert C1/(X*C2) into (C1/C2)/X to match.pd.
2781         Move Optimize (X & (-A)) / A where A is a power of 2, to
2782         X >> log2(A) to match.pd.
2783
2784         * match.pd (rdiv (rdiv:s @0 @1) @2): New simplifier.
2785         (rdiv @0 (rdiv:s @1 @2)): New simplifier.
2786         (div (convert? (bit_and @0 INTEGER_CST@1)) INTEGER_CST@2):
2787         New simplifier.
2788         (rdiv REAL_CST@0 (mult @1 REAL_CST@2)): New simplifier.
2789
2790 2015-11-12  Charles Baylis  <charles.baylis@linaro.org>
2791
2792         * config/arm/neon.md: (neon_vld2_lane<mode>): Remove unused max
2793         variable.
2794         (neon_vst2_lane<mode>): Likewise.
2795         (neon_vld3_lane<mode>): Likewise.
2796         (neon_vst3_lane<mode>): Likewise.
2797         (neon_vld4_lane<mode>): Likewise.
2798         (neon_vst4_lane<mode>): Likewise.
2799
2800 2015-11-11  Aditya Kumar  <aditya.k7@samsung.com>
2801             Sebastian Pop  <s.pop@samsung.com>
2802
2803         * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
2804         New member codegen_error
2805         (translate_isl_ast_for_loop): Remove call to single_succ_edge and
2806         early return.
2807         (translate_isl_ast_node_user): Early return in case of error.
2808         (translate_isl_ast_to_gimple::translate_isl_ast): Same.
2809         (translate_isl_ast_to_gimple::translate_pending_phi_nodes): New.
2810         (add_parameters_to_ivs_params): Remove macro.
2811         (graphite_regenerate_ast_isl): Add if_region pointer to region.
2812         * graphite-poly.c (new_poly_dr): Remove macro.
2813         (print_pdr): Same.
2814         (new_gimple_poly_bb): Same.
2815         (free_gimple_poly_bb): Same.
2816         (print_scop_params): Same.
2817         * graphite-poly.h (struct poly_dr): Same.
2818         (struct poly_bb): Add new_bb.
2819         (gbb_from_bb): Remove dead code.
2820         (pbb_from_bb): Same.
2821         * graphite-scop-detection.c (parameter_index_in_region_1): Same.
2822         (parameter_index_in_region): Same.
2823         (find_scop_parameters): Same.
2824         (build_cross_bb_scalars_def): New.
2825         (build_cross_bb_scalars_use): New.
2826         (graphite_find_cross_bb_scalar_vars): New
2827         (try_generate_gimple_bb): Reads and Writes.
2828         (build_alias_set): Move.
2829         (gather_bbs::before_dom_children): Gather bbs visited.
2830         (build_scops): call build_alias_set.
2831         * graphite-sese-to-poly.c (phi_arg_in_outermost_loop): Delete.
2832         (remove_simple_copy_phi): Delete.
2833         (remove_invariant_phi): Delete.
2834         (simple_copy_phi_p): Delete.
2835         (reduction_phi_p): Delete.
2836         (isl_id_for_dr): Remove unused param.
2837         (parameter_index_in_region_1): Remove macro usage.
2838         (set_scop_parameter_dim): Same.
2839         (add_param_constraints): Same.
2840         (add_conditions_to_constraints): Same
2841         (build_scop_iteration_domain): Same.
2842         (pdr_add_alias_set): Comment.
2843         (add_scalar_version_numbers): New.
2844         (build_poly_dr): ISL id.
2845         (build_scop_drs): Move.
2846         (build_poly_sr_1): Same.
2847         (insert_stmts): Remove.
2848         (build_poly_sr): New.
2849         (new_pbb_from_pbb): Delete.
2850         (insert_out_of_ssa_copy_on_edge): Delete.
2851         (create_zero_dim_array): Delete.
2852         (scalar_close_phi_node_p): Delete.
2853         (propagate_expr_outside_region): Delete.
2854         (rewrite_close_phi_out_of_ssa): Delete.
2855         (rewrite_phi_out_of_ssa): Delete.
2856         (rewrite_degenerate_phi): Delete.
2857         (rewrite_reductions_out_of_ssa): Delete.
2858         (rewrite_cross_bb_scalar_dependence): Delete.
2859         (handle_scalar_deps_crossing_scop_limits):
2860         (rewrite_cross_bb_scalar_deps): Delete.
2861         (build_poly_scop): Remove calls to out-of-ssa functions.
2862         * graphite.c (graphite_transform_loops): Early return in case of
2863         codegen error.
2864         * sese.c (debug_rename_map_1): Delete.
2865         (debug_rename_map): Delete.
2866         (sese_record_loop): Remove macro.
2867         (build_sese_loop_nests): Same.
2868         (new_sese_info): Same.
2869         (free_sese_info): Same.
2870         (sese_insert_phis_for_liveouts):
2871         (is_loop_closed_ssa_use): New.
2872         (number_of_phi_nodes): New.
2873         (bb_contains_loop_close_phi_nodes): New.
2874         (bb_contains_loop_phi_nodes): New.
2875         (phi_uses_name): New.
2876         (is_valid_rename):
2877         (get_rename): Add old_bb and loop_phi for more precise matching of
2878         exprs.
2879         (set_rename): Pass region.
2880         (later_of_the_two): New.
2881         (gsi_insert_earliest): New.
2882         (collect_all_ssa_names): New.
2883         (substitute_ssa_name): New.
2884         (rename_all_uses): New.
2885         (get_rename_from_scev): New.
2886         (rename_uses): Pass old_bb for more precise matching of exprs.
2887         (get_def_bb_for_const): New.
2888         (get_new_name): New.
2889         (get_loc): New.
2890         (get_edges): New.
2891         (copy_loop_phi_args): New.
2892         (copy_loop_phi_nodes): New.
2893         (get_loop_init_value): New.
2894         (find_init_value): New.
2895         (find_init_value_close_phi): New.
2896         (copy_loop_close_phi_args): New.
2897         (copy_loop_close_phi_nodes): New.
2898         (add_phi_arg_for_new_expr): New.
2899         (copy_cond_phi_args): New.
2900         (copy_cond_phi_nodes): New.
2901         (copy_phi_nodes): New.
2902         (should_copy_to_new_region): New.
2903         (set_rename_for_each_def): New.
2904         (graphite_copy_stmts_from_block): Early return in case of error.
2905         (copy_bb_and_scalar_dependences): Same.
2906         * sese.h (vec_find): New.
2907         (SESE_PARAMS): Delete.
2908         (SESE_LOOPS): Delete.
2909         (SESE_LOOP_NEST): Delete.
2910         (sese_contains_loop): Remove macro usage.
2911         (sese_nb_params): Same.
2912         (struct gimple_poly_bb): Added read_scalar_refs, write_scalar_refs.
2913
2914 2015-11-11  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
2915
2916         * graphite-sese-to-poly.c (build_scop_original_schedule): Call
2917         isl_union_map_add_map on every pbb->schedule.
2918
2919 2015-11-11  Tom de Vries  <tom@codesourcery.com>
2920
2921         * tree-parloops.c (create_parallel_loop): Return void.
2922
2923 2015-11-11  Tom de Vries  <tom@codesourcery.com>
2924
2925         * tree-parloops.c (transform_to_exit_first_loop_alt): Insert new exit
2926         block only when needed.
2927
2928 2015-11-11  Uros Bizjak  <ubizjak@gmail.com>
2929
2930         * config/alpha/alpha-protos.h (print_operand): Remove.
2931         (print_operand_address): Remove.
2932         * config/alpha/alpha.h (PRINT_OPERAND): Remove.
2933         (PRINT_OPERAND_ADDRESS): Remove.
2934         (PRINT_OPERAND_PUNCT_VALID_P): Remove.
2935         * config/alpha/alpha.c (TARGET_PRINT_OPERAND): New hook define.
2936         (TARGET_PRINT_OPERAND_ADDRESS): New hook define.
2937         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): New hook define.
2938         (print_operand_address): Rename to...
2939         (alpha_print_operand_address): ...this and make static.
2940         (print_operand): Rename to...
2941         (alpha_print_operand): ...this and make static.
2942         (alpha_print_operand_punct_valid_p): New static function.
2943
2944 2015-11-11  Richard Biener  <rguenther@suse.de>
2945
2946         * tree-vectorizer.h (vect_slp_analyze_and_verify_instance_alignment):
2947         Declare.
2948         (vect_analyze_data_refs_alignment): Make loop vect specific.
2949         (vect_verify_datarefs_alignment): Likewise.
2950         * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependences):
2951         Add missing continue.
2952         (vect_compute_data_ref_alignment): Export.
2953         (vect_compute_data_refs_alignment): Merge into...
2954         (vect_analyze_data_refs_alignment): ... this.
2955         (verify_data_ref_alignment): Split out from ...
2956         (vect_verify_datarefs_alignment): ... here.
2957         (vect_slp_analyze_and_verify_node_alignment): New function.
2958         (vect_slp_analyze_and_verify_instance_alignment): Likewise.
2959         * tree-vect-slp.c (vect_supported_load_permutation_p): Remove
2960         misplaced checks on alignment.
2961         (vect_slp_analyze_bb_1): Add fatal output parameter.  Do
2962         alignment analysis after SLP discovery and do it per instance.
2963         (vect_slp_bb): When vect_slp_analyze_bb_1 fatally failed do not
2964         bother to re-try using different vector sizes.
2965
2966 2015-11-11  Nathan Sidwell  <nathan@codesourcery.com>
2967             Cesar Philippidis  <cesar@codesourcery.com>
2968
2969         * gimplify.c (enum omp_region_type): Add ORT_ACC,
2970         ORT_ACC_DATA, ORT_ACC_PARALLEL, ORT_ACC_KERNELS.  Adjust ORT_NONE.
2971         (gimple_add_tmp_var): Add ORT_ACC checks.
2972         (gimplify_var_or_parm_decl): Likewise.
2973         (omp_firstprivatize_variable): Likewise. Use ORT_TARGET_DATA as a mask.
2974         (omp_add_variable): Look in outer contexts for openacc and allow
2975         reductions with other sharing. Add ORT_ACC and ORT_TARGET_DATA checks.
2976         (omp_notice_variable, omp_is_private, omp_check_private): Add
2977         ORT_ACC checks.
2978         (gimplify_scan_omp_clauses: Treat ORT_ACC as ORT_WORKSHARE.
2979         Permit private openacc reductions.
2980         (gimplify_oacc_cache): Specify ORT_ACC.
2981         (gimplify_omp_workshare): Adjust OpenACC region types.
2982         (gimplify_omp_target_update): Likewise.
2983         * omp-low.c (scan_sharing_clauses): Remove Openacc firstprivate sorry.
2984         (lower-rec_input_clauses): Don't handle openacc firstprivate
2985         references here.
2986         (lower_omp_target): Emit initializers for openacc firstprivate vars.
2987
2988 2015-11-11  Eric Botcazou  <ebotcazou@adacore.com>
2989
2990         PR target/67265
2991         * ira.c (ira_setup_eliminable_regset): Do not necessarily create the
2992         frame pointer for stack checking if non-call exceptions aren't used.
2993         * config/i386/i386.c (ix86_finalize_stack_realign_flags): Likewise.
2994
2995 2015-11-11  Segher Boessenkool  <segher@kernel.crashing.org>
2996
2997         * simplify-rtx.c (simplify_truncation): Simplify TRUNCATE of AND of
2998         [LA]SHIFTRT.
2999
3000 2015-11-11  Martin Liska  <mliska@suse.cz>
3001             Richard Biener  <rguenther@suse.de>
3002
3003         PR rtl-optimization/68287
3004         * lra-lives.c (lra_create_live_ranges_1): Reserve the right
3005         number of elements.
3006
3007 2015-11-11  Simon Dardis  <simon.dardis@imgtec.com>
3008
3009         * config/mips/mips.c (mips_breakable_sequence_p): New function.
3010         (mips_break_sequence): New function.
3011         (mips_reorg_process_insns): Use them. Use compact branches in selected
3012         situations.
3013
3014 2015-11-11  Alan Lawrence  <alan.lawrence@arm.com>
3015
3016         * fold-const.c (get_array_ctor_element_at_index): Fix whitespace, typo.
3017
3018 2015-11-11  Jiong Wang  <jiong.wang@arm.com>
3019             Jim Wilson  <wilson@gcc.gnu.org>
3020
3021         PR target/67305
3022         * config/arm/arm.md (neon_vector_mem_operand): Return FALSE if strict
3023         be true and eliminable registers mentioned.
3024
3025 2015-11-11  Claudiu Zissulescu  <claziss@synopsys.com>
3026
3027         * common/config/arc/arc-common.c (arc_handle_option): Handle ARCv2
3028         options.
3029         * config/arc/arc-opts.h: Add ARCv2 CPUs.
3030         * config/arc/arc-protos.h (arc_secondary_reload_conv): Prototype.
3031         * config/arc/arc.c (arc_secondary_reload): Handle subreg (reg)
3032         situation, and store instructions with large offsets.
3033         (arc_secondary_reload_conv): New function.
3034         (arc_init): Add ARCv2 options.
3035         (arc_conditional_register_usage): Select the proper register usage
3036         for ARCv2 processors.
3037         (arc_handle_interrupt_attribute): ILINK2 is only valid for ARCv1
3038         architecture.
3039         (arc_compute_function_type): Likewise.
3040         (arc_print_operand): Handle new ARCv2 punctuation characters.
3041         (arc_return_in_memory): ARCv2 ABI returns in registers up to 16 bytes.
3042         (workaround_arc_anomaly, arc_asm_insn_p, arc_loop_hazard): New
3043         function.
3044         (arc_reorg, arc_hazard): Use it.
3045         * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __HS__ and __EM__.
3046         (ASM_SPEC): Add ARCv2 options.
3047         (TARGET_NORM): ARC HS has norm instructions by default.
3048         (TARGET_OPTFPE): Use optimized floating point emulation for ARC HS.
3049         (TARGET_AT_DBR_CONDEXEC): Only for ARC600 family.
3050         (TARGET_EM, TARGET_HS, TARGET_V2, TARGET_MPYW, TARGET_MULTI): Define.
3051         (SIGNED_INT16, TARGET_MPY, TARGET_ARC700_MPY, TARGET_ANY_MPY):
3052         Likewise.
3053         (TARGET_ARC600_FAMILY, TARGET_ARCOMPACT_FAMILY): Likewise.
3054         (TARGET_LP_WR_INTERLOCK): Likewise.
3055         * config/arc/arc.md
3056         (commutative_binary_mult_comparison_result_used, movsicc_insn)
3057         (mulsi3, mulsi3_600_lib, mulsidi3, mulsidi3_700, mulsi3_highpart)
3058         (umulsi3_highpart_i, umulsi3_highpart_int, umulsi3_highpart)
3059         (umulsidi3, umulsidi3_700, cstoresi4, simple_return, p_return_i):
3060         Use it for ARCv2.
3061         (mulhisi3, mulhisi3_imm, mulhisi3_reg, umulhisi3, umulhisi3_imm)
3062         (umulhisi3_reg, umulhisi3_reg, mulsi3_v2, nopv, bswapsi2)
3063         (prefetch, divsi3, udivsi3 modsi3, umodsi3, arcset, arcsetltu)
3064         (arcsetgeu, arcsethi, arcsetls, reload_*_load, reload_*_store)
3065         (extzvsi): New pattern.
3066         * config/arc/arc.opt: New ARCv2 options.
3067         * config/arc/arcEM.md: New file.
3068         * config/arc/arcHS.md: Likewise.
3069         * config/arc/constraints.md (C3p): New constraint, accepts 1 and 2
3070         values.
3071         (Cm2): A signed 9-bit integer constant constraint.
3072         (C62): An unsigned 6-bit integer constant constraint.
3073         (C16): A signed 16-bit integer constant constraint.
3074         * config/arc/predicates.md (mult_operator): Add ARCv2 processort.
3075         (short_const_int_operand): New predicate.
3076         * config/arc/t-arc-newlib: Add ARCv2 multilib options.
3077         * doc/invoke.texi: Add documentation for -mcpu=<archs/arcem>
3078         -mcode-density and -mdiv-rem.
3079
3080 2015-11-11  Julia Koval  <julia.koval@intel.com>
3081
3082         * config/i386/i386.c (m_SKYLAKE_AVX512): Fix typo.
3083
3084 2015-11-11  Julia Koval  <julia.koval@intel.com>
3085
3086         * config/i386/i386.c: Handle "skylake" and "skylake-avx512".
3087
3088 2015-11-11  Martin Liska  <mliska@suse.cz>
3089
3090         * gimple-ssa-strength-reduction.c (create_phi_basis):
3091         Use auto_vec.
3092         * passes.c (release_dump_file_name): New function.
3093         (pass_init_dump_file): Used from this function.
3094         (pass_fini_dump_file): Likewise.
3095         * tree-sra.c (convert_callers_for_node): Use xstrdup_for_dump.
3096         * var-tracking.c (vt_initialize): Use pool_allocator.
3097
3098 2015-11-11  Richard Biener  <rguenth@gcc.gnu.org>
3099             Jiong Wang      <jiong.wang@arm.com>
3100
3101         PR tree-optimization/68234
3102         * tree-vrp.c (vrp_visit_phi_node): Extend SCEV check to those loop PHI
3103         node which estimiated to be VR_VARYING initially.
3104
3105 2015-11-11  Robert Suchanek  <robert.suchanek@imgtec.com>
3106
3107         * regname.c (scan_rtx_reg): Check the matching number of consecutive
3108         registers when tying chains.
3109         (build_def_use): Move terminated_this_insn earlier in the function.
3110
3111 2015-11-10  Mike Frysinger  <vapier@gentoo.org>
3112
3113         * configure.ac: Use = with test and not ==.
3114         * configure: Regenerated.
3115
3116 2015-11-11  David Edelsohn  <dje.gcc@gmail.com>
3117
3118         * config/rs6000/aix.h (TARGET_OS_AIX_CPP_BUILTINS): Add cpu and
3119         machine asserts.  Update defines for 64 bit.
3120
3121 2015-11-11  Charles Baylis  <charles.baylis@linaro.org>
3122
3123         PR target/63870
3124         * config/arm/neon.md (neon_vld1_lane<mode>): Remove error for invalid
3125         lane number.
3126         (neon_vst1_lane<mode>): Likewise.
3127         (neon_vld2_lane<mode>): Likewise.
3128         (neon_vst2_lane<mode>): Likewise.
3129         (neon_vld3_lane<mode>): Likewise.
3130         (neon_vst3_lane<mode>): Likewise.
3131         (neon_vld4_lane<mode>): Likewise.
3132         (neon_vst4_lane<mode>): Likewise.
3133
3134 2015-11-11  Charles Baylis  <charles.baylis@linaro.org>
3135
3136         PR target/63870
3137         * config/arm/arm-builtins.c: (arm_load1_qualifiers) Use
3138         qualifier_struct_load_store_lane_index.
3139         (arm_storestruct_lane_qualifiers) Likewise.
3140         * config/arm/neon.md: (neon_vld1_lane<mode>) Reverse lane numbers for
3141         big-endian.
3142         (neon_vst1_lane<mode>) Likewise.
3143         (neon_vld2_lane<mode>) Likewise.
3144         (neon_vst2_lane<mode>) Likewise.
3145         (neon_vld3_lane<mode>) Likewise.
3146         (neon_vst3_lane<mode>) Likewise.
3147         (neon_vld4_lane<mode>) Likewise.
3148         (neon_vst4_lane<mode>) Likewise.
3149
3150 2015-11-11  Charles Baylis  <charles.baylis@linaro.org>
3151
3152         PR target/63870
3153         * config/arm/arm-builtins.c (enum arm_type_qualifiers): New enumerator
3154         qualifier_struct_load_store_lane_index.
3155         (builtin_arg): New enumerator NEON_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
3156         (arm_expand_neon_args): New parameter. Remove ellipsis. Handle NEON
3157         argument qualifiers.
3158         (arm_expand_neon_builtin): Handle new NEON argument qualifier.
3159         * config/arm/arm.h (NEON_ENDIAN_LANE_N): New macro.
3160
3161 2015-11-10  Nathan Sidwell  <nathan@codesourcery.com>
3162
3163         * config/nvptx/nvptx.opt (moptimize): New flag.
3164         * config/nvptx/nvptx.c (nvptx_option_override): Set nvptx_optimize
3165         default.
3166         (nvptx_optimize_inner): New.
3167         (nvptx_process_pars): Call it when optimizing.
3168         * doc/invoke.texi (Nvidia PTX Options): Document -moptimize.
3169
3170 2015-11-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3171
3172         * config/rs6000/rs6000.c (rs6000_secondary_reload_direct_move):
3173         Remove redundant code.
3174
3175 2015-11-10  Jeff Law  <law@redhat.com>
3176
3177         * config/ft32/ft32.c (ft32_print_operand): Supply mode to
3178         call to output_address.
3179         * config/moxie/moxie.c (moxie_print_operand_address): Similarly.
3180         Add unnamed machine_mode argument.
3181
3182 2015-11-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
3183
3184         * config.gcc (powerpc*-*-*, rs6000*-*-*): Add power9 to hosts that
3185         default to 64-bit.
3186
3187 2015-11-10  Uros Bizjak  <ubizjak@gmail.com>
3188
3189         * config/i386/i386.md (*movabs<mode>_1): Add explicit
3190         size directives for -masm=intel.
3191         (*movabs<mode>_2): Ditto.
3192
3193 2015-11-10  Uros Bizjak  <ubizjak@gmail.com>
3194
3195         * config/i386/i386.c (ix86_print_operand): Remove dead code that
3196         tried to avoid (%rip) for call operands.
3197
3198 2015-11-10  Uros Bizjak  <ubizjak@gmail.com>
3199
3200         * config/i386/i386.c (ix86_print_operand_address_as): Add no_rip
3201         argument.  Do not use RIP relative addressing when no_rip is set.
3202         (ix86_print_operand): Update call to ix86_print_operand_address_as.
3203         (ix86_print_operand_address): Ditto.
3204         * config/i386/i386.md (*movabs<mode>_1): Use %P modifier for
3205         absolute movabs operand 0.  Add square braces for -masm=intel.
3206         (*movabs<mode>_2): Ditto for operand 1.
3207
3208 2015-11-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3209
3210         * config/arm/arm.c (arm_new_rtx_costs, FIX case): Handle
3211         combine_vcvtf2i pattern.
3212
3213 2015-11-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3214
3215         * config/arm/arm.c (neon_valid_immediate): Remove integer
3216         CONST_DOUBLE handling.  It should never occur.
3217
3218 2015-11-10  Matthew Wahab  <matthew.wahab@arm.com>
3219
3220         * config/aarch64/atomics.md (unspecv): Move to iterators.md.
3221         (ATOMIC_LDOP): Likewise.
3222         (atomic_ldop): Likewise.
3223         * config/aarch64/iterators.md (unspecv): Moved from atomics.md.
3224         (ATOMIC_LDOP): Likewise.
3225         (atomic_ldop): Likewise.
3226
3227 2015-11-10  Martin Liska  <mliska@suse.cz>
3228
3229         * alloc-pool.h (allocate_raw): New function.
3230         (operator new (size_t, object_allocator<T> &a)): Use the
3231         function instead of object_allocator::allocate).
3232
3233 2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
3234
3235         * config/i386/sse.md (HALFMASKMODE): New attribute.
3236         (DOUBLEMASKMODE): New attribute.
3237         (vec_pack_trunc_qi): New.
3238         (vec_pack_trunc_<mode>): New.
3239         (vec_unpacks_lo_hi): New.
3240         (vec_unpacks_lo_si): New.
3241         (vec_unpacks_lo_di): New.
3242         (vec_unpacks_hi_hi): New.
3243         (vec_unpacks_hi_<mode>): New.
3244
3245 2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
3246
3247         * optabs.c (expand_binop_directly): Allow scalar mode for
3248         vec_pack_trunc_optab.
3249         * tree-vect-loop.c (vect_determine_vectorization_factor): Skip
3250         boolean vector producers from pattern sequence when computing VF.
3251         * tree-vect-patterns.c (vect_vect_recog_func_ptrs) Add
3252         vect_recog_mask_conversion_pattern.
3253         (search_type_for_mask): Choose the smallest
3254         type if different size types are mixed.
3255         (build_mask_conversion): New.
3256         (vect_recog_mask_conversion_pattern): New.
3257         (vect_pattern_recog_1): Allow scalar mode for boolean vectype.
3258         * tree-vect-stmts.c (vectorizable_mask_load_store): Support masked
3259         load with pattern.
3260         (vectorizable_conversion): Support boolean vectors.
3261         (free_stmt_vec_info): Allow patterns for statements with no lhs.
3262         * tree-vectorizer.h (NUM_PATTERNS): Increase to 14.
3263
3264 2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
3265
3266         * config/i386/i386-protos.h (ix86_expand_sse_movcc): New.
3267         * config/i386/i386.c (ix86_expand_sse_movcc): Make public.
3268         Cast mask to FP mode if required.
3269         * config/i386/sse.md (vcond_mask_<mode><avx512fmaskmodelower>): New.
3270         (vcond_mask_<mode><avx512fmaskmodelower>): New.
3271         (vcond_mask_<mode><sseintvecmodelower>): New.
3272         (vcond_mask_<mode><sseintvecmodelower>): New.
3273         (vcond_mask_v2div2di): New.
3274         (vcond_mask_<mode><sseintvecmodelower>): New.
3275         (vcond_mask_<mode><sseintvecmodelower>): New.
3276
3277 2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
3278
3279         * optabs-query.h (get_vcond_mask_icode): New.
3280         * optabs-tree.c (expand_vec_cond_expr_p): Use
3281         get_vcond_mask_icode for VEC_COND_EXPR with mask.
3282         * optabs.c (expand_vec_cond_mask_expr): New.
3283         (expand_vec_cond_expr): Use get_vcond_mask_icode when possible.
3284         * optabs.def (vcond_mask_optab): New.
3285         * tree-vect-patterns.c (vect_recog_bool_pattern): Don't
3286         generate redundant comparison for COND_EXPR.
3287         * tree-vect-stmts.c (vect_is_simple_cond): Allow SSA_NAME
3288         as a condition.
3289         (vectorizable_condition): Likewise.
3290         * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow
3291         cond_exp with no embedded comparison.
3292         (vect_build_slp_tree_1): Likewise.
3293
3294 2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
3295
3296         * config/i386/sse.md (maskload<mode>): Rename to ...
3297         (maskload<mode><sseintvecmodelower>): ... this.
3298         (maskstore<mode>): Rename to ...
3299         (maskstore<mode><sseintvecmodelower>): ... this.
3300         (maskload<mode><avx512fmaskmodelower>): New.
3301         (maskstore<mode><avx512fmaskmodelower>): New.
3302
3303 2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
3304
3305         * internal-fn.c (expand_MASK_LOAD): Adjust to maskload optab changes.
3306         (expand_MASK_STORE): Adjust to maskstore optab changes.
3307         * optabs-query.c (can_vec_mask_load_store_p): Add MASK_MODE arg.
3308          Adjust to maskload, maskstore optab changes.
3309         * optabs-query.h (can_vec_mask_load_store_p): Add MASK_MODE arg.
3310         * optabs.def (maskload_optab): Transform into convert optab.
3311         (maskstore_optab): Likewise.
3312         * tree-if-conv.c (ifcvt_can_use_mask_load_store): Adjust to
3313         can_vec_mask_load_store_p signature change.
3314         (predicate_mem_writes): Use boolean mask.
3315         * tree-vect-stmts.c (vectorizable_mask_load_store): Adjust to
3316         can_vec_mask_load_store_p signature change.  Allow invariant masks.
3317         (vectorizable_operation): Ignore type precision for boolean vectors.
3318
3319 2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
3320
3321         * expr.c (do_store_flag): Use expand_vec_cmp_expr for mask results.
3322         (const_vector_mask_from_tree): New.
3323         (const_vector_from_tree): Use const_vector_mask_from_tree
3324         for boolean vectors.
3325         * optabs-query.h (get_vec_cmp_icode): New.
3326         * optabs-tree.c (expand_vec_cmp_expr_p): New.
3327         * optabs-tree.h (expand_vec_cmp_expr_p): New.
3328         * optabs.c (vector_compare_rtx): Add OPNO arg.
3329         (expand_vec_cond_expr): Adjust to vector_compare_rtx change.
3330         (expand_vec_cmp_expr): New.
3331         * optabs.def (vec_cmp_optab): New.
3332         (vec_cmpu_optab): New.
3333         * optabs.h (expand_vec_cmp_expr): New.
3334         * tree-vect-generic.c (expand_vector_comparison): Add vector
3335         comparison optabs check.
3336         * tree-vect-loop.c (vect_determine_vectorization_factor):  Ignore mask
3337         operations for VF.  Add mask type computation.
3338         * tree-vect-stmts.c (get_mask_type_for_scalar_type): New.
3339         (vectorizable_comparison): New.
3340         (vect_analyze_stmt): Add vectorizable_comparison.
3341         (vect_transform_stmt): Likewise.
3342         (vect_init_vector): Support boolean vector invariants.
3343         (vect_get_vec_def_for_operand): Add VECTYPE arg.
3344         (vectorizable_condition): Directly provide vectype for invariants
3345         used in comparison.
3346         * tree-vectorizer.h (get_mask_type_for_scalar_type): New.
3347         (enum vect_var_kind): Add vect_mask_var.
3348         (enum stmt_vec_info_type): Add comparison_vec_info_type.
3349         (vectorizable_comparison): New.
3350         (vect_get_vec_def_for_operand): Add VECTYPE arg.
3351         * tree-vect-data-refs.c (vect_get_new_vect_var): Support vect_mask_var.
3352         (vect_create_destination_var): Likewise.
3353         * tree-vect-patterns.c (check_bool_pattern): Check fails
3354         if we can vectorize comparison directly.
3355         (search_type_for_mask): New.
3356         (vect_recog_bool_pattern): Support cases when bool pattern check fails.
3357         * tree-vect-slp.c (vect_build_slp_tree_1): Allow
3358         comparison statements.
3359         (vect_get_constant_vectors): Support boolean vector constants.
3360         * config/i386/i386-protos.h (ix86_expand_mask_vec_cmp): New.
3361         (ix86_expand_int_vec_cmp): New.
3362         (ix86_expand_fp_vec_cmp): New.
3363         * config/i386/i386.c (ix86_expand_sse_cmp): Allow NULL for
3364         op_true and op_false.
3365         (ix86_int_cmp_code_to_pcmp_immediate): New.
3366         (ix86_fp_cmp_code_to_pcmp_immediate): New.
3367         (ix86_cmp_code_to_pcmp_immediate): New.
3368         (ix86_expand_mask_vec_cmp): New.
3369         (ix86_expand_fp_vec_cmp): New.
3370         (ix86_expand_int_sse_cmp): New.
3371         (ix86_expand_int_vcond): Use ix86_expand_int_sse_cmp.
3372         (ix86_expand_int_vec_cmp): New.
3373         (ix86_get_mask_mode): New.
3374         (TARGET_VECTORIZE_GET_MASK_MODE): New.
3375         * config/i386/sse.md (avx512fmaskmodelower): New.
3376         (vec_cmp<mode><avx512fmaskmodelower>): New.
3377         (vec_cmp<mode><sseintvecmodelower>): New.
3378         (vec_cmpv2div2di): New.
3379         (vec_cmpu<mode><avx512fmaskmodelower>): New.
3380         (vec_cmpu<mode><sseintvecmodelower>): New.
3381         (vec_cmpuv2div2di): New.
3382
3383 2015-11-10  Richard Biener  <rguenther@suse.de>
3384
3385         PR tree-optimization/68240
3386         * tree-ssa-sccvn.c (cond_stmts_equal_p): Handle commutative compares
3387         properly.
3388         (visit_phi): For PHIs with just a single executable edge
3389         take its value directly.
3390         (expressions_equal_p): Handle VN_TOP properly.
3391
3392 2015-11-10  Richard Biener  <rguenther@suse.de>
3393
3394         * tree-vect-data-refs.c (vect_slp_analyze_node_dependences):
3395         Handle memory using/clobbering stmts without a STMT_VINFO_DATA_REF
3396         conservatively.
3397
3398 2015-11-10  Richard Biener  <rguenther@suse.de>
3399
3400         PR tree-optimization/56118
3401         * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Make equal
3402         cost favor vectorized version.
3403
3404 2015-11-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3405
3406         * config/aarch64/aarch64.md (<neg_not_op><mode>cc): New define_expand.
3407         * config/aarch64/iterators.md (NEG_NOT): New code iterator.
3408         (neg_not_op): New code attribute.
3409
3410 2015-11-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3411
3412         * ifcvt.c (noce_try_inverse_constants): New function.
3413         (noce_process_if_block): Call it.
3414         * optabs.h (emit_conditional_neg_or_complement): Declare prototype.
3415         * optabs.def (negcc_optab, notcc_optab): Declare.
3416         * optabs.c (emit_conditional_neg_or_complement): New function.
3417         * doc/tm.texi (Standard Names): Document negcc, notcc names.
3418
3419 2015-11-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3420
3421         PR rtl-optimization/68236
3422         * haifa-sched.c (autopref_multipass_dfa_lookahead_guard): Return 0
3423         if insn_queue doesn't exist.
3424         (haifa_sched_finish): Reset insn_queue to NULL.
3425
3426 2015-11-10  Robert Suchanek  <robert.suchanek@imgtec.com>
3427
3428         * regrename.c (create_new_chain): Initialize renamed and tied_chain.
3429         (build_def_use): Initialize terminated_this_insn.
3430         (find_best_rename_reg): Pick and check register from the tied chain.
3431         (regrename_do_replace): Mark head as renamed.
3432         (struct du_head *terminated_this_insn). New static variable.
3433         (scan_rtx_reg): Tie chains in move insns.  Set terminated_this_insn.
3434         * regrename.h (struct du_head): Add tied_chain, renamed members.
3435
3436 2015-11-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3437
3438         PR bootstrap/68256
3439         * config/aarch64/aarch64.c (aarch64_use_constant_blocks_p):
3440         Return false.
3441
3442 2015-11-09  Eric Botcazou  <ebotcazou@adacore.com>
3443
3444         PR target/57845
3445         * config/sparc/sparc.c (sparc_function_value_1): In 32-bit mode, do
3446         not promote the mode for aggregate types.
3447
3448 2015-11-09  Nathan Sidwell  <nathan@codesourcery.com>
3449
3450         * omp-low.h (replace_oacc_fn_attrib, build_oacc_routine_dims): Declare.
3451         * omp-low.c (build_oacc_routine_dims): New.
3452
3453 2015-11-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
3454
3455         * config/rs6000/constraints.md (wF constraint): New constraints
3456         for power9/toc fusion.
3457         (wG constraint): Likewise.
3458
3459         * config/rs6000/predicates.md (u6bit_cint_operand): New
3460         predicate, recognize 0..63.
3461         (upper16_cint_operand): New predicate for power9 and toc fusion.
3462         (fpr_reg_operand): Likewise.
3463         (toc_fusion_or_p9_reg_operand): Likewise.
3464         (toc_fusion_mem_raw): Likewise.
3465         (toc_fusion_mem_wrapped): Likewise.
3466         (fusion_gpr_addis): If power9 fusion, allow fusion for a larger
3467         address range.
3468         (fusion_gpr_mem_combo): Delete, use fusion_addis_mem_combo_load
3469         instead.
3470         (fusion_addis_mem_combo_load): Add support for power9 fusion of
3471         floating point loads, floating point stores, and gpr stores.
3472         (fusion_addis_mem_combo_store): Likewise.
3473         (fusion_offsettable_mem_operand): Likewise.
3474
3475         * config/rs6000/rs6000-protos.h (emit_fusion_addis): Add declarations.
3476         (emit_fusion_load_store): Likewise.
3477         (fusion_p9_p): Likewise.
3478         (expand_fusion_p9_load): Likewise.
3479         (expand_fusion_p9_store): Likewise.
3480         (emit_fusion_p9_load): Likewise.
3481         (emit_fusion_p9_store): Likewise.
3482         (fusion_wrap_memory_address): Likewise.
3483
3484         * config/rs6000/rs6000.c (struct rs6000_reg_addr): Add new
3485         elements for power9 fusion.
3486         (rs6000_debug_print_mode): Rework debug information to print more
3487         information about fusion.
3488         (rs6000_init_hard_regno_mode_ok): Setup for power9 fusion support.
3489         (rs6000_legitimate_address_p): Recognize toc fusion as a valid
3490         offsettable memory address.
3491         (rs6000_rtx_costs): Update costs for new ISA 3.0 instructions.
3492         (emit_fusion_gpr_load): Move most of the code from
3493         emit_fusion_gpr_load into emit_fusion-addis that handles both
3494         power8 and power9 fusion.
3495         (emit_fusion_addis): Likewise.
3496         (emit_fusion_load_store): Likewise.
3497         (fusion_wrap_memory_address): Add support for TOC fusion.
3498         (fusion_split_address): Likewise.
3499         (fusion_p9_p): Add support for power9 fusion.
3500         (expand_fusion_p9_load): Likewise.
3501         (expand_fusion_p9_store): Likewise.
3502         (emit_fusion_p9_load): Likewise.
3503         (emit_fusion_p9_store): Likewise.
3504
3505         * config/rs6000/rs6000.h (TARGET_EXTSWSLI): Macros for support for
3506         new instructions in ISA 3.0.
3507         (TARGET_CTZ): Likewise.
3508         (TARGET_TOC_FUSION_INT): Macros for power9 fusion support.
3509         (TARGET_TOC_FUSION_FP): Likewise.
3510
3511         * config/rs6000/rs6000.md (UNSPEC_FUSION_P9): New power9/toc
3512         fusion unspecs.
3513         (UNSPEC_FUSION_ADDIS): Likewise.
3514         (QHSI mode iterator): New iterator for power9 fusion.
3515         (GPR_FUSION): Likewise.
3516         (FPR_FUSION): Likewise.
3517         (mod<mode>3): Add support for ISA 3.0 modulus instructions.
3518         (umod<mode>3): Likewise.
3519         (divmod peephole): Likewise.
3520         (udivmod peephole): Likewise.
3521         (ctz<mode>2): Add support for ISA 3.0 count trailing zeros scalar
3522         instructions.
3523         (ctz<mode>2_h): Likewise.
3524         (ashdi3_extswsli): Add support for ISA 3.0 EXTSWSLI instruction.
3525         (ashdi3_extswsli_dot): Likewise.
3526         (ashdi3_extswsli_dot2): Likewise.
3527         (power9 fusion splitter): New power9/toc fusion support.
3528         (toc_fusionload_<mode>): Likewise.
3529         (toc_fusionload_di): Likewise.
3530         (fusion_gpr_load_<mode>): Update predicate function.
3531         (power9 fusion peephole2s): New power9/toc fusion support.
3532         (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
3533         (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_store): Likewise.
3534         (fusion_fpr_<P:mode>_<FPR_FUSION:mode>_load): Likewise.
3535         (fusion_fpr_<P:mode>_<FPR_FUSION:mode>_store): Likewise.
3536         (fusion_p9_<mode>_constant): Likewise.
3537
3538 2015-11-09  Steve Ellcey  <sellcey@imgtec.com>
3539
3540         * optabs.c (prepare_libcall_arg): New function.
3541         (expand_fixed_convert): Add call to prepare_libcall_arg.
3542
3543 2015-11-09  Nikolai Bozhenov  <n.bozhenov@samsung.com>
3544
3545         * sched-int.h (dump_rgn_dependencies_dot): Declare
3546         * sched-rgn.c (dump_rgn_dependencies_dot): New function
3547         * print-rtl.h (print_insn): Add prototype
3548
3549         * haifa-sched.c (setup_sched_dump): Don't redirect output to stderr.
3550         * common.opt (-fsched-verbose): Set default value to 1.
3551         * invoke.texi (-fsched-verbose): Update the option's description.
3552
3553 2015-11-09  Eric Botcazou  <ebotcazou@adacore.com>
3554
3555         * config/visium/visium.h (PRINT_OPERAND): Delete.
3556         (PRINT_OPERAND_PUNCT_VALID_P): Likewise.
3557         (PRINT_OPERAND_ADDRESS): Likewise.
3558         * config/visium/visium.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define
3559         to...
3560         (visium_print_operand_punct_valid_p): ...this.  New function.
3561         (TARGET_PRINT_OPERAND): Define to...
3562         (print_operand): Rename to...
3563         (visium_print_operand): ...this.
3564         (TARGET_PRINT_OPERAND_ADDRESS): Define to...
3565         (visium_output_address): Rename to...
3566         (visium_print_operand_address): ...this.
3567         (print_operand_address): Delete.
3568
3569 2015-11-09  Eric Botcazou  <ebotcazou@adacore.com>
3570
3571         PR middle-end/68259
3572         * tree.h (reverse_storage_order_for_component_p) <COMPONENT_REF>:
3573         Check that the type of the first operand is an aggregate type.
3574
3575 2015-11-09  Nathan Sidwell  <nathan@codesourcery.com>
3576
3577         * omp-low.c: Fix some OpenACC comment typos.
3578         (lower_reduction_clauses): Remove BUILT_IN_GOACC_GET_THREAD_NUM call.
3579         * omp-builtins.def (BUILT_IN_GOACC_GET_THREAD_NUM,
3580         BUILT_IN_GOACC_GET_NUM_THREADS): Delete.
3581
3582 2015-11-09  Uros Bizjak  <ubizjak@gmail.com>
3583
3584         * config/i386/i386.md (*strmovqi_1): Fix insn enable condition.
3585
3586 2015-11-09  Jeff Law  <law@redhat.com>
3587
3588         * tree-ssanames.c (verify_ssaname_freelists): Simplify check for
3589         being in gimple/ssa form.  Remove redundant check for SSA_NAME.
3590         Fix comment typo.
3591
3592 2015-11-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
3593             Peter Bergner  <bergner@vnet.ibm.com>
3594
3595         * config/rs6000/rs6000.opt (-mpower9-fusion): Add new switches for
3596         ISA 3.0 (power9).
3597         (-mpower9-vector): Likewise.
3598         (-mpower9-dform): Likewise.
3599         (-mpower9-minmax): Likewise.
3600         (-mtoc-fusion): Likewise.
3601         (-mmodulo): Likewise.
3602         (-mfloat128-hardware): Likewise.
3603
3604         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add option
3605         mask for ISA 3.0 (power9).
3606         (POWERPC_MASKS): Add new ISA 3.0 switches.
3607         (power9 cpu): Add power9 cpu.
3608
3609         * config/rs6000/rs6000.h (ASM_CPU_POWER9_SPEC): Add support for power9.
3610         (ASM_CPU_SPEC): Likewise.
3611         (EXTRA_SPECS): Likewise.
3612
3613         * config/rs6000/rs6000-opts.h (enum processor_type): Add
3614         PROCESSOR_POWER9.
3615
3616         * config/rs6000/rs6000.c (power9_cost): Initial cost setup for power9.
3617         (rs6000_debug_reg_global): Add support for power9 fusion.
3618         (rs6000_setup_reg_addr_masks): Cache mode size.
3619         (rs6000_option_override_internal): Until real power9 tuning is
3620         added, use -mtune=power8 for -mcpu=power9.
3621         (rs6000_setup_reg_addr_masks): Do not allow pre-increment,
3622         pre-decrement, or pre-modify on SFmode/DFmode if we allow the use
3623         of Altivec registers.
3624         (rs6000_option_override_internal): Add support for ISA 3.0 switches.
3625         (rs6000_loop_align): Add support for power9 cpu.
3626         (rs6000_file_start): Likewise.
3627         (rs6000_adjust_cost): Likewise.
3628         (rs6000_issue_rate): Likewise.
3629         (insn_must_be_first_in_group): Likewise.
3630         (insn_must_be_last_in_group): Likewise.
3631         (force_new_group): Likewise.
3632         (rs6000_register_move_cost): Likewise.
3633         (rs6000_opt_masks): Likewise.
3634
3635         * config/rs6000/rs6000.md (cpu attribute): Add power9.
3636         * config/rs6000/rs6000-tables.opt: Regenerate.
3637
3638         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
3639         _ARCH_PWR9 if power9 support is available.
3640
3641         * config/rs6000/aix61.h (ASM_CPU_SPEC): Add power9.
3642         * config/rs6000/aix53.h (ASM_CPU_SPEC): Likewise.
3643
3644         * configure.ac: Determine if the assembler supports the ISA 3.0
3645         instructions.
3646         * config.in (HAVE_AS_POWER9): Likewise.
3647         * configure: Regenerate.
3648
3649         * doc/invoke.texi (RS/6000 and PowerPC Options): Document ISA 3.0
3650         switches.
3651
3652 2015-11-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3653
3654         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate):
3655         Remove integer CONST_DOUBLE handling.  It should never occur.
3656
3657 2015-11-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3658
3659         PR target/68129
3660         * config/aarch64/aarch64.h (TARGET_SUPPORTS_WIDE_INT): Define to 1.
3661         * config/aarch64/aarch64.c (aarch64_print_operand, CONST_DOUBLE):
3662         Delete VOIDmode case.  Assert that mode is not VOIDmode.
3663         * config/aarch64/predicates.md (const0_operand): Remove const_double
3664         match.
3665
3666 2015-11-09  Martin Liska  <mliska@suse.cz>
3667
3668         * ipa-inline-analysis.c (estimate_function_body_sizes): Call
3669         body_info release function.
3670         * ipa-prop.c (ipa_release_body_info): New function.
3671         (ipa_analyze_node): Call the function.
3672         (ipa_node_params::~ipa_node_params): Release known_csts.
3673         * ipa-prop.h (ipa_release_body_info): Declare.
3674
3675 2015-11-09  Martin Liska  <mliska@suse.cz>
3676
3677         * gcc.c (record_temp_file): Release name string.
3678         * ifcvt.c (noce_convert_multiple_sets): Use auto_vec instead of vec.
3679         * lra-lives.c (free_live_range_list): Utilize
3680         lra_live_range_pool for allocation and deallocation.
3681         (create_live_range): Likewise.
3682         (copy_live_range): Likewise.
3683         (lra_merge_live_ranges): Likewise.
3684         (remove_some_program_points_and_update_live_ranges): Likewise.
3685         (lra_create_live_ranges_1): Release point_freq_vec that can
3686         be not freed from previous iteration of the function.
3687         * tree-eh.c (lower_try_finally_switch): Use auto_vec instead of vec.
3688         * tree-sra.c (sra_deinitialize): Release all vectors in
3689         base_access_vec.
3690         * tree-ssa-dom.c (free_dom_edge_info): Make the function extern.
3691         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges):
3692         Release edge_info for a removed edge.
3693         (thread_through_all_blocks): Free region vector.
3694         * tree-ssa.h (free_dom_edge_info): Declare function extern.
3695
3696 2015-11-09  Ilya Enkovich  <enkovich.gnu@gmail.com>
3697
3698         * optabs.c (expand_vec_cond_expr): Always get sign from type.
3699         * tree.c (wide_int_to_tree): Support negative values for boolean.
3700         (build_nonstandard_boolean_type): Use signed type for booleans.
3701
3702 2015-11-09  Richard Biener  <rguenther@suse.de>
3703
3704         PR tree-optimization/68248
3705         * tree-vect-generic.c (expand_vector_operations_1): Handle scalar rhs2.
3706
3707 2015-11-09  Richard Biener  <rguenther@suse.de>
3708
3709         PR tree-optimization/56118
3710         * tree-vectorizer.h (vect_find_last_scalar_stmt_in_slp): Declare.
3711         * tree-vect-slp.c (vect_find_last_scalar_stmt_in_slp): Export.
3712         * tree-vect-data-refs.c (vect_slp_analyze_node_dependences): New
3713         function.
3714         (vect_slp_analyze_data_ref_dependences): Instead of computing
3715         all dependences of the region DRs just analyze the code motions
3716         SLP vectorization will perform.  Remove SLP instances that
3717         cannot have their store/load motions applied.
3718         (vect_analyze_data_refs): Allow DRs without a vectype
3719         in BB vectorization.
3720
3721 2015-11-09  Julian Brown  <julian@codesourcery.com>
3722
3723         * final.c (output_asm_insn): Pass VOIDmode to output_address.
3724         (output_address): Add MODE argument. Pass to print_operand_address
3725         hook.
3726         * targhooks.c (default_print_operand_address): Add MODE argument.
3727         * targhooks.h (default_print_operand_address): Update prototype.
3728         * output.h (output_address): Update prototype.
3729         * target.def (print_operand_address): Add MODE argument.
3730         * config/vax/vax.c (print_operand_address): Pass VOIDmode to
3731         output_address.
3732         (print_operand): Pass access mode to output_address.
3733         * config/mcore/mcore.c (mcore_print_operand_address): Add MODE
3734         argument.
3735         (mcore_print_operand): Update calls to mcore_print_operand_address.
3736         * config/fr30/fr30.c (fr30_print_operand): Pass VOIDmode to
3737         output_address.
3738         * config/lm32/lm32.c (lm32_print_operand): Pass mode in calls to
3739         output_address.
3740         * config/tilegx/tilegx.c (output_memory_reference_mode): Remove
3741         global.
3742         (tilegx_print_operand): Don't set above global. Update calls to
3743         output_address.
3744         (tilegx_print_operand_address): Add MODE argument. Use instead of
3745         output_memory_reference_mode global.
3746         * config/frv/frv.c (frv_print_operand_address): Add MODE argument.
3747         (frv_print_operand): Pass mode to frv_print_operand_address calls.
3748         * config/mn10300/mn10300.c (mn10300_print_operand): Pass mode to
3749         output_address.
3750         * config/cris/cris.c (cris_print_operand_address): Add MODE argument.
3751         (cris_print_operand): Pass mode to output_address calls.
3752         * config/spu/spu.c (print_operand): Pass mode to output_address calls.
3753         * config/aarch64/aarch64.h (aarch64_print_operand)
3754         (aarch64_print_operand_address): Remove prototypes.
3755         * config/aarch64/aarch64.c (aarch64_memory_reference_mode): Delete
3756         global.
3757         (aarch64_print_operand): Make static. Update calls to output_address.
3758         (aarch64_print_operand_address): Add MODE argument. Use instead of
3759         aarch64_memory_reference_mode global.
3760         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define target
3761         hooks.
3762         * config/aarch64/aarch64.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
3763         Delete macro definitions.
3764         * config/pa/pa.c (pa_print_operand): Pass mode in output_address calls.
3765         * config/xtensa/xtensa.c (print_operand): Pass mode in
3766         output_address calls.
3767         * config/h8300/h8300.c (h8300_print_operand_address): Add MODE
3768         argument.
3769         (h83000_print_operand): Update calls to h8300_print_operand_address
3770         and output_address.
3771         * config/ia64/ia64.c (ia64_print_operand_address): Add MODE argument.
3772         * config/tilepro/tilepro.c (output_memory_reference_mode): Delete
3773         global.
3774         (tilepro_print_operand): Pass mode to output_address.
3775         (tilepro_print_operand_address): Add MODE argument. Use instead of
3776         output_memory_reference_mode.
3777         * config/nvptx/nvptx.c (output_decl_chunk, nvptx_assemble_integer)
3778         (nvptx_output_call_insn, nvptx_print_address_operand): Pass VOIDmode
3779         to output_address calls.
3780         (nvptx_print_operand_address): Add MODE argument.
3781         * config/alpha/alpha.c (print_operand): Pass mode argument in
3782         output_address calls.
3783         * config/m68k/m68k.c (print_operand): Pass mode argument in
3784         output_address call.
3785         * config/avr/avr.c (avr_print_operand_address): Add MODE argument.
3786         (avr_print_operand): Update calls to avr_print_operand_address.
3787         * config/sparc/sparc.c (sparc_print_operand_address): Add MODE
3788         argument. Update calls to output_address.
3789         (sparc_print_operand): Pass mode to output_address.
3790         * config/iq2000/iq2000.c (iq2000_print_operand_address): Add MODE
3791         argument.
3792         (iq2000_print_operand): Pass mode in output_address calls.
3793         * config/stormy16/stormy16.c (xstormy16_print_operand_address): Add
3794         MODE argument.
3795         (xstormy16_print_operand): Pass mode to
3796         xstormy16_print_operand_address calls.
3797         * config/mips/mips.c (mips_print_operand): Update calls to
3798         output_address.
3799         (mips_print_operand_address): Add MODE argument.
3800         * config/epiphany/epiphany.c (epiphany_print_operand): Update calls
3801         to output_address.
3802         (epiphany_print_operand_address): Add MODE argument. Add FIXME note.
3803         * config/pdp11/pdp11.c (pdp11_asm_print_operand): Update call to
3804         output_address.
3805         * config/rx/rx.c (rx_print_operand_address): Add MODE argument.
3806         (rx_print_operand): Update calls to output_address,
3807         rx_print_operand_address.
3808         * config/nds32/nds32.c (nds32_print_operand): Update calls to
3809         output_address.
3810         (nds32_print_operand_address): Add MODE argument.
3811         * config/rs6000/rs6000.c (print_operand): Pass mem mode to
3812         output_address calls.
3813         * config/c6x/c6x.c (print_address_offset): Pass mem mode to
3814         output_address call.
3815         (c6x_print_address_operand): Update calls to output_address.
3816         (c6x_print_operand_address): Pass mode to above.
3817         * config/v850/v850.c (v850_print_operand_address): Add MODE argument.
3818         (v850_print_operand): Pass mode to v850_print_operand_address,
3819         output_address.
3820         * config/mmix/mmix.c (mmix_print_operand_address): Add MODE argument.
3821         (mmix_print_operand): Pass mode in output_address calls.
3822         * config/sh/sh.c (sh_print_operand_address): Add MODE argument.
3823         (sh_print_operand): Pass mem mode to output_address,
3824         sh_print_operand_address.
3825         * config/cr16/cr16.c (cr16_print_operand_address): Add MODE argument.
3826         (cr16_print_operand): Pass mode to output_address,
3827         cr16_print_operand_address.
3828         * config/bfin/bfin.c (print_address_operand): Pass VOIDmode to
3829         output_address.
3830         * config/microblaze/microblaze.c (print_operand): Pass mode to
3831         output_address.
3832         * config/nios2/nios2.c (nios2_print_operand): Pass VOIDmode to
3833         output_address.
3834         (nios2_print_operand_address): Add MODE argument. Update call to
3835         nios2_print_operand_address.
3836         * config/s390/s390.c (print_operand): Pass mode to output_address.
3837         * config/m32c/m32c.c (m32c_print_operand_address): Add MODE argument.
3838         * config/arc/arc.c (arc_print_operand): Pass VOIDmode to
3839         output_address.
3840         * config/arm/arm.c (arm_print_operand_address): Add MODE argument.
3841         Use instead of output_memory_reference_mode.
3842         (output_memory_reference_mode): Delete global.
3843         (arm_print_operand): Pass mem mode to output_address.
3844         * config/m32r/m32r.c (m32r_print_operand_address): Add MODE argument.
3845         (m32r_print_operand): Pass mode to output_address.
3846         * config/msp430/msp430.c (msp430_print_operand_addr): Add MODE
3847         argument.
3848         (msp430_print_operand): Pass mode to msp430_print_operand_addr.
3849         * config/i386/i386.c (ix86_print_operand): Pass mode to
3850         output_address calls.
3851         (ix86_print_operand_address): Add MODE argument.
3852
3853 2015-11-09  Eric Botcazou  <ebotcazou@adacore.com>
3854
3855         PR middle-end/68251
3856         * tree-core.h (REF_REVERSE_STORAGE_ORDER): Move around.
3857         * tree.h (REF_REVERSE_STORAGE_ORDER): Change to default_def_flag.
3858         * tree-streamer-in.c (unpack_ts_base_value_fields): Adjust.
3859         * tree-streamer-out.c (pack_ts_base_value_fields): Likewise.
3860
3861 2015-11-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3862
3863         PR rtl-optimization/67749
3864         * ifcvt.c (noce_try_cmove_arith): Do not emit move in IF-ELSE
3865         case before emitting the two blocks.  Instead modify the register
3866         in the corresponding final insn of the basic block.
3867
3868 2015-11-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3869
3870         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Allow for differences in
3871         assembler syntax.
3872         Support Solaris ld.
3873         Define HAVE_INITFINI_ARRAY_SUPPORT as 0/1.
3874
3875         * config/sol2.h (SUPPORTS_INIT_PRIORITY): Define to
3876         HAVE_INITFINI_ARRAY_SUPPORT.
3877         * config/initfini-array.h: Check HAVE_INITFINI_ARRAY_SUPPORT value.
3878
3879         * configure.ac (gcc_cv_as_sparc_nobits): Remove.
3880         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section):
3881         Don't check HAVE_AS_SPARC_NOBITS.
3882         Heed SECTION_NOTYPE.
3883
3884         * configure: Regenerate.
3885         * config.in: Regenerate.
3886
3887 2015-11-09  Eric Botcazou  <ebotcazou@adacore.com>
3888
3889         PR middle-end/68253
3890         * fold-const.c (fold_truth_andor_1): Initialize new variables to 0.
3891
3892 2015-11-09  Richard Henderson  <rth@redhat.com>
3893
3894         * config/i386/i386-c.c (ix86_target_macros): Define __SEG_FS,
3895         __SEG_GS, __SEG_TLS.
3896         (ix86_register_pragmas): Register address spaces __seg_fs,
3897         __seg_gs, __seg_tls.
3898         * config/i386/i386-protos.h (enum ix86_address_seg): Remove.
3899         (ADDR_SPACE_SEG_FS, ADDR_SPACE_SEG_GS, ADDR_SPACE_SEG_TLS): New.
3900         (struct ix86_address): Use addr_space_t instead of ix86_address_seg.
3901         * config/i386/i386.c (ix86_decompose_address): Likewise.
3902         (ix86_legitimate_address_p): Likewise.
3903         (memory_address_length): Likewise.  Check mem address space too.
3904         (ix86_print_operand): Use ix86_print_operand_address_as.
3905         (ix86_print_operand_address_as): Rename from
3906         ix86_print_operand_address, add new addr_space_t parameter.
3907         Validate that either the parameter or the ix86_address segment
3908         is default address space.  Handle ADDR_SPACE_SEG_TLS.
3909         (ix86_print_operand_address): New.
3910         (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): New.
3911         (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): New.
3912         (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): New.
3913         (ix86_addr_space_zero_address_valid): New.
3914         (TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID): New.
3915         * config/i386/i386.h (DEFAULT_TLS_SEG_REG): Use addr_space_t constants.
3916         * config/i386/rdos.h (DEFAULT_TLS_SEG_REG): Likewise.
3917         * config/i386/predicates.md (address_no_seg_operand): Likewise.
3918         (vsib_address_operand): Likewise.
3919         (address_mpx_no_base_operand): Likewise.
3920         (address_mpx_no_index_operand): Likewise.
3921         * doc/extend.texi (x86 Named Address Spaces): New section.
3922
3923         * config/i386/i386.c (ix86_check_no_addr_space): New.
3924         (decide_alg): Add have_as parameter.
3925         (alg_usable_p): Likewise; disable rep algorithms if set.
3926         (ix86_expand_set_or_movmem): Notice if either MEM has a
3927         non-default address space.
3928         (ix86_expand_strlen): Likewise.
3929         * config/i386/i386.md (strmov, strset): Likewise.
3930         (*strmovdi_rex_1): Use ix86_check_no_addr_space.
3931         (*strmovsi_1, *strmovqi_1, *rep_movdi_rex64, *rep_movsi, *rep_movqi,
3932         *strsetdi_rex_1, *strsetsi_1, *strsethi_1, *strsetqi_1,
3933         *rep_stosdi_rex64, *rep_stossi, *rep_stosqi, *cmpstrnqi_nz_1,
3934         *cmpstrnqi_1, *strlenqi_1): Likewise.
3935
3936         * config/i386/i386.md (*movabs<mode>_1): Print the full memory rtx.
3937         (*movabs<mode>_2): Likewise.
3938
3939         * dwarf2out.c (modified_type_die): Pass the address space number
3940         through TARGET_ADDR_SPACE_DEBUG to produce the dwarf address class.
3941         * target.def (TARGET_ADDR_SPACE_DEBUG): New.
3942         * targhooks.c (default_addr_space_debug): New.
3943         * targhooks.h (default_addr_space_debug): Declare.
3944         * doc/tm.texi.in (TARGET_ADDR_SPACE_DEBUG): Mark it.
3945         * doc/tm.texi: Rebuild.
3946
3947         * gimple.c (check_loadstore): Return false when 0 is a valid address.
3948         * fold-const.c (const_unop) [ADDR_SPACE_CONVERT_EXPR]: Do not fold
3949         null when 0 is valid in the source address space.
3950         * target.def (TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID): New.
3951         * targhooks.c (default_addr_space_zero_address_valid): New.
3952         * targhooks.h (default_addr_space_zero_address_valid): Declare.
3953         * doc/tm.texi.in (TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID): Mark it.
3954         * doc/tm.texi: Rebuild.
3955
3956         * cselib.c (add_mem_for_addr): Compare address spaces when
3957         matching memories.
3958         (cselib_lookup_mem): Likewise.
3959         * fold-const.c (operand_equal_p): Check address spaces of
3960         pointer types before checking integer constants.
3961
3962         PR tree-opt/66768
3963         * tree-ssa-address.c (create_mem_ref_raw): Use a pointer of
3964         the correct type for the base.
3965
3966 2015-11-09  Jeff Law  <law@redhat.com>
3967
3968         * tree-into-ssa.c (names_to_release): No longer static.
3969         * tree-into-ssa.h (names_to_release): Declare.
3970         * tree-ssanames.c (verify_ssaname_freelists): New debug function.
3971         (release_free_names_and_compact_live_names): New function extracted
3972         from pass_release_ssa_names::execute.
3973         (pass_release_ssa_names::execute): Use it.
3974
3975 2015-11-09  Alan Modra  <amodra@gmail.com>
3976
3977         * gensupport.c (add_mnemonic_string): Make len param a size_t.
3978         (gen_mnemonic_setattr): Make "size" var a size_t.  Use
3979         obstack_blank_fast to shrink obstack.  Cast obstack_next_free
3980         return value.
3981
3982 2015-11-09  Segher Boessenkool  <segher@kernel.crashing.org>
3983
3984         PR rtl-optimization/68182
3985         * bb-reorder.c (reorder_basic_blocks_simple): Treat a conditional
3986         branch with only one successor just like unconditional branches.
3987
3988 2015-11-08  Jeff Law  <law@redhat.com>
3989
3990         * tree-ssa-threadupdate.c (register_jump_thraed): Assert that a
3991         non-FSM path has no edges marked with EDGE_DFS_BACK.
3992         (ssa_redirect_edges): No longer call mark_loop_for_removal.
3993         (thread_single_edge, def_split_header_continue_p): Remove.
3994         (bb_ends_with_multiway_branch): Likewise.
3995         (thread_through_loop_header): Remove cases of threading from
3996         latch through the header.  Simplify knowing we won't thread
3997         the latch.
3998         (thread_through_all_blocks): Simplify knowing that only the FSM
3999         threader needs to handle backedges.
4000
4001 2015-11-08  Eric Botcazou  <ebotcazou@adacore.com>
4002
4003         * doc/extend.texi (type attributes): Document scalar_storage_order.
4004         (Structure-Packing Pragmas): Rename into...
4005         (Structure-Layout Pragmas): ...this.  Document scalar_storage_order.
4006         * doc/invoke.texi (C Dialect Options): Document -fsso-struct
4007         (Warnings): Document -Wno-scalar-storage-order.
4008         * flag-types.h (enum scalar_storage_order_kind): New enumeration.
4009         * calls.c (store_unaligned_arguments_into_pseudos): Adjust calls to
4010         extract_bit_field and store_bit_field.
4011         (initialize_argument_information): Adjust call to store_expr.
4012         (load_register_parameters): Adjust call to extract_bit_field.
4013         * expmed.c (check_reverse_storage_order_support): New function.
4014         (check_reverse_float_storage_order_support): Likewise.
4015         (flip_storage_order): Likewise.
4016         (store_bit_field_1): Add REVERSE parameter.  Flip the storage order
4017         of the value if it is true.  Pass REVERSE to recursive call after
4018         adjusting the target offset.
4019         Do not use extraction or movstrict instruction if REVERSE is true.
4020         Pass REVERSE to store_fixed_bit_field.
4021         (store_bit_field): Add REVERSE parameter and pass to it to above.
4022         (store_fixed_bit_field): Add REVERSE parameter and pass to it to
4023         store_split_bit_field and store_fixed_bit_field_1.
4024         (store_fixed_bit_field_1):  Add REVERSE parameter.  Flip the storage
4025         order of the value if it is true and adjust the target offset.
4026         (store_split_bit_field): Add REVERSE parameter and pass it to
4027         store_fixed_bit_field.  Adjust the target offset if it is true.
4028         (extract_bit_field_1): Add REVERSE parameter.  Flip the storage order
4029         of the value if it is true.  Pass REVERSE to recursive call after
4030         adjusting the target offset.
4031         Do not use extraction or subreg instruction if REVERSE is true.
4032         Pass REVERSE to extract_fixed_bit_field.
4033         (extract_bit_field): Add REVERSE parameter and pass to it to above.
4034         (extract_fixed_bit_field): Add REVERSE parameter and pass to it to
4035         extract_split_bit_field and extract_fixed_bit_field_1.
4036         (extract_fixed_bit_field_1): Add REVERSE parameter.  Flip the storage
4037         order of the value if it is true and adjust the target offset.
4038         (extract_split_bit_field): Add REVERSE parameter and pass it to
4039         extract_fixed_bit_field.  Adjust the target offset if it is true.
4040         * expmed.h (flip_storage_order): Declare.
4041         (store_bit_field): Adjust prototype.
4042         (extract_bit_field): Likewise.
4043         * expr.c (emit_group_load_1): Adjust calls to extract_bit_field.
4044         (emit_group_store): Adjust call to store_bit_field.
4045         (copy_blkmode_from_reg): Likewise.
4046         (copy_blkmode_to_reg): Likewise.
4047         (write_complex_part): Likewise.
4048         (read_complex_part): Likewise.
4049         (optimize_bitfield_assignment_op): Add REVERSE parameter.  Assert
4050         that it isn't true if the target is a register.
4051         <PLUS_EXPR>: If it is, do not optimize unless bitsize is equal to 1,
4052         and flip the storage order of the value.
4053         <BIT_IOR_EXPR>: Flip the storage order of the value.
4054         (get_bit_range): Adjust call to get_inner_reference.
4055         (expand_assignment): Adjust calls to get_inner_reference, store_expr,
4056         optimize_bitfield_assignment_op and store_field.  Handle MEM_EXPRs
4057         with reverse storage order.
4058         (store_expr_with_bounds): Add REVERSE parameter and pass it to
4059         recursive calls and call to store_bit_field.  Force the value into a
4060         register if it is true and then flip the storage order of the value.
4061         (store_expr): Add REVERSE parameter and pass it to above.
4062         (categorize_ctor_elements_1): Adjust call to
4063         initializer_constant_valid_p.
4064         (store_constructor_field): Add REVERSE parameter and pass it to
4065         recursive calls and call to store_field.
4066         (store_constructor): Add REVERSE parameter and pass it to calls to
4067         store_constructor_field and store_expr.  Set it to true for an
4068         aggregate type with TYPE_REVERSE_STORAGE_ORDER.
4069         (store_field): Add REVERSE parameter and pass it to recursive calls
4070         and calls to store_expr and store_bit_field.  Temporarily flip the
4071         storage order of the value with record type and integral mode and
4072         adjust the shift if it is true.
4073         (get_inner_reference): Add PREVERSEP parameter and set it to true
4074         upon encoutering a reference with reverse storage order.
4075         (expand_expr_addr_expr_1): Adjust call to get_inner_reference.
4076         (expand_constructor): Adjust call to store_constructor.
4077         (expand_expr_real_2) <CASE_CONVERT>: Pass TYPE_REVERSE_STORAGE_ORDER
4078         of the union type to store_expr in the MEM case and assert that it
4079         isn't set in the REG case.  Adjust call to store_field.
4080         (expand_expr_real_1) <MEM_REF>: Handle reverse storage order.
4081         <normal_inner_ref>: Add REVERSEP variable and adjust calls to
4082         get_inner_reference and extract_bit_field. Temporarily flip the
4083         storage order of the value with record type and integral mode and
4084         adjust the shift if it is true.  Flip the storage order of the value
4085         at the end if it is true.
4086         <VIEW_CONVERT_EXPR>: Add REVERSEP variable and adjust call to
4087         get_inner_reference.  Do not fetch an inner reference if it is true.
4088         * expr.h (store_expr_with_bounds): Ajust prototype.
4089         (store_expr): Likewise.
4090         * fold-const.c (make_bit_field_ref): Add REVERSEP parameter and set
4091         REF_REVERSE_STORAGE_ORDER on the reference according to it.
4092         (optimize_bit_field_compare): Deal with reverse storage order.
4093         Adjust calls to get_inner_reference and make_bit_field_ref.
4094         (decode_field_reference): Add PREVERSEP parameter and adjust call to
4095         get_inner_reference.
4096         (fold_truth_andor_1): Deal with reverse storage order.  Adjust calls
4097         to decode_field_reference and make_bit_field_ref.
4098         (fold_unary_loc) <CASE_CONVERT>: Adjust call to get_inner_reference.
4099         <VIEW_CONVERT_EXPR>: Propagate the REF_REVERSE_STORAGE_ORDER flag.
4100         (fold_comparison): Adjust call to get_inner_reference.
4101         (split_address_to_core_and_offset): Adjust call to
4102         get_inner_reference.
4103         * gimple-expr.c (useless_type_conversion_p): Return false for array
4104         types with different TYPE_REVERSE_STORAGE_ORDER flag.
4105         * gimplify.c (gimplify_expr) <MEM_REF>: Propagate the
4106         REF_REVERSE_STORAGE_ORDER flag.
4107         * lto-streamer-out.c (hash_tree): Deal with TYPE_REVERSE_STORAGE_ORDER.
4108         * output.h (assemble_real): Adjust prototype.
4109         * print-tree.c (print_node): Convey TYPE_REVERSE_STORAGE_ORDER.
4110         * stor-layout.c (finish_record_layout): Propagate the
4111         TYPE_REVERSE_STORAGE_ORDER flag to the variants.
4112         * tree-core.h (TYPE_REVERSE_STORAGE_ORDER): Document.
4113         (TYPE_SATURATING): Adjust.
4114         (REF_REVERSE_STORAGE_ORDER): Document.
4115         * tree-dfa.c (get_ref_base_and_extent): Add PREVERSE parameter and
4116         set it to true upon encoutering a reference with reverse storage order.
4117         * tree-dfa.h (get_ref_base_and_extent): Adjust prototype.
4118         * tree-inline.c (remap_gimple_op_r): Propagate the
4119         REF_REVERSE_STORAGE_ORDER flag.
4120         (copy_tree_body_r): Likewise.
4121         * tree-outof-ssa.c (insert_value_copy_on_edge): Adjust call to
4122         store_expr.
4123         * tree-streamer-in.c (unpack_ts_base_value_fields): Deal with
4124         TYPE_REVERSE_STORAGE_ORDER and REF_REVERSE_STORAGE_ORDER.
4125         * tree-streamer-out.c (pack_ts_base_value_fields): Likewise.
4126         * tree.c (stabilize_reference) <BIT_FIELD_REF>: Propagate the
4127         REF_REVERSE_STORAGE_ORDER flag.
4128         (verify_type_variant): Deal with TYPE_REVERSE_STORAGE_ORDER.
4129         (gimple_canonical_types_compatible_p): Likewise.
4130         * tree.h (TYPE_REVERSE_STORAGE_ORDER): New flag.
4131         (TYPE_SATURATING): Adjust.
4132         (REF_REVERSE_STORAGE_ORDER): New flag.
4133         (reverse_storage_order_for_component_p): New inline predicate.
4134         (storage_order_barrier_p): Likewise.
4135         (get_inner_reference): Adjust prototype.
4136         * varasm.c: Include expmed.h.
4137         (assemble_variable_contents): Adjust call to output_constant.
4138         (assemble_real): Add REVERSE parameter.  Flip the storage
4139         order of the value if REVERSE is true.
4140         (compare_constant) <CONSTRUCTOR>: Compare TYPE_REVERSE_STORAGE_ORDER.
4141         (assemble_constant_contents): Adjust call to output_constant.
4142         (output_constant_pool_2): Adjust call to assemble_real.
4143         (initializer_constant_valid_p_1) <CONSTRUCTOR>: Deal with
4144         TYPE_REVERSE_STORAGE_ORDER.
4145         (initializer_constant_valid_p): Add REVERSE parameter.
4146         (output_constant): Add REVERSE parameter.
4147         <INTEGER_TYPE>: Flip the storage order of the value if REVERSE is true.
4148         <REAL_TYPE>: Adjust call to assemble_real.
4149         <COMPLEX_TYPE>: Pass it to recursive calls.
4150         <ARRAY_TYPE>: Likewise.  Adjust call to output_constructor.
4151         <RECORD_TYPE>: Likewise.  Adjust call to output_constructor.
4152         (struct oc_local_state): Add REVERSE field.
4153         (output_constructor_array_range): Adjust calls to output_constant.
4154         (output_constructor_regular_field): Likewise.
4155         (output_constructor_bitfield): Adjust call to output_constructor.
4156         Flip the storage order of the value if REVERSE is true.
4157         (output_constructor): Add REVERSE parameter.  Set it to true for an
4158         aggregate type with TYPE_REVERSE_STORAGE_ORDER.  Adjust call to
4159         output_constructor_bitfield.
4160         * varasm.h (initializer_constant_valid_p): Default REVERSE to false.
4161         * asan.c (instrument_derefs): Adjust call to get_inner_reference.
4162         * builtins.c (get_object_alignment_2): Likewise.
4163         * cfgexpand.c (expand_debug_expr): Adjust call to get_inner_reference
4164         and get_ref_base_and_extent.
4165         * dbxout.c (dbxout_expand_expr): Likewise.
4166         * dwarf2out.c (add_var_loc_to_decl): Likewise.
4167         (loc_list_for_address_of_addr_expr_of_indirect_ref): Likewise.
4168         (loc_list_from_tree): Likewise.
4169         (fortran_common): Likewise.
4170         * gimple-fold.c (gimple_fold_builtin_memory_op): Adjust calls to
4171         get_ref_base_and_extent.
4172         (get_base_constructor): Likewise.
4173         (fold_const_aggregate_ref_1): Likewise.
4174         * gimple-laddress.c (pass_laddress::execute): Adjust call to
4175         get_inner_reference.
4176         * gimple-ssa-strength-reduction.c (slsr_process_ref): Adjust call to
4177         get_inner_reference and bail out on reverse storage order.
4178         * ifcvt.c (noce_emit_move_insn): Adjust calls to store_bit_field.
4179         * ipa-cp.c (ipa_get_jf_ancestor_result): Adjust call to
4180         build_ref_for_offset.
4181         * ipa-polymorphic-call.c (set_by_invariant): Adjust call to
4182         get_ref_base_and_extent.
4183         (ipa_polymorphic_call_context): Likewise.
4184         (extr_type_from_vtbl_ptr_store): Likewise.
4185         (check_stmt_for_type_change): Likewise.
4186         (get_dynamic_type): Likewise.
4187         * ipa-prop.c (ipa_load_from_parm_agg_1): Adjust call to
4188         get_ref_base_and_extent.
4189         (compute_complex_assign_jump_func): Likewise.
4190         (get_ancestor_addr_info): Likewise.
4191         (compute_known_type_jump_func): Likewise.
4192         (determine_known_aggregate_parts): Likewise.
4193         (ipa_get_adjustment_candidate): Likewise.
4194         (ipa_modify_call_arguments): Set REF_REVERSE_STORAGE_ORDER on MEM_REF.
4195         * ipa-prop.h (ipa_parm_adjustment): Add REVERSE field.
4196         (build_ref_for_offset): Adjust prototype.
4197         * simplify-rtx.c (delegitimize_mem_from_attrs): Adjust call to
4198         get_inner_reference.
4199         * tree-affine.c (tree_to_aff_combination): Adjust call to
4200         get_inner_reference.
4201         (get_inner_reference_aff): Likewise.
4202         * tree-data-ref.c (split_constant_offset_1): Likewise.
4203         (dr_analyze_innermost): Likewise.  Bail out if reverse storage order.
4204         * tree-scalar-evolution.c (interpret_rhs_expr): Adjust call to
4205         get_inner_reference.
4206         * tree-sra.c (struct access): Add REVERSE and move WRITE around.
4207         (dump_access): Print new fields.
4208         (create_access): Adjust call to get_ref_base_and_extent and set the
4209         REVERSE flag according to the result.
4210         (completely_scalarize_record): Set the REVERSE flag.
4211         (scalarize_elem): Add REVERSE parameter.
4212         (build_access_from_expr_1): Preserve storage order barriers.
4213         (build_accesses_from_assign): Likewise.
4214         (build_ref_for_offset): Add REVERSE parameter and set the
4215         REF_REVERSE_STORAGE_ORDER flag accordingly.
4216         (build_ref_for_model): Adjust call to build_ref_for_offset and clear
4217         the REF_REVERSE_STORAGE_ORDER flag if there are components.
4218         (analyze_access_subtree): Likewise.
4219         (create_artificial_child_access): Set the REVERSE flag.
4220         (get_access_for_expr): Adjust call to get_ref_base_and_extent.
4221         (turn_representatives_into_adjustments): Propagate REVERSE flag.
4222         (ipa_sra_check_caller): Adjust call to get_inner_reference.
4223         * tree-ssa-alias.c (ao_ref_base): Adjust call to
4224         get_ref_base_and_extent.
4225         (aliasing_component_refs_p): Likewise.
4226         (stmt_kills_ref_p_1): Likewise.
4227         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
4228         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p) <MEM_REF>: New.
4229         Return true if reverse storage order.
4230         <BIT_FIELD_REF>: Likewise.
4231         <COMPONENT_REF>: Likewise.
4232         <ARRAY_REF>: Likewise.
4233         <ARRAY_RANGE_REF>: Likewise.
4234         (split_address_cost): Likewise.  Bail out if reverse storage order.
4235         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Adjust call to
4236         get_inner_reference.  Bail out if reverse storage order.
4237         (bswap_replace): Adjust call to get_inner_reference.
4238         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <MEM_REF>: Set
4239         the REF_REVERSE_STORAGE_ORDER flag.
4240         <BIT_FIELD_REF>: Likewise.
4241         * tree-ssa-sccvn.c (vn_reference_eq): Return false on storage order
4242         barriers.
4243         (copy_reference_ops_from_ref) <MEM_REF>: Set REVERSE field according
4244         to the REF_REVERSE_STORAGE_ORDER flag.
4245         <BIT_FIELD_REF>: Likewise.
4246         <VIEW_CONVERT_EXPR>: Set it for storage order barriers.
4247         (contains_storage_order_barrier_p): New predicate.
4248         (vn_reference_lookup_3): Adjust calls to get_ref_base_and_extent.
4249         Punt on storage order barriers if necessary.
4250         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add REVERSE.
4251         * tree-ssa-structalias.c (get_constraint_for_component_ref): Adjust
4252         call to get_ref_base_and_extent.
4253         (do_structure_copy): Likewise.
4254         * tree-vect-data-refs.c (vect_check_gather): Adjust call to
4255         get_inner_reference.
4256         (vect_analyze_data_refs): Likewise.  Bail out if reverse storage order.
4257         * tsan.c (instrument_expr): Adjust call to get_inner_reference.
4258         * ubsan.c (instrument_bool_enum_load): Likewise.
4259         (instrument_object_size): Likewise.
4260         * var-tracking.c (track_expr_p): Adjust call to
4261         get_ref_base_and_extent.
4262         * config/mips/mips.c (r10k_safe_mem_expr_p): Adjust call to
4263         get_inner_reference.
4264         * config/s390/s390.c (s390_expand_atomic): Adjust call to
4265         store_bit_field.
4266         * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Adjust call to
4267         extract_bit_field.
4268         * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Likewise.
4269
4270 2015-11-07  Eric Botcazou  <ebotcazou@adacore.com>
4271
4272         * config/sparc/sparc.opt (mfix-at697f): Add final period.
4273
4274 2015-11-07  Segher Boessenkool  <segher@kernel.crashing.org>
4275
4276         PR rtl-optimization/67864
4277         * common/config/i386/i386-common.c (ix86_option_optimization_table)
4278         <OPT_freorder_blocks_algorithm_>: Use REORDER_BLOCKS_ALGORITHM_STC
4279         at -Os and up.
4280
4281 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
4282
4283         * trans-mem.c (is_tm_pure_call): Use gimple_call_flags for
4284         internal functions.
4285
4286 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
4287
4288         * builtins.def: #undef DEF_BUILTIN and DEF_BUILTIN_CHKP
4289         * builtins.c, genmatch.c, tree-core.h: Don't undef them here.
4290
4291 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
4292
4293         * internal-fn.def: #undef DEF_INTERNAL_FN at the end.
4294         * internal-fn.c: Don't undef it here.
4295         * tree-core.h: Likewise.
4296
4297 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
4298
4299         * builtins.c (fold_builtin_nan): Delete.
4300         (fold_builtin_memcmp): Remove case where both arguments are constant.
4301         (fold_builtin_strcmp, fold_builtin_strncmp): Likewise.
4302         (fold_builtin_strspn, fold_builtin_strcspn): Likewise.
4303         (fold_builtin_1): Remove BUILT_IN_NAN* handling.
4304         * fold-const-call.c: Include fold-const.h.
4305         (host_size_t_cst_p): New function.
4306         (build_cmp_result, fold_const_builtin_nan): Likewise.
4307         (fold_const_call_1): New function, split out from...
4308         (fold_const_call): ...here (for all three interfaces).  Handle
4309         constant nan, nans, strlen, strcmp, strncmp, strspn and strcspn.
4310
4311 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
4312
4313         * builtins.c (fold_builtin_bitop, fold_builtin_bswap): Delete.
4314         (fold_builtin_1): Don't call them.
4315         * fold-const-call.c: Include tm.h.
4316         (fold_const_call_ss): New variant for integer-to-integer folds.
4317         (fold_const_call): Call it.
4318
4319 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
4320
4321         * builtins.c (fold_builtin_classify): Move constant cases to...
4322         * fold-const-call.c (fold_const_call_ss): ...here.
4323
4324 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
4325
4326         * builtins.h (c_getstr): Move to...
4327         * fold-const.h (c_getstr): ...here.
4328         * builtins.c (c_getstr): Move to...
4329         * fold-const.c (c_getstr): ...here.
4330
4331 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
4332
4333         * builtins.def (BUILTIN_RINT, BUILTIN_RINTF, BUILTIN_RINTL): Use
4334         ATTR_MATHFN_FPROUNDING rather than ATTR_MATHFN_FPROUNDING_ERRNO.
4335
4336 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
4337
4338         * tree-call-cdce.c (shrink_wrap_one_built_in_call): Try to update
4339         the dominance info; free it if we can't.
4340         (pass_call_cdce::execute): Don't free the dominance info here.
4341
4342 2015-11-06  Jeff Law <law@redhat.com>
4343
4344         * tree-ssa-threadedge.c (dummy_simplify): Remove.
4345         (thread_around_empty_blocks): Remove backedge_seen_p argument.
4346         If we thread to a backedge, then return false.  Update recursive
4347         call to eliminate backedge_seen_p argument.
4348         (thread_through_normal_block): Remove backedge_seen_p argument.
4349         Remove backedge_seen_p argument from calls to
4350         thread_around_empty_blocks.  Remove checks on backedge_seen_p.
4351         If we thread to a backedge, then return 0.
4352         (thread_across_edge): Remove bookkeeping for backedge_seen.  Don't
4353         pass it to thread_through_normal_block or thread_through_empty_blocks.
4354         For joiner handling, if we see a backedge, do not try normal
4355         threading.
4356
4357 2015-11-06  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
4358
4359         * graphite-optimize-isl.c (optimize_isl): Call isl_union_map_is_equal.
4360         * graphite-poly.c (new_scop): Initialize original_schedule.
4361         (free_scop): Free original_schedule.
4362         * graphite-poly.h (struct scop): Add field original_schedule.
4363         * graphite-sese-to-poly.c (build_scop_original_schedule): New.
4364         (build_poly_scop): Call build_scop_original_schedule.
4365
4366 2015-11-06  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
4367
4368         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
4369         (build_pbb_minimal_scattering_polyhedrons): New.
4370         (build_scop_scattering): Remove.
4371         (build_scop_minimal_scattering): New.
4372         (build_scop_scattering): Call build_pbb_minimal_scattering_polyhedrons.
4373         (build_poly_scop): Call build_scop_minimal_scattering.
4374
4375 2015-11-06  Jeff Law <law@redhat.com>
4376
4377         * cfg-flags.def (IGNORE): New edge flag.
4378         * tree-vrp.c (identify_jump_threads): Mark and clear edges
4379         scheduled for removal with EDGE_IGNORE around call into
4380         jump threader.  Do no thread across edges with EDGE_IGNORE,
4381         but do allow threading across those with EDGE_DFS_BACK.
4382
4383 2015-11-06  David Wohlferd  <dw@LimeGreenSocks.com>
4384
4385         * doc/md.texi (multi-alternative constraints): Don't document
4386         alternatives inherently tied to reload for the user documentation.
4387
4388 2015-11-06  Michael Collison  <michael.collison@linaro.org>
4389             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
4390
4391         Revert:
4392         2015-08-01  Michael Collison  <michael.collison@linaro.org
4393                     Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
4394
4395         * config/arm/arm.md (*arm_smin_cmp): New pattern.
4396         (*arm_umin_cmp): Likewise.
4397
4398 2015-11-06  Jakub Jelinek  <jakub@redhat.com>
4399
4400         * gimplify.c (gimplify_omp_ordered): Fix up diagnostics wording.
4401         * omp-low.c (check_omp_nesting_restrictions): Update for the
4402         various new OpenMP 4.5 nesting restrictions, clarified
4403         nesting glossary, closely nested region relationship clarified
4404         to mean explicit or implicit parallel regions (target/teams),
4405         use %</%> or %qs where appropriate.
4406
4407 2015-11-06  Aditya Kumar  <aditya.k7@samsung.com>
4408             Sebastian Pop  <s.pop@samsung.com>
4409
4410         * graphite-scop-detection.c (loop_is_valid_scop): Call
4411         optimize_loop_nest_for_speed_p.
4412
4413 2015-11-06  Aditya Kumar  <aditya.k7@samsung.com>
4414             Sebastian Pop  <s.pop@samsung.com>
4415
4416         * graphite-optimize-isl.c (optimize_isl): Call
4417         isl_options_set_schedule_maximize_band_depth.
4418
4419 2015-11-06  Aditya Kumar  <aditya.k7@samsung.com>
4420             Sebastian Pop  <s.pop@samsung.com>
4421
4422         * graphite-scop-detection.c (scop_detection::merge_sese): Entry
4423         and exit edges should not be a part of irreducible loop.
4424         (scop_detection::can_represent_loop_1): Loops should not be
4425         irreducible.
4426         (scop_detection::harmful_stmt_in_region): All the basic block
4427         should belong to reducible loops.
4428
4429 2015-11-06  Christophe Lyon  <christophe.lyon@linaro.org>
4430
4431         * config/aarch64/aarch64-simd-builtins.def: Update builtins
4432         tables: add tbl3v16qi, qtbl[34]*, tbx4v16qi, qtbx[34]*.
4433         * config/aarch64/aarch64-simd.md (aarch64_tbl3v8qi): Rename to...
4434         (aarch64_tbl3<mode>) ... this, which supports v16qi too.
4435         (aarch64_tbx4v8qi): Rename to...
4436         aarch64_tbx4<mode>): ... this.
4437         (aarch64_qtbl3<mode>): New pattern.
4438         (aarch64_qtbx3<mode>): New pattern.
4439         (aarch64_qtbl4<mode>): New pattern.
4440         (aarch64_qtbx4<mode>): New pattern.
4441         * config/aarch64/arm_neon.h (vqtbl2_s8, vqtbl2_u8, vqtbl2_p8)
4442         (vqtbl2q_s8, vqtbl2q_u8, vqtbl2q_p8, vqtbl3_s8, vqtbl3_u8)
4443         (vqtbl3_p8, vqtbl3q_s8, vqtbl3q_u8, vqtbl3q_p8, vqtbl4_s8)
4444         (vqtbl4_u8, vqtbl4_p8, vqtbl4q_s8, vqtbl4q_u8, vqtbl4q_p8)
4445         (vqtbx2_s8, vqtbx2_u8, vqtbx2_p8, vqtbx2q_s8, vqtbx2q_u8)
4446         (vqtbx2q_p8, vqtbx3_s8, vqtbx3_u8, vqtbx3_p8, vqtbx3q_s8)
4447         (vqtbx3q_u8, vqtbx3q_p8, vqtbx4_s8, vqtbx4_u8, vqtbx4_p8)
4448         (vqtbx4q_s8, vqtbx4q_u8, vqtbx4q_p8): Rewrite using builtin
4449         functions.
4450
4451 2015-11-06  Mike Stump  <mikestump@comcast.net>
4452
4453         PR debug/66728
4454         * dwarf2out.c (get_full_len): Return a value based upon the actual
4455         precision needed for the value.
4456         (add_const_value_attribute): Use a maximal wide-int for
4457         CONST_WIDE_INTs, not VOIDmode.
4458         (output_die): Don't ever output NULL with printf.
4459
4460         * rtl.h (get_precision of rtx_mode_t): Ensure we never process
4461         BLKmode nor VOIDmode values.
4462
4463 2015-11-06  David Malcolm  <dmalcolm@redhat.com>
4464
4465         * diagnostic-color.c (color_dict): Eliminate "caret"; add "range1"
4466         and "range2".
4467         (parse_gcc_colors): Update comment to describe default GCC_COLORS.
4468         * diagnostic-core.h (warning_at_rich_loc): New declaration.
4469         (error_at_rich_loc): New declaration.
4470         (permerror_at_rich_loc): New declaration.
4471         (inform_at_rich_loc): New declaration.
4472         * diagnostic-show-locus.c (adjust_line): Delete.
4473         (struct point_state): New struct.
4474         (class colorizer): New class.
4475         (class layout_point): New class.
4476         (class layout_range): New class.
4477         (struct line_bounds): New.
4478         (class layout): New class.
4479         (colorizer::colorizer): New ctor.
4480         (colorizer::~colorizer): New dtor.
4481         (layout::layout): New ctor.
4482         (layout::print_source_line): New method.
4483         (layout::print_annotation_line): New method.
4484         (layout::get_state_at_point): New method.
4485         (layout::get_x_bound_for_row): New method.
4486         (diagnostic_show_locus): Reimplement in terms of class layout.
4487         (diagnostic_print_caret_line): Delete.
4488         * diagnostic.c (diagnostic_initialize): Replace
4489         MAX_LOCATIONS_PER_MESSAGE with rich_location::MAX_RANGES.
4490         (diagnostic_set_info_translated): Convert param from location_t
4491         to rich_location *.  Eliminate calls to set_location on the
4492         message in favor of storing the rich_location ptr there.
4493         (diagnostic_set_info): Convert param from location_t to
4494         rich_location *.
4495         (diagnostic_build_prefix): Break out array into...
4496         (diagnostic_kind_color): New variable.
4497         (diagnostic_get_color_for_kind): New function.
4498         (diagnostic_report_diagnostic): Colorize the option_text
4499         using the color for the severity.
4500         (diagnostic_append_note): Update for change in signature of
4501         diagnostic_set_info.
4502         (diagnostic_append_note_at_rich_loc): New function.
4503         (emit_diagnostic): Update for change in signature of
4504         diagnostic_set_info.
4505         (inform): Likewise.
4506         (inform_at_rich_loc): New function.
4507         (inform_n): Update for change in signature of diagnostic_set_info.
4508         (warning): Likewise.
4509         (warning_at): Likewise.
4510         (warning_at_rich_loc): New function.
4511         (warning_n): Update for change in signature of diagnostic_set_info.
4512         (pedwarn): Likewise.
4513         (permerror): Likewise.
4514         (permerror_at_rich_loc): New function.
4515         (error): Update for change in signature of diagnostic_set_info.
4516         (error_n): Likewise.
4517         (error_at): Likewise.
4518         (error_at_rich_loc): New function.
4519         (sorry): Update for change in signature of diagnostic_set_info.
4520         (fatal_error): Likewise.
4521         (internal_error): Likewise.
4522         (internal_error_no_backtrace): Likewise.
4523         (source_range::debug): New function.
4524         * diagnostic.h (struct diagnostic_info): Eliminate field
4525         "override_column".  Add field "richloc".
4526         (struct diagnostic_context): Add field "colorize_source_p".
4527         (diagnostic_override_column): Delete.
4528         (diagnostic_set_info): Convert param from location_t to
4529         rich_location *.
4530         (diagnostic_set_info_translated): Likewise.
4531         (diagnostic_append_note_at_rich_loc): New function.
4532         (diagnostic_num_locations): New function.
4533         (diagnostic_expand_location): Get the location from the
4534         rich_location.
4535         (diagnostic_print_caret_line): Delete.
4536         (diagnostic_get_color_for_kind): New declaration.
4537         * genmatch.c (linemap_client_expand_location_to_spelling_point): New.
4538         (error_cb): Update for change in signature of "error" callback.
4539         (fatal_at): Likewise.
4540         (warning_at): Likewise.
4541         * input.c (linemap_client_expand_location_to_spelling_point): New.
4542         * pretty-print.c (text_info::set_range): New method.
4543         (text_info::get_location): New method.
4544         * pretty-print.h (MAX_LOCATIONS_PER_MESSAGE): Eliminate this macro.
4545         (struct text_info): Eliminate "locations" array in favor of
4546         "m_richloc", a rich_location *.
4547         (textinfo::set_location): Add a "caret_p" param, and reimplement
4548         in terms of a call to set_range.
4549         (textinfo::get_location): Eliminate inline implementation in favor of
4550         an out-of-line reimplementation.
4551         (textinfo::set_range): New method.
4552         * rtl-error.c (diagnostic_for_asm): Update for change in signature
4553         of diagnostic_set_info.
4554         * tree-diagnostic.c (default_tree_printer): Update for new
4555         "caret_p" param for textinfo::set_location.
4556         * tree-pretty-print.c (percent_K_format): Likewise.
4557
4558 2015-11-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4559
4560         Properly apply.
4561         2015-11-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4562         * config/aarch64/aarch64.c
4563         (aarch64_can_use_per_function_literal_pools_p): New.
4564         (aarch64_use_blocks_for_constant_p): Adjust declaration
4565         and use aarch64_can_use_function_literal_pools_p.
4566         (aarch64_select_rtx_section): Update.
4567
4568 2015-11-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4569
4570         * config/arm/arm-ldmstm.ml: Rewrite to generate unified asm templates.
4571         * config/arm/arm.c (arm_asm_trampoline_template): Make unified asm safe.
4572         (arm_output_multireg_pop): Likewise.
4573         (output_move_double):  Likewise.
4574         (output_move_quad):  Likewise.
4575         (output_return_instruction): Likewise.
4576         (arm_print_operand): Remove support for %( and %. print modifiers.
4577         (arm_output_shift): Make unified asm.
4578         (arm_declare_function_name): Likewise.
4579         * config/arm/arm.h (TARGET_UNIFIED_ASM): Delete.
4580         (ASM_APP_OFF): Adjust.
4581         (ASM_OUTPUT_REG_PUSH): Undo special casing for TARGET_ARM.
4582         (ASM_OUTPUT_REG_POP): Likewise.
4583         * config/arm/arm.md: Adjust uses of %., %(, %)
4584         * config/arm/sync.md: Likewise.
4585         * config/arm/thumb2.md: Likewise.
4586         * config/arm/ldmstm.md: Regenerate.
4587         * config/arm/arm.opt (masm-unified-syntax): Do not special case Thumb.
4588         * doc/invoke.texi (masm-unified-syntax): Update documentation.
4589
4590 2015-11-06  David Malcolm  <dmalcolm@redhat.com>
4591
4592         * input.c (dump_line_table_statistics): Dump stats on adhoc table.
4593
4594 2015-11-07  Jan Hubicka  <hubicka@ucw.cz>
4595
4596         * tree-core.h (size_type_kind): Remove OEP_CONSTANT_ADDRESS_OF and
4597         add OEP_MATCH_SIDE_EFFECTS.
4598         * fold-const.c (operand_equal_p): Update documentation; handle
4599         OEP_MATCH_SIDE_EFFECTS.
4600         * tree-ssa-tail-merge.c (gimple_operand_equal_value_p): Use
4601         OEP_MATCH_SIDE_EFFECTS.
4602
4603 2015-11-06  Benedikt Huber  <benedikt.huber@theobroma-systems.com>
4604             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
4605
4606         * config/aarch64/aarch64-builtins.c: Builtins for rsqrt and rsqrtf.
4607         * config/aarch64/aarch64-protos.h: Declare.
4608         * config/aarch64/aarch64-simd.md: Matching expressions for frsqrte and
4609         frsqrts.
4610         * config/aarch64/aarch64-tuning-flags.def: Added recip_sqrt.
4611         * config/aarch64/aarch64.c: New functions. Emit rsqrt estimation
4612         code when applicable.
4613         * config/aarch64/aarch64.md: Added enum entries.
4614         * config/aarch64/aarch64.opt: Added option -mlow-precision-recip-sqrt.
4615
4616 2015-11-07  Jan Hubicka  <hubicka@ucw.cz>
4617
4618         PR ipa/68057
4619         PR ipa/68220
4620         * ipa-polymorphic-call.c
4621         (ipa_polymorphic_call_context::restrict_to_inner_type): Fix ordering
4622         issue when offset is out of range.
4623         (contains_type_p): Fix out of range check, clear dynamic flag.
4624
4625 2015-11-06  Arnout Vandecappelle  <arnout@mind.be>
4626
4627         * config.gcc (e6500): Fix cpu_is_64bit typo.
4628
4629 2015-11-06  Alan Lawrence  <alan.lawrence@arm.com>
4630
4631         * tree-sra.c (completely_scalarize): Properly handle negative array
4632         indices using offset_int.
4633
4634 2015-11-06  Richard Biener  <rguenther@suse.de>
4635
4636         * alloc-pool.h (object_allocator::allocate): Default-initialize
4637         object.
4638
4639 2015-11-06  Richard Biener  <rguenther@suse.de>
4640
4641         * tree-ssa-sccvn.c (class sccvn_dom_walker): Add destructor.
4642         * lra.c (init_reg_info): Truncate copy_vec instead of
4643         re-allocating a new one and leaking the old.
4644         * ipa-inline-analysis.c (estimate_function_body_sizes): Free
4645         bb_infos vec.
4646         * sched-deps.c (sched_deps_finish): Free the dn/dl pools.
4647         * postreload-gcse.c (free_mem): Free modify_mem_list and
4648         canon_modify_mem_list.
4649
4650 2015-11-06  Ilya Enkovich  <enkovich.gnu@gmail.com>
4651
4652         PR tree-optimization/68145
4653         * tree-vect-stmts.c (vectorizable_operation): Fix
4654         determination for booleans.
4655
4656 2015-11-06  Tom de Vries  <tom@codesourcery.com>
4657
4658         * tree-cfg.c (gimple_split_block_before_cond_jump): Split before
4659         cond_jump, instead of split after last nondebug insn before cond_jump.
4660         * tree-parloops.c (transform_to_exit_first_loop_alt): Verify ssa before
4661         returning.
4662
4663 2015-11-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4664
4665         PR target/68088
4666         * config/arm/aarch-common.c (aarch_accumulator_forwarding): Strip
4667         subregs from accumulator and make sure it's a register.
4668
4669 2015-11-06  Simon Dardis  <simon.dardis@imgtec.com>
4670
4671         * config/mips/loongson.md (vec_loongson_extract_lo_<mode>): New, extract
4672         low part to scalar.
4673         (reduc_uplus_<mode>): Remove.
4674         (reduc_plus_scal_<mode>): Rename from reduc_splus_<mode>, Use vec
4675         loongson_extract_lo_<mode>.
4676         (reduc_smax_scal_<mode>, reduc_smin_scal_<mode>): Rename from
4677         reduc_smax_<mode>, reduc_smax_<mode>, use vec
4678         loongson_extract_lo_<mode>.
4679         (reduc_umax_scal_<mode>, reduc_umin_scal_<mode>): Rename.
4680
4681 2015-11-06  Richard Biener  <rguenther@suse.de>
4682
4683         * tree-vectorizer.h (struct _bb_vec_info): Add region_begin/end
4684         members.
4685         (vect_stmt_in_region_p): Declare.
4686         * tree-vect-slp.c (new_bb_vec_info): Work on a region.
4687         (destroy_bb_vec_info): Likewise.
4688         (vect_bb_slp_scalar_cost): Use vect_stmt_in_region_p.
4689         (vect_get_and_check_slp_defs): Likewise.
4690         (vect_slp_analyze_bb_1): Refactor to make it work on sub-BBs.
4691         (vect_slp_bb): Likewise.
4692         * tree-vect-patterns.c (vect_same_loop_or_bb_p): Implement
4693         in terms of vect_stmt_in_region_p.
4694         (vect_pattern_recog): Iterate over the BB region.
4695         * tree-vect-stmts.c (vect_is_simple_use): Use vect_stmt_in_region_p.
4696         * tree-vectorizer.c (vect_stmt_in_region_p): New function.
4697         (pass_slp_vectorize::execute): Initialize all stmt UIDs to -1.
4698         * config/i386/i386.c: Include gimple-iterator.h.
4699         * config/aarch64/aarch64.c: Likewise.
4700
4701 2015-11-06  Alexandre Oliva <aoliva@redhat.com>
4702
4703         PR rtl-optimization/67753
4704         PR rtl-optimization/64164
4705         * function.c (assign_parm_setup_block): Avoid allocating a
4706         stack slot if we don't have an ABI-reserved one.  Emit the
4707         copy to target_reg in the conversion seq if the copy from
4708         entry_parm is in it too.  Don't use the conversion seq to copy
4709         a PARALLEL to a REG or a CONCAT.
4710
4711 2015-11-06  Richard Biener  <rguenther@suse.de>
4712
4713         * tree-hash-traits.h (tree_operand_hash): Provide equal, not
4714         equal_keys.
4715
4716 2015-11-05  Cesar Philippidis  <cesar@codesourcery.com>
4717             Thomas Schwinge  <thomas@codesourcery.com>
4718             James Norris  <jnorris@codesourcery.com>
4719
4720
4721         * gimplify.c (gimplify_scan_omp_clauses): Add support for
4722         OMP_CLAUSE_TILE.  Update handling of OMP_CLAUSE_INDEPENDENT.
4723         (gimplify_adjust_omp_clauses): Likewise.
4724         * omp-low.c (scan_sharing_clauses): Add support for OMP_CLAUSE_TILE.
4725         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_TILE.
4726         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_TILE.
4727         * tree.c (omp_clause_num_ops): Add an entry for OMP_CLAUSE_TILE.
4728         (omp_clause_code_name): Likewise.
4729         (walk_tree_1): Handle OMP_CLAUSE_TILE.
4730         * tree.h (OMP_TILE_LIST): New macro.
4731
4732 2015-11-05  Martin Sebor  <msebor@redhat.com>
4733
4734         PR c++/67942
4735         * doc/invoke.texi (-Wplacement-new): Document new option.
4736
4737 2015-11-05  Alan Lawrence  <alan.lawrence@arm.com>
4738
4739         PR tree-optimization/65963
4740         * tree-scalar-evolution.c (interpret_rhs_expr): Try to handle
4741         LSHIFT_EXPRs as equivalent unsigned MULT_EXPRs.
4742
4743 2015-11-05  James Greenhalgh  <james.greenhalgh@arm.com>
4744
4745         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): New.
4746         (noce_convert_multiple_sets): Likewise.
4747         (noce_process_if_block): Call them.
4748
4749 2015-11-05  Nathan Sidwell  <nathan@codesourcery.com>
4750
4751         * gimple-fold.c: Include omp-low.h.
4752         (fold_internal_goacc_dim): New.
4753         (gimple_fold_call): Call it.
4754
4755 2015-11-05  Jakub Jelinek  <jakub@redhat.com>
4756             Ilya Verbin  <ilya.verbin@intel.com>
4757
4758         * builtin-types.def
4759         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR): Remove.
4760         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): New.
4761         * cgraph.h (enum cgraph_simd_clone_arg_type): Add
4762         SIMD_CLONE_ARG_TYPE_LINEAR_REF_VARIABLE_STEP,
4763         SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_VARIABLE_STEP and
4764         SIMD_CLONE_ARG_TYPE_LINEAR_VAL_VARIABLE_STEP.
4765         (struct cgraph_simd_clone_arg): Adjust comment.
4766         * omp-builtins.def (BUILT_IN_GOMP_TARGET): Rename GOMP_target_41
4767         to GOMP_target_ext.  Add num_teams and thread_limit arguments.
4768         (BUILT_IN_GOMP_TARGET_DATA): Rename GOMP_target_data_41
4769         to GOMP_target_data_ext.
4770         (BUILT_IN_GOMP_TARGET_UPDATE): Rename GOMP_target_update_41
4771         to GOMP_target_update_ext.
4772         (BUILT_IN_GOMP_LOOP_NONMONOTONIC_DYNAMIC_START,
4773         BUILT_IN_GOMP_LOOP_NONMONOTONIC_GUIDED_START,
4774         BUILT_IN_GOMP_LOOP_NONMONOTONIC_DYNAMIC_NEXT,
4775         BUILT_IN_GOMP_LOOP_NONMONOTONIC_GUIDED_NEXT,
4776         BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_DYNAMIC_START,
4777         BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_GUIDED_START,
4778         BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_DYNAMIC_NEXT,
4779         BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_GUIDED_NEXT,
4780         BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_DYNAMIC,
4781         BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_GUIDED): New built-ins.
4782         * tree-core.h (enum omp_clause_schedule_kind): Add
4783         OMP_CLAUSE_SCHEDULE_MASK, OMP_CLAUSE_SCHEDULE_MONOTONIC,
4784         OMP_CLAUSE_SCHEDULE_NONMONOTONIC and change
4785         OMP_CLAUSE_SCHEDULE_LAST value.
4786         * tree.def (OMP_SIMD, CILK_SIMD, CILK_FOR, OMP_DISTRIBUTE,
4787         OMP_TASKLOOP, OACC_LOOP): Add OMP_FOR_ORIG_DECLS argument.
4788         * tree.h (OMP_FOR_ORIG_DECLS): Use OMP_LOOP_CHECK instead of
4789         OMP_FOR_CHECK.  Remove comment.
4790         * tree-pretty-print.c (dump_omp_clause): Handle
4791         GOMP_MAP_FIRSTPRIVATE_REFERENCE and GOMP_MAP_ALWAYS_POINTER.
4792         Simplify.  Print schedule clause modifiers.
4793         * tree-vect-stmts.c (vectorizable_simd_clone_call): Add
4794         SIMD_CLONE_ARG_TYPE_LINEAR_{REF,VAL,UVAL}_VARIABLE_STEP
4795         cases.
4796         * gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP_ALWAYS_TO.
4797         (omp_default_clause): Tweak for
4798         private/firstprivate/is_device_ptr variables on target
4799         construct and use_device_ptr on target data.
4800         (omp_check_private): Likewise.
4801         (omp_notice_variable): For references check whether what it refers
4802         to has mappable type, rather than the reference itself.
4803         (omp_is_private): Diagnose linear iteration variables on non-simd
4804         constructs.
4805         (omp_no_lastprivate): Return true only for Fortran.
4806         (gimplify_scan_omp_clauses): Or in GOVD_MAP_ALWAYS_TO for
4807         GOMP_MAP_ALWAYS_TO or GOMP_MAP_ALWAYS_TOFROM kinds.
4808         Add support for GOMP_MAP_FIRSTPRIVATE_REFERENCE and
4809         GOMP_MAP_ALWAYS_POINTER, remove old handling of structure element
4810         based array sections.  Use GOMP_MAP_ALWAYS_P.  Fix up handling of
4811         lastprivate and linear when combined with distribute.  Gimplify
4812         variable low-bound for array reduction.  Look through
4813         POINTER_PLUS_EXPR when looking for ADDR_EXPR for array section
4814         reductions.
4815         (gimplify_adjust_omp_clauses_1): For implicit references to
4816         variables with reference type and when not ref to scalar or
4817         ref to pointer, map what they refer to using tofrom and
4818         use GOMP_MAP_FIRSTPRIVATE_REFERENCE for the reference.
4819         (gimplify_adjust_omp_clauses): Remove GOMP_MAP_ALWAYS_POINTER
4820         from target exit data.  Handle GOMP_MAP_FIRSTPRIVATE_REFERENCE.
4821         Drop OMP_CLAUSE_MAP_PRIVATE support.  Use GOMP_MAP_ALWAYS_P.
4822         Diagnose the same var on both firstprivate and lastprivate on
4823         distribute construct.
4824         (gimplify_omp_for): Fix up handling of predetermined
4825         lastprivate or linear iter vars when combined with distribute.
4826         (find_omp_teams, computable_teams_clause, optimize_target_teams): New
4827         functions.
4828         (gimplify_omp_workshare): Call optimize_target_teams.
4829         * omp-low.c (struct omp_region): Add sched_modifiers field.
4830         (struct omp_for_data): Likewise.
4831         (omp_any_child_fn_dumped): New variable.
4832         (extract_omp_for_data): Fill in sched_modifiers, and mask out
4833         OMP_CLAUSE_SCHEDULE_KIND bits outside of OMP_CLAUSE_SCHEDULE_MASK
4834         from sched_kind.
4835         (determine_parallel_type): Use only OMP_CLAUSE_SCHEDULE_MASK
4836         bits of OMP_CLAUSE_SCHED_KIND.
4837         (scan_sharing_clauses): Handle GOMP_MAP_FIRSTPRIVATE_REFERENCE,
4838         drop OMP_CLAUSE_MAP_PRIVATE support.  Look through POINTER_PLUS_EXPR
4839         for array section reductions.
4840         (add_taskreg_looptemp_clauses): Add one extra _looptemp_ clause even
4841         for distribute parallel for, if there are lastprivate clauses on the
4842         for.
4843         (lower_rec_input_clauses): Handle non-zero low-bound on array
4844         section reductions.
4845         (lower_reduction_clauses): Likewise.
4846         (lower_send_clauses): Look through POINTER_PLUS_EXPR
4847         for array section reductions.
4848         (expand_parallel_call): Use nonmonotonic entrypoints for
4849         nonmonotonic: dynamic/guided.
4850         (expand_omp_taskreg): Call assign_assembler_name_if_neeeded on
4851         child_fn if current_function_decl has assembler name set, but child_fn
4852         does not.  Dump the header and IL of the child function when not in SSA
4853         form.
4854         (expand_omp_target): Likewise.  Pass num_teams and thread_limit
4855         arguments to BUILT_IN_GOMP_TARGET.
4856         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
4857         Initialize the extra _looptemp_ clause to fd->loop.n2.
4858         (expand_omp_for): Use nonmonotonic entrypoints for
4859         nonmonotonic: dynamic/guided.  Initialize region->sched_modifiers.
4860         (expand_omp): Clear omp_any_child_fn_dumped.  Dump function header
4861         again if we have dumped any child functions.
4862         (lower_omp_for_lastprivate): Determine the right count variable
4863         for distribute simd, or distribute parallel for{, simd}.
4864         (lower_omp_target): Handle GOMP_MAP_FIRSTPRIVATE_REFERENCE
4865         and GOMP_MAP_ALWAYS_POINTER.  Drop OMP_CLAUSE_MAP_PRIVATE
4866         support.
4867         (simd_clone_clauses_extract): Handle variable step
4868         for references and arguments passed by reference.
4869         (simd_clone_mangle): Mangle ref/uval/val variable steps.
4870         (simd_clone_adjust_argument_types): Handle
4871         SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_VARIABLE_STEP like
4872         SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP and
4873         SIMD_CLONE_ARG_TYPE_LINEAR_VAL_VARIABLE_STEP like
4874         SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP.
4875         (simd_clone_linear_addend): New function.
4876         (simd_clone_adjust): Handle variable step like similarly
4877         to constant step, use simd_clone_linear_addend to determine
4878         the actual step at runtime.
4879
4880 2015-11-05  Nathan Sidwell  <nathan@codesourcery.com>
4881
4882         * target.def (goacc.dim_limit): New hook.
4883         * targhooks.h (default_goacc_dim_limit): Declare.
4884         * doc/tm.texi.in (TARGET_GOACC_DIM_LIMIT): Add.
4885         * doc/tm.texi: Rebuilt.
4886         * omp-low.h (get_oacc_fn_dim_size, get_oacc_ifn_dim_arg): Declare.
4887         * omp-low.c (get_oacc_fn_dim_size, get_oacc_ifn_dim_arg): New.
4888         (default_goacc_dim_limit): New.
4889         * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH, PTX_WORKER_LENGTH): New.
4890         (nvptx_goacc_dim_limit) New.
4891         (TARGET_GOACC_DIM_LIMIT): Override.
4892         * tree-vrp.c: Include omp-low.h, target.h.
4893         (extract_range_basic): Add handling for IFN_GOACC_DIM_SIZE &
4894         IFN_GOACC_DIM_POS.
4895
4896 2015-11-05  Ilya Enkovich  <enkovich.gnu@gmail.com>
4897
4898         * tree-vect-generic.c (do_compare): Use -1 for true
4899         result instead of 1.
4900
4901 2015-11-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4902
4903         * config/aarch64/aarch64.c
4904         (aarch64_can_use_per_function_literal_pools_p): New.
4905         (aarch64_use_blocks_for_constant_p): Adjust declaration
4906         and use aarch64_can_use_function_literal_pools_p.
4907         (aarch64_select_rtx_section): Update.
4908
4909 2015-11-05  Ilya Enkovich  <enkovich.gnu@gmail.com>
4910
4911         * targhooks.c (default_get_mask_mode): Use BLKmode in
4912         case target doesn't support required vector mode.
4913         * stor-layout.c (layout_type); Check for BLKmode.
4914
4915 2015-11-04  Aditya Kumar  <aditya.k7@samsung.com>
4916             Sebastian Pop  <s.pop@samsung.com>
4917
4918         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
4919         Remove use of parameter_rename_map.
4920         (copy_def): Remove.
4921         (copy_internal_parameters): Remove.
4922         (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
4923         * sese.c (new_sese_info): Do not initialize parameter_rename_map.
4924         (free_sese_info): Do not free parameter_rename_map.
4925         (set_rename): Do not use parameter_rename_map.
4926         (rename_uses): Update call to set_rename.
4927         (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
4928         * sese.h (parameter_rename_map_t): Remove.
4929         (struct sese_info_t): Remove field parameter_rename_map.
4930
4931 2015-11-04  Aditya Kumar  <aditya.k7@samsung.com>
4932             Sebastian Pop  <s.pop@samsung.com>
4933
4934         * graphite-isl-ast-to-gimple.c: Include tree-cfg.h.
4935         (translate_isl_ast_node_user): Add more dumps: call print_loops_bb.
4936         * graphite-scop-detection.c (dot_all_scops_1): Moved out of
4937         anonymous namespace.
4938         * graphite-sese-to-poly.c (ssa_name_version_typesize): Remove.
4939         (isl_id_for_pbb): Use a buffer of size 10.
4940         (isl_id_for_ssa_name): Same.
4941         * sese.c (set_rename): Add more dumps.
4942
4943 2015-11-04  Nathan Sidwell  <nathan@codesourcery.com>
4944
4945         * omp-low.c (struct omp_context): Remove reduction_map field.
4946         (lookup_oacc_reduction, maybe_lookup_oacc_reduction): Delete.
4947         (new_omp_context, delete_omp_context, scan_omp_target): Remove
4948         reduction_map handling.
4949         (lower_omp_target): Remove obsolete openacc reduction handling.
4950
4951 2015-11-04  Nathan Sidwell  <nathan@codesourcery.com>
4952
4953         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add checking.
4954
4955 2015-11-04  Nathan Sidwell  <nathan@codesourcery.com>
4956             Cesar Philippidis  <cesar@codesourcery.com>
4957
4958         * config/nvptx/nvptx.c: Include gimple headers.
4959         (worker_red_size, worker_red_align, worker_red_name,
4960         worker_red_sym): New.
4961         (nvptx_option_override): Initialize worker reduction buffer.
4962         (nvptx_file_end): Write out worker reduction buffer var.
4963         (nvptx_expand_shuffle, nvptx_expand_worker_addr,
4964         nvptx_expand_cmp_swap): New builtin expanders.
4965         (enum nvptx_builtins): New.
4966         (nvptx_builtin_decls): New.
4967         (nvptx_builtin_decl, nvptx_init_builtins, nvptx_expand_builtin): New
4968         (PTX_VECTOR_LENGTH, PTX_WORKER_LENGTH): New.
4969         (nvptx_get_worker_red_addr, nvptx_generate_vector_shuffle,
4970         nvptx_lockless_update): New helpers.
4971         (nvptx_goacc_reduction_setup, nvptx_goacc_reduction_init,
4972         nvptx_goacc_reduction_fini, nvptx_goacc_reduction_teaddown): New.
4973         (nvptx_goacc_reduction): New.
4974         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN,
4975         TARGET_BUILTIN_DECL): Override.
4976         (TARGET_GOACC_REDUCTION): Override.
4977
4978 2015-11-04  Nathan Sidwell  <nathan@codesourcery.com>
4979             Cesar Philippidis  <cesar@codesourcery.com>
4980
4981         * internal-fn.def (GOACC_REDUCTION): New.
4982         * internal-fn.h (enum ifn_goacc_reduction_kind): New.
4983         * internal-fn.c (expand_GOACC_REDUCTION): New.
4984         * target.def (goacc.reduction): New OpenACC hook.
4985         * targhooks.h (default_goacc_reduction): Declare.
4986         * doc/tm.texi.in: Add TARGET_GOACC_REDUCTION.
4987         * doc/tm.texi: Rebuilt.
4988         * omp-low.c (oacc_get_reduction_array_id, oacc_max_threads,
4989         scan_sharing_clauses): Remove oacc reduction handling here.
4990         (lower_rec_input_clauses): Don't handle OpenACC reductions here.
4991         (oacc_lower_reduction_var_helper): Delete.
4992         (lower_oacc_reductions): New.
4993         (lower_reduction_clauses): Don't handle OpenACC reductions here.
4994         (lower_oacc_head_tail): Call lower_oacc_reductions.
4995         (oacc_gimple_assign, oacc_init_reduction_array,
4996         oacc_initialize_reduction_data, oacc_finalize_reduction_data,
4997         oacc_process_reduction_data): Delete.
4998         (lower_omp_target): Remove old OpenACC reduction handling.  Insert
4999         dummy OpenACC gang reduction for reductions at outer level.
5000         (oacc_loop_xform_head_tail): Transform IFN_GOACC_REDUCTION.
5001         (default_goacc_reduction): New.
5002         (execute_oacc_device_lower): Handle IFN_GOACC_REDUCTION.
5003
5004 2015-11-04  Martin Liska  <mliska@suse.cz>
5005
5006         * cgraphunit.c (cgraph_node::expand_thunk): Call
5007         allocate_struct_function before init_function_start.
5008         (cgraph_node::expand): Use push_cfun and pop_cfun.
5009         * config/i386/i386.c (ix86_code_end): Call
5010         allocate_struct_function before init_function_start.
5011         * config/rs6000/rs6000.c (rs6000_code_end): Likewise.
5012         * function.c (init_function_start): Move preamble to all
5013         callers.
5014         * passes.c (do_per_function_toporder): Use push_cfun and pop_cfun.
5015         (execute_one_pass): Handle newly added TODO_discard_function.
5016         (execute_pass_list_1): Terminate if cfun equals to NULL.
5017         (execute_pass_list): Do not push and pop cfun, expect that
5018         cfun is set.
5019         * tree-pass.h (TODO_discard_function): Define.
5020
5021 2015-11-04  Mikhail Maltsev  <maltsevm@gmail.com>
5022
5023         * cfganal.c (inverted_post_order_compute): Remove conditional
5024         compilation, use flag_checking.
5025         * config.in: Regenerate.
5026         * configure: Regenerate.
5027         * configure.ac: Remove ENABLE_CHECKING.
5028         * genconditions.c: Do not #undef ENABLE_CHECKING.
5029         * sese.h (bb_in_region): Comment out broken check.
5030         * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa_1): Remove
5031         conditional compilation, use flag_checking.
5032
5033 2015-11-04  Tom de Vries  <tom@codesourcery.com>
5034
5035         PR tree-optimization/67742
5036         * tree-ssa-structalias.c (struct fieldoff): Add restrict_pointed_type
5037         field.
5038         (push_fields_onto_fieldstack): Handle restrict_pointed_type field.
5039         (create_variable_info_for_1): Add and handle handle_param parameter.
5040         Add restrict handling.
5041         (create_variable_info_for): Call create_variable_info_for_1 with extra
5042         arg.
5043         (make_param_constraints): Drop restrict_name parameter.  Ignore
5044         vi->only_restrict_pointers.
5045         (intra_create_variable_infos): Call create_variable_info_for_1 with
5046         extra arg.  Remove restrict handling.  Call make_param_constraints with
5047         one fewer arg.
5048
5049 2015-11-04  Tom de Vries  <tom@codesourcery.com>
5050
5051         * tree-ssa-structalias.c (create_variable_info_for_1): Use decl_type
5052         variable.
5053
5054 2015-11-03  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5055
5056         * config/arm/coff.h: Remove.
5057
5058 2015-11-03  Eric Botcazou  <ebotcazou@adacore.com>
5059
5060         * gimple-expr.c (useless_type_conversion_p): Reinstate type canonical
5061         check for aggregate types and beef up comment for mode check.
5062
5063 2015-11-03  Richard Biener  <rguenther@suse.de>
5064
5065         * tree-vect-data-refs.c (vect_analyze_data_refs): Do not collect
5066         data references here.
5067         * tree-vect-loop.c: Include cgraph.h.
5068         (vect_analyze_loop_2): Collect data references here.
5069         * tree-vect-slp.c (find_bb_location): Inline ...
5070         (vect_slp_bb): ... here.  Renamed from vect_slp_analyze_bb.
5071         Factor in vect_slp_transform_bb.
5072         (vect_slp_transform_bb): Removed.
5073         (vect_slp_analyze_bb_1): Collect data references here.
5074         * tree-vectorizer.c (pass_slp_vectorize::execute): Call
5075         vect_slp_bb.
5076         * tree-vectorizer.h (vect_slp_bb): Declare.
5077         (vect_slp_analyze_bb): Remove.
5078         (vect_slp_transform_bb): Remove.
5079         (find_bb_location): Remove.
5080         (vect_analyze_data_refs): Remove stmt count reference parameter.
5081
5082 2015-11-03  Evgeny Stupachenko  <evstupac@gmail.com>
5083
5084         * multiple_target.c (create_dispatcher_calls): Add target check
5085         on ifunc.
5086         (create_target_clone): Change assembler name for versioned declarations.
5087
5088 2015-11-03  Thomas Schwinge  <thomas@codesourcery.com>
5089             Chung-Lin Tang  <cltang@codesourcery.com>
5090
5091         * builtins.def (DEF_GOMP_BUILTIN): Enable for flag_openacc.
5092         * omp-low.c (check_omp_nesting_restrictions): Allow
5093         GIMPLE_OMP_ATOMIC_LOAD, GIMPLE_OMP_ATOMIC_STORE inside OpenACC
5094         contexts.
5095
5096 2015-11-03  Bilyan Borisov  <bilyan.borisov@arm.com>
5097
5098         * config/aarch64/aarch64-simd-builtins.def (fmulx): New.
5099         * config/aarch64/aarch64-simd.md (aarch64_fmulx<mode>): New.
5100         * config/aarch64/arm_neon.h (vmulx_f32): Rewrite to call fmulx
5101         builtin.
5102         (vmulxq_f32): Likewise.
5103         (vmulx_f64): New.
5104         (vmulxq_f64): Rewrite to call fmulx builtin.
5105         (vmulxs_f32): Likewise.
5106         (vmulxd_f64): Likewise.
5107         (vmulx_lane_f32): Remove.
5108         * config/aarch64/iterators.md (UNSPEC): Add fmulx.
5109
5110 2015-11-03  Alan Lawrence  <alan.lawrence@arm.com>
5111
5112         * config/aarch64/aarch64.md (*movhf_aarch64): Use
5113         aarch64_reg_or_fp_zero for second operand.
5114
5115 2015-11-03  Alexandre Oliva <aoliva@redhat.com>
5116
5117         * gimple-expr.c: Include hash-set.h and rtl.h.
5118         (mark_addressable_queue): New var.
5119         (mark_addressable): Factor actual marking into...
5120         (mark_addressable_1): ... this.  Queue it up during expand.
5121         (mark_addressable_2): New.
5122         (flush_mark_addressable_queue): New.
5123         * gimple-expr.h (flush_mark_addressable_queue): Declare.
5124         * cfgexpand.c: Include gimple-expr.h.
5125         (pass_expand::execute): Flush mark_addressable queue.
5126
5127 2015-11-02  Alexandre Oliva <aoliva@redhat.com>
5128
5129         * tree-ssa-ifcombine.c (tree_ssa_ifcombine_bb_1): Factor out
5130         bb_no_side_effects_p tests...
5131         (tree_ssa_ifcombine_bb): ... here.
5132
5133         PR tree-optimization/68083
5134         * tree-ssa-ifcombine.c: Include tree-ssa.h.
5135         (bb_no_side_effects_p): Test for undefined uses too.
5136         * tree-ssa.c (gimple_uses_undefined_value_p): New.
5137         * tree-ssa.h (gimple_uses_undefined_value_p): Declare.
5138
5139 2015-11-02  Jeff Law <law@redhat.com>
5140
5141         * tree-ssa-threadupdate.c (valid_jump_thread_path): Also detect
5142         cases where the loop latch edge is in the middle of an FSM path.
5143
5144 2015-11-03  Tom de Vries  <tom@codesourcery.com>
5145
5146         * tree-ssa-structalias.c (make_restrict_var_constraints): Rename to ...
5147         (make_param_constraints): ... this.  Add and handle restrict_name
5148         parameter.  Handle is_full_var case.
5149         (intra_create_variable_infos): Use make_param_constraints.
5150
5151 2015-11-03  Tom de Vries  <tom@codesourcery.com>
5152
5153         * tree-ssa-structalias.c (make_restrict_var_constraints): Replace
5154         make_copy_constraint call with make_constraint_from call.
5155
5156 2015-11-02  Andreas Tobler  <andreast@gcc.gnu.org>
5157
5158         * config/rs6000/freebsd64.h (ASM_SPEC32): Adust spec to handle
5159         PIE executables.
5160
5161 2015-11-02  Richard Sandiford  <richard.sandiford@arm.com>
5162
5163         * builtins.h (fold_fma): Move to fold-const-call.h.
5164         * builtins.c: Include fold-const-call.h.
5165         (mathfn_built_in_2): New function, split out from...
5166         (mathfn_built_in_1): ...here.
5167         (do_real_to_int_conversion, fold_const_builtin_pow)
5168         (fold_const_builtin_logb, fold_const_builtin_significand)
5169         (fold_const_builtin_load_exponent, do_mpfr_arg1, do_mpfr_arg2)
5170         (do_mpfr_arg3, do_mpfr_sincos, do_mpfr_bessel_n, do_mpc_arg1): Delete.
5171         (fold_builtin_sincos): Use fold_const_call to handle constants.
5172         (fold_builtin_1, fold_builtin_2, fold_builtin_3): Add explicit
5173         checks for ERROR_MARK.  Use fold_const_call to handle constant
5174         folds for math functions.
5175         (fold_fma): Move to fold-const-call.c.
5176         * fold-const.c: Include fold-const-call.h.
5177         * Makefile.in (OBJS): Add fold-const-call.o.
5178         (PLUGIN_HEADERS): Add fold-const-call.h.
5179         * realmpfr.h (real_from_mpfr): Allow the format to be specified
5180         directly.
5181         * realmpfr.c (real_from_mpfr): Likewise.
5182         * fold-const-call.h, fold-const-call.c: New files.
5183
5184 2015-11-02  Julian Brown  <julian@codesourcery.com>
5185
5186         * config/arm/neon-testgen.ml (emit_epilogue): Remove extraneous
5187         brackets and semicolon.
5188
5189 2015-11-02  Alan Lawrence  <alan.lawrence@arm.com>
5190
5191         Revert:
5192         2015-10-27  Alan Lawrence  <alan.lawrence@arm.com>
5193
5194         PR tree-optimization/65963
5195         * tree-scalar-evolution.c (interpret_rhs_expr): Handle some
5196         LSHIFT_EXPRs as equivalent MULT_EXPRs.
5197
5198 2015-11-02  Thomas Schwinge  <thomas@codesourcery.com>
5199
5200         PR middle-end/68166
5201         * fold-const.c: Include "md5.h".
5202
5203 2015-11-01  Jeff Law <law@redhat.com>
5204
5205         * vmsdbgout.c: Revert unused header file reduction patch.
5206
5207         * config/mcore/mcore.c: Include regs.h.
5208
5209 2015-10-31  Segher Boessenkool  <segher@kernel.crashing.org>
5210
5211         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Rewrite.
5212
5213 2015-10-31  Segher Boessenkool  <segher@kernel.crashing.org>
5214
5215         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Use the
5216         same condition for testing whether RS6000_PIC_OFFSET_TABLE_REGNUM is
5217         live as for using it elsewhere, for TARGET_MINIMAL_TOC.
5218
5219 2015-10-31  Markus Trippelsdorf  <markus@trippelsdorf.de>
5220
5221         * ggc-common.c: Restore needed header for checking=release.
5222
5223 2015-10-31  Tom de Vries  <tom@codesourcery.com>
5224
5225         * fold-const.c (fold_unary_loc): Tune POINTER_PLUS_EXPR folding.
5226
5227 2015-10-31  Tom de Vries  <tom@codesourcery.com>
5228
5229         * tree-ssa-structalias.c (intra_create_variable_infos): Don't expect
5230         existing varinfo for arguments.
5231
5232 2015-10-31  Tom de Vries  <tom@codesourcery.com>
5233
5234         * tree-ssa-structalias.c (ipa_pta_execute): Add extra arg to call to
5235         create_function_info_for.  Dump constraints generated during
5236         create_function_info_for. Move intra_create_variable_infos call and
5237         function-return-values-escape bit to ...
5238         (create_function_info_for): ... here, and merge
5239         intra_create_variable_infos call with argument loop.  Add and handle
5240         nonlocal_p parameter.
5241
5242 2015-10-31  Tom de Vries  <tom@codesourcery.com>
5243
5244         * tree-ssa-structalias.c (create_function_info_for): Make sure prev_vi
5245         updating is alap, and seperated from preceding code.  Make sure
5246         insert_vi_for_tree is seperated from surrounding code.
5247
5248 2015-10-31  Tom de Vries  <tom@codesourcery.com>
5249
5250         * tree-ssa-structalias.c (ipa_pta_execute): Use make_copy_constraint.
5251
5252 2015-10-30  Jeff Law <law@redhat.com>
5253             Nathan Sidwell  <nathan@acm.org>
5254
5255         * config/nvptx/nvptx.h (HARD_REGNO_NREGS): Avoid warning on unused
5256         args.
5257         (MOVE_MAX): Set to 8.
5258
5259 2015-10-30  Cesar Philippidis  <cesar@codesourcery.com>
5260
5261         * cgraph.c: Include context.h for offloading.
5262         * varpool.c: Include context.h and omp-low.h.
5263
5264 2015-10-30  Anatoly Sokolov  <aesok@post.ru>
5265
5266         * rtl.h (contains_symbol_ref_p): Declare.
5267         (SYMBOL_REF_P): Define.
5268         * rtlanal.c (contains_symbol_ref_p: New function.
5269         * lra-constraints.c (contains_symbol_ref_p): Remove.
5270         * var-tracking.c (contains_symbol_ref): Remove.
5271         (track_expr_p): Use contains_symbol_ref_p instead of
5272         contains_symbol_ref.
5273
5274 2015-10-30  Alan Lawrence  <alan.lawrence@arm.com>
5275
5276         * gimple-fold.c (fold_array_ctor_reference): Move searching code to:
5277         * fold-const.c (get_array_ctor_element_at_index): New.
5278         (fold): Remove binary-search through CONSTRUCTOR, call previous.
5279
5280         * fold-const.h (get_array_ctor_element_at_index): New.
5281
5282 2015-10-30  Evgeny Stupachenko  <evstupac@gmail.com>
5283
5284         * Makefile.in (OBJS): Add multiple_target.o.
5285         * attrib.c (make_attribute): Moved from config/i386/i386.c
5286         * config/i386/i386.c (make_attribute): Deleted.
5287         * multiple_target.c (create_dispatcher_calls): New.
5288         (get_attr_len): Ditto.
5289         (get_attr_str): Ditto.
5290         (separate_attrs): Ditto.
5291         (is_valid_asm_symbol): Ditto.
5292         (create_new_asm_name): Ditto.
5293         (create_target_clone): Ditto.
5294         (expand_target_clones): Ditto.
5295         (ipa_target_clone): Ditto.
5296         (ipa_dispatcher_calls): Ditto.
5297         * passes.def (pass_target_clone): Two new ipa passes.
5298         * tree-pass.h (make_pass_target_clone): Ditto.
5299         * doc/extend.texi (target_clones): New attribute description.
5300
5301 2015-10-30  Vladimir Makarov  <vmakarov@redhat.com>
5302
5303         PR rtl-optimization/68106
5304         * lra-remat.c (input_regno_present_p): Process hard regs
5305         explicitly present in machine description insns.
5306         (call_used_input_regno_present_p): Ditto.
5307         (calculate_gen_cands): Ditto.
5308         (do_remat): Ditto.
5309
5310 2015-10-30  Jim Wilson  <jim.wilson@linaro.org>
5311
5312         * config/arm/neon-testgen.ml: Fix comment typo.
5313
5314 2015-10-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5315
5316         * rtlanal.c (reg_set_p): Expand function comment.
5317
5318 2015-10-30  Andrew MacLeod  <amacleod@redhat.com>
5319
5320         * alias.c: Remove unused headers.
5321         * asan.c: Likewise.
5322         * attribs.c: Likewise.
5323         * auto-inc-dec.c: Likewise.
5324         * auto-profile.c: Likewise.
5325         * bb-reorder.c: Likewise.
5326         * bitmap.c: Likewise.
5327         * bt-load.c: Likewise.
5328         * builtins.c: Likewise.
5329         * caller-save.c: Likewise.
5330         * calls.c: Likewise.
5331         * ccmp.c: Likewise.
5332         * cfg.c: Likewise.
5333         * cfganal.c: Likewise.
5334         * cfgbuild.c: Likewise.
5335         * cfgcleanup.c: Likewise.
5336         * cfgexpand.c: Likewise.
5337         * cfghooks.c: Likewise.
5338         * cfgloop.c: Likewise.
5339         * cfgloopanal.c: Likewise.
5340         * cfgloopmanip.c: Likewise.
5341         * cfgrtl.c: Likewise.
5342         * cgraph.c: Likewise.
5343         * cgraphbuild.c: Likewise.
5344         * cgraphclones.c: Likewise.
5345         * cgraphunit.c: Likewise.
5346         * cilk-common.c: Likewise.
5347         * combine-stack-adj.c: Likewise.
5348         * combine.c: Likewise.
5349         * compare-elim.c: Likewise.
5350         * convert.c: Likewise.
5351         * coverage.c: Likewise.
5352         * cppbuiltin.c: Likewise.
5353         * cprop.c: Likewise.
5354         * cse.c: Likewise.
5355         * cselib.c: Likewise.
5356         * data-streamer-in.c: Likewise.
5357         * data-streamer-out.c: Likewise.
5358         * data-streamer.c: Likewise.
5359         * dbxout.c: Likewise.
5360         * dce.c: Likewise.
5361         * ddg.c: Likewise.
5362         * debug.c: Likewise.
5363         * df-core.c: Likewise.
5364         * df-problems.c: Likewise.
5365         * df-scan.c: Likewise.
5366         * dfp.c: Likewise.
5367         * dojump.c: Likewise.
5368         * dominance.c: Likewise.
5369         * domwalk.c: Likewise.
5370         * double-int.c: Likewise.
5371         * dse.c: Likewise.
5372         * dumpfile.c: Likewise.
5373         * dwarf2asm.c: Likewise.
5374         * dwarf2cfi.c: Likewise.
5375         * dwarf2out.c: Likewise.
5376         * emit-rtl.c: Likewise.
5377         * except.c: Likewise.
5378         * explow.c: Likewise.
5379         * expmed.c: Likewise.
5380         * expr.c: Likewise.
5381         * final.c: Likewise.
5382         * fixed-value.c: Likewise.
5383         * fold-const.c: Likewise.
5384         * function.c: Likewise.
5385         * fwprop.c: Likewise.
5386         * gcse.c: Likewise.
5387         * generic-match-head.c: Likewise.
5388         * ggc-common.c: Likewise.
5389         * gimple-builder.c: Likewise.
5390         * gimple-expr.c: Likewise.
5391         * gimple-fold.c: Likewise.
5392         * gimple-iterator.c: Likewise.
5393         * gimple-low.c: Likewise.
5394         * gimple-match-head.c: Likewise.
5395         * gimple-pretty-print.c: Likewise.
5396         * gimple-ssa-isolate-paths.c: Likewise.
5397         * gimple-ssa-strength-reduction.c: Likewise.
5398         * gimple-streamer-in.c: Likewise.
5399         * gimple-streamer-out.c: Likewise.
5400         * gimple-walk.c: Likewise.
5401         * gimple.c: Likewise.
5402         * gimplify-me.c: Likewise.
5403         * gimplify.c: Likewise.
5404         * godump.c: Likewise.
5405         * graph.c: Likewise.
5406         * graphds.c: Likewise.
5407         * haifa-sched.c: Likewise.
5408         * hw-doloop.c: Likewise.
5409         * ifcvt.c: Likewise.
5410         * init-regs.c: Likewise.
5411         * internal-fn.c: Likewise.
5412         * ipa-chkp.c: Likewise.
5413         * ipa-comdats.c: Likewise.
5414         * ipa-cp.c: Likewise.
5415         * ipa-devirt.c: Likewise.
5416         * ipa-icf-gimple.c: Likewise.
5417         * ipa-icf.c: Likewise.
5418         * ipa-inline-analysis.c: Likewise.
5419         * ipa-inline-transform.c: Likewise.
5420         * ipa-inline.c: Likewise.
5421         * ipa-polymorphic-call.c: Likewise.
5422         * ipa-profile.c: Likewise.
5423         * ipa-prop.c: Likewise.
5424         * ipa-pure-const.c: Likewise.
5425         * ipa-ref.c: Likewise.
5426         * ipa-reference.c: Likewise.
5427         * ipa-split.c: Likewise.
5428         * ipa-utils.c: Likewise.
5429         * ipa-visibility.c: Likewise.
5430         * ipa.c: Likewise.
5431         * ira-build.c: Likewise.
5432         * ira-color.c: Likewise.
5433         * ira-conflicts.c: Likewise.
5434         * ira-costs.c: Likewise.
5435         * ira-emit.c: Likewise.
5436         * ira-lives.c: Likewise.
5437         * ira.c: Likewise.
5438         * jump.c: Likewise.
5439         * langhooks.c: Likewise.
5440         * lcm.c: Likewise.
5441         * lists.c: Likewise.
5442         * loop-doloop.c: Likewise.
5443         * loop-init.c: Likewise.
5444         * loop-invariant.c: Likewise.
5445         * loop-iv.c: Likewise.
5446         * loop-unroll.c: Likewise.
5447         * lower-subreg.c: Likewise.
5448         * lra-assigns.c: Likewise.
5449         * lra-coalesce.c: Likewise.
5450         * lra-constraints.c: Likewise.
5451         * lra-eliminations.c: Likewise.
5452         * lra-lives.c: Likewise.
5453         * lra-remat.c: Likewise.
5454         * lra-spills.c: Likewise.
5455         * lra.c: Likewise.
5456         * lto-cgraph.c: Likewise.
5457         * lto-compress.c: Likewise.
5458         * lto-opts.c: Likewise.
5459         * lto-section-in.c: Likewise.
5460         * lto-section-out.c: Likewise.
5461         * lto-streamer-in.c: Likewise.
5462         * lto-streamer-out.c: Likewise.
5463         * lto-streamer.c: Likewise.
5464         * mcf.c: Likewise.
5465         * mode-switching.c: Likewise.
5466         * modulo-sched.c: Likewise.
5467         * optabs.c: Likewise.
5468         * opts-global.c: Likewise.
5469         * passes.c: Likewise.
5470         * plugin.c: Likewise.
5471         * postreload-gcse.c: Likewise.
5472         * postreload.c: Likewise.
5473         * predict.c: Likewise.
5474         * print-tree.c: Likewise.
5475         * profile.c: Likewise.
5476         * real.c: Likewise.
5477         * realmpfr.c: Likewise.
5478         * recog.c: Likewise.
5479         * ree.c: Likewise.
5480         * reg-stack.c: Likewise.
5481         * regcprop.c: Likewise.
5482         * reginfo.c: Likewise.
5483         * regrename.c: Likewise.
5484         * regstat.c: Likewise.
5485         * reload.c: Likewise.
5486         * reload1.c: Likewise.
5487         * reorg.c: Likewise.
5488         * resource.c: Likewise.
5489         * rtl-chkp.c: Likewise.
5490         * rtl-error.c: Likewise.
5491         * rtlanal.c: Likewise.
5492         * rtlhooks.c: Likewise.
5493         * sanopt.c: Likewise.
5494         * sched-deps.c: Likewise.
5495         * sched-ebb.c: Likewise.
5496         * sched-rgn.c: Likewise.
5497         * sdbout.c: Likewise.
5498         * sel-sched-dump.c: Likewise.
5499         * sel-sched-ir.c: Likewise.
5500         * sel-sched.c: Likewise.
5501         * sese.c: Likewise.
5502         * shrink-wrap.c: Likewise.
5503         * simplify-rtx.c: Likewise.
5504         * stack-ptr-mod.c: Likewise.
5505         * statistics.c: Likewise.
5506         * stmt.c: Likewise.
5507         * stor-layout.c: Likewise.
5508         * store-motion.c: Likewise.
5509         * stringpool.c: Likewise.
5510         * symtab.c: Likewise.
5511         * target-globals.c: Likewise.
5512         * targhooks.c: Likewise.
5513         * toplev.c: Likewise.
5514         * tracer.c: Likewise.
5515         * trans-mem.c: Likewise.
5516         * tree-affine.c: Likewise.
5517         * tree-call-cdce.c: Likewise.
5518         * tree-cfg.c: Likewise.
5519         * tree-cfgcleanup.c: Likewise.
5520         * tree-chkp-opt.c: Likewise.
5521         * tree-chkp.c: Likewise.
5522         * tree-chrec.c: Likewise.
5523         * tree-complex.c: Likewise.
5524         * tree-data-ref.c: Likewise.
5525         * tree-dfa.c: Likewise.
5526         * tree-diagnostic.c: Likewise.
5527         * tree-dump.c: Likewise.
5528         * tree-eh.c: Likewise.
5529         * tree-emutls.c: Likewise.
5530         * tree-if-conv.c: Likewise.
5531         * tree-inline.c: Likewise.
5532         * tree-into-ssa.c: Likewise.
5533         * tree-iterator.c: Likewise.
5534         * tree-loop-distribution.c: Likewise.
5535         * tree-nested.c: Likewise.
5536         * tree-nrv.c: Likewise.
5537         * tree-object-size.c: Likewise.
5538         * tree-outof-ssa.c: Likewise.
5539         * tree-parloops.c: Likewise.
5540         * tree-phinodes.c: Likewise.
5541         * tree-predcom.c: Likewise.
5542         * tree-pretty-print.c: Likewise.
5543         * tree-profile.c: Likewise.
5544         * tree-scalar-evolution.c: Likewise.
5545         * tree-sra.c: Likewise.
5546         * tree-ssa-address.c: Likewise.
5547         * tree-ssa-alias.c: Likewise.
5548         * tree-ssa-ccp.c: Likewise.
5549         * tree-ssa-coalesce.c: Likewise.
5550         * tree-ssa-copy.c: Likewise.
5551         * tree-ssa-dce.c: Likewise.
5552         * tree-ssa-dse.c: Likewise.
5553         * tree-ssa-forwprop.c: Likewise.
5554         * tree-ssa-ifcombine.c: Likewise.
5555         * tree-ssa-live.c: Likewise.
5556         * tree-ssa-loop-ch.c: Likewise.
5557         * tree-ssa-loop-im.c: Likewise.
5558         * tree-ssa-loop-ivcanon.c: Likewise.
5559         * tree-ssa-loop-ivopts.c: Likewise.
5560         * tree-ssa-loop-manip.c: Likewise.
5561         * tree-ssa-loop-niter.c: Likewise.
5562         * tree-ssa-loop-prefetch.c: Likewise.
5563         * tree-ssa-loop-unswitch.c: Likewise.
5564         * tree-ssa-loop.c: Likewise.
5565         * tree-ssa-math-opts.c: Likewise.
5566         * tree-ssa-operands.c: Likewise.
5567         * tree-ssa-phiopt.c: Likewise.
5568         * tree-ssa-phiprop.c: Likewise.
5569         * tree-ssa-pre.c: Likewise.
5570         * tree-ssa-propagate.c: Likewise.
5571         * tree-ssa-reassoc.c: Likewise.
5572         * tree-ssa-scopedtables.c: Likewise.
5573         * tree-ssa-sink.c: Likewise.
5574         * tree-ssa-strlen.c: Likewise.
5575         * tree-ssa-structalias.c: Likewise.
5576         * tree-ssa-tail-merge.c: Likewise.
5577         * tree-ssa-ter.c: Likewise.
5578         * tree-ssa-threadupdate.c: Likewise.
5579         * tree-ssa-uncprop.c: Likewise.
5580         * tree-ssa-uninit.c: Likewise.
5581         * tree-ssa.c: Likewise.
5582         * tree-ssanames.c: Likewise.
5583         * tree-stdarg.c: Likewise.
5584         * tree-streamer-in.c: Likewise.
5585         * tree-streamer-out.c: Likewise.
5586         * tree-streamer.c: Likewise.
5587         * tree-switch-conversion.c: Likewise.
5588         * tree-tailcall.c: Likewise.
5589         * tree-vect-data-refs.c: Likewise.
5590         * tree-vect-generic.c: Likewise.
5591         * tree-vect-loop-manip.c: Likewise.
5592         * tree-vect-loop.c: Likewise.
5593         * tree-vect-patterns.c: Likewise.
5594         * tree-vect-slp.c: Likewise.
5595         * tree-vect-stmts.c: Likewise.
5596         * tree-vectorizer.c: Likewise.
5597         * tree-vrp.c: Likewise.
5598         * tree.c: Likewise.
5599         * tsan.c: Likewise.
5600         * ubsan.c: Likewise.
5601         * value-prof.c: Likewise.
5602         * var-tracking.c: Likewise.
5603         * varasm.c: Likewise.
5604         * varpool.c: Likewise.
5605         * vmsdbgout.c: Likewise.
5606         * vtable-verify.c: Likewise.
5607         * web.c: Likewise.
5608         * wide-int-print.cc: Likewise.
5609         * wide-int.cc: Likewise.
5610         * xcoffout.c: Likewise.
5611
5612 2015-10-30  James Greenhalgh  <james.greenhalgh@arm.com>
5613
5614         * doc/invoke.texi (fdump-rtl-@var{pass}): Clarify relationship
5615         between pass numbering and execution order.
5616
5617 2015-10-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5618
5619         * config/arm/arm.c (cortex_a9_sched_adjust_cost): Use reg_set_p to
5620         check for dependencies.
5621
5622 2015-10-30  Richard Sandiford  <richard.sandiford@arm.com>
5623
5624         * tree-ssa-math-opts.c (pass_cse_sincos::execute): Don't free
5625         CDI_DOMINATORS.
5626
5627 2015-10-30  Richard Sandiford  <richard.sandiford@arm.com>
5628
5629         * real.h (format_helper): New.
5630         (real_convert, exact_real_truncate, real_from_string3, real_to_target)
5631         (real_from_target, real_nan, real_2expN, real_value_truncate)
5632         (significand_size, real_from_string2, exact_real_inverse)
5633         (exact_real_inverse, real_powi, real_trunc, real_floor, real_ceil)
5634         (real_round, real_isinteger, real_from_integer): Replace
5635         machine_mode arguments with format_helper arguments.
5636         * real.c (exact_real_inverse, real_from_string2, real_from_string3)
5637         (real_from_integer, real_nan, real_2expN, real_convert)
5638         (real_value_truncate, exact_real_truncate, real_to_target)
5639         (real_from_target, significand_size, real_powi, real_trunc)
5640         (real_floor, real_ceil, real_round, real_isinteger): Replace
5641         machine_mode arguments with format_helper arguments.
5642         (real_to_target_fmt, real_from_target_fmt): Delete.
5643         * dfp.h (decimal_real_convert): Replace mode argument with real_format.
5644         * dfp.c (decimal_to_binary, decimal_real_convert): Replace mode
5645         argument with real_format.
5646         * builtins.c (do_real_to_int_conversion): Update type of fn argument.
5647
5648 2015-10-30  Richard Sandiford  <richard.sandiford@arm.com>
5649
5650         * fixed-value.c (check_real_for_fixed_mode, fixed_from_string)
5651         (fixed_to_decimal, fixed_convert_from_real)
5652         (real_convert_from_fixed): Fix mode arguments to real_2expN.
5653
5654 2015-10-30  Richard Sandiford  <richard.sandiford@arm.com>
5655
5656         * real.h (REAL_MODE_FORMAT): Abort if the mode isn't a
5657         SCALAR_FLOAT_MODE_P.
5658
5659 2015-10-30  Alan Lawrence  <alan.lawrence@arm.com>
5660
5661         * tree-sra.c (scalarizable_type_p): Comment variable-length arrays.
5662         (completely_scalarize): Comment zero-length arrays.
5663         (get_access_replacement): Correct comment re. precondition.
5664
5665 2015-10-30  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
5666
5667         * config/i386/i386.c (get_builtin_code_for_version): Set priority
5668         for PROCESSOR_ZNVER1.
5669         (enum processor_model): Add M_AMDFAM17H_znver1.
5670         (struct arch_names_table): Likewise.
5671         * doc/extend.texi: ADD znver1.
5672
5673 2015-10-30  Richard Biener  <rguenther@suse.de>
5674
5675         * gimple-fold.c (fold_gimple_assign): Do not dispatch to
5676         fold () on single RHSs.  Allow CONSTRUCTORS with trailing
5677         zeros to be folded to VECTOR_CSTs.
5678         * tree.c (build_vector_from_ctor): Handle VECTOR_CST elements.
5679         * fold-const.c (fold): Use build_vector_from_ctor.
5680
5681 2015-10-30  Evandro Menezes  <e.menezes@samsung.com>
5682
5683         * config/aarch64/aarch64.md (*movhf_aarch64): Change the type of
5684         "mov %0.h[0], %1.h[0] to "neon_move".
5685         (*movtf_aarch64): Change the type of "fmov %s0, wzr" to "f_mcr".
5686         (*cmov<mode>_insn): Change the types of "mov %<w>0, {-1,1}" to
5687         "mov_imm".
5688         (*cmovsi_insn_uxtw): Likewise.
5689
5690 2015-10-30  Tom de Vries  <tom@codesourcery.com>
5691
5692         * tree-ssa-structalias.c (ipa_pta_execute): Declare variable from as
5693         unsigned, and initialize, and use initial value instead of hardcoded
5694         constant.  Add generic constraints dumping section.  Don't dump global
5695         initializers constraints dumping section if empty.  Don't update
5696         variable from if unused.
5697
5698 2015-10-29  Mikhail Maltsev  <maltsevm@gmail.com>
5699
5700         * config/alpha/alpha.c (alpha_function_arg): Use gcc_checking_assert,
5701         flag_checking and/or CHECKING_P to eliminate conditional compilation
5702         on ENABLE_CHECKING.
5703         * config/arm/arm.c (arm_unwind_emit_sequence): Likewise.
5704         * config/bfin/bfin.c (hwloop_optimize): Likewise.
5705         * config/i386/i386.c (ix86_print_operand_address): Likewise.
5706         (output_387_binary_op): Likewise.
5707         * config/ia64/ia64.c (ia64_sched_init, bundling): Likewise.
5708         * config/m68k/m68k.c (m68k_sched_md_init_global): Likewise.
5709         * config/rs6000/rs6000.c (htm_expand_builtin, rs6000_emit_prologue):
5710         Likewise.
5711         * config/rs6000/rs6000.h: Likewise.
5712         * config/visium/visium.c (visium_setup_incoming_varargs): Likewise.
5713
5714 2015-10-29  Kaz Kojima  <kkojima@gcc.gnu.org>
5715
5716         * config/sh/sh.opt (mfdpic): Add missing period.
5717
5718 2015-08-29  Anatoly Sokolov  <aesok@post.ru>
5719
5720         * config/mcore/mcore.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
5721         BASE_REGISTER_RTX_P, INDEX_REGISTER_RTX_P,
5722         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
5723         * config/mcore/mcore.c (mcore_reg_ok_for_base_p,
5724         mcore_base_register_rtx_p, mcore_legitimate_index_p,
5725         mcore_legitimate_address_p): New functions.
5726         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
5727
5728 2015-10-29  Jeff Law  <law@redhat.com>
5729
5730         * tree-ssa-scopedtables.h (const_and_copies): Remove invalidate
5731         method.
5732         * tree-ssa-scopedtables.h (const_and_copies::invalidate): Remove.
5733         * tree-ssa-threadedge.c
5734         (record_temporary_equivalences_from_stmts_at_dest): Remove
5735         backedge_seen argument and associated code which invalidated
5736         equivalences based on the value of that argument.
5737         (thread_through_normal_block): Corresponding changes.
5738
5739 2015-10-29  Segher Boessenkool  <segher@kernel.crashing.org>
5740
5741         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Move this
5742         function earlier in the file.
5743         (first_reg_to_save): Use rs6000_reg_live_or_pic_offset_p instead of
5744         df_regs_ever_live_p.
5745
5746 2015-10-29  Segher Boessenkool  <segher@kernel.crashing.org>
5747
5748         * lra-constraints.c (process_address_1): Handle (mem:BLK (scratch))
5749         by ignoring it.
5750
5751 2015-10-29  Richard Henderson  <rth@redhat.com>
5752
5753         PR target/68124
5754         PR rtl-opt/67609
5755         * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
5756         sse check to the exact conditions of PR 67609.
5757
5758 2015-10-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
5759
5760         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Split libfunc
5761         setup into 3 functions: init_float128_ibm, init_float128_ieee, and
5762         rs6000_init_libfuncs. If -mfloat128, add IFmode functions for all
5763         of the traditional names that TFmode uses for handling IEEE
5764         extended double. If -mfloat128, add KFmode functions for all of
5765         the emulation functions. If -mabi=ieeelongdouble and -mfloat128,
5766         make TFmode use the same emulation functions as KFmode.
5767         (init_float128_ibm): Likewise.
5768         (init_float128_ieee): Likewise.
5769         (rs6000_generate_compare): For IEEE 128-bit floating point
5770         comparisons, call the unordered comparison function instead of the
5771         ordered comparison function.
5772         (rs6000_expand_float128_convert): Deal with operands that are
5773         memory operands. Restructure the code to use a switch statement on
5774         the mode. Add support for TFmode defaulting to either IBM extended
5775         double or IEEE 128-bit floating point. If the underlying types are
5776         the same, use a move instead of a conversion function.
5777         (TARGET_C_MODE_FOR_SUFFIX): Define 'q' and 'Q' as the suffix to
5778         use for IEEE 128-bit floating point constants with -mfloat128.
5779         (rs6000_c_mode_for_suffix): Likewise.
5780         (TARGET_INVALID_BINARY_OP): Do not allow inter-mixing of IEEE
5781         128-bit floating point with IBM extended double floating point.
5782         (rs6000_invalid_binary_op): Likewise.
5783         (rs6000_gen_le_vsx_permute): On little endian systems generate a
5784         ROTATE insn instead of VEC_SELECT for IEEE 128-bit floating point
5785         types that can go in vector registers.
5786         (chain_contains_only_swaps): Properly swap IEEE 128-bit floating
5787         point types that can go in vector registers on little endian
5788         PowerPC systems.
5789         (mark_swaps_for_removal): Likewise.
5790         (rs6000_analyze_swaps): Likewise.
5791         (rs6000_mangle_type): Use U10__float128 for IEEE 128-bit floating point.
5792
5793         * config/rs6000/rs6000.md (FLOAT128_SFDFTF): Delete iterator,
5794         rework IEEE 128-bit floating point insns to deal with TFmode being
5795         either IBM extended double or IEEE 128-bit floating point.
5796         (IFKF): Likewise.
5797         (IBM128): Update iterator to add condition that the mode is IBM
5798         extended double.
5799         (IEEE128): New iterator for IEEE 128-bit floating point.
5800         (TFIFKF): Rename TFIFKF iterator to FLOAT128.
5801         (FLOAT128): Likewise.
5802         (signbit<mode>2): FLOAT128_IBM_P condition test moved into IBM128
5803         iterator.
5804         (neg<mode>2): Replace TFIFKF iterator with FLOAT128. Add support
5805         for TFmode being IEEE 128-bit floating point. Use IEEE128 iterator
5806         instead of hard coding TFmode or KFmode.
5807         (negtf2_internal): Likewise.
5808         (neg<mode>2_internal): Likewise.
5809         (abs<mode>2): Likewise.
5810         (abstf2_internal): Likewise.
5811         (abs<mode>2_internal): Likewise.
5812         (ieee_128bit_neg<mode>2): Likewise.
5813         (ieee_128bit_neg<mode>2_internal): Likewise.
5814         (ieee_128bit_abs<mode>2): Likewise.
5815         (ieee_128bit_abs<mode>2_internal): Likewise.
5816         (ieee_128bit_nabs<mode>2): Likewise.
5817         (ieee_128bit_nabs<mode>2_internal): Likewise.
5818         (extendiftf2): Add explicit conversions between 128-bit floating
5819         point types. Drop the old conversions that had become unwieldy.
5820         (extend<FLOAT128_SFDFTF:mode><IFKF:mode>2): Likewise.
5821         (extendifkf2): Likewise.
5822         (trunc<IFKF:mode><FLOAT128_SFDFTF:mode>2): Likewise.
5823         (extendtfkf2): Likewise.
5824         (fix_trunc<IFKF:mode><SDI:mode>2): Likewise.
5825         (trunciftf2): Likewise.
5826         (fixuns_trunc<IFKF:mode><SDI:mode>2): Likewise.
5827         (truncifkf2): Likewise.
5828         (float<SDI:mode><IFKF:mode>2): Likewise.
5829         (trunckftf2): Likewise.
5830         (floatuns<SDI:mode><IFKF:mode>2): Likewise.
5831         (trunctfif2): Likewise.
5832         (FP iterator): Allow TFmode to be IEEE 128-bit floating point.
5833         (extenddftf2): Rework 128-bit floating point conversions to
5834         properly handle -mabi=ieeelongdouble. Merge IFmode, TFmode, and
5835         KFmode expanders into one function.
5836         (extenddf<mode>2): Likewise.
5837         (extenddftf2_fprs): Likewise.
5838         (extenddf<mode>2_fprs): Likewise.
5839         (extenddftf2_vsx): Likewise.
5840         (extenddf<mode>2_vsx): Likewise.
5841         (extendsftf2): Likewise.
5842         (extendsf<mode>2): Likewise.
5843         (trunctfdf2): Likewise.
5844         (trunc<mode>df2): Likewise.
5845         (trunctfdf2_internal1): Likewise.
5846         (trunc<mode>df2_internal1): Likewise.
5847         (trunctfdf2_internal2): Likewise.
5848         (trunc<mode>df2_internal2): Likewise.
5849         (trunctfsf2): Likewise.
5850         (trunc<mode>sf2): Likewise.
5851         (trunctfsf2_fprs): Likewise.
5852         (trunc<mode>sf2_fprs): Likewise.
5853         (floatsit2f): Likewise.
5854         (floatsi<mode>2): Likewise.
5855         (fix_trunc_helper): Likewise.
5856         (fix_trunc_helper<mode>): Likewise.
5857         (fix_trunctfsi2): Likewise.
5858         (fix_trunc<mode>si2): Likewise.
5859         (fix_trunctfsi2_fprs): Likewise.
5860         (fix_trunc<mode>si2_fprs): Likewise.
5861         (fix_trunctfsi2_internal): Likewise.
5862         (fix_trunc<mode>si2_internal): Likewise.
5863         (fix_trunctfdi2): Likewise.
5864         (fix_trunc<mode>di2): Likewise.
5865         (fixuns_trunctf<mode>2): Likewise.
5866         (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
5867         (floatditf2): Likewise.
5868         (floatdi<mode>2): Likewise.
5869         (floatuns<mode>tf2): Likewise.
5870         (floatuns<SDI:mode><IEEE128:mode>): Likewise.
5871         (cmptf_internal1): Use a mode iterator to add support for both
5872         types (IFmode, TFmode) that support IBM extended double.
5873         (cmp<mode>_internal1): Likewise.
5874         (cmptf_internal2): Likewise.
5875         (cmp<mode>_internal2): Likewise.
5876
5877         * doc/extend.texi (Floating Types): Document __ibm128 and
5878         __float128 on PowerPC.
5879
5880         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
5881         -mfloat128 and -mno-float128.
5882
5883 2015-10-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
5884
5885         * config/rs6000/rs6000.h (ALTIVEC_VECTOR_MODE): Add IEEE 128-bit
5886         floating point modes that can go in vector registers.
5887         (MODES_TIEABLE_P): Move tests for vector modes before tests for
5888         scalar floating point, so that IEEE 128-bit floating point that
5889         can go in vector registers bind with vectors and not FP.
5890         (struct rs6000_args): Add libcall field.
5891
5892         * config/rs6000/rs6000.opt (-mfloat128-*): Delete -mfloat128-none
5893         and -mfloat128-software switches.  Replace them with a binary
5894         -mfloat128 switch.
5895         (-mfloat128): Likewise.
5896
5897         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Allow
5898         128-bit floating point types in GPRs, even if the appropriate
5899         option enabling the type was not used.
5900         (rs6000_debug_reg_global): Remove -mfloat128-{software,none}
5901         debugging.
5902         (rs6000_setup_reg_addr_masks): Do not allow pre-increment and
5903         pre-decrement on IEEE 128-bit floating point values.
5904         (rs6000_init_hard_regno_mode_ok): Change test for whether TFmode
5905         is IEEE 128-bit floating point.
5906         (rs6000_init_hard_regno_mode_ok): Add reload handlers for IEEE
5907         128-bit floating point types that can go in vector registers.
5908         (rs6000_option_override_internal): Change -mfloat128-none and
5909         -mfloat128-software to -mfloat128, and move code to be near other
5910         VSX option handling.
5911         (rs6000_option_override_internal): Disable -mfloat128 if we don't
5912         have the Altivec ABI.
5913         (rs6000_init_builtins): Don't make TFmode use either IFmode or
5914         KFmode floating point nodes. Instead, have three separate nodes.
5915         (rs6000_scalar_mode_supported_p): Add support for IFmode to allow
5916         eventually moving the long double default to IEEE 128-bit floating
5917         point.
5918         (rs6000_opt_masks): Add -mfloat128.
5919         (struct rs6000_opt_var): Fix typo in comment.
5920         (init_cumulative_args): Initialize libcall field in
5921         CUMULATIVE_ARGS.
5922         (rs6000_function_arg): Treat library functions as if they had
5923         prototypes to prevent IEEE 128-bit support functions from passing
5924         arguments in both GPRs and vector registers.
5925         (rs6000_arg_partial_bytes): Likewise.
5926
5927         * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add -mfloat128 as
5928         an option that can be turned on via -mcpu=<xxx>.
5929
5930         * config/rs6000/rs6000-opts.h (enum float128_type_t): Delete, no
5931         longer used.
5932
5933         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
5934         __FLOAT128__ if -mfloat128. Define __LONG_DOUBLE_IEEE128__ if long
5935         double is IEEE 128-bit. Define __LONG_DOUBLE_IBM128__ if long
5936         double is IBM extended double.
5937
5938         * config/rs6000/predicates.md (reg_or_indexed_operand): Allow
5939         SUBREGs.
5940
5941 2015-10-29  Mikhail Maltsev  <maltsevm@gmail.com>
5942
5943         * genautomata.c: Use CHECKING_P instead of ENABLE_CHECKING.
5944         * genconditions.c: Define CHECKING_P in the generated code.
5945         * genextract.c: Use flag_checking in insn_extract.
5946         * gengtype.c (main): Remove conditional compilation.
5947         * gengtype.h: Likewise.
5948
5949 2015-10-29  Jeff Law  <law@redhat.com>
5950
5951         PR tree-optimization/67892
5952         * tree-ssa-threadedge.c (simplify_controL_stmt_condition): Fix typo
5953         in comment.
5954         (thread_through_normal_block): If we have seen a backedge, then
5955         do nothing.  No longer call find_jump_threads_backwards here.
5956         (thread_across_edge): Use find_jump_threads_backwards to find
5957         jump threads if the old style threader was not successful.
5958         * tree-ssa-threadbackward.c (get_gimple_control_stmt): Use
5959         gsi_last_nondebug_bb.  Return NULL if the block does not end
5960         with a control statement.
5961         (find_jump_threads_backwards): Setup code moved here from
5962         tree-ssa-threadedge.c::thread_through_normal_block.  Accept
5963         single edge argument instead of name & block.
5964         * tree-ssa-threadbackward.h (find_jump_threads_backwards): Update
5965         prototype.
5966
5967 2015-10-29  Tom de Vries  <tom@codesourcery.com>
5968
5969         * fold-const.c (fold_unary_loc): Remove folding inhibition for restrict
5970         types.
5971
5972 2015-10-29  Nathan Sidwell  <nathan@codesourcery.com>
5973
5974         * omp-low.c (lower_omp_target): Remove unreachable code & merge
5975         ifs.
5976
5977 2015-10-29  Marc Glisse  <marc.glisse@inria.fr>
5978
5979         * match.pd (X-(X/Y)*Y): Properly handle conversions and commutativity.
5980
5981 2015-10-29  Richard Sandiford  <richard.sandiford@arm.com>
5982
5983         * tree-call-cdce.c (shrink_wrap_one_built_in_call): Remove
5984         guard_bb0 and use guard_bb throughout.
5985
5986 2015-10-29  Richard Sandiford  <richard.sandiford@arm.com>
5987
5988         * tree-call-cdce.c (shrink_wrap_one_built_in_call): Remove
5989         unnecessary label.
5990
5991 2015-10-29  Richard Biener  <rguenther@suse.de>
5992
5993         PR middle-end/68142
5994         * fold-const.c (extract_muldiv_1): Avoid introducing undefined
5995         overflow.
5996
5997 2015-10-29  Andrew MacLeod  <amacleod@redhat.com>
5998
5999         * alias.c: Reorder #include statements and remove duplicates.
6000         * asan.c: Likewise.
6001         * attribs.c: Likewise.
6002         * auto-inc-dec.c: Likewise.
6003         * auto-profile.c: Likewise.
6004         * bb-reorder.c: Likewise.
6005         * bt-load.c: Likewise.
6006         * builtins.c: Likewise.
6007         * caller-save.c: Likewise.
6008         * calls.c: Likewise.
6009         * ccmp.c: Likewise.
6010         * cfg.c: Likewise.
6011         * cfganal.c: Likewise.
6012         * cfgbuild.c: Likewise.
6013         * cfgcleanup.c: Likewise.
6014         * cfgexpand.c: Likewise.
6015         * cfghooks.c: Likewise.
6016         * cfgloop.c: Likewise.
6017         * cfgloopanal.c: Likewise.
6018         * cfgloopmanip.c: Likewise.
6019         * cfgrtl.c: Likewise.
6020         * cgraph.c: Likewise.
6021         * cgraphbuild.c: Likewise.
6022         * cgraphclones.c: Likewise.
6023         * cgraphunit.c: Likewise.
6024         * cilk-common.c: Likewise.
6025         * combine-stack-adj.c: Likewise.
6026         * combine.c: Likewise.
6027         * compare-elim.c: Likewise.
6028         * convert.c: Likewise.
6029         * coverage.c: Likewise.
6030         * cppbuiltin.c: Likewise.
6031         * cprop.c: Likewise.
6032         * cse.c: Likewise.
6033         * cselib.c: Likewise.
6034         * data-streamer-in.c: Likewise.
6035         * data-streamer-out.c: Likewise.
6036         * data-streamer.c: Likewise.
6037         * dbxout.c: Likewise.
6038         * dce.c: Likewise.
6039         * ddg.c: Likewise.
6040         * debug.c: Likewise.
6041         * df-core.c: Likewise.
6042         * df-problems.c: Likewise.
6043         * df-scan.c: Likewise.
6044         * dfp.c: Likewise.
6045         * dojump.c: Likewise.
6046         * dominance.c: Likewise.
6047         * double-int.c: Likewise.
6048         * dse.c: Likewise.
6049         * dumpfile.c: Likewise.
6050         * dwarf2asm.c: Likewise.
6051         * dwarf2cfi.c: Likewise.
6052         * dwarf2out.c: Likewise.
6053         * emit-rtl.c: Likewise.
6054         * except.c: Likewise.
6055         * explow.c: Likewise.
6056         * expmed.c: Likewise.
6057         * expr.c: Likewise.
6058         * final.c: Likewise.
6059         * fixed-value.c: Likewise.
6060         * fold-const.c: Likewise.
6061         * function.c: Likewise.
6062         * fwprop.c: Likewise.
6063         * gcse.c: Likewise.
6064         * generic-match-head.c: Likewise.
6065         * ggc-common.c: Likewise.
6066         * gimple-builder.c: Likewise.
6067         * gimple-expr.c: Likewise.
6068         * gimple-fold.c: Likewise.
6069         * gimple-iterator.c: Likewise.
6070         * gimple-low.c: Likewise.
6071         * gimple-match-head.c: Likewise.
6072         * gimple-pretty-print.c: Likewise.
6073         * gimple-ssa-isolate-paths.c: Likewise.
6074         * gimple-ssa-strength-reduction.c: Likewise.
6075         * gimple-streamer-in.c: Likewise.
6076         * gimple-streamer-out.c: Likewise.
6077         * gimple-walk.c: Likewise.
6078         * gimple.c: Likewise.
6079         * gimplify-me.c: Likewise.
6080         * gimplify.c: Likewise.
6081         * godump.c: Likewise.
6082         * graph.c: Likewise.
6083         * graphite-poly.c: Likewise.
6084         * haifa-sched.c: Likewise.
6085         * hw-doloop.c: Likewise.
6086         * ifcvt.c: Likewise.
6087         * incpath.c: Likewise.
6088         * init-regs.c: Likewise.
6089         * internal-fn.c: Likewise.
6090         * ipa-chkp.c: Likewise.
6091         * ipa-comdats.c: Likewise.
6092         * ipa-cp.c: Likewise.
6093         * ipa-devirt.c: Likewise.
6094         * ipa-icf-gimple.c: Likewise.
6095         * ipa-icf.c: Likewise.
6096         * ipa-inline-analysis.c: Likewise.
6097         * ipa-inline-transform.c: Likewise.
6098         * ipa-inline.c: Likewise.
6099         * ipa-polymorphic-call.c: Likewise.
6100         * ipa-profile.c: Likewise.
6101         * ipa-prop.c: Likewise.
6102         * ipa-pure-const.c: Likewise.
6103         * ipa-ref.c: Likewise.
6104         * ipa-reference.c: Likewise.
6105         * ipa-split.c: Likewise.
6106         * ipa-utils.c: Likewise.
6107         * ipa-visibility.c: Likewise.
6108         * ipa.c: Likewise.
6109         * ira-build.c: Likewise.
6110         * ira-color.c: Likewise.
6111         * ira-conflicts.c: Likewise.
6112         * ira-costs.c: Likewise.
6113         * ira-emit.c: Likewise.
6114         * ira-lives.c: Likewise.
6115         * ira.c: Likewise.
6116         * jump.c: Likewise.
6117         * langhooks.c: Likewise.
6118         * lcm.c: Likewise.
6119         * lists.c: Likewise.
6120         * loop-doloop.c: Likewise.
6121         * loop-init.c: Likewise.
6122         * loop-invariant.c: Likewise.
6123         * loop-iv.c: Likewise.
6124         * loop-unroll.c: Likewise.
6125         * lower-subreg.c: Likewise.
6126         * lra-assigns.c: Likewise.
6127         * lra-coalesce.c: Likewise.
6128         * lra-constraints.c: Likewise.
6129         * lra-eliminations.c: Likewise.
6130         * lra-lives.c: Likewise.
6131         * lra-remat.c: Likewise.
6132         * lra-spills.c: Likewise.
6133         * lra.c: Likewise.
6134         * lto-cgraph.c: Likewise.
6135         * lto-compress.c: Likewise.
6136         * lto-opts.c: Likewise.
6137         * lto-section-in.c: Likewise.
6138         * lto-section-out.c: Likewise.
6139         * lto-streamer-in.c: Likewise.
6140         * lto-streamer-out.c: Likewise.
6141         * lto-streamer.c: Likewise.
6142         * mode-switching.c: Likewise.
6143         * modulo-sched.c: Likewise.
6144         * omp-low.c: Likewise.
6145         * optabs.c: Likewise.
6146         * opts-global.c: Likewise.
6147         * passes.c: Likewise.
6148         * plugin.c: Likewise.
6149         * postreload-gcse.c: Likewise.
6150         * postreload.c: Likewise.
6151         * predict.c: Likewise.
6152         * print-tree.c: Likewise.
6153         * profile.c: Likewise.
6154         * real.c: Likewise.
6155         * realmpfr.c: Likewise.
6156         * recog.c: Likewise.
6157         * ree.c: Likewise.
6158         * reg-stack.c: Likewise.
6159         * regcprop.c: Likewise.
6160         * reginfo.c: Likewise.
6161         * regrename.c: Likewise.
6162         * regstat.c: Likewise.
6163         * reload.c: Likewise.
6164         * reload1.c: Likewise.
6165         * reorg.c: Likewise.
6166         * resource.c: Likewise.
6167         * rtl-chkp.c: Likewise.
6168         * rtl-error.c: Likewise.
6169         * rtlanal.c: Likewise.
6170         * rtlhooks.c: Likewise.
6171         * sanopt.c: Likewise.
6172         * sched-deps.c: Likewise.
6173         * sched-ebb.c: Likewise.
6174         * sched-rgn.c: Likewise.
6175         * sese.c: Likewise.
6176         * shrink-wrap.c: Likewise.
6177         * simplify-rtx.c: Likewise.
6178         * stack-ptr-mod.c: Likewise.
6179         * statistics.c: Likewise.
6180         * stmt.c: Likewise.
6181         * stor-layout.c: Likewise.
6182         * store-motion.c: Likewise.
6183         * stringpool.c: Likewise.
6184         * symtab.c: Likewise.
6185         * target-globals.c: Likewise.
6186         * targhooks.c: Likewise.
6187         * toplev.c: Likewise.
6188         * tracer.c: Likewise.
6189         * trans-mem.c: Likewise.
6190         * tree-affine.c: Likewise.
6191         * tree-call-cdce.c: Likewise.
6192         * tree-cfg.c: Likewise.
6193         * tree-cfgcleanup.c: Likewise.
6194         * tree-chkp-opt.c: Likewise.
6195         * tree-chkp.c: Likewise.
6196         * tree-chrec.c: Likewise.
6197         * tree-complex.c: Likewise.
6198         * tree-data-ref.c: Likewise.
6199         * tree-dfa.c: Likewise.
6200         * tree-diagnostic.c: Likewise.
6201         * tree-dump.c: Likewise.
6202         * tree-eh.c: Likewise.
6203         * tree-emutls.c: Likewise.
6204         * tree-if-conv.c: Likewise.
6205         * tree-inline.c: Likewise.
6206         * tree-into-ssa.c: Likewise.
6207         * tree-iterator.c: Likewise.
6208         * tree-loop-distribution.c: Likewise.
6209         * tree-nested.c: Likewise.
6210         * tree-nrv.c: Likewise.
6211         * tree-object-size.c: Likewise.
6212         * tree-outof-ssa.c: Likewise.
6213         * tree-parloops.c: Likewise.
6214         * tree-phinodes.c: Likewise.
6215         * tree-predcom.c: Likewise.
6216         * tree-pretty-print.c: Likewise.
6217         * tree-profile.c: Likewise.
6218         * tree-scalar-evolution.c: Likewise.
6219         * tree-sra.c: Likewise.
6220         * tree-ssa-address.c: Likewise.
6221         * tree-ssa-alias.c: Likewise.
6222         * tree-ssa-ccp.c: Likewise.
6223         * tree-ssa-coalesce.c: Likewise.
6224         * tree-ssa-copy.c: Likewise.
6225         * tree-ssa-dce.c: Likewise.
6226         * tree-ssa-dom.c: Likewise.
6227         * tree-ssa-dse.c: Likewise.
6228         * tree-ssa-forwprop.c: Likewise.
6229         * tree-ssa-ifcombine.c: Likewise.
6230         * tree-ssa-live.c: Likewise.
6231         * tree-ssa-loop-ch.c: Likewise.
6232         * tree-ssa-loop-im.c: Likewise.
6233         * tree-ssa-loop-ivcanon.c: Likewise.
6234         * tree-ssa-loop-ivopts.c: Likewise.
6235         * tree-ssa-loop-manip.c: Likewise.
6236         * tree-ssa-loop-niter.c: Likewise.
6237         * tree-ssa-loop-prefetch.c: Likewise.
6238         * tree-ssa-loop-unswitch.c: Likewise.
6239         * tree-ssa-loop.c: Likewise.
6240         * tree-ssa-math-opts.c: Likewise.
6241         * tree-ssa-operands.c: Likewise.
6242         * tree-ssa-phiopt.c: Likewise.
6243         * tree-ssa-phiprop.c: Likewise.
6244         * tree-ssa-pre.c: Likewise.
6245         * tree-ssa-propagate.c: Likewise.
6246         * tree-ssa-reassoc.c: Likewise.
6247         * tree-ssa-sccvn.c: Likewise.
6248         * tree-ssa-scopedtables.c: Likewise.
6249         * tree-ssa-sink.c: Likewise.
6250         * tree-ssa-strlen.c: Likewise.
6251         * tree-ssa-structalias.c: Likewise.
6252         * tree-ssa-tail-merge.c: Likewise.
6253         * tree-ssa-ter.c: Likewise.
6254         * tree-ssa-threadedge.c: Likewise.
6255         * tree-ssa-threadupdate.c: Likewise.
6256         * tree-ssa-uncprop.c: Likewise.
6257         * tree-ssa-uninit.c: Likewise.
6258         * tree-ssa.c: Likewise.
6259         * tree-ssanames.c: Likewise.
6260         * tree-stdarg.c: Likewise.
6261         * tree-streamer-in.c: Likewise.
6262         * tree-streamer-out.c: Likewise.
6263         * tree-streamer.c: Likewise.
6264         * tree-switch-conversion.c: Likewise.
6265         * tree-tailcall.c: Likewise.
6266         * tree-vect-data-refs.c: Likewise.
6267         * tree-vect-generic.c: Likewise.
6268         * tree-vect-loop-manip.c: Likewise.
6269         * tree-vect-loop.c: Likewise.
6270         * tree-vect-patterns.c: Likewise.
6271         * tree-vect-slp.c: Likewise.
6272         * tree-vect-stmts.c: Likewise.
6273         * tree-vectorizer.c: Likewise.
6274         * tree-vrp.c: Likewise.
6275         * tree.c: Likewise.
6276         * tsan.c: Likewise.
6277         * ubsan.c: Likewise.
6278         * value-prof.c: Likewise.
6279         * var-tracking.c: Likewise.
6280         * varasm.c: Likewise.
6281         * varpool.c: Likewise.
6282         * vtable-verify.c: Likewise.
6283         * web.c: Likewise.
6284         * wide-int-print.cc: Likewise.
6285         * wide-int.cc: Likewise.
6286         * xcoffout.c: Likewise.
6287
6288 2015-10-29  H.J. Lu  <hongjiu.lu@intel.com>
6289
6290         * Makefile.in (NO_PIE_CFLAGS): New.
6291         (NO_PIE_FLAG): Likewise.
6292         (NO_PIE_CFLAGS_FOR_BUILD): Likewise.
6293         (NO_PIE_FLAG_FOR_BUILD): Likewise.
6294         (BUILD_NO_PIE_CFLAGS): Likewise.
6295         (BUILD_NO_PIE_FLAG): Likewise.
6296         (COMPILER): Replace @NO_PIE_CFLAGS@ with $(NO_PIE_CFLAGS).
6297         (LINKER): Replace @NO_PIE_FLAG@ with $(NO_PIE_FLAG).
6298         (BUILD_CFLAGS): Replace @NO_PIE_CFLAGS@ with
6299         $(BUILD_NO_PIE_CFLAGS).
6300         (BUILD_CXXFLAGS): Likewise.
6301         (BUILD_LDFLAGS ): Replace @NO_PIE_FLAG@ with
6302         $(BUILD_NO_PIE_FLAG).
6303         * configure.ac (BUILD_NO_PIE_CFLAGS): New.  AC_SUBST.
6304         (BUILD_NO_PIE_FLAG): Likewise.
6305         (NO_PIE_CFLAGS_FOR_BUILD): Likewise.
6306         (NO_PIE_FLAG_FOR_BUILD): Likewise.
6307         * configure: Regenerated.
6308
6309 2015-10-29  Richard Biener  <rguenther@suse.de>
6310
6311         PR middle-end/56956
6312         * fold-const.c (fold_cond_expr_with_comparison): Do not fold
6313         unsigned conditonal negation to ABS_EXPR.
6314
6315 2015-10-29  Richard Biener  <rguenther@suse.de>
6316
6317         * gimple-match-head.c (gimple_simplify): Remove premature checking
6318         of builtin_decl_implicit of function calls we simplify.
6319
6320 2015-10-29  Bin Cheng  <bin.cheng@arm.com>
6321
6322         * tree-ssa-loop-ivopts.c (split_address_cost): Check depends_on.
6323         (get_computation_cost_at): Ditto.
6324         (determine_use_iv_cost_address): Pass NULL for arguments depends_on
6325         and inv_expr_id.
6326
6327 2015-10-28  Tom de Vries  <tom@codesourcery.com>
6328
6329         * tree-ssa-structalias.c (intra_create_variable_infos): Remove
6330         superfluous code.
6331
6332 2015-10-28  Jason Merrill  <jason@redhat.com>
6333
6334         * Makefile.in (TAGS): Include libcpp and libiberty.
6335
6336 2015-10-28  Nathan Sidwell  <nathan@codesourcery.com>
6337
6338         * omp-low.c (MASK_GANG, MASK_WORKER, MASK_VECTOR): Delete.
6339         (extract_omp_for_data): Remove OpenACC special handling of
6340         chunking.
6341
6342         * config/nvptx/nvptx.c (nvptx_print_operand): Remove 'd' case.
6343         (struct parallel): Update comment.
6344         (nvptx_reorg): Likewise.
6345         (nvptx_neuter): Cleanup whitespace.
6346
6347 2015-10-28  Richard Henderson  <rth@redhat.com>
6348
6349         * tree-eh.c (mark_reachable_handlers): Fix typo in assert.
6350
6351 2015-10-05  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
6352
6353         PR target/67839
6354         * config/avr/predicates.md (low_io_address_operand): Don't
6355         consider MODE when computing upper bound.
6356         (io_address_operand): Likewise.
6357
6358 2015-10-28  Jan Hubicka  <hubicka@ucw.cz>
6359
6360         * fold-const.c (operand_equal_p): Do not verify that types are
6361         compatible for MEM_REFs.
6362
6363 2015-10-28  Richard Biener  <rguenther@suse.de>
6364
6365         * gimple-match-head.c (gimple_simplify): Allow VECTOR_CSTs
6366         in simplifying VEC_COND_EXPR conditions.
6367
6368 2015-10-28  Tom de Vries  <tom@codesourcery.com>
6369
6370         * tree-ssa-structalias.c (intra_create_variable_infos): Don't iterate
6371         into vi_next of a full_var.
6372
6373 2015-10-28  Tom de Vries  <tom@codesourcery.com>
6374
6375         * tree-ssa-structalias.c (new_var_info, make_heapvar)
6376         (make_constraint_from_restrict, make_constraint_from_global_restrict)
6377         (create_function_info_for, create_variable_info_for_1)
6378         (create_variable_info_for): Add and handle add_id parameter.
6379         (get_call_vi, new_scalar_tmp_constraint_exp, handle_rhs_call)
6380         (init_base_vars): Add extra argument to calls to new_var_info.
6381         (get_vi_for_tree): Add extra argument to call to
6382         create_variable_info_for.
6383         (process_constraint, do_deref, process_all_all_constraints): Add extra
6384         argument to calls to new_scalar_tmp_constraint_exp.
6385         (handle_lhs_call, find_func_aliases_for_builtin_call): Add extra
6386         argument to calls to make_heapvar.
6387         (make_restrict_var_constraints): Add extra argument to call to
6388         make_constraint_from_global_restrict.
6389         (intra_create_variable_infos): Add extra argument to call to
6390         create_variable_info_for_1.
6391         (ipa_pta_execute): Add extra argument to call to
6392         create_function_info_for.
6393
6394 2015-10-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6395
6396         * config/aarch64/aarch64.md (call, call_value, sibcall): Handle noplt.
6397         (sibcall_value): Likewise.
6398
6399 2015-10-28  Nathan Sidwell  <nathan@codesourcery.com>
6400
6401         * config/nvptx/nvptx.h (struct machine_function): Add
6402         axis_predicate.
6403         * config/nvptx/nvptx-protos.h (nvptx_expand_oacc_fork,
6404         nvptx_expand_oacc_join): Declare.
6405         * config/nvptx/nvptx.md (UNSPEC_NTID, UNSPEC_TID): Delete.
6406         (UNSPEC_DIM_SIZE, UNSPEC_SHARED_DATA, UNSPEC_BIT_CONV,
6407         UNSPEC_SHUFFLE, UNSPEC_BR_UNIFIED): New.
6408         (UNSPECV_BARSYNC, UNSPECV_DIM_POS, UNSPECV_FORK, UNSPECV_FORKED,
6409         UNSPECV_JOINING, UNSPECV_JOIN): New.
6410         (BITS, BITD): New mode iterators.
6411         (br_true_uni, br_false_uni): New.
6412         (*oacc_ntid_insn, oacc_ntid, *oacc_tid_insn, oacc_tid): Delete.
6413         (oacc_dim_size, oacc_dim_pos): New.
6414         (nvptx_fork, nvptx_forked, nvptx_joining, nvptx_join): New.
6415         (oacc_fork, oacc_join): New.
6416         (nvptx_shuffle<mode>, unpack<mode>si2, packsi<mode>2): New.
6417         (worker_load<mode>, worker_store<mode>): New.
6418         (nvptx_barsync): New.
6419         * config/nvptx/nvptx.c: Include gimple.h & dumpfile.h.
6420         (SHUFFLE_UP, SHUFFLE_DOWN, SHUFFLE_BFLY, SHUFFLE_IDX): Define.
6421         (worker_bcast_hwm, worker_bcast_align, worker_bcast_name,
6422         worker_bcast_sym): New.
6423         (nvptx_option_override): Initialize worker broadcast buffer.
6424         (nvptx_emit_forking, nvptx_emit_joining): New.
6425         (nvptx_init_axis_predicate): New.
6426         (nvptx_declare_function_name): Init axis predicates.
6427         (nvptx_expand_call): Add fork/join markers around routine call.
6428         (nvptx_expand_oacc_fork, nvptx_expand_oacc_join): New.
6429         (nvptx_gen_unpack, nvptx_gen_pack, nvptx_gen_shuffle): New.
6430         (nvptx_gen_vcast): New.
6431         (struct wcast_data_t): New.
6432         (enum propagate_mask): New.
6433         (nvptx_gen_wcast): New.
6434         (nvptx_print_operand): Add 'S' case.
6435         (struct parallel): New.
6436         (parallel::parallel, parallel::~parallel): New.
6437         (bb_insn_map_t, insn_bb_t, insn_bb_vec_t): New typedefs.
6438         (nvptx_split_blocks, nvptx_discover_pre, nvptx_dump_pars,
6439         nvptx_find_par, nvptx_discover_pars): New.
6440         (nvptx_propagate): New.
6441         (vprop_gen, nvptx_vpropagate): New.
6442         (wprop_gen, nvptx_wpropagate): New.
6443         (nvptx_wsync): New.
6444         (nvptx_single, nvptx_skip_par): New.
6445         (nvptx_process_pars, nvptx_neuter_pars): New.
6446         (ntptx_reorg): Split blocks, generate parallel structure, apply
6447         neutering.
6448         (nvptx_cannot_copy_insn_p): New.
6449         (nvptx_file_end): Emit worker broadcast decl.
6450         (nvptx_goacc_fork_join): New.
6451         (TARGET_CANNOT_COPY_INSN_P): Override.
6452         (TARGET_GOACC_FORK_JOIN): Override.
6453
6454 2015-10-28  Richard Biener  <rguenther@suse.de>
6455
6456         * fold-const.c (negate_expr_p): Adjust the division case to
6457         properly avoid introducing undefined overflow.
6458         (fold_negate_expr): Likewise.
6459
6460 2015-10-28  Richard Biener  <rguenther@suse.de>
6461
6462         PR tree-optimization/65962
6463         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
6464         Avoid creating loop carried dependences also for outer loops
6465         of the loop a use to replace is in.
6466
6467 2015-10-28  Richard Biener  <rguenther@suse.de>
6468
6469         * common.opt (fchecking): New flag controlling flag_checking.
6470         * passes.c (verify_curr_properties): Drop DEBUG_FUNCTION.
6471         * timevar.c (timer::print): Adjust output.
6472         * doc/invoke.texi (fchecking): Document.
6473
6474 2015-10-28  Richard Biener  <rguenther@suse.de>
6475
6476         PR middle-end/68067
6477         * fold-const.c (negate_expr_p): We cannot negate plus or minus
6478         if overflow is not wrapping.  Likewise multiplication unless
6479         one operand is constant and not power of two.
6480         (fold_negate_expr): Adjust accordingly.
6481
6482 2015-10-27  Nathan Sidwell  <nathan@codesourcery.com>
6483
6484         * omp-low.c (struct omp_context): Remove gwv_below, gwv_this
6485         fields.
6486         (is_oacc_parallel, is_oacc_kernels): New.
6487         (enclosing_target_ctx): May return NULL.
6488         (ctx_in_oacc_kernels_region): New.
6489         (check_oacc_kernel_gwv): New.
6490         (oacc_loop_or_target_p): Delete.
6491         (scan_omp_for): Don't calculate gwv mask.  Check parallel clause
6492         operands.  Strip reductions fro kernels.
6493         (scan_omp_target): Don't calculate gwv mask.
6494         (lower_oacc_head_mark, lower_oacc_loop_marker,
6495         lower_oacc_head_tail): New.
6496         (struct oacc_collapse): New.
6497         (expand_oacc_collapse_init, expand_oacc_collapse_vars): New.
6498         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
6499         Remove OpenACC handling.
6500         (expand_oacc_for): New.
6501         (expand_omp_for): Call expand_oacc_for.
6502         (lower_omp_for): Call lower_oacc_head_tail.
6503
6504 2015-10-27  Mikhail Maltsev  <maltsevm@gmail.com>
6505
6506         * attribs.c (check_attribute_tables): New function, broken out from...
6507         (init_attributes): Use it.
6508         * cfgcleanup.c (try_optimize_cfg): Use flag_checking, CHECKING_P
6509         gcc_checking_assert and checking_* functions to eliminate
6510         ENABLE_CHECKING conditionals.
6511         * cfgexpand.c (expand_goto, expand_debug_expr): Likewise.
6512         (pass_expand::execute): Likewise.
6513         * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
6514         * cgraphunit.c (mark_functions_to_output): Likewise.
6515         (cgraph_node::expand_thunk): Likewise.
6516         (symbol_table::compile): Likewise.
6517         * ddg.c (add_cross_iteration_register_deps): Likewise.
6518         (create_ddg_all_sccs): Likewise.
6519         * df-core.c (df_finish_pass, df_analyze): Likewise.
6520         * diagnostic-core.h: Likewise.
6521         * diagnostic.c (diagnostic_report_diagnostic): Likewise.
6522         * dominance.c (calculate_dominance_info): Likewise.
6523         * dwarf2out.c (add_AT_die_ref): Likewise.
6524         (const_ok_for_output_1, mem_loc_descriptor): Likewise.
6525         (loc_list_from_tree, gen_lexical_block_die): Likewise.
6526         gen_type_die_with_usage, gen_type_die): Likewise.
6527         (dwarf2out_decl): Likewise.
6528         * emit-rtl.c (verify_rtx_sharing, reorder_insns_nobb): Likewise.
6529         * except.c (duplicate_eh_regions): Likewise.
6530         * fwprop.c (register_active_defs, update_df_init): Likewise.
6531         (fwprop_init, fwprop_done): Likewise.
6532         (update_uses): Likewise.
6533         * ggc-page.c (ggc_grow): Likewise.
6534         * gimplify.c (gimplify_body): Likewise.
6535         (gimplify_hasher::equal): Likewise.
6536         * graphite-isl-ast-to-gimple.c (graphite_verify): Likewise.
6537         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form):
6538         Likewise.
6539         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Likewise.
6540         (rewrite_cross_bb_scalar_deps_out_of_ssa): Likwise.
6541         * hash-table.h (::find_empty_slot_for_expand): Likewise.
6542         * ifcvt.c (if_convert): Likewise.
6543         * ipa-cp.c (ipcp_propagate_stage): Likewise.
6544         * ipa-devirt.c (type_in_anonymous_namespace_p): Likewise.
6545         (odr_type_p, odr_types_equivalent_p): Likewise.
6546         (add_type_duplicate, get_odr_type): Likewise.
6547         * ipa-icf.c (sem_item_optimizer::execute): Likewise.
6548         (sem_item_optimizer::subdivide_classes_by_equality): Likewise.
6549         (sem_item_optimizer::verify_classes): Likewise.
6550         (sem_item_optimizer::traverse_congruence_split): Likewise.
6551         (sem_item_optimizer::checking_verify_classes): New.
6552         * ipa-icf.h (sem_item_optimizer::checking_verify_classes): Add new
6553         method.
6554         * cfgrtl.c (commit_edge_insertions): Likewise.
6555         (fixup_reorder_chain, cfg_layout_finalize): Likewise.
6556         (rtl_flow_call_edges_add): Likewise.
6557         * cgraph.c (symbol_table::create_edge): Likewise.
6558         (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
6559         * cgraph.h (symtab_node): Likewise.
6560         (symtab_node::checking_verify_symtab_nodes): Define.
6561         (cgraph_node::checking_verify_cgraph_nodes): Define.
6562         * cfghooks.h (checking_verify_flow_info): Define.
6563         * cfgloop.h (checking_verify_loop_structure): Define.
6564         * dominance.h (checking_verify_dominators): Define.
6565         * et-forest.c: Fix comment.
6566         * ipa-inline-analysis.c (compute_inline_parameters): Use flag_checking,
6567         CHECKING_P gcc_checking_assert and checking_* functions to eliminate
6568         ENABLE_CHECKING conditionals.
6569         * ipa-inline-transform.c (save_inline_function_body): Likewise.
6570         * ipa-inline.c (inline_small_functions): Likewise.
6571         (early_inliner): Likewise.
6572         * ipa-inline.h (estimate_edge_growth): Likewise.
6573         * ipa-visibility.c (function_and_variable_visibility): Likewise.
6574         * ipa.c (symbol_table::remove_unreachable_nodes): Likewise.
6575         (ipa_single_use): Likewise.
6576         * ira-int.h: Likewise.
6577         * ira.c (ira): Likewise.
6578         * loop-doloop.c (doloop_optimize_loops): Likewise.
6579         * loop-init.c (loop_optimizer_init, fix_loop_structure): Likewise.
6580         * loop-invariant.c (move_loop_invariants): Likewise.
6581         * lra-assigns.c (lra_assign): Likewise.
6582         * lra-constraints.c (lra_constraints): Likewise.
6583         * lra-eliminations.c (lra_eliminate): Likewise.
6584         * lra-int.h (struct lra_reg): Likewise.
6585         * lra-lives.c (check_pseudos_live_through_calls): Likewise.
6586         (lra_create_live_ranges_1): Likewise.
6587         * lra-remat.c (create_remat_bb_data): Likewise.
6588         * lra.c (lra_update_insn_recog_data, restore_scratches): Likewise.
6589         (lra): Likewise.
6590         (check_rtl): Always define. Remove incorrect guard around
6591         extract_constrain_insn call.
6592         * lto-cgraph.c (input_cgraph_1: Use flag_checking,
6593         CHECKING_P gcc_checking_assert and checking_* functions to eliminate
6594         ENABLE_CHECKING conditionals.
6595         * lto-streamer-out.c (DFS::DFS): Likewise.
6596         (lto_output): Likewise.
6597         * lto-streamer.c (lto_streamer_init): Likewise.
6598         * omp-low.c (scan_omp_target, expand_omp_taskreg): Likewise.
6599         expand_omp_target, execute_expand_omp): Likewise.
6600         (lower_omp_target): Likewise.
6601         * passes.c (execute_function_todo): Likewise.
6602         (execute_todo, execute_one_pass): Likewise.
6603         (verify_curr_properties): Always define.
6604         * predict.c (tree_estimate_probability: Use flag_checking,
6605         CHECKING_P gcc_checking_assert and checking_* functions to eliminate
6606         ENABLE_CHECKING conditionals.
6607         (propagate_freq): Likewise.
6608         * pretty-print.c (pp_format): Likewise.
6609         * real.c (real_to_decimal_for_mode): Likewise.
6610         * recog.c (split_all_insns): Likewise.
6611         * regcprop.c (kill_value_one_regno): Likewise.
6612         (copy_value): Likewise.
6613         (validate_value_data): Define unconditionally.
6614         * reload.c: Fix comment.
6615         * timevar.c: Include options.h
6616         * tree-ssa.h (checking_verify_ssa): Define.
6617         * tree-ssa-loop-manip.h (checking_verify_loop_closed_ssa): Define.
6618         * sched-deps.c (CHECK): Remove unused macro.
6619         (add_or_update_dep_1, sd_add_dep: Use flag_checking, CHECKING_P
6620         gcc_checking_assert and checking_* functions to eliminate
6621         ENABLE_CHECKING conditionals.
6622         * sel-sched-ir.c (free_regset_pool, tidy_control_flow): Likewise.
6623         * sel-sched.c (struct moveop_static_params): Likewise.
6624         (find_best_reg_for_expr, move_cond_jump): Likewise.
6625         (move_op_orig_expr_not_found): Likewise.
6626         (code_motion_process_successors, move_op): Likewise.
6627         * ssa-iterators.h (first_readonly_imm_use): Likewise.
6628         (next_readonly_imm_use): Likewise.
6629         * store-motion.c (compute_store_table): Likewise.
6630         * symbol-summary.h (function_summary::function_summary): Likewise.
6631         * target.h (cumulative_args_t): Likewise.
6632         (get_cumulative_args, pack_cumulative_args): Likewise.
6633         * timevar.c: (timer::print): Likewise.
6634         * trans-mem.c (ipa_tm_execute): Likewise.
6635         * tree-cfg.c (move_stmt_op): Likewise.
6636         (move_sese_region_to_fn): Likewise.
6637         (gimple_flow_call_edges_add): Likewise.
6638         * tree-cfgcleanup.c (cleanup_tree_cfg_noloop, repair_loop_structures):
6639         Likewise.
6640         * tree-eh.c (remove_unreachable_handlers): Likewise.
6641         * tree-if-conv.c (pass_if_conversion::execute): Likewise.
6642         * tree-inline.c (expand_call_inline, optimize_inline_calls): Likewise.
6643         * tree-into-ssa.c (update_ssa): Likewise.
6644         * tree-loop-distribution.c (pass_loop_distribution::execute): Likewise.
6645         * tree-outof-ssa.c (eliminate_useless_phis, rewrite_trees): Likewise.
6646         * tree-parloops.c (pass_parallelize_loops::execute): Likewise.
6647         * tree-predcom.c (suitable_component_p): Likewise.
6648         * tree-profile.c (gimple_gen_const_delta_profiler): Likewise.
6649         * tree-ssa-alias.c (refs_may_alias_p_1): Likewise.
6650         * tree-ssa-live.c (verify_live_on_entry): Likewise.
6651         * tree-ssa-live.h (register_ssa_partition): Likewise.
6652         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Likewise.
6653         * tree-ssa-loop-manip.c (add_exit_phi): Likewise.
6654         (tree_transform_and_unroll_loop): Likewise.
6655         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
6656         * tree-ssa-operands.c (get_expr_operands): Likewise.
6657         * tree-ssa-propagate.c (replace_exp_1): Likewise.
6658         * tree-ssa-structalias.c (rewrite_constraints): Likewise.
6659         * tree-ssa-ter.c (free_temp_expr_table): Likewise.
6660         * tree-ssa-threadupdate.c (duplicate_thread_path): Likewise.
6661         * tree-ssanames.c (release_ssa_name_fn): Likewise.
6662         * tree-stdarg.c (expand_ifn_va_arg): Likewise.
6663         * tree-vect-loop-manip.c
6664         (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
6665         (slpeel_checking_verify_cfg_after_peeling): Likewise.
6666         (vect_do_peeling_for_loop_bound): Likewise.
6667         (vect_do_peeling_for_alignment): Likewise.
6668         * tree-vrp.c (supports_overflow_infinity): Likewise.
6669         (set_value_range): Likewise.
6670         * tree.c (free_lang_data_in_cgraph): Likewise.
6671         * value-prof.c (gimple_remove_histogram_value): Likewise.
6672         (free_hist): Likewise.
6673         * var-tracking.c (canonicalize_values_star): Likewise.
6674         (compute_bb_dataflow, vt_find_locations, vt_emit_notes): Likewise.
6675
6676 2015-10-27  Nathan Sidwell  <nathan@codesourcery.com>
6677
6678         * internal-fn.def (IFN_GOACC_DIM_SIZE, IFN_GOACC_DIM_POS,
6679         IFN_GOACC_LOOP): New.
6680         * internal-fn.h (enum ifn_unique_kind): Add IFN_UNIQUE_OACC_FORK,
6681         IFN_UNIQUE_OACC_JOIN, IFN_UNIQUE_OACC_HEAD_MARK,
6682         IFN_UNIQUE_OACC_TAIL_MARK.
6683         (enum ifn_goacc_loop_kind): New.
6684         * internal-fn.c (expand_UNIQUE): Add IFN_UNIQUE_OACC_FORK,
6685         IFN_UNIQUE_OACC_JOIN cases.
6686         (expand_GOACC_DIM_SIZE, expand_GOACC_DIM_POS): New.
6687         (expand_GOACC_LOOP): New.
6688         * target-insns.def (oacc_dim_pos, oacc_dim_size): New.
6689         * omp-low.c: Include gimple-pretty-print.h.
6690         (struct oacc_loop): New.
6691         (enum oacc_loop_flags): New.
6692         (oacc_thread_numbers): New.
6693         (oacc_xform_loop): New.
6694         (new_oacc_loop_raw, new_oacc_loop_outer, new_oacc_loop,
6695         new_oacc_loop_routine, finish_oacc_loop, free_oacc_loop): New,
6696         (dump_oacc_loop_part, dump_oacc_loop, debug_oacc_loop): New,
6697         (oacc_loop_discover_walk, oacc_loop_sibling_nrevers,
6698         oacc_loop_discovery): New.
6699         (oacc_loop_xform_head_tail, oacc_loop_xform_loop,
6700         oacc_loop_process): New.
6701         (oacc_loop_fixed_partitions, oacc_loop_partition): New.
6702         (execute_oacc_device_lower): Discover & process loops.  Process
6703         internal fns.
6704         * target.def (goacc.fork_join): Change sense of hook, clarify
6705         documentation.
6706         * doc/tm.texi: Regenerated.
6707
6708 2015-10-27  Nathan Sidwell  <nathan@codesourcery.com>
6709
6710         * target-insns.def (oacc_fork, oacc_join): Define.
6711         * target.def (goacc.validate_dims): Adjust doc to avoid warning.
6712         (goacc.fork_join): New GOACC hook.
6713         * targhooks.h (default_goacc_fork_join): Declare.
6714         * omp-low.c (default_goacc_forkjoin): New.
6715         * doc/tm.texi.in (TARGET_GOACC_FORK_JOIN): Add.
6716         * doc/tm.texi: Regenerate.
6717
6718 2015-10-27  Nathan Sidwell  <nathan@codesourcery.com>
6719
6720         * omp-low.c (oacc_init_rediction_array): New.
6721         (oacc_initialize_reduction_data): Initialize array.
6722
6723 2015-10-27  Nathan Sidwell  <nathan@codesourcery.com>
6724
6725         * omp-low.c (pass_oacc_device_lower::execute): Ignore errors.
6726
6727 2015-10-27  Nathan Sidwell  <nathan@codesourcery.com>
6728
6729         * internal-fn.c (expand_UNIQUE): New.
6730         * internal-fn.h (enum ifn_unique_kind): New.
6731         * internal-fn.def (IFN_UNIQUE): New.
6732         * target-insns.def (unique): Define.
6733         * gimple.h (gimple_call_internal_unique_p): New.
6734         * gimple.c (gimple_call_same_target_p): Check internal fn
6735         uniqueness.
6736         * tracer.c (ignore_bb_p): Check for IFN_UNIQUE call.
6737         * tree-ssa-threadedge.c
6738         (record_temporary_equivalences_from_stmts): Likewise.
6739         * tree-cfg.c (gmple_call_initialize_ctrl_altering): Likewise.
6740
6741 2015-10-27  Richard Henderson  <rth@redhat.com>
6742
6743         PR rtl-opt/67609
6744         * config/i386/i386.c (ix86_cannot_change_mode_class): Disallow
6745         narrowing subregs on SSE and MMX registers.
6746         * doc/tm.texi.in (CANNOT_CHANGE_MODE_CLASS): Clarify when subregs that
6747         appear to be sub-words of multi-register pseudos must be rejected.
6748         * doc/tm.texi: Regenerate.
6749
6750 2015-10-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6751
6752         PR target/68102
6753         * config/aarch64/aarch64.md (*movsi_aarch64): Check that
6754         operands[0] is a reg before taking its REGNO in split condition.
6755         (*movdi_aarch64): Likewise.
6756
6757 2015-10-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6758
6759         * config/aarch64/aarch64.c (aarch64_output_simd_mov_immediate):
6760         Handle floating point inner modes properly.
6761
6762 2015-10-27  Alan Hayward  <alan.hayward@arm.com>
6763
6764         * tree-vect-looop.c
6765         (vectorizable_live_operation): Change iterator.
6766
6767 2015-10-27  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
6768             Aditya Kumar  <aditya.k7@samsung.com>
6769
6770         * graphite-optimize-isl.c (get_schedule_for_node_st): New callback
6771           function to schedule based on isl_schedule_node.
6772         (get_schedule_map_st): New schedule optimizer based on
6773         isl_schedule_node.
6774         (scop_get_domains): New. Return the isl_union_set containing the
6775         domains of all the pbbs.
6776         (optimize_isl): Call the new function get_schedule_map_st for isl-0.15
6777
6778 2015-10-27  H.J. Lu  <hongjiu.lu@intel.com>
6779
6780         PR target/67215
6781         * calls.c (prepare_call_address): Don't handle -fno-plt here.
6782         * config/i386/i386.c (ix86_expand_call): Generate indirect call
6783         via GOT for -fno-plt.  Support indirect call via GOT for x32.
6784         * config/i386/predicates.md (sibcall_memory_operand): Allow
6785         GOT memory operand.
6786
6787 2015-10-27  Richard Biener  <rguenther@suse.de>
6788
6789         PR tree-optimization/68104
6790         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Move
6791         strided access check ...
6792         (vect_compute_data_refs_alignment): ... here.
6793
6794 2015-10-27  Daniel Jacobowitz  <dan@codesourcery.com>
6795             Joseph Myers  <joseph@codesourcery.com>
6796             Mark Shinwell  <shinwell@codesourcery.com>
6797             Andrew Stubbs  <ams@codesourcery.com>
6798             Rich Felker <dalias@libc.org>
6799
6800         * config.gcc: Handle --enable-fdpic.
6801         * config/sh/constraints.md (Ccl): New constraint.
6802         * config/sh/linux.h (SUBTARGET_LINK_EMUL_SUFFIX): Handle -mfdpic.
6803         * config/sh/sh-c.c (sh_cpu_cpp_builtins): Add __FDPIC__ and
6804         __SH_FDPIC__.
6805         * config/sh/sh-mem.cc (expand_block_move): Support FDPIC for calls to
6806         library functions.
6807         * config/sh/sh-protos.h (function_symbol_result): New struct.
6808         (function_symbol): Return function_symbol_result.
6809         (sh_get_fdpic_reg_initial_val, sh_load_function_descriptor): New
6810         declarations.
6811         * config/sh/sh.c (TARGET_ASM_INTEGER, sh_assemble_integer): Implement
6812         target hook.
6813         (TARGET_CANNOT_FORCE_CONST_MEM, sh_cannot_force_const_mem_p): Likewise.
6814         (sh_option_override): Force -fPIC if FDPIC is in effect.
6815         (sh_asm_output_addr_const_extra): Add UNSPEC_GOTFUNCDESC and
6816         UNSPEC_GOTOFFFUNCDESC cases.
6817         (prepare_move_operands): Use FDPIC initial GOT register for
6818         TLS-related GOT access; inhibit cross-section address offset constants
6819         for FDPIC.
6820         (sh_assemble_integer): New function.
6821         (sh_cannot_copy_insn_p): Inhibit copying insns that are FDPIC
6822         PC-relative call sites.
6823         (expand_ashiftrt): Adapt invocation of function_symbol.
6824         (sh_expand_prologue): Inhibit PC-relative GOT address load for FDPIC.
6825         (nonpic_symbol_mentioned_p): Add cases for UNSPEC_GOTFUNCDESC and
6826         UNSPEC_GOTOFFFUNCDESC.
6827         (legitimize_pic_address): Resolve function symbols to function
6828         descriptors for FDPIC.  Do not use GOT-relative addressing for local
6829         data that may be read-only on FDPIC.
6830         (sh_emit_storesi, sh_emit_storehi): New functions.
6831         (sh_trampoline_init): Generate FDPIC trampolines.
6832         (sh_function_ok_for_sibcall): Add TARGET_FDPIC check.
6833         (sh_expand_sym_label2reg): Don't assume sibcalls are local.
6834         (sh_output_mi_thunk): Generate FDPIC call.
6835         (function_symbol): Return function_symbol_result.  For SFUNC_STATIC on
6836         FDPIC, generate call site labels to use PC-relative addressing rather
6837         than GOT-relative addressing.
6838         (sh_conditional_register_usage): Make PIC register fixed and call used
6839         when FDPIC is in effect.
6840         (sh_legitimate_constant_p): Impose FDPIC constant constraints.
6841         (sh_cannot_force_const_mem_p, sh_load_function_descriptor,
6842         sh_get_fdpic_reg_initial_val): New functions.
6843         * config/sh/sh.h (SUBTARGET_ASM_SPEC, SUBTARGET_LINK_EMUL_SUFFIX):
6844         Handle -mfdpic.
6845         (FDPIC_SELF_SPECS, SUBTARGET_DRIVER_SELF_SPECS,
6846         PIC_OFFSET_TABLE_REG_CALL_CLOBBERED,
6847         SH_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): New macros.
6848         (DRIVER_SELF_SPECS): Add SUBTARGET_DRIVER_SELF_SPECS and
6849         FDPIC_SELF_SPECS.
6850         (TRAMPOLINE_SIZE): Select trampoline size for FDPIC.
6851         (ASM_PREFERRED_EH_DATA_FORMAT): Add EH format constraints for FDPIC.
6852         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Handle FDPIC case.
6853         * config/sh/sh.md (UNSPEC_GOTFUNCDESC, UNSPEC_GOTOFFFUNCDESC): New
6854         constants.
6855         (calli_fdpic, call_valuei_fdpic, sibcalli_fdpic, sibcalli_pcrel_fdpic,
6856         sibcall_pcrel_fdpic, sibcall_valuei_fdpic, sibcall_valuei_pcrel_fdpic,
6857         sibcall_value_pcrel_fdpic, sym2GOTFUNCDESC, symGOTFUNCDESC2reg,
6858         sym2GOTOFFFUNCDESC, symGOTOFFFUNCDESC2reg): New patterns.
6859         (udivsi3_i1, udivsi3_i4, udivsi3_i4_single, udivsi3,
6860         *divsi_inv_call_combine, divsi3_i4, divsi3_i4_single, divsi3, ashlsi3,
6861         ashlsi3_d_call, ashrsi3_n, lshrsi3, lshrsi3_d_call, calli, call_valuei,
6862         call, call_value, sibcalli, sibcalli_pcrel, sibcall_pcrel, sibcall,
6863         sibcall_valuei, sibcall_valuei_pcrel, sibcall_value_pcrel,
6864         sibcall_value, GOTaddr2picreg, symGOT_load, symGOTOFF2reg,
6865         block_move_real, block_lump_real, block_move_real_i4,
6866         block_lump_real_i4): Add support for FDPIC calls.
6867         (mulsi3, ic_invalidate_line, initialize_trampoline, call_pop,
6868         call_value_pop): Adjust for new function_symbol signature.
6869         * config/sh/sh.opt (-mfdpic): New option.
6870         * doc/install.texi (Options specification): Document --enable-fdpic.
6871         * doc/invoke.texi (SH Options): Document -mfdpic.
6872
6873
6874 2015-10-27  Alan Lawrence  <alan.lawrence@arm.com>
6875
6876         PR tree-optimization/65963
6877         * tree-scalar-evolution.c (interpret_rhs_expr): Handle some
6878         LSHIFT_EXPRs as equivalent MULT_EXPRs.
6879
6880 2015-10-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6881
6882         PR target/67929
6883         * config/arm/arm.c (vfp3_const_double_for_bits): Rewrite.
6884         * config/arm/constraints.md (Dp): Update callsite.
6885         * config/arm/predicates.md (const_double_vcvt_power_of_two): Likewise.
6886
6887 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
6888
6889         * builtins.c (fold_builtin_load_exponent): Rename to...
6890         (fold_const_builtin_load_exponent): ...this and only handle
6891         constant arguments.
6892         (fold_builtin_2): Update accordingly.
6893         * match.pd: Add rules previously handled by fold_builtin_load_exponent.
6894
6895 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
6896
6897         * builtins.c (fold_builtin_logb): Rename to...
6898         (fold_const_builtin_logb): ...this and remove STRIP_NOPS call.
6899         (fold_builtin_significand): Rename to...
6900         (fold_const_builtin_significand): ...this and remove STRIP_NOPS call.
6901         (fold_builtin_1): Update accordingly.
6902
6903 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
6904
6905         * builtins.c (fold_builtin_fmin_fmax): Delete.
6906         (fold_builtin_2): Handle constant fmin and fmax arguments here.
6907         * match.pd: Add rules previously handled by fold_builtin_fmin_fmax.
6908
6909 2015-10-27  Evandro Menezes  <e.menezes@samsung.com>
6910
6911         * config/aarch64/aarch64-protos.h (cpu_addrcost_table): Split member
6912         for register extension into sign and zero register extension.
6913         * config/aarch64/aarch64.c (generic_addrcost_table): Infer values
6914         for sign and zero register extension.
6915         (cortexa57_addrcost_table): Likewise.
6916         (xgene1_addrcost_table): Likewise.
6917
6918 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
6919
6920         * fold-const.c (fold_minmax): Delete.
6921         (fold_binary_loc): Don't call it.
6922         * match.pd: Add rules previously handled by fold_minmax.
6923
6924 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
6925
6926         * builtins.c (fold_builtin_fma): Remove constant handling.
6927         (fold_builtin_3): Handle constant fma arguments here.
6928
6929 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
6930
6931         * builtins.c (fold_builtin_fabs): Remove constant handling.
6932         (fold_builtin_abs): Likewise.
6933
6934 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
6935
6936         * builtins.c (fold_builtin_copysign): Delete.
6937         (fold_builtin_2): Handle constant copysign arguments here.
6938         * match.pd: Add rules previously handled by fold_builtin_copysign.
6939
6940 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
6941
6942         * builtins.c (fold_builtin_signbit): Delete.
6943         (fold_builtin_2): Handle constant signbit arguments here.
6944         * match.pd: Add rules previously handled by fold_builtin_signbit.
6945
6946 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
6947
6948         * match.pd: Handle sqrt(x) cmp 0 specially.
6949
6950 2015-10-27  Ilya Enkovich  <enkovich.gnu@gmail.com>
6951
6952         * tree-vect-generic.c (expand_vector_operations_1): Check
6953         optab type before using it.
6954
6955 2015-10-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6956
6957         * config/aarch64/aarch64-protos.h
6958         (struct tune_params): Add autoprefetcher_model field.
6959         * config/aarch64/aarch64.c: Include params.h
6960         (generic_tunings): Specify autoprefetcher_model value.
6961         (cortexa53_tunings): Likewise.
6962         (cortexa57_tunings): Likewise.
6963         (cortexa72_tunings): Likewise.
6964         (thunderx_tunings): Likewise.
6965         (xgene1_tunings): Likewise.
6966         (aarch64_first_cycle_multipass_dfa_lookahead_guard): New function.
6967         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define.
6968         (aarch64_override_options_internal): Set
6969         PARAM_SCHED_AUTOPREF_QUEUE_DEPTH param.
6970
6971 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
6972
6973         * builtins.c (fold_builtin_exponent): Delete.
6974         (fold_builtin_2): Handle constant expN arguments here.
6975         * match.pd: Fold expN(logN(x)) -> x.
6976
6977 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
6978
6979         * builtins.c (fold_builtin_powi): Delete.
6980         (fold_builtin_2): Handle constant powi arguments here.
6981         * match.pd: Add rules previously handled by fold_builtin_powi.
6982
6983 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
6984
6985         * builtins.c (fold_builtin_pow): Delete in favor of...
6986         (fold_const_builtin_pow): ...this new function.  Only handle constant
6987         arguments.
6988         (fold_builtin_2): Update accordingly.
6989         * match.pd: Add rules previously handled by fold_builtin_pow.
6990
6991 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
6992
6993         * builtins.c (fold_builtin_hypot): Delete.
6994         (fold_builtin_2): Handle constant hypot arguments here.
6995         * match.pd: Fold hypot(x, 0) and hypot(0, x) to x.  Canonicalize
6996         hypot(x, x) to fabs(x)*sqrt(2).
6997
6998 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
6999
7000         * gimple-match-head.c (maybe_push_res_to_seq): Use create_tmp_reg
7001         instead of make_ssa_name if not yet in SSA form.
7002
7003 2015-10-27  Richard Biener  <rguenther@suse.de>
7004
7005         * cfg.c (free_edge): Add function argument and use it instead of cfun.
7006         (clear_edges): Likewise.
7007         * cfg.h (clear_edges): Adjust prototype.
7008         * cfgexpand.c (pass_expand::execute): Adjust.
7009         * cfgloop.c (release_recorded_exits): Add function argument and use
7010         it instead of cfun.
7011         * cfgloop.h (release_recorded_exits): Adjust prototype.
7012         (loops_state_satisfies_p): Add overload with function argument.
7013         (loops_state_set): Likewise.
7014         (loops_state_clear): Likewise.
7015         (struct loop_iterator): Add function argument to constructor
7016         and iterator and use it instead of cfun.
7017         (FOR_EACH_LOOP_FN): New macro.
7018         (loop_optimizer_finalize): Add overload with function argument.
7019         * loop-init.c (loop_optimizer_init): Adjust.
7020         (fix_loop_structure): Likewise.
7021         (loop_optimizer_finaliz): Add function argument and use it
7022         instead of cfun.
7023         * tree-cfg.c (delete_tree_cfg_annotations): Likewise.
7024         * tree-cfg.h (delete_tree_cfg_annotations): Adjust prototype.
7025         * cgraph.c (release_function_body): Do not push/pop cfun.
7026         * final.c (rest_of_clean_state): Adjust.
7027         * graphite.c (graphite_finalize): Likewise.
7028         * tree-ssa-copy.c (fini_copy_prop): Likewise.
7029         * tree-ssa-dce.c (perform_tree_ssa_dce): Likewise.
7030         * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables): Likewise.
7031         (tree_unroll_loops_completely): Likewise.
7032         (pass_complete_unrolli::execute): Likewise.
7033         * tree-ssa-loop-niter.c (free_numbers_of_iterations_estimates):
7034         Add function argument and use it instead of cfun.
7035         * tree-ssa-loop-niter.h (free_numbers_of_iterations_estimates):
7036         Adjust prototype.
7037         * tree-ssa-loop.c (tree_ssa_loop_done): Adjust.
7038         * tree-ssa.c (delete_tree_ssa): Add function argument and use it
7039         instead of cfun.
7040         * tree-ssa.h (delete_tree_ssa): Adjust prototype.
7041         * tree-ssanames.c (fini_ssanames): Add function argument and use it
7042         instead of cfun.
7043         * tree-ssanames.c (fini_ssanames): Adjust prototype.
7044         * tree-vrp.c (execute_vrp): Adjust.
7045         * value-prof.c (free_histograms): Add function argument and use it
7046         instead of cfun.
7047         * value-prof.h (free_histograms): Adjust prototype.
7048
7049 2015-10-27  Thomas Schwinge  <thomas@codesourcery.com>
7050
7051         * tree.h (OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES)
7052         (OACC_KERNELS_BODY, OACC_KERNELS_CLAUSES, OACC_KERNELS_COMBINED)
7053         (OACC_PARALLEL_COMBINED): Don't define macros.  Adjust all users.
7054
7055 2015-10-27  Tom de Vries  <tom@codesourcery.com>
7056
7057         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Add and use var
7058         field_type.
7059
7060 2015-10-27  Bin Cheng  <bin.cheng@arm.com>
7061
7062         * loop-invariant.c (struct def): New field can_prop_to_addr_uses.
7063         (inv_can_prop_to_addr_use): New function.
7064         (record_use): Call can_prop_to_addr_uses, set the new field.
7065         (get_inv_cost): Count cost if inv can't be propagated into its
7066         address uses.
7067
7068 2015-10-26  Doug Evans  <dje@google.com>
7069
7070         * config/linux.h (INCLUDE_DEFAULTS): Add INCLUDE_DEFAULTS_MUSL_LOCAL.
7071
7072 2015-10-26  Eric Botcazou  <ebotcazou@adacore.com>
7073
7074         * match.pd (fold_widened_comparison): Apply simplifications to all
7075         integral types.
7076
7077 2015-10-26  Simon Dardis  <simon.dardis@imgtec.com>
7078
7079         * target.def (TARGET_NO_SPECULATION_IN_DELAY_SLOTS_P): New hook.
7080         * doc/tm.texi.in (TARGET_NO_SPECULATION_IN_DELAY_SLOTS_P): Document.
7081         * doc/tm.texi: Regenerated.
7082         * reorg.c (dbr_schedule): Use new hook.
7083         * config/mips/mips.c (mips_no_speculation_in_delay_slots_p): New.
7084
7085 2015-10-26  Jeff Law  <law@redhat.com>
7086
7087         PR tree-optimization/68013
7088         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
7089         Make sure the first block in the path is in VISITED_BBs.
7090
7091 2015-10-26  Richard Biener  <rguenther@suse.de>
7092         Dominik Vogt  <vogt@linux.vnet.ibm.com>
7093
7094         PR middle-end/67443
7095         * alias.c (ao_ref_from_mem): Remove promoted subreg handling.
7096         Properly prune ref->ref for accesses outside of ref.
7097
7098 2015-10-26  Richard Sandiford  <richard.sandiford@arm.com>
7099
7100         * gimple-fold.c (replace_stmt_with_simplification): Don't allow
7101         new statements to be inserted if inplace.  Allow calls to have
7102         nonempty sequences.
7103
7104 2015-10-26  Richard Biener  <rguenther@suse.de>
7105
7106         * tree-object-size.c: Remove builtins.h include, include tree-cfg.h.
7107         (do_valueize): New function.
7108         (pass_object_sizes::execute): Use gimple_fold_stmt_to_constant and
7109         replace_uses_by.
7110         * tree-ssa-threadedge.c: Remove builtins.h include, include
7111         gimple-fold.h
7112         (fold_assignment_stmt): Remove.
7113         (threadedge_valueize): New function.
7114         (record_temporary_equivalences_from_stmts): Use
7115         gimple_fold_stmt_to_constant_1, note additional cleanup
7116         opportunities.
7117
7118 2015-10-26  Richard Biener  <rguenther@suse.de>
7119
7120         * match.pd ((A & ~B) - (A & B) -> (A ^ B) - B): Add missing :c.
7121         ( (X & ~Y) | (~X & Y) -> X ^ Y): Remove redundant :c.
7122
7123 2015-10-26  Alan Hayward <alan.hayward@arm.com>
7124
7125         * tree-vect-loop.c (vect_create_epilog_for_reduction): Fix
7126         VEC_COND_EXPR types.
7127
7128 2015-10-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7129
7130         * auto-inc-dec.c (insert_move_insn_before): Delete.
7131         (attempt_change): Remember to cost the simple move in the
7132         FORM_PRE_ADD and FORM_POST_ADD cases.
7133
7134 2015-10-26  Kaz Kojima  <kkojima@gcc.gnu.org>
7135
7136         PR target/68091
7137         * config/sh/sh.c (sh_vector_mode_supported_p): Use
7138         TARGET_SHMEDIA_FPU instead of TARGET_FPU_ANY.
7139
7140 2015-10-26  Tom de Vries  <tom@codesourcery.com>
7141
7142         * tree-ssa-structalias.c (make_restrict_var_constraints): New function,
7143         factored out of ...
7144         (intra_create_variable_infos): ... here.
7145
7146 2015-10-26  Tom de Vries  <tom@codesourcery.com>
7147
7148         * tree-ssa-structalias.c (intra_create_variable_infos): Add
7149         restrict_pointer_p and recursive_restrict_p variables.
7150
7151 2015-10-26  Tom de Vries  <tom@codesourcery.com>
7152
7153         * tree-ssa-structalias.c (intra_create_variable_infos): Inline
7154         get_vi_for_tree call.
7155
7156 2015-10-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7157
7158         PR middle-end/67989
7159         * optabs.c (expand_atomic_compare_and_swap): Handle case when
7160         ptarget_oval or ptarget_bool are const0_rtx.
7161
7162 2015-10-26  Christian Bruel  <christian.bruel@st.com>
7163
7164         * function.h (MINIMUM_METHOD_BOUNDARY): New macro.
7165         * cp/decl.c (grokfndecl): Set DECL_ALIGN with MINIMUM_METHOD_BOUNDARY.
7166         * cp/method.c (implicitly_declare_fn): Likewise.
7167         * cp/lambda.c (maybe_add_lambda_conv_op): Likewise. Remove VBIT setting.
7168         * java/class.c (add_method_1): Likewise.
7169
7170 2015-10-26  Richard Biener  <rguenther@suse.de>
7171
7172         * alloc-pool.h (base_pool_allocator): Use placement new.
7173         (base_pool_allocator::remove): Likewise.  Compute size outside of
7174         flag_checking.
7175
7176 2015-10-26  Richard Sandiford  <richard.sandiford@arm.com>
7177
7178         * builtins.c (do_real_to_int_conversion): New function.
7179         (fold_fixed_mathfn, fold_builtin_int_roundingfn): Delete.
7180         (fold_builtin_1): Handle constant {i,l,ll}{ceil,floor,round}{f,,l}
7181         arguments here.
7182         * match.pd: Add rules previously handled by fold_fixed_mathfn
7183         and fold_builtin_int_roundingfn.
7184
7185 2015-10-26  Richard Sandiford  <richard.sandiford@arm.com>
7186
7187         * match.pd: Use macros to define built-in operator lists.
7188
7189 2015-10-20  Richard Sandiford  <richard.sandiford@arm.com>
7190             Richard Biener  <rguenther@suse.de>
7191
7192         * genmatch.c (dt_simplify::gen): Skip captures that are
7193         part of the result.
7194         (parser::parse_expr): Allow captures in results too.
7195         * builtins.c (fold_builtin_cexp): Delete.
7196         (fold_builtin_1): Handle constant cexp arguments here.
7197         * match.pd: Fold cexp(x+yi) to exp(x) * cexpi(y).
7198
7199 2015-10-26  Mikhail Maltsev  <maltsevm@gmail.com>
7200
7201         * alloc-pool.h (base_pool_allocator::initialize, ::allocate): Remove
7202         conditional compilation.
7203         (base_pool_allocator::remove): Use flag_checking.
7204
7205 2015-10-25  John David Anglin  <danglin@gcc.gnu.org>
7206
7207         * config/pa/som.h (EH_FRAME_THROUGH_COLLECT2): Define.
7208
7209         PR middle-end/68079
7210         * dojump.c (do_compare_and_jump): Canonicalize both function and
7211         method types.
7212
7213 2015-10-25  Uros Bizjak  <ubizjak@gmail.com>
7214
7215         PR target/68084
7216         * config/i386/i386.c (ix86_md_asm_adjust) [case 'a']: Use NE code
7217         for =@ccae.
7218
7219 2015-10-23  Jan Hubicka  <hubicka@ucw.cz>
7220
7221         PR ipa/pr67600
7222         * ipa-polymorphic-call.c
7223         (ipa_polymorphic_call_context::get_dynamic_type): Do not confuse
7224         instance offset with offset of outer type.
7225
7226 2015-10-23  Jan Hubicka  <hubicka@ucw.cz>
7227
7228         * fold-const.c (operand_equal_p): Handle VIEW_CONVERT_EXPR.
7229
7230 2015-10-23  Caroline Tice  <cmtice@google.com>
7231
7232         (from Richard Biener
7233         * tree.c (int_cst_hasher::hash):  Replace XOR with more efficient
7234         call to iterative_hash_host_wide_int.
7235
7236 2015-10-23  David Edelsohn  <dje.gcc@gmail.com>
7237
7238         * config.gcc (powerpc-ibm-aix[6789]) [default_use_cxa_atexit]:
7239         Define as yes.
7240
7241 2015-10-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
7242
7243         * tree-vect-generic.c (expand_vector_operations_1): Check
7244         optab exists before use it.
7245
7246 2015-10-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
7247
7248         * tree-vect-generic.c (expand_vector_condition): Avoid
7249         uninitialized variable warning.
7250
7251 2015-10-23  Jeff Law  <law@redhat.com>
7252
7253         * passes.c (execute_function_todo): Do not call flush_ssaname_freelist
7254         here.  Instead...
7255         (execute_todo): Call it here.
7256         * tree-ssanames.c (make_ssa_name_fn): Unconditionally gather reuse
7257         statistics
7258         (pass_release_ssa_names::execute): Do not call flusH_ssaname_freelist.
7259
7260 2015-10-23  Gregor Richards  <gregor.richards@uwaterloo.ca>
7261             Szabolcs Nagy  <szabolcs.nagy@arm.com>
7262
7263         * config.gcc (enable_secureplt): Add *-linux*-musl*.
7264
7265 2015-10-23  Jeff Law  <law@redhat.com>
7266
7267         PR tree-optimization/67830
7268         * match.pd ((bit_and (plus/minus (convert @0) (convert @1)) mask)):
7269         Explicitly verify the mask has no bits outside the type of
7270         the innermost operands.
7271
7272 2015-10-23  Gregor Richards  <gregor.richards@uwaterloo.ca>
7273             Szabolcs Nagy  <szabolcs.nagy@arm.com>
7274
7275         * config/rs6000/linux64.h (MUSL_DYNAMIC_LINKER32): Define.
7276         (MUSL_DYNAMIC_LINKER64): Define.
7277         (GNU_USER_DYNAMIC_LINKER32): Update.
7278         (GNU_USER_DYNAMIC_LINKER64): Update.
7279         (CHOOSE_DYNAMIC_LINKER): Update.
7280
7281         * config/rs6000/sysv4.h (GNU_USER_DYNAMIC_LINKER): Update.
7282         (MUSL_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER_E,)
7283         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
7284         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
7285         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
7286         (CHOOSE_DYNAMIC_LINKER): Update.
7287         (INCLUDE_DEFAULTS): Redefine.
7288
7289         * config/rs6000/sysv4le.h (MUSL_DYNAMIC_LINKER_E): Define.
7290
7291 2015-10-23  Jan Hubicka  <hubicka@ucw.cz>
7292
7293         * fold-const.c (operand_equal_p): Do not compare TYPE_MODE when
7294         comparing addresses.
7295
7296 2015-10-23  Jan Hubicka  <hubicka@ucw.cz>
7297
7298         * fold-const.c (operand_equal_p): Handle matching of vector
7299         constructors.
7300
7301 2015-10-23  David Edelsohn  <dje.gcc@gmail.com>
7302
7303         * doc/install.texi (*-ibm-aix*): Additional information for AIX 7.1.
7304
7305 2015-10-23  Steve Ellcey  <sellcey@imgtec.com>
7306             Andrew Pinski  <apinski@cavium.com>
7307
7308         PR rtl-optimization/67736
7309         * combine.c (simplify_comparison): Use gen_lowpart_or_truncate instead
7310         of gen_lowpart.
7311
7312 2015-10-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
7313
7314         PR middle-end/68066
7315         * tree.c (build_truth_vector_type): Support BLK mode
7316         returned for boolean vector.
7317
7318 2015-10-23  Alan Hayward <alan.hayward@arm.com>
7319
7320         PR tree-optimization/65947
7321         * tree-vect-loop.c
7322         (vect_is_simple_reduction_1): Find condition reductions.
7323         (vect_model_reduction_cost): Add condition reduction costs.
7324         (get_initial_def_for_reduction): Add condition reduction initial var.
7325         (vect_create_epilog_for_reduction): Add condition reduction epilog.
7326         (vectorizable_reduction): Condition reduction support.
7327         * tree-vect-stmts.c (vectorizable_condition): Add vect reduction arg
7328         * doc/sourcebuild.texi (Vector-specific attributes): Document
7329         vect_max_reduc
7330
7331 2015-10-23  Richard Biener  <rguenther@suse.de>
7332
7333         * Makefile.in (build/genmatch.o): Properly depend on is-a.h, tree.def
7334         and builtins.def.
7335
7336 2015-10-23  Richard Biener  <rguenther@suse.de>
7337             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
7338
7339         * fold-const.c (fold_binary_loc) : Move Fold (A & ~B) - (A & B)
7340         into (A ^ B) - B to match.pd
7341         Move (X & ~Y) | (~X & Y) is X ^ Y to match.pd.
7342
7343         * match.pd (minus (bit_and:cs @0 (bit_not @1)) (bit_and:s @0 @1)):
7344         New simplifier.
7345         (minus (bit_and:s @0 INTEGER_CST@2) (bit_and:s @0 INTEGER_CST@1)):
7346         New simplifier.
7347         (minus (bit_and:s @0 @1) (bit_and:cs @0 (bit_not @1))):
7348         New simplifier.
7349         (bit_ior:c (bit_and:c @0 (bit_not @1)) (bit_and:c (bit_not @0) @1)):
7350         New simplifier.
7351         (bit_ior:c (bit_and @0 INTEGER_CST@2) (bit_and (bit_not @0)
7352         INTEGER_CST@1)): New simplifier.
7353
7354 2015-10-23  Richard Sandiford  <richard.sandiford@arm.com>
7355
7356         * builtins.c (integer_valued_real_p): Move to fold-const.c.
7357         (fold_trunc_transparent_mathfn, fold_builtin_trunc, fold_builtin_floor)
7358         (fold_builtin_ceil, fold_builtin_round): Delete.
7359         (fold_builtin_1): Handle constant trunc, floor, ceil and round
7360         arguments here.
7361         * convert.c (convert_to_real): Remove narrowing of rounding
7362         functions.
7363         * fold-const.h (integer_valued_real_unary_p)
7364         (integer_valued_real_binary_p, integer_valued_real_call_p)
7365         (integer_valued_real_single_p, integer_valued_real_p): Declare.
7366         * fold-const.c (tree_single_nonnegative_warnv_p): Move
7367         name_registered_for_update_p check to SSA_NAME case statement.
7368         Don't call tree_simple_nonnegative_warnv_p for SSA names.
7369         (integer_valued_real_unary_p, integer_valued_real_binary_p)
7370         (integer_valued_real_call_p, integer_valued_real_single_p)
7371         (integer_valued_real_invalid_p): New functions.
7372         (integer_valued_real_p): Move from fold-const.c and rework
7373         to call the functions above.  Handle SSA names.
7374         * gimple-fold.h (gimple_stmt_integer_valued_real_p): Declare.
7375         * gimple-fold.c (gimple_assign_integer_valued_real_p)
7376         (gimple_call_integer_valued_real_p, gimple_phi_integer_valued_real_p)
7377         (gimple_stmt_integer_valued_real_p): New functions.
7378         * match.pd: Fold f(f(x))->f(x) for fp->fp rounding functions f.
7379         Fold f(x)->x for the same f if x is known to be integer-valued.
7380         Fold f(extend(x))->extend(f'(x)) if doing so doesn't affect
7381         the result.  Canonicalize floor(x) as trunc(x) if x is
7382         nonnegative.
7383
7384 2015-10-23  Tom de Vries  <tom@codesourcery.com>
7385
7386         * tree-ssa-structalias.c (intra_create_variable_infos): Use
7387         make_constraint_from.
7388
7389 2015-10-23  Tom de Vries  <tom@codesourcery.com>
7390
7391         * tree-ssa-structalias.c (create_variable_info_for_1): Add missing
7392         setting of is_full_var in case of a single field.
7393
7394 2015-10-22  Martin Sebor  <msebor@redhat.com>
7395
7396         PR driver/68043
7397         * config/i386/i386.opt: Add missing periods to the ends of sentences.
7398         * config/msp430/msp430.opt: Same.
7399
7400 2015-10-21  David Wohlferd  <dw@LimeGreenSocks.com>
7401
7402         * doc/extend.exp (Global Register Variables): Rewrite.
7403
7404 2015-10-22  Jeff Law  <law@redhat.com>
7405
7406         * genattrtab.c (main): If we do not have any annul-true or annul-false
7407         slots, then write out a dummy eligible_for_annul_true or
7408         eligible_for_annul_false as needed.
7409
7410 2015-10-22  Nick Clifton  <nickc@redhat.com>
7411
7412         * config/msp430/msp430.opt: Add -msilicon-errata and
7413         -msilicon-errata-warn.
7414         * config/msp430/msp430.h (ASM_SPEC): Pass new options on to
7415         assembler.
7416         * doc/invoke.texi: Document new options.
7417
7418 2015-10-22  Richard Biener  <rguenther@suse.de>
7419
7420         PR tree-optimization/58497
7421         * tree-vect-generic.c (ssa_uniform_vector_p): New helper.
7422         (expand_vector_operations_1): Use it.  Lower operations on
7423         all uniform vectors to scalar operations if the HW supports it.
7424
7425 2015-10-22  Richard Biener  <rguenther@suse.de>
7426
7427         PR tree-optimization/19049
7428         PR tree-optimization/65962
7429         * tree-vect-data-refs.c (vect_analyze_group_access_1): Fall back
7430         to strided accesses if single-element interleaving doesn't work.
7431
7432 2015-10-22  Richard Biener  <rguenther@suse.de>
7433
7434         PR middle-end/68046
7435         PR middle-end/61893
7436         * optabs.c (emit_libcall_block_1): Allow a NULL_RTX equiv.
7437         (expand_binop): For -ftrapv optabs do not record an REG_EQUAL note.
7438         (expand_unop): Likewise.
7439
7440 2015-10-22  Richard Biener  <rguenther@suse.de>
7441
7442         * fold-const.c (fold_addr_of_array_ref_difference): Properly
7443         convert operands before folding a MINUS_EXPR.
7444         (fold_binary_loc): Move simplification of MINUS_EXPR on
7445         converted POINTER_PLUS_EXPRs ...
7446         * match.pd: ... here.
7447
7448 2015-10-22  Richard Sandiford  <richard.sandiford@arm.com>
7449
7450         * builtins.c (fold_builtin_tan): Delete.
7451         (fold_builtin_1): Handle constant tan arguments here.
7452         * match.pd: Simplify (tan (atan x)) to x.
7453
7454 2015-10-22  Richard Sandiford  <richard.sandiford@arm.com>
7455
7456         * builtins.c (fold_builtin_cproj): Delete.
7457         (fold_builtin_1): Handle constant arguments here.
7458         (build_complex_cproj): Move and rename to...
7459         * tree.c: (build_complex_inf): ...this.
7460         * tree.h (build_complex_inf): Declare.
7461         * match.pd: Fold cproj(x)->x if x has no infinity.
7462         Use build_complex_inf for existing cproj rules.
7463
7464 2015-10-22  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7465
7466         PR target/68015
7467         * config/s390/s390.md (mov<mode>cc): Emit compare only if we don't
7468         already have a comparison result.
7469
7470 2015-10-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7471
7472         PR target/63304
7473         * config/aarch64/aarch64.c (aarch64_nopcrelative_literal_loads): New.
7474         (aarch64_expand_mov_immediate): Use aarch64_nopcrelative_literal_loads.
7475         (aarch64_classify_address): Likewise.
7476         (aarch64_secondary_reload): Likewise.
7477         (aarch64_override_options_after_change_1): Adjust.
7478         * config/aarch64/aarch64.md (aarch64_reload_movcp<GPF_TF:mode><P:mode>):
7479         Use aarch64_nopcrelative_literal_loads.
7480         (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
7481         * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
7482         Declare.
7483
7484 2015-10-21  Martin Sebor  <msebor@redhat.com>
7485
7486         PR driver/68043
7487         * opts.c (undocumented_msg, use_diagnosed_msg): New globals.
7488         (print_filtered_help): Reference aliased option's name and encourage
7489         readers to use it in preference to the alias if the former is not
7490         documented.  Mention when using an option is diagnosed.
7491         * gcc.c (display_help): End each sentence with a period.
7492
7493         * common.opt: End each sentence that describes an option with
7494         a period.
7495         * config/aarch64/aarch64.opt: Same.
7496         * config/alpha/alpha.opt: Same.
7497         * config/arc/arc.opt: Same.
7498         * config/arm/arm.opt: Same.
7499         * config/avr/avr.opt: Same.
7500         * config/bfin/bfin.opt: Same.
7501         * config/c6x/c6x.opt: Same.
7502         * config/cr16/cr16.opt: Same.
7503         * config/cris/cris.opt: Same.
7504         * config/cris/linux.opt: Same.
7505         * config/darwin.opt: Same.
7506         * config/epiphany/epiphany.opt: Same.
7507         * config/fr30/fr30.opt: Same.
7508         * config/frv/frv.opt: Same.
7509         * config/ft32/ft32.opt: Same.
7510         * config/g.opt: Same.
7511         * config/h8300/h8300.opt: Same.
7512         * config/i386/cygming.opt: Same.
7513         * config/i386/djgpp.opt: Same.
7514         * config/i386/i386.opt: Same.
7515         * config/i386/interix.opt: Same.
7516         * config/i386/mingw-w64.opt: Same.
7517         * config/i386/mingw.opt: Same.
7518         * config/ia64/ia64.opt: Same.
7519         * config/ia64/ilp32.opt: Same.
7520         * config/iq2000/iq2000.opt: Same.
7521         * config/linux.opt: Same.
7522         * config/lm32/lm32.opt: Same.
7523         * config/lynx.opt: Same.
7524         * config/m32c/m32c.opt: Same.
7525         * config/m32r/m32r.opt: Same.
7526         * config/m68k/ieee.opt: Same.
7527         * config/m68k/m68k.opt: Same.
7528         * config/mcore/mcore.opt: Same.
7529         * config/mep/mep.opt: Same.
7530         * config/microblaze/microblaze.opt: Same.
7531         * config/mips/mips.opt: Same.
7532         * config/mmix/mmix.opt: Same.
7533         * config/mn10300/mn10300.opt: Same.
7534         * config/moxie/moxie.opt: Same.
7535         * config/msp430/msp430.opt: Same.
7536         * config/nios2/elf.opt: Same.
7537         * config/nios2/nios2.opt: Same.
7538         * config/nvptx/nvptx.opt: Same.
7539         * config/pa/pa-hpux.opt: Same.
7540         * config/pa/pa-hpux1010.opt: Same.
7541         * config/pa/pa-hpux1111.opt: Same.
7542         * config/pa/pa-hpux1131.opt: Same.
7543         * config/pa/pa.opt: Same.
7544         * config/pa/pa64-hpux.opt: Same.
7545         * config/pdp11/pdp11.opt: Same.
7546         * config/rl78/rl78.opt: Same.
7547         * config/rs6000/476.opt: Same.
7548         * config/rs6000/aix64.opt: Same.
7549         * config/rs6000/darwin.opt: Same.
7550         * config/rs6000/linux64.opt: Same.
7551         * config/rs6000/rs6000.opt: Same.
7552         * config/rs6000/sysv4.opt: Same.
7553         * config/s390/s390.opt: Same.
7554         * config/s390/tpf.opt: Same.
7555         * config/sh/sh.opt: Same.
7556         * config/sol2.opt: Same.
7557         * config/sparc/long-double-switch.opt: Same.
7558         * config/sparc/sparc.opt: Same.
7559         * config/spu/spu.opt: Same.
7560         * config/stormy16/stormy16.opt: Same.
7561         * config/tilegx/tilegx.opt: Same.
7562         * config/tilepro/tilepro.opt: Same.
7563         * config/v850/v850.opt: Same.
7564         * config/vax/vax.opt: Same.
7565         * config/visium/visium.opt: Same.
7566         * config/vms/vms.opt: Same.
7567         * config/vxworks.opt: Same.
7568         * config/xtensa/xtensa.opt: Same.
7569
7570 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
7571             Sebastian Pop  <s.pop@samsung.com>
7572
7573         * graphite-scop-detection.c (parameter_index_in_region): Update call to
7574         invariant_in_sese_p_rec.
7575         * graphite-sese-to-poly.c (extract_affine): Same.
7576         * sese.c (invariant_in_sese_p_rec): Pass in an extra
7577         parameter has_vdefs.
7578         (scalar_evolution_in_region): Return chrec_dont_know when the scalar
7579         variable depends on virtual definitions in the current region.
7580         * sese.h (invariant_in_sese_p_rec): Update declaration.
7581
7582 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
7583             Sebastian Pop  <s.pop@samsung.com>
7584
7585         * graphite-scop-detection.c (build_scops): Do not handle scops
7586         with more than PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP arrays.
7587         * params.def (PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP): New.
7588
7589 2015-10-21  Mikhail Maltsev  <maltsevm@gmail.com>
7590
7591         * config.in: Regenerate.
7592         * configure: Regenerate.
7593         * configure.ac (CHECKING_P): Define.
7594         * system.h: Use CHECKING_P.
7595
7596 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
7597
7598         PR ipa/67056
7599         * ipa-polymorphic-call.c (possible_placement_new): If cur_offset
7600         is negative we don't know the type.
7601         (check_stmt_for_type_change): Skip constructors of non-polymorphic
7602         types as those won't help devirutalization.
7603
7604 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
7605
7606         * fold-const.c (operand_equal_p): Add code matching empty constructors.
7607
7608 2015-10-21  Eric Botcazou  <ebotcazou@adacore.com>
7609
7610         * tree.def (CEIL_DIV_EXPR, FLOOR_DIV_EXPR, ROUND_DIV_EXPR): Tweak
7611         comments.
7612         (TRUNC_MOD_EXPR, CEIL_MOD_EXPR, FLOOR_MOD_EXPR, ROUND_MOD_EXPR):
7613         Add comments on sign of the result.
7614         * fold-const.c (tree_binary_nonnegative_warnv_p) <FLOOR_MOD_EXPR>:
7615         Recurse on operand #1 instead of operand #0.
7616         <CEIL_MOD_EXPR>: Do not recurse.
7617         <ROUND_MOD_EXPR>: Likewise.
7618
7619 2015-10-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7620
7621         * cfgrtl.c (pass_free_cfg::execute): Adjust.
7622         * final.c (dbr_sequence_length): Always define.
7623         (shorten_branches): Adjust.
7624         * genattr-common.c (main): Always define DELAY_SLOTS.
7625         * genattr.c (main): Unconditionally declare functions and define
7626         macros related to delay slots.
7627         * genattrtab.c (write_eligible_delay): Adjust.
7628         (main): Always write out delay slot functions.
7629         * opts.c (default_options_table): Adjust.
7630         * reorg.c (redirect_with_delay_slots_safe_p): Likewise.
7631         (redirect_with_delay_list_safe_p): Likewise.
7632         (fill_simple_delay_slots): Likewise.
7633         (fill_slots_from_thread): Likewise.
7634         (make_return_insns): Likewise.
7635         (dbr_schedule): Likewise.
7636         (rest_of_handle_delay_slots): Likewise.
7637         (pass_delay_slots::gate): Likewise.
7638         * toplev.c (process_options): Likewise.
7639
7640 2015-10-21  Richard Henderson  <rth@redhat.com>
7641
7642         * targhooks.c (default_addr_space_pointer_mode): Remove check
7643         for generic address space.
7644         (default_addr_space_address_mode): Likewise.
7645         (default_addr_space_valid_pointer_mode): Likewise.
7646         (default_addr_space_legitimate_address_p): Likewise.
7647         (default_addr_space_legitimize_address): Likewise.
7648         * target.def (addr_space.pointer_mode): Update documentation
7649         of default behavior.
7650         (addr_space.address_mode): Likewise.
7651         * tm.texi: Update.
7652
7653         * expr.c (expand_expr_real_2): Use convert_modes on disjoint
7654         address spaces.
7655
7656 2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>
7657
7658         * builtins.c (fold_builtin_cabs): Delete.
7659         (fold_builtin_1): Update accordingly.  Handle constant arguments here.
7660         * match.pd: Add rules previously handled by fold_builtin_cabs.
7661
7662 2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>
7663
7664         * fold-const.h (fold_strip_sign_ops): Delete.
7665         * fold-const.c (fold_strip_sign_ops): Likewise.
7666         (fold_unary_loc, fold_binary_loc): Remove calls to it.
7667         * builtins.c (fold_builtin_cos, fold_builtin_cosh)
7668         (fold_builtin_ccos): Delete.
7669         (fold_builtin_pow): Don't call fold_strip_sign_ops.
7670         (fold_builtin_hypot, fold_builtin_copysign): Likewise.
7671         Remove fndecl argument.
7672         (fold_builtin_1): Update calls accordingly.  Handle constant
7673         cos, cosh, ccos and ccosh here.
7674
7675 2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>
7676
7677         * doc/invoke.texi (-fdump-tree-backprop, -fssa-backprop): Document.
7678         * Makefile.in (OBJS): Add gimple-ssa-backprop.o.
7679         * common.opt (fssa-backprop): New option.
7680         * fold-const.h (negate_mathfn_p): Declare.
7681         * fold-const.c (negate_mathfn_p): Make public.
7682         * timevar.def (TV_TREE_BACKPROP): New.
7683         * tree-pass.h (make_pass_backprop): Declare.
7684         * passes.def (pass_backprop): Add.
7685         * gimple-ssa-backprop.c: New file.
7686
7687 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
7688             Sebastian Pop  <s.pop@samsung.com>
7689
7690         * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard):
7691         Do not call create_empty_if_region_on_edge when cond_expr is true.
7692         (translate_isl_ast_node_for): Check whether a guard has been generated.
7693
7694 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
7695
7696         * graphite-poly.h (struct dr_info): Added invalid_alias_set number.
7697         (operator=): Removed.
7698         (dr_info): Make alias_set number the last argument with default
7699         value of invalid_alias_set.
7700         * graphite-sese-to-poly.c (build_scop_drs): Update constructor
7701         of dr_info.
7702         (rewrite_reductions_out_of_ssa): Iterate only through the
7703         basic blocks which are inside region.
7704         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
7705         * sese.h (struct sese_l): Removed assignment operator.
7706         (split_region_for_bb): Removed dead code.
7707
7708 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
7709
7710         * graphite-poly.h (struct dr_info): Removed conversion constructor.
7711         (struct scop): Renamed scop::region to scop::scop_info
7712         (scop_set_region): Same.
7713         (SCOP_REGION): Removed
7714         (SCOP_CONTEXT): Removed.
7715         (POLY_SCOP_P): Removed.
7716         * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_user):
7717         Rename scop->region to scop->scop_info.
7718         (add_parameters_to_ivs_params): Same.
7719         (graphite_regenerate_ast_isl): Same.
7720         * graphite-poly.c (new_scop): Same.
7721         (free_scop): Same.
7722         (print_scop_params): Same.
7723         * graphite-scop-detection.c (scop_detection::remove_subscops): Same.
7724         (scop_detection::remove_intersecting_scops): Use pointer to sese_l.
7725         (dot_all_scops_1): Rename scop->region to scop->scop_info.
7726         (scop_detection::nb_pbbs_in_loops): Same.
7727         (find_scop_parameters): Same.
7728         (try_generate_gimple_bb): Same.
7729         (gather_bbs::before_dom_children): Same.
7730         (gather_bbs::after_dom_children): Same.
7731         (build_scops): Same.
7732         * graphite-sese-to-poly.c (build_scop_scattering): Same.
7733         (extract_affine_chrec): Same.
7734         (extract_affine): Same.
7735         (set_scop_parameter_dim): Same.
7736         (build_loop_iteration_domains): Same.
7737         (create_pw_aff_from_tree): Same.
7738         (add_param_constraints): Same.
7739         (build_scop_iteration_domain): Same.
7740         (build_scop_drs): Same.
7741         (analyze_drs_in_stmts): Same.
7742         (insert_out_of_ssa_copy_on_edge): Same.
7743         (rewrite_close_phi_out_of_ssa):Same.
7744         (rewrite_reductions_out_of_ssa):Same.
7745         (handle_scalar_deps_crossing_scop_limits):Same.
7746         (rewrite_cross_bb_scalar_deps):Same.
7747         (rewrite_cross_bb_scalar_deps_out_of_ssa):Same.
7748         (build_poly_scop):Same.
7749         (build_alias_set): Use pointer to dr_info.
7750         * graphite.c (print_graphite_scop_statistics):
7751         (graphite_transform_loops):
7752         * sese.h (struct sese_l): Remove conversion constructor.
7753
7754 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
7755
7756         PR middle-end/67966
7757         * tree.c (verify_type): Verify that TYPE_MODE match
7758         between TYPE_CANONICAL and type.
7759         * expr.c (store_expr_with_bounds): Revert my previous change.
7760         * expmed.c (store_bit_field_1): Revert prevoius change.
7761         * gimple-expr.c (useless_type_conversion_p): Require TYPE_MODE
7762         to match for all types.
7763
7764 2015-10-21  Nathan Sidwell  <nathan@codesourcery.com>
7765
7766         * omp-low.c (check_omp_nesting_restrictions): Check OpenACC loop
7767         nesting.
7768
7769 2015-10-21  Ilya Enkovich  <enkovich.gnu@gmail.com>
7770
7771         * doc/tm.texi: Regenerated.
7772         * doc/tm.texi.in (TARGET_VECTORIZE_GET_MASK_MODE): New.
7773         * stor-layout.c (layout_type): Use mode to get vector mask size.
7774         * target.def (get_mask_mode): New.
7775         * targhooks.c (default_get_mask_mode): New.
7776         * targhooks.h (default_get_mask_mode): New.
7777         * tree-vect-stmts.c (get_same_sized_vectype): Add special case
7778         for boolean vector.
7779         * tree.c (MAX_BOOL_CACHED_PREC): New.
7780         (nonstandard_boolean_type_cache): New.
7781         (build_nonstandard_boolean_type): New.
7782         (make_vector_type): Vector mask has no canonical type.
7783         (build_truth_vector_type): New.
7784         (build_same_sized_truth_vector_type): New.
7785         (truth_type_for): Support vector masks.
7786         * tree.h (VECTOR_BOOLEAN_TYPE_P): New.
7787         (build_truth_vector_type): New.
7788         (build_same_sized_truth_vector_type): New.
7789         (build_nonstandard_boolean_type): New.
7790         * tree-cfg.c (verify_gimple_comparison) Require boolean
7791         vector type for vector comparison.
7792         (verify_gimple_assign_ternary): Likewise.
7793         * optabs.c (expand_vec_cond_expr): Accept boolean vector as
7794         condition operand.
7795         * tree-vect-stmts.c (vectorizable_condition): Use boolean
7796         vector type for vector comparison.
7797         * tree-vect-generic.c (elem_op_func): Add new operand to hold
7798         vector type.
7799         (do_unop): Adjust to modified function type.
7800         (do_binop): Likewise.
7801         (do_plus_minus): Likewise.
7802         (do_negate); Likewise.
7803         (expand_vector_piecewise): Likewise.
7804         (do_cond): Likewise.
7805         (do_compare): Use comparison instead of condition.
7806         (expand_vector_divmod): Use boolean vector type for comparison.
7807         (expand_vector_operations_1): Skip scalar mask operations.
7808
7809 2015-10-21  Ilya Enkovich  <enkovich.gnu@gmail.com>
7810
7811         * omp-low.c (simd_clone_create): Set in_other_partition
7812         for created clones.
7813
7814 2015-10-21  David Wohlferd  <dw@LimeGreenSocks.com>
7815
7816         * doc/extend.exp (Local Register Variables): Rewrite.
7817
7818 2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>
7819
7820         * match.pd: Add rules to simplify ccos, ccosh, hypot, copysign
7821         and x*x in cases where the operands are sign ops.  Extend these
7822         rules to handle copysign as a sign op (including for cos, cosh
7823         and pow, which already treated negate and abs as sign ops).
7824
7825 2015-10-21  Uros Bizjak  <ubizjak@gmail.com>
7826
7827         PR target/68018
7828         * config/i386/i386.c (ix86_compute_frame_layout): Realign the stack
7829         for 64-bit MS_ABI targets also when default incoming stack boundary
7830         is overriden.
7831
7832 2015-10-21  Richard Biener  <rguenther@suse.de>
7833
7834         * tree-ssa-sccvn.c (cond_stmts_equal_p): Compare two GIMPLE
7835         cond stmts, enhanced and split out from ...
7836         (vn_phi_eq): ... here.
7837
7838 2015-10-21  Richard Biener  <rguenther@suse.de>
7839
7840         PR middle-end/68031
7841         * fold-const.c: Include tree-ssa-operands.h and tree-into-ssa.h.
7842         (tree_ssa_name_nonnegative_warnv_p): Fold into ...
7843         (tree_single_nonnegative_warnv_p): ... here.  For SSA names
7844         make sure they are not registered for update.
7845
7846 2015-10-21  Richard Biener  <rguenther@suse.de>
7847
7848         PR tree-optimization/68026
7849         * tree-ssa-ccp.c (get_value_for_expr): Zero-extend mask for
7850         unsigned VARYING values.
7851
7852 2015-10-21  Maxim Ostapenko  <m.ostapenko@partner.samsung.com>
7853
7854         * asan.c (asan_emit_stack_protection): Don't pass local stack to
7855         asan_stack_malloc_[n] anymore. Check if asan_stack_malloc_[n] returned
7856         NULL and use local stack than.
7857         (asan_finish_file): Insert __asan_version_mismatch_check_v[n] call
7858         in addition to __asan_init.
7859         * sanitizer.def (BUILT_IN_ASAN_INIT): Rename to __asan_init.
7860         (BUILT_IN_ASAN_VERSION_MISMATCH_CHECK): Add new builtin call.
7861         * asan.h (asan_intercepted_p): Handle new string builtins.
7862         * ubsan.c (ubsan_use_new_style_p): New function.
7863         (ubsan_instrument_float_cast): If location is unknown, assign
7864         input_location to loc. Propagate loc to ubsan_create_data if
7865         ubsan_use_new_style_p returned true.
7866
7867 2015-10-21  Jeff Law  <law@redhat.com>
7868
7869         * Makefile.in (OBJS): Remove sched-vis.c
7870         * sched-vis.c: Removed.  Code moved into...
7871         * print-rtl.c: Here.  Include cfg.h, pretty-print.h and print-rtl.h.
7872         * rtl.h: Remove prototypes for functions now living in print-rtl.c
7873         * print-rtl.h Add prototypes for new functions in print-rtl.c.
7874         * auto-inc-dec.c: Include print-rtl.h
7875         * cfgrtl.c, combine.c, final.c haifa-sched.c: Likewise.
7876         * ira.c, lra-constraints.c, lra.c, sel-sched-dump.c: Likewise.
7877
7878         * varasm.c (handle_vtv_comdat_section): Mark 2nd parameter with
7879         ATTRIBUTE_UNUSED.
7880
7881 2015-10-21  Richard Biener  <rguenther@suse.de>
7882             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
7883
7884         * fold-const.c (fold_binary_loc) : Move (-A) * (-B) -> A * B
7885         to match.pd.
7886 * doc/implement-c.texi (Integers Implementation): Make GCC's promises
7887 about signed left shift stronger and clarify the cases when they're
7888 broken.
7889         Move (a * (1 << b)) is (a << b) to match.pd.
7890         Move convert (C1/X)*C2 into (C1*C2)/X to match.pd.
7891         Move ~X & X, (X == 0) & X, and !X & X are zero to match.pd.
7892         Move X & ~X , X & (X == 0), and X & !X are zero to match.pd.
7893
7894         * match.pd (mult:c @0 (convert? (lshift integer_onep@1 @2))):
7895         New simplifier.
7896         (mult (rdiv:s REAL_CST@0 @1) REAL_CST@2): New simplifier.
7897         (bit_and:c (convert? @0) (convert? (bit_not @0))): New simplifier.
7898         (bit_ior (bit_and:s @0 (bit_not:s @1)) (bit_and:s (bit_not:s @0) @1))
7899         : New simplifier.
7900         (mult:c (convert1? (negate @0)) (convert2? negate_expr_p@1)):
7901         New simplifier.
7902         (match (logical_inverted_value @0) (truth_not @0)) : New Predicate.
7903
7904 2015-10-21  Gregor Richards  <gregor.richards@uwaterloo.ca>
7905             Szabolcs Nagy  <szabolcs.nagy@arm.com>
7906             Alan Modra  <amodra@gmail.com>
7907
7908         * config/rs6000/secureplt.h (LINK_SECURE_PLT_DEFAULT_SPEC): Define.
7909         * config/rs6000/sysv4.h (LINK_SECURE_PLT_SPEC): Define.
7910         (LINK_SPEC): Add %(link_secure_plt).
7911         (SUBTARGET_EXTRA_SPECS): Add "link_secure_plt".
7912         * config/rs6000/linux64.h (LINK_SECURE_PLT_SPEC): Redefine.
7913
7914 2015-10-20  Gregor Richards  <gregor.richards@uwaterloo.ca>
7915             Szabolcs Nagy  <szabolcs.nagy@arm.com>
7916
7917         * config/sh/linux.h (MUSL_DYNAMIC_LINKER): Define.
7918         (MUSL_DYNAMIC_LINKER_E, MUSL_DYNAMIC_LINKER_FP): Define.
7919
7920 2015-10-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7921
7922         * config/aarch64/aarch64.c (aarch64_mode_valid_for_sched_fusion_p):
7923         New function.
7924         (fusion_load_store): Use it.
7925         * config/aarch64/aarch64-ldpstp.md: Add new peephole2s for
7926         ldp and stp in VD modes.
7927         * config/aarch64/aarch64-simd.md (load_pair<mode>, VD): New pattern.
7928         (store_pair<mode>, VD): Likewise.
7929
7930 2015-10-20  Vladimir Makarov  <vmakarov@redhat.com>
7931
7932         PR rtl-optimization/67609
7933         * lra-splill.c (lra_final_code_change): Don't remove all
7934         sub-registers.
7935
7936 2015-10-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7937
7938         * simplify-rtx.c (simplify_binary_operation): If either operand was
7939         a constant pool reference use them if all other simplifications failed.
7940
7941 2015-10-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7942
7943         * config/aarch64/aarch64.md
7944         (*aarch64_fcvt<su_optab><GPF:mode><GPI:mode>2_mult): New pattern.
7945         * config/aarch64/aarch64-simd.md
7946         (*aarch64_fcvt<su_optab><VDQF:mode><fcvt_target>2_mult): Likewise.
7947         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle above patterns.
7948         (aarch64_fpconst_pow_of_2): New function.
7949         (aarch64_vec_fpconst_pow_of_2): Likewise.
7950         * config/aarch64/aarch64-protos.h (aarch64_fpconst_pow_of_2): Declare
7951         prototype.
7952         (aarch64_vec_fpconst_pow_of_2): Likewise.
7953         * config/aarch64/predicates.md (aarch64_fp_pow2): New predicate.
7954         (aarch64_fp_vec_pow2): Likewise.
7955
7956 2015-10-20  Uros Bizjak  <ubizjak@gmail.com>
7957
7958         * config/alpha/alpha.h (HARD_REGNO_NREGS): Use CEIL macro.
7959         (ALPHA_ARG_SIZE): Ditto.  Remove unused NAMED argument.
7960         * config/alpha/alpha.c (alpha_function_arg_advance): Update
7961         ALPHA_ARG_SIZE usage.
7962         (alpha_arg_partial_bytes): Ditto.
7963
7964 2015-10-20  H.J. Lu  <hongjiu.lu@intel.com>
7965
7966         PR target/66810
7967         * cgraphbuild.c (pass_build_cgraph_edges::execute): Skip local
7968         error_mark_node decls.
7969
7970 2015-10-20  H.J. Lu  <hongjiu.lu@intel.com>
7971
7972         PR target/67963
7973         PR target/67985
7974         * common/config/i386/i386-common.c (ix86_handle_option): Remove
7975         OPT_miamcu handling.
7976         * config/i386/i386.c (PTA_NO_80387): New macro.
7977         (processor_alias_table): Add PTA_NO_80387 to lakemont.
7978         (ix86_option_override_internal): Update MASK_80387 from
7979         PTA_NO_80387.  Don't warn x87/MMX/SSE/AVX for -miamcu.  Warn
7980         SSE math only if 80387 is supported.  Don't change
7981         MASK_FLOAT_RETURNS.
7982         (ix86_valid_target_attribute_tree): Enable FPMATH_387 only if
7983         80387 is supported.
7984         * config/i386/i386.h (TARGET_FLOAT_RETURNS_IN_80387): True only
7985         if TARGET_80387 is true and TARGET_IAMCU is false.
7986         (TARGET_FLOAT_RETURNS_IN_80387_P): True only if TARGET_80387_P
7987         is true and TARGET_IAMCU_P is false.
7988
7989 2015-10-20  Richard Biener  <rguenther@suse.de>
7990
7991         PR tree-optimization/68017
7992         * tree-tailcall.c (eliminate_tail_call): Remove stmts backwards.
7993
7994 2015-10-20  Martin Liska  <mliska@suse.cz>
7995
7996         * cgraphclones.c (cgraph_node::create_virtual_clone):
7997         Verify cgraph_node.local.versionable instead of calling
7998         tree_versionable_function_p.
7999         * ipa-cp.c (determine_versionability): Save the information
8000         to ipa_node_params summary.
8001         (ipcp_versionable_function_p): Use it.
8002         (ipcp_propagate_stage): Pass IPA_NODE_REF to a called function.
8003         (ipcp_generate_summary): Do not compute cgraph_node
8004         versionability.
8005         * ipa-inline-analysis.c (inline_generate_summary): Compute
8006         versionability for all cgraph nodes.
8007         * ipa-prop.c (ipa_node_params_t::duplicate): Duplicate
8008         ipa_node_params::versionability.
8009         * ipa-prop.h (struct ipa_node_params): Declare it.
8010
8011 2015-10-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8012
8013         PR other/67868
8014         * varasm.c (assemble_variable): Move special vtv handling to..
8015         (handle_vtv_comdat_sections): .. here. New function.
8016         (output_object_block): Handle vtv sections.
8017
8018 2015-10-20  Szabolcs Nagy  <szabolcs.nagy@arm.com>
8019
8020         PR target/66912
8021         * varasm.c (default_binds_local_p_2): Turn on extern_protected_data.
8022
8023 2015-10-20  Arkadiusz Drabczyk  <arkadiusz@drabczyk.org>
8024
8025         * doc/extend.texi: Update documentation WRT inline functions.
8026
8027 2015-10-20  Alan Modra  <amodra@gmail.com>
8028
8029         PR go/66870
8030         * config/rs6000/sysv4.h (TARGET_CAN_SPLIT_STACK_64BIT): Don't define.
8031         * config/rs6000/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
8032         (TARGET_CAN_SPLIT_STACK_64BIT): Define.
8033
8034 2015-10-19  Pierre-Marie de Rodat  <derodat@adacore.com>
8035
8036         PR rtl-optimization/66790
8037         * df.h (DF_MIR): New macro.
8038         (DF_LAST_PROBLEM_PLUS1): Update to be past DF_MIR
8039         (DF_MIR_INFO_BB): New macro.
8040         (DF_MIR_IN, DF_MIR_OUT): New macros.
8041         (struct df_mir_bb_info): New.
8042         (df_mir): New macro.
8043         (df_mir_add_problem, df_mir_simulate_one_insn): New forward
8044         declarations.
8045         (df_mir_get_bb_info): New.
8046         * df-problems.c (struct df_mir_problem_data): New.
8047         (df_mir_free_bb_info, df_mir_alloc, df_mir_reset,
8048         df_mir_bb_local_compute, df_mir_local_compute, df_mir_init,
8049         df_mir_confluence_0, df_mir_confluence_n,
8050         df_mir_transfer_function, df_mir_free, df_mir_top_dump,
8051         df_mir_bottom_dump, df_mir_verify_solution_start,
8052         df_mir_verify_solution_end): New.
8053         (problem_MIR): New.
8054         (df_mir_add_problem, df_mir_simulate_one_insn): New.
8055         * timevar.def (TV_DF_MIR): New.
8056         * ree.c: Include bitmap.h
8057         (add_removable_extension): Add an INIT_REGS parameter.  Use it
8058         to skip zero-extensions that may get an uninitialized register.
8059         (find_removable_extensions): Compute must-initialized registers
8060         using the MIR dataflow problem. Update the call to
8061         add_removable_extension.
8062         (find_and_remove_re): Call df_mir_add_problem.
8063
8064 2015-10-19  Segher Boessenkool  <segher@kernel.crashing.org>
8065
8066         * common/config/mn10300/mn10300-common.c
8067         (mn10300_option_optimization_table) <OPT_freorder_blocks_algorithm_>:
8068         Use REORDER_BLOCKS_ALGORITHM_STC at -Os and up.
8069
8070 2015-10-19  David Wohlferd  <dw@LimeGreenSocks.com>
8071
8072         * doc/extend.texi (Explicit Register Variables): Simplify and
8073         avoid unnecessary and confusion abbreviations.  Update cross
8074         references.
8075         doc/implement-c.tex: Update cross reference.
8076
8077 2015-10-19  Jeff Law  <law@redhat.com>
8078
8079         * tree-ssa-threadupdate.c (valid_jump_thread_path): Reject paths
8080         that create irreducible loops unless the path elimiantes a multiway
8081         branch.
8082
8083 2015-10-19  Richard Biener  <rguenther@suse.de>
8084
8085         PR tree-optimization/67975
8086         * tree-cfg.h (extract_true_false_controlled_edges): Declare.
8087         * tree-cfg.c (extract_true_false_controlled_edges): Split out
8088         core worker from ...
8089         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): ... here.
8090         * tree-ssa-sccvn.c (vn_phi_compute_hash): Hash number of args
8091         instead of block number for PHIs with two or one args.
8092         (vn_phi_eq): Compare edge predicates of PHIs that are in different
8093         blocks.
8094
8095 2015-10-19  Richard Biener  <rguenther@suse.de>
8096
8097         * gimple-fold.c (gimple_phi_nonnegative_warnv_p): New function.
8098         (gimple_stmt_nonnegative_warnv_p): Use it.
8099         * match.pd (CPROJ): New operator list.
8100         (cproj (complex ...)): Move simplifications from ...
8101         * builtins.c (fold_builtin_cproj): ... here.
8102
8103 2015-10-19  H.J. Lu  <hongjiu.lu@intel.com>
8104
8105         * config/i386/i386.c (ix86_expand_vector_move): Use
8106         GET_MODE_BITSIZE for IA MCU psABI to get vector natural
8107         alignment.
8108
8109 2015-10-19  H.J. Lu  <hongjiu.lu@intel.com>
8110
8111         * doc/invoke.texi: Replace @optindex with @opindex.
8112
8113 2015-10-19  H.J. Lu  <hongjiu.lu@intel.com>
8114
8115         PR target/67995
8116         * config/i386/i386.c (ix86_valid_target_attribute_tree): If
8117         arch= is set,  clear all bits in x_ix86_isa_flags, except for
8118         ISA_64BIT, ABI_64, ABI_X32, and CODE16.
8119
8120 2015-10-19  Joost VandeVondele  <vondele@gnu.gcc.org>
8121
8122         PR middle-end/68002
8123         * common.opt (fkeep-static-functions): New option.
8124         * doc/invoke.texi: Document it.
8125         * cgraphunit.c (cgraph_node::finalize_function): Use it.
8126
8127 2015-10-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8128
8129         * sched-int.h (struct autopref_multipass_data_): Remove offset
8130         field.  Add min_offset, max_offset, multi_mem_insn_p fields.
8131         * haifa-sched.c (analyze_set_insn_for_autopref): New function.
8132         (autopref_multipass_init): Use it.  Handle PARALLEL sets.
8133         (autopref_rank_data): New function.
8134         (autopref_rank_for_schedule): Use it.
8135         (autopref_multipass_dfa_lookahead_guard_1): Likewise.
8136
8137 2015-10-18  Mikhail Maltsev  <maltsevm@gmail.com>
8138
8139         PR other/65800
8140         * gengtype.c (dump_type): Handle TYPE_UNDEFINED correctly.
8141
8142 2015-10-18  Iain Sandoe  <iain@codesourcery.com>
8143
8144         * config/darwin.h (TARGET_SYSTEM_ROOT): Remove this from here,
8145         (HAVE_LD_SYSROOT): New.  (SYSROOT_SPEC): New.
8146         (LINK_SYSROOT_SPEC): Revise to remove the default for target sysroot.
8147         (STANDARD_STARTFILE_PREFIX_1): New.
8148         (STANDARD_STARTFILE_PREFIX_2): New.
8149
8150 2015-10-18  Iain Sandoe  <iain@codesourcery.com>
8151
8152         * config/darwin-driver.c (darwin_default_min_version): Refactor code.
8153         (darwin_driver_init): Note a version-min when provided on the c/l.
8154         * config/darwin.h (%darwin_minversion): Remove.
8155         * config/i386/darwin.h: Likewise.
8156         * config/rs6000/darwin.h: Likewise.
8157         * config/darwin.opt (mmacosx-version-min=): Use the configured default,
8158         rather than an arbitrary constant.
8159
8160 2015-10-18  Iain Sandoe  <iain@codesourcery.com>
8161
8162         * config/darwin-driver.c (darwin_driver_init): Handle '-arch' for
8163         PPC, detect conflicts between -arch and multilib settings.  Detect
8164         and warn about conflicts between multiple -arch definitions.
8165
8166 2015-10-18  Iain Sandoe  <iain@codesourcery.com>
8167
8168         * config/darwin-driver.c: Adjust includes to add diagnostic-core.
8169
8170 2015-10-16  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8171
8172         * lra-constraints.c (add_next_usage_insn): Change argument type
8173         from rtx to rtx_insn *.
8174
8175 2015-10-16  H.J. Lu  <hongjiu.lu@intel.com>
8176
8177         * i386/x86-tune.def (X86_TUNE_ALWAYS_FANCY_MATH_387): Disable
8178         for Lakemont.
8179
8180 2015-10-16  Andrew MacLeod  <amacleod@redhat.com>
8181
8182         * config/tilepro/gen-mul-tables.cc: Adjust include files.
8183         * config/tilegx/mul-tables.c: Regenerate.
8184         * config/tilepro/mul-tables.c: Regenerate.
8185
8186         * config/tilegx/tilegx-c.c: Adjust include files.
8187         * config/tilegx/tilegx.c: Likewise.
8188         * config/tilepro/tilepro-c.c: Likewise.
8189         * config/tilepro/tilepro.c: Likewise.
8190         * config/aarch64/aarch64-builtins.c: Likewise.
8191         * config/aarch64/aarch64.c: Likewise.
8192         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
8193         * config/alpha/alpha.c: Likewise.
8194         * config/arc/arc.c: Likewise.
8195         * config/arm/aarch-common.c: Likewise.
8196         * config/arm/arm-builtins.c: Likewise.
8197         * config/arm/arm-c.c: Likewise.
8198         * config/arm/arm.c: Likewise.
8199         * config/avr/avr-c.c: Likewise.
8200         * config/avr/avr-devices.c: Likewise.
8201         * config/avr/avr-log.c: Likewise.
8202         * config/avr/avr.c: Likewise.
8203         * config/bfin/bfin.c: Likewise.
8204         * config/c6x/c6x.c: Likewise.
8205         * config/cr16/cr16.c: Likewise.
8206         * config/cris/cris.c: Likewise.
8207         * config/darwin-c.c: Likewise.
8208         * config/darwin-driver.c: Likewise.
8209         * config/darwin.c: Likewise.
8210         * config/default-c.c: Likewise.
8211         * config/epiphany/epiphany.c: Likewise.
8212         * config/epiphany/mode-switch-use.c: Likewise.
8213         * config/epiphany/resolve-sw-modes.c: Likewise.
8214         * config/fr30/fr30.c: Likewise.
8215         * config/frv/frv.c: Likewise.
8216         * config/ft32/ft32.c: Likewise.
8217         * config/glibc-c.c: Likewise.
8218         * config/h8300/h8300.c: Likewise.
8219         * config/i386/host-cygwin.c: Likewise.
8220         * config/i386/host-mingw32.c: Likewise.
8221         * config/i386/i386-c.c: Likewise.
8222         * config/i386/i386.c: Likewise.
8223         * config/i386/msformat-c.c: Likewise.
8224         * config/i386/winnt-cxx.c: Likewise.
8225         * config/i386/winnt-stubs.c: Likewise.
8226         * config/i386/winnt.c: Likewise.
8227         * config/ia64/ia64-c.c: Likewise.
8228         * config/ia64/ia64.c: Likewise.
8229         * config/iq2000/iq2000.c: Likewise.
8230         * config/lm32/lm32.c: Likewise.
8231         * config/m32c/m32c-pragma.c: Likewise.
8232         * config/m32c/m32c.c: Likewise.
8233         * config/m32r/m32r.c: Likewise.
8234         * config/mcore/mcore.c: Likewise.
8235         * config/mep/mep-pragma.c: Likewise.
8236         * config/mep/mep.c: Likewise.
8237         * config/microblaze/microblaze-c.c: Likewise.
8238         * config/microblaze/microblaze.c: Likewise.
8239         * config/mips/mips-tables.opt
8240         * config/mips/mips.c: Likewise.
8241         * config/mmix/mmix.c: Likewise.
8242         * config/mn10300/mn10300.c: Likewise.
8243         * config/moxie/moxie.c: Likewise.
8244         * config/msp430/msp430-c.c: Likewise.
8245         * config/msp430/msp430.c: Likewise.
8246         * config/nds32/nds32-cost.c: Likewise.
8247         * config/nds32/nds32-fp-as-gp.c: Likewise.
8248         * config/nds32/nds32-intrinsic.c: Likewise.
8249         * config/nds32/nds32-isr.c: Likewise.
8250         * config/nds32/nds32-md-auxiliary.c: Likewise.
8251         * config/nds32/nds32-memory-manipulation.c: Likewise.
8252         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
8253         * config/nds32/nds32-predicates.c: Likewise.
8254         * config/nds32/nds32.c: Likewise.
8255         * config/nios2/nios2.c: Likewise.
8256         * config/nvptx/mkoffload.c: Likewise.
8257         * config/nvptx/nvptx.c: Likewise.
8258         * config/pa/pa.c: Likewise.
8259         * config/pdp11/pdp11.c: Likewise.
8260         * config/rl78/rl78-c.c: Likewise.
8261         * config/rl78/rl78.c: Likewise.
8262         * config/rs6000/host-darwin.c: Likewise.
8263         * config/rs6000/rs6000-c.c: Likewise.
8264         * config/rs6000/rs6000-linux.c: Likewise.
8265         * config/rs6000/rs6000.c: Likewise.
8266         * config/rx/rx.c: Likewise.
8267         * config/s390/s390-c.c: Likewise.
8268         * config/s390/s390.c: Likewise.
8269         * config/sh/sh-c.c: Likewise.
8270         * config/sh/sh-mem.cc: Likewise.
8271         * config/sh/sh.c: Likewise.
8272         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
8273         * config/sh/sh_treg_combine.cc: Likewise.
8274         * config/sol2-c.c: Likewise.
8275         * config/sol2-cxx.c: Likewise.
8276         * config/sol2-stubs.c: Likewise.
8277         * config/sol2.c: Likewise.
8278         * config/sparc/sparc-c.c: Likewise.
8279         * config/sparc/sparc.c: Likewise.
8280         * config/spu/spu-c.c: Likewise.
8281         * config/spu/spu.c: Likewise.
8282         * config/stormy16/stormy16.c: Likewise.
8283         * config/v850/v850-c.c: Likewise.
8284         * config/v850/v850.c: Likewise.
8285         * config/vax/vax.c: Likewise.
8286         * config/visium/visium.c: Likewise.
8287         * config/vms/vms-c.c: Likewise.
8288         * config/vms/vms.c: Likewise.
8289         * config/vxworks.c: Likewise.
8290         * config/winnt-c.c: Likewise.
8291         * config/xtensa/xtensa.c: Likewise.
8292
8293 2015-10-16  Christian Bruel  <christian.bruel@st.com>
8294
8295         PR target/67745
8296         * config/arm/arm.h (FUNCTION_BOUNDARY): Use FUNCTION_BOUNDARY_P.
8297         (FUNCTION_BOUNDARY_P): New macro:
8298         * config/arm/arm.c (TARGET_RELAYOUT_FUNCTION, arm_relayout_function):
8299         New hook.
8300         * doc/tm.texi.in (TARGET_RELAYOUT_FUNCTION): Document.
8301         * doc/tm.texi (TARGET_RELAYOUT_FUNCTION): New hook.
8302         * target.def (TARGET_RELAYOUT_FUNCTION): Likewise.
8303         * function.c (allocate_struct_function): Call
8304         relayout_function hook.
8305         * passes.c (rest_of_decl_compilation): Likewise.
8306
8307 2015-10-16  Christian Bruel  <christian.bruel@st.com>
8308
8309         PR target/67745
8310         * config/arm/arm.h (FUNCTION_BOUNDARY): Move optimize_size condition to:
8311         * config/arm/arm.c (arm_option_override_internal): Call
8312         arm_override_options_after_change_1.
8313         (arm_override_options_after_change): New function.
8314         (arm_override_options_after_change_1): Likewise.
8315         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define hook.
8316
8317 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
8318
8319         Revert:
8320         * ipa-icf-gimple.c (func_checker::compare_operand): Compare only
8321         empty constructors.
8322
8323 2015-10-16  Eric Botcazou  <ebotcazou@adacore.com>
8324
8325         * tree.c (recompute_tree_invariant_for_addr_expr): Assert that the
8326         argument is an ADDR_EXPR.
8327
8328 2015-10-16  Richard Biener  <rguenther@suse.de>
8329
8330         * gimple-fold.c (gimple_fold_builtin_memory_op): Use gimple_build
8331         and get rid of force_gimple_operand_gsi.
8332         (gimple_fold_builtin_memory_chk): Likewise.
8333         (gimple_fold_builtin_stxcpy_chk): Likewise.
8334         (rewrite_to_defined_overflow): Likewise.
8335         (gimple_convert_to_ptrofftype): New function.
8336         * gimple-fold.h (gimple_convert_to_ptrofftype): New overload, declare.
8337
8338 2015-10-16  Richard Biener  <rguenther@suse.de>
8339
8340         * tree-nested.h (build_addr): Adjust prototype.
8341         * tree-nested.c (build_addr): Remove context argument and use
8342         mark_addressable.
8343         (get_static_chain): Adjust calls to build_addr.
8344         (convert_nl_goto_reference): Likewise.
8345         (convert_tramp_reference_op): Likewise.
8346         (finalize_nesting_tree_1): Likewise.
8347         * value-prof.c (gimple_ic): Likewise.
8348         * gimple-low.c (lower_builtin_setjmp): Likewise.
8349         * tree-parloops.c (take_address_of): Likewise.
8350         (create_call_for_reduction_1): Likewise.
8351         * tree-profile.c (gimple_gen_interval_profiler): Likewise.
8352         (gimple_gen_ic_func_profiler): Likewise.
8353
8354 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
8355
8356         * ipa-icf-gimple.c (func_checker::compare_operand): Compare only
8357         empty constructors.
8358
8359 2015-10-16  Michael Collison  <michael.collison@linaro.org>
8360             Andrew Pinski <andrew.pinski@caviumnetworks.com>
8361
8362         * match.pd ((x < y) && (x < z) -> x < min (y,z),
8363         (x > y) and (x > z) -> x > max (y,z))
8364
8365 2015-10-15  Gregor Richards  <gregor.richards@uwaterloo.ca>
8366             Szabolcs Nagy  <szabolcs.nagy@arm.com>
8367
8368         * config/microblaze/linux.h (MUSL_DYNAMIC_LINKER): Define.
8369         (DYNAMIC_LINKER): Renamed to ...
8370         (GLIBC_DYNAMIC_LINKER): This.
8371         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_DYNAMIC_LINKER.
8372
8373 2015-10-15  Marek Polacek  <polacek@redhat.com>
8374
8375         * tree-ssa-reassoc.c (attempt_builtin_copysign): Call
8376         gimple_call_builtin instead of is_gimple_call.
8377
8378 2015-10-15  Richard Biener  <rguenther@suse.de>
8379
8380         * tree-vect-stmts.c (vect_init_vector): Remove unused vars.
8381
8382 2015-10-15  Richard Biener  <rguenther@suse.de>
8383
8384         * tree-vectorizer.h (vect_get_new_ssa_name): Declare.
8385         * tree-vect-data-refs.c (vect_get_new_ssa_name): New helper.
8386         * tree-vect-loop.c (get_initial_def_for_induction): Drop
8387         use of force_gimple_operand in favor of gimple_build.
8388         Use vect_get_new_ssa_name.
8389         * tree-vect-stmts.c (vect_init_vector): Use vect_get_new_ssa_name.
8390         (vectorizable_mask_load_store): Likewise.
8391         (vectorizable_call): Likewise.
8392         (vectorizable_store): Likewise.
8393         (vectorizable_load): Likewise.
8394         (vect_get_vec_def_for_stmt_copy): Remove redundant stmt.
8395
8396 2015-10-15  Richard Sandiford  <richard.sandiford@arm.com>
8397
8398         PR tree-optimization/67945
8399         * tree-pass.h (PROP_gimple_opt_math): New property flag.
8400         * generic-match-head.c (canonicalize_math_p): New function.
8401         * gimple-match-head.c: Include tree-pass.h.
8402         (canonicalize_math_p): New function.
8403         * match.pd: Group math built-in rules into simplifications
8404         and canonicalizations.  Guard the latter with canonicalize_math_p.
8405         * tree-ssa-math-opts.c (pass_data_cse_sincos): Provide the
8406         PROP_gimple_opt_math property.
8407
8408 2015-10-15  Marek Polacek  <polacek@redhat.com>
8409
8410         PR tree-optimization/67953
8411         * match.pd (X - (X / Y) * Y): Don't change signedness of @0.
8412
8413 2015-10-15  Jiong Wang  <jiong.wang@arm.com>
8414
8415         * config.gcc: Recognize "." in architecture base name for AArch64.
8416
8417 2015-10-14  Uros Bizjak  <ubizjak@gmail.com>
8418
8419         * config/mips/mips.h (MIPS_STACK_ALIGN): Implement using
8420         ROUND_UP macro.
8421         * config/mips/mips.c (mips_setup_incoming_varargs): Use
8422         ROUND_DOWN to calculate off.
8423         (mips_gimplify_va_arg_expr): Use ROUND_UP to calculate rsize.
8424         (mips_emit_probe_stack_range): Use ROUND_DOWN to calculate
8425         rounded_size.
8426
8427 2015-10-14  Eric Botcazou  <ebotcazou@adacore.com>
8428
8429         * gimplify.c (gimplify_addr_expr) <MEM_REF>: New case.
8430
8431 2015-10-14  Peter Bergner  <bergner@vnet.ibm.com>
8432             Torvald Riegel  <triegel@redhat.com>
8433
8434         PR target/67281
8435         * config/rs6000/htm.md (UNSPEC_HTM_FENCE): New.
8436         (tabort, tabort<wd>c, tabort<wd>ci, tbegin, tcheck, tend,
8437         trechkpt, treclaim, tsr, ttest): Rename define_insns from this...
8438         (*tabort, *tabort<wd>c, *tabort<wd>ci, *tbegin, *tcheck, *tend,
8439         *trechkpt, *treclaim, *tsr, *ttest): ...to this.  Add memory barrier.
8440         (tabort, tabort<wd>c, tabort<wd>ci, tbegin, tcheck, tend,
8441         trechkpt, treclaim, tsr, ttest): New define_expands.
8442         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
8443         __TM_FENCE__ for htm.
8444         * doc/extend.texi: Update documentation for htm builtins.
8445
8446 2015-10-14  Uros Bizjak  <ubizjak@gmail.com>
8447
8448         PR target/67967
8449         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Do not add
8450         REG_CFA_EXPRESSION to aligned SSE stores.
8451
8452 2015-10-14  Jeff Law  <law@redhat.com>
8453
8454         * tree-ssa-threadupdate.c (thread_through_all_blocks): Bump
8455         num_threaded_edges for successful FSM threads too.
8456
8457 2015-10-14  Richard Biener  <rguenther@suse.de>
8458
8459         * tree-vectorizer.h (vect_is_simple_use): Remove unused parameters.
8460         (vect_is_simple_use_1): Likewise.  Make overload of vect_is_simple_use.
8461         (vect_get_vec_def_for_operand): Remove unused parameter.
8462         * tree-vect-loop.c (get_initial_def_for_induction): Adjust.
8463         (vect_create_epilog_for_reduction): Likewise.
8464         (vectorizable_reduction): Likewise.
8465         (vectorizable_live_operation): Likewise.
8466         * tree-vect-patterns.c (type_conversion_p): Likewise.
8467         (vect_recog_vector_vector_shift_pattern): Likewise.
8468         (check_bool_pattern): Likewise.
8469         * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
8470         (vect_analyze_slp_cost_1): Likewise.
8471         * tree-vect-stmts.c (process_use): Likewise.
8472         (vect_get_vec_def_for_operand): Do not handle reductions.
8473         (vect_get_vec_defs): Adjust.
8474         (vectorizable_mask_load_store): Likewise.
8475         (vectorizable_call): Likewise.
8476         (vectorizable_simd_clone_call): Likewise.
8477         (vect_get_loop_based_defs): Likewise.
8478         (vectorizable_conversion): Likewise.
8479         (vectorizable_assignment): Likewise.
8480         (vectorizable_shift): Likewise.
8481         (vectorizable_operation): Likewise.
8482         (vectorizable_store): Likewise.
8483         (vectorizable_load): Likewise.
8484         (vect_is_simple_cond): Likewise.
8485         (vectorizable_condition): Likewise.
8486         (vect_is_simple_use): Remove unused parameters.
8487         (vect_is_simple_use_1): Adjust and rename.
8488
8489 2015-10-14  Richard Biener  <rguenther@suse.de>
8490
8491         PR tree-optimization/67915
8492         * match.pd: Handle comparisons of addresses of STRING_CSTs.
8493         * gimplify.c (gimplify_cond_expr): Fold the GIMPLE conds we build.
8494         * tree-cfgcleanup.c (cleanup_control_expr_graph): Remove GENERIC
8495         stmt folding in favor of GIMPLE one.
8496
8497 2015-10-14  Marek Polacek  <polacek@redhat.com>
8498
8499         PR tree-optimization/67815
8500         * tree-ssa-reassoc.c (attempt_builtin_copysign): New function.
8501         (reassociate_bb): Call it.
8502
8503 2015-10-14  Richard Biener  <rguenther@suse.de>
8504
8505         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
8506         Reset info at start.
8507         (vect_analyze_group_access_1): Add debug print.
8508         * tree-vect-loop.c (vect_get_single_scalar_iteration_cost): Rename ...
8509         (vect_compute_single_scalar_iteration_cost): ... to this.
8510         (vect_analyze_loop_2): Adjust.
8511         * tree-vect-slp.c (struct _slp_oprnd_info): Move from ...
8512         * tree-vectorizer.h: ... here.
8513         (add_stmt_info_to_vec): Remove.
8514         * tree-vect-stmts.c (record_stmt_cost): Inline add_stmt_info_to_vec.
8515
8516 2015-10-14  Dominik Vogt  <vogt@linux.vnet.ibm.com>
8517
8518         * targhooks.c (default_target_option_pragma_parse): Do not warn if
8519         called on behalf of "#pragma GCC pop_options".
8520
8521 2015-10-14  Tom de Vries  <tom@codesourcery.com>
8522
8523         * cfganal.c (verify_no_unreachable_blocks): New function.
8524         (inverted_post_order_compute) [ENABLE_CHECKING]: Call
8525         verify_no_unreachable_blocks.
8526         cfganal.h (verify_no_unreachable_blocks): Declare.
8527
8528 2015-10-13  Mikhail Maltsev  <maltsevm@gmail.com>
8529
8530         * common.opt: Add flag_checking.
8531         * system.h (CHECKING_P): Define.
8532
8533 2015-10-13  Jakub Jelinek  <jakub@redhat.com>
8534             Aldy Hernandez  <aldyh@redhat.com>
8535             Ilya Verbin  <ilya.verbin@intel.com>
8536
8537         * builtin-types.def (BT_FN_BOOL_UINT_LONGPTR_LONGPTR_LONGPTR,
8538         BT_FN_BOOL_UINT_ULLPTR_ULLPTR_ULLPTR,
8539         BT_FN_BOOL_UINT_LONGPTR_LONG_LONGPTR_LONGPTR,
8540         BT_FN_BOOL_UINT_ULLPTR_ULL_ULLPTR_ULLPTR,
8541         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_UINT_PTR,
8542         BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR,
8543         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT,
8544         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_LONG_LONG_LONG,
8545         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_ULL_ULL_ULL,
8546         BT_FN_VOID_LONG_VAR, BT_FN_VOID_ULL_VAR): New.
8547         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR,
8548         BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR,
8549         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR): Remove.
8550         * cgraph.h (enum cgraph_simd_clone_arg_type): Add
8551         SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP,
8552         SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP and
8553         SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP.
8554         (struct cgraph_simd_clone_arg): Adjust comment.
8555         * coretypes.h (struct gomp_ordered): New forward decl.
8556         * gimple.c (gimple_build_omp_critical): Add CLAUSES argument,
8557         set critical clauses to it.
8558         (gimple_build_omp_ordered): Return gomp_ordered * instead of
8559         gimple *.  Add CLAUSES argument, set ordered clauses to it.
8560         (gimple_copy): Unshare clauses on GIMPLE_OMP_CRITICAL and
8561         GIMPLE_OMP_ORDERED.
8562         * gimple.def (GIMPLE_OMP_ORDERED): Change from GSS_OMP to
8563         GSS_OMP_SINGLE_LAYOUT, move it after GIMPLE_OMP_TEAMS.
8564         * gimple.h (enum gf_mask): Add GF_OMP_TASK_TASKLOOP.  Add another bit
8565         to GF_OMP_FOR_KIND_MASK mask. Add GF_OMP_FOR_KIND_TASKLOOP, renumber
8566         GF_OMP_FOR_KIND_CILKFOR and GF_OMP_FOR_KIND_OACC_LOOP.  Adjust
8567         GF_OMP_FOR_SIMD, GF_OMP_FOR_COMBINED and GF_OMP_FOR_COMBINED_INTO.
8568         Add another bit to GF_OMP_TARGET_KIND_MASK mask.  Add
8569         GF_OMP_TARGET_KIND_ENTER_DATA and GF_OMP_TARGET_KIND_EXIT_DATA,
8570         renumber
8571         GF_OMP_TARGET_KIND_OACC_{PARALLEL,KERNELS,DATA,UPDATE,ENTER_EXIT_DATA}.
8572         (gomp_critical): Add clauses field.
8573         (gomp_ordered): New struct.
8574         (is_a_helper <gomp_ordered *>::test): New inline.
8575         (gimple_build_omp_critical): Add CLAUSES argument.
8576         (gimple_build_omp_ordered): Likewise.  Return gomp_ordered *
8577         instead of gimple *.
8578         (gimple_omp_critical_clauses, gimple_omp_critical_clauses_ptr,
8579         gimple_omp_critical_set_clauses, gimple_omp_ordered_clauses,
8580         gimple_omp_ordered_clauses_ptr, gimple_omp_ordered_set_clauses,
8581         gimple_omp_task_taskloop_p, gimple_omp_task_set_taskloop_p): New
8582         inline functions.
8583         * gimple-pretty-print.c (dump_gimple_omp_for): Handle taskloop.
8584         (dump_gimple_omp_target): Handle enter data and exit data.
8585         (dump_gimple_omp_block): Don't handle GIMPLE_OMP_ORDERED here.
8586         (dump_gimple_omp_critical): Print clauses.
8587         (dump_gimple_omp_ordered): New function.
8588         (dump_gimple_omp_task): Handle taskloop.
8589         (pp_gimple_stmt_1): Use dump_gimple_omp_ordered for
8590         GIMPLE_OMP_ORDERED.
8591         * gimple-walk.c (walk_gimple_op): Walk clauses on
8592         GIMPLE_OMP_CRITICAL and GIMPLE_OMP_ORDERED.
8593         * gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP_0LEN_ARRAY.
8594         (enum omp_region_type): Add ORT_COMBINED_TARGET and ORT_NONE.
8595         (struct gimplify_omp_ctx): Add loop_iter_var,
8596         target_map_scalars_firstprivate, target_map_pointers_as_0len_arrays
8597         and target_firstprivatize_array_bases fields.
8598         (delete_omp_context): Release loop_iter_var.
8599         (gimplify_bind_expr): Handle ORT_NONE.
8600         (maybe_fold_stmt): Adjust check for ORT_TARGET for the addition of
8601         ORT_COMBINED_TARGET.
8602         (is_gimple_stmt): Return true for OMP_TASKLOOP, OMP_TEAMS and
8603         OMP_TARGET{,_DATA,_UPDATE,_ENTER_DATA,_EXIT_DATA}.
8604         (omp_firstprivatize_variable): Handle ORT_NONE.  Adjust check for
8605         ORT_TARGET for the addition of ORT_COMBINED_TARGET.  Handle
8606         ctx->target_map_scalars_firstprivate.
8607         (omp_add_variable): Handle ORT_NONE.  Allow map clause together with
8608         data sharing clauses.  For data sharing clause with VLA decl
8609         on omp target/target data don't add firstprivate for the pointer.
8610         Call omp_notice_variable on TYPE_SIZE_UNIT only if it is a DECL_P.
8611         (omp_notice_threadprivate_variable): Adjust check for ORT_TARGET for
8612         the addition of ORT_COMBINED_TARGET.
8613         (omp_notice_variable): Handle ORT_NONE.  Adjust check for ORT_TARGET
8614         for the addition of ORT_COMBINED_TARGET.  Handle implicit mapping of
8615         pointers as zero length array sections and
8616         ctx->target_map_scalars_firstprivate mapping of scalars as firstprivate
8617         data sharing.
8618         (omp_check_private): Handle omp_member_access_dummy_var vars.
8619         (find_decl_expr): New function.
8620         (gimplify_scan_omp_clauses): Add CODE argument.  For OMP_CLAUSE_IF
8621         complain if OMP_CLAUSE_IF_MODIFIER is present and does not match code.
8622         Handle OMP_CLAUSE_GANG separately.  Handle
8623         OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD,SIMDLEN}
8624         clauses.  Diagnose linear clause on combined
8625         distribute {, parallel for} simd construct, unless it is the loop
8626         iterator.  Handle struct element GOMP_MAP_FIRSTPRIVATE_POINTER.
8627         Handle map clauses with COMPONENT_REF.  Initialize
8628         ctx->target_map_scalars_firstprivate,
8629         ctx->target_firstprivatize_array_bases and
8630         ctx->target_map_pointers_as_0len_arrays.  Add firstprivate for
8631         linear clause even to target region if combined.  Remove
8632         map clauses with GOMP_MAP_FIRSTPRIVATE_POINTER kind from
8633         OMP_TARGET_{,ENTER_,EXIT_}DATA.  For GOMP_MAP_FIRSTPRIVATE_POINTER
8634         map kind with non-INTEGER_CST OMP_CLAUSE_SIZE firstprivatize the bias.
8635         Handle OMP_CLAUSE_DEPEND_{SINK,SOURCE}.  Handle
8636         OMP_CLAUSE_{{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}.
8637         For linear clause on worksharing loop combined with parallel add
8638         shared clause on the parallel.  Handle OMP_CLAUSE_REDUCTION
8639         with MEM_REF OMP_CLAUSE_DECL.  Set DECL_NAME on
8640         omp_member_access_dummy_var vars.  Add lastprivate clause to outer
8641         taskloop if needed.
8642         (gimplify_adjust_omp_clauses_1): Handle GOVD_MAP_0LEN_ARRAY.
8643         If gimplify_omp_ctxp->target_firstprivatize_array_bases, use
8644         GOMP_MAP_FIRSTPRIVATE_POINTER map kind instead of
8645         GOMP_MAP_POINTER.
8646         (gimplify_adjust_omp_clauses): Add CODE argument.  Handle removal
8647         of GOMP_MAP_FIRSTPRIVATE_POINTER struct elements for struct not seen
8648         in target body.  Handle removal of struct mapping if struct is not
8649         seen in target body.  Remove GOMP_MAP_STRUCT map clause on
8650         OMP_TARGET_EXIT_DATA.  Adjust check for ORT_TARGET for the
8651         addition of ORT_COMBINED_TARGET.  Use GOMP_MAP_FIRSTPRIVATE_POINTER
8652         instead of GOMP_MAP_POINTER if ctx->target_firstprivatize_array_bases
8653         for VLAs.  Set OMP_CLAUSE_MAP_PRIVATE if both data sharing and map
8654         clause appear together.  Handle
8655         OMP_CLAUSE_{{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}.  Don't remove map
8656         clause if it has map-type-modifier always.  Handle
8657         OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD,SIMDLEN}
8658         clauses.
8659         (gimplify_oacc_cache, gimplify_omp_parallel, gimplify_omp_task):
8660         Adjust gimplify_scan_omp_clauses and gimplify_adjust_omp_clauses
8661         callers.
8662         (gimplify_omp_for): Likewise.  Handle OMP_TASKLOOP.  Initialize
8663         loop_iter_var.  Use OMP_FOR_ORIG_DECLS.  Fix handling of lastprivate
8664         iterators in doacross loops.
8665         (gimplify_omp_workshare): Adjust gimplify_scan_omp_clauses and
8666         gimplify_adjust_omp_clauses callers.  Use ORT_COMBINED_TARGET
8667         for OMP_TARGET_COMBINED.  Adjust check for ORT_TARGET
8668         for the addition of ORT_COMBINED_TARGET.
8669         (gimplify_omp_target_update): Adjust gimplify_scan_omp_clauses and
8670         gimplify_adjust_omp_clauses callers.  Handle OMP_TARGET_ENTER_DATA
8671         and OMP_TARGET_EXIT_DATA.
8672         (gimplify_omp_ordered): New function.
8673         (gimplify_expr): Handle OMP_TASKLOOP, OMP_TARGET_ENTER_DATA and
8674         OMP_TARGET_EXIT_DATA.  Use gimplify_omp_ordered for OMP_ORDERED.
8675         Gimplify clauses on OMP_CRITICAL.
8676         * internal-fn.c (expand_GOMP_SIMD_ORDERED_START,
8677         expand_GOMP_SIMD_ORDERED_END): New functions.
8678         * internal-fn.def (GOMP_SIMD_ORDERED_START,
8679         GOMP_SIMD_ORDERED_END): New internal functions.
8680         * omp-builtins.def (BUILT_IN_GOMP_LOOP_DOACROSS_STATIC_START,
8681         BUILT_IN_GOMP_LOOP_DOACROSS_DYNAMIC_START,
8682         BUILT_IN_GOMP_LOOP_DOACROSS_GUIDED_START,
8683         BUILT_IN_GOMP_LOOP_DOACROSS_RUNTIME_START,
8684         BUILT_IN_GOMP_LOOP_ULL_DOACROSS_STATIC_START,
8685         BUILT_IN_GOMP_LOOP_ULL_DOACROSS_DYNAMIC_START,
8686         BUILT_IN_GOMP_LOOP_ULL_DOACROSS_GUIDED_START,
8687         BUILT_IN_GOMP_LOOP_ULL_DOACROSS_RUNTIME_START,
8688         BUILT_IN_GOMP_DOACROSS_POST, BUILT_IN_GOMP_DOACROSS_WAIT,
8689         BUILT_IN_GOMP_DOACROSS_ULL_POST, BUILT_IN_GOMP_DOACROSS_ULL_WAIT,
8690         BUILT_IN_GOMP_TARGET_ENTER_EXIT_DATA, BUILT_IN_GOMP_TASKLOOP,
8691         BUILT_IN_GOMP_TASKLOOP_ULL): New built-ins.
8692         (BUILT_IN_GOMP_TASK): Add INT argument to the end.
8693         (BUILT_IN_GOMP_TARGET): Rename from GOMP_target to GOMP_target_41,
8694         adjust type.
8695         (BUILT_IN_GOMP_TARGET_DATA): Rename from GOMP_target_data to
8696         GOMP_target_data_41, adjust type.
8697         (BUILT_IN_GOMP_TARGET_UPDATE): Rename from GOMP_target_update to
8698         GOMP_target_update_41, adjust type.
8699         * omp-low.c (struct omp_region): Adjust comments, add ord_stmt
8700         field.
8701         (struct omp_for_data): Add ordered and simd_schedule fields.
8702         (omp_member_access_dummy_var, unshare_and_remap_1,
8703         unshare_and_remap, is_taskloop_ctx): New functions.
8704         (is_taskreg_ctx): Use is_parallel_ctx and is_task_ctx.
8705         (extract_omp_for_data): Handle taskloops and doacross loops
8706         and simd schedule modifier.
8707         (omp_adjust_chunk_size): New function.
8708         (get_ws_args_for): Use it.
8709         (lookup_sfield): Change first argument to splay_tree_key,
8710         add overload with first argument tree.
8711         (maybe_lookup_field): Likewise.
8712         (use_pointer_for_field): Handle omp_member_access_dummy_var.
8713         (omp_copy_decl_2): If var is TREE_ADDRESSABLE listed in
8714         task_shared_vars, clear TREE_ADDRESSABLE on the copy.
8715         (build_outer_var_ref): Add LASTPRIVATE argument, handle
8716         taskloops and omp_member_access_dummy_var vars.
8717         (build_sender_ref): Change first argument to splay_tree_key,
8718         add overload with first argument tree.
8719         (install_var_field): For mask & 8 use &DECL_UID as key instead
8720         of the tree itself.
8721         (fixup_child_record_type): Const qualify *.omp_data_i.
8722         (scan_sharing_clauses): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE,
8723         C/C++ array reductions, OMP_CLAUSE_{IS,USE}_DEVICE_PTR clauses,
8724         OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,SIMDLEN,THREADS,SIMD} and
8725         OMP_CLAUSE_{NOGROUP,DEFAULTMAP} clauses, OMP_CLAUSE__LOOPTEMP_ clause
8726         on taskloop, GOMP_MAP_FIRSTPRIVATE_POINTER, OMP_CLAUSE_MAP_PRIVATE.
8727         (create_omp_child_function): Set TREE_READONLY on .omp_data_i.
8728         (find_combined_for): Allow searching for different GIMPLE_OMP_FOR
8729         kinds.
8730         (add_taskreg_looptemp_clauses): New function.
8731         (scan_omp_parallel): Use it.
8732         (scan_omp_task): Likewise.
8733         (finish_taskreg_scan): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.
8734         For taskloop, move fields for the first two _LOOPTEMP_ clauses first.
8735         (check_omp_nesting_restrictions): Handle GF_OMP_TARGET_KIND_ENTER_DATA
8736         and GF_OMP_TARGET_KIND_EXIT_DATA.  Formatting fixes.  Allow the
8737         sandwiched taskloop constructs.  Type check
8738         OMP_CLAUSE_DEPEND_{KIND,SOURCE}.  Allow ordered simd inside of simd
8739         region.  Diagnose depend(source) or depend(sink:...) on
8740         target constructs or task/taskloop.
8741         (handle_simd_reference): Use get_name.
8742         (lower_rec_input_clauses): Likewise.  Ignore all
8743         OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE clauses on taskloop construct.
8744         Allow _LOOPTEMP_ clause on GOMP_TASK.  Unshare new_var
8745         before passing it to omp_clause_{default,copy}_ctor.  Handle
8746         OMP_CLAUSE_REDUCTION with MEM_REF OMP_CLAUSE_DECL.  Set
8747         lastprivate_firstprivate flag for linear that needs copyin and
8748         copyout.  Use BUILT_IN_ALLOCA_WITH_ALIGN instead of BUILT_IN_ALLOCA.
8749         (lower_lastprivate_clauses): For OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE
8750         on taskloop lookup decl in outer context.  Pass true to
8751         build_outer_var_ref lastprivate argument.  Handle
8752         OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV lastprivate if the decl is global
8753         outside of outer taskloop for.
8754         (lower_reduction_clauses): Handle OMP_CLAUSE_REDUCTION with MEM_REF
8755         OMP_CLAUSE_DECL.
8756         (lower_send_clauses): Ignore first two _LOOPTEMP_ clauses in taskloop
8757         GOMP_TASK.  Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.  Handle
8758         omp_member_access_dummy_var vars.  Handle OMP_CLAUSE_REDUCTION
8759         with MEM_REF OMP_CLAUSE_DECL.  Use new lookup_sfield overload.
8760         (lower_send_shared_vars): Ignore fields with NULL or FIELD_DECL
8761         abstract origin.  Handle omp_member_access_dummy_var vars.
8762         (expand_parallel_call): Use expand_omp_build_assign.
8763         (expand_task_call): Handle taskloop construct expansion.  Add
8764         REGION argument.  Use GOMP_TASK_* defines instead of hardcoded
8765         integers.  Add priority argument to GOMP_task* calls.  Or in
8766         GOMP_TASK_FLAG_PRIORITY into flags if priority is present for
8767         GOMP_task call.
8768         (expand_omp_build_assign): Add prototype.  Add AFTER
8769         argument, if true emit statements after *GSI_P and continue linking.
8770         (expand_omp_taskreg): Adjust expand_task_call caller.
8771         (expand_omp_for_init_counts): Rename zero_iter_bb argument to
8772         zero_iter1_bb and first_zero_iter to first_zero_iter1, add
8773         zero_iter2_bb and first_zero_iter2 arguments, handle computation
8774         of counts even for ordered loops.
8775         (expand_omp_for_init_vars): Handle GOMP_TASK inner_stmt.
8776         (expand_omp_ordered_source, expand_omp_ordered_sink,
8777         expand_omp_ordered_source_sink, expand_omp_for_ordered_loops): New
8778         functions.
8779         (expand_omp_for_generic): Use omp_adjust_chunk_size.  Handle linear
8780         clauses on worksharing loop.  Handle DOACROSS loop expansion.
8781         (expand_omp_for_static_nochunk): Handle linear clauses on
8782         worksharing loop.  Adjust expand_omp_for_init_counts
8783         callers.
8784         (expand_omp_for_static_chunk): Likewise.  Use omp_adjust_chunk_size.
8785         (expand_omp_simd): Handle addressable fd->loop.v.  Adjust
8786         expand_omp_for_init_counts callers.
8787         (expand_omp_taskloop_for_outer, expand_omp_taskloop_for_inner): New
8788         functions.
8789         (expand_omp_for): Call expand_omp_taskloop_for_* for taskloop.
8790         Handle doacross loops.
8791         (expand_omp_target): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
8792         GF_OMP_TARGET_KIND_EXIT_DATA.  Pass flags and depend arguments to
8793         GOMP_target_{41,update_41,enter_exit_data} libcalls.
8794         (expand_omp): Don't expand ordered depend constructs here, record
8795         ord_stmt instead for later expand_omp_for_generic.
8796         (build_omp_regions_1): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
8797         GF_OMP_TARGET_KIND_EXIT_DATA.  Treat GIMPLE_OMP_ORDERED with depend
8798         clause as stand-alone directive.
8799         (lower_omp_ordered_clauses): New function.
8800         (lower_omp_ordered): Handle OMP_CLAUSE_SIMD, for OMP_CLAUSE_DEPEND
8801         don't lower anything.
8802         (lower_omp_for_lastprivate): Use last _looptemp_ clause
8803         on taskloop for comparison.
8804         (lower_omp_for): Handle taskloop constructs.  Adjust OMP_CLAUSE_DECL
8805         and OMP_CLAUSE_LINEAR_STEP so that expand_omp_for_* can use it during
8806         expansion for linear adjustments.
8807         (create_task_copyfn): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.
8808         (lower_depend_clauses): Assert not seeing sink/source depend kinds.
8809         Set TREE_ADDRESSABLE on array.  Change first argument from gimple *
8810         to tree * pointing to the stmt's clauses.
8811         (lower_omp_taskreg): Adjust lower_depend_clauses caller.
8812         (lower_omp_target): Handle GF_OMP_TARGET_KIND_ENTER_DATA
8813         and GF_OMP_TARGET_KIND_EXIT_DATA, depend clauses,
8814         GOMP_MAP_{RELEASE,ALWAYS_{TO,FROM,TOFROM},FIRSTPRIVATE_POINTER,STRUCT}
8815         map kinds, OMP_CLAUSE_{FIRSTPRIVATE,PRIVATE,{IS,USE}_DEVICE_PTR
8816         clauses.  Always use short kind and 8-bit align shift.
8817         (lower_omp_regimplify_p): Use IS_TYPE_OR_DECL_P macro.
8818         (struct lower_omp_regimplify_operands_data): New type.
8819         (lower_omp_regimplify_operands_p, lower_omp_regimplify_operands):
8820         New functions.
8821         (lower_omp_1): Use lower_omp_regimplify_operands instead of
8822         gimple_regimplify_operands.
8823         (make_gimple_omp_edges): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
8824         GF_OMP_TARGET_KIND_EXIT_DATA.  Treat GIMPLE_OMP_ORDERED with depend
8825         clause as stand-alone directive.
8826         (simd_clone_clauses_extract): Honor OMP_CLAUSE_LINEAR_KIND.
8827         (simd_clone_mangle): Mangle the various linear kinds
8828         per the new ABI.
8829         (simd_clone_adjust_argument_types): Handle
8830         SIMD_CLONE_ARG_TYPE_LINEAR_*_CONSTANT_STEP.
8831         (simd_clone_init_simd_arrays): Don't do anything for uval.
8832         (simd_clone_adjust): Handle
8833         SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
8834         SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP.
8835         Handle SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP.
8836         * omp-low.h (omp_member_access_dummy_var): New prototype.
8837         * passes.def (pass_simduid_cleanup): Schedule another copy of the
8838         pass after all optimizations.
8839         * tree.c (omp_clause_code_name): Add entries for
8840         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
8841         and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}.
8842         (omp_clause_num_ops): Likewise.  Bump number of OMP_CLAUSE_REDUCTION
8843         arguments to 5 and for OMP_CLAUSE_ORDERED to 1.
8844         (walk_tree_1): Adjust for OMP_CLAUSE_ORDERED having 1 argument and
8845         OMP_CLAUSE_REDUCTION 5 arguments.  Handle
8846         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
8847         and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}
8848         clauses.
8849         * tree-core.h (enum omp_clause_linear_kind): New.
8850         (struct tree_omp_clause): Change type of map_kind
8851         from unsigned char to unsigned int.  Add subcode.if_modifier
8852         and subcode.linear_kind fields.
8853         (enum omp_clause_code): Add
8854         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
8855         and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}.
8856         (OMP_CLAUSE_REDUCTION): Document
8857         OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER.
8858         (enum omp_clause_depend_kind): Add OMP_CLAUSE_DEPEND_{SOURCE,SINK}.
8859         * tree.def (OMP_FOR): Add OMP_FOR_ORIG_DECLS operand.
8860         (OMP_CRITICAL): Move before OMP_SINGLE.  Add OMP_CRITICAL_CLAUSES
8861         operand.
8862         (OMP_ORDERED): Move before OMP_SINGLE.  Add OMP_ORDERED_CLAUSES
8863         operand.
8864         (OMP_TASKLOOP, OMP_TARGET_ENTER_DATA, OMP_TARGET_EXIT_DATA): New tree
8865         codes.
8866         * tree.h (OMP_BODY): Replace OMP_CRITICAL with OMP_TASKGROUP.
8867         (OMP_CLAUSE_SET_MAP_KIND): Cast to unsigned int rather than unsigned
8868         char.
8869         (OMP_CRITICAL_NAME): Adjust to be 3rd operand instead of 2nd.
8870         (OMP_CLAUSE_NUM_TASKS_EXPR): Formatting fix.
8871         (OMP_STANDALONE_CLAUSES): Adjust to cover OMP_TARGET_{ENTER,EXIT}_DATA.
8872         (OMP_CLAUSE_DEPEND_SINK_NEGATIVE, OMP_TARGET_COMBINED,
8873         OMP_CLAUSE_MAP_PRIVATE, OMP_FOR_ORIG_DECLS, OMP_CLAUSE_IF_MODIFIER,
8874         OMP_CLAUSE_MAP_MAYBE_ZERO_LENGTH_ARRAY_SECTION, OMP_CRITICAL_CLAUSES,
8875         OMP_CLAUSE_PRIVATE_TASKLOOP_IV, OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV,
8876         OMP_CLAUSE_HINT_EXPR, OMP_CLAUSE_SCHEDULE_SIMD,
8877         OMP_CLAUSE_LINEAR_KIND, OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER,
8878         OMP_CLAUSE_SHARED_FIRSTPRIVATE, OMP_ORDERED_CLAUSES,
8879         OMP_TARGET_ENTER_DATA_CLAUSES, OMP_TARGET_EXIT_DATA_CLAUSES,
8880         OMP_CLAUSE_NUM_TASKS_EXPR, OMP_CLAUSE_GRAINSIZE_EXPR,
8881         OMP_CLAUSE_PRIORITY_EXPR, OMP_CLAUSE_ORDERED_EXPR): Define.
8882         * tree-inline.c (remap_gimple_stmt): Handle clauses on
8883         GIMPLE_OMP_ORDERED and GIMPLE_OMP_CRITICAL.  For
8884         IFN_GOMP_SIMD_ORDERED_{START,END} set has_simduid_loops.
8885         * tree-nested.c (convert_nonlocal_omp_clauses): Handle
8886         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,SIMDLEN,PRIORITY,SIMD}
8887         and OMP_CLAUSE_{GRAINSIZE,NUM_TASKS,HINT,NOGROUP,THREADS,DEFAULTMAP}
8888         clauses.  Handle OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER.
8889         (convert_local_omp_clauses): Likewise.
8890         * tree-pretty-print.c (dump_omp_clause): Handle
8891         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,SIMDLEN,PRIORITY,SIMD}
8892         and OMP_CLAUSE_{GRAINSIZE,NUM_TASKS,HINT,NOGROUP,THREADS,DEFAULTMAP}
8893         clauses.  Handle OMP_CLAUSE_IF_MODIFIER, OMP_CLAUSE_ORDERED_EXPR,
8894         OMP_CLAUSE_SCHEDULE_SIMD, OMP_CLAUSE_LINEAR_KIND,
8895         OMP_CLAUSE_DEPEND_{SOURCE,SINK}.  Use "delete" for
8896         GOMP_MAP_FORCE_DEALLOC.  Handle
8897         GOMP_MAP_{ALWAYS_{TO,FROM,TOFROM},RELEASE,FIRSTPRIVATE_POINTER,STRUCT}.
8898         (dump_generic_node): Handle OMP_TASKLOOP, OMP_TARGET_{ENTER,EXIT}_DATA
8899         and clauses on OMP_ORDERED and OMP_CRITICAL.
8900         * tree-vectorizer.c (adjust_simduid_builtins): Adjust comment.
8901         Remove IFN_GOMP_SIMD_ORDERED_{START,END}.
8902         (vectorize_loops): Adjust comments.
8903         (pass_simduid_cleanup::execute): Likewise.
8904         * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
8905         SIMD_CLONE_ARG_TYPE_LINEAR_{REF,VAL,UVAL}_CONSTANT_STEP.
8906         * wide-int.h (wi::gcd): New.
8907
8908 2015-10-13  Uros Bizjak  <ubizjak@gmail.com>
8909
8910         * config/i386/i386.c (classify_argument): Use CEIL where applicable.
8911         (ix86_function_arg_advance): Ditto.
8912         (ix86_function_arg): Ditto.
8913         (ix86_gimplify_va_arg): Ditto.
8914         (ix86_class_max_nregs): Ditto.
8915         (inline_memory_move_cost): Ditto.
8916         (ix86_set_reg_reg_cost): Ditto.
8917         * config/i386/i386.h (HARD_REGNO_NREGS): Ditto.
8918
8919 2015-10-13  Alexandre Oliva <aoliva@redhat.com>
8920
8921         PR middle-end/67912
8922         * expmed.c (store_bit_field_1): Adjust mode of BLKmode inputs.
8923
8924 2015-10-13  Uros Bizjak  <ubizjak@gmail.com>
8925
8926         * config/sparc/sparc.h (SPARC_STACK_ALIGN): Implement using
8927         ROUND_UP macro and UNITS_PER_WORD * 2.
8928         * config/sparc/sparc.c (sparc_compute_frame_size):
8929         Use ROUND_UP and ROUND_DOWN macros where applicable.
8930         (function_arg_record_value, function_arg_record_value_1)
8931         (function_arg_record_value_1): Ditto.
8932         (emit_save_or_restore_regs): Use ROUND_DOWN to preserve offset
8933         alignment to double-word.
8934         (sparc_gimplify_va_arg): Use ROUND_UP to calculate rsize.
8935         (sparc_emit_probe_stack_range): Use ROUND_DOWN to calculate
8936         rounded_size.
8937
8938 2015-10-13  Nikolai Bozhenov  <n.bozhenov@samsung.com>
8939
8940         * rtl.h (print_insn): Fix prototype.
8941
8942 2015-10-13  Tom de Vries  <tom@codesourcery.com>
8943
8944         * tree-parloops.c (reduction_phi): Handle cases that gimple_uid is 0 or
8945         -1.  Add assert that returned entry matches phi argument.
8946         (parallelize_loops): Move calls to init_stmt_vec_info_vec and
8947         free_stmt_vec_info_vec ...
8948         (gather_scalar_reductions): ... here.  Initialize gimple_uids of phis
8949         with -1.
8950
8951 2014-10-13  Yuri Rumyantsev  <ysrumyan@gmail.com>
8952
8953         PR tree-optimization/67909, 67947
8954         * tree-ssa-loop-unswitch.c (find_loop_guard): Add check that GUARD_EDGE
8955         really skip the inner loop.
8956
8957 2015-10-13  Jeff Law  <law@redhat.com>
8958
8959         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
8960         Allow single block jump threading paths.
8961
8962 2015-10-13  Tom de Vries  <tom@codesourcery.com>
8963
8964         PR tree-optimization/67476
8965         * doc/invoke.texi (@item parloops-schedule): New item.
8966         * params.def (PARAM_PARLOOPS_SCHEDULE): New DEFPARAMENUM5.
8967         * tree-parloops.c: Include params-enum.h.
8968         (create_parallel_loop): Handle PARAM_PARLOOPS_SCHEDULE.
8969
8970 2015-10-13  Tom de Vries  <tom@codesourcery.com>
8971
8972         * Makefile.in (PARAMS_H, PLUGIN_HEADERS): Add params-enum.h.
8973         * params-enum.h: New file.
8974         * opts.c (handle_param): Handle case that param arg is a string.
8975         * params-list.h: Handle DEFPARAMENUM5 in params.def.
8976         * params.c (find_param): New function, factored out of ...
8977         (set_param_value): ... here.
8978         (param_string_value_p): New function.
8979         * params.h (struct param_info): Add value_names field.
8980         (find_param, param_string_value_p): Declare.
8981
8982 2015-10-13  Tom de Vries  <tom@codesourcery.com>
8983
8984         PR tree-optimization/67476
8985         * omp-low.c (expand_omp_for_generic): Handle original loop tree.
8986
8987 2015-10-13  Richard Biener  <rguenther@suse.de>
8988
8989         * tree-vect-data-refs.c (vect_analyze_data_ref_dependences): Allocate
8990         the data dependence vector.
8991         (vect_peeling_hash_insert): Get the peeling hash table as argument.
8992         (vect_peeling_hash_get_lowest_cost): Likewise.
8993         (vect_enhance_data_refs_alignment): Adjust.
8994         (struct _vect_peel_info, struct _vect_peel_extended_info,
8995         struct peel_info_hasher): Move from ...
8996         * tree-vectorizer.h: ... here.
8997         (LOOP_VINFO_COST_MODEL_MIN_ITERS): Remove.
8998         (LOOP_VINFO_PEELING_HTAB): Likewise.
8999         (struct _loop_vec_info): Remove min_profitable_iters and
9000         peeling_htab members.
9001         * tree-vect-loop.c (new_loop_vec_info): Do not allocate vectors
9002         here.
9003         (destroy_loop_vec_info): Adjust.
9004         (vect_analyze_loop_2): Do not set LOOP_VINFO_COST_MODEL_MIN_ITERS.
9005         (vect_estimate_min_profitable_iters): Use LOOP_VINFO_COMP_ALIAS_DDRS
9006         to estimate alias versioning cost.
9007         * tree-vect-slp.c (vect_analyze_slp_cost): Dump header.
9008
9009 2015-10-13  Richard Sandiford  <richard.sandiford@arm.com>
9010
9011         * real.h (real_isinteger): Declare.
9012         * real.c (real_isinteger): New function.
9013         * match.pd: Simplify pow(|x|,y) and pow(-x,y) to pow(x,y)
9014         if y is an even integer.
9015
9016 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
9017
9018         revert:
9019         2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
9020         * cgraphbuild.c (compute_call_stmt_bb_frequency): Use
9021         counts when these are more informative.
9022
9023 2015-10-12  Jeff Law  <law@redhat.com>
9024
9025         * tree-ssa-threadbackward.c (get_gimple_control_stmt): New function.
9026         (fsm_find_control_stmt_paths): Change name of first argument to
9027         more accurately relfect what it really is.  Handle simplification
9028         of GIMPLE_COND after finding a thread path for NAME.
9029         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Allow
9030         nontrivial conditions to be handled by FSM threader.
9031         (thread_through_normal_block): Extract the name to looup via
9032         FSM threader from COND_EXPR.
9033
9034         * tree-ssa-threadbackward.c (fsm_find_thread_path): Remove
9035         restriction that traced SSA_NAME is a user variable.
9036
9037 2015-10-12  Tom de Vries  <tom@codesourcery.com>
9038
9039         PR tree-optimization/67476
9040         * omp-low.c (expand_omp_for_generic): Add missing phis.
9041
9042 2015-10-12  Tom de Vries  <tom@codesourcery.com>
9043
9044         PR tree-optimization/67476
9045         * omp-low.c (expand_omp_for_generic): Handle simple latch.
9046
9047 2015-10-12  Christophe Lyon  <christophe.lyon@linaro.org>
9048
9049         * config/aarch64/aarch64-simd-builtins.def: Update builtins
9050         tables: add tbl3 and tbx4.
9051         * config/aarch64/aarch64-simd.md (aarch64_tbl3v8qi): New.
9052         (aarch64_tbx4v8qi): New.
9053         * config/aarch64/arm_neon.h (vtbl3_s8, vtbl3_u8, vtbl3_p8)
9054         (vtbl4_s8, vtbl4_u8, vtbl4_p8, vtbx4_s8, vtbx4_u8, vtbx4_p8):
9055         Rewrite using builtin functions.
9056         * config/aarch64/iterators.md (UNSPEC_TBX): New.
9057
9058 2015-10-12  Uros Bizjak  <ubizjak@gmail.com>
9059
9060         * config/rs6000/rs6000.h (RS6000_ALIGN): Implement using
9061         ROUND_UP macro.
9062         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
9063         Use ROUND_UP and ROUND_DOWN macros where applicable.
9064         (rs6000_darwin64_record_arg_flush): Ditto.
9065         (rs6000_function_arg): Use ROUND_UP to calculate align_words.
9066         (rs6000_emit_probe_stack_range): Use ROUND_DOWN to calculate
9067         rounded_size.
9068
9069 2015-10-12  Uros Bizjak  <ubizjak@gmail.com>
9070
9071         * config/aarch/aarch64.h (AARCH64_ROUND_UP): Remove.
9072         (AARCH64_ROUND_DOWN): Ditto.
9073         * config/aarch64/aarch64.c: Use ROUND_UP instead of AARCH64_ROUND_UP.
9074
9075 2015-10-12  Richard Biener  <rguenther@suse.de>
9076
9077         PR ipa/67783
9078         * ipa-inline-analysis.c (estimate_function_body_sizes): Re-add
9079         code that analyzes IVs on each stmt but in a cheaper way avoiding
9080         quadratic behavior.
9081
9082 2015-10-12  Nick Clifton  <nickc@redhat.com>
9083
9084         * config/msp430/msp430.c (msp430_mcu_names): Rename to
9085         msp430_mcu_data, add fields for ISA and hardware multiply
9086         support.  Import latest data from the devices.csv file.
9087         (msp430_override_option): Use the data from the new array.
9088         (msp430_use_f5_series_hwmult): Likewise.
9089         (use_32bit_hwmult): Likewise.
9090         (msp430_no_hwmult): Likewise.
9091         * config/msp430/t-msp430 (MULTILIB_MATCHES): Add matches for new
9092         MCU names.
9093         * doc/invoke.texi (MSP430 Options): Note that if the MCU name is
9094         not recognised then no hardware multiply support is assumed and
9095         that only the MSP430 ISA is allowed.
9096
9097 2015-10-12  Richard Biener  <rguenther@suse.de>
9098
9099         * tree-vect-loop.c (vect_analyze_loop_operations): Move cost
9100         related code ...
9101         (vect_analyze_loop_2): ... here.
9102
9103 2015-10-11  Jason Merrill  <jason@redhat.com>
9104
9105         PR c++/67557
9106         * expr.c (store_field): Call store_constructor directly when
9107         storing a CONSTRUCTOR into a target smaller than its type.
9108         Guard against unsafe bitwise copy.
9109
9110 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
9111
9112         * cgraphbuild.c (compute_call_stmt_bb_frequency): Use
9113         counts when these are more informative.
9114
9115 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
9116
9117         * tree-profile.c (tree_profiling): Do not clear
9118         pure/const when not instrumenting.
9119         (pass tree_profile): Add dump of symtab.
9120
9121 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
9122
9123         * fold-const.c (fold_comparsion): Pass OEP_ADDRESS_OF when comparing
9124         addresses.
9125         (fold_addr_of_array_ref_difference): Likewise.
9126
9127 2015-10-11  Jeff Law  <law@redhat.com>
9128
9129         * tree-ssa-threadedge.c (fsm_find_thread_path): Moved from here into
9130         tree-ssa-threadbackward.c.
9131         (fsm_find_control_statement_thread_paths): Likewise.
9132         (thread_through_normal_block): Break out FSM bits and move them
9133         into a new function in tree-ssa-threadbackward.c.  Call new function
9134         instead.
9135         Minimize header file usage.
9136         * tree-ssa-threadbackward.h: New file.
9137         * tree-ssa-threadbackward.c: Likewise.
9138         * Makefile.in (OBJS): Add tree-ssa-threadbackward.o
9139
9140 2015-10-11  Uros Bizjak  <ubizjak@gmail.com>
9141
9142         * config/alpha/alpha.h (ALPHA_ROUND): Implement using ROUND_UP macro.
9143
9144 2015-10-11  Segher Boessenkool  <segher@kernel.crashing.org>
9145
9146         PR rtl-optimization/67864
9147         * bb-reorder (reorder_basic_blocks_simple): Prefer existing
9148         fallthrough edges for conditional jumps.  Don't sort candidate
9149         edges if not optimizing for speed.
9150
9151 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9152
9153         * defaults.h (REVERSE_CONDITION): New default definition.
9154         * jump.c (reversed_comparison_code_parts): Adjust.
9155
9156 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9157
9158         * builtins.c (expand_builtin_setjmp_receiver): Don't use #if to
9159         check HARD_FRAME_POINTER_IS_ARG_POINTER.
9160
9161 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9162
9163         * defaults.h (FRAME_ADDR_RTX): New default definition.
9164         * builtins.c (expand_builtin_return_addr): Adjust.
9165
9166 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9167
9168         * defaults.h (DYNAMIC_CHAIN_ADDRESS): New default definition.
9169         * builtins.c (expand_builtin_return_addr): Adjust.
9170
9171 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9172
9173         * defaults.h (SETUP_FRAME_ADDRESSES): New default definition.
9174         * builtins.c (expand_builtin_return_addr): Adjust.
9175         * doc/tm.texi: Likewise.
9176         * doc/tm.texi.in: Likewise.
9177         * except.c (expand_builtin_unwind_init): Likewise.
9178
9179 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9180
9181         * builtins.c (expand_builtin_return_addr): Adjust.
9182         * defaults.h (INITIAL_FRAME_ADDRESS_RTX): New default definition.
9183
9184 2015-10-10  Jan Hubicka  <hubicka@ucw.cz>
9185
9186         * tree.c (type_with_interoperable_signedness): New.
9187         (gimple_canonical_types_compatible_p): Use it.
9188         * tree.h (type_with_interoperable_signedness): Declare
9189
9190 2015-10-10  Jan Hubicka  <hubicka@ucw.cz>
9191
9192         * fold-const.c (operand_equal_p): Document OEP_ADDRESS_OF
9193         and OEP_CONSTANT_ADDRESS_OF; skip type compatibility checks
9194         when OEP_ADDRESS_OF is se.
9195
9196 2015-10-10  Aditya Kumar  <aditya.k7@samsung.com>
9197             Sebastian Pop  <s.pop@samsung.com>
9198
9199         * graphite-dependences.c (scop_get_dependences): Add dump of the
9200         data dependence graph.
9201         * graphite-poly.c (print_isl_union_map): New.
9202         (debug_isl_union_map): New.
9203         * graphite-poly.h (print_isl_union_map): Declare.
9204         (debug_isl_union_map): Declare.
9205
9206 2015-10-10  Aditya Kumar  <aditya.k7@samsung.com>
9207             Sebastian Pop  <s.pop@samsung.com>
9208
9209         * graphite-poly.c (print_iteration_domain): Remove verbosity.
9210         Remove OpenScop formatting.
9211         (print_iteration_domains): Same.
9212         (debug_iteration_domain): Same.
9213         (debug_iteration_domains): Same.
9214         (print_pdr): Same.
9215         (debug_pdr): Same.
9216         (dump_gbb_cases): Same.
9217         (dump_gbb_conditions): Same.
9218         (print_pdrs): Same.
9219         (debug_pdrs): Same.
9220         (print_pbb_body): Same.
9221         (print_pbb): Same.
9222         (print_scop_params): Same.
9223         (print_scop_context): Same.
9224         (print_scop): Same.
9225         (debug_pbb_domain): Same.
9226         (debug_pbb): Same.
9227         (debug_scop_context): Same.
9228         (debug_scop): Same.
9229         (debug_scop_params): Same.
9230         * graphite-poly.h: Same.
9231         * graphite.c (graphite_transform_loops): Same.
9232
9233 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9234
9235         * function.c (stack_protect_epilogue): Remove as_a<rtx_insn *> ()
9236         call that isn't needed.
9237
9238 2015-10-09  Jeff Law  <law@redhat.com>
9239
9240         * tree-ssanames.c (flush_ssaname_freelist): Use splice and truncate
9241         rather than moving each name to the freelist individually.
9242
9243 2015-10-09  Steve Ellcey  <sellcey@imgtec.com>
9244
9245         * config.gcc (mips*-*-*): Add frame-header-opt.o to extra_objs.
9246         * frame-header-opt.c: New file.
9247         * config/mips/mips-proto.h (mips_register_frame_header_opt):
9248         Add prototype.
9249         * config/mips/mips.c (mips_compute_frame_info): Check
9250         optimize_call_stack flag.
9251         (mips_option_override): Register new frame_header_opt pass.
9252         (mips_frame_info, mips_int_mask, mips_shadow_set,
9253         machine_function): Move these types to...
9254         * config/mips/mips.h: here.
9255         (machine_function): Add does_not_use_frame_header and
9256         optimize_call_stack fields.
9257         * config/mips/t-mips (frame-header-opt.o): Add new make rule.
9258         * doc/invoke.texi (-mframe-header-opt, -mno-frame-header-opt):
9259         Document new flags.
9260         * config/mips/mips.opt (mframe-header-opt): Add new option.
9261
9262 2015-10-09  Uros Bizjak  <ubizjak@gmail.com>
9263
9264         * config/i386/i386.c
9265         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Use
9266         ROUND_DOWN where applicable.
9267
9268 2015-10-09  Jeff Law  <law@redhat.com>
9269
9270         * tree-vect-stmts.c (free_stmt_vec_info): Free the LHS of the
9271         correct statement.
9272
9273 2015-10-09  Renlin Li  <renlin.li@arm.com>
9274
9275         * config/arm/neon.md (neon_vuzp<mode>_insn): Add & modifier for
9276         operands[0] and operands[2].
9277         (neon_vtrn<mode>_insn): Likewise.
9278         (neon_vzip<mode>_insn): Likewise.
9279
9280 2015-10-09  Andre Vieira  <andre.simoesdiasvieira@arm.com>
9281
9282         * match.pd: ((X inner_op C0) outer_op C1) New pattern.
9283         ((X & C2) << C1): Expand to...
9284         (X {&,^,|} C2 << C1): ...This.
9285         ((X & C2) >> C1): Expand to...
9286         (X {&,^,|} C2 >> C1): ...This.
9287
9288 2015-10-09  Alexander Fomin  <alexander.fomin@intel.com>
9289
9290         PR target/67895
9291         * config/i386/sse.md (define_insn "sse_cvtsi2ss<round_name>"):
9292         Adjust embedded rounding/SAE specifier position.
9293         (define_insn "sse_cvtsi2ssq<round_name>"): Likewise.
9294         (define_insn "cvtusi2<ssescalarmodesuffix>32<round_name>"): Likewise.
9295         (define_insn "cvtusi2<ssescalarmodesuffix>64<round_name>"): Likewise.
9296         (define_insn "sse2_cvtsi2sdq<round_name>"): Likewise.
9297         (define_insn "avx512dq_rangep<mode><mask_name><round_saeonly_name>"):
9298         Likewise.
9299         (define_insn "avx512dq_ranges<mode><round_saeonly_name>"): Likewise.
9300
9301 2015-10-09  Martin Jambor  <mjambor@suse.cz>
9302
9303         tree-optimization/67794
9304         * tree-sra.c (replace_removed_params_ssa_names): Do not distinguish
9305         between types of state,ents but accept original definitions as a
9306         parameter.
9307         (ipa_sra_modify_function_body): Use FOR_EACH_SSA_DEF_OPERAND to
9308         iterate over definitions.
9309
9310 2015-10-09  James Norris  <jnorris@codesourcery.com>
9311
9312         * config/rs6000/rs6000.c (rs6000_offload_options): New.
9313         (TARGET_OFFLOAD_OPTIONS): New.
9314
9315 2015-10-09  Alexandre Oliva <aoliva@redhat.com>
9316
9317         PR middle-end/67891
9318         * cfgexpand.c (set_parm_rtl): Drop is_gimple_reg test.
9319
9320         PR middle-end/67766
9321         * function.c (expand_function_end): Move return value
9322         promotion past the handling of PARALLELs and CONCATs.
9323
9324         PR rtl-optimization/67828
9325         * tree-ssa-loop-unswitch.c: Include tree-ssa.h.
9326         (tree_may_unswitch_on): Don't unswitch on expressions
9327         involving undefined values.
9328
9329 2015-10-09  Richard Biener  <rguenther@suse.de>
9330
9331         * genmatch.c (print_operand): Fix formatting.
9332         (dt_node::append_simplify): Warn for multiple simplifiers
9333         that match the same pattern.
9334         * match.pd (log (exp @0)): Remove duplicates.
9335
9336 2015-10-09  Richard Biener  <rguenth@suse.de>
9337
9338         PR target/67366
9339         * gimple-fold.c (optabs-query.h): Include
9340         (gimple_fold_builtin_memory_op): Allow unaligned stores
9341         when movmisalign_optabs are available.
9342
9343 2015-10-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9344
9345         PR target/67366
9346         * config/arm/arm.md (movmisalign<mode>): New.
9347         * config/arm/iterators.md (HSI): New.
9348
9349 2015-10-09  Richard Biener  <rguenther@suse.de>
9350
9351         PR tree-optimization/67891
9352         * gimple-match.h (gimple_simplified_result_is_gimple_val):
9353         New helper.
9354         (gimple_resimplify1): Declare.
9355         (gimple_resimplify2): Likewise.
9356         (gimple_resimplify3): Likewise.
9357         * gimple-match-head.c (gimple_resimplify1): Export.
9358         (gimple_resimplify2): Likewise.
9359         (gimple_resimplify3): Likewise.
9360         (maybe_push_res_to_seq): Use gimple_simplified_result_is_gimple_val.
9361         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
9362         * tree-ssa-sccvn.c (visit_reference_op_load): Use gimple_resimplify1
9363         to avoid creating stmts without VN info.
9364
9365 2015-10-08  Jan Hubicka  <hubicka@ucw.cz>
9366
9367         * ipa-icf.c (sem_item::compare_symbol_references): Fix use
9368         of availability.
9369
9370 2015-10-08  Jeff Law  <law@redhat.com>
9371
9372         * value-prof.c (gimple_ic): Add missing calls to unlink_stmt_vdef
9373         and release_ssa_name in two places.
9374         (gimple_stringop_fixed_value): Similarly.
9375
9376         * tree-ssa-loop-im.c (rewrite_bittest): Add missing call to
9377         release_defs.
9378
9379         * tree-stdarg.c (expand_ifn_va_arg_1): Add missing call to
9380         unlink_stmt_vdef and release_ssa_name_fn.
9381
9382         * tree-ssa-dse.c (dse_optimize_stmt): Add missing call to
9383         release_defs.
9384
9385 2015-10-08  H.J. Lu  <hongjiu.lu@intel.com>
9386
9387         * config/i386/i386.c (ix86_compute_frame_layout): Round up the
9388         SSE register save area to 16 bytes only if the incoming stack
9389         boundary is no less than 16 bytes.
9390
9391 2015-10-08  Jeff Law  <law@redhat.com>
9392
9393         * tree-ssa-phiopt.c (factor_out_conversion): Add missing calls to
9394         release_ssa_name.  Fix typo in comment.
9395
9396 2015-10-08  Nathan Sidwell  <nathan@acm.org>
9397
9398         * config/nvptx/nvptx.h (struct machine_function): Add comment.
9399         * config/nvptx/nvptx.c (nvptx_declare_function_name): Functions
9400         may return pointer as well as in memory.
9401         (nvptx_output_return): Likewise.
9402
9403 2015-10-08  Richard Sandiford  <richard.sandiford@arm.com>
9404
9405         * builtins.c (fold_builtin_sqrt, fold_builtin_cbrt): Delete.
9406         (fold_builtin_1): Update accordingly.  Handle constant arguments here.
9407         * match.pd: Add rules previously handled by fold_builtin_sqrt
9408         and fold_builtin_cbrt.
9409
9410 2015-10-08  Richard Sandiford  <richard.sandiford@arm.com>
9411
9412         * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): New param.
9413         * doc/invoke.texi (--param max-ssa-name-query-depth): Document.
9414         * fold-const.h (tree_unary_nonnegative_warnv_p)
9415         (tree_single_nonnegative_warnv_p, tree_call_nonnegative_warnv_p)
9416         (tree_expr_nonnegative_warnv_p): Add depth parameters.
9417         * fold-const.c: Include gimple-fold.h and params.h.
9418         (tree_ssa_name_nonnegative_warnv_p): New function.
9419         (tree_unary_nonnegative_warnv_p, tree_binary_nonnegative_warnv_p)
9420         (tree_single_nonnegative_warnv_p, tree_call_nonnegative_warnv_p)
9421         (tree_invalid_nonnegative_warnv_p, tree_expr_nonnegative_warnv_p):
9422         Add a depth parameter and increment it for recursive calls to
9423         tree_expr_nonnegative_warnv_p.  Use tree_ssa_name_nonnegative_warnv_p
9424         to handle SSA names.
9425         * gimple-fold.h (gimple_val_nonnegative_real_p): Delete.
9426         (gimple_stmt_nonnegative_warnv_p): Declare.
9427         * tree-vrp.c (remove_range_assertions): Remove assert that condition
9428         cannot be proven false.
9429         (gimple_assign_nonnegative_warnv_p, gimple_call_nonnegative_warnv_p)
9430         (gimple_stmt_nonnegative_warnv_p): Move to...
9431         * gimple-fold.c: ...here.  Add depth parameters and pass them
9432         down to the tree routines.  Accept statements that aren't
9433         assignments or calls but just return false for them.
9434         (gimple_val_nonnegative_real_p): Delete.
9435         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
9436         tree_expr_nonnegative_p instead of gimple_val_nonnegative_real_p.
9437         Check HONOR_NANs first.
9438
9439 2015-10-08  Martin Jambor  <mjambor@suse.cz>
9440
9441         * ipa-cp.c (meet_with_1): Make the argument of abs signed.  Remove
9442         unnecessary MIN.
9443
9444 2015-10-08  Yuri Rumyantsev  <ysrumyan@gmail.com>
9445
9446         * tree-vect-loop.c (vect_analyze_loop_operations): Skip virtual phi
9447         in the tail of outer-loop.
9448
9449 2015-10-08  David Edelsohn  <dje.gcc@gmail.com>
9450
9451         * config/rs6000/rs6000.c (rs6000_xcoff_debug_unwind_info): Always
9452         return UI_NONE.
9453
9454 2015-10-08  Yuri Rumyantsev  <ysrumyan@gmail.com>
9455
9456         * tree-ssa-loop-unswitch.c: Include "gimple-iterator.h" and
9457         "cfghooks.h", add prototypes for introduced new functions.
9458         (tree_ssa_unswitch_loops): Use from innermost loop iterator, move all
9459         checks on ability of loop unswitching to tree_unswitch_single_loop;
9460         invoke tree_unswitch_single_loop or tree_unswitch_outer_loop depending
9461         on innermost loop check.
9462         (tree_unswitch_single_loop): Add all required checks on ability of
9463         loop unswitching under zero recursive level guard.
9464         (tree_unswitch_outer_loop): New function.
9465         (find_loop_guard): Likewise.
9466         (empty_bb_without_guard_p): Likewise.
9467         (used_outside_loop_p): Likewise.
9468         (get_vop_from_header): Likewise.
9469         (hoist_guard): Likewise.
9470         (check_exit_phi): Likewise.
9471
9472 2015-10-08  Marek Polacek  <polacek@redhat.com>
9473
9474         * tree-ssa-reassoc.c (dump_ops_vector): Print newline after each
9475         ops element.
9476
9477 2015-10-08  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9478
9479         PR c/65345
9480         * config/s390/s390.c (s390_atomic_assign_expand_fenv): Use
9481         create_tmp_var_raw instead of create_tmp_var.
9482
9483 2015-10-07  Jan Hubicka  <hubicka@ucw.cz>
9484
9485         * expr.c (store_expr_with_bounds): Handle aggregate moves from
9486         BLKmode.
9487         * gimple-expr.c (useless_type_conversion_p): Do not use TYPE_CANONICAL
9488         to define gimple type system; compare aggregates only by size.
9489
9490 2015-10-07  Jeff Law  <law@redhat.com>
9491
9492         * tree-ssa-dom.c (optimize_stmt): Don't set LOOPS_NEED_FIXUP here.
9493         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Do it
9494         here instead.  Tighten test to avoid setting LOOPS_NEED_FIXUP
9495         unnecessarily.
9496
9497 2015-10-07  Aditya Kumar  <aditya.k7@samsung.com>
9498             Sebastian Pop  <s.pop@samsung.com>
9499
9500         * graphite-dependences.c (scop_get_dependences): Do not use SCOP_BBS.
9501         * graphite-isl-ast-to-gimple.c (get_max_schedule_dimensions): Same.
9502         (generate_isl_schedule): Same.
9503         * graphite-optimize-isl.c (scop_get_domains): Same.
9504         (apply_schedule_map_to_scop): Same.
9505         * graphite-poly.c (print_iteration_domains): Same.
9506         (remove_gbbs_in_scop): Same.
9507         (new_scop): Same.
9508         (free_scop): Same.
9509         (print_scop): Same.
9510         * graphite-poly.h (struct scop): Rename bbs to pbbs.
9511         (SCOP_BBS): Remove.
9512         * graphite-scop-detection.c (compare_bb_depths): Remove.
9513         (graphite_sort_dominated_info): Remove.
9514         (try_generate_gimple_bb): Move out of scop_detection.
9515         (all_non_dominated_preds_marked_p): Remove.
9516         (build_scop_bbs_1): Remove.
9517         (build_scop_bbs): Remove.
9518         (nb_pbbs_in_loops): Do not use SCOP_BBS.
9519         (find_scop_parameters): Same.
9520         (sese_dom_walker): Rename gather_bbs.
9521         (before_dom_children): Call try_generate_gimple_bb and collect gbb
9522         and pbb.
9523         (build_scops): Call gather_bbs.
9524         * graphite-sese-to-poly.c (build_scop_scattering): Do not use SCOP_BBS.
9525         (add_conditions_to_constraints): Same.
9526         (build_scop_iteration_domain): Same.
9527         (build_scop_drs): Same.
9528         (new_pbb_from_pbb): Same.
9529         * sese.c (new_sese_info): Create bbs.
9530         * sese.h (struct sese_info_t): Add bbs.
9531
9532 2015-10-07  David Edelsohn  <dje.gcc@gmail.com>
9533
9534         * config/rs6000/xcoff.h (ASM_PREFERRED_EH_DATA_FORMAT): Use 64-bit
9535         encoding in 64-bit mode.
9536
9537 2015-10-07  Uros Bizjak  <ubizjak@gmail.com>
9538
9539         PR target/66697
9540         * config/i386/i386.c (ix86_option_override_internal): Always use
9541         8-byte minimum stack boundary in 64-bit mode.
9542         (ix86_compute_frame_layout): Remove assert on INCOMING_STACK_BOUNDARY.
9543         (ix86_emit_save_reg_using_mov): Support unaligned SSE store.
9544         Add a REG_CFA_EXPRESSION note if needed.
9545         (ix86_emit_restore_sse_regs_using_mov): Support unaligned SSE load.
9546         (ix86_handle_force_align_arg_pointer_attribute): New.
9547         (ix86_minimum_incoming_stack_boundary): Remove TARGET_64BIT check.
9548         (ix86_attribute_table): Set ix86_force_align_arg_pointer_string
9549         with ix86_handle_force_align_arg_pointer_attribute.
9550         * config/i386/i386.h (MIN_STACK_BOUNDARY): Set to BITS_PER_WORD.
9551
9552 2015-10-07  Aditya Kumar  <aditya.k7@samsung.com>
9553             Sebastian Pop  <s.pop@samsung.com>
9554
9555         * graphite-scop-detection.c (parameter_index_in_region): Remove
9556         use of SESE_ADD_PARAMS.
9557         (find_scop_parameters): Same.
9558         * sese.c (new_sese_info): Same.
9559         * sese.h (struct sese_info_t): Remove add_params.
9560         (SESE_ADD_PARAMS): Remove.
9561
9562 2015-10-07  Aditya Kumar  <aditya.k7@samsung.com>
9563             Sebastian Pop  <s.pop@samsung.com>
9564
9565         * graphite-isl-ast-to-gimple.c (translate_isl_ast_to_gimple): Use
9566         an sese_info_p.
9567         (copy_def): Same.
9568         (copy_internal_parameters): Same.
9569         (translate_isl_ast_to_gimple): Use an sese_l.
9570         (build_iv_mapping): Same.
9571         * graphite-poly.c (new_sese): Rename new_sese_info.
9572         (free_sese): Rename free_sese_info.
9573         * graphite-poly.h (struct scop): Use an sese_info_p.
9574         (scop_set_region): Same.
9575         * graphite-scop-detection.c (struct sese_l): Moved...
9576         (get_entry_bb): Moved...
9577         (get_exit_bb): Moved...
9578         (parameter_index_in_region_1): Use an sese_info_p.
9579         (parameter_index_in_region): Same.
9580         (scan_tree_for_params): Same.
9581         (find_params_in_bb): Same.
9582         (sese_dom_walker): Use an sese_l.
9583         * graphite-sese-to-poly.c (remove_invariant_phi): Same.
9584         (reduction_phi_p): Same.
9585         (parameter_index_in_region_1): Use an sese_info_p.
9586         (propagate_expr_outside_region): Use an sese_l.
9587         * graphite.c: Replace uses of SCOP_REGION.
9588         * sese.c (sese_record_loop): Use an sese_info_p.
9589         (build_sese_loop_nests): Same.
9590         (sese_build_liveouts_use): Same.
9591         (sese_build_liveouts_bb): Same.
9592         (sese_build_liveouts_bb): Same.
9593         (sese_bad_liveouts_use): Same.
9594         (sese_reset_debug_liveouts_bb): Same.
9595         (sese_build_liveouts): Same.
9596         (new_sese): Renamed new_sese_info.
9597         (free_sese): Renamed free_sese_info.
9598         (set_rename): Use an sese_info_p.
9599         (graphite_copy_stmts_from_block): Same.
9600         (copy_bb_and_scalar_dependences): Same.
9601         (outermost_loop_in_sese_1): Use an sese_l.
9602         (outermost_loop_in_sese): Same.
9603         (if_region_set_false_region): Use an sese_info_p.
9604         (move_sese_in_condition): Same.
9605         (scalar_evolution_in_region): Use an sese_l.
9606         * sese.h (struct sese_l): ... here.
9607         (SESE_ENTRY): Remove.
9608         (SESE_ENTRY_BB): Remove.
9609         (SESE_EXIT): Remove.
9610         (SESE_EXIT_BB): Remove.
9611         (sese_contains_loop): Use an sese_info_p.
9612         (sese_nb_params): Same.
9613         (bb_in_sese_p): Use an sese_l.
9614         (stmt_in_sese_p): Same.
9615         (defined_in_sese_p): Same.
9616         (loop_in_sese_p): Same.
9617         (sese_loop_depth): Same.
9618         (struct ifsese_s): Use an sese_info_p.
9619         (gbb_loop_at_index): Use an sese_l.
9620         (nb_common_loops): Same.
9621         (scev_analyzable_p): Same.
9622
9623 2015-10-07  H.J. Lu  <hongjiu.lu@intel.com>
9624
9625         * config/i386/i386.c (ix86_conditional_register_usage): Use
9626         CALL_USED_REGISTERS_MASK.
9627         * config/i386/i386.h (CALL_USED_REGISTERS_MASK): New macro.
9628
9629 2015-10-07  H.J. Lu  <hongjiu.lu@intel.com>
9630
9631         PR bootstrap/67385
9632         * configure.ac (gcc_cv_readelf): Check $READELF_FOR_TARGET.
9633         * configure: Regenerated.
9634
9635 2015-10-07  H.J. Lu  <hongjiu.lu@intel.com>
9636
9637         PR target/67850
9638         * config/i386/i386.c (ix86_maybe_switch_abi): Merged with ...
9639         (ix86_set_current_function): This.
9640         (TARGET_EXPAND_TO_RTL_HOOK): Removed.
9641
9642 2015-10-07  Richard Biener  <rguenther@suse.de>
9643
9644         * tree-vectorizer.h (stmt_vec_info_vec): Use vec<stmt_vec_info>.
9645         (vinfo_for_stmt): Adjust.
9646         (set_vinfo_for_stmt): Likewise.
9647         * tree-vectorizer.c (stmt_vec_info_vec): Likewise.
9648         * tree-vect-stmts.c (free_stmt_vec_info_vec): Likewise.
9649         * tree-vect-loop.c (new_loop_vec_info): Remove special-casing
9650         of inner loop.
9651         (vect_analyze_loop_1): Remove.
9652         (vect_analyze_loop_form_1): Avoid building a loop_vec_info for
9653         inner loop when vectorizing an outer loop by splitting out from ...
9654         (vect_analyze_loop_form): ... here.
9655
9656 2015-10-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9657
9658         PR c/65345
9659         * config/arm/arm-builtins.c (arm_atomic_assign_expand_fenv):
9660         Use create_tmp_var_raw instead of create_tmp_var.
9661
9662 2015-10-07  Richard Sandiford  <richard.sandiford@arm.com>
9663
9664         * real.h (dconst_quarter, dconst_sixth, dconst_ninth): New macros.
9665         (dconst_quarter_ptr, dconst_sixth_ptr, dconst_ninth_ptr): Declare.
9666         * real.c (CACHED_FRACTION): New helper macro.
9667         (dconst_third_ptr): Use it.
9668         (dconst_quarter_ptr, dconst_sixth_ptr, dconst_ninth_ptr): New.
9669         * builtins.c (fold_builtin_sqrt): Use dconst_quarter and
9670         dconst_sixth.
9671         (fold_builtin_cbrt): Use dconst_sixth and dconst_ninth.
9672
9673 2015-10-06  Jeff Law  <law@redhat.com>
9674
9675         PR tree-optimization/67816
9676         * tree-ssa-threadupdate.h (remove_jump_threads_including): Renamed
9677         from remove_jump_threads_starting_at.  Accept an edge rather than
9678         a basic block.
9679         * tree-ssa-threadupdate.c (removed_edges): New hash table.
9680         (remove_jump_threads_including): Note edges that get removed from
9681         the CFG for later pruning of jump threading paths including them.
9682         (thread_through_all_blocks): Remove paths which include edges that
9683         have been removed.
9684         * tree-ssa-dom.c (optimize_stmt): Call remove_jump_threads_including
9685         on each outgoing edges when optimizing away a control statement.
9686
9687 2015-10-06  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9688
9689         * reorg.c (emit_delay_sequence): Store list of delay slot insns
9690         in a vector instead of rtx_insn_list.
9691         (add_to_delay_list): Likewise.
9692         (delete_from_delay_slot): Likewise.
9693         (optimize_skip): Likewise.
9694         (redirect_with_delay_list_safe_p): Likewise.
9695         (check_annul_list_true_false): Likewise.
9696         (steal_delay_list_from_target): Likewise.
9697         (steal_delay_list_from_fallthrough): Likewise.
9698         (redundant_insn): Likewise.
9699         (fill_simple_delay_slots): Likewise.
9700         (fill_slots_from_thread): Likewise.
9701         (fill_eager_delay_slots): Likewise.
9702         (relax_delay_slots): Likewise.
9703
9704 2015-10-06  Sandra Loosemore  <sandra@codesourcery.com>
9705
9706         * config/nios2/nios2.c (nios2_symbol_ref_in_small_data_p):
9707         For -mgpopt=local, also exclude unintialized common symbols.
9708         * doc/invoke.texi (Nios II Options): Document the change.
9709
9710 2015-10-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
9711
9712         * config/aarch64/iterators.md (vwcore): Add missing cases for
9713          V4HF/V8HF modes.
9714
9715 2015-10-06  Aditya Kumar  <aditya.k7@samsung.com>
9716             Sebastian Pop  <s.pop@samsung.com>
9717
9718         * graphite-poly.c (new_scop): Initialize drs.
9719         * graphite-poly.h (struct dr_info): New.
9720         (struct scop): Add drs.
9721         * graphite-sese-to-poly.c (pdr_add_alias_set): Use dr_info.
9722         (pdr_add_memory_accesses): Same.
9723         (build_poly_dr): Same.
9724         (build_alias_set): Same.
9725         (build_scop_drs): Same.
9726         (build_pbb_drs): Remove.
9727         * tree-data-ref.c (create_data_ref): Do not initialize alias_set.
9728         * tree-data-ref.h (data_reference): Remove alias_set.
9729
9730 2015-10-06  Aditya Kumar  <aditya.k7@samsung.com>
9731             Sebastian Pop  <s.pop@samsung.com>
9732
9733         * graphite-poly.c (free_data_refs_aux): Remove.
9734         (free_gimple_poly_bb): Do not call free_data_refs_aux.
9735         * graphite-poly.h (struct base_alias_pair): Remove.
9736         * graphite-sese-to-poly.c (pdr_add_alias_set): Remove all uses of
9737         base_alias_pair and dr->aux.
9738         (build_alias_set): Same.
9739         * tree-data-ref.c (create_data_ref): Initialize alias_set.
9740         * tree-data-ref.h (data_reference): Add alias_set.
9741
9742 2015-10-06  Aditya Kumar  <aditya.k7@samsung.com>
9743             Sebastian Pop  <s.pop@samsung.com>
9744
9745         * graphite-poly.c (new_poly_dr): Remove dr_base_object_set.
9746         Do not set PDR_BASE_OBJECT_SET.
9747         * graphite-poly.h (poly_dr): Same.
9748         (PDR_BASE_OBJECT_SET): Remove.
9749         (new_poly_dr): Update decl.
9750         * graphite-sese-to-poly.c (build_poly_dr): Update call to
9751         new_poly_dr.
9752         (write_alias_graph_to_ascii_dimacs): Remove.
9753         (write_alias_graph_to_ascii_dot): Remove.
9754         (write_alias_graph_to_ascii_ecc): Remove.
9755         (dr_same_base_object_p): Remove.
9756         (build_alias_set_optimal_p): Rename build_alias_set.  Remove dead
9757         code.
9758         (build_base_obj_set_for_drs): Remove.
9759         (dump_alias_graphs): Remove.
9760         (build_scop_drs): Remove dead code.
9761
9762 2015-10-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
9763             Peter Bergner  <bergner@vnet.ibm.com>
9764
9765         PR target/67808
9766         * config/rs6000/rs6000.md (extenddftf2): In the expander, only
9767         allow registers, but provide insns for the combiner to create for
9768         loads from memory. Separate VSX code from non-VSX code. For
9769         non-VSX code, combine extenddftf2_fprs into extenddftf2 and rename
9770         externaldftf2_internal to externaldftf2_fprs. Reorder constraints
9771         so that registers come before memory operations. Drop support from
9772         converting DFmode to TFmode, if the DFmode value is in a GPR
9773         register.
9774         (extenddftf2_fprs): Likewise.
9775         (extenddftf2_internal): Likewise.
9776         (extenddftf2_vsx): Likewise.
9777         (extendsftf2): In the expander, only allow registers, but provide
9778         insns for the combiner to create for stores and loads.
9779
9780 2015-10-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9781
9782         * varasm.c (default_elf_asm_named_section): Remove ATTRIBUTE_UNUSED
9783         from the decl parameter.
9784
9785 2015-10-06  Nathan Sidwell  <nathan@codesourcery.com>
9786
9787         PR 67861
9788         * gimple-fold.c (gimple_fold_builtin): Add break after
9789         BUILT_IN_PRINTF_CHK, BUILT_IN_VPRINTF_CHK folding.
9790
9791 2015-10-06  H.J. Lu  <hongjiu.lu@intel.com>
9792
9793         * graphite-optimize-isl.c (optimize_isl): Rename scop->ctx
9794         to scop->isl_context.
9795
9796 2015-10-06  Eric Botcazou  <ebotcazou@adacore.com>
9797
9798         * config/arm/arm.c (arm_emit_probe_stack_range): Adjust comment.
9799         (output_probe_stack_range): Rotate the loop and simplify.
9800         (thumb1_expand_prologue): Tweak sorry message.
9801         * config/arm/arm.md (probe_stack): Use bare string.
9802
9803 2015-10-06  Nick Clifton  <nickc@redhat.com>
9804
9805         * config.gcc (lm32-elf): Add newlib-stdint.h to tm_file.
9806
9807 2015-10-06  Nick Clifton  <nickc@redhat.com>
9808
9809         * config/msp430/msp430.c (ATTR_NOINIT): New constant.
9810         (ATTR_PERSIST): New constant.
9811         (msp430_data_attr): New function - verifies an attribute that only
9812         applies to variables.
9813         (msp430_attributes): Add noinit and persistent attributes.
9814         (noinit_section): New variable.
9815         (presis_section): New variable.
9816         (TARGET_ASM_INIT_SECTIONS): Define.
9817         (msp430_init_sections): New function - initialises the noinit and
9818         persist section variables.
9819         (msp430_select_section): Add support for noinit and persist
9820         attributes.
9821         (msp430_section_type_flags): Likewise.
9822         * doc/extend.texi:  Document the reent, critical, wakeup, noinit
9823         and persistent attributes.
9824
9825 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
9826             Sebastian Pop  <s.pop@samsung.com>
9827
9828         * graphite-dependences.c (scop_get_transformed_schedule): Remove.
9829         (no_violations): Remove.
9830         (subtract_commutative_associative_deps): Remove.
9831         (compute_deps): Do not call subtract_commutative_associative_deps.
9832         (transform_is_safe): Remove.
9833         (graphite_legal_transform): Remove.
9834         * graphite-poly.h (graphite_legal_transform): Remove.
9835
9836 2015-10-05  Aditya Kumar  <hiraditya@msn.com>
9837
9838         * graphite-sese-to-poly.c (build_loop_iteration_domains): Only loops
9839         which are in this region are passed so gcc_assert and remove redundant
9840         computation.
9841         * sese.c (sese_build_liveouts): Pass only those bbs which are not
9842         in region.
9843         (sese_bad_liveouts_use): Only BBs which are not in region are passed so
9844         gcc_assert on that and remove unnecessary computation.
9845         (sese_build_liveouts_use): Same.
9846
9847 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
9848
9849         * graphite-dependences.c (scop_get_reads): Renamed scop->context
9850         to scop->param_context.
9851         (scop_get_must_writes): Same.
9852         (scop_get_may_writes): Same.
9853         (scop_get_original_schedule): Same.
9854         (scop_get_transformed_schedule): Same.
9855         (subtract_commutative_associative_deps): Same.
9856         * graphite-isl-ast-to-gimple.c (add_parameters_to_ivs_params): Same.
9857         (generate_isl_context): Same.
9858         (generate_isl_schedule): Same.
9859         (scop_to_isl_ast): Same.
9860         (graphite_regenerate_ast_isl): Same.
9861         * graphite-optimize-isl.c (scop_get_domains): Same.
9862         (optimize_isl): Renamed scop->context to scop->param_context.
9863         * graphite-poly.c (new_poly_bb): Change the type of argument to
9864         gimple_poly_bb_p.
9865         (new_scop): Renamed scop->context to scop->param_context.
9866         (free_scop): Same.
9867         (print_scop_context): Same.
9868         * graphite-poly.h (new_poly_dr): Change the type of argument from
9869         void* to data_reference_p.
9870         (struct poly_bb): Change the type of black_box to gimple_poly_bb_p.
9871         (new_poly_bb): Change the type of argument from void* to
9872         gimple_poly_bb_p.
9873         (pbb_set_black_box): Same.
9874         (struct scop): Rename context to param_context, ctx to isl_context.
9875         * graphite-scop-detection.c (scop_detection::build_scop_bbs_1):
9876         Move declarations closer to assignment.
9877         (find_params_in_bb): Same.
9878         (find_scop_parameters): Same.
9879         * graphite-sese-to-poly.c (unsigned ssa_name_version_typesize):
9880         Global to be used for statement IDs.
9881         (isl_id_for_pbb): Use ssa_name_version_typesize.
9882         (simple_copy_phi_p): Move declarations closer to assignment.
9883         (build_pbb_scattering_polyhedrons): Same.
9884         (build_scop_scattering): Same.
9885         (isl_id_for_ssa_name): Same.
9886         (extract_affine_name): Same.
9887         (extract_affine_int): Same.
9888         (extract_affine): Same.
9889         (set_scop_parameter_dim): Use renamed member.
9890         (build_loop_iteration_domains): Same.
9891         (add_param_constraints): Same.
9892         (build_scop_iteration_domain): Same.
9893         (pdr_add_data_dimensions): Same.
9894         (build_poly_dr): Same.
9895         (build_scop_drs): Move declarations closer to assignment.
9896         (analyze_drs_in_stmts): Same.
9897         (insert_out_of_ssa_copy): Same.
9898         (insert_out_of_ssa_copy_on_edge): Same.
9899         (propagate_expr_outside_region): Same.
9900         (rewrite_phi_out_of_ssa): Same.
9901         (rewrite_degenerate_phi): Same.
9902         (rewrite_reductions_out_of_ssa): Same.
9903         (rewrite_cross_bb_scalar_dependence): Same.
9904         (handle_scalar_deps_crossing_scop_limits): Same.
9905         (rewrite_cross_bb_scalar_deps): Same.
9906         * graphite.c (graphite_transform_loops): Use renamed member.
9907
9908 2015-10-06  Uros Bizjak  <ubizjak@gmail.com>
9909
9910         PR c/65345
9911         * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): Use
9912         create_tmp_var_raw instead of create_tmp_var.
9913
9914 2015-10-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9915
9916         PR c/65345
9917         * config/aarch64/aarch64-builtins.c (aarch64_atomic_assign_expand_fenv):
9918         Use create_tmp_var_raw instead of create_tmp_var.
9919
9920 2015-10-06  Alexander Fomin  <alexander.fomin@intel.com>
9921
9922         PR target/67849
9923         * config/i386/sse.md (define_split vec_select/V8FI): Restrict
9924         split for upper-bank registers when target does not support
9925         AVX512VL.
9926         (define_insn "vec_extract_lo_<mode><mask_name>"): Restrict
9927         split when target does not support AVX512VL.
9928
9929 2015-10-06  David Edelsohn  <dje.gcc@gmail.com>
9930
9931         PR c/65345
9932         * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv):
9933         Adjust to use create_tmp_var_raw instead of create_tmp_var.
9934
9935 2015-10-06  Nick Clifton  <nickc@redhat.com>
9936
9937         * config/rl78/rl78.c (rl78_rtx_costs): Improve cost estimates for
9938         multiplication.
9939
9940 2015-10-06  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
9941
9942         * config.gcc (i[34567]86-*-linux* | ...): Add znver1.
9943         (case ${target}): Add znver1.
9944         * config/i386/cpuid.h(bit_CLZERO):  Define.
9945         * config/i386/driver-i386.c: (host_detect_local_cpu): Let
9946         -march=native recognize znver1 processors.
9947         * config/i386/i386-c.c (ix86_target_macros_internal): Add
9948         znver1, clzero def_and_undef.
9949         * config/i386/i386.c (struct processor_costs znver1_cost): New.
9950         (m_znver1): New definition.
9951         (m_AMD_MULTIPLE): Includes m_znver1.
9952         (processor_target_table): Add znver1 entry.
9953         (ix86_target_string) : Add clzero entry.
9954         (static const char *const cpu_names): Add znver1 entry.
9955         (ix86_option_override_internal): Add znver1 instruction sets.
9956         (PTA_CLZERO) :  New definition.
9957         (ix86_option_override_internal): Handle new clzerooption.
9958         (ix86_issue_rate): Add znver1.
9959         (ix86_adjust_cost): Add znver1.
9960         (ia32_multipass_dfa_lookahead): Add znver1.
9961         (has_dispatch): Add znver1.
9962         * config/i386/i386.h (TARGET_znver1): New definition.
9963         (TARGET_CLZERO): Define.
9964         (TARGET_CLZERO_P): Define.
9965         (struct ix86_size_cost): Add TARGET_ZNVER1.
9966         (enum processor_type): Add PROCESSOR_znver1.
9967         * config/i386/i386.md (define_attr "cpu"): Add znver1.
9968         (set_attr znver1_decode): New definitions for znver1.
9969         * config/i386/i386.opt (flag_dispatch_scheduler): Add znver1.
9970         (mclzero): New.
9971         * config/i386/mmx.md (set_attr znver1_decode): New definitions
9972         for znver1.
9973         * config/i386/sse.md (set_attr znver1_decode): Likewise.
9974         * config/i386/x86-tune.def:  Add znver1 tunings.
9975         * config/i386/znver1.md: Introduce znver1 cpu and include new md file.
9976         * doc/invoke.texi: Add details about znver1
9977
9978 2015-10-06  Richard Biener  <rguenther@suse.de>
9979
9980         PR tree-optimization/67859
9981         * tree-ssa-pre.c (create_expression_by_pieces): Properly
9982         discard not inserted stmts.
9983
9984 2015-10-06  Jonathan Wakely  <jwakely@redhat.com>
9985
9986         * doc/extend.texi (Template Instantiation): Reorder options and
9987         de-emphasize -frepo.
9988         * doc/invoke.texi (C++ Dialect Options): Use -fstrict-enums in
9989         example instead of -frepo.
9990
9991 2015-10-06  Eric Botcazou  <ebotcazou@adacore.com>
9992
9993         PR c/65345
9994         * config/sparc/sparc.c (sparc_atomic_assign_expand_fenv): Adjust to
9995         use create_tmp_var_raw rather than create_tmp_var.
9996
9997 2015-10-06  Richard Biener  <rguenther@suse.de>
9998
9999         * tree-vectorizer.h (vec_info): New base class for...
10000         (_loop_vec_info): ... this and ...
10001         (_bb_vec_info): ... this.
10002         (vect_is_simple_use, vect_is_simple_use_1, new_stmt_vec_info,
10003         vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
10004         vect_analyze_data_ref_accesses, vect_analyze_data_refs,
10005         vect_schedule_slp, vect_analyze_slp, vect_pattern_recog,
10006         vect_destroy_datarefs): Adjust interface to take a vec_info *
10007         rather than both a loop_vec_info and a bb_vec_info argument.
10008         * tree-vect-data-refs.c (vect_compute_data_refs_alignment,
10009         vect_verify_datarefs_alignment, vect_enhance_data_refs_alignment,
10010         vect_analyze_data_refs_alignment, vect_analyze_data_ref_accesses,
10011         vect_analyze_data_refs, vect_create_data_ref_ptr): Adjust
10012         accordingly.
10013         * tree-vect-loop.c (new_loop_vec_info): Initialize base class.
10014         (destroy_loop_vec_info, vect_analyze_loop_2,
10015         vect_is_simple_reduction_1, get_initial_def_for_induction,
10016         vect_create_epilog_for_reduction, vectorizable_reduction,
10017         vectorizable_live_operation, vect_transform_loop): Adjust.
10018         * tree-vect-patterns.c (type_conversion_p,
10019         vect_recog_widen_mult_pattern, vect_recog_widen_shift_pattern,
10020         vect_recog_rotate_pattern, vect_recog_vector_vector_shift_pattern,
10021         vect_recog_divmod_pattern, vect_recog_mixed_size_cond_pattern,
10022         check_bool_pattern, vect_recog_bool_pattern,
10023         vect_mark_pattern_stmts, vect_pattern_recog): Likewise.
10024         * tree-vect-slp.c (vect_get_and_check_slp_defs,
10025         vect_build_slp_tree_1, vect_build_slp_tree, vect_analyze_slp_cost_1,
10026         vect_analyze_slp_instance, vect_analyze_slp, destroy_bb_vec_info,
10027         vect_slp_analyze_bb_1, vect_schedule_slp): Likewise.
10028         (new_bb_vec_info): Initialize base classs.
10029         * tree-vect-stmts.c (record_stmt_cost, process_use,
10030         vect_get_vec_def_for_operand, vect_finish_stmt_generation,
10031         vectorizable_mask_load_store, vectorizable_call,
10032         vectorizable_simd_clone_call, vectorizable_conversion,
10033         vectorizable_assignment, vectorizable_shift,
10034         vectorizable_operation, vectorizable_store,
10035         vectorizable_load, vect_is_simple_cond, vectorizable_condition,
10036         new_stmt_vec_info, vect_is_simple_use, vect_is_simple_use_1): Likewise.
10037         * tree-vectorizer.c (vect_destroy_datarefs): Likewise.
10038
10039 2015-10-05  Kaz Kojima  <kkojima@gcc.gnu.org>
10040
10041         PR c/65345
10042         * config/sh/sh.c (sh_atomic_assign_expand_fenv): Adjust to use
10043         create_tmp_var_raw rather than create_tmp_var.
10044
10045 2015-10-05  Marek Polacek  <polacek@redhat.com>
10046
10047         * tree-ssa-loop-im.c
10048         (move_computations_dom_walker::before_dom_children): Don't set
10049         SSA_NAME_ANTI_RANGE_P.
10050         * tree-ssa-phiopt.c (value_replacement): Likewise.
10051
10052 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
10053             Sebastian Pop  <s.pop@samsung.com>
10054
10055         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Increase to 7.
10056
10057 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
10058             Sebastian Pop  <s.pop@samsung.com>
10059
10060         * graphite-poly.c (new_gimple_poly_bb): ... here.
10061         (free_data_refs_aux): ... here.
10062         (free_gimple_poly_bb): ... here.
10063         (remove_gbbs_in_scop): ... here.
10064         (new_scop): Call new_sese.
10065         (free_scop): Call remove_gbbs_in_scop and free_sese.
10066         * graphite-poly.h (base_alias_pair): ... here.
10067         (new_gimple_poly_bb): Declare.
10068         (free_gimple_poly_bb): Declare.
10069         * graphite-scop-detection.c (parameter_index_in_region_1):
10070         (parameter_index_in_region): ... here.
10071         (scan_tree_for_params): ... here.
10072         (find_params_in_bb): ... here.
10073         (find_scop_parameters): ... here.
10074         (build_scops): Call find_scop_parameters.
10075         * graphite-sese-to-poly.c (free_gimple_poly_bb): Move...
10076         (free_scops): Move...
10077         (single_pred_cond_non_loop_exit): Move...
10078         (sese_dom_walker::before_dom_children): Move...
10079         (sese_dom_walker::after_dom_children): Move...
10080         (build_poly_scop): Move...
10081         * graphite-sese-to-poly.h (base_alias_pair): Move...
10082         * graphite.c (free_scops): ... here.
10083
10084 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
10085             Sebastian Pop  <s.pop@samsung.com>
10086
10087         * graphite-scop-detection.c: Include domwalk.h and tree-cfg.h.
10088         (trivially_empty_bb_p): Move...
10089         (same_close_phi_node): Move...
10090         (new_gimple_poly_bb): Move...
10091         (compare_bb_depths): Move...
10092         (graphite_sort_dominated_info): Move...
10093         (remove_duplicate_close_phi): Move...
10094         (make_close_phi_nodes_unique): Move...
10095         (canonicalize_loop_closed_ssa): Move...
10096         (canonicalize_loop_closed_ssa_form): Move...
10097         (loop_ivs_can_be_represented): Move...
10098         (single_pred_cond_non_loop_exit): Move...
10099         (graphite_can_represent_init): Move...
10100         (graphite_can_represent_scev): Move...
10101         (stmt_has_simple_data_refs_p): Move...
10102         (stmt_has_side_effects):  Move...
10103         (graphite_can_represent_stmt): Move...
10104         (scop_detection): ... here.
10105         (sese_dom_walker): ... and here.
10106         (build_scops): Call all moved functions.
10107         * graphite-sese-to-poly.c (try_generate_gimple_bb): Move...
10108         (all_non_dominated_preds_marked_p): Move...
10109         (build_scop_bbs_1): Move...
10110         (build_scop_bbs): Move...
10111         (set_scop_parameter_dim): Move...
10112         (nb_pbbs_in_loops): Move...
10113         (build_poly_scop): Do not call all the moved functions.
10114
10115 2015-10-05  Martin Jambor  <mjambor@suse.cz>
10116             Jan Hubicka  <hubicka@ucw.cz>
10117
10118         * ipa-cp.c (ipcp_alignment_lattice): New type.
10119         (ipcp_param_lattices): Use the above to represent alignment.
10120         (ipcp_alignment_lattice::print): New function.
10121         (print_all_lattices): Use it to print alignment information.
10122         (ipcp_alignment_lattice::top_p): New function.
10123         (ipcp_alignment_lattice::bottom_p): Likewise.
10124         (ipcp_alignment_lattice::set_to_bottom): Likewise.
10125         (ipcp_alignment_lattice::meet_with_1): Likewise.
10126         (ipcp_alignment_lattice::meet_with): Two new overloaded functions.
10127         (set_all_contains_variable): Use set_to_bottom of alignment lattice.
10128         (initialize_node_lattices): Likewise.
10129         (propagate_alignment_accross_jump_function): Work with the new class
10130         for alignment lattices.
10131         (propagate_constants_accross_call): Pass only the alignment lattice to
10132         propagate_alignment_accross_jump_function.
10133         (ipcp_store_alignment_results): Work with the new class for alignment
10134         lattices.
10135
10136 2015-10-05  Marek Polacek  <polacek@redhat.com>
10137
10138         PR tree-optimization/67821
10139         * tree-ssanames.c (duplicate_ssa_name_range_info): Remove an assert.
10140
10141 2015-10-05  Thomas Schwinge  <thomas@codesourcery.com>
10142
10143         PR other/65021
10144         * config/i386/intelmic-mkoffload.c (mkoffload_atexit): Rename
10145         function to...
10146         (mkoffload_cleanup): ... this.  Adjust all users.
10147         (maybe_unlink): Look at save_temps and verbose flags instead of
10148         debug flag.
10149         (main): Parse "-save-temps" flag.
10150         (generate_target_descr_file, generate_target_offloadend_file)
10151         (generate_host_descr_file, prepare_target_image): Pass it on.
10152         * config/nvptx/mkoffload.c (tool_cleanup): Implement.
10153         (mkoffload_cleanup): New function.
10154         (maybe_unlink): Look at save_temps and verbose flags instead of
10155         debug flag.
10156         (main): Instead of calling utils_cleanup, register atexit handler
10157         for mkoffload_cleanup.
10158         (main): Parse "-save-temps" flag.
10159         (compile_native, main): Pass it on.
10160         * lto-wrapper.c (compile_offload_image): Likewise.
10161
10162 2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10163
10164         * gimple.h (gimple_op_ptr): Require a non const gimple *.
10165         (gimple_assign_lhs_ptr): Likewise.
10166         (gimple_assign_rhs1_ptr): Likewise.
10167         (gimple_assign_rhs2_ptr): Likewise.
10168         (gimple_assign_rhs3_ptr): Likewise.
10169         (gimple_call_lhs_ptr): Likewise.
10170         (gimple_call_fn_ptr): Likewise.
10171         (gimple_call_chain_ptr): Likewise.
10172                 (gimple_call_arg_ptr): Likewise.
10173                 (gimple_cond_lhs_ptr): Likewise.
10174         (gimple_cond_rhs_ptr): Likewise.
10175         (gimple_switch_index_ptr): Likewise.
10176         (gimple_return_retval_ptr): Likewise.
10177
10178 2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10179
10180         * gimple.h (gimple_asm_input_op_ptr): Remove.
10181         (gimple_asm_output_op_ptr): Likewise.
10182
10183 2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10184
10185         * gimple.h (gimple_location_ptr): Remove.
10186         * tree-vrp.c (check_all_array_refs): Adjust.
10187
10188 2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10189
10190         * tree-ssa-operands.c (build_uses): store tree * instead of
10191         tree.
10192         (finalize_ssa_uses): Adjust.
10193         (append_use): Likewise.
10194         (verify_ssa_operands): Likewise.
10195
10196 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
10197
10198         * real.h (build_real_truncate): Declare.
10199         * tree.c (build_real_truncate): New function.
10200         (strip_float_extensions): Use it.
10201         * builtins.c (fold_builtin_cabs, fold_builtin_sqrt, fold_builtin_cbrt)
10202         (fold_builtin_hypot, fold_builtin_pow): Likewise.
10203         * match.pd: Likewise.
10204
10205 2015-10-05 James Greenhalgh <james.greenhalgh@arm.com>
10206            Jiong Wang  <jiong.wang@arm.com>
10207
10208         * config/aarch64/aarch64.md (tlsie_tiny_sidi): Replace "<w>" with "w".
10209
10210 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
10211
10212         * real.h (REAL_VALUE_FROM_CONST_DOUBLE): Delete.
10213         * config/aarch64/aarch64.c (aarch64_float_const_zero_rtx_p)
10214         (aarch64_print_operand, aarch64_float_const_representable_p)
10215         (aarch64_output_simd_mov_immediate): Use CONST_DOUBLE_REAL_VALUE
10216         instead of REAL_VALUE_FROM_CONST_DOUBLE.
10217         * config/arc/arc.c (arc_print_operand): Likewise.
10218         * config/arm/arm.c (arm_const_double_rtx, vfp3_const_double_index)
10219         (neon_valid_immediate, arm_print_operand, arm_emit_fp16_const)
10220         (vfp3_const_double_for_fract_bits, vfp3_const_double_for_bits):
10221         Likewise.
10222         * config/arm/arm.md (*arm32_movhf, consttable_4, consttable_8)
10223         (consttable_16): Likewise.
10224         * config/arm/vfp.md (*movhf_vfp_neon, *movhf_vfp): Likewise.
10225         * config/avr/avr.c (avr_print_operand): Likewise.
10226         * config/bfin/bfin.md: Likewise (in a define_split).
10227         * config/c6x/c6x.md: Likewise (in a define_split).
10228         * config/cr16/cr16.c (cr16_const_double_ok): Likewise.
10229         (cr16_print_operand): Likewise.
10230         * config/cris/cris.c (cris_print_operand): Likewise.
10231         * config/epiphany/epiphany.c (epiphany_print_operand): Likewise.
10232         * config/fr30/fr30.c (fr30_print_operand): Likewise.
10233         (fr30_const_double_is_zero): Likewise.
10234         * config/frv/frv.c (frv_print_operand, output_move_single): Likewise.
10235         * config/frv/frv.md: Likewise (in a define_split).
10236         * config/frv/predicates.md (int_2word_operand): Likewise.
10237         * config/h8300/h8300.c (h8300_print_operand): Likewise.
10238         * config/i386/i386.c (standard_80387_constant_p): Likewise.
10239         (ix86_print_operand, ix86_split_to_parts): Likewise.
10240         * config/i386/i386.md: Likewise (in a define_split).
10241         * config/ia64/ia64.c (ia64_split_tmode, ia64_print_operand): Likewise.
10242         * config/iq2000/iq2000.md (movsf_lo_sum, movsf_high): Likewise.
10243         * config/m32r/m32r.c (easy_df_const, m32r_print_operand): Likewise.
10244         * config/m68k/m68k.c (handle_move_double, standard_68881_constant_p)
10245         (print_operand): Likewise.
10246         * config/m68k/m68k.md (movsf_cf_hard, movdf_cf_hard): Likewise.
10247         * config/mep/mep.md: Likewise (in define_split).
10248         * config/microblaze/microblaze.c (microblaze_const_double_ok)
10249         (print_operand): Likewise.
10250         * config/mips/mips.md (consttable_float): Likewise.
10251         * config/mmix/mmix.c (mmix_intval): Likewise.
10252         * config/mn10300/mn10300.c (mn10300_print_operand): Likewise.
10253         * config/nvptx/nvptx.c (nvptx_print_operand): Likewise.
10254         * config/pa/pa.c (pa_singlemove_string): Likewise.
10255         * config/pdp11/pdp11.c (pdp11_expand_operands): Likewise.
10256         (pdp11_asm_print_operand, legitimate_const_double_p): Likewise.
10257         * config/rs6000/rs6000.c (num_insns_constant, rs6000_emit_cmove)
10258         (output_toc): Likewise.
10259         * config/rs6000/rs6000.md: Likewise (in define_splits).
10260         * config/rx/rx.c (rx_print_operand): Likewise.
10261         * config/s390/s390.c (s390_output_pool_entry): Likewise.
10262         * config/sh/sh.c (fp_zero_operand, fp_one_operand): Likewise.
10263         * config/sh/sh.md (consttable_sf, consttable_df): Likewise
10264         (and also in define_splits).
10265         * config/sparc/sparc.c (fp_sethi_p, fp_mov_p): Likewise.
10266         (fp_high_losum_p): Likewise.
10267         * config/sparc/sparc.md (*movsf_insn, *movsf_lo_sum): Likewise.
10268         (*movsf_high): Likewise.
10269         * config/spu/spu.c (const_double_to_hwint): Likewise.
10270         * config/v850/v850.c (const_double_split): Likewise.
10271         * config/vax/vax.c (vax_float_literal): Likewise.
10272         * config/visium/visium.c (visium_expand_copysign): Likewise.
10273         * config/visium/visium.md: Likewise (in define_split).
10274         * config/xtensa/predicates.md (const_float_1_operand): Likewise.
10275         * config/xtensa/xtensa.c (print_operand): Likewise.
10276         (xtensa_output_literal): Likewise.
10277         * cprop.c (implicit_set_cond_p): Likewise.
10278         * dwarf2out.c (insert_float): Likewise.
10279         * expmed.c (expand_mult, make_tree): Likewise.
10280         * expr.c (compress_float_constant): Likewise.
10281         * rtlanal.c (split_double): Likewise.
10282         * simplify-rtx.c (avoid_constant_pool_reference): Likewise.
10283         (simplify_const_unary_operation, simplify_binary_operation_1)
10284         (simplify_const_binary_operation): Likewise.
10285         (simplify_const_relational_operation): Likewise.
10286         * varasm.c (output_constant_pool_2): Likewise.
10287
10288 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
10289
10290         * real.h (CONST_DOUBLE_ATOF): Use const_double_from_real_value
10291         instead of CONST_DOUBLE_FROM_REAL_VALUE.
10292         (CONST_DOUBLE_FROM_REAL_VALUE): Delete.
10293         * config/c6x/c6x.md (divsf3, divdf3): Use const_double_from_real_value
10294         instead of CONST_DOUBLE_FROM_REAL_VALUE.
10295         * config/epiphany/epiphany.md (fixuns_truncsfsi2): Likewise.
10296         * config/i386/i386.c (standard_80387_constant_rtx): Likewise.
10297         (ix86_expand_builtin, ix86_emit_i387_log1p, ix86_emit_i387_round)
10298         (ix86_emit_swsqrtsf): Likewise.
10299         * config/ia64/ia64.c (ia64_expand_builtin): Likewise.
10300         * config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2)
10301         (fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
10302         * config/pa/pa.c (pa_expand_builtin): Likewise.
10303         * config/rs6000/rs6000.c (rs6000_load_constant_and_splat): Likewise.
10304         (rs6000_scale_v2df): Likewise.
10305         * config/rs6000/rs6000.md (*cmptf_internal2): Likewise.
10306         * config/s390/s390.md (fixuns_truncdddi2, fixuns_trunctddi2)
10307         (fixuns_trunc<BFP:mode><GPR:mode>2): Likewise.
10308         * config/s390/vx-builtins.md (vec_ctd_s64, vec_ctd_u64, vec_ctsl)
10309         (vec_ctul): Likewise.
10310         * config/sparc/sparc.c (sparc_emit_fixunsdi): Likewise.
10311         * config/spu/spu.c (hwint_to_const_double, spu_float_const): Likewise.
10312         * config/spu/spu.md (floatunsdisf2, floatunstisf2): Likewise.
10313         * cse.c (fold_rtx): Likewise.
10314         * emit-rtl.c (immed_double_const): Likewise (in comments).
10315         (init_emit_once): Likewise.
10316         * expr.c (compress_float_constant, expand_expr_real_1)
10317         (const_vector_from_tree): Likewise.
10318         * optabs.c (expand_float, expand_fix): Likewise.
10319         * reg-stack.c (reg_to_stack): Likewise.
10320         * simplify-rtx.c (avoid_constant_pool_reference): Likewise.
10321         (simplify_const_unary_operation, simplify_binary_operation_1)
10322         (simplify_const_binary_operation, simplify_relational_operation)
10323         (simplify_immed_subreg): Likewise.
10324
10325 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
10326
10327         * doc/tm.texi.in (REAL_ARITHMETIC): Delete.
10328         * doc/tm.texi: Regenerate.
10329         * real.h (REAL_ARITHMETIC): Delete.
10330         * config/i386/i386.c (ix86_expand_lround, ix86_expand_round)
10331         (ix86_expand_round_sse4): Use real_arithmetic instead of
10332         REAL_ARITHMETIC.
10333         * config/i386/sse.md (round<mode>2): Likewise.
10334         * rtl.h (rtx_to_tree_code): Likewise (in comment).
10335         * explow.c (rtx_to_tree_code): Likewise (in comment).
10336         * match.pd: Likewise.
10337         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
10338         * tree-ssa-math-opts.c (representable_as_half_series_p): Likewise.
10339         (expand_pow_as_sqrts): Likewise.
10340         * tree-pretty-print.c (dump_generic_node): Remove code that
10341         was conditional on REAL_ARITHMETIC being undefined.
10342
10343 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
10344
10345         * doc/tm.texi.in (REAL_VALUES_LESS): Delete.
10346         * doc/tm.texi: Regenerate.
10347         * real.h (real_less): Declare.
10348         (REAL_VALUES_LESS): Delete.
10349         * real.c (real_less): New function.
10350         (real_compare): Use it.
10351         * config/m68k/m68k.c (floating_exact_log2): Use real_less instead
10352         of REAL_VALUES_LESS.
10353         * config/microblaze/microblaze.c (microblaze_const_double_ok):
10354         Likewise.
10355         * fold-const.c (fold_convert_const_int_from_real): Likewise.
10356         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
10357         (simplify_const_relational_operation): Likewise.
10358         * tree-call-cdce.c (check_pow): Likewise.
10359         (gen_conditions_for_pow_cst_base): Likewise.
10360
10361 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
10362
10363         * real.h (REAL_VALUES_IDENTICAL): Delete.
10364         * config/m68k/m68k.c (standard_68881_constant_p): Use real_identical
10365         instead of REAL_VALUES_IDENTICAL.
10366         * fold-const.c (operand_equal_p): Likewise.
10367         * ipa-icf.c (sem_variable::equals): Likewise.
10368         * tree-complex.c (some_nonzerop): Likewise.
10369         (expand_complex_multiplication): Likewise.
10370         * tree.c (simple_cst_equal): Likewise.
10371         * varasm.c (compare_constant): Likewise.
10372
10373 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
10374
10375         * real.h (real_equal): Declare.
10376         (REAL_VALUES_EQUAL): Delete.
10377         * real.c (real_equal): New function.
10378         (real_compare): Use it.
10379         * doc/tm.texi.in (REAL_VALUES_EQUAL): Delete.
10380         * doc/tm.texi: Regenerate.
10381         * builtins.c (fold_builtin_pow, fold_builtin_load_exponent): Use
10382         real_equal instead of REAL_VALUES_EQUAL.
10383         * config/aarch64/aarch64.c (aarch64_float_const_zero_rtx_p): Likewise.
10384         * config/arm/arm.c (arm_const_double_rtx, neon_valid_immediate)
10385         (fp_const_from_val): Likewise.
10386         * config/fr30/fr30.c (fr30_const_double_is_zero): Likewise.
10387         * config/m68k/m68k.c (standard_68881_constant_p): Likewise.
10388         (floating_exact_log2): Likewise.
10389         * config/sh/sh.c (fp_zero_operand, fp_one_operand): Likewise.
10390         * config/vax/vax.c (vax_float_literal): Likewise.
10391         * config/xtensa/predicates.md (const_float_1_operand): Likewise.
10392         * cprop.c (implicit_set_cond_p): Likewise.
10393         * expmed.c (expand_mult): Likewise.
10394         * fold-const.c (const_binop): Likewise.
10395         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
10396         (simplify_const_binary_operation): Likewise.
10397         (simplify_const_relational_operation): Likewise.
10398         * tree-call-cdce.c (check_pow): Likewise.
10399         (gen_conditions_for_pow_cst_base): Likewise.
10400         * tree-inline.c (estimate_num_insns): Likewise.
10401         * tree-ssa-dom.c (record_equality): Likewise.
10402         * tree-ssa-math-opts.c (representable_as_half_series_p): Likewise.
10403         (gimple_expand_builtin_pow): Likewise.
10404         (pass_optimize_widening_mul::execute): Likewise.
10405         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Likewise.
10406         * tree-vect-patterns.c (vect_recog_pow_pattern): Likewise.
10407         * tree.c (real_zerop, real_onep, real_minus_onep): Likewise.
10408
10409 2015-10-05  Richard Biener  <rguenther@suse.de>
10410
10411         PR ipa/67783
10412         * ipa-inline-analysis.c (estimate_function_body_sizes): Only
10413         consider loop header PHI defs as IVs.
10414
10415 2015-10-05  Richard Biener  <rguenther@suse.de>
10416
10417         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Move
10418         call handling ...
10419         (create_expression_by_pieces): ... here and build GIMPLE
10420         calls directly.  Use gimple_build API and avoid force_gimple_operand.
10421         (insert_into_preds_of_block): Simplify.
10422         (do_regular_insertion): Add comment.
10423
10424 2015-10-04  Jason Merrill  <jason@redhat.com>
10425
10426         * builtins.def (BUILT_IN_ABORT): Add transaction_pure attribute.
10427
10428 2015-10-04  Uros Bizjak  <ubizjak@gmail.com>
10429
10430         * config/i386/i386.c (ix86_nsaved_regs): Use GENERAL_REGNO_P to
10431         check for general register.
10432         (ix86_emit_save_regs): Ditto.
10433         (ix86_emit_save_regs_using_mov): Ditto.
10434         (ix86_emit_restore_regs_using_pop): Ditto.
10435         (ix86_emit_restore_regs_using_mov): Ditto.
10436
10437 2015-10-03  Marek Polacek  <polacek@redhat.com>
10438
10439         * Makefile.in (insn-latencytab.o): Remove -Wno-duplicated-cond.
10440         (insn-dfatab.o): Likewise.
10441
10442 2015-10-03  Max Filippov  <jcmvbkbc@gmail.com>
10443
10444         * config.gcc (xtensa*-*-uclinux*): New configuration.
10445         * config/xtensa/uclinux.h: New file.
10446         * config/xtensa/uclinux.opt: New file.
10447
10448 2015-10-03  Jonathan Wakely  <jwakely@redhat.com>
10449
10450         * doc/cpp.texi (Standard Predefined Macros): Document value of
10451         __cplusplus for C++14.
10452
10453 2015-10-02  Bernd Schmidt  <bernds@codesourcery.com>
10454
10455         * gcc.c (process_command): Use spec_machine rather than
10456         spec_host_machine to build tooldir_prefix2.
10457
10458 2015-10-02  Thomas Schwinge  <thomas@codesourcery.com>
10459             Bernd Schmidt  <bernds@codesourcery.com>
10460
10461         * config/nvptx/mkoffload.c (Kind, Vis): Remove enums.
10462         (Token, Stmt): Remove structs.
10463         (decls, vars, fns): Remove variables.
10464         (alloc_comment, append_stmt, is_keyword): Remove macros.
10465         (tokenize, write_token, write_tokens, alloc_stmt, rev_stmts)
10466         (write_stmt, write_stmts, parse_insn, parse_list_nosemi)
10467         (parse_init, parse_file): Remove functions.
10468         (read_file): Accept a pointer to a length and store into it.
10469         (process): Don't try to parse the input file, just write it out as
10470         a string, but looking for maps.  Also write out the length.
10471         (main): Don't use "-S" to compile PTX code.
10472
10473 2015-10-02  Jeff Law  <law@redhat.com>
10474
10475         * tree-ssa-dom.c (optimize_stmt): Note when loop structures need
10476         fixups.
10477
10478 2015-10-02  Thomas Schwinge  <thomas@codesourcery.com>
10479
10480         PR target/67822
10481         * config/nvptx/mkoffload.c (main): Scan the argument vector for
10482         -fopenmp, and skip generating an offloading image if specified.
10483
10484 2015-10-02  Uros Bizjak  <ubizjak@gmail.com>
10485
10486         * system.h (ROUND_UP): New macro definition.
10487         (ROUND_DOWN): Ditto.
10488         * ggc-page.c (ROUND_UP): Remove local macro definition.
10489         (PAGE_ALIGN): Implement using ROUND_UP macro.
10490
10491         * config/i386/i386.h (PUSH_ROUNDING): Implement using ROUND_UP macro.
10492         * config/i386/i386.c (function_arg_advance_64): Use ROUND_UP macro
10493         to align values.
10494         (ix86_compute_frame_layout): Ditto.
10495         (ix86_expand_prologue): Ditto.
10496         (ix86_adjust_stack_and_probe): Use ROUND_DOWN macro
10497         to round down values.
10498         (expand_set_or_movmem_via_rep): Ditto.
10499
10500 2015-10-02  Marek Polacek  <polacek@redhat.com>
10501
10502         * genemit.c (gen_exp): Remove -Wduplicated-cond hack.
10503
10504 2015-10-02  Aditya Kumar  <aditya.k7@samsung.com>
10505
10506         * graphite-scop-detection.c (loop_ivs_can_be_represented): New.
10507         (loop_body_is_valid_scop): Call loop_ivs_can_be_represented.
10508         * graphite-sese-to-poly.c (new_gimple_bb): Renamed new_gimple_poly_bb.
10509         (free_gimple_bb): Renamed free_gimple_poly_bb.
10510         (try_generate_gimple_bb): Hoist loop invariant code.
10511         (analyze_drs_in_stmts): Same.
10512         (build_scop_drs): Call renamed functions.
10513         (new_pbb_from_pbb): Same.
10514         (scop_ivs_can_be_represented): Delete as functionality now moved to
10515         graphite-scop-detection.c
10516         (build_poly_scop): Remove call to scop_ivs_can_be_represented.
10517
10518 2015-10-02  Aditya Kumar  <hiraditya@msn.com>
10519
10520         * graphite-scop-detection.c (stmt_has_side_effects): New function
10521           outlined from stmt_simple_for_scop_p.
10522         (graphite_can_represent_stmt): Same.
10523         (stmt_simple_for_scop_p): Moved code out of this function for better
10524         readability.
10525
10526 2015-10-02  Kirill Yukhin  <kirill.yukhin@intel.com>
10527
10528         * config/i386/i386.c (processor_features): Add F_AVX512VBMI,
10529         F_AVX512IFMA.
10530         (isa_names_table): Handle F_AVX512VBMI and F_AVX512IFMA.
10531
10532 2015-10-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10533
10534         * config/aarch64/aarch64-elf.h (TARGET_ASM_NAMED_SECTION): Delete.
10535
10536 2015-10-02  Vladimir Makarov  <vmakarov@redhat.com>
10537
10538         PR rtl-optimization/67756
10539         * lra-constraints.c (match_reload): Add a new parameter.  Use it
10540         for creating a pseudo with the same value.
10541         (curr_insn_transform): Pass a new argument to match_reload.
10542
10543 2015-10-02  Kirill Yukhin  <kirill.yukhin@intel.com>
10544
10545         * config/i386/i386.c (expand_vec_perm_even_odd_trunc): New.
10546         (expand_vec_perm_even_odd_1): Handle V64QImode.
10547         (ix86_expand_vec_perm_const_1): Try expansion with
10548         expand_vec_perm_even_odd_trunc as well.
10549         * config/i386/sse.md (VI124_AVX512F): Rename to ...
10550         (define_mode_iterator VI124_AVX2_24_AVX512F_1_AVX512BW): This. Extend
10551         to V54QI.
10552         (define_mode_iterator VI248_AVX2_8_AVX512F): Rename to ...
10553         (define_mode_iterator VI248_AVX2_8_AVX512F_24_AVX512BW): This. Extend
10554         to V32HI and V16SI.
10555         (define_insn "avx512bw_<code>v32hiv32qi2"): Unhide pattern name.
10556         (define_expand "vec_pack_trunc_<mode>"): Update iterator name.
10557         (define_expand "vec_unpacks_lo_<mode>"): Ditto.
10558         (define_expand "vec_unpacks_hi_<mode>"): Ditto.
10559         (define_expand "vec_unpacku_lo_<mode>"): Ditto.
10560         (define_expand "vec_unpacku_hi_<mode>"): Ditto.
10561
10562 2015-10-02  Kirill Yukhin  <kirill.yukhin@intel.com>
10563
10564         * doc/invoke.texi: Mention -mavx512vl, -mavx512bw, -mavx512dq,
10565         -mavx521vbmi, -mavx512ifma. Add missing opindex-es.
10566
10567 2015-10-02  Jason Merrill  <jason@redhat.com>
10568
10569         PR c/59218
10570         * trans-mem.c (volatile_lvalue_p): Rename from volatile_var_p.
10571         (diagnose_tm_1_op): Also diagnose volatile accesses in
10572         transaction_safe function.
10573
10574 2015-10-02  Jonathan Wakely  <jwakely@redhat.com>
10575
10576         * system.h (malloc.h): Don't include obsolete header.
10577
10578 2015-10-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10579
10580         * config/aarch64/aarch64.c (aarch64_elf_asm_named_section): Delete.
10581         (TLS_SECTION_ASM_FLAG): Delete.
10582
10583 2015-10-02  Marek Polacek  <polacek@redhat.com>
10584
10585         PR c/64249
10586         * doc/invoke.texi: Document -Wduplicated-cond.
10587         * Makefile.in (insn-latencytab.o): Use -Wno-duplicated-cond.
10588         (insn-dfatab.o): Likewise.
10589         * genemit.c (gen_exp): Rewrite condition to avoid -Wduplicated-cond
10590         warning.
10591
10592 2015-10-02  Oleg Endo  <olegendo@gcc.gnu.org>
10593
10594         * config/sh/sh.md: Add new unnamed split pattern to handle movt-movt
10595         sequences.
10596
10597 2015-10-02  Renlin Li  <renlin.li@arm.com>
10598
10599         * config/aarch64/aarch64.md (csneg3_insn_uxtw): New pattern.
10600
10601 2015-10-02  Renlin Li  <renlin.li@arm.com>
10602
10603         PR target/66776
10604         * config/aarch64/aarch64.md (cmovdi_insn_uxtw): New pattern.
10605
10606 2015-10-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10607
10608         PR rtl-optimization/67786
10609         PR rtl-optimization/67787
10610         * ifcvt.c (bb_valid_for_noce_process_p): Reject basic block if
10611         it modifies a reg used in the condition calculation.
10612
10613 2015-10-02  James Greenhalgh  <james.greenhalgh@arm.com>
10614
10615         * config/aarch64/aarch64-simd.md (*aarch64_combinez<mode>): Add
10616         alternatives for reads from memory and moves from general-purpose
10617         registers.
10618         (*aarch64_combinez_be<mode>): Likewise.
10619
10620 2015-10-02  Kai Tietz  <ktietz70@googlemail.com>
10621
10622         PR target/51726
10623         * config/i386/winnt.c (ix86_handle_selectany_attribute): Handle
10624         selectany within this function without need to keep attribute.
10625         (i386_pe_encode_section_info): Remove selectany-code.
10626
10627 2015-10-02  Richard Biener  <rguenther@suse.de>
10628
10629         * tree-ssa-sccvn.c (has_VN_INFO): New function.
10630         (free_scc_vn): Use it.
10631         (visit_use): Remove dead code and refactor to use gassign
10632         and use less indentation.
10633
10634 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
10635
10636         PR target/67788
10637         PR target/67789
10638         * config/rs6000/rs6000.c (TARGET_CANNOT_COPY_INSN_P): New.
10639         (rs6000_cannot_copy_insn_p): New function.
10640         * config/rs6000/rs6000.md (cannot_copy): New attribute.
10641         (load_toc_v4_PIC_1_normal): Set cannot_copy.
10642         (load_toc_v4_PIC_1_476): Ditto.
10643
10644 2015-10-01  Aditya Kumar  <aditya.k7@samsung.com>
10645
10646         * graphite-scop-detection.c (struct sese_l): New conversion constructor
10647         so that this type can be pushed into a vec.
10648         (class scop_builder): use sese_l to collect scops.
10649         (get_scops): New getter function.
10650         (remove_intersecting_scops): Use sese_l instead of scops_p.
10651         (intersects): Same.
10652         (add_scop): Same.
10653         (subsumes): Same.
10654         (remove_subscops): Same.
10655         (build_scops): Add scops to vec<scops_p> once all the scops have been
10656         detected.
10657
10658 2015-10-01  Aditya Kumar  <aditya.k7@samsung.com>
10659
10660         * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
10661         Renamed type from gimple_bb_p to gimple_poly_bb_p.
10662         (translate_isl_ast_node_user): Same.
10663         * graphite-poly.c (new_poly_bb): Same.
10664         * graphite-poly.h (gbb_from_bb): Same.
10665         * sese.h: Same.
10666         * graphite-sese-to-poly.c (new_gimple_bb):
10667         gimple_bb_p -> gimple_poly_bb_p
10668         (build_scop_scattering): Same.
10669         (find_params_in_bb): Same.
10670         (add_conditions_to_domain): Same.
10671         (sese_dom_walker::before_dom_children): Same.
10672         (analyze_drs_in_stmts): Same.
10673         (new_pbb_from_pbb): Same.
10674         (free_data_refs_aux): New pointer to type base_alias_pair.
10675         * graphite-sese-to-poly.h: Same.
10676         * sese.c (if_region_set_false_region): Fixed Indentation.
10677         (move_sese_in_condition): Same.
10678
10679 2015-10-01  Sebastian Pop  <s.pop@samsung.com>
10680             Aditya Kumar  <aditya.k7@samsung.com>
10681
10682         PR tree-optimization/66980
10683         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Return false
10684         when data reference analysis has failed.
10685
10686 2015-10-01  Sebastian Pop  <s.pop@samsung.com>
10687             Aditya Kumar  <aditya.k7@samsung.com>
10688
10689         PR tree-optimization/67754
10690         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Call
10691         scev analysis on the same loop nest as analyze_drs_in_stmts.
10692         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): Moved and
10693         renamed...
10694         (try_generate_gimple_bb): Call outermost_loop_in_sese.
10695         (analyze_drs_in_stmts): Same.
10696         * sese.c (outermost_loop_in_sese): ...here.
10697
10698 2015-10-01  Sebastian Pop  <s.pop@samsung.com>
10699             Aditya Kumar  <aditya.k7@samsung.com>
10700
10701         PR tree-optimization/67754
10702         * graphite-scop-detection.c (loop_body_is_valid_scop): Add missing
10703         recursion on the inner loops.
10704
10705 2015-10-01  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10706
10707         * cfganal.c, compare-elim.c, coverage.c, cprop.c, df-scan.c,
10708         function.c, read-rtl.c, statistics.c, trans-mem.c, tree-if-conv.c,
10709         tree-into-ssa.c, tree-loop-distribution.c, tree-ssa-coalesce.c,
10710         tree-ssa-loop-ivopts.c, tree-ssa-reassoc.c, tree-ssa-strlen.c,
10711         tree-ssa-tail-merge.c, tree-vrp.c, var-tracking.c: Remove
10712
10713 2015-10-01  Marek Polacek  <polacek@redhat.com>
10714
10715         PR c/65345
10716         * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Adjust to use
10717         create_tmp_var_raw rather than create_tmp_var.
10718
10719 2015-10-01  Marek Polacek  <polacek@redhat.com>
10720
10721         PR tree-optimization/67769
10722         * tree-ssa-phiopt.c (conditional_replacement): Call
10723         reset_flow_sensitive_info_in_bb.
10724         (minmax_replacement): Likewise.
10725         (abs_replacement): Likewise.
10726
10727 2015-10-01  Nathan Sidwell  <nathan@codesourcery.com>
10728
10729         * builtins.c: Don't include gomp-constants.h.
10730         (fold_builtin_1): Don't fold acc_on_device here.
10731         * gimple-fold.c: Include gomp-constants.h.
10732         (gimple_fold_builtin_acc_on_device): New.
10733         (gimple_fold_builtin): Call it.
10734
10735 2015-10-01  H.J. Lu  <hongjiu.lu@intel.com>
10736
10737         * config/i386/x86-tune.def (X86_TUNE_USE_BT): Enable for Lakemont.
10738         (X86_TUNE_ZERO_EXTEND_WITH_AND): Disable for Lakemont.
10739
10740 2015-10-01  James Greenhalgh  <james.greenhalgh@arm.com>
10741
10742         * config/arm/aarch-common-protos.h
10743         (aarch_accumulator_forwarding): New.
10744         (aarch_forward_to_shift_is_not_shifted_reg): Likewise.
10745         * config/arm/aarch-common.c (aarch_accumulator_forwarding): New.
10746         (aarch_forward_to_shift_is_not_shifted_reg): Likewise.
10747         * config/arm/cortex-a53.md: Rewrite.
10748
10749 2015-10-01  Richard Biener  <rguenther@suse.de>
10750
10751         * gimple-match.h (mprts_hook): Declare.
10752         * gimple-match.head.c (mprts_hook): Define.
10753         (maybe_push_res_to_seq): Use new hook.
10754         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
10755         * tree-ssa-sccvn.h (vn_ssa_aux::expr): Change to a gimple_seq.
10756         (vn_ssa_aux::has_constants): Remove.
10757         * tree-ssa-sccvn.c: Include gimple-match.h.
10758         (VN_INFO_GET): Assert we don't re-use SSA names.
10759         (vn_get_expr_for): Remove.
10760         (expr_has_constants): Likewise.
10761         (stmt_has_constants): Likewise.
10762         (simplify_binary_expression): Likewise.
10763         (simplify_unary_expression): Likewise.
10764         (vn_lookup_simplify_result): New hook.
10765         (visit_copy): Adjust.
10766         (visit_reference_op_call): Likewise.
10767         (visit_phi): Likewise.
10768         (visit_use): Likewise.
10769         (process_scc): Likewise.
10770         (init_scc_vn): Likewise.
10771         (visit_reference_op_load): Likewise.  Use match-and-simplify and
10772         a gimple seq for inserted expressions.
10773         (try_to_simplify): Remove GENERIC stmt combining code.
10774         (sccvn_dom_walker::before_dom_children): Use match-and-simplify.
10775         * tree-ssa-pre.c (eliminate_insert): Adjust.
10776         (eliminate_dom_walker::before_dom_children): Likewise.
10777
10778 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
10779
10780         * doc/invoke.texi (Optimization Options): Add
10781         -freorder-blocks-algorithm=.
10782         (Optimize Options) <-O>: Add -freorder-blocks.
10783         <-O2>: Remove -freorder-blocks.  Add -freorder-blocks-algorithm=stc.
10784         <-Os>: Add -freorder-blocks-algorithm=stc as not enabled.
10785         <-freorder-blocks>: Also enabled at levels -O and -Os.
10786         <-freorder-blocks-algorithm=>: Document new option.
10787
10788 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
10789
10790         * bb-reorder.c (reorder_basic_blocks): Use the algorithm selected
10791         with flag_reorder_blocks_algorithm.
10792         * common.opt (freorder-blocks-algorithm=): New flag.
10793         (reorder_blocks_algorithm): New enum.
10794         * flag-types.h (reorder_blocks_algorithm): New enum.
10795         * opts.c (default_options_table): Use -freorder-blocks at -O1 and up,
10796         and -freorder-blocks-algorithm=stc at -O2 and up (not at -Os).
10797
10798 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
10799
10800         * bb-reorder.c: Add intro comment.
10801         (reorder_basic_blocks_software_trace_cache): Print a header to
10802         the dump file.
10803         (edge_order): New function.
10804         (reorder_basic_blocks_simple): New function.
10805         (reorder_basic_blocks): Choose between the STC and the simple
10806         algorithms (always choose the former).
10807
10808 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
10809
10810         * bb-reorder.c (reorder_basic_blocks_software_trace_cache): New
10811         function, factored out from ...
10812         (reorder_basic_blocks): ... here.
10813
10814 2015-10-01  Tom de Vries  <tom@codesourcery.com>
10815
10816         * tree-cfg.c (dump_function_to_file): Dump function attributes using
10817         __attribute__(()) string.  Move dumping of function attributes to before
10818         function name.
10819
10820 2015-10-01  Lynn Boger  <laboger@linux.vnet.ibm.com>
10821
10822         PR target/66870
10823         * config/rs6000/sysv4.h (TARGET_CAN_SPLIT_STACK_64BIT): Define.
10824         * configure.ac: Define HAVE_GOLD_ALTERNATE_SPLIT_STACK on Power
10825         based on gold linker version.
10826         * gcc.c: Add -fuse-ld=gold to STACK_SPLIT_SPEC if
10827         HAVE_GOLD_ALTERNATE_SPLIT_STACK defined.
10828         * configure, config.in: Regenerate.
10829
10830 2015-10-01  Alan Modra  <amodra@gmail.com>
10831
10832         * config/rs6000/rs6000.c (rs6000_emit_prologue): Don't set
10833         r2_setup_needed when TARGET_SINGLE_PIC_BASE.
10834         (rs6000_output_mi_thunk): Likewise.
10835
10836 2015-09-30  Nathan Sidwell  <nathan@codesourcery.com>
10837
10838         * config/nvptx/mkoffload.c (process): Change offload data format.
10839
10840 2015-09-30  Jeff Law  <law@redhat.com>
10841
10842         * tree-ssa-dom.c (optimize_stmt): Collapse control flow statements
10843         with constant conditions.
10844         * tree-ssa-threadupdate.c (remove_jump_threads_starting_at): New.
10845         (remove_ctrl_stmt_and_useless_edges): No longer static.
10846         * tree-ssa-threadupdate.h (remove_jump_threads_starting_at): Prototype.
10847         (remove_ctrl_stmt_and_useless_edges): Likewise.
10848
10849 2015-09-30  Nathan Sidwell  <nathan@codesourcery.com>
10850             Cesar Philippidis  <cesar@codesourcery.com>
10851
10852         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): New.
10853         (TARGET_GOACC_VALIDATE_DIMS): Override.
10854         * target.def (TARGET_GOACC): New target hook prefix.
10855         (validate_dims): New hook.
10856         * targhooks.h (default_goacc_validate_dims): New.
10857         * omp-low.c (oacc_validate_dims): New.
10858         (execute_oacc_device_lower): New.
10859         (default_goacc_validate_dims): New.
10860         (pass_data_oacc_device_lower): New.
10861         (pass_oacc_device_lower): New pass.
10862         (make_pass_oacc_device_lower): New.
10863         * tree-pass.h (make_pass_oacc_device_lower): Declare.
10864         * passes.def (pass_oacc_device_lower): Add it.
10865         * doc/tm.texi: Rebuilt.
10866         * doc/tm.texi.in (TARGET_GOACC_VALIDATE_DIMS): Add hook.
10867         * doc/invoke.texi (oaccdevlow): Document tree dump flag.
10868
10869 2015-09-30  Bernd Edlinger  <bernd.edlinger@hotmail.de>
10870
10871         PR rtl-optimization/67037
10872         * lra-constraints.c (process_addr_reg): Use copy_rtx when necessary.
10873
10874 2015-09-30  Bernd Schmidt  <bernds@redhat.com>
10875
10876         * gimple-ssa.h (gimple_df): Add free_ssanames_queue field.
10877         * passes.c: Include tree-ssanames.h.
10878         (execute_function_todo): Flush the pending free SSA_NAMEs after
10879         eliminating unreachable basic blocks.
10880         * tree-ssanames.c (FREE_SSANAMES_QUEUE): new.
10881         (init_ssanames): Initialize FREE_SSANAMES_QUEUE.
10882         (fini_ssanames): Finalize FREE_SSANAMES_QUEUE.
10883         (flush_ssanames_freelist): New function.
10884         (release_ssaname_fn): Put released names on the queue.
10885         (pass_release_ssa_names::execute): Call flush_ssanames_freelist.
10886         * tree-ssanames.h (flush_ssanames_freelist): Declare.
10887
10888 2015-09-30  Thomas Schwinge  <thomas@codesourcery.com>
10889
10890         * config/i386/intelmic-mkoffload.c (main): Parse "-v" flag.
10891         (generate_target_descr_file, generate_target_offloadend_file)
10892         (generate_host_descr_file, prepare_target_image): Pass it on.
10893         * config/nvptx/mkoffload.c (main): Parse "-v" flag.
10894         (compile_native, main): Pass it on.
10895         * lto-wrapper.c (compile_offload_image): Likewise.
10896
10897 2015-09-30  Thomas Schwinge  <thomas@codesourcery.com>
10898             Ilya Verbin  <ilya.verbin@intel.com>
10899             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10900
10901         * config/i386/intelmic-mkoffload.c (generate_host_descr_file)
10902         (prepare_target_image, main): Refactor argv building to use
10903         obstacks.
10904
10905 2015-09-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10906
10907         * config/spu/spu-protos.h (spu_expand_atomic_op): Add prototype.
10908         * config/spu/spu.c (spu_expand_atomic_op): New function.
10909         * config/spu/spu.md (AINT): New mode iterator.
10910         (ATOMIC): New code iterator.
10911         (atomic_name, atomic_pred): New code predicates.
10912         ("atomic_load<mode>", "atomic_store<mode>"): New expanders.
10913         ("atomic_compare_and_swap<mode>", "atomic_exchange<mode>"): Likewise.
10914         (""atomic_<atomic_name><mode>", "atomic_fetch_<atomic_name><mode>",
10915         "atomic_<atomic_name>_fetch<mode>"): Likewise.
10916
10917 2015-09-30  Ilya Enkovich  <enkovich.gnu@gmail.com>
10918
10919         * config/i386/i386.c (scalar_chain::analyze_register_chain): Ignore
10920         debug insns.
10921         (scalar_chain::convert_reg): Likewise.
10922
10923 2015-09-30  Richard Biener  <rguenther@suse.de>
10924
10925         * builtins.c: Add comment that no new simplifications should
10926         be added here.
10927
10928 2015-09-30  Marek Polacek  <polacek@redhat.com>
10929
10930         PR tree-optimization/67690
10931         * tree-ssa-ifcombine.c (pass_tree_ifcombine::execute): Call
10932         reset_flow_sensitive_info_in_bb.
10933         * tree-ssa-tail-merge.c (replace_block_by): Likewise.
10934         * tree-ssanames.c: Include "gimple-iterator.h".
10935         (reset_flow_sensitive_info_in_bb): New function.
10936         * tree-ssanames.h (reset_flow_sensitive_info_in_bb): Declare.
10937
10938 2015-09-30  Thomas Schwinge  <thomas@codesourcery.com>
10939
10940         * config/i386/intelmic-mkoffload.c (target_ilp32): Remove
10941         variable, replacing it with...
10942         (offload_abi): ... this new variable.  Adjust all users.
10943         * config/nvptx/mkoffload.c (target_ilp32, offload_abi): Likewise.
10944
10945 2015-09-30  Matthias Klose  <doko@ubuntu.com>
10946
10947         * configure.ac: Remove extraneous ;;.
10948         * configure: Regenerate.
10949
10950 2015-09-29  James Bowman  <james.bowman@ftdichip.com>
10951
10952         * config/ft32/predicates.md (ft32_imm_operand): New predicate.
10953         * config/ft32/ft32.md (movmemsi, setmemsi): Use ft32_imm_operand
10954         predicate, disallow register for operand 2.
10955
10956 2015-09-29  Aditya Kumar  <aditya.k7@samsung.com>
10957
10958         * graphite-dependences.c (scop_get_dependences): Moved in down
10959         in order to be visible to its caller.
10960         * graphite-poly.h: Removed compute_deps, and extend_schedule.
10961
10962 2015-09-29  Sebastian Pop  <s.pop@samsung.com>
10963             Aditya Kumar  <aditya.k7@samsung.com>
10964
10965         PR tree-optimization/67754
10966         * graphite-optimize-isl.c (optimize_isl): Call
10967         isl_options_set_schedule_fuse with ISL_SCHEDULE_FUSE_MIN for ISL-14.
10968
10969 2015-09-29  Nathan Sidwell  <nathan@codesourcery.com>
10970
10971         * builtins.c (expand_builtin_acc_on_device): Delete.
10972         (expand_builtin): Don't call it.
10973         (fold_builtin_1): Fold acc_on_device.
10974
10975 2015-09-29  H.J. Lu  <hongjiu.lu@intel.com>
10976
10977         * config/i386/i386.c (ix86_function_arg): Fix typo in comments.
10978         (ix86_nsaved_sseregs): Likewise.
10979
10980 2015-09-29  Jeff Law  <law@redhat.com>
10981
10982         * config/microblaze/microblaze.c (microblaze_version_to_int): Remove
10983         computation of unused value.
10984
10985         * config/pdp11/pdp11.c (pdp11_branch_cost): New function.
10986         * config/pdp11/pdp11.h (BRANCH_COST): Call function rather than
10987         inline macro expansion.
10988
10989         * config/i386/t-interix (winnt-stubs.o): Fix compilation rule.
10990
10991         * config/sh/sh.c (gen_shl_and): Fix undefined left shift behaviour.
10992         (gen_shl_sext): Likewise.
10993         * config/sh/sh.md (divsi3): Likewise.
10994         (imm->ext_dest_operand splitter): Likewise.
10995
10996 2015-09-29  Sebastian Pop  <s.pop@samsung.com>
10997             Aditya Kumar  <aditya.k7@samsung.com>
10998
10999         * graphite-sese-to-poly.c (gsi_for_phi_node): Remove.
11000         (nb_data_writes_in_bb): Remove.
11001         (split_pbb): Remove.
11002         (split_reduction_stmt): Remove.
11003         (is_reduction_operation_p): Remove.
11004         (phi_contains_arg): Remove.
11005         (follow_ssa_with_commutative_ops): Remove.
11006         (detect_commutative_reduction_arg): Remove.
11007         (detect_commutative_reduction_assign): Remove.
11008         (follow_inital_value_to_phi): Remove.
11009         (edge_initial_value_for_loop_phi): Remove.
11010         (initial_value_for_loop_phi): Remove.
11011         (used_outside_reduction): Remove.
11012         (detect_commutative_reduction): Remove.
11013         (translate_scalar_reduction_to_array_for_stmt): Remove.
11014         (remove_phi): Remove.
11015         (dr_indices_valid_in_loop): Remove.
11016         (close_phi_written_to_memory): Remove.
11017         (translate_scalar_reduction_to_array): Remove.
11018         (rewrite_commutative_reductions_out_of_ssa_close_phi): Remove.
11019         (rewrite_commutative_reductions_out_of_ssa_loop): Remove.
11020         (rewrite_commutative_reductions_out_of_ssa): Remove.
11021         (build_poly_scop): Remove call to
11022         rewrite_commutative_reductions_out_of_ssa.
11023
11024 2015-09-29  Evandro Menezes  <e.menezes@samsung.com>
11025
11026         * config/arm/types.md (neon_ldp, neon_ldp_q, neon_stp, neon_stp_q):
11027         Add new insn types for vector load and store pairs.
11028         * config/arm/cortex-a53.md (cortex_a53_f_load_2reg): Add insn
11029         types "neon_ldp{,_q}".
11030         * config/arm/cortex-a57.md (neon_load_c): Add insn types
11031         "neon_ldp{,_q}".
11032         (neon_store_complex): Add insn types "neon_stp{,_q}".
11033         * config/aarch64/aarch64-simd.md (aarch64_be_movoi): Add insn types
11034         "neon_{ldp,stp}_q".
11035
11036 2015-09-29  Jeff Law  <law@redhat.com>
11037
11038         * config/rx/constraints.md (Int08): Fix undefined left shift
11039         behaviour.
11040         (Sint08, Sint16, Sint24): Likewise.
11041         * config/rx/rx.c (rx_get_stack_layout): Likewise.
11042
11043         * config/rl78/rl78-expand.md (movqi): Fix undefined left shift
11044         behaviour.
11045
11046         * config/msp430/msp430.c (msp430_legitimate_constant): Fix undefined
11047         left shift behaviour.
11048         * config/msp430/constraints.md ('L' constraint): Similarly.
11049         ('Ys' constraint): Similarly.
11050
11051 2015-09-29  Richard Biener  <rguenther@suse.de>
11052
11053         PR tree-optimization/67170
11054         * tree-ssa-alias.h (get_continuation_for_phi): Adjust
11055         the translate function pointer parameter to get the
11056         bool whether to disambiguate only by reference.
11057         (walk_non_aliased_vuses): Likewise.
11058         * tree-ssa-alias.c (maybe_skip_until): Adjust.
11059         (get_continuation_for_phi_1): Likewise.
11060         (get_continuation_for_phi): Likewise.
11061         (walk_non_aliased_vuses): Likewise.
11062         * tree-ssa-sccvn.c (const_parms): New bitmap.
11063         (vn_reference_lookup_3): Adjust for interface change.
11064         Disambiguate parameters pointing to readonly memory.
11065         (free_scc_vn): Free const_parms.
11066         (run_scc_vn): Initialize const_parms from a fn spec attribute.
11067
11068 2015-09-29  Richard Biener  <rguenther@suse.de>
11069
11070         PR tree-optimization/67741
11071         * tree-ssa-math-opts.c (pass_cse_sincos::execute): Only recognize
11072         builtin calls with correct signature.
11073
11074 2015-09-29  Ilya Enkovich  <enkovich.gnu@gmail.com>
11075
11076         PR target/65105
11077         * config/i386/i386.c: Include dbgcnt.h.
11078         (has_non_address_hard_reg): New.
11079         (convertible_comparison_p): New.
11080         (scalar_to_vector_candidate_p): New.
11081         (remove_non_convertible_regs): New.
11082         (scalar_chain): New.
11083         (scalar_chain::scalar_chain): New.
11084         (scalar_chain::~scalar_chain): New.
11085         (scalar_chain::add_to_queue): New.
11086         (scalar_chain::mark_dual_mode_def): New.
11087         (scalar_chain::analyze_register_chain): New.
11088         (scalar_chain::add_insn): New.
11089         (scalar_chain::build): New.
11090         (scalar_chain::compute_convert_gain): New.
11091         (scalar_chain::replace_with_subreg): New.
11092         (scalar_chain::replace_with_subreg_in_insn): New.
11093         (scalar_chain::emit_conversion_insns): New.
11094         (scalar_chain::make_vector_copies): New.
11095         (scalar_chain::convert_reg): New.
11096         (scalar_chain::convert_op): New.
11097         (scalar_chain::convert_insn): New.
11098         (scalar_chain::convert): New.
11099         (convert_scalars_to_vector): New.
11100         (pass_data_stv): New.
11101         (pass_stv): New.
11102         (make_pass_stv): New.
11103         (ix86_option_override): Created and register stv pass.
11104         (flag_opts): Add -mstv.
11105         (ix86_option_override_internal): Likewise.
11106         * config/i386/i386.md (SWIM1248x): New.
11107         (*movdi_internal): Add xmm to mem alternative for TARGET_STV.
11108         (and<mode>3): Use SWIM1248x iterator instead of SWIM.
11109         (*anddi3_doubleword): New.
11110         (*zext<mode>_doubleword): New.
11111         (*zextsi_doubleword): New.
11112         (<code><mode>3): Use SWIM1248x iterator instead of SWIM.
11113         (*<code>di3_doubleword): New.
11114         * config/i386/i386.opt (mstv): New.
11115         * dbgcnt.def (stv_conversion): New.
11116
11117 2015-09-29  Tom de Vries  <tom@codesourcery.com>
11118
11119         * tree-cfg.c (dump_function_to_file): Dump function attributes.
11120
11121 2015-09-29  Kaz Kojima  <kkojima@gcc.gnu.org>
11122
11123         PR target/67716
11124         * config/sh/sh.c (sh_override_options_after_change): New.
11125         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
11126         (sh_option_override): Move align_loops, align_jumps and
11127         align_functions handling into sh_override_options_after_change.
11128
11129 2015-09-28  Nathan Sidwell  <nathan@codesourcery.com>
11130
11131         * config/nvptx/nvptx.c: Include omp-low.h and gomp-constants.h.
11132         (nvptx_record_offload_symbol): Record function execution geometry.
11133         * config/nvptx/mkoffload.c (process): Include launch geometry in
11134         function data.
11135         * omp-low.c (oacc_launch_pack): New.
11136         (replace_oacc_fn_attrib): New.
11137         (set_oacc_fn_attrib): New.
11138         (get_oacc_fn_attrib): New.
11139         (expand_omp_target): Create keyed varargs for GOACC_parallel call
11140         generation.
11141         * omp-low.h (get_oacc_fn_attrib): Declare.
11142         * builtin-types.def (DEF_FUNCTION_TyPE_VAR_6): New.
11143         (DEF_FUNCTION_TYPE_VAR_11): Delete.
11144         * tree.h (OMP_CLAUSE_EXPR): New.
11145         * omp-builtins.def (BUILT_IN_GOACC_PARALLEL): Change target fn name.
11146
11147 2015-09-28  Aditya Kumar  <aditya.k7@samsung.com>
11148             Sebastian Pop  <s.pop@samsung.com>
11149
11150         * sese.c (invariant_in_sese_p_rec): Remove unused variable.
11151
11152 2015-09-28  Aditya Kumar  <aditya.k7@samsung.com>
11153             Sebastian Pop  <s.pop@samsung.com>
11154
11155         * graphite-optimize-isl.c (optimize_isl): Use ISL_SCHEDULE_FUSE_MAX.
11156         * graphite-scop-detection.c (struct sese_l): New type.
11157         (get_entry_bb): API for getting entry bb of SESE.
11158         (get_exit_bb): API for getting exit bb of SESE.
11159         (class debug_printer): New type.  Simple printer in debug mode.
11160         (trivially_empty_bb_p): New.  Return true when BB is empty or
11161         contains only debug instructions.
11162         (graphite_can_represent_expr): Call scalar_evoution_in_region
11163         instead of analyze_scalar_evolution.  Pass in scop instead of only
11164         the scop entry.
11165         (stmt_has_simple_data_refs_p): Pass in scop instead of only the
11166         scop entry.
11167         (stmt_simple_for_scop_p): Same.
11168         (harmful_stmt_in_bb): Same.
11169         (graphite_can_represent_loop): Deleted.
11170         (struct scopdet_info): Deleted.
11171         (scopdet_basic_block_info): Deleted.
11172         (build_scops_1): Deleted.
11173         (bb_in_sd_region): Deleted.
11174         (find_single_entry_edge): Deleted.
11175         (find_single_exit_edge): Deleted.
11176         (create_single_entry_edge): Deleted.
11177         (sd_region_without_exit): Deleted.
11178         (create_single_exit_edge): Deleted.
11179         (unmark_exit_edges): Deleted.
11180         (mark_exit_edges): Deleted.
11181         (create_sese_edges): Deleted.
11182         (build_graphite_scops): Deleted.
11183         (canonicalize_loop_closed_ssa): Recompute all dominators at the end.
11184         (build_scops): Use the new scop_builder to build scops.
11185         (dot_all_scops_1): Use the new pretty printer.  Print loop father
11186         as well.
11187         (loop_body_is_valid_scop): New.  Return true if loop body is a
11188         valid scop.
11189         (class scop_builder): New.  Builds SCoPs for polyhedral
11190         optimizations.
11191         (scop_builder): New constructor.
11192         (static sese_l invalid_sese): sese_l with invalid edges.
11193         (get_sese): Get an sese (from a loop) if possible, invalid_sese
11194         otherwise.
11195         (get_nearest_dom_with_single_entry): Get nearest dominator of a
11196         basic_block with single entry.  Return NULL if we get to the
11197         beginning of a function.
11198         (get_nearest_pdom_with_single_exit): Get nearest post-dominator of
11199         a basic_block with single exit.  Return NULL if we get to the
11200         beginning of a function.
11201         (print_sese): Pretty-print SESE.
11202         (merge_sese): Merge two SESEs if possible and return the new SESE.
11203         (build_scop_depth): Start building the SCoP within a loop nest.
11204         (build_scop_breadth): Start building the SCoP at a single loop
11205         depth.  Merge adjacent SESEs if valid.
11206         (can_represent_loop_1): Returns true if Graphite can represent
11207         loop inside SCoP.  Helper for can_represent_loop.
11208         (can_represent_loop): Returns true if Graphite can represent LOOP
11209         and all its nested loops in SCoP.
11210         (loop_is_valid_scop): Returns true if LOOP and all its nests
11211         constitute a valid SCoP.
11212         (region_has_one_loop): Returns true of a region has only one loop.
11213         (add_scop): Add SCoP to the list of valid scops.  Removes an
11214         already existing scop if it intersects with or subsumed by this one.
11215         (harmful_stmt_in_region): Returns true if SCoP has any statment
11216         which cannot be represented by Graphite.
11217         (subsumes): Returns true of SCoP S1 subsumes SCoP S2.
11218         (remove_subscops): Remove any SCoP from the list of already found
11219         SCoPs, if subsumed by S1.
11220         (intersects): Return true if region bounded by SCoPs S1 and S2
11221         intersect.
11222         (remove_intersecting_scops): Remove any SCoP which intersects with S1.
11223         * graphite.c (print_graphite_scop_statistics):
11224         (print_graphite_statistics): Print SCoP info while debugging.
11225         (graphite_initialize): Early exit in case number of loops in a
11226         function is less than PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION or
11227         basic blocks are more than PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
11228         (graphite_finalize):
11229         * params.def: Add PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION.
11230         * sese.h (sese_loop_depth): Remove unnecessary gcc_assert.
11231         (recompute_all_dominators): Recalculate POST_DOMINATORS.
11232         * tree-cfg.c (print_loops): Print the function name while printing
11233         loops.
11234
11235 2015-09-28  Aditya Kumar  <aditya.k7@samsung.com>
11236             Sebastian Pop  <s.pop@samsung.com>
11237
11238         PR tree-optimization/67700
11239         * graphite-sese-to-poly.c (parameter_index_in_region): Call
11240         invariant_in_sese_p_rec.
11241         (extract_affine): Same.
11242         (rewrite_cross_bb_scalar_deps): Call update_ssa.
11243         * sese.c (invariant_in_sese_p_rec): Export.  Handle vdefs and vuses.
11244         * sese.h (invariant_in_sese_p_rec): Declare.
11245
11246 2015-09-28  David Wohlferd  <dw@LimeGreenSocks.com>
11247
11248         * doc/extend.texi (Asm Labels): Break out text for data vs functions.
11249
11250 2015-09-28  Jiong Wang  <jiong.wang@arm.com>
11251
11252         Revert:
11253         2015-08-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11254                     Jiong Wang  <jiong.wang@arm.com>
11255
11256         * config/aarch64/aarch64.d (tlsdesc_small_pseudo_<mode>): New pattern.
11257         * config/aarch64/aarch64.h (reg_class): New enumeration FIXED_REG0.
11258         (REG_CLASS_NAMES): Likewise.
11259         (REG_CLASS_CONTENTS): Likewise.
11260         * config/aarch64/aarch64.c (aarch64_class_max_nregs): Likewise.
11261         (aarch64_register_move_cost): Likewise.
11262         (aarch64_load_symref_appropriately): Invoke the new added pattern if
11263         possible.
11264         * config/aarch64/constraints.md (Uc0): New constraint.
11265
11266 2015-09-28  Daniel Hellstrom  <daniel@gaisler.com>
11267
11268         * config/sparc/t-rtems: Remove -muser-mode. Add ut699, at697f and leon.
11269
11270 2015-09-28  David Edelsohn  <dje.gcc@gmail.com>
11271
11272         * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Place
11273         SECTION_EXCLUDE in XO mapping class.
11274
11275 2015-09-28  Oleg Endo  <olegendo@gcc.gnu.org>
11276
11277         PR target/54236
11278         * config/sh/predicates.md (t_reg_operand, negt_reg_operand): Allow
11279         and handle ne and eq codes.
11280         * config/sh/sh.c (sh_rtx_costs): Adjust matching of tst #imm,r0 insn.
11281         (sh_recog_treg_set_expr): Early accept negt_reg_operand.  Eearly reject
11282         CONST_INT_P.  Use reverse_condition.
11283         (sh_split_treg_set_expr): Likewise.
11284
11285 2015-09-28  James Greenhalgh  <james.greenhalgh@arm.com>
11286
11287         * config/arm/types.md (type): Add rotate_imm.
11288         * config/aarch64/aarch64.md (*ror<mode>3_insn): Split out the
11289         ROR immediate case.
11290         (*rorsi3_insn_uxtw): Likewise.
11291         * config/aarch64/thunderx.md (thunderx_shift): Add rotate_imm.
11292         * config/arm/cortex-a53.md (cortex_a53_alu_shift): Add rotate_imm.
11293         * config/arm/cortex-a57.md (cortex_a53_alu): Add rotate_imm.
11294
11295 2015-09-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11296
11297         PR rtl-optimization/67481
11298         * ifcvt.c (contains_ccmode_rtx_p): New function.
11299         (insn_valid_noce_process_p): Use it.
11300
11301 2015-09-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11302
11303         PR rtl-optimization/67456
11304         PR rtl-optimization/67464
11305         PR rtl-optimization/67465
11306         * ifcvt.c (noce_try_cmove_arith): Bail out if cannot conditionally
11307         move in the mode of x.  Handle combination of complex and simple
11308         block pairs as well as the case when one is empty.
11309
11310 2015-09-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11311
11312         * doc/gimple.texi: Update references to gimple_statement_base.
11313         * gdbhooks.py: Likewise.
11314         * gimple.h: Likewise.
11315
11316 2015-09-28  Daniel Cederman  <cederman@gaisler.com>
11317
11318         * config/sparc/driver-sparc.c: map LEON to leon3
11319
11320 2015-09-28  Daniel Cederman  <cederman@gaisler.com>
11321
11322         * config/sparc/sparc.opt: Rename mask from USER_MODE to SV_MODE
11323           and make it inverse to change default
11324         * config/sparc/sync.md: Only use supervisor ASI for CASA when in
11325           supervisor mode
11326         * doc/invoke.texi: Document change of default
11327
11328 2015-09-28  Daniel Cederman  <cederman@gaisler.com>
11329
11330         * config/sparc/sparc.c (sparc_function_value_regno_p): Do not return
11331         true on %f0 for a target without FPU.
11332         * config/sparc/sparc.md (untyped_call): Do not save %f0 for a target
11333         without FPU.
11334         (untyped_return): Do not load %f0 for a target without FPU.
11335
11336 2015-09-28  Andrew Pinski  <apinski@cavium.com>
11337
11338         * config/aarch64/aarch64.md (prefetch):
11339         Change the predicate of operand 0 to register_operand.
11340
11341 2015-09-27  Uros Bizjak  <ubizjak@gmail.com>
11342
11343         * config/i386/predicates.md (register_sse4nonimm_operand): New
11344         predicate.
11345         * config/i386/sse.md (PEXTR_MODE12): New mode iterator.
11346         (*vec_extract<mode>): Use PEXTR_MODE12 instead of VI12_128 mode.
11347         Use register_sse4nonimm_operand as operand 0 predicate.
11348         (*vec_extractv8hi_sse2): Remove insn pattern.
11349         (*vec_extract<PEXTR_MODE12:mode>_zext): Merge insn pattern from
11350         *vec_extractv8hi_zext and *vec_extractv16qi_zext patterns.
11351
11352 2015-09-27  Oleg Endo  <olegendo@gcc.gnu.org>
11353             Kaz Kojima  <kkojima@gcc.gnu.org>
11354
11355         PR target/67391
11356         * config/sh/sh-protos.h (sh_lra_p): Declare.
11357         * config/sh/sh.c (sh_lra_p): Make non-static.
11358         * config/sh/sh.md (addsi3): Use arith_reg_dest for operands[0] and
11359         arith_reg_operand for operands[1].  Remove TARGET_SHMEDIA case.
11360         Expand into addsi3_scr if operands[2] if needed.
11361         (*addsi3_compact): Rename to *addsi3_compact_lra.  Use
11362         arith_reg_operand for operands[1].  Allow it only when LRA is enabled.
11363         (addsi3_scr, *addsi3): New insn_and_split patterns.
11364
11365 2015-09-27  Alexandre Oliva <aoliva@redhat.com>
11366
11367         PR rtl-optimization/64164
11368         PR tree-optimization/67312
11369         PR middle-end/67340
11370         PR middle-end/67490
11371         PR bootstrap/67597
11372         * cfgexpand.c (parm_in_stack_slot_p): Remove.
11373         (ssa_default_def_partition): Remove.
11374         (get_rtl_for_parm_ssa_default_def): Remove.
11375         (set_rtl): Check that RTL assignments match expectations.
11376         Loop on SUBREGs, CONCATs and PARALLELs subexprs.  Set only the
11377         default def location for params and results.  Record SSA names
11378         or types in REG and MEM attrs, respectively.
11379         (set_parm_rtl): New.
11380         (expand_one_ssa_partition): Drop logic that assigned MEMs with
11381         unassigned addresses.
11382         (adjust_one_expanded_partition_var): Don't accept NULL RTL on
11383         deferred stack alloc vars.
11384         (expand_used_vars): Skip partitions holding parm default defs.
11385         Move adjust_one_expanded_partition_var loop...
11386         (pass_expand::execute): ... here.  Drop redundant assert.
11387         Adjust comments before the final loop over all ssa names.
11388         Require assigned rtl of parms and results to match exactly.
11389         Reset its attributes to match them, not any other variables in
11390         the same partition.
11391         (expand_debug_expr): Use entry value for PARM's default defs
11392         only iff they have zero nondebug uses.
11393         * cfgexpand.h (parm_in_stack_slot_p): Remove.
11394         (get_rtl_for_parm_ssa_default_def): Remove.
11395         (set_parm_rtl): Declare.
11396         * doc/invoke.texi: Improve wording.
11397         * explow.c (promote_decl_mode): Fix promote_function_mode for
11398         result decls not by reference.
11399         (promote_ssa_mode): Disregard BLKmode from promote_decl, and
11400         bypass TYPE_MODE to get the actual vector mode.
11401         * function.c: Include tree-dfa.h.  Revert 2015-08-14's and
11402         2015-08-19's changes as follows.  Drop include of
11403         basic-block.h and df.h.
11404         (rtl_for_parm): Remove.
11405         (maybe_reset_rtl_for_parm): Remove.
11406         (parm_in_unassigned_mem_p): Remove.
11407         (use_register_for_decl): Add logic for RESULT_DECLs matching
11408         assign_parms' behavior.
11409         (split_complex_args): Revert.
11410         (assign_parms_augmented_arg_list): Revert.  Add comment
11411         referencing the logic above.
11412         (assign_parm_adjust_stack_rtl): Revert.
11413         (assign_parm_setup_block): Revert.  Use set_parm_rtl instead
11414         of SET_DECL_RTL.  Set up a REG if the parm demands so.
11415         (assign_parm_setup_reg): Revert.  Consolidated SET_DECL_RTL
11416         calls into a single set_parm_rtl.  Set up a temporary RTL
11417         temporarily for expand_assignment.
11418         (assign_parm_setup_stack): Revert.  Use set_parm_rtl.
11419         (assign_parms_unsplit_complex): Revert.  Use set_parm_rtl.
11420         (assign_bounds): Revert.
11421         (assign_parms): Revert.  Use set_parm_rtl.
11422         (allocate_struct_function): Relayout result and parms of
11423         non-abstruct functions.
11424         (expand_function_start): Revert.  Use set_parm_rtl.  If the
11425         result is not a hard reg, create a pseudo from the promoted
11426         mode of the default def.  Promote static chain mode.
11427         * tree-outof-ssa.c (remove_ssa_form): Drop unused
11428         partition_has_default_def.  Set up
11429         partitions_for_parm_default_defs.
11430         (finish_out_of_ssa): Remove partition_has_default_def.
11431         Release partitions_for_parm_default_defs.
11432         * tree-outof-ssa.h (struct ssaexpand): Remove
11433         partition_has_default_def.  Add
11434         partitions_for_parm_default_defs.
11435         * tree-ssa-coalesce.c: Include tree-dfa.h, tm_p.h and
11436         stor-layout.h.
11437         (build_ssa_conflict_graph): Fix conflict-detection of default
11438         defs of even unused default defs of params and results.
11439         (for_all_parms): New.
11440         (create_default_def): New.
11441         (register_default_def): New.
11442         (coalesce_with_default): New.
11443         (create_outofssa_var_map): Create default defs for all parms
11444         and results, and register their partitions.  Add GIMPLE_RETURN
11445         operands as coalesce candidates with results.  Add default
11446         defs of each parm or result as coalesce candidates with its
11447         other defs.  Mark each result def, and each default def of
11448         parms, as used_in_copy.
11449         (gimple_can_coalesce_p): Call it.  Call use_register_for_decl
11450         with the ssa names, even anonymous ones.  Drop
11451         parm_in_stack_slot_p calls.  Require same signedness and
11452         alignment.
11453         (coalesce_ssa_name): Add coalesce candidates for all defs of
11454         each parm and result, even unused ones.
11455         (parm_default_def_partition_arg): New type.
11456         (set_parm_default_def_partition): New.
11457         (get_parm_default_def_partitions): New.
11458         * tree-ssa-coalesce.h (get_parm_default_def_partitions): New.
11459         * tree-ssa-live.c (partition_view_init): Regard unused defs of
11460         parms and results as used.
11461         (verify_live_on_entry): Don't error out just because they're
11462         not live.
11463
11464 2015-09-26  David Edelsohn  <dje.gcc@gmail.com>
11465
11466         * dwarf2out.c (XCOFF_DEBUGGING_INFO): Default 0 definition.
11467         (HAVE_XCOFF_DWARF_EXTRAS): Default to 0 definition.
11468         (output_fde): Don't output length for debug_frame on AIX.
11469         (output_call_frame_info): Don't output length for debug_frame on AIX.
11470         (have_macinfo): Force to False for XCOFF_DEBUGGING_INFO and not
11471         HAVE_XCOFF_DWARF_EXTRAS.
11472         (add_AT_loc_list): Return early if XCOFF_DEBUGGING_INFO and not
11473         HAVE_XCOFF_DWARF_EXTRAS.
11474         (output_compilation_unit_header): Don't output length on AIX.
11475         (output_pubnames): Don't output length on AIX.
11476         (output_aranges): Delete argument. Compute length locally. Don't
11477         output length on AIX.
11478         (output_line_info): Don't output length on AIX.
11479         (dwarf2out_finish): Don't compute aranges_length.
11480         * dwarf2asm.c (XCOFF_DEBUGGING_INFO): Default 0 definition.
11481         (dw2_asm_output_nstring): Emit .byte not .ascii on AIX.
11482         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): Emit correct
11483         symbol decoration for AIX.
11484         (rs6000_xcoff_debug_unwind_info): New.
11485         (rs6000_xcoff_asm_named_section): Emit .dwsect pseudo-op
11486         for SECTION_DEBUG.
11487         (rs6000_xcoff_declare_function_name): Emit different
11488         .function pseudo-op when DWARF2_DEBUG. Don't call
11489         xcoffout_declare_function for DWARF2_DEBUG.
11490         * config/rs6000/xcoff.h (TARGET_DEBUG_UNWIND_INFO):
11491         Redefine.
11492         * config/rs6000/aix71.h: New.
11493         * configure.ac (gcc_cv_as_aix_dwloc): Check AIX as for DWARF
11494         locations support.
11495         * configure: Regenerate.
11496         * config.gcc (powerpc-ibm-aix[789]+): New stanza for AIX 7.1+ with
11497         DWARF support.
11498
11499 2015-09-26  Jeff Law  <law@redhat.com>
11500
11501         * config/arc/arc.c (arc_output_addsi): Fix left shift undefined
11502         behaviour.
11503         * config/arc/constraints.md (Cca, C2a): Fix left shift undefined
11504         behaviour.
11505
11506         * config/sh/sh.h (CONST_OK_FOR_J16): Fix left shift undefined
11507         behaviour
11508
11509         * config/mips/mips.c (mips_compute_frame_info): Fix left shift
11510         undefined behaviour.
11511
11512         * config/cris/cris.md (asrandb): Fix left shift undefined
11513         behaviour.
11514         (asrandw): Likewise.
11515
11516 2015-09-25  Vladimir Makarov  <vmakarov@redhat.com>
11517
11518         PR target/61578
11519         * lra-constarints.c (match_reload): Check presence of the input pseudo
11520         in the output operand.
11521
11522 2015-09-25  Tobias Burnus  <burnus@net-b.de>
11523
11524         * doc/invoke.texi (-fsanitize): Minor wording tweak.
11525
11526 2015-09-25  Tobias Burnus  <burnus@net-b.de>
11527
11528         * doc/invoke.texi (-fsanitize): Update URLs.
11529
11530 2015-09-25  Teresa Johnson  <tejohnson@google.com>
11531
11532         * opts.c (finish_options): Unset -freorder-blocks-and-partition
11533         if not using profile.
11534
11535 2015-09-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11536
11537         PR pretty-print/67567
11538         * pretty-print.c (pp_string): Add gcc_checking_assert.
11539         * pretty-print.h (output_buffer_append_r): Likewise.
11540
11541 2015-09-25  Oleg Endo  <olegendo@gcc.gnu.org>
11542
11543         PR target/67675
11544         * config/sh/sh-mem.cc (sh_expand_cmpstr): Check alignment of addr1 and
11545         addr2 individually.  Don't emit logical or insn if one is known to
11546         be aligned approriately.
11547         (sh_expand_cmpnstr): Likewise.
11548
11549 2015-09-25  Richard Sandiford  <richard.sandiford@arm.com>
11550
11551         * config/aarch64/aarch64-builtins.c (aarch64_expand_builtin): Force
11552         __builtin_aarch64_fp[sc]r arguments into a register.
11553
11554 2015-09-25  H.J. Lu  <hongjiu.lu@intel.com>
11555
11556         * config.gcc (x86_archs): Replace lakemount with lakemont.
11557         (with_cpu): Likewise.
11558         (with_arch): Likewise.
11559         * config/i386/i386-c.c (ix86_target_macros_internal): Replace
11560         PROCESSOR_LAKEMOUNT with PROCESSOR_LAKEMONT.  Replace
11561         __tune_lakemount__ with __tune_lakemont__.
11562         * config/i386/i386.c (lakemount_cost): Renamed to ...
11563         (lakemont_cost): This.
11564         (m_LAKEMOUNT): Renamed to ...
11565         (m_LAKEMONT): This.
11566         (initial_ix86_arch_features): Replace m_LAKEMOUNT with m_LAKEMONT.
11567         (processor_target_table): Replace "lakemount" with "lakemont".
11568         (processor_alias_table): Likewise.
11569         (ix86_issue_rate): Replace PROCESSOR_LAKEMOUNT with
11570         PROCESSOR_LAKEMONT.
11571         (ix86_adjust_cost): Likewise.
11572         (ia32_multipass_dfa_lookahead): Likewise.
11573         * config/i386/i386.h (processor_type): Likewise.
11574         * config/i386/x86-tune.def: Replace m_LAKEMOUNT with m_LAKEMONT.
11575         * doc/invoke.texi: Replace lakemount with lakemont.  Replace
11576         Lakemount with Lakemont.
11577
11578 2015-09-24  H.J. Lu  <hongjiu.lu@intel.com>
11579
11580         * config.gcc (x86_archs): Replace iamcu with lakemount.
11581         (with_cpu): Likewise.
11582         (with_arch): Likewise.
11583         * doc/invoke.texi: Likewise.
11584         * config/i386/i386-c.c (ix86_target_macros_internal): Replace
11585         PROCESSOR_IAMCU with PROCESSOR_LAKEMOUNT.  Replace
11586         __tune_iamcu__ with __tune_lakemount__.
11587         * config/i386/i386.c (iamcu_cost): Renamed to ...
11588         (lakemount_cost): This.
11589         (m_IAMCU): Renamed to ...
11590         (m_LAKEMOUNT): This.
11591         (initial_ix86_arch_features): Replace m_IAMCU with m_LAKEMOUNT.
11592         (processor_target_table): Replace "iamcu" with "lakemount".
11593         (processor_alias_table): Likewise.
11594         (ix86_issue_rate): Replace PROCESSOR_IAMCU with
11595         PROCESSOR_LAKEMOUNT.
11596         (ix86_adjust_cost): Likewise.
11597         (ia32_multipass_dfa_lookahead): Likewise.
11598         * config/i386/i386.h (processor_type): Likewise.
11599         * config/i386/x86-tune.def: Replace m_IAMCU with m_LAKEMOUNT.
11600
11601 2015-09-24  John David Anglin  <danglin@gcc.gnu.org>
11602
11603         * config/pa/pa-linux.h (HAVE_sync_compare_and_swapdi): Define.
11604         * config/pa/pa-protos.h (pa_maybe_emit_compare_and_swap_exchange_loop):
11605         Declare.
11606         * config/pa/pa.c (pa_init_libfuncs): Init sync libfuncs up to 8 bytes.
11607         (pa_expand_compare_and_swap_loop): New.
11608         (pa_maybe_emit_compare_and_swap_exchange_loop): New.
11609         * config/pa/pa.md (atomic_storeqi, atomic_storehi, atomic_storesi,
11610         atomic_storesf, atomic_loaddf, atomic_storedf): New expanders.
11611         (atomic_loaddf_1, atomic_storedf_1): New insn patterns.
11612         (atomic_loaddi, atomic_loaddi_1, atomic_storedi, atomic_storedi_1):
11613         Revise.
11614
11615 2015-09-24  Michael Collison  <michael.collison@linaro.org>
11616
11617         PR other/57195
11618         * read-md.c (read_name): Allow mode iterators inside angle
11619         brackets in rtl expressions.
11620
11621 2015-09-24  Vladimir Makarov  <vmakarov@redhat.com>
11622
11623         PR target/61578
11624         * ira-color.c (update_allocno_cost): Add parameter.
11625         (update_costs_from_allocno): Decrease conflict cost.  Pass the new
11626         parameter.
11627
11628 2015-09-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11629
11630         PR driver/67640
11631         * opts-common.c (prune_options): Discard all -fdiagnostics-color
11632         but the last one, which is moved to the front to be processed
11633         first.
11634         * opts.c (enable_warning_as_error): Reject options that do not
11635         control warnings.
11636
11637 2015-09-24  Jiong Wang  <jiong.wang@arm.com>
11638
11639         * config/aarch64/aarch64.c (aarch64_print_operand): Add "CONST" support.
11640
11641 2015-09-24  Jiong Wang  <jiong.wang@arm.com>
11642
11643         * config/aarch64/aarch64-protos.h (aarch64_symbol_context): Delete.
11644         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Likewise.
11645         (aarch64_cannot_force_const_mem): Likewise.
11646         (aarch64_classify_address): Likewise.
11647         (aarch64_classify_symbolic_expression): Likewise.
11648         (aarch64_print_operand): Likewise.
11649         (aarch64_classify_symbol): Likewise.
11650         (aarch64_mov_operand_p): Likewise.
11651         * config/aarch64/predicates.md (aarch64_valid_symref): Likewise.
11652         (aarch64_mov_operand): Likewise.
11653
11654 2015-09-24  Segher Boessenkool  <segher@kernel.crashing.org>
11655
11656         * config/rs6000/rs6000.c (debug_stack_info): Invert the test
11657         for info->spe_gp_size.
11658
11659 2015-09-24  Richard Biener  <rguenther@suse.de>
11660
11661         PR lto/67699
11662         * lto-cgraph.c (compute_ltrans_boundary): Do not stream
11663         abstract origins.
11664
11665 2015-09-24  Thomas Schwinge  <thomas@codesourcery.com>
11666
11667         * tree-object-size.c (plus_stmt_object_size)
11668         (cond_expr_object_size): Change the formal parameters from gimple
11669         to gimple *.
11670         * tree-ssa-sccvn.h (vn_nary_op_insert_stmt): Likewise.
11671         * tree-ssa-sccvn.c (vn_nary_op_insert_stmt): Make it static.
11672         * tree-ssa-sccvn.h (vn_nary_op_insert_stmt): Don't declare.
11673
11674 2015-09-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11675
11676         * configure.ac (gcc_cv_ld_pie): Check for gld >= 2.26 on Solaris.
11677         Check for ld -type pie on Solaris 11.x and 12.
11678         * configure: Regenerate.
11679         * config.in: Regenerate.
11680
11681         * gcc.c (LD_PIE_SPEC): Allow redefinition.
11682
11683         * config/sol2.h (STARTFILE_CRTBEGIN_SPEC): Define.
11684         (STARTFILE_SPEC): Use it.
11685         (ENDFILE_CRTEND_SPEC): Define.
11686         (ENDFILE_SPEC): Use it and ENDFILE_ARCH_SPEC.
11687         (SUBTARGET_EXTRA_SPECS): Add STARTFILE_CRTBEGIN_SPEC,
11688         ENDFILE_ARCH_SPEC, ENDFILE_CRTEND_SPEC.
11689         [HAVE_LD_PIE && HAVE_SOLARIS_CRTS] (LD_PIE_SPEC): Define.
11690         (!(HAVE_LD_PIE && HAVE_SOLARIS_CRTS)] (LINK_PIE_SPEC): Define.
11691         * config/i386/sol2.h (ENDFILE_SPEC): Remove.
11692         (ENDFILE_ARCH_SPEC): Define.
11693         * config/sparc/sol2.h (ENDFILE_ARCH_SPEC): Define.
11694
11695 2015-09-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11696
11697         * configure.ac (gcc_cv_solaris_crts): New test.
11698         * configure. Regenerate.
11699         * config.in: Regenerate.
11700         * config/sol2.h (STARTFILE_SPEC): Simplify, provide
11701         HAVE_SOLARIS_CRTS variant.
11702
11703 2015-09-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11704
11705         * tree-inline.h (count_insns_seq): Delete prototype.
11706         (estimate_num_insns_seq): Define prototype.
11707         * tree-inline.c (count_insns_seq): Delete.
11708         (estimate_num_insns_seq): Remove static qualifier.
11709         * tree-eh.c (decide_copy_try_finally): Replace use of count_insns_seq
11710         with estimate_num_insns_seq.
11711
11712 2015-09-24  Richard Biener  <rguenther@suse.de>
11713
11714         * tree-ssa-sccvn.h (vn_reference_op_struct): Add clique and base
11715         members.
11716         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record clique
11717         and base for MEM_REF and TARGET_MEM_REF.  Handle BIT_FIELD_REF
11718         offset.
11719         (ao_ref_init_from_vn_reference): Record clique and base in the
11720         built base.
11721         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise
11722
11723 2015-09-24  Richard Biener  <rguenther@suse.de>
11724
11725         PR tree-optimization/48885
11726         * tree-ssa-structalias.c (visit_loadstore): Handle default defs
11727         as not including any restrict tags from other pointers.
11728
11729 2015-09-23  Thomas Schwinge  <thomas@codesourcery.com>
11730
11731         * gcc.c (handle_foffload_option): Don't lose the trailing NUL
11732         character when appending to offload_targets.
11733
11734         * configure.ac (offload_targets, OFFLOAD_TARGETS): Separate
11735         offload targets by commas, not colons.
11736         * config.in: Regenerate.
11737         * configure: Likewise.
11738         * gcc.c (driver::maybe_putenv_COLLECT_LTO_WRAPPER): Due to that,
11739         instead of setting up the default offload targets here...
11740         (process_command): ..., do it here.
11741         libgomp/
11742         * plugin/configfrag.ac (OFFLOAD_TARGETS): Clarify that offload
11743         targets are separated by commas.
11744         * config.h.in: Regenerate.
11745
11746 2015-09-23  Thomas Schwinge  <thomas@codesourcery.com>
11747             Nathan Sidwell  <nathan@codesourcery.com>
11748
11749         * omp-low.h (omp_reduction_init_op): Declare.
11750         * omp-low.c (omp_reduction_init_op): New, broken out of ...
11751         (omp_reduction_init): ... here.  Call it.
11752         * tree-parloops.c (initialize_reductions): Use
11753         omp_reduction_init_op.
11754
11755 2015-09-23   Richard Biener  <rguenther@suse.de>
11756
11757         PR middle-end/67662
11758         * fold-const.c (fold_binary_loc): Do not reassociate two vars with
11759         undefined overflow unless they will cancel out.
11760
11761 2015-09-23  Kirill Yukhin  <kirill.yukhin@intel.com>
11762
11763         * config/i386/i386.md (define_insn "*<mshift><mode>3"): Fix
11764         insn emit.
11765
11766 2015-09-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11767
11768         PR c/49655
11769         * opts.h (write_langs): Declare.
11770         * opts-global.c (write_langs): Make it extern.
11771
11772 2015-09-23  Oleg Endo  <olegendo@gcc.gnu.org>
11773
11774         PR target/67391
11775         * config/sh/sh.md (addsi3, *addsi3_compact): Don't check for
11776         overlapping regs when matching the pattern.
11777
11778 2015-09-23  James Greenhalgh  <james.greenhalgh@arm.com>
11779
11780         * config/aarch64/aarch64-simd.md
11781         (aarch64_float_truncate_hi_v4sf): Rewrite as an expand.
11782         (aarch64_float_truncate_hi_v4sf_le): New.
11783         (aarch64_float_truncate_hi_v4sf_be): Likewise.
11784
11785 2015-09-23  Richard Biener  <rguenther@suse.de>
11786
11787         * tree-ssa-structalias.c (intra_create_variable_infos): Build
11788         representatives for all restrict qualified pointer destinations.
11789
11790 2015-09-23  Kirill Yukhin  <kirill.yukhin@intel.com>
11791
11792         * config/i386/i386.md (define_code_attr mshift): New.
11793         (define_mode_iterator SWI1248_AVX512BW): Rename ...
11794         (SWI1248_AVX512BW): ... to this. Make QI enabled for TARGET_AVX512DQ
11795         only.
11796         (define_insn "*k<logic><mode>"): Use new iterator name.
11797         (define_insn "*<mshift><mode>3"): New.
11798
11799 2015-09-23  Mikhail Maltsev  <maltsevm@gmail.com>
11800
11801         PR middle-end/67649
11802         * memory-block.h (memory_block_pool::allocate): Use valgrind API to
11803         mark the block as accessible.
11804
11805 2015-09-22  Segher Boessenkool  <segher@kernel.crashing.org>
11806
11807         * function.c (thread_prologue_and_epilogue_insns): Delete
11808         orig_entry_edge argument to try_shrink_wrapping.
11809         * shrink-wrap.c (can_get_prologue): New function.
11810         (can_dup_for_shrink_wrapping): Also handle EDGE_CROSSING.
11811         (try_shrink_wrapping): Delete orig_entry_edge argument.  Use
11812         can_get_prologue where needed.  Remove code that finds a single
11813         edge for the prologue.  Remove code that tests if any reg clobbered
11814         by the prologue is live on the prologue edge.  Remove code that finds
11815         the new prologue edge after duplicating blocks.  Make a new prologue
11816         block and edge.
11817         * shrink-wrap.h (try_shrink_wrapping): Delete orig_entry_edge argument.
11818
11819 2015-09-22  Jeff Law  <law@redhat.com>
11820
11821         * config/pa/pa.h (MIN_LEGIT_64BIT_CONST_INT): Avoid undefined
11822         behavior.
11823
11824 2015-09-22  Nathan Sidwell  <nathan@codesourcery.com>
11825
11826         * doc/invoke.texi  (-Wmultiple-inheritance, -Wvirtual-inheritance,
11827         -Wtemplates, -Wnamespaces): Document.
11828
11829 2015-09-22  Tom de Vries  <tom@codesourcery.com>
11830
11831         PR tree-optimization/67671
11832         * tree-ssa-structalias.c (create_variable_info_for_1): Handle restrict
11833         pointer references as restrict.
11834
11835 2015-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
11836
11837         * config/nios2/nios2.c (nios2_legitimize_address): When handling
11838         'reg + reloc' cases, allow first operand to be non-REG, and use
11839         force_reg() to enforce address pattern.
11840
11841 2015-09-22  Alexander Fomin <alexander.fomin@intel.com>
11842
11843         PR target/67480
11844         * config/i386/sse.md (define_mode_iterator VI48_AVX_AVX512F): New.
11845         (define_mode_iterator VI12_AVX_AVX512F): New.
11846         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Change
11847         all iterators to VI48_AVX_AVX512F. Extract remaining modes ...
11848         (define_insn "*<code><mode>3"): ... Into new pattern using
11849         VI12_AVX_AVX512F iterators without masking.
11850
11851 2015-09-22  Kirill Yukhin  <kirill.yukhin@intel.com>
11852
11853         * config.gcc: Support "skylake-avx512".
11854         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
11855         PROCESSOR_SKYLAKE_AVX512.
11856         * config/i386/i386.c (m_SKYLAKE_AVX512): Define.
11857         (processor_target_table): Add "skylake-avx512".
11858         (PTA_SKYLAKE_AVX512): Define.
11859         (ix86_option_override_internal): Add "skylake_avx512".
11860         (fold_builtin_cpu): Handle "skylake_avx512", add F_AVX512VL
11861         F_AVX512BW, F_AVX512DQ, F_AVX512ER, F_AVX512PF, F_AVX512CD.
11862         * config/i386/i386.h (TARGET_SKYLAKE_AVX512): Define.
11863         (processor_type): Add PROCESSOR_SKYLAKE_AVX512.
11864         * doc/invoke.texi (skylake-avx512): New.
11865
11866 2015-09-22  Kirill Yukhin  <kirill.yukhin@intel.com>
11867
11868         * config/i386/i386.md (define_insn "kunpckhi"): Fix
11869         operand in pattern.
11870         (define_insn "kunpcksi"): Ditto.
11871         (define_insn "kunpckdi"): Ditto.
11872
11873 2015-09-22  Kirill Yukhin  <kirill.yukhin@intel.com>
11874
11875         * config/i386/i386.md (define_split not/xor SWI1248x): Use
11876         iterator instead of fixed modes.
11877
11878 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
11879
11880         * config/aarch64/aarch64-protos.h (aarch64_gen_atomic_ldop):
11881         Adjust declaration.
11882         * config/aarch64/aarch64.c (aarch64_emit_bic): New.
11883         (aarch64_gen_atomic_ldop): Adjust comment.  Add parameter
11884         out_result.  Update to support update-fetch operations.
11885         * config/aarch64/atomics.md (aarch64_atomic_exchange<mode>_lse):
11886         Adjust for change to aarch64_gen_atomic_ldop.
11887         (aarch64_atomic_<atomic_optab><mode>_lse): Likewise.
11888         (aarch64_atomic_fetch_<atomic_optab><mode>_lse): Likewise.
11889         (atomic_<atomic_optab>_fetch<mode>): Change to an expander.
11890         (aarch64_atomic_<atomic_optab>_fetch<mode>): New.
11891         (aarch64_atomic_<atomic_optab>_fetch<mode>_lse): New.
11892
11893 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
11894
11895         * config/aarch64/aarch64-protos.h
11896         (aarch64_atomic_ldop_supported_p): Declare.
11897         * config/aarch64/aarch64.c (aarch64_atomic_ldop_supported_p): New.
11898         (enum aarch64_atomic_load_op_code): New.
11899         (aarch64_emit_atomic_load_op): New.
11900         (aarch64_gen_atomic_ldop): Update to support load-operate
11901         patterns.
11902         * config/aarch64/atomics.md (atomic_<atomic_optab><mode>): Change
11903         to an expander.
11904         (aarch64_atomic_<atomic_optab><mode>): New.
11905         (aarch64_atomic_<atomic_optab><mode>_lse): New.
11906         (atomic_fetch_<atomic_optab><mode>): Change to an expander.
11907         (aarch64_atomic_fetch_<atomic_optab><mode>): New.
11908         (aarch64_atomic_fetch_<atomic_optab><mode>_lse): New.
11909
11910 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
11911
11912         * config/aarch64/aarch64/atomics.md (UNSPECV_ATOMIC_LDOP): New.
11913         (UNSPECV_ATOMIC_LDOP_OR): New.
11914         (UNSPECV_ATOMIC_LDOP_BIC): New.
11915         (UNSPECV_ATOMIC_LDOP_XOR): New.
11916         (UNSPECV_ATOMIC_LDOP_PLUS): New.
11917         (ATOMIC_LDOP): New.
11918         (atomic_ldop): New.
11919         (aarch64_atomic_load<atomic_ldop><mode>): New.
11920
11921 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
11922
11923         * config/aarch64/aarch64.md
11924         (<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Make a named
11925         pattern.
11926
11927 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
11928
11929         * config/aarch64/aarch64-protos.h (aarch64_gen_atomic_ldop):
11930         Declare.
11931         * config/aarch64/aarch64.c (aarch64_emit_atomic_swap): New.
11932         (aarch64_gen_atomic_ldop): New.
11933         (aarch64_split_atomic_op): Fix whitespace and add a comment.
11934         * config/aarch64/atomics.md (UNSPECV_ATOMIC_SWP): New.
11935         (aarch64_compare_and_swap<mode>_lse): Fix some whitespace.
11936         (atomic_exchange<mode>): Replace with an expander.
11937         (aarch64_atomic_exchange<mode>): New.
11938         (aarch64_atomic_exchange<mode>_lse): New.
11939         (aarch64_atomic_<atomic_optab><mode>): Fix some whitespace.
11940         (aarch64_atomic_swp<mode>): New.
11941
11942 2015-09-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11943
11944         * tree-inline.c (expand_call_inline): Use inform for extra note.
11945         Do not give a note with UNKNOWN_LOCATION.
11946         Replace input_location with gimple_location (stmt).
11947         Use true/false instead of TRUE/FALSE.
11948
11949 2015-09-22  Tom de Vries  <tom@codesourcery.com>
11950
11951         PR tree-optimization/67666
11952         * tree-ssa-structalias.c (create_variable_info_for_1): Handle struct
11953         with single field non-conservative.
11954
11955 2015-09-21  David S. Miller  <davem@davemloft.net>
11956
11957         PR/67622
11958         Revert:
11959         2015-09-11  David S. Miller  <davem@davemloft.net>
11960
11961         * config/sparc/constraints.md: Make "U" constraint a real register
11962         constraint.
11963         * config/sparc/sparc.c (TARGET_LRA_P): Define.
11964         (D_MODES, DF_MODES): Add missing cast.
11965         (TF_MODES, TF_MODES_NO_S): Include T_MODE.
11966         (OF_MODES, OF_MODES_NO_S): Include O_MODE.
11967         (sparc_register_move_cost): Decrease Niagara/UltrsSPARC memory
11968         cost to 8.
11969         * config/sparc/sparc.h (PROMOTE_MODE): Define.
11970         * config/sparc/sparc.md (*movsi_lo_sum, *movsi_high): Do not
11971         provide these insn when flag_pic.
11972
11973         2015-09-17  David S. Miller  <davem@davemloft.net>
11974
11975         * config/sparc/sparc-protos.h (sparc_secondary_memory_needed):
11976         Declare.
11977         * config/sparc/sparc.c (sparc_secondary_memory_needed): New
11978         function.
11979         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Use it.
11980         (HARD_REGNO_CALLER_SAVE_MODE): Define.
11981         * config/sparc/sparc.md (sethi_di_medlow, losum_di_medlow, seth44)
11982         (setm44, setl44, sethh, setlm, sethm, setlo, embmedany_sethi)
11983         (embmedany_losum, embmedany_brsum, embmedany_textuhi)
11984         (embmedany_texthi, embmedany_textulo, embmedany_textlo): Do not
11985         provide when flag_pic.
11986
11987 2015-09-21  Jeff Law  <law@redhat.com>
11988
11989         * config/h8300/h8300.md (andsi3_ashift_n_lower): Avoid undefined
11990         behavior.
11991
11992 2015-09-21  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11993
11994         * config/spu/spu.c (spu_expand_insv): Avoid undefined behavior.
11995
11996 2015-09-21  Richard Biener  <rguenther@suse.de>
11997
11998         * passes.c (rest_of_decl_compilation): Do not call
11999         dwarf2out_early_global_decl for aliases.
12000
12001 2015-09-21  Richard Biener  <rguenther@suse.de>
12002
12003         PR debug/67664
12004         * dwarf2out.c (add_location_or_const_value_attribute): Remove
12005         attribute parameter.  Early exit if either DW_AT_const_value
12006         or DW_AT_location are present already.
12007         (gen_variable_die): Adjust caller.
12008         (dwarf2out_late_global_decl): Likewise.
12009
12010 2015-09-21  Oleg Endo  <olegendo@gcc.gnu.org>
12011
12012         PR target/67657
12013         * config/sh/sh.c (sh_remove_overlapping_post_inc,
12014         sh_peephole_emit_move_insn): Add new functions.
12015         * config/sh/sh-protos.h (sh_remove_overlapping_post_inc,
12016         sh_peephole_emit_move_insn): Declere them.
12017         * config/sh/sh.md: Use them in various peephole2 patterns.
12018
12019 2015-09-21  Richard Biener  <rguenther@suse.de>
12020
12021         PR middle-end/67651
12022         * rtlanal.c (nonzero_address_p): SYMBOL_REFs may have zero
12023         address with -fno-delete-null-pointer-checks.
12024
12025 2015-09-21  Alan Lawrence  <alan.lawrence@arm.com>
12026
12027         * config/rs6000/altivec.md (reduc_splus_<mode>): Rename to...
12028         (reduc_plus_scal_<mode>): ...this, add rs6000_expand_vector_extract.
12029         (reduc_uplus_v16qi): Remove.
12030
12031         * config/rs6000/vector.md (VEC_reduc_name): Change "splus" to "plus".
12032         (reduc_<VEC_reduc_name>_v2df): Remove.
12033         (reduc_<VEC_reduc_name>_v4sf): Remove.
12034         (reduc_<VEC_reduc:VEC_reduc_name>_scal_<VEC_F:name>): New.
12035
12036         * config/rs6000/vsx.md (vsx_reduc_<VEC_reduc_name>_v2df): Declare
12037         gen_ function by removing * prefix.
12038         (vsx_reduc_<VEC_reduc_name>_v4sf): Likewise.
12039
12040 2015-09-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12041
12042         PR middle-end/60832
12043         * tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations):
12044         Print i_bound without converting it to a tree.
12045
12046 2015-09-21  Bilyan Borisov  <bilyan.borisov@arm.com>
12047
12048         * config/arm/arm.c (thumb_output_move_mem_multiple): Replaced
12049         operands[4] operands[5] swap with std::swap, removed tmp variable.
12050         (arm_evpc_neon_vzip): Replaced in0/in1 and
12051         out0/out1 swaps with std::swap, removed x variable.
12052         (arm_evpc_neon_vtrn): Replaced in0/int1 and
12053         out0/out1 swaos with std::swap, removed x variable.
12054         (arm_expand_vec_perm_const_1): Replaced
12055         d->op0/d->op1 swap with std::swap, removed x variable.
12056         (arm_evpc_neon_vuzp): Replaced in0/in1 and
12057         out0/out1 swaps with std::swap, removed x variable.
12058
12059 2015-09-21  Jonathan Yong  <10walls@gmail.com>
12060
12061         * config/i386/cygwin.h (STARTFILE_SPEC): Explicitly search
12062         sysroot/usr/lib/32api for additional win32 libraries,
12063         fixes failing Cygwin bootstrapping.
12064
12065 2015-09-21  Oleg Endo  <olegendo@gcc.gnu.org>
12066
12067         * doc/invoke.texi (SH Options): Undocument SH5/SH64 related options.
12068
12069 2015-09-21  Oleg Endo  <olegendo@gcc.gnu.org>
12070
12071         PR target/67126
12072         * config/sh/sh.md (*reg_lsb_t): Emit bld insn on SH2A.
12073         (*mov_t_msb_neg): Rewrite negc pattern.
12074
12075 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
12076
12077         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Cleanup
12078         immediate generation code.
12079
12080 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
12081
12082         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Remove
12083         redundant immediate generation code.
12084
12085 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
12086
12087         * config/aarch64/aarch64.c (aarch64_bitmasks): Remove.
12088         (AARCH64_NUM_BITMASKS): Remove.
12089         (aarch64_bitmasks_cmp): Remove.
12090         (aarch64_build_bitmask_table): Remove.
12091
12092 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
12093
12094         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Replace
12095         slow immediate matching loops with a faster algorithm.
12096
12097 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
12098
12099         * config/aarch64/aarch64.c (aarch64_bitmask_imm): Reimplement using
12100         faster algorithm.
12101
12102 2015-09-20  Jeff Law  <law@redhat.com>
12103
12104         PR tree-optimization/47679
12105         * tree-ssa-dom.c (record_temporary_equivalences): No longer static.
12106         * tree-ssa-dom.h (record_temporary_equivalences): Add prototype.
12107         * tree-ssa-threadedge.c: Include tree-ssa-dom.h.
12108         (thread_through_normal_block): Use record_temporary_equivalences.
12109
12110 2015-09-19  Trevor Saunders  <tbsaunde@tbsaunde.org>
12111
12112         * coretypes.h (gimple): Change typedef to be a forward declaration.
12113         * gimple.h (gimple_statement_base): rename to gimple.
12114         * (all functions and types using gimple): Adjust.
12115         * *.[ch]: Likewise.
12116
12117 2015-09-19  Andrew Dixie  <andrewd@gentrack.com>
12118             David Edelsohn  <dje.gcc@gmail.com>
12119
12120         * config/rs6000/xcoff.h (EH_FRAME_IN_DATA_SECTION): Delete.
12121         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
12122         (EH_FRAME_THROUGH_COLLECT2): Define.
12123         (EH_TABLES_CAN_BE_READ_ONLY): Define.
12124         (ASM_OUTPUT_DWARF_PCREL): Define.
12125         (ASM_OUTPUT_DWARF_DATAREL): Define.
12126
12127 2015-09-19  John David Anglin  <danglin@gcc.gnu.org>
12128
12129         * config/pa/pa.c (pa_function_ok_for_sibcall): Remove special treatment
12130         of TARGET_ELF32.
12131
12132 2015-09-18  Jeff Law  <law@redhat.com>
12133
12134         PR tree-optimization/47679
12135         * tree-ssa-dom.c (avail_exprs_stack): No longer file scoped.  Move
12136         it here ...
12137         (dom_opt_dom_walker): New private member holding the avail_exprs_stack
12138         object.  Update constructor.
12139         (pass_dominator::execute):  Corresponding chagnes to declaration
12140         and initialization of avail_exprs_stack.  Update constructor call
12141         for dom_opt_dom_walker object.
12142         (lookup_avail_expr, record_cond): Accept additional argument.  Pass
12143         it down to children as needed.
12144         (record_equivalences_from_incoming_edge): Likewise.
12145         (eliminate_redundant_computations): Likewise.
12146         (record_equivalences_from_stmt): Likewise.
12147         (simplify_stmt_for_jump_threading): Likewise.
12148         (record_temporary_equivalences): Likewise.
12149         (optimize_stmt): Likewise.
12150         (dom_opt_dom_walker::thread_across_edge): Update access to
12151         avail_exprs_stack object and pass it to children as needed.
12152         (dom_opt_dom_walker::before_dom_children): Similarly.
12153         (dom_opt_dom_walker::after_dom_children): Similarly.
12154         * tree-ssa-threadedge.c (pfn_simplify): New typedef.
12155         (record_temporary_equivalences_from_stmts_at_dest): Use new typedef.
12156         Add avail_expr_stack argument.  Pass it to children as needed.
12157         (dummy_simplify): Likewise.
12158         (simplify_control_stmt_condition): Likewise.
12159         (thread_around_empty_blocks): Likewise.
12160         (thread_through_normal_block): Likewise.
12161         (thread_across_edge): Likewise.
12162         * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
12163         * tree-vrp.c (simplify_stmt_for_jump_threading): Update.
12164
12165         PR tree-optimization/47679
12166         * tree-ssa-dom.c (const_and_copies): No longer file scoped.  Move
12167         it here ...
12168         (dom_opt_dom_walker): New private member holding the const_and_copies
12169         object.  Update constructor.
12170         (pass_dominator::execute): Corresponding changes to declaration
12171         and initialization of const_and_copies.  Update constructor call
12172         for the dom_opt_dom_walker object.
12173         (record_temporary_equivalences): Accept const_and_copies argument
12174         pass it down to children as needed.
12175         (record_equality): Likewise.
12176         (record_equivalences_from_incoming_edge): Likewise.
12177         (cprop_into_successor_phis, optimize_stmt): Likewise.
12178         (eliminate_redundant_computations): Likewise.
12179         (dom_opt_dom_walker::thread_across_edge): Update access to
12180         const_and_copies object and pass it to children as needed.
12181         (dom_opt_dom_walker::before_dom_children): Similarly.
12182         (dom_opt_dom_walker::after_dom_children): Similarly.
12183
12184         PR tree-optimization/47679
12185         * tree-ssa-dom.c (avail_exprs): No longer file scoped.  Bury
12186         it into the avail_exprs_stack class.
12187         (pass_dominator::execute): Corresponding changes to declaration
12188         and initialization of avail_exprs.  Pass avail_exprs to
12189         dump_dominator_optimization_stats.
12190         (record_cond): Extract avail_exprs from avail_exprs_stack.
12191         (lookup_avail_expr): Similarly.
12192         (htab_staticstics): Remove unnecessary prototype.  Move to earlier
12193         position in file.
12194         (dump_dominator_optimization_stats): Make static and prototype.
12195         Add argument for the hash table to dump.
12196         (debug_dominator_optimization_stats): Remove.
12197         * tree-ssa-dom.h (dump_dominator_optimization_stats): Remove
12198         prototype.
12199         (debug_dominator_optimization_stats): Similarly.
12200         * tree-ssa-scopedtables.h (class avail_exprs_stack): Add missing
12201         "void" in prototype for pop_to_marker method.  Add accessor method
12202         for the underlying avail_exprs table.
12203
12204         * tree-ssa-threadedge.c: Remove trailing whitespace.
12205
12206 2014-09-18  John David Anglin  <danglin@gcc.gnu.org>
12207
12208         * config/pa/pa-protos.h (pa_cint_ok_for_move): Change argument type to
12209         unsigned.
12210         (pa_ldil_cint_p): Likewise.
12211         * config/pa/pa.c (pa_cint_ok_for_move): likewise.
12212         (pa_ldil_cint_p): Likewise. Change signed casts to unsigned.
12213         Update callers.
12214         * config/pa/pa.md: Likewise.
12215
12216 2015-09-18  David Malcolm  <dmalcolm@redhat.com>
12217
12218         * Makefile.in (OBJS-libcommon): Add diagnostic-show-locus.o.
12219         * diagnostic.c (adjust_line): Move to diagnostic-show-locus.c.
12220         (diagnostic_show_locus): Likewise.
12221         (diagnostic_print_caret_line): Likewise.
12222         * diagnostic-show-locus.c: New file.
12223
12224 2015-09-18  David Edelsohn  <dje.gcc@gmail.com>
12225
12226         * dwarf2out.c (switch_to_eh_frame_section): Add ATTRIBUTE_UNUSED to
12227         "back" parameter. Declare label in #if block.
12228
12229 2015-09-18  Uros Bizjak  <ubizjak@gmail.com>
12230
12231         PR middle-end/67619
12232         * except.c (expand_builtin_eh_return): Use copy_addr_to_reg to copy
12233         the address to a register.
12234
12235 2015-09-18  Jeff Law  <law@redhat.com>
12236
12237         PR tree-optimization/47679
12238         * Makefile.in (OBJS): Add tree-ssa-phionlycprop.o
12239         * tree-ssa-dom.c: Remove unnecessary header includes.
12240         (remove_stmt_or_phi): Moved from here into tree-ssa-phionlycprop.c
12241         (get_rhs_or_phi_arg, get_lhs_or_phi_result): Likewise.
12242         (propagate_rhs_into_lhs, eliminate_const_or_copy): Likewise.
12243         (eliminate_degenerate_phis_1, pass_phi_only_cprop): Likewise.
12244         (pass_phi_only_cprop::execute): Likewise.
12245         (make_pass_phi_only_cprop): Likewise.
12246         * tree-ssa-phionlycprop.c: New file with moved code.  Eliminate
12247         uses of file scoped statics by passing the required objects
12248         as parameters wherever needed.
12249
12250 2015-09-18  Andrew Dixie  <andrewd@gentrack.com>
12251             David Edelsohn  <dje.gcc@gmail.com>
12252
12253         * defaults.h (EH_FRAME_SECTION_NAME): Depend on
12254         EH_FRAME_THROUGH_COLLECT2.
12255         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add case for
12256         DW_EH_PE_datarel.
12257         * dwarf2out.c (switch_to_eh_frame_section): Use a read-only section
12258         even if EH_FRAME_SECTION_NAME is undefined.  Restrict special
12259         collect2 labels to EH_FRAME_THROUGH_COLLECT2.
12260         * except.c (switch_to_exception_section): Use a read-only section
12261         even if EH_FRAME_SECTION_NAME is undefined.
12262         * system.h (EH_FRAME_IN_DATA_SECTION): Poison.
12263         * collect2.c (write_c_file_stat): Provide dbase on AIX.
12264         (scan_prog_file): Don't export __dso_handle nor
12265         __gcc_unwind_dbase.
12266         * config/rs6000/aix.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
12267         (EH_TABLES_CAN_BE_READ_ONLY): Define.
12268         (ASM_OUTPUT_DWARF_PCREL): Define.
12269         (ASM_OUTPUT_DWARF_DATAREL): Define.
12270         (EH_FRAME_THROUGH_COLLECT2): Define.
12271         (EH_FRAME_IN_DATA_SECTION): Delete.
12272         * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtdbase.o.
12273         * config/rs6000/rs6000-protos.h (rs6000_asm_output_dwarf_pcrel):
12274         Declare.
12275         (rs6000_asm_output_dwarf_datarel): Declare.
12276         * config/rs6000/rs6000.c (rs6000_aix_asm_output_dwarf_pcrel): New.
12277         (rs6000_aix_asm_output_dwarf_datarel): New.
12278         (rs6000_xcoff_asm_init_sections): Don't set exception_section.
12279         * config/spu/spu-elf.h (EH_FRAME_IN_DATA_SECTION): Delete.
12280         (EH_FRAME_THROUGH_COLLECT2): Define.
12281         * config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Delete.
12282         (EH_FRAME_THROUGH_COLLECT2): Define.
12283         (EH_TABLES_CAN_BE_READ_ONLY): Define.
12284         * doc/tm.texi.in (EH_FRAME_IN_DATA_SECTION): Delete.
12285         (EH_FRAME_THROUGH_COLLECT2): New.
12286         (ASM_OUTPUT_DWARF_DATAREL): New.
12287         * doc/tm.texi: Regenerate.
12288
12289 2015-09-18  Richard Biener  <rguenther@suse.de>
12290
12291         * dwarf2out.c (append_entry_to_tmpl_value_parm_die_table): Assert
12292         we're in early phase.
12293         (schedule_generic_params_dies_gen): Likewise.
12294         (gen_remaining_tmpl_value_param_die_attribute): Do only as much
12295         work as possible, retaining unhandled cases.
12296         (gen_scheduled_generic_parms_dies): Set early-dwarf flag and
12297         clear out generic_type_instances at the end.
12298         (dwarf2out_finish): Move call to gen_scheduled_generic_parms_dies...
12299         (dwarf2out_early_finish): ... here.  Do most of
12300         gen_remaining_tmpl_value_param_die_attribute here.
12301
12302 2015-09-18  Alan Lawrence  <alan.lawrence@arm.com>
12303
12304         PR tree-optimization/67283
12305         * tree-sra.c (type_consists_of_records_p): Rename to...
12306         (scalarizable_type_p): ...this, add case for ARRAY_TYPE.
12307         (completely_scalarize_record): Rename to...
12308         (completely_scalarize): ...this, add ARRAY_TYPE case, move some code to:
12309         (scalarize_elem): New.
12310         (analyze_all_variable_accesses): Follow renamings.
12311
12312 2015-09-18  Richard Biener  <rguenther@suse.de>
12313
12314         * dwarf2out.c (add_location_or_const_value_attribute): Do nothing
12315         in early-dwarf.
12316
12317 2015-09-18  Richard Biener  <rguenther@suse.de>
12318
12319         PR tree-optimization/66142
12320         * fold-const.c (operand_equal_p): When OEP_ADDRESS_OF
12321         treat MEM[&x] and x the same.
12322         * tree-ssa-sccvn.h (vn_reference_fold_indirect): Remove.
12323         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Return true
12324         when we simplified sth.
12325         (vn_reference_maybe_forwprop_address): Likewise.
12326         (valueize_refs_1): When we simplified through
12327         vn_reference_fold_indirect or vn_reference_maybe_forwprop_address
12328         set valueized_anything to true.
12329         (vn_reference_lookup_3): Use stmt_kills_ref_p to see whether
12330         one ref kills the other instead of just a offset-based test.
12331         * tree-ssa-alias.c (stmt_kills_ref_p): Use OEP_ADDRESS_OF
12332         for the operand_equal_p test to compare bases and also compare
12333         sizes.
12334
12335 2015-09-17  Christian Bruel  <christian.bruel@st.com>
12336
12337         * config/arm/arm.md (*call_value_symbol): Fix operand for interworking.
12338
12339 2015-09-17  Richard Henderson  <rth@redhat.com>
12340
12341         PR libstdc++/65913
12342         * builtins.c (fold_builtin_atomic_always_lock_free): Handle fake
12343         pointers that encode the alignment of the object.
12344
12345 2015-09-17  Eric Botcazou  <ebotcazou@adacore.com>
12346
12347         PR rtl-optimization/66790
12348         * df-problems.c (LIVE): Amend documentation.
12349
12350 2015-09-17  Richard Sandiford  <richard.sandiford@arm.com>
12351
12352         * Makefile.in (OBJS): Add optabs-libfuncs.o, optabs-query.o
12353         and optabs-tree.o.
12354         (GTFILES): Replace optabs.c with optabs-libfunc.c.
12355         * genopinit.c (main): Add an include guard to insn-opinit.h.
12356         Protect the rtx_code parts with NUM_RTX_CODE.
12357         * optabs.h: Split parts out to...
12358         * optabs-libfuncs.h, optabs-query.h, optabs-tree.h: ...these new files.
12359         * optabs.c: Split parts out to...
12360         * optabs-libfuncs.c, optabs-query.c, optabs-tree.c: ...these new files.
12361         * cilk-common.c: Include optabs-query.h rather than optabs.h.
12362         * fold-const.c: Likewise.
12363         * target-globals.c: Likewise.
12364         * tree-if-conv.c: Likewise.
12365         * tree-ssa-forwprop.c: Likewise.
12366         * tree-ssa-loop-prefetch.c: Likewise.
12367         * tree-ssa-math-opts.c: Include optabs-tree.h rather than optabs.h.
12368         Remove unncessary include files.
12369         * tree-ssa-phiopt.c: Likewise.
12370         * tree-ssa-reassoc.c: Likewise.
12371         * tree-switch-conversion.c: Likewise.
12372         * tree-vect-data-refs.c: Likewise.
12373         * tree-vect-generic.c: Likewise.
12374         * tree-vect-loop.c: Likewise.
12375         * tree-vect-patterns.c: Likewise.
12376         * tree-vect-slp.c: Likewise.
12377         * tree-vect-stmts.c: Likewise.
12378         * tree-vrp.c: Likewise.
12379         * toplev.c: Include optabs-query.h and optabs-libfuncs.h
12380         rather than optabs.h.
12381         * expr.c: Include optabs-tree.h.
12382         * function.c: Likewise.
12383
12384 2015-09-17  Eric Botcazou  <ebotcazou@adacore.com>
12385
12386         PR middle-end/65958
12387         * config/arm/linux-elf.h (STACK_CHECK_STATIC_BUILTIN): Define.
12388         * config/arm/arm-protos.h (output_probe_stack_range): Declare.
12389         * config/arm/arm.c: Include common/common-target.h.
12390         (use_return_insn): Return 0 if the static chain register was saved
12391         above a non-APCS frame.
12392         (arm_compute_static_chain_stack_bytes): Adjust for stack checking.
12393         (struct scratch_reg): New.
12394         (get_scratch_register_on_entry): New function.
12395         (release_scratch_register_on_entry): Likewise.
12396         (arm_emit_probe_stack_range): Likewise.
12397         (output_probe_stack_range): Likewise.
12398         (arm_expand_prologue): Factor out code dealing with the IP register
12399         for nested function and adjust it for stack checking.
12400         Invoke arm_emit_probe_stack_range if static builtin stack checking
12401         is enabled.
12402         (thumb1_expand_prologue): Sorry out if static builtin stack checking
12403         is enabled.
12404         (arm_expand_epilogue): Add the saved static chain register, if any, to
12405         the amount of pre-pushed registers to pop.
12406         (arm_frame_pointer_required): Return true if static stack checking is
12407         enabled and we want to catch the exception with the EABI unwinder.
12408         * config/arm/unspecs.md (UNSPEC_PROBE_STACK): New constant.
12409         (UNSPEC_PROBE_STACK_RANGE): Likewise.
12410         * config/arm/arm.md (probe_stack): New insn.
12411         (probe_stack_range): Likewise.
12412
12413 2015-09-17  Richard Biener  <rguenther@suse.de>
12414
12415         * genmatch.c (parser::parse_expr): Improve error message
12416         for mis-placed flags.
12417
12418 2015-09-17  Richard Biener  <rguenther@suse.de>
12419
12420         * passes.c (rest_of_decl_compilation): Always call early_global_decl
12421         debug hook when we created a varpool node.
12422         * dwarf2out.c (dwarf2out_late_global_decl): When in LTO call
12423         dwarf2out_early_global_decl, when not just add location or
12424         value attributes to existing DIEs.
12425
12426 2015-09-17  James Greenhalgh  <james.greenhalgh@arm.com>
12427
12428         * config/aarch64/aarch64.md (copysigndf3): New.
12429         (copysignsf3): Likewise.
12430
12431 2015-09-17  David S. Miller  <davem@davemloft.net>
12432
12433         * config/sparc/sparc-protos.h (sparc_secondary_memory_needed): Declare.
12434         * config/sparc/sparc.c (sparc_secondary_memory_needed): New function.
12435         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Use it.
12436         (HARD_REGNO_CALLER_SAVE_MODE): Define.
12437         * config/sparc/sparc.md (sethi_di_medlow, losum_di_medlow, seth44)
12438         (setm44, setl44, sethh, setlm, sethm, setlo, embmedany_sethi)
12439         (embmedany_losum, embmedany_brsum, embmedany_textuhi)
12440         (embmedany_texthi, embmedany_textulo, embmedany_textlo): Do not
12441         provide when flag_pic.
12442
12443 2015-09-17  Kaz Kojima  <kkojima@gcc.gnu.org>
12444
12445         * config/sh/sh.c (label_ref_list_d_pool): Adjust to
12446         object_allocator change.
12447
12448 2015-09-17  Bin Cheng  <bin.cheng@arm.com>
12449
12450         PR tree-optimization/66388
12451         * tree-ssa-loop-ivopts.c (struct iv, iv_cand, ivopts_data): New fields.
12452         (dump_iv): Dump no_overflow information.
12453         (alloc_iv): Initialize new field for struct iv.
12454         (mark_bivs): Count number of no_overflow bivs.
12455         (find_deriving_biv_for_expr, record_biv_for_address_use): New
12456         functions.
12457         (idx_find_step): Call new functions above.
12458         (add_candidate_1, add_candidate): New paramter.
12459         (add_iv_candidate_for_biv): Add sizetype cand for BIV.
12460         (get_computation_aff): Simplify convertion of cand for BIV.
12461         (get_computation_cost_at): Step cand's base if necessary.
12462
12463 2015-09-17  Bin Cheng  <bin.cheng@arm.com>
12464
12465         * tree-ssa-loop-niter.c (tree_simplify_using_condition_1): New
12466         parameter.
12467         (tree_simplify_using_condition): Ditto.
12468         (simplify_using_initial_conditions): Ditto.
12469         (loop_exits_before_overflow): Pass new argument to function
12470         simplify_using_initial_conditions.  Remove case for type conversions
12471         simplification.
12472         * tree-ssa-loop-niter.h (simplify_using_initial_conditions): New
12473         parameter.
12474         * tree-scalar-evolution.c (simple_iv): Simplify type conversions
12475         in iv base using loop initial conditions.
12476
12477 2015-09-16  Jeff Law  <law@redhat.com>
12478
12479         PR tree-optimization/47679
12480         * tree-ssa-dom.c (free_edge_info): Factored out of free_all_edge_infos.
12481         (free_all_edge_infos): Use it.
12482         (allocate_edge_info): Free preexisting edge info data.
12483         (pass_dominator::execute): Set up initial edge info structures.
12484         (dom_opt_dom_walker::thread_across_edge): Pass avail_expr_stack to
12485         thread_across_edge.
12486         * tree-ssa-threadedge.c (thread_across_edge): Accept new argument.
12487         If non-null, then push/pop markers appropriately.
12488         * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
12489         * tree-vrp.c (identify_jump_threads): Pass NULL for new argument to
12490         thread-across_edge.
12491
12492 2015-09-16  James Bowman  <james.bowman@ftdichip.com>
12493
12494         * config/ft32/ft32.c: Fix the memory address space predicate.
12495
12496 2015-09-16  Kaz Kojima  <kkojima@gcc.gnu.org>
12497
12498         PR target/67573
12499         * config/sh/sh.md (call_pcrel): Add early clobber to scratch operand.
12500         (call_value_pcrel, sibcall_pcrel, sibcall_value_pcrel): Likewise.
12501
12502 2015-09-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12503
12504         * toplev.h (check_global_declaration): Remove declaration.
12505         * toplev.c (check_global_declaration): Move to ...
12506         * cgraphunit.c: ... here. Make it static and pass a symtab_node *.
12507         (analyze_functions): Update call.
12508
12509 2015-09-16  David S. Miller  <davem@davemloft.net>
12510
12511         * lra-constraints.c (simplify_operand_subreg): Do not assume that
12512         lowpart of a SUBREG has offset zero.
12513
12514 2015-09-16  Jeff Law  <law@redhat.com>
12515
12516         PR tree-optimization/47679
12517         * tree-ssa-dom.c (enum expr_kind): Moved from here to
12518         tree-ssa-scopedtables.h.
12519         (struct hashable_expr, class expr_hash_elt): Likewise.
12520         (struct expr_elt_hasher, class avail_exprs_stack): Likewise.
12521         Move associated methods into tree-ssa-scopedtables.c.
12522         (avail_expr_hash, initialize_expr_from_cond): Similarly.
12523         (hashable_expr_equal_p, add_expr_commutative): Likewise.
12524         (add_hashable_expr): Likewise.
12525         (record_cond): Delete element directly.
12526         * tree-ssa-scopedtables.h (avail_expr_stack, const_and_copies): Add
12527         private copy ctor and assignment operator methods.
12528         (expr_elt_hasher): Inline trivial methods.
12529         (initialize_expr_from_cond): Prototype.
12530         * tree-ssa-scopedtables.c: Add necessary includes, functions and
12531         methods that were previously in tree-ssa-dom.c.  Improve various
12532         comments.
12533
12534 2015-09-16  Paolo Carlini  <paolo.carlini@oracle.com>
12535
12536         * doc/invoke.texi ([Wsubobject-linkage]): Extend documentation.
12537
12538 2015-09-16  Segher Boessenkool  <segher@kernel.crashing.org>
12539
12540         PR bootstrap/67587
12541         * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
12542         fixup_partitions.
12543
12544 2015-09-16  Richard Biener  <rguenther@suse.de>
12545
12546         PR middle-end/67253
12547         * cfgexpand.c (expand_gimple_stmt_1): Do not clobber
12548         location of possibly shared trees.
12549
12550 2015-09-16  Richard Biener  <rguenther@suse.de>
12551
12552         PR middle-end/67271
12553         * fold-const.c (native_encode_expr): Bail out on bogus offsets.
12554
12555 2015-09-16  Eric Botcazou  <ebotcazou@adacore.com>
12556
12557         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Use offset_int for
12558         offset and size computations instead of HOST_WIDE_INT.
12559
12560 2015-09-16  Richard Biener  <rguenther@suse.de>
12561
12562         PR middle-end/67442
12563         * fold-const.c (extract_muldiv_1): Properly extend multiplication
12564         result before builting a tree via wide_int_to_tree.
12565
12566 2015-09-16  Mikhail Maltsev  <maltsevm@gmail.com>
12567
12568         * Makefile.in: Add memory-block.cc
12569         (pool_allocator::initialize): Use fixed block size.
12570         (pool_allocator::release): Use memory_block_pool.
12571         (pool_allocator::allocate): Likewise.
12572         * asan.c (asan_mem_ref_pool): Adjust to use common block size in all
12573         object pools.
12574         * cfg.c (initialize_original_copy_tables): Likewise.
12575         * cselib.c (elt_list_pool, elt_loc_list_pool,
12576         cselib_val_pool): Likewise.
12577         * df-problems.c (df_chain_alloc): Likewise.
12578         * df-scan.c (df_scan_alloc): Likewise.
12579         * dse.c (cse_store_info_pool, rtx_store_info_pool,
12580         read_info_type_pool, insn_info_type_pool, bb_info_pool,
12581         group_info_pool, deferred_change_pool): Likewise.
12582         * et-forest.c (et_nodes, et_occurrences): Likewise.
12583         * ipa-cp.c (ipcp_cst_values_pool, ipcp_sources_pool,
12584         ipcp_agg_lattice_pool): Likewise.
12585         * ipa-inline-analysis.c (edge_predicate_pool): Likewise.
12586         * ipa-profile.c (histogram_pool): Likewise.
12587         * ipa-prop.c (ipa_refdesc_pool): Likewise.
12588         * ira-build.c (live_range_pool, allocno_pool, object_pool,
12589         initiate_cost_vectors, pref_pool, copy_pool): Likewise.
12590         * ira-color.c (update_cost_record_pool): Likewise.
12591         * lra-lives.c (lra_live_range_pool): Likewise.
12592         * lra.c (lra_insn_reg_pool, lra_copy_pool): Likewise.
12593         * memory-block.cc: New file.
12594         * memory-block.h: New file.
12595         * regcprop.c (queued_debug_insn_change_pool): Use common block size.
12596         * sched-deps.c (sched_deps_init): Likewise.
12597         * sel-sched-ir.c (sched_lists_pool): Likewise.
12598         * stmt.c (expand_case, expand_sjlj_dispatch_table): Likewise.
12599         * tree-sra.c (access_pool): Likewise.
12600         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
12601         * tree-ssa-pre.c (pre_expr_pool, bitmap_set_pool): Likewise.
12602         * tree-ssa-reassoc.c (operand_entry_pool): Likewise.
12603         * tree-ssa-sccvn.c (allocate_vn_table): Likewise.
12604         * tree-ssa-strlen.c (strinfo_pool): Likewise.
12605         * tree-ssa-structalias.c (variable_info_pool): Likewise.
12606         * var-tracking.c (attrs_def_pool, var_pool, valvar_pool,
12607         location_chain_pool, shared_hash_pool, loc_exp_dep_pool): Likewise.
12608
12609 2015-09-15  Max Filippov  <jcmvbkbc@gmail.com>
12610
12611         * config/xtensa/xtensa.h (DWARF_ALT_FRAME_RETURN_COLUMN): New
12612         definition.
12613         (DWARF_FRAME_REGISTERS): Reserve space for one extra register in
12614         call0 ABI.
12615
12616 2015-09-15  Max Filippov  <jcmvbkbc@gmail.com>
12617
12618         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Use a10 or a2
12619         to pass TLS call argument, according to current ABI.
12620         * config/xtensa/xtensa.md (tls_call pattern): Use callx8 or
12621         callx0 for TLS call, according to current ABI.
12622
12623 2015-09-15  Eric Botcazou  <ebotcazou@adacore.com>
12624
12625         * tree-eh.c (lower_try_finally_dup_block): Clear location information
12626         on stack restore statements.
12627         (decide_copy_try_finally): Do not consider a stack restore statement as
12628         coming from sources.
12629
12630 2015-09-15  Uros Bizjak  <ubizjak@gmail.com>
12631
12632         * config/alpha/alpha.c (alpha_expand_block_clear): Use
12633         HOST_WIDE_INT_M1U instead of ~(HOST_WIDE_INT)0 when shifting.
12634
12635 2015-09-15  Jeff Law  <law@redhat.com>
12636
12637         PR tree-optimization/47679
12638         * tree-ssa-dom.c (expr_hash_elt): Now a class with ctors/dtors,
12639         methods and private members.
12640         (avail_exprs_stack): Similarly.  Change type of global
12641         from a pair of expr_hash_elt_t to the new class.
12642         (expr_elt_hasher::hash): Corresponding changes.
12643         (expr_elt_hasher::equal): Similarly.
12644         (avail_expr_hash): Similarly.
12645         (pass_dominator::execute): Similarly.
12646         (dom_opt_dom_walker::thread_across_edge): Similarly.
12647         (record_cond): Similarly.
12648         (dom_opt_dom_walker::before_dom_children): Similarly.
12649         (dom_opt_dom_walker::after_dom_children): Similarly.
12650         (lookup_avail_expr): Likewise.
12651         (initialize_hash_element): Now a expr_hash_elt constructor.
12652         (initialize_hash_element_from_expr): Similarly.
12653         (free_expr_hash_elt_contents): Now a dtor for class expr_hash_elt.
12654         (free_expr_hash_elt): Call dtor for the element.
12655         (remove_local_expressions_from_table): Now the "pop_to_marker"
12656         method in the available_exprs_stack class.
12657         (avail_expr_stack::record_expr): Method factored out.
12658         (print_expr_hash_elt): Now a method in the expr_hash_elt class.
12659         Fix formatting.
12660         (hashable_expr_equal_p): Fix formatting.
12661
12662 2015-09-15  David Malcolm  <dmalcolm@redhat.com>
12663
12664         * input.h (location_get_source_line): Drop "expanded_location"
12665         param in favor of a file and line number.
12666         * input.c (location_get_source_line): Likewise.
12667         (dump_location_info): Update for change in signature of
12668         location_get_source_line.
12669         * diagnostic.c (diagnostic_print_caret_line): Likewise.
12670
12671 2015-09-15  Eric Botcazou  <ebotcazou@adacore.com>
12672
12673         * defaults.h (STACK_OLD_CHECK_PROTECT): Adjust for -fno-exceptions.
12674         Bump to 4KB for SJLJ exceptions.
12675         (STACK_CHECK_PROTECT): Likewise.  Bump to 8KB for SJLJ exceptions.
12676         * doc/tm.texi.in (STACK_CHECK_PROTECT): Adjust.
12677         * doc/tm.texi: Regenerate.
12678
12679 2015-09-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12680
12681         * config/arm/arm.c (arm_gen_constant): Use HOST_WIDE_INT_M1U instead
12682         of -1 when shifting.  Change type of val to unsigned HOST_WIDE_INT.
12683         Update prototype.
12684
12685 2015-09-15  Richard Biener  <rguenther@suse.de>
12686
12687         PR tree-optimization/67470
12688         * tree-ssa-loop-im.c (execute_sm_if_changed): Preserve PHI
12689         structure for PHI hoisting by inserting a forwarder block
12690         if appropriate.
12691
12692 2015-09-15  Christian Bruel  <christian.bruel@st.com>
12693
12694         * config/arm/arm.c (TARGET_OPTION_PRINT): Define.
12695         (arm_option_print): New function.
12696
12697 2015-09-15  Christian Bruel  <christian.bruel@st.com>
12698
12699         PR target/52144
12700         * config/arm/arm.c (arm_option_params_internal): Remove opts parameter.
12701         * config/arm/arm-c.c (arm_cpu_builtins): Declare static.
12702         Remove flags parameter.
12703         * config/arm/arm.h (TARGET_32BIT_P, TARGET_ARM_QBIT_P)
12704         (TARGET_ARM_SAT_P, TARGET_IDIV_P, TARGET_HAVE_LDREX_P)
12705         (TARGET_HAVE_LDREXBH_P, TARGET_HAVE_LDREXD_P, TARGET_DSP_MULTIPLY_P)
12706         (TARGET_ARM_FEATURE_LDREX_P, TARGET_INT_SIMD_P): Redefine macros with...
12707         (TARGET_ARM_SAT, TARGET_IDIV, TARGET_HAVE_LDREX)
12708         (TARGET_HAVE_LDREXBH, TARGET_HAVE_LDREXD, TARGET_ARM_FEATURE_LDREX)
12709         (TARGET_DSP_MULTIPLY, TARGET_INT_SIMD): Redefined macros.
12710         * config/arm/arm-protos.h (arm_cpu_builtins): Remove declaration.
12711
12712 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
12713
12714         * config/aarch64/aarch64.h (AARCH64_VALID_SIMD_DREG_MODE): New.
12715
12716         * config/aarch64/aarch64.c (aarch64_array_mode_supported_p): Add
12717         AARCH64_VALID_SIMD_DREG_MODE.
12718
12719 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
12720
12721         * config/aarch64/aarch64-simd.md (aarch64_ld2r<mode>,
12722         aarch64_ld3r<mode>, aarch64_ld4r<mode>): Combine together, making...
12723         (aarch64_simd_ld<VSTRUCT:nregs>r<VALLDIF:mode>): ...this.
12724         (aarch64_ld2_lane<mode>, aarch64_ld3_lane<mode>,
12725         aarch64_ld4_lane<mode>): Combine together, making...
12726         (aarch64_ld<VSTRUCT:nregs>_lane<VALLDIF:mode>): ...this.
12727         (aarch64_st2_lane<mode>, aarch64_st3_lane<mode>,
12728         aarch64_st4_lane<mode>): Combine together, making...
12729         (aarch64_st<VSTRUCT:nregs>_lane<VALLDIF:mode>): ...this.
12730         * config/aarch64/iterators.md (nregs): Add comment.
12731
12732 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
12733
12734         * config/aarch64/aarch64-simd.md (aarch64_simd_ld2r<mode>):
12735         Change operand mode from <V_TWO_ELEM> to BLK.
12736         (aarch64_vec_load_lanesoi_lane<mode>): Likewise.
12737         (aarch64_vec_store_lanesoi_lane<mode): Likewise
12738         (aarch64_ld2r<mode>): Generate MEM rtx with BLKmode, call set_mem_size.
12739         (aarch64_ld2_lane<mode>): Likewise.
12740         (aarch64_st2_lane<VQ:mode>): Likewise.
12741         * config/aarch64/iterators.md (V_TWO_ELEM): Remove.
12742
12743 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
12744
12745         * config/aarch64/aarch64-simd.md (aarch64_simd_ld4r<mode>):
12746         Change operand mode from <V_FOUR_ELEM> to BLK.
12747         (aarch64_vec_load_lanesxi_lane<mode>): Likewise.
12748         (aarch64_vec_store_lanesxi_lane<mode): Likewise.
12749         (aarch64_ld4r<mode>): Generate MEM rtx with BLKmode, call set_mem_size.
12750         (aarch64_ld4_lane<mode>): Likewise.
12751         (aarch64_st4_lane<mode>): Likewise.
12752         * config/aarch64/iterators.md (V_FOUR_ELEM): Remove.
12753
12754 2015-09-15  Richard Biener  <rguenther@suse.de>
12755
12756         PR middle-end/67563
12757         * gimple-fold.c (gimplify_and_update_call_from_tree): Do not
12758         transfer EH info from old to new stmt.
12759         (replace_call_with_value): Likewise.
12760         (replace_call_with_call_and_fold): Likewise.
12761         (gimple_fold_builtin_memory_op): Likewise.
12762         (gimple_fold_builtin_memset): Likewise.
12763         (gimple_fold_builtin_stpcpy): Likewise.
12764         (gimple_fold_call): Likewise.
12765
12766 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
12767
12768         * config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist): Update
12769         comment.
12770         * config/aarch64/aarch64-builtins.c (ei_UP): Remove.
12771         (aarch64_simd_intEI_type_node): Likewise.
12772         (aarch64_simd_builtin_std_type): Remove EImode case.
12773         (aarch64_init_simd_builtin_types): Don't create/add intEI_type_node.
12774         * config/aarch64/aarch64-modes.def: Remove EImode.
12775
12776 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
12777
12778         * config/aarch64/aarch64-simd.md (aarch64_simd_ld3r<mode>):
12779         Change operand mode from <V_THREE_ELEM> to BLK.
12780         (aarch64_vec_load_lanesci_lane<mode>): Likewise.
12781         (aarch64_vec_store_lanesci_lane<mode>): Likewise.
12782         (aarch64_ld3r<mode>): Generate MEM rtx with BLKmode, call set_mem_size.
12783         (aarch64_ld3_lane<mode>): Likewise.
12784         (aarch64_st3_lane<mode>): Likewise.
12785         * config/aarch64/iterators.md (V_THREE_ELEM): Remove.
12786
12787 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
12788
12789         * config/aarch64/aarch64-simd.md
12790         (aarch64_ld2<mode>_dreg VD & DX, aarch64_st2<mode>_dreg VD & DX ):
12791         Change all TImode operands to BLKmode.
12792         (aarch64_ld3<mode>_dreg VD & DX, aarch64_st3<mode>_dreg VD & DX):
12793         Change all EImode operands to BLKmode.
12794         (aarch64_ld4<mode>_dreg VD & DX, aarch64_st4<mode>_dreg VD & DX):
12795         Change all OImode operands to BLKmode.
12796
12797         (aarch64_ld<VSTRUCT:nregs><VDC:mode>): Generate MEM rtx with BLKmode
12798         and call set_mem_size.
12799         (aarch64_st<VSTRUCT:nregs><VDC:mode>): Likewise.
12800
12801         * config/aarch64/iterators.md (VSTRUCT_DREG): Remove.
12802
12803 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
12804
12805         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): Rename
12806         to...
12807         (aarch64_vec_store_lanesoi_lane<mode>): ...this.
12808
12809         (vec_store_lanesci_lane<mode>): Rename to...
12810         (aarch64_vec_store_lanesci_lane<mode>): ...this.
12811
12812         (vec_store_lanesxi_lane<mode>): Rename to...
12813         (aarch64_vec_store_lanesxi_lane<mode>): ...this.
12814
12815         (aarch64_st2_lane<mode>, aarch64_st3_lane<mode>,
12816         aarch64_st4_lane<mode>): Follow renaming.
12817
12818 2015-09-15  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12819
12820         * config/s390/s390.c (s390_const_operand_ok): Add missing
12821         brackets.
12822
12823 2015-09-15  Richard Biener  <rguenther@suse.de>
12824
12825         PR lto/67568
12826         * lto-streamer.h (lto_location_cache::current_sysp): Properly
12827         initialize.
12828         * lto-streamer-out.c (clear_line_info): Likewise.
12829
12830 2015-09-15  Richard Biener  <rguenther@suse.de>
12831
12832         * doc/match-and-simplify.texi: Fix wording.
12833
12834 2015-09-15  Bin Cheng  <bin.cheng@arm.com>
12835
12836         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Strip
12837         unnecessary type conversion in op1.
12838
12839 2015-09-14  Segher Boessenkool  <segher@kernel.crashing.org>
12840
12841         * shrink-wrap.c (requires_stack_frame_p): Fix formatting.
12842         (dup_block_and_redirect): Delete function.
12843         (can_dup_for_shrink_wrapping): New function.
12844         (fix_fake_fallthrough_edge): New function.
12845         (try_shrink_wrapping): Rewrite function.
12846         (convert_to_simple_return): Call fix_fake_fallthrough_edge.
12847
12848 2015-09-14  Rich Felker  <dalias@libc.org>
12849
12850         * configure.ac: Change target pattern for sh TLS support
12851         test from "sh[34]-*-*" to "sh[123456789lbe]*-*-*".
12852         * configure: Regenerate.
12853
12854 2015-09-14  Jeff Law  <law@redhat.com>
12855
12856         PR tree-optimization/47679
12857         * tree-ssa-dom.c (avail_expr_hash): Pass a pointer to a real
12858         type rather than void *.
12859
12860 2015-09-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12861
12862         PR fortran/67460
12863         * diagnostic.c (diagnostic_initialize): Do not set
12864         some_warnings_are_errors.
12865         (diagnostic_finish): Use DK_WERROR count instead.
12866         (diagnostic_report_diagnostic): Do not set
12867         some_warnings_are_errors.
12868         * diagnostic.h (struct diagnostic_context): Remove
12869         some_warnings_are_errors.
12870
12871 2015-09-14  Richard Sandiford  <richard.sandiford@arm.com>
12872
12873         * config/sparc/predicates.md (const_all_ones_operand): Use
12874         CONSTM1_RTX to simplify definition.
12875
12876 2015-09-14  Oleg Endo  <olegendo@gcc.gnu.org>
12877
12878         PR target/67061
12879         * config/sh/sh-protos.h (sh_find_set_of_reg): Simplfiy for-loop.
12880         Handle call insns.
12881
12882 2015-09-14  Chung-Lin Tang  <cltang@codesourcery.com>
12883
12884         * lto-wrapper.c (merge_and_complain): Add OPT_fdiagnostics_show_caret,
12885         OPT_fdiagnostics_show_option, OPT_fdiagnostics_show_location_, and
12886         OPT_fshow_column to handled saved option cases.
12887         (append_compiler_options): Do not skip the above added options.
12888
12889 2015-09-14  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12890
12891         PR target/63304
12892         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Handle
12893         nopcrelative_literal_loads.
12894         (aarch64_classify_address): Likewise.
12895         (aarch64_constant_pool_reload_icode): Define.
12896         (aarch64_secondary_reload): Handle secondary reloads for
12897         literal pools.
12898         (aarch64_override_options): Handle nopcrelative_literal_loads.
12899         (aarch64_classify_symbol): Handle nopcrelative_literal_loads.
12900         * config/aarch64/aarch64.md (aarch64_reload_movcp<GPF_TF:mode><P:mode>):
12901         Define.
12902         (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
12903         * config/aarch64/aarch64.opt (mpc-relative-literal-loads): New option.
12904         * config/aarch64/predicates.md (aarch64_constant_pool_symref): New
12905         predicate.
12906         * doc/invoke.texi (mpc-relative-literal-loads): Document.
12907
12908 2015-09-14  John David Anglin  <danglin@gcc.gnu.org>
12909
12910         PR middle-end/67401
12911         * optabs.c (expand_atomic_compare_and_swap): Move result of emitting
12912         sync_compare_and_swap_optab libcall to target_oval.
12913
12914 2015-09-14  Marek Polacek  <polacek@redhat.com>
12915
12916         * rtlanal.c (split_double): Cast to unsigned when shifting a negative
12917         value.
12918         * sched-int.h (UNKNOWN_DEP_COST): Likewise.
12919
12920 2015-09-11  Mark Wielaard  <mjw@redhat.com>
12921
12922         PR c/28901
12923         * toplev.c (check_global_declaration): Check and use
12924         warn_unused_const_variable.
12925         * doc/invoke.texi (Warning Options): Add -Wunused-const-variable.
12926         (-Wunused-variable): Remove non-constant. For C implies
12927         -Wunused-const-variable.
12928         (-Wunused-const-variable): New.
12929
12930 2015-09-14  Richard Biener  <rguenther@suse.de>
12931
12932         * doc/match-and-simplify.texi: Update for changed syntax
12933         of inner ifs and the new switch expression.
12934
12935 2015-09-14  Yuri Rumyantsev  <ysrumyan@gmail.com>
12936
12937         * config/i386/haswell.md: New file describing Haswell pipeline.
12938         * config/i386/i386.c (processor_alias_table): Use CPU_HASWELL for
12939         haswell-like processors.
12940         (ix86_reassociation_width): Increase reassociation width for 64-bit
12941         Haswell processor family.
12942         * config/i386/i386.md: Introduce haswell cpu and include new md file.
12943
12944 2015-09-14  Richard Biener  <rguenther@suse.de>
12945
12946         * doc/match-and-simplify.texi: Fixup some formatting issues
12947         and document the 's' flag.
12948
12949 2015-09-13  Olivier Hainque  <hainque@adacore.com>
12950             Eric Botcazou  <ebotcazou@adacore.com>
12951
12952         * config.gcc (visium-*-*): Enable --with-cpu option, accept gr5 and
12953         gr6 as possible values, defaulting to gr5.  Set target_cpu_default2.
12954         * config/visium/visium.h (OPTION_DEFAULT_SPECS): Define.
12955         (TARGET_CPU_gr5): Likewise.
12956         (TARGET_CPU_gr6): Likewise.
12957         (MULTILIB_DEFAULTS): Likewise.
12958         * config/visium/t-visium (MULTILIB_OPTIONS): Request distinct variants
12959         for mcpu=gr5 and mcpu=gr6.
12960         (MULTILIB_DIRNAMES): Adjust accordingly.
12961
12962 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12963
12964         * tree-ssa-loop-im.c (mem_ref_loc_p): Remove typedef.
12965         (mem_ref_p): Likewise.
12966         (outermost_indep_loop): Adjust.
12967         (mem_ref_in_stmt): Likewise.
12968         (determine_max_movement): Likewise.
12969         (mem_ref_alloc): Likewise.
12970         (record_mem_ref_loc): Likewise.
12971         (set_ref_stored_in_loop): Likewise.
12972         (mark_ref_stored): Likewise.
12973         (gather_mem_refs_stmt): Likewise.
12974         (mem_refs_may_alias_p): Likewise.
12975         (for_all_locs_in_loop): Likewise.
12976         (struct rewrite_mem_ref_loc): Likewise.
12977         (rewrite_mem_refs): Likewise.
12978         (struct first_mem_ref_loc_1): Likewise.
12979         (first_mem_ref_loc): Likewise.
12980         (struct sm_set_flag_if_changed): Likewise.
12981         (execute_sm_if_changed_flag_set): Likewise.
12982         (execute_sm): Likewise.
12983         (hoist_memory_references):
12984         (struct ref_always_accessed): Likewise.
12985         (ref_always_accessed_p): Likewise.
12986         (refs_independent_p): Likewise.
12987         (record_dep_loop): Likewise.
12988         (ref_indep_loop_p_1): Likewise.
12989         (ref_indep_loop_p_2): Likewise.
12990         (ref_indep_loop_p): Likewise.
12991         (can_sm_ref_p): Likewise.
12992         (find_refs_for_sm): Likewise.
12993         (tree_ssa_lim_finalize): Likewise.
12994
12995 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12996
12997         * dwarf2out.c (dw_attr_ref): Remove typedef.
12998         (dw_line_info_ref): Likewise.
12999         (pubname_ref): Likewise.
13000         (dw_ranges_ref): Likewise.
13001         (dw_ranges_by_label_ref): Likewise.
13002         (comdat_type_node_ref): Likewise.
13003         (get_AT): Adjust.
13004         (get_AT_low_pc): Likewise.
13005         (get_AT_hi_pc): Likewise.
13006         (get_AT_string): Likewise.
13007         (get_AT_flag): Likewise.
13008         (get_AT_unsigned): Likewise.
13009         (get_AT_ref): Likewise.
13010         (get_AT_file): Likewise.
13011         (remove_AT): Likewise.
13012         (print_die): Likewise.
13013         (check_die): Likewise.
13014         (die_checksum): Likewise.
13015         (attr_checksum_ordered): Likewise.
13016         (struct checksum_attributes): Likewise.
13017         (collect_checksum_attributes): Likewise.
13018         (die_checksum_ordered): Likewise.
13019         (same_die_p): Likewise.
13020         (is_declaration_die): Likewise.
13021         (clone_die): Likewise.
13022         (clone_as_declaration): Likewise.
13023         (copy_declaration_context): Likewise.
13024         (break_out_comdat_types): Likewise.
13025         (copy_decls_walk): Likewise.
13026         (output_location_lists): Likewise.
13027         (external_ref_hasher::hash): Likewise.
13028         (optimize_external_refs_1): Likewise.
13029         (build_abbrev_table): Likewise.
13030         (size_of_die): Likewise.
13031         (unmark_all_dies): Likewise.
13032         (size_of_pubnames): Likewise.
13033         (output_die_abbrevs): Likewise.
13034         (output_die): Likewise.
13035         (output_pubnames): Likewise.
13036         (add_ranges_num): Likewise.
13037         (add_ranges_by_labels): Likewise.
13038         (add_high_low_attributes): Likewise.
13039         (gen_producer_string): Likewise.
13040         (dwarf2out_set_name): Likewise.
13041         (new_line_info_table): Likewise.
13042         (prune_unused_types_walk_attribs): Likewise.
13043         (prune_unused_types_update_strings): Likewise.
13044         (prune_unused_types): Likewise.
13045         (resolve_addr): Likewise.
13046         (optimize_location_lists_1): Likewise.
13047         (index_location_lists): Likewise.
13048         (dwarf2out_finish): Likewise.
13049
13050 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13051
13052         * dwarf2cfi.c (dw_trace_info_ref): Remove typedef.
13053
13054 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13055
13056         * tree-vrp.c (struct assert_locus_d): Rename to assert_locus.
13057         (dump_asserts_for): Adjust.
13058         (register_new_assert_for): Likewise.
13059         (process_assert_insertions): Likewise.
13060         (insert_range_assertions): Likewise.
13061
13062 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13063
13064         * tree-ssa-ter.c (temp_expr_table_d): Rename to temp_expr_table
13065         and remove typedef.
13066         (new_temp_expr_table): Adjust.
13067         (free_temp_expr_table): Likewise.
13068         (version_to_be_replaced_p): Likewise.
13069         (make_dependent_on_partition): Likewise.
13070         (add_to_partition_kill_list): Likewise.
13071         (remove_from_partition_kill_list): Likewise.
13072         (add_dependence): Likewise.
13073         (finished_with_expr): Likewise.
13074         (process_replaceable): Likewise.
13075         (kill_expr): Likewise.
13076         (kill_virtual_exprs): Likewise.
13077         (mark_replaceable): Likewise.
13078         (find_replaceable_in_bb): Likewise.
13079         (find_replaceable_exprs): Likewise.
13080         (debug_ter): Likewise.
13081
13082 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13083
13084         * bt-load.c (struct btr_def_group): Rename from btr_def_group_s.
13085         (struct btr_user): Rename from btr_user_s.
13086         (struct btr_def): Rename from btr_def_s.
13087         (find_btr_def_group): Adjust.
13088         (add_btr_def): Likewise.
13089         (new_btr_user): Likewise.
13090         (note_other_use_this_block): Likewise.
13091         (compute_defs_uses_and_gen): Likewise.
13092         (link_btr_uses): Likewise.
13093         (build_btr_def_use_webs): Likewise.
13094         (block_at_edge_of_live_range_p): Likewise.
13095         (btr_def_live_range): Likewise.
13096         (combine_btr_defs): Likewise.
13097         (move_btr_def): Likewise.
13098         (migrate_btr_def): Likewise.
13099         (migrate_btr_defs): Likewise.
13100
13101 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13102
13103         * var-tracking.c (shared_hash_def): Rename to shared_hash.
13104         (shared_hash): Remove typedef.
13105         (struct dataflow_set): Adjust.
13106         (shared_hash_unshare): Likewise.
13107         (dataflow_set_merge): Likewise.
13108         (vt_initialize): Likewise.
13109         (vt_finalize): Likewise.
13110
13111 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13112
13113         * var-tracking.c (struct location_chain): Rename from
13114         location_chain_def.
13115         (struct variable_part): Adjust.
13116         (variable_htab_free): Likewise.
13117         (unshare_variable): Likewise.
13118         (get_init_value): Likewise.
13119         (get_addr_from_local_cache): Likewise.
13120         (drop_overlapping_mem_locs): Likewise.
13121         (val_reset): Likewise.
13122         (struct variable_union_info): Likewise.
13123         (variable_union): Likewise.
13124         (find_loc_in_1pdv): Likewise.
13125         (insert_into_intersection): Likewise.
13126         (intersect_loc_chains): Likewise.
13127         (canonicalize_loc_order_check): Likewise.
13128         (canonicalize_values_mark): Likewise.
13129         (canonicalize_values_star): Likewise.
13130         (canonicalize_vars_star): Likewise.
13131         (variable_merge_over_cur): Likewise.
13132         (remove_duplicate_values): Likewise.
13133         (variable_post_merge_new_vals): Likewise.
13134         (variable_post_merge_perm_vals): Likewise.
13135         (find_mem_expr_in_1pdv): Likewise.
13136         (dataflow_set_preserve_mem_locs): Likewise.
13137         (dataflow_set_remove_mem_locs): Likewise.
13138         (variable_part_different_p): Likewise.
13139         (onepart_variable_different_p): Likewise.
13140         (find_src_set_src): Likewise.
13141         (dump_var): Likewise.
13142         (set_slot_part): Likewise.
13143         (clobber_slot_part): Likewise.
13144         (delete_slot_part): Likewise.
13145         (vt_expand_var_loc_chain): Likewise.
13146         (emit_note_insn_var_location): Likewise.
13147         (vt_finalize): Likewise.
13148
13149 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13150
13151         * dse.c (store_info_t): Remove typedef.
13152         (group_info_t): Likewise.
13153         (const_group_info_t): Likewise.
13154         (deferred_change_t): Likewise.
13155         (get_group_info): Adjust.
13156         (free_store_info): Likewise.
13157         (canon_address): Likewise.
13158         (clear_rhs_from_active_local_stores): Likewise.
13159         (record_store): Likewise.
13160         (replace_read): Likewise.
13161         (check_mem_read_rtx): Likewise.
13162         (scan_insn): Likewise.
13163         (remove_useless_values): Likewise.
13164         (dse_step1): Likewise.
13165         (dse_step2_init): Likewise.
13166         (dse_step2_nospill): Likewise.
13167         (scan_stores_nospill): Likewise.
13168         (scan_reads_nospill): Likewise.
13169         (dse_step3_exit_block_scan): Likewise.
13170         (dse_step3): Likewise.
13171         (dse_step5_nospill): Likewise.
13172         (dse_step6): Likewise.
13173
13174 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13175
13176         * alias.c (alias_set_entry_d): Rename to alias_set_entry.
13177         (alias_set_entry): Remove typedef.
13178         (alias_set_subset_of): Adjust.
13179         (alias_sets_conflict_p): Likewise.
13180         (init_alias_set_entry): Likewise.
13181         (get_alias_set): Likewise.
13182         (new_alias_set): Likewise.
13183         (record_alias_subset): Likewise.
13184
13185 2015-09-13  Gerald Pfeifer  <gerald@pfeifer.com>
13186
13187         * doc/install.texi (Downloading the source): Mark up
13188         contrib/download_prerequisites properly and drop leading "./".
13189
13190 2015-09-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13191
13192         * config/arc/arc.h: Remove define of STRUCT_VALUE.
13193         * config/lm32/lm32.h: Likewise.
13194         * config/mep/mep.h: Likewise.
13195         * config/visium/visium.h: Likewise.
13196         * system.h: Poison STRUCT_VALUE macro.
13197
13198 2015-09-12  John David Anglin  <danglin@gcc.gnu.org>
13199
13200         * config/pa/pa.c (pa_output_move_double): Enhance to handle HIGH
13201         CONSTANT_P operands.
13202
13203 2015-09-11  David S. Miller  <davem@davemloft.net>
13204
13205         * config/sparc/constraints.md: Make "U" constraint a real register
13206         constraint.
13207         * config/sparc/sparc.c (TARGET_LRA_P): Define.
13208         (D_MODES, DF_MODES): Add missing cast.
13209         (TF_MODES, TF_MODES_NO_S): Include T_MODE.
13210         (OF_MODES, OF_MODES_NO_S): Include O_MODE.
13211         (sparc_register_move_cost): Decrease Niagara/UltrsSPARC memory
13212         cost to 8.
13213         * config/sparc/sparc.h (PROMOTE_MODE): Define.
13214         * config/sparc/sparc.md (*movsi_lo_sum, *movsi_high): Do not
13215         provide these insn when flag_pic.
13216
13217 2015-09-11  Jeff Law  <law@redhat.com>
13218
13219         PR tree-optimization/47679
13220         * tree-ssa-dom.c (struct cond_equivalence): Update comment.
13221         * tree-ssa-scopedtables.h (class const_and_copies): Prefix data
13222         member with m_.  Update inline member functions as necessary.  Add
13223         toplevel comment.
13224         * tree-ssa-scopedtables.c: Update const_and_copies's member
13225         functions to use m_ prefix to access the stack.
13226
13227 2015-09-11  Aditya Kumar  <aditya.k7@samsung.com>
13228
13229         * graphite-optimize-isl.c (disable_tiling): Remove.
13230         (get_schedule_for_band): Do not use disable_tiling.
13231         (get_prevector_map): Delete function.
13232         (enable_polly_vector): Remove.
13233         (get_schedule_for_band_list): Remove dead code.
13234
13235 2015-09-11  Aditya Kumar  <aditya.k7@samsung.com>
13236
13237         * graphite-optimize-isl.c (get_tile_map): Refactor.
13238         (get_schedule_for_band): Same.
13239         (getScheduleForBand): Same.
13240         (get_prevector_map): Same.
13241         (get_schedule_for_band_list): Same.
13242         (get_schedule_map): Same.
13243         (get_single_map): Same.
13244         (apply_schedule_map_to_scop): Same.
13245         (optimize_isl): Same.
13246
13247 2015-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13248
13249         PR target/63304
13250         * config/aarch64/aarch.md (mov<mode>:GPF_F16): Use GPF_TF_F16.
13251         (movtf): Delete.
13252         * config/aarch64/iterators.md (GPF_TF_F16): New.
13253         (GPF_F16): Delete.
13254
13255 2015-09-10  Nathan Sidwell  <nathan@acm.org>
13256
13257         * config/nvptx/nvptx.c (nvptx_expand_call): Add spacing.
13258         (nvptx_reorg): Adjust comments.
13259
13260 2015-09-15  John David Anglin  <danglin@gcc.gnu.org>
13261
13262         PR bootstrap/67363
13263         * configure.ac: Check if setenv and unsetenv are declared.
13264         * configure: Rebuild.
13265         * config.in: Rebuild.
13266         * system.h: Declare setenv and unsetenv if not declared.
13267
13268 2015-09-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13269
13270         * config/rs6000/rs6000.c (swap_web_entry): Update preceding
13271         commentary to simplify permute mask adjustment equation.
13272         (special_handling_values): Add SH_VPERM.
13273         (const_load_sequence_p): New function.
13274         (insn_is_swappable_p): Add logic to recognize an UNSPEC_VPERM with
13275         the mask loaded from the constant pool.
13276         (adjust_vperm): New function.
13277         (handle_special_swappables): Call adjust_vperm.
13278         (dump_swap_insn_table): Handle SH_VPERM.
13279
13280 2015-09-10  H.J. Lu  <hongjiu.lu@intel.com>
13281
13282         * shrink-wrap.c (requires_stack_frame_p): Remove static.
13283         * shrink-wrap.h (requires_stack_frame_p): Put back.
13284
13285 2015-09-10  Richard Sandiford  <richard.sandiford@arm.com>
13286
13287         * reload1.c (elimination_costs_in_insn): Locally turn
13288         -Wmaybe-uninitialized into a warning.
13289
13290 2015-09-10  Segher Boessenkool  <segher@kernel.crashing.org>
13291
13292         * shrink-wrap.c (requires_stack_frame_p): Make static.
13293         (prepare_shrink_wrap): Likewise.
13294         (dup_block_and_redirect): Likewise.
13295         * shrink-wrap.h: Remove declarations of those functions.
13296
13297 2015-09-10  Mark Wielaard  <mjw@redhat.com>
13298
13299         * doc/invoke.texi (Wnonnull): Also warns when comparing against NULL.
13300
13301 2015-09-10  Oleg Endo  <olegendo@gcc.gnu.org>
13302
13303         PR target/67506
13304         * config/sh/sh.c (sh_extending_set_of_reg::use_as_extended_reg): Add
13305         missing simplify_gen_subreg.
13306
13307 2015-09-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13308
13309         * config/s390/s390.c (s390_contiguous_bitmask_vector_p): Reject if
13310         the vector element is bigger than 64 bit.
13311
13312 2015-09-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13313
13314         * config/s390/vx-builtins.md ("vec_vmal<mode>", "vec_vmah<mode>")
13315         ("vec_vmalh<mode>"): Change mode iterator from VI_HW to VI_HW_QHS.
13316
13317 2015-09-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13318
13319         * config/s390/s390.c: Add V1TImode to constant pool modes.
13320
13321 2015-09-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13322
13323         PR target/67439
13324         * config/arm/arm.md (*arm32_movhf): Remove !arm_restrict_it from
13325         predicate.  Set predicable_short_it attr to "no".
13326
13327 2015-09-10  Jiong Wang  <jiong.wang@arm.com>
13328
13329         PR rtl-optimization/67421
13330         * expr.c (expand_expr_real_2): Cost instrcution sequences when doing
13331         left wide shift tranformation.
13332
13333 2015-09-10  Claudiu Zissulescu  <claziss@synopsys.com>
13334
13335         * common/config/arc/arc-common.c: Remove references to A5.
13336         * config/arc/arc-opts.h: Likewise.
13337         * config/arc/arc.c, config/arc/arc.h, config/arc/arc.md: Likewise.
13338         * config/arc/arc.opt, config/arc/constraints.md: Likewise.
13339         * config/arc/t-arc-newlib: Likewise.
13340
13341 2015-09-10  Claudiu Zissulescu <claziss@synopsys.com>
13342
13343         * config/arc/arc.md (length): Fix attribute length for conditional
13344         executed instructions with long immediate.
13345
13346 2015-09-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13347
13348         * config/aarch64/aarch64.md (*and<mode>3nr_compare0): Use logics_imm
13349         type for second alternative.
13350
13351 2015-09-10  Markus Trippelsdorf  <markus@trippelsdorf.de>
13352
13353         * doc/invoke.texi (Downloading GCC): Mention
13354         contrib/download_prerequisites script.
13355
13356 2015-09-10  Jakub Jelinek  <jakub@redhat.com>
13357
13358         PR c++/67523
13359         * gimplify.c (gimplify_omp_for): If inner stmt is not found
13360         for combined loop, assert seen_error () and return GS_ERROR.
13361
13362         PR middle-end/67521
13363         * gimplify.c (gimplify_omp_for): Don't call omp_add_variable
13364         if decl is already in outer->variables.
13365
13366         PR middle-end/67517
13367         * gimplify.c (gimplify_scan_omp_clauses): Instead of
13368         asserting that decl is not specified in octx->variables,
13369         break out of the loop if it is.
13370
13371         PR c++/67514
13372         * gimplify.c (gimplify_omp_for): For loop SIMD construct, if
13373         iterator is not explicitly determined, but is defined inside
13374         of the combined workshare region, handle it like if it has
13375         DECL_EXPR in OMP_FOR_PRE_BODY.
13376
13377 2015-09-09  Nathan Sidwell  <nathan@acm.org>
13378
13379         * config/nvptx/nvptx.md (call_operation): Move bound out of loop.
13380         (*cmp<mode>): Add assembler spacing.
13381         (setcc_int<mode>, set_cc_float<mode>): Likewise.
13382         * config/nvptx/nvptx.c (nvptx_option_override): Override debug
13383         level.
13384         (write_func_decl_from_insn): Refactor argument loops & comma emission.
13385         (nvptx_expand_call): Likewise.
13386         (nvptx_output_call_insn): Likewise.
13387         (nvptx_reorg_subreg): Add spacing.
13388
13389 2015-09-09  Marek Polacek  <polacek@redhat.com>
13390
13391         PR middle-end/67512
13392         * tree-ssa-uninit.c (pred_equal_p): Only call invert_tree_comparison
13393         for comparisons.
13394
13395 2015-09-09  Paolo Carlini  <paolo.carlini@oracle.com>
13396
13397         PR c++/53184
13398         * doc/invoke.texi ([Wsubobject-linkage]): Document.
13399
13400 2015-09-09  Tom de Vries  <tom@codesourcery.com>
13401
13402         * params-list.h: Add missing copyright notice.
13403
13404 2015-09-09  Nathan Sidwell  <nathan@acm.org>
13405
13406         * config/nvptx/nvptx.md (atomic_compare_and_swap<mode>): Use
13407         sel_truesi, not andsi.
13408
13409 2015-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13410
13411         * config/arm/arm.md (*subsi3_compare0): Rename to...
13412         (subsi3_compare0): ... This.
13413         (modsi3): New define_expand.
13414         * config/arm/arm.c (arm_new_rtx_costs, MOD case): Handle case
13415         when operand is power of 2.
13416
13417 2015-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13418
13419         * config/aarch64/aarch64.md (mod<mode>3): New define_expand.
13420         (*neg<mode>2_compare0): Rename to...
13421         (neg<mode>2_compare0): ... This.
13422         * config/aarch64/aarch64.c (aarch64_rtx_costs, MOD case):
13423         Move check for speed inside the if-then-elses.  Reflect
13424         CSNEG sequence in MOD by power of 2 case.
13425
13426 2015-09-09  Alan Modra  <amodra@gmail.com>
13427
13428         PR target/67378
13429         * config/rs6000/rs6000.c (rs6000_secondary_reload_gpr): Find
13430         reload replacement for PRE_MODIFY address reg.
13431
13432 2015-09-09  Sebastian Pop  <s.pop@samsung.com>
13433
13434         PR tree-optimization/53852
13435         * config.in: Regenerate.
13436         * configure: Regenerate.
13437         * configure.ac (HAVE_ISL_CTX_MAX_OPERATIONS): Detect.
13438         * graphite-optimize-isl.c (optimize_isl): Stop computation when
13439         PARAM_MAX_ISL_OPERATIONS is reached.
13440         * params.def (PARAM_MAX_ISL_OPERATIONS): Add.
13441         * graphite-dependences.c (extend_schedule): Remove gcc_asserts on
13442         result equal to isl_stat_ok as the status now can be isl_error_quota.
13443         (subtract_commutative_associative_deps): Same.
13444         (compute_deps): Same.
13445
13446 2015-09-08  Aditya Kumar  <hiraditya@msn.com>
13447             Sebastian Pop  <s.pop@samsung.com>
13448
13449         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
13450         Return the parameter if it was saved in corresponding
13451         parameter_rename_map of the region.
13452         (copy_def): Copy def from sese region to the newly created region.
13453         (copy_internal_parameters): Copy all the internal parameters defined
13454         within a region to the newly created region.
13455         (graphite_regenerate_ast_isl): Copy parameters to the new region before
13456         translating isl to gimple.
13457         * graphite-scop-detection.c (graphite_can_represent_loop): Bail out if
13458         the loop-nest does not have any data-references.
13459         (build_graphite_scops): Create a scop only when there is at least one
13460         loop inside it.
13461         (contains_only_close_phi_nodes): Deleted.
13462         (print_graphite_scop_statistics): Deleted
13463         (print_graphite_statistics): Deleted
13464         (limit_scops): Deleted.
13465         (build_scops): Removed call to limit_scops.
13466         * sese.c (new_sese): Construct.
13467         (free_sese): Destruct.
13468         (sese_add_exit_phis_edge): update_stmt after exit phi edge has been
13469         added.
13470         (set_rename): Pass sese region so that parameters inside the region can
13471         be added to its parameter_rename_map.
13472         (rename_uses): Pass sese region.
13473         (graphite_copy_stmts_from_block): Do not copy parameters that have been
13474         generated in the header of the scop. For each SSA_NAME in the
13475         parameter_rename_map rename its usage.
13476         (invariant_in_sese_p_rec): Return false if tree t is defined outside
13477         sese region.
13478         (scalar_evolution_in_region): If the tree t is invariant just return t.
13479         * sese.h: Added a parameter renamne map (parameter_rename_map_t) to
13480         struct sese to keep track of all the parameters which need renaming.
13481         * tree-data-ref.c (loop_nest_has_data_refs): Check if a loop nest has
13482         any data-refs.
13483         * tree-data-ref.h: Declaration of loop_nest_has_data_refs.
13484
13485 2015-09-08  Tom de Vries  <tom@codesourcery.com>
13486
13487         * Makefile.in (generated_files): Add params.list.
13488         (params.list, s-params.list): Add rule.
13489         * params.h (enum compiler_param): Include params-list.h.  Move define
13490         DEFPARAM, include params.def and undef DEFPARAM ...
13491         * params-list.h: ... here.  New file.
13492
13493 2015-09-08  David Malcolm  <dmalcolm@redhat.com>
13494
13495         * pretty-print.h (printer_fn): Fix typo in comment.
13496
13497 2015-09-07  Jeff Law  <law@redhat.com>
13498
13499         * tree-ssa-scopedtables.h (class const_and_copies): Fix comment typo.
13500
13501 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
13502
13503         * doc/sourcebuild.texi (arm_neon_fp16): Correct cross-reference.
13504         (arm_neon_fp16_ok): Document adding of -mfp16-format=ieee flag.
13505         (arm_neon_fp16_hw): New.
13506
13507 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
13508
13509         * fold-const.c (native_interpret_real): Fix HFmode for bigendian where
13510         UNITS_PER_WORD >= 4.
13511
13512 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
13513
13514         * config/aarch64/aarch64-simd.md (aarch64_simd_vec_unpacks_lo_<mode>,
13515         aarch64_simd_vec_unpacks_hi_<mode>): New insn.
13516         (vec_unpacks_lo_v4sf, vec_unpacks_hi_v4sf): Delete insn.
13517         (vec_unpacks_lo_<mode>, vec_unpacks_hi_<mode>): New expand.
13518         (aarch64_float_extend_lo_v2df): Rename to...
13519         (aarch64_float_extend_lo_<Vwide>): this, using VDF and so adding V4SF.
13520
13521         * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi): Add v8hf.
13522         (float_extend_lo): Add v4sf.
13523
13524         * config/aarch64/arm_neon.h (vcvt_f32_f16, vcvt_high_f32_f16): New.
13525         * config/aarch64/iterators.md (VQ_HSF): New iterator.
13526         (VWIDE, Vwtype, Vhalftype): Add V8HF, V4SF.
13527         (Vwide): New mode_attr.
13528
13529 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
13530
13531         * config/aarch64/aarch64-simd.md (aarch64_simd_dup<mode>,
13532         aarch64_dup_lane<mode>, aarch64_dup_lane_<vswap_width_name><mode>,
13533         aarch64_simd_vec_set<mode>, vec_set<mode>, vec_perm_const<mode>,
13534         vec_init<mode>, *aarch64_simd_ld1r<mode>, vec_extract<mode>): Add
13535         V4HF and V8HF variants to iterator.
13536
13537         * config/aarch64/aarch64.c (aarch64_evpc_dup): Add V4HF and V8HF cases.
13538
13539         * config/aarch64/iterators.md (VDQF_F16): New.
13540         (VSWAP_WIDTH, vswap_width_name): Add V4HF and V8HF cases.
13541
13542 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
13543
13544         * config/aarch64/arm_neon.h (vreinterpret_p8_f16, vreinterpret_p16_f16,
13545         vreinterpret_f16_f64, vreinterpret_f16_s8, vreinterpret_f16_s16,
13546         vreinterpret_f16_s32, vreinterpret_f16_s64, vreinterpret_f16_f32,
13547         vreinterpret_f16_u8, vreinterpret_f16_u16, vreinterpret_f16_u32,
13548         vreinterpret_f16_u64, vreinterpret_f16_p8, vreinterpret_f16_p16,
13549         vreinterpretq_f16_f64, vreinterpretq_f16_s8, vreinterpretq_f16_s16,
13550         vreinterpretq_f16_s32, vreinterpretq_f16_s64, vreinterpretq_f16_f32,
13551         vreinterpretq_f16_u8, vreinterpretq_f16_u16, vreinterpretq_f16_u32,
13552         vreinterpretq_f16_u64, vreinterpretq_f16_p8, vreinterpretq_f16_p16,
13553         vreinterpret_f32_f16, vreinterpret_f64_f16, vreinterpret_s64_f16,
13554         vreinterpret_u64_f16, vreinterpretq_u64_f16, vreinterpret_s8_f16,
13555         vreinterpret_s16_f16, vreinterpret_s32_f16, vreinterpret_u8_f16,
13556         vreinterpret_u16_f16, vreinterpret_u32_f16, vreinterpretq_p8_f16,
13557         vreinterpretq_p16_f16, vreinterpretq_f32_f16, vreinterpretq_f64_f16,
13558         vreinterpretq_s64_f16, vreinterpretq_s8_f16, vreinterpretq_s16_f16,
13559         vreinterpretq_s32_f16, vreinterpretq_u8_f16, vreinterpretq_u16_f16,
13560         vreinterpretq_u32_f16, vget_low_f16, vget_high_f16, vld1_dup_f16,
13561         vld1q_dup_f16): New.
13562
13563 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
13564
13565         * config/aarch64/aarch64-simd.md (aarch64_float_truncate_lo_v2sf):
13566         Reparameterize to...
13567         (aarch64_float_truncate_lo_<mode>): ...this, for both V2SF and V4HF.
13568         (aarch64_float_truncate_hi_v4sf): Reparameterize to...
13569         (aarch64_float_truncate_hi_<Vdbl>): ...this, for both V4SF and V8HF.
13570
13571         * config/aarch64/aarch64-simd-builtins.def (float_truncate_hi_): Add
13572         v8hf variant.
13573         (float_truncate_lo_): Use BUILTIN_VDF iterator.
13574
13575         * config/aarch64/arm_neon.h (vcvt_f16_f32, vcvt_high_f16_f32): New.
13576
13577         * config/aarch64/iterators.md (VDF, Vdtype): New.
13578         (VWIDE, Vmwtype): Add cases for V4HF and V2SF.
13579
13580 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
13581
13582         * config/aarch64/aarch64.c (aarch64_split_simd_combine): Add V4HFmode.
13583         * config/aarch64/aarch64-builtins.c (VAR13, VAR14): New.
13584         (aarch64_scalar_builtin_types, aarch64_init_simd_builtin_scalar_types):
13585         Add __builtin_aarch64_simd_hf.
13586         * config/aarch64/arm_neon.h (float16x4x2_t, float16x8x2_t,
13587         float16x4x3_t, float16x8x3_t, float16x4x4_t, float16x8x4_t,
13588         vcombine_f16, vst2_lane_f16, vst2q_lane_f16, vst3_lane_f16,
13589         vst3q_lane_f16, vst4_lane_f16, vst4q_lane_f16, vld2_f16, vld2q_f16,
13590         vld3_f16, vld3q_f16, vld4_f16, vld4q_f16, vld2_dup_f16, vld2q_dup_f16,
13591         vld3_dup_f16, vld3q_dup_f16, vld4_dup_f16, vld4q_dup_f16,
13592         vld2_lane_f16, vld2q_lane_f16, vld3_lane_f16, vld3q_lane_f16,
13593         vld4_lane_f16, vld4q_lane_f16, vst2_f16, vst2q_f16, vst3_f16,
13594         vst3q_f16, vst4_f16, vst4q_f16, vcreate_f16): New.
13595
13596         * config/aarch64/iterators.md (VALLDIF, Vtype, Vetype, Vbtype,
13597         V_cmp_result, v_cmp_result): Add cases for V4HF and V8HF.
13598         (VDC, Vdbl): Add V4HF.
13599
13600 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
13601
13602         * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p): Support
13603         V4HFmode and V8HFmode.
13604         (aarch64_split_simd_move): Add case for V8HFmode.
13605         * config/aarch64/aarch64-builtins.c (v4hf_UP, v8hf_UP): Define.
13606         (aarch64_simd_builtin_std_type): Handle HFmode.
13607         (aarch64_init_simd_builtin_types): Include Float16x4_t and Float16x8_t.
13608
13609         * config/aarch64/aarch64-simd.md (mov<mode>, aarch64_get_lane<mode>,
13610         aarch64_ld1<VALL:mode>, aarch64_st1<VALL:mode): Use VALL_F16 iterator.
13611         (aarch64_be_ld1<mode>, aarch64_be_st1<mode>): Use VALLDI_F16 iterator.
13612
13613         * config/aarch64/aarch64-simd-builtin-types.def: Add Float16x4_t,
13614         Float16x8_t.
13615
13616         * config/aarch64/aarch64-simd-builtins.def (ld1, st1): Use VALL_F16.
13617         * config/aarch64/arm_neon.h (float16x4_t, float16x8_t, float16_t):
13618         New typedefs.
13619         (vget_lane_f16, vgetq_lane_f16, vset_lane_f16, vsetq_lane_f16,
13620         vld1_f16, vld1q_f16, vst1_f16, vst1q_f16, vst1_lane_f16,
13621         vst1q_lane_f16): New.
13622         * config/aarch64/iterators.md (VD, VQ, VQ_NO2E): Add vectors of HFmode.
13623         (VALLDI_F16, VALL_F16): New.
13624         (Vmtype, VEL, VCONQ, VHALF, V_TWO_ELEM, V_THREE_ELEM, V_FOUR_ELEM, q):
13625         Add cases for V4HF and V8HF.
13626         (VDBL, VRL2, VRL3, VRL4): Add V4HF case.
13627
13628 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
13629
13630         * config/arm/arm-builtins.c (VAR11, VAR12): New.
13631         * config/arm/arm_neon_builtins.def (vcombine, vld2_dup, vld3_dup,
13632         vld4_dup): Add v4hf variant.
13633         (vget_high, vget_low): Add v8hf variant.
13634         (vld1, vst1, vst1_lane, vld2, vld2_lane, vst2, vst2_lane, vld3,
13635         vld3_lane, vst3, vst3_lane, vld4, vld4_lane, vst4, vst4_lane): Add
13636         v4hf and v8hf variants.
13637
13638         * config/arm/iterators.md (VD_LANE, VD_RE, VQ2, VQ_HS): New.
13639         (VDX): Add V4HF.
13640         (V_DOUBLE): Add case for V4HF.
13641         (VQX): Add V8HF.
13642         (V_HALF): Add case for V8HF.
13643         (VDQX): Add V4HF, V8HF.
13644         (V_elem, V_two_elem, V_three_elem, V_four_elem, V_cmp_result,
13645         V_uf_sclr, V_sz_elem, V_mode_nunits, q): Add cases for V4HF & V8HF.
13646
13647         * config/arm/neon.md (vec_set<mode>internal, vec_extract<mode>,
13648         neon_vget_lane<mode>_sext_internal, neon_vget_lane<mode>_zext_internal,
13649         vec_load_lanesoi<mode>, neon_vld2<mode>, vec_store_lanesoi<mode>,
13650         neon_vst2<mode>, vec_load_lanesci<mode>, neon_vld3<mode>,
13651         neon_vld3qa<mode>, neon_vld3qb<mode>, vec_store_lanesci<mode>,
13652         neon_vst3<mode>, neon_vst3qa<mode>, neon_vst3qb<mode>,
13653         vec_load_lanesxi<mode>, neon_vld4<mode>, neon_vld4qa<mode>,
13654         neon_vld4qb<mode>, vec_store_lanesxi<mode>, neon_vst4<mode>,
13655         neon_vst4qa<mode>, neon_vst4qb<mode>): Change VQ iterator to VQ2.
13656
13657         (neon_vcreate, neon_vreinterpretv8qi<mode>,
13658         neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
13659         neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>):
13660         Change VDX to VD_RE.
13661
13662         (neon_vld2_lane<mode>, neon_vst2_lane<mode>, neon_vld3_lane<mode>,
13663         neon_vst3_lane<mode>, neon_vld4_lane<mode>, neon_vst4_lane<mode>):
13664         Change VD iterator to VD_LANE, and VMQ iterator to VQ_HS.
13665
13666         * config/arm/arm_neon.h (float16x4x2_t, float16x8x2_t, float16x4x3_t,
13667         float16x8x3_t, float16x4x4_t, float16x8x4_t, vcombine_f16,
13668         vget_high_f16, vget_low_f16, vld1_f16, vld1q_f16, vst1_f16, vst1q_f16,
13669         vst1_lane_f16, vst1q_lane_f16, vld2_f16, vld2q_f16, vld2_lane_f16,
13670         vld2q_lane_f16, vld2_dup_f16, vst2_f16, vst2q_f16, vst2_lane_f16,
13671         vst2q_lane_f16, vld3_f16, vld3q_f16, vld3_lane_f16, vld3q_lane_f16,
13672         vld3_dup_f16, vst3_f16, vst3q_f16, vst3_lane_f16, vst3q_lane_f16,
13673         vld4_f16, vld4q_f16, vld4_lane_f16, vld4q_lane_f16, vld4_dup_f16,
13674         vst4_f16, vst4q_f16, vst4_lane_f16, vst4q_lane_f16): New.
13675
13676 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
13677
13678         * config/arm/arm_neon.h (vgetq_lane_f16, vsetq_lane_f16, vld1q_lane_f16,
13679         vld1q_dup_f16, vreinterpretq_p8_f16, vreinterpretq_p16_f16,
13680         vreinterpretq_f16_p8, vreinterpretq_f16_p16, vreinterpretq_f16_f32,
13681         vreinterpretq_f16_p64, vreinterpretq_f16_p128, vreinterpretq_f16_s64,
13682         vreinterpretq_f16_u64, vreinterpretq_f16_s8, vreinterpretq_f16_s16,
13683         vreinterpretq_f16_s32, vreinterpretq_f16_u8, vreinterpretq_f16_u16,
13684         vreinterpretq_f16_u32, vreinterpretq_f32_f16, vreinterpretq_p64_f16,
13685         vreinterpretq_p128_f16, vreinterpretq_s64_f16, vreinterpretq_u64_f16,
13686         vreinterpretq_s8_f16, vreinterpretq_s16_f16, vreinterpretq_s32_f16,
13687         vreinterpretq_u8_f16, vreinterpretq_u16_f16, vreinterpretq_u32_f16):
13688         New.
13689
13690 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
13691
13692         * config/arm/arm.h (VALID_NEON_QREG_MODE): Add V8HFmode.
13693
13694         * config/arm/arm.c (arm_vector_mode_supported_p): Support V8HFmode.
13695
13696         * config/arm/arm-builtins.c (v8hf_UP): New.
13697         (arm_init_simd_builtin_types): Initialise Float16x8_t.
13698
13699         * config/arm/arm-simd-builtin-types.def (Float16x8_t): New.
13700
13701         * config/arm/arm_neon.h (float16x8_t): New typedef.
13702
13703 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
13704
13705         * config/arm/arm_neon.h (float16_t, vget_lane_f16, vset_lane_f16,
13706         vcreate_f16, vld1_lane_f16, vld1_dup_f16, vreinterpret_p8_f16,
13707         vreinterpret_p16_f16, vreinterpret_f16_p8, vreinterpret_f16_p16,
13708         vreinterpret_f16_f32, vreinterpret_f16_p64, vreinterpret_f16_s64,
13709         vreinterpret_f16_u64, vreinterpret_f16_s8, vreinterpret_f16_s16,
13710         vreinterpret_f16_s32, vreinterpret_f16_u8, vreinterpret_f16_u16,
13711         vreinterpret_f16_u32, vreinterpret_f32_f16, vreinterpret_p64_f16,
13712         vreinterpret_s64_f16, vreinterpret_u64_f16, vreinterpret_s8_f16,
13713         vreinterpret_s16_f16, vreinterpret_s32_f16, vreinterpret_u8_f16,
13714         vreinterpret_u16_f16, vreinterpret_u32_f16): New.
13715
13716 2015-09-07  Ilya Verbin  <ilya.verbin@intel.com>
13717
13718         * config/i386/intelmic-mkoffload.c (prepare_target_image): Handle all
13719         non-alphanumeric characters in the symbol name.
13720
13721 2015-09-07  Marek Polacek  <polacek@redhat.com>
13722
13723         PR inline-asm/67448
13724         * gimplify.c (gimplify_asm_expr): Don't allow MODIFY_EXPR as
13725         a memory input.
13726
13727 2015-09-07  Marek Polacek  <polacek@redhat.com>
13728
13729         * system.h (INTTYPE_MINIMUM): Rewrite to avoid shift warning.
13730
13731 2015-09-04  Paolo Bonzini  <bonzini@gnu.org>
13732
13733         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Do
13734         not warn.
13735
13736 2015-09-04  Jakub Jelinek  <jakub@redhat.com>
13737
13738         PR middle-end/67452
13739         * tree-ssa-live.c: Include cfgloop.h.
13740         (remove_unused_locals): Clear loop->simduid if simduid is about
13741         to be removed from cfun->local_decls.
13742
13743 2015-09-02  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
13744
13745         PR target/65210
13746         * config/avr/avr.c (avr_eval_addr_attrib): Look for io_low
13747         attribute as well.
13748
13749 2015-09-04  Tom de Vries  <tom@codesourcery.com>
13750
13751         * doc/invoke.texi (@item -ftrapv, @item -fwrapv): Document interaction.
13752
13753 2015-09-04  Jeff Law  <law@redhat.com>
13754
13755         * tree-ssa-scopedtables.c (const_and_copies::const_and_copies): Remove
13756         unnecessary constructor.  It's now trivial and implemented inside...
13757         * tree-ssa-scopedtables.h (const_and_copies): Implement trivial
13758         constructor.  Add comments to various methods.  Remove unused
13759         private fields.
13760         * tree-ssa-dom.c (pass_dominator::execute): Corresponding changes.
13761         * tree-vrp.c (identify_jump_threads): Likewise.
13762         * tree-ssa-threadedge.c (thread_through_normal_block): Fix minor
13763         indentation issues.
13764         (thread_across_edge): Similarly.
13765         (record_temporary_equivalences_from_stmts_at_dest): Remove unused
13766         arguments in constructor call.
13767
13768 2015-09-04  Jonas Hahnfeld  <Hahnfeld@itc.rwth-aachen.de>
13769
13770         * config/i386/intelmic-mkoffload.c (prepare_target_image): Fix if the
13771         temp path contains a '-'.
13772
13773 2015-09-04  Andrey Turetskiy  <andrey.turetskiy@intel.com>
13774             Petr Murzin  <petr.murzin@intel.com>
13775             Kirill Yukhin  <kirill.yukhin@intel.com>
13776
13777         * config/i386/i386-builtin-types.def
13778         (VOID_PFLOAT_HI_V8DI_V16SF_INT): New.
13779         (VOID_PDOUBLE_QI_V16SI_V8DF_INT): Ditto.
13780         (VOID_PINT_HI_V8DI_V16SI_INT): Ditto.
13781         (VOID_PLONGLONG_QI_V16SI_V8DI_INT): Ditto.
13782         * config/i386/i386.c
13783         (ix86_builtins): Add IX86_BUILTIN_SCATTERALTSIV8DF,
13784         IX86_BUILTIN_SCATTERALTDIV16SF, IX86_BUILTIN_SCATTERALTSIV8DI,
13785         IX86_BUILTIN_SCATTERALTDIV16SI.
13786         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_scatteraltsiv8df,
13787         __builtin_ia32_scatteraltdiv8sf, __builtin_ia32_scatteraltsiv8di,
13788         __builtin_ia32_scatteraltdiv8si.
13789         (ix86_expand_builtin): Handle IX86_BUILTIN_SCATTERALTSIV8DF,
13790         IX86_BUILTIN_SCATTERALTDIV16SF, IX86_BUILTIN_SCATTERALTSIV8DI,
13791         IX86_BUILTIN_SCATTERALTDIV16SI.
13792         (ix86_vectorize_builtin_scatter): New.
13793         (TARGET_VECTORIZE_BUILTIN_SCATTER): Define as
13794         ix86_vectorize_builtin_scatter.
13795
13796 2015-09-04  Andrey Turetskiy  <andrey.turetskiy@intel.com>
13797             Petr Murzin  <petr.murzin@intel.com>
13798             Kirill Yukhin  <kirill.yukhin@intel.com>
13799
13800         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_SCATTER): New.
13801         * doc/tm.texi: Regenerate.
13802         * target.def: Add scatter builtin.
13803         * tree-vectorizer.h: Rename gather_p to gather_scatter_p and use it
13804         for loads/stores in case of gather/scatter accordingly.
13805         (STMT_VINFO_GATHER_SCATTER_P(S)): Use it instead of
13806         STMT_VINFO_GATHER_P(S).
13807         (vect_check_gather): Rename to ...
13808         (vect_check_gather_scatter): this.
13809         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Use
13810         STMT_VINFO_GATHER_SCATTER_P instead of STMT_VINFO_SCATTER_P.
13811         (vect_check_gather_scatter): Use it instead of vect_check_gather.
13812         (vect_analyze_data_refs): Add gatherscatter enum and maybe_scatter
13813         variable and new checkings for it accordingly.
13814         * tree-vect-stmts.c
13815         (STMT_VINFO_GATHER_SCATTER_P(S)): Use it instead of
13816         STMT_VINFO_GATHER_P(S).
13817         (vect_check_gather_scatter): Use it instead of vect_check_gather.
13818         (vectorizable_store): Add checkings for STMT_VINFO_GATHER_SCATTER_P.
13819
13820 2015-09-03  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
13821
13822         * config/rs6000/altivec.md (altivec_vperm_v8hiv16qi): New
13823         define_insn.
13824         (mulv16qi3): New define_expand.
13825
13826 2015-09-03  Martin Sebor  <msebor@redhat.com>
13827
13828         PR c/66516
13829         * doc/extend.texi (Other Builtins): Document when the address
13830         of a built-in function can be taken.
13831
13832 2015-09-03  Richard Biener  <rguenther@suse.de>
13833
13834         * dwarf2out.c (flush_limbo_die_list): Split out from ...
13835         (dwarf2out_early_finish): ... here.
13836         (dwarf2out_finish): Do not call dwarf2out_early_finish but
13837         flush_limbo_die_list.  Assert we have no deferred asm names.
13838
13839 2015-09-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13840
13841         * optabs.c (expand_binop): Don't create a broadcast vector with a
13842         source element wider than the inner mode.
13843
13844 2015-09-03  Richard Biener  <rguenther@suse.de>
13845
13846         * varasm.c (output_constant): Use fold_convert instead of
13847         wide_int_to_tree.
13848
13849 2015-09-03  Tom de Vries  <tom@codesourcery.com>
13850
13851         PR tree-optimization/65637
13852         * omp-low.c (expand_omp_for_static_chunk): Handle case that
13853         fin_bb has 2 predecessors.
13854
13855 2015-09-03  Tom de Vries  <tom@codesourcery.com>
13856
13857         PR tree-optimization/65637
13858         * omp-low.c (find_phi_with_arg_on_edge): New function.
13859         (expand_omp_for_static_chunk): Fix inner loop phi.
13860
13861 2015-09-03  Tom de Vries  <tom@codesourcery.com>
13862
13863         PR tree-optimization/65637
13864         * omp-low.c (expand_omp_for_static_chunk): Fix gcc_assert for the case
13865         that head is NULL.
13866
13867 2015-09-03  Tom de Vries  <tom@codesourcery.com>
13868
13869         * omp-low.c (expand_omp_for_static_chunk): Handle simple latch bb.
13870
13871 2015-09-03  Tom de Vries  <tom@codesourcery.com>
13872
13873         * doc/invoke.texi (parloops-chunk-size): Add item.
13874         * params.def (PARAM_PARLOOPS_CHUNK_SIZE): Add DEFPARAM.
13875         * tree-parloops.c: Include params.h.
13876         (create_parallel_loop): Set chunk-size of schedule of omp-for loop, if
13877         param parloops-chunk-size is used.
13878
13879 2015-09-03  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
13880
13881         PR middle-end/67351
13882         * fold-const.c (fold_binary_loc) : Move
13883         Transform (x >> c) << c into x & (-1<<c) or
13884         transform (x << c) >> c into x & ((unsigned)-1 >> c) for unsigned
13885         types using simplify and match.
13886         * match.pd (lshift (rshift @0 INTEGER_CST@1) @1) : New simplifier.
13887         (rshift (lshift @0 INTEGER_CST@1) @1) : New Simplifier
13888
13889 2015-09-03  Richard Biener  <rguenther@suse.de>
13890
13891         PR ipa/66705
13892         * tree-ssa-structalias.c (ctor_for_analysis): New function.
13893         (create_variable_info_for_1): Use ctor_for_analysis instead
13894         of get_constructor.
13895         (create_variable_info_for): Likewise.
13896
13897 2015-09-02  Charles Baylis  <charles.baylis@linaro.org>
13898
13899         PR ipa/67280
13900         * cgraphunit.c (cgraph_node::create_wrapper): Set can_throw_external
13901         in new callgraph edge.
13902
13903 2015-09-02  Christophe Lyon  <christophe.lyon@linaro.org>
13904
13905         PR target/59810
13906         PR target/63652
13907         PR target/63653
13908         * config/aarch64/aarch64-simd.md
13909         (aarch64_ld<VSTRUCT:nregs><VQ:mode>): Call
13910         gen_aarch64_simd_ld<VSTRUCT:nregs><VQ:mode>.
13911         (aarch64_st<VSTRUCT:nregs><VQ:mode>): Call
13912         gen_aarch64_simd_st<VSTRUCT:nregs><VQ:mode>.
13913
13914 2015-09-02  Alan Modra  <amodra@gmail.com>
13915
13916         * config/rs6000/sysv4le.h (LINK_TARGET_SPEC): Don't define.
13917         * config/rs6000/sysv4.h (LINK_TARGET_SPEC): Likewise.
13918         (LINK_SPEC, SUBTARGET_EXTRA_SPECS): Delete link_target.
13919
13920 2015-09-02  Alan Modra  <amodra@gmail.com>
13921
13922         PR target/67417
13923         * config/rs6000/predicates.md (current_file_function_operand): Don't
13924         return true for weak symbols.
13925         * config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Likewise.
13926
13927 2015-09-01  Matthew Fortune  <matthew.fortune@imgtec.com>
13928             Andrew Bennett  <andrew.bennett@imgtec.com>
13929
13930         * config/mips/mips-opts.h (mips_cb_setting): New enum.
13931         * config/mips/mips-protos.h: Add definitions for
13932         mips_output_jump and mips_output_equal_conditional_branch
13933         * config/mips/mips.c (MIPS_JR): Change to support the
13934         JIC instruction.
13935         (mips_emit_compare): Add support for the MIPS R6 conditional
13936         compact branches.
13937         (mips_process_sync_loop): Likewise.
13938         (mips_output_order_conditional_branch): Likewise.
13939         (mips16_build_call_stub): Change MIPS_CALL to
13940         mips_output_jump.
13941         (mips_print_operand_punctuation): Update 's' case to only
13942         apply to micromips r2.
13943         (mips_adjust_insn_length): Add support for forbidden slot
13944         hazards.
13945         (mips_avoid_hazard): Likewise.
13946         (mips_reorg_process_insns): Likewise.
13947         (mips_output_jump): New function.
13948         (mips_output_equal_conditional_branch): Likewise.
13949         (mips_output_conditional_branch): Use jrc/bc if compact
13950         branch support is enabled.  Ensure the forbidden slots
13951         between the two branch instructions is filled with a nop.
13952         (mips_option_override): Add support to process the compact
13953         branch option and set the correct defaults.  Prevent
13954         non-explict relocs being using for MIPS R6.
13955         (mips_trampoline_init): Add compact branch support.
13956         (mips_mult_zero_zero_cost): Allow zero initialisation of
13957         accumulators with TARGET_DSP.
13958         * config/mips/mips.h (TARGET_CB_NEVER): New define.
13959         (TARGET_CB_MAYBE): New define.
13960         (TARGET_CB_ALWAYS): New define.
13961         (ISA_HAS_DELAY_SLOTS): New define.
13962         (ISA_HAS_COMPACT_BRANCHES): New define.
13963         (ISA_HAS_JRC): New define.
13964         (MIPS_BRANCH_C): New define.
13965         (MIPS_CALL): Removed.
13966         (MICROMIPS_J): Removed.
13967         * config/mips/mips.md (compact_form): New attr.
13968         (hazard): Add support for forbidden slots.
13969         (define_delay): Add support for compact branches.
13970         (*branch_order<mode>): Likewise.
13971         (*branch_order<mode>_inverted): Likewise.
13972         (*branch_equality<mode>): Likewise.
13973         (*branch_equality<mode>_inverted): Likewise.
13974         (*jump_absolute): Likewise.
13975         (*jump_pic): Likewise.
13976         (indirect_jump): Use mips_output_jump to produce assembly output.
13977         (tablejump_<mode>"): Likewise.
13978         (*<optab>"): Likewise.
13979         (<optab>_internal): Likewise.
13980         (sibcall_internal): Likewise.
13981         (sibcall_value_internal): Likewise.
13982         (sibcall_value_multiple_internal): Likewise.
13983         (call_internal): Likewise.
13984         (call_split): Likewise.
13985         (call_internal_direct): Likewise.
13986         (call_direct_split): Likewise.
13987         (call_value_internal): Likewise.
13988         (call_value_split): Likewise.
13989         (call_value_internal_direct): Likewise.
13990         (call_value_direct_split): Likewise.
13991         (call_value_multiple_internal): Likewise.
13992         (call_value_multiple_split): Likewise.
13993         (mips_get_fcsr_mips16_<mode>): Likewise.
13994         (mips_set_fcsr_mips16_<mode>): Likewise.
13995         (tls_get_tp_mips16_<mode>): Likewise.
13996         * config/mips/mips.opt: Add -mcompact-branches option.
13997         * config/mips/predicates.md (order_operator): Ensure the
13998         conditional compact branches are only used if the ISA them.
13999         * doc/invoke.texi: Document -mcompact-branches option.
14000
14001 2015-09-01  Vladimir Makarov  <vmakarov@redhat.com>
14002
14003         PR target/61578
14004         * lra-lives.c (process_bb_lives): Process move pseudos with the
14005         same value for copies and preferences
14006         * lra-constraints.c (match_reload): Create match reload pseudo
14007         with the same value from single dying input pseudo.
14008
14009 2015-09-01  Ilya Enkovich  <enkovich.gnu@gmail.com>
14010
14011         PR target/67405
14012         * tree-chkp.c (chkp_find_bound_slots_1): Add NULL check.
14013
14014 2015-09-01  Aldy Hernandez  <aldyh@redhat.com>
14015
14016         * trans-mem.c: Add contributed-by.
14017         * trans-mem.h: Same.
14018
14019 2015-09-01  Richard Biener  <rguenther@suse.de>
14020
14021         * expr.c (expand_expr_real_1): For expanding TERed defs
14022         set the current location to that of the def if not UNKNOWN.
14023
14024 2015-09-01  David Sherwood  <david.sherwood@arm.com>
14025
14026         * genmodes.c: Add CONST_MODE_UNIT_SIZE modifier.
14027
14028 2015-09-01  Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14029
14030         * ifcvt.c (struct noce_if_info): Add then_simple, else_simple,
14031         then_cost, else_cost fields.  Change branch_cost field to unsigned int.
14032         (end_ifcvt_sequence): Call set_used_flags on each insn in the sequence.
14033         Include rtl-iter.h.
14034         (noce_simple_bbs): New function.
14035         (noce_try_move): Bail if basic blocks are not simple.
14036         (noce_try_store_flag): Likewise.
14037         (noce_try_store_flag_constants): Likewise.
14038         (noce_try_addcc): Likewise.
14039         (noce_try_store_flag_mask): Likewise.
14040         (noce_try_cmove): Likewise.
14041         (noce_try_minmax): Likewise.
14042         (noce_try_abs): Likewise.
14043         (noce_try_sign_mask): Likewise.
14044         (noce_try_bitop): Likewise.
14045         (bbs_ok_for_cmove_arith): New function.
14046         (noce_emit_all_but_last): Likewise.
14047         (noce_emit_insn): Likewise.
14048         (noce_emit_bb): Likewise.
14049         (noce_try_cmove_arith): Handle non-simple basic blocks.
14050         (insn_valid_noce_process_p): New function.
14051         (contains_mem_rtx_p): Likewise.
14052         (bb_valid_for_noce_process_p): Likewise.
14053         (noce_process_if_block): Allow non-simple basic blocks
14054         where appropriate.
14055
14056 2015-08-31  Alan Lawrence  <alan.lawrence@arm.com>
14057
14058         * tree-ssa-dom.c (record_equivalences_from_phis,
14059         record_equivalences_from_stmt, optimize_stmt): Use dom_valueize.
14060         (lookup_avail_expr): Likewise, and remove comment and unused temp.
14061
14062 2015-09-01  Nick Clifton  <nickc@redhat.com>
14063
14064         * config/msp430/msp430.opt (mcpu): Fix typo.
14065
14066 2015-09-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14067
14068         * config/aarch64/aarch64.c (aarch64_set_current_function):
14069         Re-layout any vector parameters have non-simd layout.
14070         * config/aarch64/aarch64-builtins.c (aarch64_relayout_simd_param):
14071         Delete.
14072         (aarch64_simd_expand_args): Delete call to the above.
14073
14074 2015-08-31  Mike Frysinger  <vapier@gentoo.org>
14075
14076         * doc/invoke.texi (asan-stack): Add space before option.
14077
14078 2015-08-31  Marc Glisse  <marc.glisse@inria.fr>
14079
14080         * tree.h (zerop): New function.
14081         * tree.c (zerop): Likewise.
14082         (element_precision): Handle expressions.
14083         * match.pd (define_predicates): Add zerop.
14084         (x <= +Inf): Fix comment.
14085         (abs (x) == 0, A & C == C, A & C != 0): Converted from ...
14086         * fold-const.c (fold_binary_loc): ... here. Remove.
14087
14088 2015-08-31  Richard Biener  <rguenther@suse.de>
14089
14090         PR middle-end/67381
14091         * genmatch.c (dt_node::gen_kids): Also treat matches as barrier.
14092
14093 2015-08-31  Marc Glisse  <marc.glisse@inria.fr>
14094
14095         * match.pd (SIN, COS, TAN, COSH): Reorder for consistency.
14096         (CEXPI): New operator list.
14097         (real (conj (x)), imag (conj (x)), real (x +- y), real (cexpi (x)),
14098         imag (cexpi (x)), conj (conj (x)), conj (complex (x, y))):
14099         Converted from ...
14100         * fold-const.c (fold_unary_loc, fold_binary_loc): ... here. Remove.
14101
14102 2015-08-31  Tom de Vries  <tom@codesourcery.com>
14103
14104         * tree-ssa-loop-manip.c (find_uses_to_rename_stmt)
14105         (find_uses_to_rename_bb, find_uses_to_rename): Add and handle use_flags
14106         parameter.
14107         (find_uses_to_rename_def, find_uses_to_rename_in_loop): New function.
14108         (rewrite_into_loop_closed_ssa_1): New function, factored out of ...
14109         (rewrite_into_loop_closed_ssa): ... here.
14110         (replace_uses_in_dominated_bbs): Remove function.
14111         (rewrite_virtuals_into_loop_closed_ssa): Reimplement using
14112         rewrite_into_loop_closed_ssa_1.
14113
14114 2015-08-31  Michael Matz  <matz@suse.de>
14115
14116         * cfganal.c (pre_and_rev_post_order_compute_fn): Correctly
14117         enter entry and exit blocks for reverse post order.
14118
14119 2015-08-31  Richard Biener  <rguenther@suse.de>
14120
14121         * lto-streamer.h (lto_location_cache::cached_location::sysp): Add.
14122         (lto_location_cache::current_sysp): Likewise.
14123         (output_block::current_sysp): Likewise.
14124         * lto-streamer-in.c (lto_location_cache::cmp_loc): Compare sysp.
14125         (lto_location_cache::apply_location_cache): Properly record
14126         system header locations.
14127         (lto_location_cache::input_location): Input whether a file
14128         is a system header.
14129         * lto-streamer-out.c (lto_output_location): Stream whether a file
14130         is a system header.
14131
14132 2015-08-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14133
14134         PR bootstrap/67363
14135         * gcc.c (env_manager::xput): Replace strndup by xstrndup.
14136
14137 2015-08-31  Tom de Vries  <tom@codesourcery.com>
14138
14139         * tree-ssa-loop-manip.c (find_uses_to_rename_use)
14140         (find_uses_to_rename_stmt, find_uses_to_rename_bb, find_uses_to_rename):
14141         Improve function header comments.
14142
14143 2015-08-30  Michael Collison  <michael.collison@linaro.org>
14144
14145         PR other/67320
14146         * doc.md.texi: Rename [su]sum_widen to widen_[su]sum to reflect correct
14147         standard names
14148
14149 2015-08-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14150
14151         * config/rs6000/rs6000.c (swap_web_entry): Enlarge
14152         special_handling bitfield.
14153         (special_handling_values): Add SH_XXPERMDI and SH_CONCAT.
14154         (rtx_is_swappable_p): Add handling for vec_select/vec_concat form
14155         that represents a general xxpermdi.
14156         (insn_is_swappable_p): Add handling for vec_concat of two
14157         doublewords, which maps to a specific xxpermdi.
14158         (adjust_xxpermdi): New function.
14159         (adjust_concat): Likewise.
14160         (handle_special_swappables): Call adjust_xxpermdi and
14161         adjust_concat.
14162         (dump_swap_insn_table): Handle SH_XXPERMDI and SH_CONCAT.
14163
14164 2015-08-30  Rich Felker <dalias@libc.org>
14165
14166         * config.gcc (supported_defaults): Handle sh[123456ble]*-*-*
14167         case instead of sh[123456ble]-*-*.
14168
14169 2015-08-29  Anatoly Sokolov  <aesok@post.ru>
14170
14171         * ira.c (print_unform_and_important_classes,
14172         print_translated_classes): Remove reg_class_names static array.
14173         (print_unform_and_important_classes): Rename to ...
14174         (print_uniform_and_important_classes): ... this.
14175         (ira_debug_allocno_classes): Update accordingly.
14176
14177 2015-08-29  Tom de Vries  <tom@codesourcery.com>
14178
14179         PR tree-optimization/46193
14180         * omp-low.c (omp_reduction_init): Handle pointer type for min or max
14181         clause.
14182
14183 2015-08-28  Jeff Law  <law@redhat.com>
14184
14185         PR lto/66752
14186         * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
14187         unable to find X NE 0 in the tables, return X as the simplified
14188         condition.
14189         (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
14190         in VISISTED_BBS, then return failure.  Else add nodes from NEXT_PATH
14191         to VISISTED_BBS.
14192         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
14193         after removing the control flow statement and unnecessary edges.
14194
14195 2015-08-28  Alan Lawrence  <alan.lawrence@arm.com>
14196
14197         Revert:
14198         2015-08-27  Alan Lawrence  <alan.lawrence@arm.com>
14199
14200         PR tree-optimization/67283
14201         * tree-sra.c (type_consists_of_records_p): Rename to...
14202         (scalarizable_type_p): ...this, add case for ARRAY_TYPE.
14203
14204         (completely_scalarize_record): Rename to...
14205         (completely_scalarize): ...this, add ARRAY_TYPE case, move some
14206         code to:
14207         (scalarize_elem): New.
14208
14209 2015-08-28  Jiong Wang  <jiong.wang@arm.com>
14210
14211         * config/aarch64/aarch64-protos.h (aarch64_symbol_context): Rename
14212         SYMBOL_SMALL_GOTTPREL to SYMBOL_SMALL_TLSIE.
14213         (aarch64_symbol_type): Likewise.
14214         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
14215         Likewise.
14216         (aarch64_expand_mov_immediate): Likewise.
14217         (aarch64_print_operand): Likewise.
14218         (aarch64_classify_tls_symbol): Likewise.
14219
14220 2015-08-28  Richard Biener  <rguenther@suse.de>
14221
14222         * cgraphunit.c (symbol_table::compile): Move early debug generation
14223         and finish...
14224         (symbol_table::finalize_compilation_unit): ... back here and
14225         add a !seen_error () guard.
14226
14227 2015-08-27  Sebastian Pop  <s.pop@samsung.com>
14228
14229         * toplev.c (process_options): Do not use flag_loop_block,
14230         flag_loop_interchange, and flag_loop_strip_mine.  Add check for
14231         flag_loop_optimize_isl.
14232
14233 2015-08-27  Sebastian Pop  <s.pop@samsung.com>
14234
14235         * Makefile.in (OBJS): Remove graphite-blocking.o and
14236         graphite-interchange.o.
14237         * common.opt (floop-strip-mine, floop-interchange, floop-block):
14238         Alias of floop-nest-optimize.
14239         * doc/invoke.texi (floop-strip-mine, floop-interchange, floop-block):
14240         Document as alias of -floop-nest-optimize.
14241         * graphite-blocking.c: Remove.
14242         * graphite-interchange.c: Remove.
14243         * graphite-optimize-isl.c: Include dumpfile.h.
14244         (getScheduleForBand): Add dump for tiled loops.  Use
14245         PARAM_LOOP_BLOCK_TILE_SIZE instead of hard coded constant.
14246         * graphite-poly.c (scop_max_loop_depth): Remove.
14247         (print_scattering_function_1): Remove.
14248         (print_scattering_function): Remove.
14249         (print_scattering_functions): Remove.
14250         (debug_scattering_function): Remove.
14251         (debug_scattering_functions): Remove.
14252         (apply_poly_transforms): Remove use of flag_loop_block,
14253         flag_loop_strip_mine, and flag_loop_interchange.
14254         (new_poly_bb): Remove use of PBB_TRANSFORMED, PBB_SAVED, and
14255         PBB_ORIGINAL.
14256         (print_pdr_access_layout): Remove.
14257         (print_pdr): Print ISL representation.
14258         (new_scop): Remove use of SCOP_ORIGINAL_SCHEDULE,
14259         SCOP_TRANSFORMED_SCHEDULE, and SCOP_SAVED_SCHEDULE.
14260         (free_scop): Same.
14261         (openscop_print_pbb_domain): Remove.
14262         (print_pbb): Remove call to print_scattering_function.
14263         (openscop_print_scop_context): Remove.
14264         (print_scop_context): Do not print matrices anymore.
14265         (print_scop): Do not print SCOP_ORIGINAL_SCHEDULE and
14266         SCOP_TRANSFORMED_SCHEDULE.
14267         (print_isl_set): Add printing of a new line.
14268         (print_isl_map): Same.
14269         (print_isl_aff): Same.
14270         (print_isl_constraint): Same.
14271         (loop_to_lst): Remove.
14272         (scop_to_lst): Remove.
14273         (lst_indent_to): Remove.
14274         (print_lst): Remove.
14275         (debug_lst): Remove.
14276         (dot_lst_1): Remove.
14277         (dot_lst): Remove.
14278         (reverse_loop_at_level): Remove.
14279         (reverse_loop_for_pbbs): Remove.
14280         * graphite-poly.h (pdr_dim_iter_domain): Remove.
14281         (pdr_nb_params): Remove.
14282         (pdr_alias_set_dim): Remove.
14283         (pdr_subscript_dim): Remove.
14284         (pdr_iterator_dim): Remove.
14285         (pdr_parameter_dim): Remove.
14286         (same_pdr_p): Remove.
14287         (struct poly_scattering): Remove.
14288         (struct poly_bb): Remove _original, _transformed, _saved.
14289         (PBB_DOMAIN, PBB_ORIGINAL, PBB_ORIGINAL_SCATTERING): Remove.
14290         (PBB_TRANSFORMED, PBB_TRANSFORMED_SCATTERING, PBB_SAVED): Remove.
14291         (PBB_NB_LOCAL_VARIABLES): Remove.
14292         (PBB_NB_SCATTERING_TRANSFORM): Remove.
14293         (schedule_to_scattering): Remove.
14294         (number_of_write_pdrs): Remove.
14295         (pbb_dim_iter_domain): Remove.
14296         (pbb_nb_params): Remove.
14297         (pbb_nb_scattering_orig): Remove.
14298         (pbb_nb_scattering_transform): Remove.
14299         (pbb_nb_dynamic_scattering_transform): Remove.
14300         (pbb_nb_local_vars): Remove.
14301         (pbb_iterator_dim): Remove.
14302         (pbb_parameter_dim): Remove.
14303         (psco_scattering_dim): Remove.
14304         (psct_scattering_dim): Remove.
14305         (psct_local_var_dim): Remove.
14306         (psco_iterator_dim): Remove.
14307         (psct_iterator_dim): Remove.
14308         (psco_parameter_dim): Remove.
14309         (psct_parameter_dim): Remove.
14310         (psct_dynamic_dim): Remove.
14311         (psct_static_dim): Remove.
14312         (psct_add_local_variable): Remove.
14313         (new_lst_loop): Remove.
14314         (new_lst_stmt): Remove.
14315         (free_lst): Remove.
14316         (copy_lst): Remove.
14317         (lst_add_loop_under_loop): Remove.
14318         (lst_depth): Remove.
14319         (lst_dewey_number): Remove.
14320         (lst_dewey_number_at_depth): Remove.
14321         (lst_pred): Remove.
14322         (lst_succ): Remove.
14323         (lst_find_pbb): Remove.
14324         (find_lst_loop): Remove.
14325         (lst_find_first_pbb): Remove.
14326         (lst_empty_p): Remove.
14327         (lst_find_last_pbb): Remove.
14328         (lst_contains_p): Remove.
14329         (lst_contains_pbb): Remove.
14330         (lst_create_nest): Remove.
14331         (lst_remove_from_sequence): Remove.
14332         (lst_remove_loop_and_inline_stmts_in_loop_father): Remove.
14333         (lst_niter_for_loop): Remove.
14334         (pbb_update_scattering): Remove.
14335         (lst_update_scattering_under): Remove.
14336         (lst_update_scattering): Remove.
14337         (lst_insert_in_sequence): Remove.
14338         (lst_replace): Remove.
14339         (lst_substitute_3): Remove.
14340         (lst_distribute_lst): Remove.
14341         (lst_remove_all_before_including_pbb): Remove.
14342         (lst_remove_all_before_excluding_pbb): Remove.
14343         (struct scop): Remove original_schedule, transformed_schedule, and
14344         saved_schedule.
14345         (SCOP_ORIGINAL_SCHEDULE, SCOP_TRANSFORMED_SCHEDULE): Remove.
14346         (SCOP_SAVED_SCHEDULE): Remove.
14347         (poly_scattering_new): Remove.
14348         (poly_scattering_free): Remove.
14349         (poly_scattering_copy): Remove.
14350         (store_scattering_pbb): Remove.
14351         (store_lst_schedule): Remove.
14352         (restore_lst_schedule): Remove.
14353         (store_scattering): Remove.
14354         (restore_scattering_pbb): Remove.
14355         (restore_scattering): Remove.
14356         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons):
14357         Remove scattering_dimensions.  Do not use pbb_dim_iter_domain:
14358         compute the scattering polyhedron dimension from the dimension of
14359         pbb->domain.
14360         (build_scop_scattering): Update call to
14361         build_pbb_scattering_polyhedrons.
14362         (build_poly_scop): Remove call to scop_to_lst.
14363         * graphite.c (graphite_transform_loops): Add call to print_scop.
14364         (gate_graphite_transforms): Remove use of flag_loop_block,
14365         flag_loop_interchange, and flag_loop_strip_mine.
14366
14367 2015-08-27  Sebastian Pop  <s.pop@samsung.com>
14368
14369         * common.opt (floop-unroll-and-jam): Make alias of floop-nest-optimize.
14370         * doc/invoke.texi (-floop-unroll-and-jam): Document as alias of
14371         -floop-nest-optimize.
14372         * graphite-isl-ast-to-gimple.c (generate_luj_sepclass_opt): Remove.
14373         (generate_luj_sepclass): Remove.
14374         (generate_luj_options): Remove.
14375         (set_options): Remove opt_luj.
14376         (scop_to_isl_ast): Remove opt_luj.
14377         * graphite-optimize-isl.c (getScheduleForBand): Remove check for
14378         flag_loop_unroll_jam.
14379         (getPrevectorMap_full): Remove.
14380         (getScheduleForBandList): Remove map_sepcl.
14381         (getScheduleMap): Same.
14382         (apply_schedule_map_to_scop): Remove sepcl.
14383         (optimize_isl): Same.
14384         * graphite-poly.c (apply_poly_transforms): Remove check for
14385         flag_loop_unroll_jam.
14386         (new_poly_bb): Remove map_sepclass.
14387         * graphite-poly.h (struct poly_bb): Same.
14388         * graphite.c (gate_graphite_transforms): Remove flag_loop_unroll_jam.
14389         * params.def (PARAM_LOOP_UNROLL_JAM_SIZE)
14390         (PARAM_LOOP_UNROLL_JAM_DEPTH): Remove.
14391         * toplev.c (process_options): Remove flag_loop_unroll_jam.
14392
14393 2015-08-27  Uros Bizjak  <ubizjak@gmail.com>
14394
14395         PR target/67317
14396         * config/i386/i386.md (*add<mode>3_cc): Remove insn pattern.
14397         (addqi3_cc): Ditto.
14398         (UNSPEC_ADD_CARRY): Remove.
14399         (addqi3_cconly_overflow): New expander.
14400         (*add<dwi>3_doubleword): Split to add<mode>3_cconly_overflow.
14401         Adjust for changed add<mode>3_carry.
14402         (*neg<dwi>2_doubleword): Adjust for changed add<mode>3_carry.
14403         (*sub<dwi>3_doubleword): Adjust for changed sub<mode>3_carry.
14404         (<plusminus_insn><mode>3_carry): Remove expander.
14405         (*<plusminus_insn><mode>3_carry): Split insn pattern to
14406         add<mode>3_carry and sub<mode>3_carry.
14407         (plusminus_carry_mnemonic): Remove code attribute.
14408         (add<mode>3_carry): Canonicalize insn pattern.
14409         (*addsi3_carry_zext): Ditto.
14410         (sub<mode>3_carry): Ditto.
14411         (*subsi3_carry_zext): Ditto.
14412         (adcx<mode>3): Remove insn pattern.
14413         (addcarry<mode>): New insn pattern.
14414         (subborrow<mode>): Ditto.
14415         * config/i386/i386.c (ix86_expand_strlensi_unroll_1): Use
14416         gen_addqi3_cconly_overflow instead of gen_addqi3_cc.
14417         (ix86_expand_builtin) <case IX86_BUILTIN_SBB32,
14418         case IX86_BUILTIN_SBB64, case IX86_BUILTIN_ADDCARRY32,
14419         case IX86_BUILTIN_ADDCARRY64>: Use CODE_FOR_subborrowsi,
14420         CODE_FOR_subborrowdi, CODE_FOR_addcarrysi and CODE_FOR_addcarrydi.
14421         Rewrite expander to not clobber carry flag chains.
14422
14423 2015-08-27  Pat Haugen  <pthaugen@us.ibm.com>
14424
14425         * config/rs6000/vector.md (vec_shr_<mode>): Fix to do a shift
14426         instead of a rotate.
14427
14428 2015-08-27  Marek Polacek  <polacek@redhat.com>
14429
14430         PR middle-end/67005
14431         * tree-ssa-dce.c (remove_dead_stmt): Also schedule fixup if removing
14432         an entry into an irreducible region.
14433
14434 2015-08-27  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
14435
14436         * configure: Regenerate.
14437
14438 2015-08-27  Alan Lawrence  <alan.lawrence@arm.com>
14439
14440         PR tree-optimization/67283
14441         * tree-sra.c (type_consists_of_records_p): Rename to...
14442         (scalarizable_type_p): ...this, add case for ARRAY_TYPE.
14443
14444         (completely_scalarize_record): Rename to...
14445         (completely_scalarize): ...this, add ARRAY_TYPE case, move some code to:
14446         (scalarize_elem): New.
14447
14448 2015-08-27  Alan Lawrence  <alan.lawrence@arm.com>
14449
14450         * tree-sra.c (completely_scalarize_var): Rename to...
14451         (create_total_scalarization_access): ... Here. Drop call to
14452         completely_scalarize_record.
14453
14454         (analyze_all_variable_accesses): Replace completely_scalarize_var
14455         with create_total_scalarization_access and completely_scalarize_record.
14456
14457 2015-08-27  Alan Modra  <amodra@gmail.com>
14458
14459         PR target/67356
14460         * config/rs6000/rs6000.md (ior<mode>_mask): Use constraint "0"
14461         for operand 1.
14462
14463 2015-08-27  Richard Biener  <rguenther@suse.de>
14464
14465         * passes.c (rest_of_decl_compilation): Guard early_global_decl
14466         call with !seen_error ().
14467         * cgraphunit.c (symbol_table::finalize_compilation_unit): Move
14468         early debug generation and finish...
14469         (symbol_table::compile): ... here to put it after a !seen_error ()
14470         guard.
14471
14472 2015-08-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14473
14474         * config.gcc (*-*-solaris2*): Enable default_use_cxa_atexit on
14475         Solaris 12+.
14476
14477 2015-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14478             Andre Vieira  <andre.simoesdiasvieira@arm.com>
14479
14480         * config/aarch64/aarch64.md (*condjump): Handle functions > 1 MiB.
14481         (*cb<optab><mode>1): Likewise.
14482         (*tb<optab><mode>1): Likewise.
14483         (*cb<optab><mode>1): Likewise.
14484         * config/aarch64/iterators.md (inv_cb): New code attribute.
14485         (inv_tb): Likewise.
14486         * config/aarch64/aarch64.c (aarch64_gen_far_branch): New.
14487         * config/aarch64/aarch64-protos.h (aarch64_gen_far_branch): New.
14488
14489 2015-08-27  Richard Biener  <rguenther@suse.de>
14490
14491         * ipa.c (cgraph_build_static_cdtor_1): Set DECL_IGNORED_P.
14492
14493 2015-08-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
14494
14495         * config/s390/s390.c (s390_emit_prologue): Add emit_barrier() after
14496         trap to fix ICE.
14497
14498 2015-08-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
14499
14500         * config/rs6000/rs6000-protos.h (rs6000_expand_float128_convert):
14501         Add declaration.
14502
14503         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Fix a
14504         comment.
14505         (rs6000_cannot_change_mode_class): Add support for IEEE 128-bit
14506         floating point in VSX registers.
14507         (rs6000_output_move_128bit): Always print out the set insn if we
14508         can't generate an appropriate 128-bit move.
14509         (rs6000_generate_compare): Add support for IEEE 128-bit floating
14510         point in VSX registers comparisons.
14511         (rs6000_expand_float128_convert): Likewise.
14512
14513         * config/rs6000/predicates.md (int_reg_operand_not_pseudo): New
14514         predicate for only GPR hard registers.
14515
14516         * config/rs6000/rs6000.md (FP): Add IEEE 128-bit floating point
14517         modes to iterators. Add new iterators for moving 128-bit values in
14518         scalar FPR registers and VSX registers.
14519         (FMOVE128): Likewise.
14520         (FMOVE128_FPR): Likewise.
14521         (FMOVE128_GPR): Likewise.
14522         (FMOVE128_VSX): Likewise.
14523         (FLOAT128_SFDFTF): New iterators for IEEE 128-bit floating point
14524         in VSX registers.
14525         (IFKF): Likewise.
14526         (IBM128): Likewise.
14527         (TFIFKF): Likewise.
14528         (RELOAD): Add IEEE 128-bit floating point modes.
14529         (signbittf2): Convert TF insns to add support for new IEEE 128-bit
14530         floating point in VSX registers modes.
14531         (signbit<mode>2, IBM128 iterator): Likewise.
14532         (mov<mode>_64bit_dm, FMOVE128_FPR iterator): Likewise.
14533         (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
14534         (negtf2): Likewise.
14535         (neg<mode>2, TFIFKF iterator): Likewise.
14536         (negtf2_internal): Likewise.
14537         (abstf2): Likewise.
14538         (abs<mode>2, TFIFKF iterator): Likewise.
14539         (ieee_128bit_negative_zero): New IEEE 128-bit floating point in
14540         VSX insn support for negate, absolute value, and negative absolute
14541         value.
14542         (ieee_128bit_vsx_neg<mode>2): Likewise.
14543         (ieee_128bit_vsx_neg<mode>2_internal): Likewise.
14544         (ieee_128bit_vsx_abs<mode>2): Likewise.
14545         (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
14546         (ieee_128bit_vsx_nabs<mode>2): Likewise.
14547         (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
14548         (FP128_64): Update pack/unpack 128-bit insns for IEEE 128-bit
14549         floating point in VSX registers.
14550         (unpack<mode>_dm): Likewise.
14551         (unpack<mode>_nodm): Likewise.
14552         (pack<mode>): Likewise.
14553         (unpackv1ti): Likewise.
14554         (unpack<mode>, FMOVE128_VSX iterator): Likewise.
14555         (packv1ti): Likewise.
14556         (pack<mode>, FMOVE128_VSX iterator): Likewise.
14557         (extenddftf2): Add support for IEEE 128-bit floating point in VSX
14558         registers.
14559         (extenddftf2_internal): Likewise.
14560         (trunctfdf2): Likewise.
14561         (trunctfdf2_internal2): Likewise.
14562         (fix_trunc_helper): Likewise.
14563         (fix_trunctfdi2"): Likewise.
14564         (floatditf2): Likewise.
14565         (floatuns<mode>tf2): Likewise.
14566         (extend<FLOAT128_SFDFTF:mode><IFKF:mode>2): Likewise.
14567         (trunc<IFKF:mode><FLOAT128_SFDFTF:mode>2): Likewise.
14568         (fix_trunc<IFKF:mode><SDI:mode>2): Likewise.
14569         (fixuns_trunc<IFKF:mode><SDI:mode>2): Likewise.
14570         (float<SDI:mode><IFKF:mode>2): Likewise.
14571         (floatuns<SDI:mode><IFKF:mode>2): Likewise.
14572
14573 2015-08-26  Renlin Li  <renlin.li@arm.com>
14574
14575         * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode><ALLX:mode>4): New.
14576
14577 2015-08-26  Marcus Shawcroft  <marcus.shawcroft@arm.com>
14578             Jiong Wang  <jiong.wang@arm.com>
14579
14580         * config/aarch64/aarch64.md (UNSPEC_GOTTINYTLS): New UNSPEC.
14581         (tlsie_tiny_<mode>): New define_insn.
14582         (tlsie_tiny_sidi): Likewise.
14583         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Define
14584         SYMBOL_TINY_TLSIE.
14585         (aarch64_symbol_context): New comment for SYMBOL_TINY_TLSIE.
14586         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Support
14587         SYMBOL_TINY_TLSIE.
14588         (aarch64_expand_mov_immediate): Likewise.
14589         (aarch64_print_operand): Likewise.
14590         (arch64_classify_tls_symbol): Likewise.
14591
14592 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
14593
14594         * config/arm/arm-arches.def: Replace single value flags with
14595         an initializer built from ARM_FSET_MAKE_CPU1.
14596         * config/arm/arm-cores.def: Likewise.
14597         * config/arm/arm.c: (all_cores): Remove ARM_FSET_MAKE_CPU1
14598         derivation from the ARM_CORE macro definition, use the given value
14599         instead.
14600         (all_architectures): Remove ARM_FSET_MAKE_CPU1 derivation from the
14601         ARM_ARCH macro definition, use the given value instead.
14602
14603 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
14604
14605         * config/arm/arm-builtins.c (def_mbuiltin): Test all flags in a
14606         feature set.
14607         (struct builtin_description): Replace field mask with field
14608         features.
14609         (IWMMXT_BUILTIN): Use ARM_FSET macros for feature flags.
14610         (IWMMXT2_BUILTIN): Likewise.
14611         (IWMMXT2_BUILTIN2): Likewise.
14612         (FP_BUILTIN): Likewise.
14613         (CRC32_BUILTIN): Likewise.
14614         (CRYPTO_BUILTIN): Likewise.
14615         (iwmmx_mbuiltin): Likewise.
14616         (iwmmx2_mbuiltin): Likewise.
14617         (arm_init_iwmmxt_builtins): Likewise. Also, update for change to
14618         struct builtin_description.
14619
14620 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
14621
14622         * config/arm/arm-builtins.c (def_mbuiltin): Use ARM_FSET macro.
14623         (struct builtin_description): Change type of mask to unsigned
14624         long.
14625         * config/arm/arm-protos.h (insn_flags): Declare as type
14626         arm_feature_set.
14627         (tune_flags): Likewise.
14628         * config/arm/arm.c (feature_count): New.
14629         (insn_flags): Define as type arm_feature_set.
14630         (tune_flags): Likewise.
14631         (struct processors): Define field flags as type arm_feature_set.
14632         (all_cores): Update for change to struct processors.
14633         (all_architectures): Likewise.
14634         (arm_option_check_internal): Use arm_feature_set and ARM_FSET
14635         macros.
14636         (arm_option_override_internal): Likewise.
14637         (arm_option_override): Likewise.
14638
14639 2015-08-26  Marcus Shawcroft  <marcus.shawcroft@arm.com>
14640             Jiong Wang  <jiong.wang@arm.com>
14641
14642         * config/aarch64/aarch64.c (initialize_aarch64_tls_size): Set default
14643         tls size for tiny, small, large memory model.
14644         (aarch64_load_symref_appropriately): Support new symbol types.
14645         (aarch64_expand_mov_immediate): Likewise.
14646         (aarch64_print_operand): Likewise.
14647         (aarch64_classify_tls_symbol): Likewise.
14648         * config/aarch64/aarch64-protos.h (aarch64_symbol_context): Likewise.
14649         (aarch64_symbol_type): Likewise.
14650         * config/aarch64/aarch64.md (tlsle): Deleted.
14651         (tlsle12_<mode>): New define_insn.
14652         (tlsle24_<mode>): Likewise.
14653         (tlsle32_<mode>): Likewise.
14654         (tlsle48_<mode>): Likewise.
14655         * doc/sourcebuild.texi (AArch64-specific attributes): Document
14656         "aarch64_tlsle32".
14657
14658 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
14659
14660         * config/arm/arm-protos.h (FL_NONE): New.
14661         (FL_ANY): New.
14662         (arm_feature_set): New.
14663         (ARM_FSET_MAKE): New.
14664         (ARM_FSET_MAKE_CPU1): New.
14665         (ARM_FSET_MAKE_CPU2): New.
14666         (ARM_FSET_CPU1): New.
14667         (ARM_FSET_CPU2): New.
14668         (ARM_FSET_EMPTY): New.
14669         (ARM_FSET_ANY): New.
14670         (ARM_FSET_HAS_CPU1): New.
14671         (ARM_FSET_HAS_CPU2): New.
14672         (ARM_FSET_HAS_CPU): New.
14673         (ARM_FSET_ADD_CPU1): New.
14674         (ARM_FSET_ADD_CPU2): New.
14675         (ARM_FSET_DEL_CPU1): New.
14676         (ARM_FSET_DEL_CPU2): New.
14677         (ARM_FSET_UNION): New.
14678         (ARM_FSET_INTER): New.
14679         (ARM_FSET_XOR): New.
14680         (ARM_FSET_EXCLUDE): New.
14681         (AFM_FSET_IS_EMPTY): New.
14682         (ARM_FSET_CPU_SUBSET): New.
14683
14684 2015-08-26  Jiong Wang  <jiong.wang@arm.com>
14685
14686         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Rename
14687         SYMBOL_TLSLE to SYMBOL_TLSLE24.
14688         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
14689         Likewise.
14690         (aarch64_expand_mov_immediate): Likewise.
14691         (aarch64_print_operand): Likewise.
14692         (aarch64_classify_symbol): Likewise.
14693
14694 2015-08-26  Jiong Wang  <jiong.wang@arm.com>
14695
14696         * config/aarch64/aarch64.opt (mtls-size): New entry.
14697         * config/aarch64/aarch64.c (initialize_aarch64_tls_size): New function.
14698         (aarch64_override_options_internal): Call initialize_aarch64_tls_size.
14699         * doc/invoke.texi (AArch64 Options): Document -mtls-size.
14700
14701 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
14702
14703         * config/arm/arm-cores.def: Add FL_FOR_ARCH flag for each
14704         ARM_CORE entry.  Fix some white-space.
14705         * config/arm/arm.c: Remove FL_FOR_ARCH derivation from
14706         ARM_CORE definition.
14707
14708 2015-08-26  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
14709
14710         * fold-const.c (fold_binary_loc) : Move Optimize
14711         root(x)*root(y) as root(x*y) to match.pd.
14712         Move Optimize expN(x)*expN(y) as expN(x+y) to match.pd.
14713         Move Optimize pow(x,y)*pow(x,z) as pow(x,y+z) to match.pd.
14714         Move Optimize a/root(b/c) into a*root(c/b) to match.pd.
14715         Move Optimize x/expN(y) into x*expN(-y) to match.pd.
14716         * match.pd (mult (root:s @0) (root:s @1)): New simplifier.
14717         (mult (POW:s @0 @1) (POW:s @0 @2)) : New simplifier.
14718         (mult (exps:s @0) (exps:s @1)) : New simplifier.
14719         (rdiv @0 (root:s (rdiv:s @1 @2))) : New simplifier.
14720         (rdiv @0 (exps:s @1)) : New simplifier.
14721
14722 2015-08-25  Joseph Myers  <joseph@codesourcery.com>
14723
14724         * gcc.c (driver::finalize): Only assign to extra_specs if
14725         [EXTRA_SPECS].
14726
14727 2015-08-25  Marek Polacek  <polacek@redhat.com>
14728
14729         PR middle-end/67330
14730         * varasm.c (declare_weak): Return after giving an error.
14731
14732 2015-08-25  David Malcolm  <dmalcolm@redhat.com>
14733
14734         * gcc-main.c (main): Add params to driver ctor.
14735         * gcc.c (class env_manager): New.
14736         (env): New global.
14737         (env_manager::init): New.
14738         (env_manager::get): New.
14739         (env_manager::xput): New.
14740         (env_manager::restore): New.
14741         Poison getenv and putenv.
14742         (DEFAULT_TARGET_SYSTEM_ROOT): New.
14743         (target_system_root): Update initialization to use
14744         DEFAULT_TARGET_SYSTEM_ROOT.
14745         (struct spec_list): Add field "default_ptr".
14746         (INIT_STATIC_SPEC): Initialize new field "default_ptr".
14747         (init_spec): Likewise.
14748         (set_spec): Clear field "default_ptr".
14749         (read_specs): Free "spec" and "buffer".
14750         (xputenv): Reimplement in terms of env_manager.
14751         (process_command): Replace ::getenv calls with calls to the
14752         env_manager singleton.
14753         (process_brace_body): Free string in three places.
14754         (driver::driver): New.
14755         (driver::~driver): New.
14756         (used_arg): Convert from a function to...
14757         (class used_arg_t): ...this class, and...
14758         (used_arg): ...this new global instance.
14759         (used_arg_t::finalize): New function.
14760         (getenv_spec_function): Add "const" to local "value".  Replace
14761         ::getenv call with call to the env_manager singleton.
14762         (path_prefix_reset): New function.
14763         (driver::finalize): New function.
14764         * gcc.h (driver::driver): New.
14765         (driver::~driver): New.
14766         (driver::finalize): New.
14767
14768 2015-08-25  Nathan Sidwell  <nathan@acm.org>
14769
14770         * optabs.c (emit_indirect_jump): Don't try an emit a jump if the
14771         target doesn't have one.
14772
14773 2015-08-25  Segher Boessenkool  <segher@kernel.crashing.org>
14774
14775         PR target/67346
14776         * config/rs6000/rs6000.md (*ior<mode>_mask): Use a match_scratch.
14777
14778 2015-08-25  Segher Boessenkool  <segher@kernel.crashing.org>
14779
14780         PR target/67344
14781         * config/rs6000/rs6000.md (*and<mode>3_imm_dot_shifted): Change to
14782         a define_insn, remove second alternative.
14783
14784 2015-08-25  Thomas Schwinge  <thomas@codesourcery.com>
14785             Joseph Myers  <joseph@codesourcery.com>
14786
14787         * gcc.c (struct switchstr): Expand comment.
14788
14789 2015-08-25  Nathan Sidwell  <nathan@acm.org>
14790
14791         * config/nvptx/nvptx.c (nvptx_write_function_decl): Reformat.
14792         (nvptx_reorg_subreg): Pass insn pattern to asm_operands.
14793
14794 2015-08-25  Richard Biener  <rguenther@suse.de>
14795
14796         PR middle-end/67306
14797         * genmatch.c (expr::gen_transform): Verify the result of
14798         builtin_decl_implicit.
14799         (dt_simplify::gen_1): Likewise.
14800
14801 2015-08-25  Thomas Preud'homme  <thomas.preudhomme@arm.com>
14802
14803         * config/arm/constraints.md: Also list Cs and US ARM-specific
14804         constraints as used.
14805
14806 2015-08-24  Kaz Kojima  <kkojima@gcc.gnu.org>
14807
14808         PR target/66609
14809         * config/sh/sh.c (sh_asm_output_addr_const_extra): Handle
14810         UNSPEC_PCREL.
14811         (nonpic_symbol_mentioned_p): Likewise.
14812         (sh_delegitimize_address): Likewise.
14813         (sh_function_ok_for_sibcall): Take into account weak symbols.
14814         (sh_expand_sym_label2reg): New.
14815         * config/sh/sh-protos.h (sh_expand_sym_label2reg): Declare.
14816         * config/sh/sh.md (UNSPEC_PCREL): New enum.
14817         (call_pcrel): Use sh_expand_sym_label2reg.
14818         (call_value_pcrel, sibcall_pcrel, sibcall_value_pcrel): Likewise.
14819         (symPCREL_label2reg) New expand.
14820
14821 2015-08-24  Aditya Kumar  <aditya.k7@samsung.com>
14822
14823         * graphite-poly.c: Change type of region from void* to sese.
14824         * graphite-poly.h (struct scop): Changing the type of scop::region
14825         from void* to sese. Change accessor macro accordingly.
14826         * graphite-sese-to-poly.c (extract_affine_chrec): Use accessor macro.
14827
14828 2015-08-24  Aditya Kumar  <aditya.k7@samsung.com>
14829
14830         * graphite-scop-detection.c (stmt_simple_for_scop_p):
14831         Constrain only on INTEGER_TYPE.
14832
14833 2015-08-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
14834
14835         PR target/67211
14836         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Set
14837         -mefficient-unaligned-vsx on ISA 2.7.
14838
14839         * config/rs6000/rs6000.opt (-mefficient-unaligned-vsx): Convert
14840         option to a masked option.
14841
14842         * config/rs6000/rs6000.c (rs6000_option_override_internal): Rework
14843         logic for -mefficient-unaligned-vsx so that it is set via an arch
14844         ISA option, instead of being set if -mtune=power8 is set. Move
14845         -mefficient-unaligned-vsx and -mallow-movmisalign handling to be
14846         near other default option handling.
14847
14848 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
14849
14850         * genflags.c (gen_macro): Delete.
14851         (gen_proto): Don't create GEN.*CALL.* macros.
14852         * gensupport.h (get_file_location): Declare.
14853         * gensupport.c (rtx_locs): New variable.
14854         (read_md_rtx): Record rtx locations.
14855         (get_file_location): New function.
14856         * target-insns.def (call, call_pop, call_value, call_value_pop)
14857         (sibcall, sibcall_value): New patterns.
14858         * gentarget-def.c (parse_argument): New function.
14859         (def_target_insn): Use it.  Handle optional operands.  Raise an
14860         error if an .md pattern has the wrong number of operands for the
14861         pattern name.  Remove the names of unused operands from the prototype.
14862         * builtins.c (expand_builtin_apply): Use targetm functions
14863         instead of HAVE_call_value and GEN_CALL_VALUE.
14864         * calls.c (emit_call_1): Likewise.  Remove support for sibcall_pop
14865         and sibcall_value_pop.
14866         * config/aarch64/aarch64.md (untyped_call): Use gen_call instead
14867         of GEN_CALL.
14868         * config/alpha/alpha.md (untyped_call): Likewise.
14869         * config/iq2000/iq2000.md (untyped_call): Likewise.
14870         * config/m68k/m68k.md (untyped_call): Likewise.
14871         * config/mips/mips.md (untyped_call): Likewise.
14872         * config/pa/pa.md (untyped_call): Likewise.
14873         * config/rs6000/rs6000.md (untyped_call): Likewise.
14874         * config/sparc/sparc.md (untyped_call): Likewise.
14875         * config/tilegx/tilegx.md (untyped_call): Likewise.
14876         * config/tilepro/tilepro.md (untyped_call): Likewise.
14877         * config/visium/visium.md (untyped_call): Likewise.
14878         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Use
14879         gen_call_value instead of GEN_CALL_VALUE.
14880         * config/arm/arm.md (untyped_call): Likewise.
14881         * config/cr16/cr16.c (cr16_function_arg): Remove reference to
14882         GEN_CALL.
14883
14884 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
14885
14886         * ifcvt.c (HAVE_incscc, HAVE_decscc, HAVE_cbranchcc4): Delete.
14887         (have_cbranchcc4): New variable.
14888         (cc_in_cond, noce_emit_cmove, noce_get_alt_condition)
14889         (noce_get_condition): Use it instead of HAVE_cbranchcc4.
14890         (if_convert): Initialize have_cbranchcc4.
14891
14892 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
14893
14894         * builtins.c (expand_cmpstrn): Rename to...
14895         (expand_cmpstrn_or_cmpmem): ...this.
14896         (expand_builtin_strcmp, expand_builtin_strncmp): Update accordingly.
14897         (expand_builtin_memcmp): Use optabs instead of HAVE_cmpmem/gen_cmpmem.
14898         Remove mode argument.
14899         (expand_builtin): Update accordingly.
14900
14901 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
14902
14903         * builtins.c (expand_cmpstr, expand_cmpstrn): New functions.
14904         (expand_builtin_strcmp, expand_builtin_strncmp): Use them.  Remove
14905         references to HAVE_cmpstr{,n}si and CODE_FOR_cmpstr{,n}si.
14906         * config/m32c/blkmov.md (cmpstrsi): Fix predicates of operands 1 and 2.
14907         Add predicates for operands 0 and 3.
14908         * config/rx/rx.md (cmpstrnsi): Remove force_operand for the length
14909         operand.
14910         * config/sh/sh.md (cmpstrnsi): Change the length predicate from
14911         immediate_operand to nonmemory_operand.
14912
14913 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
14914
14915         * df-scan.c (df_insn_info_init_fields): New function, split out
14916         from...
14917         (df_insn_create_insn_record): ...here.
14918         (df_insn_info_free_fields): New function, split out from...
14919         (df_insn_info_delete): ...here.
14920         (df_insn_rescan): Use the new functions instead of freeing and
14921         reallocating the df_insn_info.
14922
14923 2015-08-24  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
14924
14925         * doc/install.texi (Binaries): Remove links no longer valid.
14926
14927 2015-08-24  Nathan Sidwell  <nathan@codesourcery.com>
14928
14929         * config/nvptx/mkoffload.c (process): Replace
14930         GOMP_offload_{,un}register with GOMP_offload_{,un}register_ver.
14931
14932 2015-08-24  H.J. Lu  <hongjiu.lu@intel.com>
14933
14934         PR target/67329
14935         * config/i386/i386.c (iamcu_cost): Set MOVE_RATIO cost to 9.
14936
14937 2015-08-24  Renlin Li  <renlin.li@arm.com>
14938
14939         * config/arm/arm-protos.h (arm_valid_symbolic_address_p): Declare.
14940         * config/arm/arm.c (arm_valid_symbolic_address_p): Define.
14941         * config/arm/arm.md (arm_movt): Use arm_valid_symbolic_address_p.
14942         * config/arm/constraints.md ("j"): Add check for high code.
14943
14944 2015-08-24  Tom de Vries  <tom@codesourcery.com>
14945
14946         PR tree-optimization/65468
14947         * omp-low.c (expand_omp_for_static_chunk): Remove inner loop if
14948         chunk_size is one.
14949
14950 2015-08-24  Nathan Sidwell  <nathan@acm.org>
14951
14952         * config/nvptx/nvptx.c (walk_args_for_param): Revert previous
14953         change to nvptx_type_from_mode call. Use arg_promotion for both
14954         split and non-split args.
14955
14956 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
14957
14958         * target-insns.def (movstr): New pattern.
14959         * builtins.c (HAVE_movstr, CODE_FOR_movstr): Delete.
14960         (expand_movstr): Use targetm rather than HAVE_movstr/
14961         CODE_FOR_movstr.
14962
14963 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
14964
14965         * config/microblaze/microblaze.c (microblaze_classify_unspec): Fix
14966         cast syntax.
14967
14968 2015-08-24  Andrew Pinski  <apinski@cavium.com>
14969
14970         * config/aarch64/aarch64-tuning-flags.def: Remove all index to
14971         AARCH64_EXTRA_TUNING_OPTION.
14972         * config/aarch64/aarch64-protos.h (aarch64_extra_tuning_flags_index):
14973         New enum.
14974         (aarch64_extra_tuning_flags): Base the shifted value on the index
14975         instead of the argument to AARCH64_EXTRA_TUNING_OPTION.
14976         * config/aarch64/aarch64.c: Remove the last argument to
14977         AARCH64_EXTRA_TUNING_OPTION.
14978
14979 2015-08-23  Nathan Sidwell  <nathan@acm.org>
14980
14981         * config/nvptx/nvptx.c (walk_args_for_param): Promote arg reg
14982         decls.
14983         (nvptx_declare_function_name): Insert formatting tabs for
14984         consistency.
14985
14986 2015-08-23  Tom de Vries  <tom@codesourcery.com>
14987
14988         * omp-low.c (expand_omp_taskreg): If in ssa, set rhs of parcopy stmt to
14989         parm_decl, rather than generating a dummy default def in cfun.
14990         * tree-cfg.c (replace_ssa_name): Assume no default defs.  Make sure
14991         ssa_name from cfun and child_fn do not share a stmt as def stmt.
14992         (move_stmt_op): Handle PARM_DECl.
14993         (gather_ssa_name_hash_map_from): New function.
14994         (move_sese_region_to_fn): Add default defs for function params, and add
14995         them to vars_map.  Release copied ssa names.
14996         * tree-cfg.h (gather_ssa_name_hash_map_from): Declare.
14997
14998 2015-08-23  Tom de Vries  <tom@codesourcery.com>
14999
15000         * doc/sourcebuild.texi: Rename vect_no_int_max with
15001         vect_no_int_min_max.  Update description.
15002
15003 2015-08-22  Andrew Pinski  <apinski@cavium.com>
15004
15005          * aarch64-fusion-pairs.def: Remove all index to AARCH64_FUSION_PAIR.
15006         * config/aarch64/aarch64-protos.h
15007         (aarch64_fusion_pairs_index): New enum.
15008         (aarch64_fusion_pairs): Base the shifted value on the index instead
15009         Rewrite AARCH64_FUSE_ALL to be based on the end index.
15010         of the argument to AARCH64_FUSION_PAIR.
15011         * config/aarch64/aarch64.c: Remove the last argument to
15012         AARCH64_FUSION_PAIR.
15013
15014 2015-08-22  Mikhail Maltsev <maltsevm@gmail.com>
15015
15016         * dominance.c (new_zero_array): Define.
15017         (dom_info): Redefine as class with proper encapsulation.
15018         (dom_info::m_n_basic_blocks, m_reverse, m_start_block, m_end_block):
15019         Add new members.
15020         (dom_info::dom_info, ~dom_info): Define.  Use new/delete for memory
15021         allocations/deallocations.  Pass function as parameter (instead of
15022         using cfun).
15023         (dom_info::get_idom): Define accessor method.
15024         (dom_info::calc_dfs_tree_nonrec, calc_dfs_tree, compress, eval,
15025         link_roots, calc_idoms): Redefine as class members.  Do not use cfun.
15026         (calculate_dominance_info): Adjust to use dom_info class.
15027         (verify_dominators): Likewise.
15028
15029 2015-08-21  Alexandre Oliva  <aoliva@redhat.com>
15030
15031         * print-rtl.c (print_rtx): Check the correct range for
15032         flag_dump_unnumbered_links to behave as documented.
15033
15034         PR rtl-optimization/67227
15035         PR rtl-optimization/64164
15036         * alias.c (memrefs_conflict_p): Handle VALUEs in PLUS better.
15037         (nonoverlapping_memrefs_p): Test offsets and sizes when given
15038         identical gimple_reg exprs.
15039
15040 2015-08-21  Nathan Sidwell  <nathan@acm.org>
15041
15042         * config/nvptx/nvptx.md (allocate_stack): Emit sorry during
15043         expansion.
15044         * config/nvptx/nvptx.c (nvptx_declare_function_name): Look at
15045         crtl->stack_alignment_needed to determine alignment.
15046         (nvptx_get_drap_rtx): New.
15047         (TARGET_GET_DRAP_RTX): Override.
15048         * config/nvptx/nvptx.h (MAX_STACK_ALIGNMENT): Set.
15049
15050 2015-08-21  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
15051
15052         * config.build: Remove case for m68000-hp-hpux* | m68k-hp-hpux*.
15053
15054 2015-08-21  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
15055
15056         * configure.ac: Remove uwin* cases.
15057         * config.build: Remove cases for i370-*-opened*, i370-*-mvs*,
15058         i[34567]86-*-sco3.2v5*, i[34567]86-sequent-ptx4*,
15059         i[34567]86-sequent-sysv4*, i[34567]86-*-sysv4*,
15060         i[34567]86-*-udk*, i[34567]86-*-uwin*, i386-*-vsta.
15061         * config.host: Remove cases for i370-*-opened*, i370-*-mvs*,
15062         i[34567]86-*-uwin*, powerpc-*-beos*.
15063
15064 2015-08-21  Richard Sandiford  <richard.sandiford@arm.com>
15065
15066         * gencodes.c (gencodes): Print the comma for the preceding
15067         enum value rather than the current one.  Use aliased enum values
15068         rather than #defines for compiled-out patterns.
15069         (main): Update accordingly.  Replace LAST_INSN_CODE with
15070         NUM_INSN_CODES.
15071         * lra.c (insn_code_data): Update accordingly.
15072         (finish_insn_code_data_once, get_static_insn_data): Likewise.
15073         * recog.h (target_recog): Likewise.
15074         (preprocess_insn_constraints): Change parameter to unsigned int.
15075         * recog.c (preprocess_insn_constraints): Likewise.
15076         (recog_init): Replace LAST_INSN_CODE with NUM_INSN_CODES.
15077         * tree-vect-stmts.c (vectorizable_operation): Simplify.
15078
15079 2015-08-21  Markus Trippelsdorf  <markus@trippelsdorf.de>
15080
15081         PR rtl-optimization/61657
15082         * loop-iv.c (iv_number_of_iterations): Declare up and down as
15083         unsigned.  Remove superflous uint64_t cast.
15084
15085 2014-08-21  Felix Yang  <felix.yang@huawei.com>
15086             Jiji Jiang  <jiangjiji@huawei.com>
15087
15088         * value-prof.c (interesting_stringop_to_profile_p): Removed FNDECL
15089         argument and get builtin function code directly from CALL.
15090         (gimple_stringop_fixed_value): Modified accordingly.
15091         (gimple_stringops_transform, gimple_stringops_values_to_profile):
15092         Modified accordingly and only accept BUILT_IN_NORMAL string operations.
15093
15094 2015-08-21  Dominik Vogt  <vogt@linux.vnet.ibm.com>
15095
15096         * config/s390/s390-builtins.def: Fix value range of vec_load_bndry.
15097
15098 2015-08-21  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
15099
15100         * fold-const.c (fold_binary_loc) : Move sqrt(x)*sqrt(x) as x
15101         to match.pd.
15102         Move Optimize pow(x,y)*pow(z,y) as pow(x*z,y)to match.pd.
15103         Move Optimize tan(x)*cos(x) as sin(x) to match.pd.
15104         Move Optimize x*pow(x,c) as pow(x,c+1) to match.pd.
15105         Move Optimize pow(x,c)*x as pow(x,c+1) to match.pd.
15106         Move Optimize sin(x)/cos(x) as tan(x) to match.pd.
15107         Move Optimize cos(x)/sin(x) as 1.0/tan(x) to match.pd.
15108         Move Optimize sin(x)/tan(x) as cos(x) to match.pd.
15109         Move Optimize tan(x)/sin(x) as 1.0/cos(x) to match.pd.
15110         Move Optimize pow(x,c)/x as pow(x,c-1) to match.pd.
15111         Move Optimize x/pow(y,z) into x*pow(y,-z) to match.pd.
15112
15113         * match.pd (SIN ) : New Operator.
15114         (TAN) : New Operator.
15115         (mult (SQRT@1 @0) @1) : New simplifier.
15116         (mult (POW:s @0 @1) (POW:s @2 @1)) : New simplifier.
15117         (mult:c (TAN:s @0) (COS:s @0)) : New simplifier.
15118         (mult:c (TAN:s @0) (COS:s @0)) : New simplifier.
15119         (rdiv (SIN:s @0) (COS:s @0)) : New simplifier.
15120         (rdiv (COS:s @0) (SIN:s @0)) : New simplifier.
15121         (rdiv (SIN:s @0) (TAN:s @0)) : New simplifier.
15122         (rdiv (TAN:s @0) (SIN:s @0)) : New simplifier.
15123         (rdiv (POW:s @0 REAL_CST@1) @0) : New simplifier.
15124         (rdiv @0 (SQRT:s (rdiv:s @1 @2))) : New simplifier.
15125         (rdiv @0 (POW:s @1 @2)) : New simplifier.
15126
15127 2015-08-21  Bin Cheng  <bin.cheng@arm.com>
15128
15129         * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Break
15130         loop if EXPR is simplified to const value.
15131
15132 2015-08-21  Yury Gribov  <y.gribov@samsung.com>
15133
15134         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG,
15135         BUILT_IN_UBSAN_HANDLE_NONNULL_ARG): Fix builtin types.
15136
15137 2015-08-21  Richard Biener  <rguenther@suse.de>
15138
15139         PR middle-end/67285
15140         * gimple-fold.c (replace_stmt_with_simplification): Assert
15141         seq is empty when replacing a call with itself but different
15142         arguments.
15143         * gimple-match-head.c (maybe_push_res_to_seq): When pushing
15144         a call require that it is const.
15145
15146 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15147
15148         * defaults.h (CONSTANT_ALIGNMENT): New macro definition.
15149         * builtins.c (get_object_alignment_2): Adjust.
15150         * varasm.c (align_variable): Likewise.
15151         (get_variable_align): Likewise.
15152         (build_constant_desc): Likewise.
15153         (force_const_mem): Likewise.
15154         * doc/tm.texi.in: Likewise.
15155         * doc/tm.texi: Regenerate.
15156
15157 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15158
15159         * genconfig.c (main): Always define HAVE_cc0.
15160         * recog.c (rest_of_handle_peephole2): Adjust.
15161
15162 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15163
15164         * reorg.c (relax_delay_slots): Don't use #if to check value of
15165         HAVE_cc0.
15166
15167 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15168
15169         * genconfig.c (main): Always define HAVE_CONDITIONAL_EXECUTION.
15170         * targhooks.c (default_have_conditional_execution): Adjust.
15171
15172 2015-08-20  Richard Sandiford  <richard.sandiford@arm.com>
15173
15174         * rtl.h (rtvec_all_equal_p): Declare.
15175         (const_vec_duplicate_p, unwrap_const_vec_duplicate): New functions.
15176         * rtl.c (rtvec_all_equal_p): New function.
15177         * expmed.c (expand_mult): Use unwrap_const_vec_duplicate.
15178         * config/aarch64/aarch64.c (aarch64_vect_float_const_representable_p)
15179         (aarch64_simd_dup_constant): Use const_vec_duplicate_p.
15180         * config/arm/arm.c (neon_vdup_constant): Likewise.
15181         * config/s390/s390.c (s390_contiguous_bitmask_vector_p): Likewise.
15182         * config/tilegx/constraints.md (W, Y): Likewise.
15183         * config/tilepro/constraints.md (W, Y): Likewise.
15184         * config/spu/spu.c (spu_legitimate_constant_p): Likewise.
15185         (classify_immediate): Use unwrap_const_vec_duplicate.
15186         * config/tilepro/predicates.md (reg_or_v4s8bit_operand): Likewise.
15187         (reg_or_v2s8bit_operand): Likewise.
15188         * config/tilegx/predicates.md (reg_or_v8s8bit_operand): Likewise.
15189         (reg_or_v4s8bit_operand): Likewise.
15190
15191 2015-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15192
15193         * config/rs6000/altivec.h (vec_pmsum_be): New #define.
15194         (vec_shasigma_be): New #define.
15195         * config/rs6000/rs6000-builtin.def (VPMSUMB): New BU_P8V_AV2_2.
15196         (VPMSUMH): Likewise.
15197         (VPMSUMW): Likewise.
15198         (VPMSUMD): Likewise.
15199         (VPMSUM): New BU_P8V_OVERLOAD_2.
15200         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): New
15201         entries for VEC_MADD and VEC_VPMSUM.
15202
15203 2015-08-20  Georg-Johann Lay  <avr@gjlay.de>
15204
15205         * config/avr/avr.c (avr_insert_attributes): In diagnostic essage:
15206         Multiply argument avr_n_flash by 64 to match unit of "KiB".
15207         (avr_pgm_check_var_decl): Same.
15208
15209 2015-08-20  Alan Lawrence  <alan.lawrence@arm.com>
15210
15211         * config/arm/arm-builtins.c (arm_init_simd_builtin_types): Move
15212         initialization of HFmode scalar type (float16_t) to...
15213         (arm_init_fp16_builtins): ... Here. Combine with __fp16 initialization
15214         code.
15215
15216         (arm_init_builtins): Call arm_init_fp16_builtins earlier and always.
15217
15218         * config/arm/arm_neon.h (vcvt_f16_f32, vcvt_f32_f16): Condition on
15219         having an -mfp16-format.
15220
15221 2015-08-20  Richard Sandiford  <richard.sandiford@arm.com>
15222
15223         * config/i386/predicates.md (vector_all_ones_operand): Use
15224         CONSTM1_RTX to simplify definition.
15225
15226 2015-08-20  Richard Biener  <rguenther@suse.de>
15227
15228         * toplev.c (compile_file): Remove loop calling late_global_decl
15229         on all symbols.
15230         * varpool.c (varpool_node::assemble_decl): Call late_global_decl
15231         on decls we assembled.
15232
15233 2015-08-20  James Greenhalgh  <james.greenhalgh@arm.com>
15234
15235         * common/config/aarch64/aarch64-common.c
15236         (AARCH64_CPU_NAME_LENGTH): Delete.
15237         (aarch64_option_extension): New.
15238         (all_extensions): Likewise.
15239         (processor_name_to_arch): Likewise.
15240         (arch_to_arch_name): Likewise.
15241         (all_cores): New.
15242         (all_architectures): Likewise.
15243         (aarch64_get_extension_string_for_isa_flags): Likewise.
15244         (aarch64_rewrite_selected_cpu): Change to rewrite CPU names to
15245         architecture names.
15246         * config/aarch64/aarch64-protos.h
15247         (aarch64_get_extension_string_for_isa_flags): New.
15248         * config/aarch64/aarch64.c (aarch64_print_extension): Delete.
15249         (aarch64_option_print): Get the string to print from
15250         aarch64_get_extension_string_for_isa_flags.
15251         (aarch64_declare_function_name): Likewise.
15252         * config/aarch64/aarch64.h (BIG_LITTLE_SPEC): Rename to...
15253         (MCPU_TO_MARCH_SPEC): This.
15254         (ASM_CPU_SPEC): Use it.
15255         (BIG_LITTLE_SPEC_FUNCTIONS): Rename to...
15256         (MCPU_TO_MARCH_SPEC_FUNCTIONS): ...This.
15257         (EXTRA_SPEC_FUNCTIONS): Use it.
15258
15259 2015-08-20  Simon Dardis  <simon.dardis@imgtec.com>
15260
15261         * config/mips/mips.c (mips_expand_block_move): Enable inline memcpy
15262         expansion when !ISA_HAS_LWL_LWR.
15263         (mips_block_move_straight): Update the size of elements copied to
15264         account for alignment when !ISA_HAS_LWL_LWR.
15265         * config/mips/mips.h (MIPS_MIN_MOVE_MEM_ALIGN): New macro.
15266
15267 2015-08-19  Jiong Wang  <jiong.wang@arm.com>
15268
15269         * expr.c (expand_expr_real_2): Check gimple statement during
15270         LSHIFT_EXPR expand.
15271
15272 2015-08-19  Magnus Granberg  <zorry@gentoo.org>
15273
15274         * common.opt (fstack-protector): Initialize to -1.
15275         (fstack-protector-all): Likewise.
15276         (fstack-protector-strong): Likewise.
15277         (fstack-protector-explicit): Likewise.
15278         * configure.ac: Add --enable-default-ssp.
15279         * defaults.h (DEFAULT_FLAG_SSP): New.  Default SSP to strong.
15280         * opts.c (finish_options): Update opts->x_flag_stack_protect if it is
15281         -1.
15282         * doc/install.texi: Document --enable-default-ssp.
15283         * config.in: Regenerated.
15284         * configure: Likewise.
15285
15286 2015-08-19  Alexandre Oliva  <aoliva@redhat.com>
15287
15288         PR rtl-optimization/64164
15289         * cfgexpand.c (parm_maybe_byref_p): Renamed to...
15290         (parm_in_stack_slot_p): ... this.  Disregard mode, what
15291         matters is whether the parm will live in a pseudo or a stack
15292         slot.
15293         (expand_one_ssa_partition): Deal with params without a default
15294         def.  Disregard mode.
15295         * cfgexpand.h: Renamed function declaration.
15296         * tree-ssa-coalesce.c: Adjust.
15297         * function.c (split_complex_args): Allocate stack slot for
15298         unassigned parms before splitting.
15299         (parm_in_unassigned_mem_p): New.  Use it instead of
15300         parm_maybe_byref_p throughout this file.
15301         (assign_parm_setup_block): Use it.  Accept pseudos in the
15302         expand-assigned rtl.
15303         (assign_parm_setup_reg): Drop BLKmode requirement.
15304         (assign_parm_setup_stack): Allocate and fill in the address of
15305         unassigned MEM parms.
15306
15307 2015-08-19  David Sherwood  <david.sherwood@arm.com>
15308
15309         * genmodes.c (emit_mode_unit_size_inline): New function.
15310         (emit_mode_unit_precision_inline): New function.
15311         (emit_insn_modes_h): Emit new #define.  Emit new functions.
15312         (emit_mode_unit_size): New function.
15313         (emit_mode_unit_precision): New function.
15314         (emit_mode_adjustments): Add mode_unit_size adjustments.
15315         (emit_insn_modes_c): Emit new arrays.
15316         * machmode.h (GET_MODE_UNIT_SIZE, GET_MODE_UNIT_PRECISION): Update to
15317         use new inline methods.
15318
15319 2015-08-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15320
15321         * config/aarch64/aarch64.c (bit_count): Delete prototype
15322         and definition.
15323         (aarch64_print_operand): Use popcount_hwi instead of the above.
15324
15325 2015-08-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15326
15327         * config/aarch64/aarch64-option-extensions.def: Delete obsolete
15328         comment.
15329
15330 2015-08-19  Marek Polacek  <polacek@redhat.com>
15331
15332         PR middle-end/67133
15333         * gimple-ssa-isolate-paths.c
15334         (insert_trap_and_remove_trailing_statements): Rename to ...
15335         (insert_trap): ... this.  Don't remove trailing statements; split
15336         block instead.
15337         (find_explicit_erroneous_behaviour): Don't remove all outgoing edges.
15338
15339 2015-08-19  Mikael Morin  <mikael@gcc.gnu.org>
15340
15341         PR other/67042
15342         * hwint.h (sext_hwi): Switch to unsigned for the left shift, and
15343         conditionalize the whole on __GNUC__.  Add fallback code
15344         depending neither on undefined nor implementation-defined behaviour.
15345
15346 2015-08-19  Jiong Wang  <jiong.wang@arm.com>
15347
15348         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Replace
15349         whitespaces with tab.
15350
15351 2015-08-19  Florian Weimer  <fweimer@redhat.com>
15352
15353         * prj.adb (For_Every_Project_Imported_Context.Recursive_Check_Context):
15354         Move Name_Id_Set instantiation to the Prj package, to avoid trampolines.
15355         * prj-proc.adb (Process.Process_Expression_Variable_Decl):
15356         Move Name_Ids instantiation to the Prj.Proc package, to avoid
15357         trampolines.
15358
15359 2015-08-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15360
15361         * config/arm/arm.c (bounds_check): Use %wd print format
15362         for HOST_WIDE_INT arguments.
15363
15364 2015-08-18  Trevor Saunders  <tbsaunde@tbsaunde.org>
15365
15366         * bb-reorder.c, cfgloop.h, collect2.c, combine.c, dse.c,
15367         dwarf2cfi.c, gcse-common.h, genopinit.c, ggc-page.c, machmode.h,
15368         mcf.c, modulo-sched.c, omp-low.c, read-rtl.c, sched-rgn.c,
15369         signop.h, tree-call-cdce.c, tree-dfa.c, tree-diagnostic.c,
15370         tree-inline.h, tree-scalar-evolution.c, tree-ssa-address.c,
15371         tree-ssa-loop-niter.c, tree-ssa-loop.h, tree-ssa-pre.c,
15372         tree-ssa-reassoc.c, tree-ssa-sccvn.h, tree-ssa-structalias.c,
15373         tree-ssa-uninit.c, tree-ssa.h, tree-vect-loop-manip.c,
15374         tree-vectorizer.h, tree-vrp.c, var-tracking.c: Remove useless
15375         typedefs.
15376
15377 2015-08-18  trevor Saunders  <tbsaunde@tbsaunde.org>
15378
15379         * bt-load.c, cgraph.h, dwarf2out.c, dwarf2out.h, final.c,
15380         function.c, graphite-scop-detection.c, haifa-sched.c,
15381         ipa-devirt.c, ipa-split.c, recog.c, ree.c, stmt.c,
15382         tree-data-ref.c, tree-ssa-dom.c, tree-ssa-loop-ivopts.c,
15383         varasm.c: Remove typedefs of structs.
15384
15385 2015-08-18  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
15386
15387         * config/rs6000/altivec.h (vec_adde): New define.
15388         (vec_addec): Likewise.
15389         (vec_double): Likewise.
15390         (vec_bperm): Likewise.
15391         (vec_gb): Likewise.
15392         * config/rs6000/rs6000-builtin.def (ADDE): New
15393         BU_ALTIVEC_OVERLOAD_3.
15394         (ADDEC): Likewise.
15395         (DOUBLE): New BU_VSX_OVERLOAD_1.
15396         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add new
15397         entries for ALTIVEC_BUILTIN_VEC_ADDC, ALTIVEC_BUILTIN_VEC_ADDE,
15398         ALTIVEC_BUILTIN_VEC_ADDEC, ALTIVEC_BUILTIN_VEC_ANDC,
15399         VSX_BUILTIN_VEC_DOUBLE, ALTIVEC_BUILTIN_VEC_MERGEH,
15400         ALTIVEC_BUILTIN_VEC_MERGEL, ALTIVEC_BUILTIN_VEC_NOR,
15401         ALTIVEC_BUILTIN_VEC_OR, ALTIVEC_BUILTIN_VEC_XOR,
15402         ALTIVEC_BUILTIN_VEC_PERM, ALTIVEC_BUILTIN_VEC_SEL,
15403         P8V_BUILTIN_VEC_EQV, P8V_BUILTIN_VEC_NAND, P8V_BUILTIN_VEC_ORC,
15404         and P8V_BUILTIN_VEC_VBPERMQ.
15405
15406 2015-08-18  Jason Merrill  <jason@redhat.com>
15407
15408         * print-tree.c (print_node): Handle TREE_BINFO.
15409
15410 2015-08-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
15411
15412         PR middle-end/36757
15413         * builtins.c (expand_builtin_signbit): Add asserts to make sure
15414         we can expand BUILT_IN_SIGNBIT inline.
15415         * builtins.def (BUILT_IN_SIGNBIT): Make type-generic.
15416         * doc/extend.texi: Document the type-generic __builtin_signbit.
15417
15418 2015-08-18  Richard Sandiford  <richard.sandiford@arm.com>
15419
15420         PR rtl-optimization/67218
15421         * simplify-rtx.c (exact_int_to_float_conversion_p): New function.
15422         (simplify_unary_operation_1): Use it.
15423
15424 2015-08-18  Marek Polacek  <polacek@redhat.com>
15425
15426         PR middle-end/67222
15427         * gimple-low.c (lower_stmt): Don't lower BUILT_IN_POSIX_MEMALIGN
15428         if the call isn't valid.
15429         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Check builtins using
15430         gimple_call_builtin_p.
15431         (call_may_clobber_ref_p_1): Likewise.
15432         (stmt_kills_ref_p): Likewise.
15433
15434 2015-08-18  Robert Suchanek  <robert.suchanek@imgtec.com>
15435
15436         * config/mips/mips-protos.h (mips_hard_regno_rename_ok): New prototype.
15437         * config/mips/mips.c (mips_hard_regno_rename_ok): New function.
15438         (mips_hard_regno_scratch_ok): Likewise.
15439         (TARGET_HARD_REGNO_SCRATCH_OK): Define macro.
15440         * config/mips/mips.h (HARD_REGNO_RENAME_OK): New.
15441
15442 2015-08-18  Bin Cheng  <bin.cheng@arm.com>
15443
15444         * tree-ssa-loop-niter.c (refine_value_range_using_guard): New.
15445         (determine_value_range): Call refine_value_range_using_guard for
15446         each loop initial condition to improve value range.
15447
15448 2015-08-17  Aldy Hernandez  <aldyh@redhat.com>
15449
15450         * config/i386/i386.c: Remove include of fibheap.h.
15451
15452 2015-08-17  Richard Biener  <rguenther@suse.de>
15453
15454         PR tree-optimization/67221
15455         * tree-ssa-sccvn.c (visit_phi): Keep all-TOP args TOP.
15456         (sccvn_dom_walker::before_dom_children): Mark backedges of
15457         non-executable blocks as not executable.
15458
15459 2015-08-17  David Sherwood  <david.sherwood@arm.com>
15460
15461         * config/arm/arm.c (neon_element_bits): Replace call to
15462         GET_MODE_BITSIZE (GET_MODE_INNER (m)) with GET_MODE_UNIT_BITSIZE (m).
15463         * config/arm/neon.md (neon_vget_lane<mode>): Likewise.
15464         (neon_vget_laneu<mode>, neon_vset_lane<mode>): Likewise
15465         (neon_vdup_lane<mode>): Likewise.
15466         * config/i386/i386.c (ix86_expand_int_vcond): Likewise.
15467         (ix86_expand_multi_arg_builtin, ix86_expand_reduc): Likewise.
15468         (expand_vec_perm_palignr, ix86_expand_sse2_abs): Likewise.
15469         * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise.
15470         * config/spu/spu.c (arith_immediate_p): Likewise.
15471         * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
15472         * expr.c (expand_expr_real_2): Likewise.
15473         * optabs.c (shift_amt_for_vec_perm_mask): Likewise.
15474         * simplify-rtx.c (simplify_immed_subreg): Likewise.
15475         * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
15476         * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): Likewise.
15477         New variable.
15478         * fold-const.c (fold_binary_loc): Replace call to
15479         GET_MODE_PRECISION (GET_MODE_INNER (m)) with
15480         GET_MODE_UNIT_PRECISION (m).
15481
15482 2015-08-17  Mike Stump  <mikestump@comcast.net>
15483
15484         * config/arm/arm.c (arm_block_move_unaligned_straight):
15485         Emit normal move instead of unaligned load when source or destination
15486         are appropriately aligned.
15487
15488 2015-08-17  Richard Biener  <rguenther@suse.de>
15489             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
15490
15491         PR middle-end/16107
15492         * match.pd (div (coss (op @0) : New simplifier.
15493
15494 2015-08-14  Alexandre Oliva  <aoliva@redhat.com>
15495
15496         PR rtl-optimization/64164
15497         PR bootstrap/66978
15498         PR middle-end/66983
15499         PR rtl-optimization/67000
15500         PR middle-end/67034
15501         PR middle-end/67035
15502         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
15503         * tree-ssa-copyrename.c: Removed.
15504         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
15505         -ftree-coalesce-vars.
15506         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
15507         * common.opt (ftree-copyrename): Ignore.
15508         (ftree-coalesce-inlined-vars): Likewise.
15509         * doc/invoke.texi: Remove the ignored options above.
15510         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
15511         * tree-ssa-coalesce.h: ... here.
15512         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
15513         headers required by it.
15514         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
15515         across variables when flag_tree_coalesce_vars.  Check register
15516         use and promoted modes to allow coalescing.  Do not coalesce
15517         maybe-byref parms with SSA_NAMEs of other variables, or
15518         anonymous SSA_NAMEs.  Moved to tree-ssa-coalesce.c.
15519         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
15520         with its member functions to tree-ssa-coalesce.c.
15521         (var_map_base_init): Likewise.  Renamed to
15522         compute_samebase_partition_bases.
15523         (partition_view_normal): Drop want_bases parameter.
15524         (partition_view_bitmap): Likewise.
15525         * tree-ssa-live.h: Adjust declarations.
15526         * tree-ssa-coalesce.c: Include explow.h and cfgexpand.h.
15527         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
15528         default defs at the entry point.
15529         (dump_part_var_map): New.
15530         (compute_optimized_partition_bases): New, called by...
15531         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
15532         of compute_samebase_partition_bases.  Adjust.
15533         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
15534         * cfgexpand.c (leader_merge, parm_maybe_byref_p): New.
15535         (ssa_default_def_partition): New.
15536         (get_rtl_for_parm_ssa_default_def): New.
15537         (align_local_variable, add_stack_var): Support anonymous SSA
15538         names.
15539         (defer_stack_allocation): Likewise.  Declare earlier.
15540         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
15541         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
15542         Do no record deferred-allocation marker in
15543         SA.partition_to_pseudo.
15544         (expand_stack_vars): Adjust check for the marker in it.
15545         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
15546         redundant MEM attr setting.
15547         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
15548         from...
15549         (expand_one_stack_var): ... this.  New wrapper to check and
15550         skip already expanded SSA partitions.
15551         (record_alignment_for_reg_var): New, factored out of...
15552         (expand_one_var): ... this.
15553         (expand_one_ssa_partition): New.
15554         (adjust_one_expanded_partition_var): New.
15555         (expand_one_register_var): Check and skip already expanded SSA
15556         partitions.
15557         (expand_used_vars): Don't create DECLs for anonymous SSA
15558         names.  Expand all SSA partitions, then adjust all SSA names.
15559         (pass::execute): Replace the loops that set
15560         SA.partition_to_pseudo from partition leaders and cleared
15561         DECL_RTL for multi-location variables, and that which used to
15562         rename vars and set attrs, with one that clears DECL_RTL and
15563         checks that PARMs and RESULTs default_defs match DECL_RTL.
15564         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
15565         * emit-rtl.c: Include stor-layout.h.
15566         (set_reg_attrs_for_parm): Handle NULL decl.
15567         (set_reg_attrs_for_decl_rtl): Take mode from expression if
15568         it's not a DECL.
15569         * stmt.c (emit_case_decision_tree): Pass it the SSA_NAME
15570         rather than its possibly-NULL DECL.
15571         * explow.c (promote_ssa_mode): New.
15572         * explow.h (promote_ssa_mode): Declare.
15573         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
15574         (read_complex_part): Export.
15575         * expr.h (read_complex_part): Declare.
15576         * cfgexpand.h (parm_maybe_byref_p): Declare.
15577         * function.c: Include cfgexpand.h.
15578         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
15579         (use_register_for_parm_decl): Wrapper for the above to
15580         special-case the result_ptr.
15581         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
15582         (split_complex_args): Take assign_parm_data_all argument.
15583         Pass it to rtl_for_parm.  Set up rtl and context for split
15584         args.  Reset complex parm before fetching its default decl
15585         rtl.
15586         (assign_parms_unsplit_complex): Use the default-def complex
15587         parm rtl if it matches the components.
15588         (assign_parms_augmented_arg_list): Adjust.
15589         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
15590         multiple locations.  Recognize split complex args.
15591         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
15592         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
15593         (assign_parm_setup_block): Prefer SSA-assigned location, and
15594         fill in its address if the memory location of a maybe-byref
15595         parm was not assigned by cfgexpand.
15596         (assign_parm_setup_reg): Likewise.  Adjust its mode as
15597         needed.  Use entry_parm for equiv if stack_parm is NULL.  Make
15598         sure passed_pointer parms don't need conversion.  Copy address
15599         or value as needed.
15600         (assign_parm_setup_stack): Prefer SSA-assigned location.
15601         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
15602         rtl before testing for pointer bounds.  Special-case result_ptr.
15603         (expand_function_start): Maybe reset DECL_RTL of result.
15604         Prefer SSA-assigned location for result and static chain.
15605         Factor out DECL_RESULT and SET_DECL_RTL.  Convert static chain
15606         to Pmode if needed, from H.J. Lu  <hongjiu.lu@intel.com>.
15607         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
15608         anonymous SSA names.  Use promote_ssa_mode.
15609         (get_temp_reg): Likewise.
15610         (remove_ssa_form): Adjust.
15611         * stor-layout.c (layout_decl): Don't set mem attributes of
15612         non-MEMs.
15613         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
15614         and get its reg_usage for reg invalidation.
15615         (compute_bb_dataflow): Pass it insn.
15616         (emit_notes_in_bb): Likewise.
15617
15618 2015-08-14  Marek Polacek  <polacek@redhat.com>
15619
15620         * tree-core.h (tree_base): Fix typo.
15621
15622 2015-08-14  Marek Polacek  <polacek@redhat.com>
15623
15624         PR middle-end/67133
15625         * gimple.c (infer_nonnull_range_by_attribute): Check that the
15626         nonnull argument position is not outside function arguments.
15627
15628 2015-08-14  Matthew Wahab  <matthew.wahab@arm.com>
15629
15630         PR target/67143
15631         * config/aarch64/atomics.md (atomic_<optab><mode>): Replace
15632         'lconst_atomic' with 'const_atomic'.
15633         (atomic_fetch_<optab><mode>): Likewise.
15634         (atomic_<optab>_fetch<mode>): Likewise.
15635         * config/aarch64/iterators.md (lconst-atomic): Move below
15636         'const_atomic'.
15637         (const_atomic): New.
15638
15639 2015-08-14  Thomas Schwinge  <thomas@codesourcery.com>
15640             Bernd Schmidt  <bernds@codesourcery.com>
15641
15642         * config/nvptx/nvptx.c (nvptx_option_override): Don't override
15643         debug options.
15644         * config/nvptx/nvptx.h (DWARF2_LINENO_DEBUGGING_INFO): Define.
15645         (DWARF2_DEBUGGING_INFO): Don't define.
15646         * debug.h (dwarf2_lineno_debug_hooks): Declare.
15647         * toplev.c (process_options): Add a case for it.
15648         * dwarf2out.c (dwarf2_lineno_debug_hooks): New variable.
15649         (dwarf2out_init): Skip most initializations if
15650         DWARF2_LINENO_DEBUGGING_INFO, but set cur_line_info_table in that
15651         case.
15652         * defaults.h (PREFERRED_DEBUGGING_TYPE): Also use DWARF2_DEBUG if
15653         DWARF2_LINENO_DEBUGGING_INFO.
15654         * opts.c (set_debug_level): Likewise.
15655
15656 2015-08-14  James Greenhalgh  <james.greenhalgh@arm.com>
15657
15658         * config/arm/types.md (is_neon_type): Add missing types.
15659
15660 2015-08-14  Yuri Rumyantsev  <ysrumyan@gmail.com>
15661
15662         * config/i386/driver-i386.c (host_detect_local_cpu): Add support
15663         for skylake.
15664         * config/i386/i386.c (PTA_SKYLAKE): New macros.
15665         (processor_alias_table): Add skylake description.
15666         (enum processor_model): Add skylake processor.
15667         (arch_names_table): Add skylake record.
15668         * doc/invoke.texi: Add skylake item.
15669
15670 2015-08-13  Andrew MacLeod  <amacleod@redhat.com>
15671
15672         * ira-int.h: Include recog.h.
15673         * ira-build.c: Don't include recog.h.
15674         * ira-color.c: Likewise.
15675         * ira-conflicts.c: Likewise.
15676         * ira-costs.c: Likewise.
15677         * ira-emit.c: Likewise.
15678         * ira-lives.c: Likewise.
15679         * ira.c: Likewise.
15680         * sched-deps.c: Likewise.
15681         * sel-sched.c: Likewise.
15682         * target-globals.c: Likewise.
15683
15684 2015-08-13  Richard Sandiford  <richard.sandiford@arm.com>
15685
15686         PR bootstrap/55035
15687         * reload1.c (elimination_costs_in_insn): Make it obvious to the
15688         compiler that the n_dups and n_operands loop bounds are invariant.
15689
15690 2015-08-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15691
15692         * ifcvt.c (noce_try_store_flag_constants): Handle PLUS-immediate
15693         expressions in A and B.
15694
15695 2015-08-13  Richard Biener  <rguenther@suse.de>
15696
15697         * tree.c (nonnull_arg_p): Move from ...
15698         * tree-vrp.c (nonnull_arg_p): ... here.
15699         * tree.h (nonnull_arg_p): Declare.
15700         * tree-ssa-sccvn.c (init_scc_vn): Perform all lattice init
15701         here, register ptr != 0 for nonnull_arg_p pointer arguments.
15702         Properly initialize static chain and by-reference result pointer.
15703         (run_scc_vn): Adjust.
15704
15705 2015-08-13  Robert Suchanek  <robert.suchanek@imgtec.com>
15706
15707         * config/mips/mips.h (ENABLE_LD_ST_PAIRS): Enable load/store pairs for
15708         TUNE_I6400.
15709
15710 2015-08-13  Matthew Wahab  <matthew.wahab@arm.com>
15711
15712         * config/aarch64/aarch64-protos.h
15713         (aarch64_gen_atomic_cas): Declare.
15714         * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap):
15715         Choose appropriate instruction pattern for the target.
15716         (aarch64_gen_atomic_cas): New.
15717         * config/aarch64/atomics.md (UNSPECV_ATOMIC_CAS): New.
15718         (atomic_compare_and_swap<mode>_1): Rename to
15719         aarch64_compare_and_swap<mode>.  Fix some indentation.
15720         (aarch64_compare_and_swap<mode>_lse): New.
15721         (aarch64_atomic_cas<mode>): New.
15722
15723 2015-08-13  Matthew Wahab  <matthew.wahab@arm.com>
15724
15725         * config/aarch64/aarch64.h (AARCH64_ISA_LSE): New.
15726         (TARGET_LSE): New.
15727
15728 2015-08-13  Richard Biener  <rguenther@suse.de>
15729
15730         PR tree-optimization/67191
15731         * tree-ssa-sccvn.c (sccvn_dom_walker::before_dom_children): Remove
15732         assert we value-numbered last stmts operand because it can validly
15733         trigger for unreachable code.
15734
15735 2015-08-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15736
15737         PR rtl-optimization/67103
15738         * ifcvt.c (noce_try_store_flag_constants): Move
15739         x = (-(test != 0) & (b - a)) + a transformation to...
15740         (noce_try_cmove): ... Here.  Try it if normal conditional
15741         move fails.
15742
15743 2015-08-13  Robert Suchanek  <robert.suchanek@imgtec.com>
15744
15745         * config/mips/mips.c (mips_rtx_cost_data): Remove costs for W32 and W64
15746         pseudo-processors.
15747         * config/mips/mips.md (processor): Remove w32 and w64.
15748
15749 2015-08-13  Richard Biener  <rguenther@suse.de>
15750
15751         PR tree-optimization/66502
15752         PR tree-optimization/67167
15753         * tree-ssa-sccvn.c (vn_phi_compute_hash): Do not include
15754         backedge arguments.
15755         (vn_phi_lookup): Adjust.
15756         (vn_phi_insert): Likewise.
15757         (visit_phi): Prefer to value-number to another PHI node
15758         over value-numbering to a PHI argument.
15759         (init_scc_vn): Mark DFS back edges.
15760
15761 2015-08-13  Richard Biener  <rguenther@suse.de>
15762
15763         * gimple.h (gcall::code_): New constant static member.
15764         (gcond::code_): Likewise.
15765         * gimple.c (gcall::code_): Define.
15766         (gcond::code_): Likewise.
15767         (is_a_helper <const gcond *>): Add.
15768         (gimple_call_lhs): Use GIMPLE_CHECK2 in the gimple overload
15769         and forward to a new gcall overload with less checking and a
15770         cheaper way to access the operand.
15771         (gimple_call_lhs_ptr): Likewise.
15772         (gimple_call_set_lhs): Likewise.
15773         (gimple_call_internal_p): Likewise.
15774         (gimple_call_with_bounds_p): Likewise.
15775         (gimple_call_set_with_bounds): Likewise.
15776         (gimple_call_internal_fn): Likewise.
15777         (gimple_call_set_ctrl_altering): Likewise.
15778         (gimple_call_ctrl_altering_p): Likewise.
15779         (gimple_call_fntype): Likewise.
15780         (gimple_call_fn): Likewise.
15781         (gimple_call_fn_ptr): Likewise.
15782         (gimple_call_set_fndecl): Likewise.
15783         (gimple_call_fndecl): Likewise.
15784         (gimple_call_chain): Likewise.
15785         (gimple_call_num_args): Likewise.
15786         (gimple_call_arg): Likewise.
15787         (gimple_call_arg_ptr): Likewise.
15788         (gimple_call_set_arg): Likewise.
15789         (gimple_call_noreturn_p): Likewise.
15790         (gimple_cond_code): Likewise.
15791         (gimple_cond_lhs): Likewise.
15792         (gimple_cond_rhs): Likewise.
15793         (gimple_has_lhs): Reduce checking.
15794
15795 2015-08-13  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
15796
15797         PR middle-end/25529
15798         * match.pd (div (mult @0 @1) @1) : New simplifier.
15799
15800 2015-08-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
15801
15802         PR target/67071
15803         * config/rs6000/predicates.md (easy_vector_constant_vsldoi): New
15804         predicate to allow construction of vector constants using the
15805         VSLDOI vector shift instruction.
15806
15807         * config/rs6000/rs6000-protos.h (vspltis_shifted): Add
15808         declaration.
15809
15810         * config/rs6000/rs6000.c (vspltis_shifted): New function to return
15811         the number of bytes to be shifted left and filled in with either
15812         all zero or all one bits.
15813         (gen_easy_altivec_constant): Call vsplitis_shifted if no other
15814         methods exist.
15815         (output_vec_const_move): On power8, generate XXLORC to generate
15816         a vector constant with all 1's. Do a split if we need to use a
15817         VSLDOI instruction.
15818
15819         * config/rs6000/rs6000.h (EASY_VECTOR_MSB): Use mode mask to
15820         properly test for the MSB.
15821
15822         * config/rs6000/altivec.md (VSLDOI splitter): Add splitter for
15823         vector constants that can be created with VSLDOI.
15824
15825 2015-08-11  Trevor Saunders  <tbsaunde@tbsaunde.org>
15826
15827         revert:
15828         * compare-elim.c, dce.c, dse.c, gimple-ssa-isolate-paths.c,
15829         gimple-ssa-strength-reduction.c, graphite.c, init-regs.c,
15830         ipa-pure-const.c, ipa-visibility.c, ipa.c, mode-switching.c,
15831         omp-low.c, reorg.c, sanopt.c, trans-mem.c, tree-eh.c,
15832         tree-if-conv.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
15833         tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
15834         tree-ssa-sink.c, tree-ssanames.c, tree-stdarg.c, tree-tailcall.c,
15835         tree-vect-generic.c, tree.c, ubsan.c, var-tracking.c,
15836         vtable-verify.c, web.c: Use GCC_FINAL instead of the anonymous
15837
15838 2015-08-12  Max Filippov  <jcmvbkbc@gmail.com>
15839
15840         * config/xtensa/constraints.md (define_constraint "Y"): New
15841         constraint.
15842         * config/xtensa/elf.h (ASM_SPEC): Add m(no-)auto-litpools.
15843         * config/xtensa/linux.h (ASM_SPEC): Likewise.
15844         * config/xtensa/predicates.md (move_operand): Match constants
15845         and symbols in the presence of TARGET_AUTO_LITPOOLS.
15846         * config/xtensa/xtensa.c (xtensa_valid_move): Don't allow
15847         immediate references to TLS data.
15848         (xtensa_emit_move_sequence): Don't force constants to memory in
15849         the presence of TARGET_AUTO_LITPOOLS.
15850         (print_operand): Add 'y' format, same as default, but capable of
15851         printing SF mode constants as well.
15852         * config/xtensa/xtensa.md (movsi_internal, movhi_internal)
15853         (movsf_internal): Add movi pattern that loads literal.
15854         (movsf, movdf): Don't force constants to memory in the presence
15855         of TARGET_AUTO_LITPOOLS.
15856         (movdf_internal): Add 'Y' constraint.
15857         * config/xtensa/xtensa.opt (mauto-litpools): New option.
15858         * doc/invoke.text (Xtensa options): Document -mauto-litpools.
15859
15860 2015-08-12  Matthew Wahab  <matthew.wahab@arm.com>
15861
15862         * config/arm/arm-fpus.def: Replace booleans with feature flags.
15863         Update comment.
15864         * config/arm/arm.c (ARM_FPU): Update macro.
15865         * config/arm/arm.h (TARGET_NEON_FP16): Update feature test.
15866         (TARGET_FP16): Likewise.
15867         (TARGET_CRYPTO): Likewise.
15868         (TARGET_NEON): Likewise.
15869         (struct arm_fpu_desc): Remove fields neon, fp16 and crypto.  Add
15870         field features.
15871
15872 2015-08-12  Tom de Vries  <tom@codesourcery.com>
15873
15874         PR other/67092
15875         PR other/67098
15876         * doc/install.texi: Remove --with_host_libstdcxx item.  Update
15877         --with-stage1-libs, --with-boot-ldflags and --with-boot-libs items
15878         accordingly.  Mention default for --with-stage1-ldflags.
15879
15880 2015-08-12  Matthew Wahab  <matthew.wahab@arm.com>
15881
15882         * config/arm/arm.h (arm_fpu_feature_set): New.
15883         (ARM_FPU_FSET_HAS): New.
15884         (FPU_FL_NONE): New.
15885         (FPU_FL_NEON): New.
15886         (FPU_FL_FP16): New.
15887         (FPU_FL_CRYPTO): New.
15888
15889 2015-08-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15890
15891         * config/aarch64/aarch64.c (initialize_aarch64_code_model): Break
15892         after -mcmodel=large -fPIC sorry.
15893
15894 2015-08-12  Richard Biener  <rguenther@suse.de>
15895
15896         * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Also canonicalize
15897         comparison operand order and commutative ternary op operand order.
15898         (sccvn_dom_walker::cond_stack): New state to track temporary
15899         expressions.
15900         (sccvn_dom_walker::after_dom_children): Remove tempoary expressions
15901         no longer valid.
15902         (sccvn_dom_walker::record_cond): Add a single temporary conditional
15903         expression.
15904         (sccvn_dom_walker::record_conds): Add a temporary conditional
15905         expressions and all related expressions also true/false.
15906         (sccvn_dom_walker::before_dom_children): Record temporary
15907         expressions based on the controlling condition of a single
15908         predecessor.  When trying to simplify a conditional statement
15909         lookup expressions we might have inserted earlier.
15910
15911 2015-08-12  Yvan Roux  <yvan.roux@linaro.org>
15912
15913         PR target/67127
15914         * config/arm/arm.md (movdi): Restrict illegitimate ldrd/strd checking
15915         to ARM core registers.
15916
15917 2015-08-12  Nathan Sidwell  <nathan@acm.org>
15918
15919         * tree-vrp.c (simplify_min_or_max_using_ranges): New.
15920         (simplify_stmt_using_ranges): Simplify MIN and MAX exprs.
15921
15922 2015-08-12  Simon Dardis  <simon.dardis@imgtec.com>
15923
15924         * config/mips/mips.c (mips_store_data_bypass_p): Bring code into
15925         line with comments.
15926         * config/mips/sb1.md: Update usage of mips_store_data_bypass_p.
15927
15928 2015-08-12  Richard Biener  <rguenther@suse.de>
15929
15930         * gimple.h (remove_pointer): New trait.
15931         (GIMPLE_CHECK2): New inline template function.
15932         (gassign::code_): New constant static member.
15933         (is_a_helper<const gassign *>): Add.
15934         (gimple_assign_lhs): Use GIMPLE_CHECK2 in the gimple overload
15935         and forward to a new gassign overload with less checking and a
15936         cheaper way to access the operand.
15937         (gimple_assign_lhs_ptr): Likewise.
15938         (gimple_assign_set_lhs): Likewise.
15939         (gimple_assign_rhs1, gimple_assign_rhs1_ptr, gimple_assign_set_rhs1):
15940         Likewise.
15941         (gimple_assign_rhs2, gimple_assign_rhs2_ptr, gimple_assign_set_rhs2):
15942         Likewise.
15943         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3):
15944         Likewise.
15945         (gimple_assign_rhs_code): Likewise.
15946         * gimple.c (gassign::code_): Define.
15947
15948 2015-08-12  Richard Biener  <rguenther@suse.de>
15949
15950         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
15951         Eliminate edges marked as not executable by SCCVN.
15952         * tree-ssa-sccvn.c: Include gimple-iterator.h.
15953         (cond_dom_walker): Rename to sccvn_dom_walker.
15954         (sccvn_dom_walker::before_dom_children): Value-number defs
15955         of all stmts.
15956         (run_scc_vn): Remove loop value-numbering all SSA names.
15957         Drop not visited SSA names to varying.
15958
15959 2015-08-11  Trevor Saunders  <tbsaunde@tbsaunde.org>
15960
15961         * compare-elim.c, dce.c, dse.c, gimple-ssa-isolate-paths.c,
15962         gimple-ssa-strength-reduction.c, graphite.c, init-regs.c,
15963         ipa-pure-const.c, ipa-visibility.c, ipa.c, mode-switching.c,
15964         omp-low.c, reorg.c, sanopt.c, trans-mem.c, tree-eh.c,
15965         tree-if-conv.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
15966         tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
15967         tree-ssa-sink.c, tree-ssanames.c, tree-stdarg.c, tree-tailcall.c,
15968         tree-vect-generic.c, tree.c, ubsan.c, var-tracking.c,
15969         vtable-verify.c, web.c: Use GCC_FINAL instead of the anonymous
15970
15971 2015-08-11  Uros Bizjak  <ubizjak@gmail.com>
15972
15973         PR target/66954
15974         * config/i386/i386.c (get_builtin_code_for_version): Add P_PCLMUL
15975         to enum feature_priority and feature_list.
15976         (fold_builtin_cpu): Add F_PCLMUL to enum processor_features
15977         and isa_names_table.
15978
15979 2015-08-11  Yuri Rumyantsev  <ysrumyan@gmail.com>
15980
15981         * tree-vect-stmts.c (vectorizable_shift): Add missed test on
15982         vect_induction_def.
15983
15984 2015-08-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15985
15986         PR c/66098
15987         PR c/66711
15988         * diagnostic.c (diagnostic_classify_diagnostic): Take -Werror into
15989         account when deciding what was the command-line status.
15990
15991 2015-08-11  Nathan Sidwell  <nathan@acm.org>
15992
15993         * tree-vrp.c (simplify_abs_using_ranges): Simplify.
15994
15995         * tree-ssa-phiopt.c (minmax_replacement): Create new ssa name if
15996         we're not the only contributor to target phi.
15997
15998 2015-08-11  Jiong Wang  <jiong.wang@arm.com>
15999
16000         * config/aarch64/aarch64.h (REG_CLASS_NAMES): Add the missing ',' after
16001         FIXED_REG0.
16002
16003 2015-08-11  Tom de Vries  <tom@codesourcery.com>
16004
16005         * tree-cfg.c (move_sese_region_to_fn): Add todo comment.
16006
16007 2015-08-10  H.J. Lu  <hongjiu.lu@intel.com>
16008
16009         * config/i386/i386.c (processor_alias_table): Replace CPU_KNL
16010         with CPU_SLM.
16011         * config/i386/i386.md (cpu): Remove knl.
16012
16013 2015-08-10  Thomas Schwinge  <thomas@codesourcery.com>
16014
16015         PR libgomp/65742
16016         PR middle-end/66332
16017         * builtins.c (expand_builtin_acc_on_device) [ACCEL_COMPILER]: Emit
16018         open-coded sequence.
16019         * omp-low.c (oacc_process_reduction_data): Remove handline of
16020         GOMP_DEVICE_HOST_NONSHM.
16021
16022         * lto-streamer-in.c (lto_input_mode_table): Adjust to
16023         GET_MODE_INNER changes.
16024
16025 2015-08-10  Thomas Schwinge  <thomas@codesourcery.com>
16026             Ilya Verbin  <ilya.verbin@intel.com>
16027
16028         * lto-streamer-in.c (lto_input_mode_table): Correctly advance iterator.
16029
16030 2015-08-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16031
16032         * doc/options.texi (EnabledBy): Document that the argument must be
16033         a Common option.
16034         * doc/invoke.texi (Wnull-dereference): Move after Wnonnull.
16035         Not enabled by -Wall.
16036         * optc-gen.awk: Give nicer error messages. Detect if the argument
16037         of EnabledBy is not a Common option.
16038         * common.opt (Wnull-dereference): Not enabled by -Wall.
16039         * opt-functions.awk (lang_enabled_by): Nicer error messages.
16040
16041 2015-08-09  H.J. Lu  <hongjiu.lu@intel.com>
16042
16043         * config/i386/driver-i386.c (host_detect_local_cpu): Treat
16044         model == 0x4f as Broadwell.
16045
16046 2015-08-08  Segher Boessenkool  <segher@kernel.crashing.org>
16047
16048         PR rtl-optimization/67028
16049         * combine.c (simplify_comparison): Fix comment.  Rearrange code.
16050         Add test to see if a const_int fits in the new mode.
16051
16052 2015-08-07  DJ Delorie  <dj@redhat.com>
16053
16054         * config/rx/rx.c (rx_mode_dependent_address_p): Remove unneeded asserts.
16055
16056 2015-08-07  H.J. Lu  <hongjiu.lu@intel.com>
16057
16058         PR rtl-optimization/67029
16059         * ira-color.c: Include "recog.h" before including "ira-int.h".
16060         * target-globals.c: Likewise.
16061         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Add an
16062         adds an alternative_mask argument and use it instead of
16063         preferred_alternatives.
16064         * ira.h (ira_implicitly_set_insn_hard_regs): Moved to ...
16065         * ira-int.h (ira_implicitly_set_insn_hard_regs): Here.
16066         * sched-deps.c: Include "ira-int.h" after including "ira.h".
16067         (sched_analyze_insn): Update call to
16068         ira_implicitly_set_insn_hard_regs.
16069         * sel-sched.c: Include "ira-int.h" after including "ira.h".
16070         (implicit_clobber_conflict_p): Update call to
16071         ira_implicitly_set_insn_hard_regs.
16072
16073 2015-08-06  Uros Bizjak  <ubizjak@gmail.com>
16074
16075         * Makefile.in (.INTERMEDIATE): Add gpl.pod.
16076
16077 2015-08-07  Kaz Kojima  <kkojima@gcc.gnu.org>
16078
16079         PR target/67002
16080         * config/sh/sh.c (sh_recog_treg_set_expr): Return false when
16081         currently_expanding_to_rtl is set.
16082
16083 2015-08-06  Yaakov Selkowitz  <yselkowi@redhat.com>
16084
16085         * configure.ac: Define LIBICONV_DEP with in-tree libiconv.
16086         * configure: Regenerate.
16087
16088 2015-08-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16089             Jiong Wang  <jiong.wang@arm.com>
16090
16091         * config/aarch64/aarch64.d (tlsdesc_small_pseudo_<mode>): New pattern.
16092         * config/aarch64/aarch64.h (reg_class): New enumeration FIXED_REG0.
16093         (REG_CLASS_NAMES): Likewise.
16094         (REG_CLASS_CONTENTS): Likewise.
16095         * config/aarch64/aarch64.c (aarch64_class_max_nregs): Likewise.
16096         (aarch64_register_move_cost): Likewise.
16097         (aarch64_load_symref_appropriately): Invoke the new added pattern if
16098         possible.
16099         * config/aarch64/constraints.md (Uc0): New constraint.
16100
16101 2015-08-06  Jiong Wang  <jiong.wang@arm.com>
16102
16103         * config/aarch64/constraints.md (Usf): Add the test of
16104         aarch64_is_noplt_call_p.
16105
16106 2015-08-06  Jiong Wang  <jiong.wang@arm.com>
16107
16108         * config/aarch64/aarch64-protos.h (aarch64_is_noplt_call_p): New
16109         declaration.
16110         * config/aarch64/aarch64.c (aarch64_is_noplt_call_p): New function.
16111         * config/aarch64/aarch64.md (call_value_symbol): Check noplt scenarios.
16112         (call_symbol): Likewise.
16113
16114 2015-08-06  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
16115
16116         * tree-vect-patterns.c (vect_recog_mult_pattern): New function
16117         for vectorizing multiplication patterns.
16118         * tree-vectorizer.h: Adjust the number of patterns.
16119
16120 2015-08-06  Uros Bizjak  <ubizjak@gmail.com>
16121
16122         * config/i386/sse.md (*vec_concatv2df): Declare added
16123         alternatives as sselog type.
16124
16125 2015-08-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16126
16127         * config/s390/s390.c (s390_dwarf_frame_reg_mode): Return Pmode for
16128         all GPRs.
16129
16130 2015-08-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16131
16132         * config/s390/s390.c (s390_expand_tbegin): Expand either
16133         tbegin_1_z13 or tbegin_1 depending on VX flag.
16134         * config/s390/s390.md ("tbegin_1_z13"): New expander.
16135
16136 2015-08-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16137
16138         * config/s390/s390.opt: Clarify description for -mzvector
16139         * doc/invoke.texi: Add documentation for -mhtm, -mvx, and
16140         -mzvector.
16141
16142 2015-08-06  Richard Biener  <rguenther@suse.de>
16143
16144         * gimple.h (gimple_call_set_fn): Access op member directly.
16145         (gimple_call_chain_ptr): Likewise.
16146         (gimple_call_set_chain): Likewise.
16147         (gimple_cond_lhs_ptr): Likewise.
16148         (gimple_cond_set_lhs): Likewise.
16149         (gimple_cond_rhs_ptr): Likewise.
16150         (gimple_cond_set_rhs): Likewise.
16151         (gimple_cond_true_label): Likewise.
16152         (gimple_cond_set_true_label): Likewise.
16153         (gimple_cond_set_false_label): Likewise.
16154         (gimple_cond_false_label): Likewise.
16155         (gimple_label_label): Likewise.
16156         (gimple_label_set_label): Likewise.
16157         (gimple_goto_set_dest): Likewise.
16158         (gimple_asm_input_op): Likewise.
16159         (gimple_asm_input_op_ptr): Likewise.
16160         (gimple_asm_set_input_op): Likewise.
16161         (gimple_asm_output_op): Likewise.
16162         (gimple_asm_output_op_ptr): Likewise.
16163         (gimple_asm_set_output_op): Likewise.
16164         (gimple_asm_clobber_op): Likewise.
16165         (gimple_asm_set_clobber_op): Likewise.
16166         (gimple_asm_label_op): Likewise.
16167         (gimple_asm_set_label_op): Likewise.
16168         (gimple_switch_index): Likewise.
16169         (gimple_switch_index_ptr): Likewise.
16170         (gimple_return_retval_ptr): Likewise.
16171         (gimple_return_retval): Likewise.
16172         (gimple_return_set_retval): Likewise.
16173         (gimple_switch_set_index): Likewise.  Remove superfluous GIMPLE_CHECK.
16174         (gimple_switch_label): Likewise.
16175         (gimple_switch_set_label): Likewise.
16176
16177 2015-08-06  Richard Biener  <rguenther@suse.de>
16178
16179         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Simplify
16180         bool comparison canonicalization and restrict to integers.
16181
16182 2015-08-05  Andrew MacLeod  <amacleod@redhat.com>
16183
16184         * coretypes.h (enum symbol_visibility): Relocate here.
16185         * flag-types.h (enum symbol_visibility): Remove.
16186         * tree-core.h (enum symbol_visibility): Remove.
16187
16188 2015-08-05  Lynn Boger  <laboger@linux.vnet.ibm.com>
16189
16190         PR target/66870
16191         * config/rs6000/rs6000.c (rs6000_emit_prologue): Check
16192         for no_split_stack function attribute along with
16193         flag_split_stack.
16194         (rs6000_expand_split_stack_prologue): Likewise.
16195
16196 2015-08-05  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16197             Jeff Law  <law@redhat.com>
16198
16199         PR c/16351
16200         * doc/invoke.texi (Wnull-dereference): New.
16201         * tree-vrp.c (infer_value_range): Update call to infer_nonnull_range.
16202         * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behaviour):
16203         Warn for potential NULL dereferences.
16204         (find_explicit_erroneous_behaviour): Warn for NULL dereferences.
16205         * ubsan.c (instrument_nonnull_arg): Call
16206         infer_nonnull_range_by_attribute.
16207         (instrument_nonnull_return): Likewise.
16208         * common.opt (Wnull-dereference); New.
16209         * gimple.c (infer_nonnull_range): Remove bool arguments.
16210         (infer_nonnull_range_by_dereference): New.
16211         (infer_nonnull_range_by_attribute): New.
16212         * gimple.h: Update declarations.
16213
16214 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
16215
16216         * gensupport.c (sequence_num): Replace with...
16217         (insn_sequence_num, split_sequence_num, peephole2_sequence_num):
16218         ...these new variables.
16219         (init_rtx_reader_args_cb): Update accordingly.
16220         (get_num_code_insns): Likewise.
16221         (read_md_rtx): Rework to use a while loop and get_c_test.
16222         Use the new counters.  Remove redundant DEFINE_SUBST case.
16223         * genoutput.c (gen_split): Delete.
16224         (main): Don't call it.
16225
16226 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
16227
16228         * gensupport.h (get_c_test): Declare.
16229         * gensupport.c (get_c_test): New function.
16230         * genconditions.c (main): Use it.
16231         * genrecog.c (validate_pattern): Likewise.
16232         (match_pattern_1): Likewise.  Remove c_test argument.
16233         (match_pattern): Update accordingly and remove c_test argument.
16234         (main): Update accordingly.
16235
16236 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
16237
16238         * gensupport.h (get_num_insn_codes): Declare.
16239         * gensupport.c (get_num_insn_codes): New function.
16240         * genattrtab.c (optimize_attrs): Rename max_insn_code to
16241         num_insn_codes.
16242         (main): Likewise.  Use get_num_insn_codes.
16243         * gencodes.c (main): Remove "last" and use get_num_insn_codes.
16244
16245 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
16246
16247         PR middle-end/66311
16248         * wide-int.cc (wi::from_mpz): Make sure that absolute mpz value
16249         is zero- rather than sign-extended.
16250
16251 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
16252
16253         * target-insns.def (can_extend): Delete.
16254
16255 2015-08-05  Richard Biener  <rguenther@suse.de>
16256
16257         PR tree-optimization/67121
16258         * tree-if-conv.c (combine_blocks): Clear range-info produced
16259         by stmts no longer executed conditionally.
16260
16261 2015-08-05  Nick Clifton  <nickc@redhat.com>
16262
16263         * config/rl78/rl78.c (rl78_force_nonfar_3): Remove optimization
16264         to allow identical far pointers to remain.
16265
16266 2015-08-05  Richard Biener  <rguenther@suse.de>
16267
16268         PR middle-end/67120
16269         * match.pd: Compare address bases with == if they are decls
16270         or SSA names, not operand_equal_p.  Otherwise fail.
16271
16272 2015-08-05  Richard Biener  <rguenther@suse.de>
16273
16274         PR tree-optimization/67055
16275         * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Handle
16276         NULL gimple_block.
16277
16278         * g++.dg/torture/pr67055.C: New testcase.
16279
16280 2015-08-05  Kirill Yukhin  <kirill.yukhin@intel.com>
16281
16282         * config/i386/i386.md (define_attr "isa"): Addd avx512vl and
16283         noavx512vl.
16284         (define_attr "enabled"): Handle avx521vl and noavx512vl.
16285         * config/i386/sse.md (define_insn "vec_dupv2df<mask_name>"): Split
16286         AVX-512 alternative out of SSE.
16287         (define_insn "*vec_concatv2df"): Ditto.
16288
16289 2015-08-05  Kirill Yukhin  <kirill.yukhin@intel.com>
16290
16291         * config/i386/i386.c (bdesc_args): Rename CODE_FOR_sse4_1_ptest into
16292         CODE_FOR_sse4_1_ptestv2di and CODE_FOR_avx_vtestps256 into
16293         CODE_FOR_avx_ptestv4di.
16294         * config/i386/sse.md (define_mode_iterator V_AVX): New.
16295         (define_mode_attr sse4_1): Extend to other 128/256-bit modes.
16296         (define_insn "avx_ptest256"): Merge this ...
16297         (define_insn "sse4_1_ptest"): And this ...
16298         (define_insn "<sse4_1>_ptest<mode>"): Into this. Use V_AVX iterator.
16299
16300 2015-08-05  Richard Biener  <rguenther@suse.de>
16301
16302         PR tree-optimization/67109
16303         * tree-vect-data-refs.c (vect_analyze_group_access_1): Check
16304         against too big groups.  Print whether this is a load or store
16305         group.  Rename from ...
16306         (vect_analyze_group_access): ... this which is now a wrapper
16307         dissolving an invalid group.
16308         (vect_analyze_data_ref_accesses): Print whether this is a load
16309         or store group.
16310
16311 2015-08-05  Richard Biener  <rguenther@suse.de>
16312
16313         PR middle-end/67107
16314         * match.pd: Guard const_binop result checking against NULL_TREE
16315         result.
16316
16317 2015-08-05  Kugan Vivekanandarajah  <kuganv@linaro.org>
16318
16319         * cse.c (cse_insn): Restoring old behaviour for src_eqv
16320          when dest and value in the REG_EQUAL are same and dest
16321          is STRICT_LOW_PART.
16322
16323 2015-08-04  Anatoly Sokolov  <aesok@post.ru>
16324
16325         * config/moxie/moxie.h (PRINT_OPERAND,
16326           PRINT_OPERAND_ADDRESS): Remove macros.
16327         * config/moxie/moxie-protos.h (moxie_print_operand,
16328           moxie_print_operand_address): Remove declaration.
16329         * config/moxie/moxie.c (TARGET_PRINT_OPERAND,
16330           TARGET_PRINT_OPERAND_ADDRESS): Define.
16331           (moxie_print_operand, moxie_print_operand_address): Make static.
16332
16333 2015-08-04  Szabolcs Nagy  <szabolcs.nagy@arm.com>
16334
16335         PR target/66731
16336         * config/aarch64/aarch64.c (aarch64_rtx_costs): Fix NEG cost for FNMUL.
16337         (aarch64_rtx_mult_cost): Fix MULT cost with -frounding-math.
16338
16339 2015-08-04  Richard Biener  <rguenther@suse.de>
16340
16341         * genmatch.c (dt_node::gen_kids_1): Use gassign and gcall in
16342         generated code.
16343         (dt_operand::gen_gimple_expr): Adjust.
16344
16345 2015-08-04  Richard Biener  <rguenther@suse.de>
16346
16347         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Canonicalize
16348         bool compares on RHS.
16349         * match.pd: Add X ==/!= !X is false/true pattern.
16350
16351 2015-08-04  Pawel Kupidura  <pawel.kupidura@arm.com>
16352
16353         * config/aarch64/aarch64.c: Change inner loop statement cost
16354         to be consistent with other targets.
16355
16356 2015-08-04  Christophe Lyon  <christophe.lyon@linaro.org>
16357
16358         * config/arm/neon.md (neon_vget_lanev2di): Handle big-endian
16359         targets.
16360
16361 2015-08-04  Nathan Sidwell  <nathan@codesourcery.com>
16362
16363         * config/nvptx/nvptx.h (struct nvptx_pseudo_info): Delete.
16364         (machine_function): Remove pseudos field.
16365
16366 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16367
16368         * config/aarch64/aarch64.c (aarch64_option_valid_attribute_p):
16369         Exit early and use target_option_current_node if processing current
16370         pragma.
16371
16372 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16373
16374         * doc/extend.texi (AArch64 Function Attributes): New node.
16375         (AArch64 Pragmas): Likewise.
16376
16377 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16378
16379         * config/aarch64/aarch64.c (aarch64_option_valid_attribute_p):
16380         Initialize simd builtins if TARGET_SIMD.
16381         * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
16382         Make sure that the builtins are initialized only once no matter how
16383         many times the function is called.
16384         (aarch64_init_builtins): Unconditionally initialize crc builtins.
16385         (aarch64_relayout_simd_param): New function.
16386         (aarch64_simd_expand_args): Use above during argument expansion.
16387         * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse): Initialize
16388         simd builtins if TARGET_SIMD.
16389         * config/aarch64/aarch64-protos.h (aarch64_init_simd_builtins): New
16390         prototype.
16391         (aarch64_relayout_simd_types): Likewise.
16392
16393 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16394
16395         * config.gcc (aarch64*-*-*): Specify c_target_objs and cxx_target_objs.
16396         * config/aarch64/aarch64.h (REGISTER_TARGET_PRAGMAS): Define.
16397         (TARGET_CPU_CPP_BUILTINS): Redefine to call aarch64_cpu_cpp_builtins.
16398         * config/aarch64/aarch64.c (aarch64_override_options_internal): Remove
16399         static keyword.
16400         (aarch64_reset_previous_fndecl): New function.
16401         (aarch64_handle_attr_isa_flags): Handle "+nothing" in the beginning of
16402         the string.
16403         * config/aarch64/aarch64-c.c: New file.
16404         * config/aarch64/arm_acle.h: Add pragma +crc+nofp at the top.
16405         Push and pop options at beginning and end.  Remove ifdef
16406         __ARM_FEATURE_CRC32.
16407         * config/aarch64/arm_neon.h: Remove #ifdef check on __ARM_NEON.
16408         Add pragma +nothing+simd and +nothing+crypto where appropriate.
16409         * config/aarch64/t-aarch64 (aarch64-c.o): New rule.
16410         * config/aarch64/aarch64-protos.h (aarch64_cpu_cpp_builtins):
16411         Define prototype.
16412         (aarch64_register_pragmas): Likewise.
16413         (aarch64_reset_previous_fndecl): Likewise.
16414         (aarch64_process_target_attr): Likewise.
16415         (aarch64_override_options_internal): Likewise.
16416
16417 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16418
16419         * config/aarch64/aarch64.c (aarch64_tribools_ok_for_inlining_p):
16420         New function.
16421         (aarch64_can_inline_p): Likewise.
16422         (TARGET_CAN_INLINE_P): Define.
16423
16424 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16425
16426         * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
16427         Remove static.  Handle OPT_mgeneral_regs_only,
16428         OPT_mfix_cortex_a53_835769, OPT_mstrict_align,
16429         OPT_momit_leaf_frame_pointer.
16430         * config/aarch64/aarch64.c: Include opts.h and diagnostic.h
16431         (aarch64_attr_opt_type): New enum.
16432         (aarch64_attribute_info): New struct.
16433         (aarch64_handle_attr_arch): New function.
16434         (aarch64_handle_attr_cpu): Likewise.
16435         (aarch64_handle_attr_tune): Likewise.
16436         (aarch64_handle_attr_isa_flags): Likewise.
16437         (aarch64_attributes): New table.
16438         (aarch64_process_one_target_attr): New function.
16439         (num_occurences_in_str): Likewise.
16440         (aarch64_process_target_attr): Likewise.
16441         (aarch64_option_valid_attribute_p): Likewise.
16442         (TARGET_OPTION_VALID_ATTRIBUTE_P): Define.
16443         * config/aarch64/aarch64-protos.h: Include input.h
16444         (aarch64_handle_option): Declare prototype.
16445
16446 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16447
16448         * config/aarch64/aarch64.h (SWITCHABLE_TARGET): Define.
16449         * config/aarch64/aarch64.c: Include target-globals.h
16450         (aarch64_previous_fndecl): New variable.
16451         (aarch64_set_current_function): New function.
16452         (TARGET_SET_CURRENT_FUNCTION): Define.
16453
16454 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16455
16456         * config/aarch64/aarch64.opt (explicit_tune_core): New TargetVariable.
16457         (explicit_arch): Likewise.
16458         (x_aarch64_isa_flags): Likewise.
16459         (mgeneral-regs-only): Mark as Save.
16460         (mfix-cortex-a53-835769): Likewise.
16461         (mcmodel=): Likewise.
16462         (mstrict-align): Likewise.
16463         (momit-leaf-frame-pointer): Likewise.
16464         (mtls-dialect): Likewise.
16465         (master=): Likewise.
16466         * config/aarch64/aarch64.h (ASM_DECLARE_FUNCTION_NAME): Define.
16467         (aarch64_isa_flags): Remove extern declaration.
16468         * config/aarch64/aarch64.c (aarch64_validate_mcpu): Return a bool
16469         to indicate success or failure.
16470         (aarch64_validate_march): Likewise.
16471         (aarch64_validate_mtune): Likewise.
16472         (aarch64_isa_flags): Delete.
16473         (aarch64_override_options_internal): Access opts->x_aarch64_isa_flags
16474         instead of aarch64_isa_flags.
16475         (aarch64_get_tune_cpu): New function.
16476         (aarch64_get_arch): Likewise.
16477         (aarch64_override_options): Use above and set up explicit_tune_core
16478         and explicit_arch.
16479         (aarch64_print_extension): Move earlier in file.  Add isa_flags
16480         argument and use that instead of the global aarch64_isa_flags.
16481         (aarch64_option_save): New function.
16482         (aarch64_option_restore): Likewise.
16483         (aarch64_option_print): Likewise.
16484         (aarch64_declare_function_name): Likewise.
16485         (aarch64_start_file): Delete.
16486         (TARGET_ASM_FILE_START): Do not define.
16487         (TARGET_OPTION_RESTORE, TARGET_OPTION_PRINT): Define.
16488         * config/aarch64/aarch64-protos.h (aarch64_declare_function_name):
16489         Declare prototype.
16490
16491 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16492
16493         * config/aarch64/aarch64.opt (momit-leaf-frame-pointer): Initialize
16494         flag_omit_leaf_frame_pointer to 2.
16495
16496 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16497
16498         * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_835769_DEFAULT): Always
16499         define to 0 or 1.
16500         (TARGET_FIX_ERR_A53_835769): New macro.
16501         * config/aarch64/aarch64.c (aarch64_override_options_internal): Remove
16502         handling of opts->x_aarch64_fix_a53_err835769.
16503         (aarch64_madd_needs_nop): Check for TARGET_FIX_ERR_A53_835769 rather
16504         than aarch64_fix_a53_err835769.
16505         * config/aarch64/aarch64-elf-raw.h: Update for above changes.
16506         * config/aarch64/aarch64-linux.h: Likewise.
16507
16508 2015-08-04  Uros Bizjak  <ubizjak@gmail.com>
16509
16510         * config/i386/i386.c (ix86_expand_int_movcc): Check result of
16511         ix86_expand_int_movcc as boolean.
16512
16513 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16514
16515         * config/aarch64/aarch64.opt (aarch64_arch_string): Delete.
16516         (aarch64_cpu_string): Likewise.
16517         (aarch64_tune_string): Likewise.
16518         * config/aarch64/aarch64.c (aarch64_parse_opt_result): New enum.
16519         (aarch64_parse_extension): Return aarch64_parse_opt_result.
16520         Add extra argument to put result into.
16521         (aarch64_parse_arch): Likewise.  Do not set selected_cpu.
16522         (aarch64_parse_cpu): Add arguments to put results into. Return
16523         aarch64_parse_opt_result.
16524         (aarch64_parse_tune): Likewise.
16525         (aarch64_override_options_after_change_1): New function.
16526         (aarch64_override_options_internal): New function.
16527         (aarch64_validate_mcpu): Likewise.
16528         (aarch64_validate_march): Likewise.
16529         (aarch64_validate_mtune): Likewise.
16530         (aarch64_override_options): Update to reflect above changes.
16531         Move some logic into aarch64_override_options_internal.
16532         Initialize target_option_default_node and target_option_current_node.
16533         (aarch64_override_options_after_change): Move logic into
16534         aarch64_override_options_after_change_1 and call it with global_options.
16535         (initialize_aarch64_code_model): Take a gcc_options pointer and use the
16536         flag values from that.
16537
16538 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16539
16540         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
16541         __ARM_ARCH_8A directly rather than with cpp_define_formatted.
16542         * config/aarch64/aarch64.c (struct processor): Add arch field.
16543         (all_architectures): Handle above, move above all_cores.
16544         (all_cores): Handle above.
16545         (aarch64_parse_arch): Handle above changes.
16546         * config/aarch64/aarch64-arches.def (armv8-a): Extend according to
16547         above.  Update comments.
16548         (armv8.1-a): Likewise.
16549         * config/aarch64/aarch64-cores.def: Update according to above.
16550         * config/aarch64/aarch64-opts.h (aarch64_arch): New enum.
16551         * config/aarch64/driver-aarch64.c (struct aarch64_arch): Rename to
16552         aarch64_arch_driver_info.
16553
16554 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16555
16556         * config/aarch64/aarch64.c (struct processor): Add ident field.
16557         Rename core sched_core.
16558         (all_cores): Handle above changes.
16559         (all_architectures): Likewise.
16560         (aarch64_parse_arch): Likewise.
16561         (aarch64_override_options): Likewise.
16562
16563 2015-08-04  Richard Biener  <rguenther@suse.de>
16564
16565         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
16566         dispatching to fold_binary for GIMPLE_BINARY_RHS and for
16567         comparisons embedded in [VEC_]COND_EXPRs.
16568
16569 2015-08-03  Abe Skolnik  <a.skolnik@samsung.com>
16570
16571         * tree-if-conv.c: Fix various typos in comments.
16572         * tree-vect-stmts.c: Likewise.
16573
16574 2015-08-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16575
16576         PR tree-optimization/67043
16577         * loop-invariant.c (move_invariant_reg): Recompute luids in loop
16578         preheader after hoisting invariant in it.
16579         (find_defs): Force recomputation of all luids.
16580
16581 2015-08-03  Peter Bergner  <bergner@vnet.ibm.com>
16582
16583         * config/rs6000/htm.md (tabort.): Restrict the source operand to
16584         using a base register.
16585
16586 2015-08-03  David Malcolm  <dmalcolm@redhat.com>
16587
16588         * main.c (main): Pass in NULL for toplev's external_timer.
16589         * timevar.c: Include coretypes.h.
16590         (class timer::named_items): New.
16591         (timer::named_items::named_items): New.
16592         (timer::named_items::~named_items): New.
16593         (timer::named_items::push): New.
16594         (timer::named_items::pop): New.
16595         (timer::named_items::print): New.
16596         (timer::timer): Initialize field "m_jit_client_items".
16597         (timer::~timer): New.
16598         (timer::push): Move bulk of implementation to...
16599         (timer::push_internal): ...here.  New function.
16600         (timer::pop): Move bulk of implementation to...
16601         (timer::pop_internal): ...here.  New function.
16602         (timer::push_client_item): New.
16603         (timer::pop_client_item): New.
16604         (timer::print_row): New function, taken from timer::print.
16605         (timer::print): Print "GCC items" header if we also have client
16606         items.  Move row-printing to timer::print_row.  Print any client
16607         items.
16608         (timer::get_topmost_item_name): New method.
16609         * timevar.def (TV_JIT_ACQUIRING_MUTEX): New.
16610         (TV_JIT_CLIENT_CODE): New.
16611         * timevar.h (timer::push_client_item): New declaration.
16612         (timer::pop_client_item): New declaration.
16613         (timer::get_topmost_item_name): New method.
16614         (timer::push_internal): New declaration.
16615         (timer::pop_internal): New declaration.
16616         (timer::print_row): New declaration.
16617         (timer::named_items): New declaration.
16618         (timer::m_jit_client_items): New field.
16619         (timer): Add friend class named_items.
16620         (auto_timevar::auto_timevar): Add timer param.
16621         (auto_timevar::~auto_timevar): Use field "m_timer".
16622         (auto_timevar::m_timer): New field.
16623         * toplev.c (initialize_rtl): Add g_timer as param when
16624         constructing auto_timevar instance.
16625         (toplev::toplev): Add "external_timer" param, and use it to
16626         initialize the "g_timer" global if non-NULL.
16627         (toplev::~toplev): If this created "g_timer", delete it.
16628         * toplev.h (toplev::toplev): Replace "use_TV_TOTAL" bool param
16629         with "external_timer" timer *.
16630
16631 2015-08-03  Alexander Basov <coohpt@gmail.com>
16632
16633         PR middle-end/64744
16634         PR middle-end/48470
16635         PR middle-end/43404
16636         * cfgexpand.c (expand_one_var): Add check if stack is going to
16637         be used in naked function.
16638         * expr.c (expand_expr_addr_expr_1): Remove excess checking
16639         whether expression should not reside in MEM.
16640         * function.c (use_register_for_decl): Do not use registers for
16641         non-register things (volatile, float, BLKMode) in naked functions.
16642
16643 2015-08-03  John David Anglin  <danglin@gcc.gnu.org>
16644
16645         PR target/67060
16646         * config/pa/pa.md (call_reg_64bit): Remove reg:DI 1 clobber.
16647         Adjust splits to match new pattern.
16648
16649 2015-08-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
16650
16651         * config/rs6000/vector.md (VEC_L): Add KFmode and TFmode.
16652         (VEC_M): Likewise.
16653         (VEC_N): Likewise.
16654         (mov<mode>, VEC_M iterator): Add support for IEEE 128-bit floating
16655         point in VSX registers.
16656
16657         * config/rs6000/constraints.md (wb constraint): Document unused
16658         w<x> constraint.
16659         (we constraint): Likewise.
16660         (wo constraint): Likewise.
16661         (wp constraint): New constraint for IEEE 128-bit floating point in
16662         VSX registers.
16663         (wq constraint): Likewise.
16664
16665         * config/rs6000/predicates.md (easy_fp_constant): Add support for
16666         IEEE 128-bit floating point in VSX registers.
16667         (easy_scalar_constant): Likewise.
16668
16669         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add new
16670         constraints (wp, wq) for IEEE 128-bit floating point in VSX
16671         registers.
16672         (rs6000_init_hard_regno_mode_ok): Likewise.
16673
16674         * config/rs6000/vsx.md (VSX_LE_128): Add support for IEEE 128-bit
16675         floating point in VSX registers.
16676         (VSX_L): Likewise.
16677         (VSX_M): Likewise.
16678         (VSX_M2): Likewise.
16679         (VSm): Likewise.
16680         (VSs): Likewise.
16681         (VSr): Likewise.
16682         (VSa): Likewise.
16683         (VSv): Likewise.
16684         (vsx_le_permute_<mode>): Add support to properly swap bytes for
16685         IEEE 128-bit floating point in VSX registers on little endian.
16686         (vsx_le_undo_permute_<mode>): Likewise.
16687         (vsx_le_perm_load_<mode>): Likewise.
16688         (vsx_le_perm_store_<mode>): Likewise.
16689         (splitters for IEEE 128-bit fp moves): Likewise.
16690
16691         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wp and
16692         wq constraints.
16693
16694         * config/rs6000/altivec.md (VM): Add support for IEEE 128-bit
16695         floating point in VSX registers.
16696         (VM2): Likewise.
16697
16698         * doc/md.text (Machine Constraints): Document wp and wq
16699         constraints on PowerPC.
16700
16701 2015-08-03  Jeff Law  <law@redhat.com>
16702
16703         PR middle-end/66314
16704         PR gcov-profile/66899
16705         * tree-ssa-threadupdate.c (mark_threaded_blocks): Correctly
16706         iterate over the jump threading paths when an element in the
16707         jump threading paths array is eliminated.
16708
16709 2015-08-03  Segher Boessenkool  <segher@kernel.crashing.org>
16710
16711         * Makefile.in (OBJS): Put gimple-match.o and generic-match.o first.
16712
16713 2015-08-03  Patrick Palka  <ppalka@gcc.gnu.org>
16714
16715         * tree-ssa-uninit.c (find_uninit_use): Declare and pass to
16716         is_use_properly_guarded the variable def_preds.  Free its
16717         contents before returning.
16718         (prune_uninit_phi_opnds_in_unrealizable_paths): Same.
16719         (is_use_properly_guarded): Replace local variable def_preds with
16720         a parameter.  Adjust accordingly.  Only update *def_preds if it's
16721         the empty vector.
16722
16723 2015-08-03  Richard Biener  <rguenther@suse.de>
16724
16725         * genmatch.c (simplify::for_subst_vec): New member.
16726         (binary_ok): New helper for for lowering.
16727         (lower_for): Delay substituting operators into result expressions
16728         if we can merge the results eventually again.
16729         (capture_info::walk_result): Adjust for user_id appearing as
16730         result expression operator.
16731         (expr::gen_transform): Likewise.
16732         (dt_simplify::gen_1): Likewise.
16733         (dt_simplify::gen): Pass not substituted operators to tail
16734         functions or initialize local variable with it.
16735         (decision_tree::gen): Adjust function signature.
16736         * match.pd: Fix tests against global code and add default
16737         cases to switch stmts.
16738
16739 2015-08-03  Richard Biener  <rguenther@suse.de>
16740
16741         * genmatch.c (dt_simplify::gen): Create captures array
16742         with an initializer.
16743
16744 2015-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16745
16746         * configure.ac: Set aliasing_flags to -fno-strict-aliasing if
16747         the host compiler is affected by placement new aliasing bug.
16748         * configure: Regenerate.
16749         * Makefile.in (ALIASING_FLAGS): New variable.
16750         (ALL_CXXFLAGS): Add $(ALIASING_FLAGS).
16751
16752 2015-08-03  Szabolcs Nagy  <szabolcs.nagy@arm.com>
16753
16754         PR target/66731
16755         * config/arm/vfp.md (negmuldf3_vfp): Add new pattern.
16756         (negmulsf3_vfp): Likewise.
16757         (muldf3negdf_vfp): Disable for -frounding-math.
16758         (mulsf3negsf_vfp): Likewise.
16759         * config/arm/arm.c (arm_new_rtx_costs): Fix NEG cost for VNMUL,
16760         fix MULT cost with -frounding-math.
16761
16762 2015-08-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16763
16764         * ifcvt.c (noce_try_store_flag_constants): Make logic of the case
16765         when diff == STORE_FLAG_VALUE or diff == -STORE_FLAG_VALUE more
16766         explicit.  Prefer to add the flag whenever possible.
16767         (noce_process_if_block): Try noce_try_store_flag_constants before
16768         noce_try_cmove.
16769
16770 2015-08-03  Richard Biener  <rguenther@suse.de>
16771
16772         * genmatch.c (struct sinfo, struct sinfo_hashmap_traits, sinfo_map_t):
16773         New hash-map to record equivalent transforms.
16774         (dt_node::analyze): Populate the equivalent transforms hash-map.
16775         (dt_simplify::info): Add reference to hash-map entry.
16776         (dt_simplify::gen): If we have split out a function for the
16777         transform, generate a call to it.
16778         (sinfo_hashmap_traits::hash): New function.
16779         (compare_op): New helper function for ...
16780         (sinfo_hashmap_traits::equal_keys): ... this new function.
16781         (decision_tree::gen): Split out common equivalent transforms
16782         into functions.
16783
16784 2015-08-03  Richard Biener  <rguenther@suse.de>
16785
16786         * gimple-fold.c (fold_gimple_assign): Remove folding of
16787         the comparison in COND_EXPRs.
16788
16789 2015-08-03  Richard Biener  <rguenther@suse.de>
16790
16791         * gimple-match-head.c (gimple_simplify): For [VEC_]COND_EXPRs
16792         on the rhs of assignments first simplify the embedded
16793         GENERIC condition.
16794
16795 2015-08-03  Richard Biener  <rguenther@suse.de>
16796
16797         PR tree-optimization/66917
16798         * tree-vectorizer.h (struct dataref_aux): Add base_element_aligned
16799         field.
16800         (DR_VECT_AUX): New macro.
16801         (set_dr_misalignment): Adjust.
16802         (dr_misalignment): Likewise.
16803         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
16804         Compute whether the base is at least element aligned.
16805         * tree-vect-stmts.c (ensure_base_align): Adjust.
16806         (vectorizable_store): If the base is not element aligned
16807         preserve alignment of the original access if misalignment is unknown.
16808         (vectorizable_load): Likewise.
16809
16810 2015-08-02  Martin Sebor  <msebor@redhat.com>
16811
16812         * c-family/c.opt (-Wframe-address): New warning option.
16813         * doc/invoke.texi (Wframe-address): Document it.
16814         * doc/extend.texi (__builtin_frame_address, __builtin_return_address):
16815         Clarify possible effects of calling the functions with non-zero
16816         arguments and mention -Wframe-address.
16817         * builtins.c (expand_builtin_frame_address): Handle -Wframe-address.
16818
16819 2015-08-01  Michael Collison  <michael.collison@linaro.org
16820             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
16821
16822         * config/arm/arm.md (*arm_smin_cmp): New pattern.
16823         (*arm_umin_cmp): Likewise.
16824
16825 2015-08-01  Caroline Tice  <cmtice@google.com>
16826
16827         PR 66521
16828         * vtable-verify.c (vtbl_mangled_name_types, vtbl_mangled_name_ids): New
16829         global variables.
16830         (vtbl_find_mangled_name):  New function.
16831         (vtbl_register_mangled_name):  New function.
16832         (vtbl_map_get_node):  If DECL_ASSEMBLER_NAME is "<anon>", look up
16833         mangled name in mangled name vectors.
16834         (find_or_create_vtbl_map_node):  Ditto.
16835         (var_is_used_for_virtual_call_p):  Add recursion_depth parameter;
16836         update recursion_depth on function entry; pass it to every recursive
16837         call; automatically exit if depth > 25 (give up looking at that point).
16838         (verify_bb_vtables):  Initialize recursion_depth and pass it to
16839         var_is_used_for_virtual_call_p.
16840         * vtable-verify.h (vtbl_mangbled_name_types, vtbl_mangled_name_ids): New
16841         global variable decls.
16842         (vtbl_register_mangled_name): New extern function decl.
16843
16844 2015-08-01  Tom de Vries  <tom@codesourcery.com>
16845
16846         * tree.c (operation_can_overflow, operation_no_trapping_overflow): New
16847         function.
16848         * tree.h (operation_can_overflow, operation_no_trapping_overflow):
16849         Declare.
16850         * tree-vect-loop.c (vect_is_simple_reduction_1): Use
16851         operation_no_trapping_overflow.  Allow non-overflow operations.
16852         * graphite-sese-to-poly.c (is_reduction_operation_p): Allow non-overflow
16853         operations.
16854
16855 2015-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
16856
16857         PR target/67049
16858         * config/sh/sh.md (GOTaddr2picreg): Fix typo.
16859
16860 2015-07-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16861
16862         * config/arm/arm.md (*if_neg_move): Convert to insn_and_split.
16863         Enable for TARGET_32BIT.
16864         (*if_move_neg): Likewise.
16865
16866 2015-07-31  Nick Clifton  <nickc@redhat.com>
16867
16868         * config/m32r/m32r.c (m32r_attribute_identifier): New function.
16869         Returns true for __model__.
16870         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
16871
16872 2015-07-31  Alan Modra  <amodra@gmail.com>
16873
16874         PR target/66870
16875         * config/rs6000/rs6000.c (machine_function): Add split_stack_argp_used.
16876         (rs6000_emit_prologue): Set it.
16877         (rs6000_set_up_by_prologue): Specify r12 when split_stack_argp_used.
16878
16879 2015-07-31  Richard Biener  <rguenther@suse.de>
16880
16881         * fold-const.c (fold_binary_loc): Remove X ^ C1 == C2
16882         -> X == (C1 ^ C2) which is already implemented in match.pd.
16883         Remove redundant dispatching to fold_relational_const.
16884         Move unordered self and NaN compares ...
16885         * match.pd: ... as patterns here.  Remove some stray captures
16886         and add a comment.
16887
16888 2015-07-31  Petr Murzin  <petr.murzin@intel.com>
16889
16890         * config/i386/i386.c
16891         (bdesc_special_args): Convert mask type from signed to unsigned for
16892         masked builtins.
16893         (ix86_expand_args_builtin): Do not handle UINT_FTYPE_V2DF,
16894         UINT64_FTYPE_V2DF, UINT64_FTYPE_V4SF, V16QI_FTYPE_V8DI,
16895         V16HI_FTYPE_V16SI, V16SI_FTYPE_V16SI, V16SF_FTYPE_FLOAT,
16896         V8HI_FTYPE_V8DI, V8UHI_FTYPE_V8UHI, V8SI_FTYPE_V8DI, V8SF_FTYPE_V8DF,
16897         V8DI_FTYPE_INT64, V8DI_FTYPE_V4DI, V8DI_FTYPE_V8DI, V8DF_FTYPE_DOUBLE,
16898         V8DF_FTYPE_V8SI, V16SI_FTYPE_V16SI_V16SI, V16SF_FTYPE_V16SF_V16SI,
16899         V8DI_FTYPE_V8DI_V8DI, V8DF_FTYPE_V8DF_V8DI, V4SI_FTYPE_V4SF_V4SF,
16900         V4SF_FTYPE_V4SF_UINT64, V2UDI_FTYPE_V4USI_V4USI, V2DI_FTYPE_V2DF_V2DF,
16901         V2DF_FTYPE_V2DF_UINT64, V4UDI_FTYPE_V8USI_V8USI, QI_FTYPE_V8DI_V8DI,
16902         HI_FTYPE_V16SI_V16SI, HI_FTYPE_HI_INT, V16SF_FTYPE_V16SF_V16SF_V16SF,
16903         V16SF_FTYPE_V16SF_V16SI_V16SF, V16SF_FTYPE_V16SI_V16SF_HI,
16904         V16SF_FTYPE_V16SI_V16SF_V16SF, V16SI_FTYPE_V16SF_V16SI_HI,
16905         V8DI_FTYPE_V8SF_V8DI_QI, V8SF_FTYPE_V8DI_V8SF_QI, V8DI_FTYPE_PV4DI,
16906         V8DF_FTYPE_V8DI_V8DF_QI, V16SI_FTYPE_V16SI_V16SI_V16SI,
16907         V2DI_FTYPE_V2DI_V2DI_V2DI, V8DI_FTYPE_V8DF_V8DI_QI, V8DF_FTYPE_PV4DF,
16908         V8SI_FTYPE_V8SI_V8SI_V8SI, V8DF_FTYPE_V8DF_V8DF_V8DF, UINT_FTYPE_V4SF,
16909         V8DF_FTYPE_V8DF_V8DI_V8DF, V8DF_FTYPE_V8DI_V8DF_V8DF,
16910         V8DF_FTYPE_V8SF_V8DF_QI, V8DI_FTYPE_V8DI_V8DI_V8DI, V16SF_FTYPE_PV4SF,
16911         V8SF_FTYPE_V8DF_V8SF_QI, V8SI_FTYPE_V8DF_V8SI_QI, V16SI_FTYPE_PV4SI,
16912         V2DF_FTYPE_V2DF_V4SF_V2DF_QI, V4SF_FTYPE_V4SF_V2DF_V4SF_QI,
16913         V8DI_FTYPE_V8DI_SI_V8DI_V8DI, QI_FTYPE_V8DF_V8DF_INT_QI,
16914         HI_FTYPE_V16SF_V16SF_INT_HI, V16SF_FTYPE_V16SF_V16SF_V16SI_INT_HI,
16915         VOID_FTYPE_PDOUBLE_V2DF_QI, VOID_FTYPE_PFLOAT_V4SF_QI,
16916         V2DF_FTYPE_PCDOUBLE_V2DF_QI, V4SF_FTYPE_PCFLOAT_V4SF_QI.
16917         * config/i386/i386-builtin-types.def
16918         (V16QI_FTYPE_V16SI): Remove.
16919         (V8DF_FTYPE_V8SI): Ditto.
16920         (V8HI_FTYPE_V8DI): Ditto.
16921         (V8SI_FTYPE_V8DI): Ditto.
16922         (V8SF_FTYPE_V8DF): Ditto.
16923         (V8SF_FTYPE_V8DF_V8SF_QI): Ditto.
16924         (V16HI_FTYPE_V16SI): Ditto.
16925         (V16SF_FTYPE_V16HI): Ditto.
16926         (V16SF_FTYPE_V16HI_V16SF_HI): Ditto.
16927         (V16SF_FTYPE_V16SI): Ditto.
16928         (V4DI_FTYPE_V4DI): Ditto.
16929         (V16SI_FTYPE_V16SF): Ditto.
16930         (V16SF_FTYPE_FLOAT): Ditto.
16931         (V8DF_FTYPE_DOUBLE): Ditto.
16932         (V8DI_FTYPE_INT64): Ditto.
16933         (V8DI_FTYPE_V4DI): Ditto.
16934         (V16QI_FTYPE_V8DI): Ditto.
16935         (UINT_FTYPE_V4SF): Ditto.
16936         (UINT64_FTYPE_V4SF): Ditto.
16937         (UINT_FTYPE_V2DF): Ditto.
16938         (UINT64_FTYPE_V2DF): Ditto.
16939         (V16SI_FTYPE_V16SI): Ditto.
16940         (V8DI_FTYPE_V8DI): Ditto.
16941         (V16SI_FTYPE_PV4SI): Ditto.
16942         (V16SF_FTYPE_PV4SF): Ditto.
16943         (V8DI_FTYPE_PV2DI): Ditto.
16944         (V8DF_FTYPE_PV2DF): Ditto.
16945         (V4DI_FTYPE_PV2DI): Ditto.
16946         (V4DF_FTYPE_PV2DF): Ditto.
16947         (V16SI_FTYPE_PV2SI): Ditto.
16948         (V16SF_FTYPE_PV2SF): Ditto.
16949         (V8DI_FTYPE_PV4DI): Ditto.
16950         (V8DF_FTYPE_PV4DF): Ditto.
16951         (V8SF_FTYPE_FLOAT): Ditto.
16952         (V4SF_FTYPE_FLOAT): Ditto.
16953         (V4DF_FTYPE_DOUBLE): Ditto.
16954         (V8SF_FTYPE_PV4SF): Ditto.
16955         (V8SI_FTYPE_PV4SI): Ditto.
16956         (V4SI_FTYPE_PV2SI): Ditto.
16957         (V8SF_FTYPE_PV2SF): Ditto.
16958         (V8SI_FTYPE_PV2SI): Ditto.
16959         (V16SF_FTYPE_PV8SF): Ditto.
16960         (V16SI_FTYPE_PV8SI): Ditto.
16961         (V8DI_FTYPE_V8SF): Ditto.
16962         (V4DI_FTYPE_V4SF): Ditto.
16963         (V2DI_FTYPE_V4SF): Ditto.
16964         (V64QI_FTYPE_QI): Ditto.
16965         (V32HI_FTYPE_HI): Ditto.
16966         (V8UHI_FTYPE_V8UHI): Ditto.
16967         (V16UHI_FTYPE_V16UHI): Ditto.
16968         (V32UHI_FTYPE_V32UHI): Ditto.
16969         (V2UDI_FTYPE_V2UDI): Ditto.
16970         (V4UDI_FTYPE_V4UDI): Ditto.
16971         (V8UDI_FTYPE_V8UDI): Ditto.
16972         (V4USI_FTYPE_V4USI): Ditto.
16973         (V8USI_FTYPE_V8USI): Ditto.
16974         (V16USI_FTYPE_V16USI): Ditto.
16975         (V2DF_FTYPE_V2DF_UINT64): Ditto.
16976         (V2DI_FTYPE_V2DF_V2DF): Ditto.
16977         (V2UDI_FTYPE_V4USI_V4USI): Ditto.
16978         (V8DF_FTYPE_V8DF_V8DI): Ditto.
16979         (V4SF_FTYPE_V4SF_UINT64): Ditto.
16980         (V4SI_FTYPE_V4SF_V4SF): Ditto.
16981         (V16SF_FTYPE_V16SF_V16SI): Ditto.
16982         (V64QI_FTYPE_V32HI_V32HI): Ditto.
16983         (V32HI_FTYPE_V16SI_V16SI): Ditto.
16984         (V8DF_FTYPE_V8DF_V8DF_V8DI_INT_QI): Ditto.
16985         (V16SF_FTYPE_V16SF_V16SF_V16SI_INT_HI): Ditto.
16986         (V32HI_FTYPE_V64QI_V64QI): Ditto.
16987         (V32HI_FTYPE_V32HI_V32HI): Ditto.
16988         (V16HI_FTYPE_V16HI_V16HI_INT_V16HI_HI): Ditto.
16989         (V16SI_FTYPE_V16SI_V4SI): Ditto.
16990         (V16SI_FTYPE_V16SI_V16SI): Ditto.
16991         (V16SI_FTYPE_V32HI_V32HI): Ditto.
16992         (V16SI_FTYPE_V16SI_SI): Ditto.
16993         (V8DI_FTYPE_V8DI_V8DI): Ditto.
16994         (V4UDI_FTYPE_V8USI_V8USI): Ditto.
16995         (V8DI_FTYPE_V16SI_V16SI): Ditto.
16996         (V8DI_FTYPE_V8DI_V2DI): Ditto.
16997         (QI_FTYPE_QI): Ditto.
16998         (SI_FTYPE_SI): Ditto.
16999         (DI_FTYPE_DI): Ditto.
17000         (QI_FTYPE_QI_QI): Ditto.
17001         (QI_FTYPE_QI_INT): Ditto.
17002         (HI_FTYPE_HI_INT): Ditto.
17003         (SI_FTYPE_SI_INT): Ditto.
17004         (DI_FTYPE_DI_INT): Ditto.
17005         (HI_FTYPE_V16QI_V16QI): Ditto.
17006         (SI_FTYPE_V32QI_V32QI): Ditto.
17007         (DI_FTYPE_V64QI_V64QI): Ditto.
17008         (QI_FTYPE_V8HI_V8HI): Ditto.
17009         (HI_FTYPE_V16HI_V16HI): Ditto.
17010         (SI_FTYPE_V32HI_V32HI): Ditto.
17011         (QI_FTYPE_V4SI_V4SI): Ditto.
17012         (QI_FTYPE_V8SI_V8SI): Ditto.
17013         (QI_FTYPE_V2DI_V2DI): Ditto.
17014         (QI_FTYPE_V4DI_V4DI): Ditto.
17015         (QI_FTYPE_V8DI_V8DI): Ditto.
17016         (HI_FTYPE_V16SI_V16SI): Ditto.
17017         (HI_FTYPE_V16SI_V16SI_INT_HI): Ditto.
17018         (QI_FTYPE_V8DF_V8DF_INT_QI): Ditto.
17019         (HI_FTYPE_V16SF_V16SF_INT_HI): Ditto.
17020         (V32HI_FTYPE_V32HI_V32HI_V32HI): Ditto.
17021         (V4SF_FTYPE_V4SF_V2DF_V4SF_QI): Ditto.
17022         (V8DF_FTYPE_V8DF_V8DF_V8DF): Ditto.
17023         (V16SF_FTYPE_V16SF_V16SF_V16SF): Ditto.
17024         (V8DF_FTYPE_V8SF_V8DF_QI): Ditto.
17025         (V8DI_FTYPE_V8DF_V8DI_QI): Ditto.
17026         (V8DF_FTYPE_V8DI_V8DF_V8DF): Ditto.
17027         (V2DF_FTYPE_V2DF_V4SF_V2DF_QI): Ditto.
17028         (V16SF_FTYPE_V16SI_V16SF_HI): Ditto.
17029         (V16SF_FTYPE_V16SI_V16SF_V16SF): Ditto.
17030         (V8SI_FTYPE_V8DF_V8SI_QI): Ditto.
17031         (V8DI_FTYPE_PCCHAR_V8DI_QI): Ditto.
17032         (V8SF_FTYPE_PCFLOAT_V8SF_QI): Ditto.
17033         (V4SF_FTYPE_PCFLOAT_V4SF_QI): Ditto.
17034         (V4DF_FTYPE_PCDOUBLE_V4DF_QI): Ditto.
17035         (V2DF_FTYPE_PCDOUBLE_V2DF_QI): Ditto.
17036         (V8SI_FTYPE_PCCHAR_V8SI_QI): Ditto.
17037         (V4SI_FTYPE_PCCHAR_V4SI_QI): Ditto.
17038         (V4DI_FTYPE_PCCHAR_V4DI_QI): Ditto.
17039         (V2DI_FTYPE_PCCHAR_V2DI_QI): Ditto.
17040         (V16SF_FTYPE_PCV8SF_V16SF_HI): Ditto.
17041         (V16SI_FTYPE_PCV8SI_V16SI_HI): Ditto.
17042         (V8DF_FTYPE_PCV2DF_V8DF_QI): Ditto.
17043         (V8SF_FTYPE_PCV4SF_V8SF_QI): Ditto.
17044         (V8DI_FTYPE_PCV2DI_V8DI_QI): Ditto.
17045         (V8SI_FTYPE_PCV4SI_V8SI_QI): Ditto.
17046         (V4DF_FTYPE_PCV2DF_V4DF_QI): Ditto.
17047         (V4DI_FTYPE_PCV2DI_V4DI_QI): Ditto.
17048         (VOID_FTYPE_PDOUBLE_V2DF_QI): Ditto.
17049         (VOID_FTYPE_PFLOAT_V4SF_QI): Ditto.
17050         (V16SI_FTYPE_V16SF_V16SI_HI): Ditto.
17051         (V8DI_FTYPE_V8SF_V8DI_QI): Ditto.
17052         (V8SF_FTYPE_V8DI_V8SF_QI): Ditto.
17053         (V8DF_FTYPE_V8DI_V8DF_QI): Ditto.
17054         (V2DF_FTYPE_V2DF_V2DF_V2DI): Ditto.
17055         (V4SF_FTYPE_V4SF_V4SF_V4SI): Ditto.
17056         (V2UDI_FTYPE_V2UDI_V2UDI_V2UDI): Ditto.
17057         (V4USI_FTYPE_V4USI_V4USI_V4USI): Ditto.
17058         (V8UHI_FTYPE_V8UHI_V8UHI_V8UHI): Ditto.
17059         (V16UQI_FTYPE_V16UQI_V16UQI_V16UQI): Ditto.
17060         (V4DF_FTYPE_V4DF_V4DF_V4DI): Ditto.
17061         (V8SF_FTYPE_V8SF_V8SF_V8SI): Ditto.
17062         (V8DI_FTYPE_V8DI_V8DI_V8DI): Ditto.
17063         (V16SI_FTYPE_V16SI_V16SI_V16SI): Ditto.
17064         (V2DF_FTYPE_V2DF_V2DI_V2DF): Ditto.
17065         (V4DF_FTYPE_V4DF_V4DI_V4DF): Ditto.
17066         (V8DF_FTYPE_V8DF_V8DI_V8DF): Ditto.
17067         (V4SF_FTYPE_V4SF_V4SI_V4SF): Ditto.
17068         (V8SF_FTYPE_V8SF_V8SI_V8SF): Ditto.
17069         (V16SF_FTYPE_V16SF_V16SI_V16SF): Ditto.
17070         (V8DI_FTYPE_V8DI_SI_V8DI_V8DI): Ditto.
17071         (PVOID_FTYPE_PVOID_PVOID_ULONG): Ditto.
17072         (V4SF_FTYPE_V2DF_V4SF_QI): Convert mask type from signed to unsigned.
17073         (V4SF_FTYPE_V4DF_V4SF_QI): Ditto.
17074         (V4SF_FTYPE_V8HI_V4SF_QI): Ditto.
17075         (V8SF_FTYPE_V8HI_V8SF_QI): Ditto.
17076         (V16SI_FTYPE_V16SI_V16SI_HI): Ditto.
17077         (V8DI_FTYPE_V8DI_V8DI_QI): Ditto.
17078         (V2DF_FTYPE_V4DF_INT_V2DF_QI): Ditto.
17079         (V2DF_FTYPE_V8DF_INT_V2DF_QI): Ditto.
17080         (V2DI_FTYPE_V2DI_INT_V2DI_QI): Ditto.
17081         (V4DF_FTYPE_V8DF_INT_V4DF_QI): Ditto.
17082         (V4SF_FTYPE_V8SF_INT_V4SF_QI): Ditto.
17083         (V4SI_FTYPE_V2DF_V4SI_QI): Ditto.
17084         (V4SI_FTYPE_V4SI_INT_V4SI_QI): Ditto.
17085         (V4SI_FTYPE_V8HI_V8HI_V4SI_QI): Ditto.
17086         (V4SI_FTYPE_V8SI_INT_V4SI_QI): Ditto.
17087         (V8HI_FTYPE_V16QI_V16QI_V8HI_QI): Ditto.
17088         (V8HI_FTYPE_V8SF_INT_V8HI_QI): Ditto.
17089         (V8HI_FTYPE_V4SF_INT_V8HI_QI): Ditto.
17090         (V8SF_FTYPE_V16SF_INT_V8SF_QI): Ditto.
17091         (V4SF_FTYPE_V16SF_INT_V4SF_QI): Ditto.
17092         (V8DF_FTYPE_V8DF_V2DF_INT_V8DF_QI): Ditto.
17093         (V8DF_FTYPE_V8DF_V4DF_INT_V8DF_QI): Ditto.
17094         (V8DF_FTYPE_V8DF_V8DF_INT_V8DF_QI): Ditto.
17095         (V8DF_FTYPE_V8DF_INT_V8DF_QI): Ditto.
17096         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT_QI): Ditto.
17097         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT_QI): Ditto.
17098         (V16SF_FTYPE_V16SF_V16SF_INT_V16SF_HI): Ditto.
17099         (V16SF_FTYPE_V16SF_INT_V16SF_HI): Ditto.
17100         (V16SI_FTYPE_V16SI_V4SI_INT_V16SI_HI): Ditto.
17101         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT_QI): Ditto.
17102         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT_QI): Ditto.
17103         (V16SF_FTYPE_V16SF_V4SF_INT_V16SF_HI): Ditto.
17104         (V16SF_FTYPE_V16SF_V8SF_INT_V16SF_HI): Ditto.
17105         (V16HI_FTYPE_V32QI_V32QI_V16HI_HI): Ditto.
17106         (V32HI_FTYPE_V64QI_V64QI_V32HI_SI): Ditto.
17107         (V16HI_FTYPE_V16SF_INT_V16HI_HI): Ditto.
17108         (V16SI_FTYPE_V16SI_V8SI_INT_V16SI_HI): Ditto.
17109         (V4SI_FTYPE_V16SI_INT_V4SI_QI): Ditto.
17110         (V16SI_FTYPE_V16SI_V16SI_INT_V16SI_HI): Ditto.
17111         (V8SI_FTYPE_V16HI_V16HI_V8SI_QI): Ditto.
17112         (V16SI_FTYPE_V32HI_V32HI_V16SI_HI): Ditto.
17113         (V8SI_FTYPE_V8SI_INT_V8SI_QI): Ditto.
17114         (V8SI_FTYPE_V16SI_INT_V8SI_QI): Ditto.
17115         (V16SI_FTYPE_V16SI_V4SI_V16SI_HI): Ditto.
17116         (V16SI_FTYPE_V16SI_INT_V16SI_HI): Ditto.
17117         (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_QI): Ditto.
17118         (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI): Ditto.
17119         (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI): Ditto.
17120         (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI): Ditto.
17121         (V8DI_FTYPE_V8DI_V2DI_INT_V8DI_QI): Ditto.
17122         (V8DI_FTYPE_V8DI_V4DI_INT_V8DI_QI): Ditto.
17123         (V4DI_FTYPE_V8DI_INT_V4DI_QI): Ditto.
17124         (V8DI_FTYPE_V8DI_V2DI_V8DI_QI): Ditto.
17125         (V8DI_FTYPE_V8DI_INT_V8DI_QI): Ditto.
17126         (V4DI_FTYPE_V4DI_INT_V4DI_QI): Ditto.
17127         (V2DI_FTYPE_V4DI_INT_V2DI_QI): Ditto.
17128         (V2DI_FTYPE_V8DI_INT_V2DI_QI): Ditto.
17129         (HI_FTYPE_HI): Ditto.
17130         (HI_FTYPE_V16QI): Ditto.
17131         (SI_FTYPE_V32QI): Ditto.
17132         (DI_FTYPE_V64QI): Ditto.
17133         (QI_FTYPE_V8HI): Ditto.
17134         (HI_FTYPE_V16HI): Ditto.
17135         (SI_FTYPE_V32HI): Ditto.
17136         (QI_FTYPE_V4SI): Ditto.
17137         (QI_FTYPE_V8SI): Ditto.
17138         (HI_FTYPE_V16SI): Ditto.
17139         (QI_FTYPE_V2DI): Ditto.
17140         (QI_FTYPE_V4DI): Ditto.
17141         (QI_FTYPE_V8DI): Ditto.
17142         (V16QI_FTYPE_HI): Ditto.
17143         (V32QI_FTYPE_SI): Ditto.
17144         (V64QI_FTYPE_DI): Ditto.
17145         (V8HI_FTYPE_QI): Ditto.
17146         (V16HI_FTYPE_HI): Ditto.
17147         (V32HI_FTYPE_SI): Ditto.
17148         (V4SI_FTYPE_QI): Ditto.
17149         (V4SI_FTYPE_HI): Ditto.
17150         (V8SI_FTYPE_QI): Ditto.
17151         (V8SI_FTYPE_HI): Ditto.
17152         (V2DI_FTYPE_QI): Ditto.
17153         (V4DI_FTYPE_QI): Ditto.
17154         (HI_FTYPE_HI_HI): Ditto.
17155         (SI_FTYPE_SI_SI): Ditto.
17156         (DI_FTYPE_DI_DI): Ditto.
17157         (HI_FTYPE_V16QI_V16QI_HI): Ditto.
17158         (HI_FTYPE_V16QI_V16QI_INT_HI): Ditto.
17159         (SI_FTYPE_V32QI_V32QI_SI): Ditto.
17160         (SI_FTYPE_V32QI_V32QI_INT_SI): Ditto.
17161         (DI_FTYPE_V64QI_V64QI_DI): Ditto.
17162         (DI_FTYPE_V64QI_V64QI_INT_DI): Ditto.
17163         (QI_FTYPE_V8HI_V8HI_QI): Ditto.
17164         (QI_FTYPE_V8HI_V8HI_INT_QI): Ditto.
17165         (HI_FTYPE_V16HI_V16HI_HI): Ditto.
17166         (HI_FTYPE_V16HI_V16HI_INT_HI): Ditto.
17167         (SI_FTYPE_V32HI_V32HI_SI): Ditto.
17168         (SI_FTYPE_V32HI_V32HI_INT_SI): Ditto.
17169         (QI_FTYPE_V4SI_V4SI_QI): Ditto.
17170         (QI_FTYPE_V4SI_V4SI_INT_QI): Ditto.
17171         (QI_FTYPE_V8SI_V8SI_QI): Ditto.
17172         (QI_FTYPE_V8SI_V8SI_INT_QI): Ditto.
17173         (QI_FTYPE_V2DI_V2DI_QI): Ditto.
17174         (QI_FTYPE_V2DI_V2DI_INT_QI): Ditto.
17175         (QI_FTYPE_V4DI_V4DI_QI): Ditto.
17176         (QI_FTYPE_V4DI_V4DI_INT_QI): Ditto.
17177         (QI_FTYPE_V8DI_V8DI_QI): Ditto.
17178         (HI_FTYPE_V16SI_V16SI_HI): Ditto.
17179         (QI_FTYPE_V8DI_V8DI_INT): Ditto.
17180         (QI_FTYPE_V8DI_V8DI_INT_QI): Ditto.
17181         (HI_FTYPE_V16SI_V16SI_INT): Ditto.
17182         (HI_FTYPE_V16SI_V16SI_INT _HI): Ditto.
17183         (QI_FTYPE_V8DF_V8DF_INT): Ditto.
17184         (QI_FTYPE_V8DF_V8DF_INT_QI_INT): Ditto.
17185         (HI_FTYPE_V16SF_V16SF_INT): Ditto.
17186         (HI_FTYPE_V16SF_V16SF_INT_HI_INT): Ditto.
17187         (QI_FTYPE_V2DF_V2DF_INT): Ditto.
17188         (QI_FTYPE_V2DF_V2DF_INT_QI): Ditto.
17189         (QI_FTYPE_V2DF_V2DF_INT_QI_INT): Ditto.
17190         (QI_FTYPE_V4SF_V4SF_INT): Ditto.
17191         (QI_FTYPE_V4SF_V4SF_INT_QI): Ditto.
17192         (QI_FTYPE_V4SF_V4SF_INT_QI_INT): Ditto.
17193         (V16SI_FTYPE_HI): Ditto.
17194         (V8DI_FTYPE_QI): Ditto.
17195         (V2DF_FTYPE_V2DI_V2DF_V2DF_QI): Ditto.
17196         (V2DF_FTYPE_V2DF_V2DI_V2DF_QI): Ditto.
17197         (V4DF_FTYPE_V4DF_V2DF_INT_V4DF_QI): Ditto.
17198         (V4SF_FTYPE_V4SI_V4SF_V4SF_QI): Ditto.
17199         (V4SF_FTYPE_V4SF_V4SI_V4SF_QI): Ditto.
17200         (V4SF_FTYPE_V4SF_V4SF_V4SF_QI): Ditto.
17201         (V8SF_FTYPE_V8SF_V4SF_INT_V8SF_QI): Ditto.
17202         (V8SI_FTYPE_V8SI_V4SI_INT_V8SI_QI): Ditto.
17203         (V4DI_FTYPE_V4DI_V2DI_INT_V4DI_QI): Ditto.
17204         (V2DF_FTYPE_V2DF_V2DF_QI): Ditto.
17205         (V2DF_FTYPE_V4SF_V2DF_QI): Ditto.
17206         (V2DF_FTYPE_V4SI_V2DF_QI): Ditto.
17207         (V4DF_FTYPE_V4DF_V4DF_QI): Ditto.
17208         (V4DF_FTYPE_V4SF_V4DF_QI): Ditto.
17209         (V4DF_FTYPE_V4SI_V4DF_QI): Ditto.
17210         (V8DF_FTYPE_V8DF_V8DF_QI): Ditto.
17211         (V8DF_FTYPE_V8SI_V8DF_QI): Ditto.
17212         (V2DI_FTYPE_V4SI_V2DI_QI): Ditto.
17213         (V2DI_FTYPE_V8HI_V2DI_QI): Ditto.
17214         (V4DI_FTYPE_V4DF_V4DI_QI): Ditto.
17215         (V2DI_FTYPE_V2DF_V2DI_QI): Ditto.
17216         (V2DI_FTYPE_V2DI_V2DI_V2DI_QI): Ditto.
17217         (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_QI): Ditto.
17218         (V4DI_FTYPE_V4DI_V4DI_V4DI_QI): Ditto.
17219         (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_QI): Ditto.
17220         (V8DI_FTYPE_V8SI_V8DI_QI): Ditto.
17221         (V8DI_FTYPE_V8HI_V8DI_QI): Ditto.
17222         (V8DI_FTYPE_V16QI_V8DI_QI): Ditto.
17223         (V2DI_FTYPE_V16QI_V2DI_QI): Ditto.
17224         (V4DI_FTYPE_V16QI_V4DI_QI): Ditto.
17225         (V4DI_FTYPE_V4DI_V4DI_QI): Ditto.
17226         (V4DI_FTYPE_V4SI_V4DI_QI): Ditto.
17227         (V4DI_FTYPE_V8HI_V4DI_QI): Ditto.
17228         (V8DI_FTYPE_V8DI_V8DI_V8DI_QI): Ditto.
17229         (V8DF_FTYPE_V8DI_V8DF_V8DF_QI): Ditto.
17230         (V8DF_FTYPE_V8DF_V8DI_V8DF_QI): Ditto.
17231         (V4DF_FTYPE_V4DI_V4DF_V4DF_QI): Ditto.
17232         (V4DF_FTYPE_V4DF_V4DI_V4DF_QI): Ditto.
17233         (V4DF_FTYPE_V4DF_V4DF_V4DF_QI): Ditto.
17234         (V8DF_FTYPE_V8DF_V8DF_V8DF_QI): Ditto.
17235         (V16QI_FTYPE_V16QI_V16QI_V16QI_HI): Ditto.
17236         (V16HI_FTYPE_V16HI_V16HI_V16HI_HI): Ditto.
17237         (V16SI_FTYPE_V16SI_V16SI_V16SI_HI): Ditto.
17238         (V2DF_FTYPE_V2DF_V2DF_V2DF_QI): Ditto.
17239         (V32HI_FTYPE_V32HI_V32HI_V32HI_SI): Ditto.
17240         (V64QI_FTYPE_V64QI_V64QI_V64QI_DI): Ditto.
17241         (V32QI_FTYPE_V32QI_V32QI_V32QI_SI): Ditto.
17242         (V8HI_FTYPE_V8HI_V8HI_V8HI_QI): Ditto.
17243         (V4SF_FTYPE_V4SF_V4SF_QI): Ditto.
17244         (V4SF_FTYPE_V4SI_V4SF_QI): Ditto.
17245         (V8SF_FTYPE_V8SF_V8SF_QI): Ditto.
17246         (V8SF_FTYPE_V8SI_V8SF_QI): Ditto.
17247         (V16SF_FTYPE_V16SF_V16SF_HI): Ditto.
17248         (V4SI_FTYPE_V16QI_V4SI_QI): Ditto.
17249         (V4SI_FTYPE_V8HI_V4SI_QI): Ditto.
17250         (V8SI_FTYPE_V8SI_V8SI_QI): Ditto.
17251         (V8SI_FTYPE_V8HI_V8SI_QI): Ditto.
17252         (V8SI_FTYPE_V16QI_V8SI_QI): Ditto.
17253         (V4SI_FTYPE_V4SI_V4SI_V4SI_QI): Ditto.
17254         (V4SI_FTYPE_V4SI_V4SI_INT_V4SI_QI): Ditto.
17255         (V8SF_FTYPE_V8SF_V8SF_V8SF_QI): Ditto.
17256         (V8SF_FTYPE_V8SI_V8SF_V8SF_QI): Ditto.
17257         (V8SF_FTYPE_V8SF_V8SI_V8SF_QI): Ditto.
17258         (V8SI_FTYPE_V8SI_V8SI_V8SI_QI): Ditto.
17259         (V8SI_FTYPE_V8SI_V8SI_INT_V8SI_QI): Ditto.
17260         (V16SF_FTYPE_V16SF_V16SF_V16SF_HI): Ditto.
17261         (V16SF_FTYPE_V16SI_V16SF_V16SF_HI): Ditto.
17262         (V16SF_FTYPE_V16SF_V16SI_V16SF_HI): Ditto.
17263         (V16SF_FTYPE_V8SF_V16SF_HI): Ditto.
17264         (V16SF_FTYPE_V4SF_V16SF_HI): Ditto.
17265         (V8DF_FTYPE_V4DF_V8DF_QI): Ditto.
17266         (V8DF_FTYPE_V2DF_V8DF_QI): Ditto.
17267         (V16SI_FTYPE_V8SI_V16SI_HI): Ditto.
17268         (V16SI_FTYPE_V4SI_V16SI_HI): Ditto.
17269         (V16SI_FTYPE_SI_V16SI_HI): Ditto.
17270         (V16SI_FTYPE_V16HI_V16SI_HI): Ditto.
17271         (V16SI_FTYPE_V16QI_V16SI_HI): Ditto.
17272         (V8DI_FTYPE_V4DI_V8DI_QI): Ditto.
17273         (V4SI_FTYPE_V4DF_V4SI_QI): Ditto.
17274         (V8DI_FTYPE_V2DI_V8DI_QI): Ditto.
17275         (V8DI_FTYPE_DI_V8DI_QI): Ditto.
17276         (V16QI_FTYPE_V16SI_V16QI_HI): Ditto.
17277         (V16QI_FTYPE_V8DI_V16QI_QI): Ditto.
17278         (V32HI_FTYPE_V32HI_V32HI_SI): Ditto.
17279         (V32HI_FTYPE_V32QI_V32HI_SI): Ditto.
17280         (V16HI_FTYPE_V16HI_V16HI_HI): Ditto.
17281         (V16HI_FTYPE_V16QI_V16HI_HI): Ditto.
17282         (V8HI_FTYPE_V16QI_V8HI_QI): Ditto.
17283         (V8SF_FTYPE_V4SF_V8SF_QI): Ditto.
17284         (V4DF_FTYPE_V2DF_V4DF_QI): Ditto.
17285         (V8SI_FTYPE_V4SI_V8SI_QI): Ditto.
17286         (V8SI_FTYPE_SI_V8SI_QI): Ditto.
17287         (V4SI_FTYPE_V4SI_V4SI_QI): Ditto.
17288         (V4SI_FTYPE_SI_V4SI_QI): Ditto.
17289         (V4DI_FTYPE_V2DI_V4DI_QI): Ditto.
17290         (V4DI_FTYPE_DI_V4DI_QI): Ditto.
17291         (V2DI_FTYPE_V2DI_V2DI_QI): Ditto.
17292         (V2DI_FTYPE_DI_V2DI_QI): Ditto.
17293         (V64QI_FTYPE_V64QI_V64QI_DI): Ditto.
17294         (V64QI_FTYPE_V16QI_V64QI_DI): Ditto.
17295         (V64QI_FTYPE_QI_V64QI_DI): Ditto.
17296         (V32QI_FTYPE_V32QI_V32QI_SI): Ditto.
17297         (V32QI_FTYPE_V16QI_V32QI_SI): Ditto.
17298         (V32QI_FTYPE_QI_V32QI_SI): Ditto.
17299         (V16QI_FTYPE_V16QI_V16QI_HI): Ditto.
17300         (V16QI_FTYPE_QI_V16QI_HI): Ditto.
17301         (V32HI_FTYPE_V8HI_V32HI_SI): Ditto.
17302         (V32HI_FTYPE_HI_V32HI_SI): Ditto.
17303         (V16HI_FTYPE_V8HI_V16HI_HI): Ditto.
17304         (V16HI_FTYPE_HI_V16HI_HI): Ditto.
17305         (V8HI_FTYPE_V8HI_V8HI_QI): Ditto.
17306         (V8HI_FTYPE_HI_V8HI_QI): Ditto.
17307         (V64QI_FTYPE_PCV64QI_V64QI_DI): Ditto.
17308         (V32HI_FTYPE_PCV32HI_V32HI_SI): Ditto.
17309         (V32QI_FTYPE_PCV32QI_V32QI_SI): Ditto.
17310         (V16SF_FTYPE_PCV16SF_V16SF_HI): Ditto.
17311         (V8DF_FTYPE_PCV8DF_V8DF_QI): Ditto.
17312         (V16SI_FTYPE_PCV16SI_V16SI_HI): Ditto.
17313         (V16HI_FTYPE_PCV16HI_V16HI_HI): Ditto.
17314         (V16QI_FTYPE_PCV16QI_V16QI_HI): Ditto.
17315         (V8SF_FTYPE_PCV8SF_V8SF_QI): Ditto.
17316         (V8DI_FTYPE_PCV8DI_V8DI_QI): Ditto.
17317         (V8SI_FTYPE_PCV8SI_V8SI_QI): Ditto.
17318         (V8HI_FTYPE_PCV8HI_V8HI_QI): Ditto.
17319         (V4DF_FTYPE_PCV4DF_V4DF_QI): Ditto.
17320         (V4SF_FTYPE_PCV4SF_V4SF_QI): Ditto.
17321         (V4DI_FTYPE_PCV4DI_V4DI_QI): Ditto.
17322         (V4SI_FTYPE_PCV4SI_V4SI_QI): Ditto.
17323         (V2DF_FTYPE_PCV2DF_V2DF_QI): Ditto.
17324         (V2DI_FTYPE_PCV2DI_V2DI_QI): Ditto.
17325         (V16HI_FTYPE_V16SI_V16HI_HI): Ditto.
17326         (V8SI_FTYPE_V8DI_V8SI_QI): Ditto.
17327         (V8HI_FTYPE_V8DI_V8HI_QI): Ditto.
17328         (V16QI_FTYPE_V8HI_V16QI_QI): Ditto.
17329         (V16QI_FTYPE_V16HI_V16QI_HI): Ditto.
17330         (V16QI_FTYPE_V4SI_V16QI_QI): Ditto.
17331         (V16QI_FTYPE_V8SI_V16QI_QI): Ditto.
17332         (V8HI_FTYPE_V4SI_V8HI_QI): Ditto.
17333         (V8HI_FTYPE_V8SI_V8HI_QI): Ditto.
17334         (V16QI_FTYPE_V2DI_V16QI_QI): Ditto.
17335         (V16QI_FTYPE_V4DI_V16QI_QI): Ditto.
17336         (V8HI_FTYPE_V2DI_V8HI_QI): Ditto.
17337         (V8HI_FTYPE_V4DI_V8HI_QI): Ditto.
17338         (V4SI_FTYPE_V2DI_V4SI_QI): Ditto.
17339         (V4SI_FTYPE_V4DI_V4SI_QI): Ditto.
17340         (V32QI_FTYPE_V32HI_V32QI_SI): Ditto.
17341         (V2DF_FTYPE_V2DF_INT_V2DF_QI): Ditto.
17342         (V4DF_FTYPE_V4DF_INT_V4DF_QI): Ditto.
17343         (V4SF_FTYPE_V4SF_INT_V4SF_QI): Ditto.
17344         (V8SF_FTYPE_V8SF_INT_V8SF_QI): Ditto.
17345         (V4DF_FTYPE_V4DF_V4DF_INT_V4DF_QI): Ditto.
17346         (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_QI): Ditto.
17347         (V8SF_FTYPE_V8SF_V8SF_INT_V8SF_QI): Ditto.
17348         (V4SF_FTYPE_V4SF_V4SF_INT_V4SF_QI): Ditto.
17349         (VOID_FTYPE_PV8DF_V8DF_QI): Ditto.
17350         (VOID_FTYPE_PV8SI_V8DI_QI): Ditto.
17351         (VOID_FTYPE_PV8HI_V8DI_QI): Ditto.
17352         (VOID_FTYPE_PV8HI_V4DI_QI): Ditto.
17353         (VOID_FTYPE_PV8HI_V2DI_QI): Ditto.
17354         (VOID_FTYPE_PV4SI_V4DI_QI): Ditto.
17355         (VOID_FTYPE_PV4SI_V2DI_QI): Ditto.
17356         (VOID_FTYPE_PV8HI_V8SI_QI): Ditto.
17357         (VOID_FTYPE_PV8HI_V4SI_QI): Ditto.
17358         (VOID_FTYPE_PV4DF_V4DF_QI): Ditto.
17359         (VOID_FTYPE_PV2DF_V2DF_QI): Ditto.
17360         (VOID_FTYPE_PV16SF_V16SF_HI): Ditto.
17361         (VOID_FTYPE_PV8SF_V8SF_QI): Ditto.
17362         (VOID_FTYPE_PV4SF_V4SF_QI): Ditto.
17363         (VOID_FTYPE_PV8DI_V8DI_QI): Ditto.
17364         (VOID_FTYPE_PV4DI_V4DI_QI): Ditto.
17365         (VOID_FTYPE_PV2DI_V2DI_QI): Ditto.
17366         (VOID_FTYPE_PV16SI_V16SI_HI): Ditto.
17367         (VOID_FTYPE_PV16HI_V16SI_HI): Ditto.
17368         (VOID_FTYPE_PV16QI_V16SI_HI): Ditto.
17369         (VOID_FTYPE_PV16QI_V8SI_QI): Ditto.
17370         (VOID_FTYPE_PV16QI_V4SI_QI): Ditto.
17371         (VOID_FTYPE_PV16QI_V8DI_QI): Ditto.
17372         (VOID_FTYPE_PV16QI_V4DI_QI): Ditto.
17373         (VOID_FTYPE_PV16QI_V2DI_QI): Ditto.
17374         (VOID_FTYPE_PV8SI_V8SI_QI): Ditto.
17375         (VOID_FTYPE_PV4SI_V4SI_QI): Ditto.
17376         (VOID_FTYPE_PV32HI_V32HI_SI): Ditto.
17377         (VOID_FTYPE_PV16HI_V16HI_HI): Ditto.
17378         (VOID_FTYPE_PV8HI_V8HI_QI): Ditto.
17379         (VOID_FTYPE_PV64QI_V64QI_DI): Ditto.
17380         (VOID_FTYPE_PV32QI_V32QI_SI): Ditto.
17381         (VOID_FTYPE_PV16QI_V16QI_HI): Ditto.
17382         (V8DI_FTYPE_V8DI_V8DI_V8DI_INT_QI): Ditto.
17383         (V8SI_FTYPE_V8SF_V8SI_QI): Ditto.
17384         (V4SI_FTYPE_V4SF_V4SI_QI): Ditto.
17385         (V4DI_FTYPE_V4SF_V4DI_QI): Ditto.
17386         (V2DI_FTYPE_V4SF_V2DI_QI): Ditto.
17387         (V4SF_FTYPE_V4DI_V4SF_QI): Ditto.
17388         (V4SF_FTYPE_V2DI_V4SF_QI): Ditto.
17389         (V4DF_FTYPE_V4DI_V4DF_QI): Ditto.
17390         (V2DF_FTYPE_V2DI_V2DF_QI): Ditto.
17391         (V32HI_FTYPE_V32HI_INT_V32HI_SI): Ditto.
17392         (V32HI_FTYPE_V32HI_V8HI_V32HI_SI): Ditto.
17393         (V16HI_FTYPE_V16HI_INT_V16HI_HI): Ditto.
17394         (V16HI_FTYPE_V16HI_V8HI_V16HI_HI): Ditto.
17395         (V8HI_FTYPE_V8HI_INT_V8HI_QI): Ditto.
17396         (V32HI_FTYPE_V64QI_V64QI_INT_V32HI_SI): Ditto.
17397         (V16HI_FTYPE_V32QI_V32QI_INT_V16HI_HI): Ditto.
17398         (V8HI_FTYPE_V16QI_V16QI_INT_V8HI_QI): Ditto.
17399         (V64QI_FTYPE_V32HI_V32HI_V64QI_DI): Ditto.
17400         (V32QI_FTYPE_V16HI_V16HI_V32QI_SI): Ditto.
17401         (V16QI_FTYPE_V8HI_V8HI_V16QI_HI): Ditto.
17402         (V32HI_FTYPE_V16SI_V16SI_V32HI_SI): Ditto.
17403         (V16HI_FTYPE_V8SI_V8SI_V16HI_HI): Ditto.
17404         (V8HI_FTYPE_V4SI_V4SI_V8HI_QI): Ditto.
17405         (V8DI_FTYPE_V16SI_V16SI_V8DI_QI): Ditto.
17406         (V4DI_FTYPE_V8SI_V8SI_V4DI_QI): Ditto.
17407         (V2DI_FTYPE_V4SI_V4SI_V2DI_QI): Ditto.
17408         (V16SI_FTYPE_V16SI_V16SI_V16SI_INT_HI): Ditto.
17409         (V8SI_FTYPE_V8SI_V8SI_V8SI_INT_QI): Ditto.
17410         (V4DI_FTYPE_V4DI_V4DI_V4DI_INT_QI): Ditto.
17411         (V4SI_FTYPE_V4SI_V4SI_V4SI_INT_QI): Ditto.
17412         (V2DI_FTYPE_V2DI_V2DI_V2DI_INT_QI): Ditto.
17413         (V8SI_FTYPE_V8SI_V4SI_V8SI_QI): Ditto.
17414         (V4DI_FTYPE_V4DI_V2DI_V4DI_QI): Ditto.
17415         (QI_FTYPE_V4DF_V4DF_INT_QI): Ditto.
17416         (QI_FTYPE_V8SF_V8SF_INT_QI): Ditto.
17417         (QI_FTYPE_V8DF_INT_QI): Ditto.
17418         (QI_FTYPE_V4DF_INT_QI): Ditto.
17419         (QI_FTYPE_V2DF_INT_QI): Ditto.
17420         (HI_FTYPE_V16SF_INT_HI): Ditto.
17421         (QI_FTYPE_V8SF_INT_QI): Ditto.
17422         (QI_FTYPE_V4SF_INT_QI): Ditto.
17423         (V8DF_FTYPE_V8DF_V8DF_V8DF_QI_INT): Ditto.
17424
17425 2015-07-31  Richard Biener  <rguenther@suse.de>
17426
17427         * gimple-fold.c (fold_gimple_assign): Remove folding of
17428         GIMPLE_BINARY_RHS.
17429
17430 2015-07-31  Tom de Vries  <tom@codesourcery.com>
17431
17432         PR tree-optimization/66846
17433         * omp-low.c (expand_omp_taskreg) [ENABLE_CHECKING]: Call
17434         verify_loop_structure for child_cfun if !LOOPS_NEED_FIXUP.
17435         (expand_omp_target) [ENABLE_CHECKING]: Same.
17436         (execute_expand_omp) [ENABLE_CHECKING]: Call verify_loop_structure for
17437         cfun if !LOOPS_NEED_FIXUP.
17438         (expand_omp_for_static_nochunk): Handle simple latch bb.  Handle case
17439         that omp_for already has its own loop struct.
17440         * tree-parloops.c (create_phi_for_local_result)
17441         (create_call_for_reduction): Handle simple latch bb.
17442         (create_parallel_loop): Add simple latch bb to preserve
17443         LOOPS_HAVE_SIMPLE_LATCHES.  Record new exit.  Handle simple latch bb.
17444         (gen_parallel_loop): Remove call to cancel_loop_tree.
17445         (parallelize_loops): Skip loops that are inner loops of parallelized
17446         loops.
17447         (pass_parallelize_loops::execute) [ENABLE_CHECKING]: Call
17448         verify_loop_structure.
17449
17450 2015-07-30  Anatoly Sokolov  <aesok@post.ru>
17451
17452         * config/v850/v850.h (LIBCALL_VALUE): Remove macros.
17453         * config/v850/v850.md (RV_REGNUM): New constants.
17454         * config/v850/v850.c (v850_libcall_value): New functions.
17455         (v850_function_value_regno_p, v850_function_value): Use RV_REGNUM.
17456         (TARGET_LIBCALL_VALUE): Define.
17457
17458 2015-07-30  Anatoly Sokolov  <aesok@post.ru>
17459
17460         * rtl.h (lowpart_subreg): Move in file.
17461         * loop-iv.c (lowpart_subreg): Move to...
17462         * simplify-rtx.c (lowpart_subreg): ...here.
17463           (simplify_binary_operation_1): Use lowpart_subreg instead of
17464           simplify_gen_subreg.
17465         * expr.c (expand_expr_real_2): Ditto.
17466         * emit-rtl.c (gen_lowpart_common): Ditto.
17467         * combine.c (gen_lowpart_for_combine): Ditto.
17468         * cfgexpand.c (convert_debug_memory_address, expand_debug_expr,
17469           expand_debug_source_expr): Ditto.
17470
17471 2015-07-30  Richard Sandiford  <richard.sandiford@arm.com>
17472
17473         * builtins.c (HAVE_atomic_clear, gen_atomic_clear): Delete.
17474         (expand_builtin_atomic_clear): Remove support for atomic_clear
17475         pattern.
17476
17477 2015-07-30  Richard Biener  <rguenther@suse.de>
17478
17479         * gimple-fold.c (fold_gimple_assign): Only fold !tcc_comparison
17480         binaries.  Move X == 0, X == 1, X != 0, and X != 1 canonicalization ...
17481         (fold_stmt_1): ... here and work on GIMPLE directly.  Remove
17482         redundant operand canonicalization.
17483
17484 2015-07-30  David Sherwood  <david.sherwood@arm.com>
17485
17486         * config/aarch64/aarch64-simd.md (aarch64_ext<mode>): Replace call to
17487         GET_MODE_SIZE (GET_MODE_INNER (m)) with GET_MODE_UNIT_SIZE (m).
17488         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Likewise.
17489         * config/arm/arm.c (neon_valid_immediate): Likewise.
17490         * config/i386/i386.c (classify_argument, ix86_expand_int_vcond)
17491         (expand_vec_perm_blend, expand_vec_perm_pshufb): Likewise.
17492         (expand_vec_perm_pshufb2, expand_vec_perm_vpshufb2_vpermq): Likewise.
17493         (expand_vec_perm_vpshufb2_vpermq): Likewise.
17494         (expand_vec_perm_vpshufb2_vpermq_even_odd): Likewise.
17495         (expand_vec_perm_vpshufb4_vpermq2): Likewise.
17496         * config/i386/sse.md
17497         (<extract_type>_vinsert<shuffletype><extract_suf>_mask): Likewise.
17498         (*ssse3_palignr<mode>_perm): Likewise.
17499         * config/rs6000/rs6000.c (rs6000_complex_function_value): Likewise.
17500         * config/spu/spu.c (arith_immediate_p): Likewise.
17501         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
17502         (simplify_binary_operation_1, simplify_ternary_operation): Likewise.
17503
17504 2015-07-30  Richard Biener  <rguenther@suse.de>
17505
17506         * genmatch.c (decision_tree::gen_gimple): Merge with ...
17507         (decision_tree::gen_generic): ... this into ...
17508         (decision_tree::gen): ... this.
17509         (main): Adjust callers.
17510
17511 2015-07-30  Richard Biener  <rguenther@suse.de>
17512
17513         * genmatch.c (verbose): New global.
17514         (warning_at): Add overload with source_location.
17515         (capture_info::capture_info): Add bool whether generating gimple
17516         or generic.  Add gimple member.
17517         (capture_info::cinfo): Add capture member.
17518         (capture_info::walk_match): Record capture.  Warn on
17519         non-captured leafs.
17520         (capture_info::walk_c_expr): Add more fragments captures cannot
17521         escape through.  Warn on escaped captures.
17522         (dt_simplify::gen_1): Warn on operands we force to have no
17523         side-effects.
17524         (main): Initialize verbose.
17525         * match.pd: Add integer_nonzerop and HONOR_NANS predicates.
17526
17527 2015-07-30  Richard Biener  <rguenther@suse.de>
17528
17529         PR middle-end/67053
17530         * match.pd: Allow both operands to independently have conversion
17531         when simplifying compares of addresses.
17532
17533 2015-07-29  Segher Boessenkool  <segher@kernel.crashing.org>
17534
17535         PR target/66217
17536         PR target/67045
17537         * config/rs6000/rs6000.md (and<mode>3): Put a CONST_INT_P check
17538         around those cases that need one.
17539
17540 2015-07-29  Aditya Kumar  <hiraditya@msn.com>
17541
17542         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Default to 3.
17543
17544 2015-07-29  H.J. Lu  <hongjiu.lu@intel.com>
17545
17546         * config/i386/iamcu.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE):
17547         New.  Copied from config/i386/gnu-user.h.
17548         (ASM_COMMENT_START): Likewise.
17549         (DBX_REGISTER_NUMBER): Likewise.
17550
17551 2015-07-29  Richard Biener  <rguenther@suse.de>
17552
17553         * gimple-fold.c (fold_gimple_cond): Remove.
17554         (fold_stmt_1): Do not call it.
17555
17556 2015-07-29  Alan Lawrence  <alan.lawrence@arm.com>
17557
17558         * config/aarch64/aarch64-builtins.c (aarch64_fp16_type_node): New.
17559         (aarch64_init_builtins): Make aarch64_fp16_type_node, use for __fp16.
17560
17561         * config/aarch64/aarch64-modes.def: Add HFmode.
17562
17563         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
17564         __ARM_FP16_FORMAT_IEEE and __ARM_FP16_ARGS. Set bit 1 of __ARM_FP.
17565
17566         * config/aarch64/aarch64.c (aarch64_init_libfuncs,
17567         aarch64_promoted_type): New.
17568
17569         (aarch64_float_const_representable_p): Disable HFmode.
17570         (aarch64_mangle_type): Mangle half-precision floats to "Dh".
17571         (TARGET_PROMOTED_TYPE): Define to aarch64_promoted_type.
17572         (TARGET_INIT_LIBFUNCS): Define to aarch64_init_libfuncs.
17573
17574         * config/aarch64/aarch64.md (mov<mode>): Include HFmode using GPF_F16.
17575         (movhf_aarch64, extendhfsf2, extendhfdf2, truncsfhf2, truncdfhf2): New.
17576
17577         * config/aarch64/iterators.md (GPF_F16): New.
17578
17579 2015-07-29  Richard Biener  <rguenther@suse.de>
17580
17581         * match.pd: Merge address comparison patterns and make them
17582         handle some more cases.
17583
17584 2015-07-29  Richard Biener  <rguenther@suse.de>
17585
17586         * genmatch.c (c_expr::gen_transform): Error on unknown captures.
17587         (parser::parse_capture): Add bool argument on whether to reject
17588         unknown captures.
17589         (parser::parse_expr): Adjust.
17590         (parser::parse_op): Likewise.
17591         (parser::parse_pattern): Likewise.
17592
17593 2015-07-29  Richard Biener  <rguenther@suse.de>
17594
17595         * gimple-fold.c (has_use_on_stmt): New function.
17596         (replace_stmt_with_simplification): Use it to allow
17597         abnormals originally referenced in the stmt.
17598         (fold_stmt_1): Canonicalize operand order.
17599
17600 2015-07-28  David Sherwood  <david.sherwood@arm.com>
17601
17602         * config/arm/arm.c (neon_element_bits, neon_valid_immediate): Call
17603         GET_MODE_INNER unconditionally.
17604         * config/spu/spu.c (arith_immediate_p): Likewise.
17605         * config/i386/i386.c (ix86_build_signbit_mask): Likewise.
17606         * expmed.c (synth_mult): Remove check for VOIDmode result from
17607         GET_MODE_INNER.
17608         (expand_mult_const): Likewise.
17609         * fold-const.c (fold_binary_loc): Replace call to element_precision
17610         with call to GET_MODE_PRECISION.
17611         * genmodes.c (emit_mode_inner_inline): Replace void_mode->name with
17612         m->name.
17613         (emit_mode_inner): Likewise.
17614         * lto-streamer-out.c (lto_write_mode_table): Update GET_MODE_INNER
17615         result check.
17616         * machmode.h (GET_MODE_UNIT_SIZE): Simplify.
17617         (GET_MODE_UNIT_PRECISION): Likewise.
17618         * rtlanal.c (subreg_get_info): Call GET_MODE_INNER unconditionally.
17619         * simplify-rtx.c (simplify_immed_subreg): Likewise.
17620         * stor-layout.c (bitwise_type_for_mode): Update assert.
17621         (element_precision): Remove.
17622
17623 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
17624
17625         * target-insns.def (reload_load_address): New targetm instruction
17626         pattern.
17627         * reload1.c (gen_reload): Use it instead of HAVE_*/gen_* interface.
17628
17629 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
17630
17631         * target-insns.def (atomic_test_and_set): New targetm instruction
17632         pattern.
17633         * optabs.c (maybe_emit_atomic_test_and_set): Use it instead of
17634         HAVE_*/gen_* interface.
17635
17636 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
17637
17638         * target-insns.def (can_extend, ptr_extend): New targetm instruction
17639         patterns.
17640         * optabs.c (can_extend_p): Use them instead of HAVE_*/gen_* interface.
17641         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
17642         * emit-rtl.c (set_reg_attrs_from_value): Likewise.
17643         * rtlanal.c (nonzero_bits1): Likewise.
17644         (num_sign_bit_copies1): Likewise.
17645
17646 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
17647
17648         * target-insns.def (eh_return): New targetm instruction pattern.
17649         * except.c (expand_eh_return): Use it instead of HAVE_*/gen_*
17650         interface.
17651         * function.c (thread_prologue_and_epilogue_insns): Remove
17652         preprocessor condition.
17653
17654 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
17655
17656         * target-insns.def (indirect_jump): New targetm instruction pattern.
17657         * optabs.c (emit_indirect_jump): Use it instead of HAVE_*/gen_*
17658         interface.
17659
17660 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
17661
17662         * config/fr30/fr30.md (indirect_jump): Use pmode_register_operand
17663         instead of nonimmediate_operand.  Remove C condiition.
17664
17665 2015-07-28  Richard Biener  <rguenther@suse.de>
17666
17667         * match.pd: Add more simplification of address comparisons.
17668
17669 2015-07-28  Richard Biener  <rguenther@suse.de>
17670
17671         * match.pd: Re-order two cases in comparison with max/min
17672         value simplification to make it apply for bools.
17673
17674 2015-07-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17675
17676         * config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p):
17677         Handle simple SIGN_EXTEND or ZERO_EXTEND.
17678         (aarch64_rtx_costs): Properly strip extend or extract before
17679         passing down to rtx costs again.
17680
17681 2015-07-28  Nick Clifton  <nickc@redhat.com>
17682
17683         * config/rl78/rl78.c (rl78_addsi3_internal): New function.
17684         Optimizes the case where -mes0 is active and a constant symbolic
17685         address is used.
17686         * config/rl78/rl78-protos.h: Prototype the new function.
17687         * config/rl78/rl78.md (addsi3_internal_real): Call new function.
17688
17689 2015-07-28  Tom de Vries  <tom@codesourcery.com>
17690
17691         * tree-parloops.c (reduc_stmt_res): New function.
17692         (initialize_reductions, add_field_for_reduction)
17693         (create_phi_for_local_result, create_loads_for_reductions)
17694         (create_stores_for_reduction, build_new_reduction): Handle case that
17695         reduc_stmt is a phi.
17696         (gather_scalar_reductions): Allow double_reduc reductions.
17697
17698 2015-07-28  Richard Biener  <rguenther@suse.de>
17699
17700         * fold-const.c (fold_comparison): Remove equality folding
17701         of decl addresses ...
17702         * match.pd: ... here and merge with existing pattern.
17703
17704 2015-07-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
17705
17706         PR tree-optimization/66828
17707         * tree-ssa-math-opts.c (perform_symbolic_merge): Change type of inc
17708         from int64_t to uint64_t.
17709
17710 2015-07-28  Dominik Vogt  <vogt@linux.vnet.ibm.com>
17711
17712         * opts-common.c (read_cmdline_option): List DriverOnly enum values
17713         as valid only in the error message of the driver, not in the
17714         messages of the language compilers.
17715
17716 2015-07-27  Tom de Vries  <tom@codesourcery.com>
17717
17718         * tree-parloops.c (gather_scalar_reductions): Simplify function
17719         structure.
17720
17721 2015-07-27  Marek Polacek  <polacek@redhat.com>
17722
17723         * ipa-devirt.c (types_same_for_odr): Fix typo.
17724
17725 2015-07-27  Jason Merrill  <jason@redhat.com>
17726
17727         PR debug/66468
17728         * dwarf2out.c (gen_inlined_subroutine_die): Check
17729         cgraph_function_possibly_inlined_p.
17730
17731 2015-07-27  Wilco Dijkstra  <wdijkstr@arm.com>
17732
17733         * config/aarch64/aarch64.md (aarch64_lshr_sisd_or_int_<mode>3):
17734         Place integer variant first.
17735         (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
17736
17737 2015-07-27  Alan Lawrence  <alan.lawrence@arm.com>
17738
17739         PR/63870
17740         * config/arm/arm-builtins.c (enum arm_builtins):
17741         Add ARM_BUILTIN_NEON_BASE and ARM_BUILTIN_NEON_LANE_CHECK.
17742         (ARM_BUILTIN_NEON_BASE): Rename macro to....
17743         (ARM_BUILTIN_NEON_PATTERN_START): ...this.
17744         (arm_init_neon_builtins): Register __builtin_arm_lane_check.
17745         (arm_expand_neon_builtin): Handle ARM_BUILTIN_NEON_LANE_CHECK.
17746
17747 2015-07-27  Alan Lawrence  <alan.lawrence@arm.com>
17748
17749         PR/63870
17750         * config/arm/arm-builtins.c (enum arm_type_qualifiers):
17751         Add qualifier_lane_index.
17752         (arm_binop_imm_qualifiers, BINOP_IMM_QUALIFIERS): New.
17753         (arm_getlane_qualifiers): Use qualifier_lane_index.
17754         (arm_lanemac_qualifiers): Rename to...
17755         (arm_mac_n_qualifiers): ...this.
17756         (LANEMAC_QUALIFIERS): Rename to...
17757         (MAC_N_QUALIFIERS): ...this.
17758         (arm_mac_lane_qualifiers, MAC_LANE_QUALIFIERS): New.
17759         (arm_setlane_qualifiers): Use qualifier_lane_index.
17760         (arm_ternop_imm_qualifiers, TERNOP_IMM_QUALIFIERS): New.
17761         (enum builtin_arg): Add NEON_ARG_LANE_INDEX.
17762         (arm_expand_neon_args): Handle NEON_ARG_LANE_INDEX.
17763         (arm_expand_neon_builtin): Handle qualifier_lane_index.
17764
17765         * config/arm/arm-protos.h (neon_lane_bounds): Add const_tree parameter.
17766         * config/arm/arm.c (bounds_check): Likewise, improve error message.
17767         (neon_lane_bounds, neon_const_bounds): Add arguments to bounds_check.
17768         * config/arm/arm_neon_builtins.def (vshrs_n, vshru_n, vrshrs_n,
17769         vrshru_n, vshrn_n, vrshrn_n, vqshrns_n, vqshrnu_n, vqrshrns_n,
17770         vqrshrnu_n, vqshrun_n, vqrshrun_n, vshl_n, vqshl_s_n, vqshl_u_n,
17771         vqshlu_n, vshlls_n, vshllu_n): Change qualifiers to BINOP_IMM.
17772         (vsras_n, vsrau_n, vrsras_n, vrsrau_n, vsri_n, vsli_n): Change
17773         qualifiers to TERNOP_IMM.
17774         (vdup_lane): Change qualifiers to GETLANE.
17775         (vmla_lane, vmlals_lane, vmlalu_lane, vqdmlal_lane, vmls_lane,
17776         vmlsls_lane, vmlslu_lane, vqdmlsl_lane): Change qualifiers to MAC_LANE.
17777         (vmla_n, vmlals_n, vmlalu_n, vqdmlal_n, vmls_n, vmlsls_n, vmlslu_n,
17778         vqdmlsl_n): Change qualifiers to MAC_N.
17779
17780         * config/arm/neon.md (neon_vget_lane<mode>, neon_vget_laneu<mode>,
17781         neon_vget_lanedi, neon_vget_lanev2di, neon_vset_lane<mode>,
17782         neon_vset_lanedi, neon_vdup_lane<mode>, neon_vdup_lanedi,
17783         neon_vdup_lanev2di, neon_vmul_lane<mode>, neon_vmul_lane<mode>,
17784         neon_vmull<sup>_lane<mode>, neon_vqdmull_lane<mode>,
17785         neon_vq<r>dmulh_lane<mode>, neon_vq<r>dmulh_lane<mode>,
17786         neon_vmla_lane<mode>, neon_vmla_lane<mode>, neon_vmlal<sup>_lane<mode>,
17787         neon_vqdmlal_lane<mode>, neon_vmls_lane<mode>, neon_vmls_lane<mode>,
17788         neon_vmlsl<sup>_lane<mode>, neon_vqdmlsl_lane<mode>):
17789         Remove call to neon_lane_bounds.
17790
17791 2015-07-27  Wilco Dijkstra  <wdijkstr@arm.com>
17792
17793         * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
17794         Place integer variant first.
17795
17796 2015-07-27  Matthew Wahab  <matthew.wahab@arm.com>
17797
17798         * config/arm/arm-arches.def: Add "armv6kz". Replace 6ZK with 6KZ
17799         and FL_FOR_ARCH6ZK with FL_FOR_ARCH6KZ.
17800         * config/arm/arm-c.c (arm_cpu_builtins): Emit "__ARM_ARCH_6ZK__"
17801         for armv6kz targets.
17802         * config/arm/arm-cores.def: Replace 6ZK with 6KZ.
17803         * config/arm/arm-protos.h (FL_ARCH6KZ): New.
17804         (FL_FOR_ARCH6ZK): Remove.
17805         (FL_FOR_ARCH6KZ): New.
17806         (arm_arch6zk): New declaration.
17807         * config/arm/arm-tables.opt: Regenerate.
17808         * config/arm/arm.c (arm_arch6kz): New.
17809         (arm_option_override): Set arm_arch6kz.
17810         * config/arm/arm.h (BASE_ARCH_6ZK): Rename to BASE_ARCH_6KZ.
17811         * config/arm/driver-arm.c: Add comment to "armv6zk" entry.
17812         * doc/invoke.texi: Replace "armv6zk" with "armv6kz".
17813
17814 2015-07-27  Marek Polacek  <polacek@redhat.com>
17815
17816         PR c++/66555
17817         PR c/54979
17818         * doc/invoke.texi: Document -Wtautological-compare.
17819
17820 2015-07-27  Richard Biener  <rguenther@suse.de>
17821
17822         * genmatch.c (decision_tree::gen_gimple): Split out large
17823         subtrees into separate functions.
17824         (decision_tree::gen_generic): Likewise.
17825
17826 2015-07-26  Uros Bizjak  <ubizjak@gmail.com>
17827
17828         * config/alpha/alpha.c: Use SUBREG_P predicate.
17829         * config/alpha/predicates.md: Ditto.
17830
17831 2015-07-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
17832
17833         * config.host (s390*-*-*): Include driver-native.c only when
17834         building with s390* as host *and* target.
17835
17836 2015-07-25  Oleg Endo  <olegendo@gcc.gnu.org>
17837
17838         PR target/66930
17839         * config/sh/sh.c (sh_split_movrt_negc_to_movt_xor): Add missing
17840         T bit register modified_between_p check.
17841
17842 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
17843
17844         * config/i386/i386.c: Use SUBREG_P predicate.
17845         * config/i386/i386.md: Ditto.
17846         * config/i386/sse.md: Ditto.
17847         * config/i386/predicates.md: Ditto.
17848
17849 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
17850
17851         PR target/67004
17852         * config/i386/i386.h (ADJUST_INSN_LENGTH): Use NONDEBUG_INSN_P (INSN)
17853         predicate and INSN_CODE (INSN) >= 0 to check for valid instruction.
17854
17855 2015-07-25  Sebastian Pop  <s.pop@samsung.com>
17856
17857         * Makefile.in: Remove use of TREEBROWSER.
17858         * config.in: Regenerated.
17859         * configure: Regenerated.
17860         * configure.ac: Remove definition of TREEBROWSER.
17861         * tree-browser.c: Removed.
17862         * tree-browser.def: Removed.
17863
17864 2015-07-25  Sebastian Pop  <s.pop@samsung.com>
17865
17866         * graphite-scop-detection.c: Include gimple-pretty-print.h.
17867         (stmt_simple_for_scop_p): Print when a stmt is not handled in
17868         Graphite.
17869         (scopdet_basic_block_info): Print when a loop or bb cannot be
17870         represented in Graphite.
17871
17872 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
17873
17874         PR target/66648
17875         * config/i386/i386.c (ix86_expand_set_or_movmem): Emit main loop
17876         execution guard when min_size is less than size_needed.
17877
17878 2015-07-25  Sebastian Pop  <s.pop@samsung.com>
17879
17880         * doc/install.texi: Document supported versions of ISL.
17881
17882 2015-07-25  Jeff Law  <law@redhat.com>
17883
17884         Revert:
17885         PR lto/66752
17886         * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
17887         unable to find X NE 0 in the tables, return X as the simplified
17888         condition.
17889         (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
17890         in VISISTED_BBS, then return failure.  Else add nodes from NEXT_PATH
17891         to VISISTED_BBS.  */
17892         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
17893         after removing the control flow statement and unnecessary edges.
17894
17895 2015-07-25  David Edelsohn  <dje.gcc@gmail.com>
17896
17897         Revert:
17898         2015-07-23  Alexandre Oliva  <aoliva@redhat.com>
17899
17900         PR rtl-optimization/64164
17901         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
17902         * tree-ssa-copyrename.c: Removed.
17903         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
17904         -ftree-coalesce-vars.
17905         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
17906         * common.opt (ftree-copyrename): Ignore.
17907         (ftree-coalesce-inlined-vars): Likewise.
17908         * doc/invoke.texi: Remove the ignored options above.
17909         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
17910         * tree-ssa-coalesce.h: ... here.
17911         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
17912         headers required by it.
17913         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
17914         across variables when flag_tree_coalesce_vars.  Check register
17915         use and promoted modes to allow coalescing.  Moved to
17916         tree-ssa-coalesce.c.
17917         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
17918         with its member functions to tree-ssa-coalesce.c.
17919         (var_map_base_init): Likewise.  Renamed to
17920         compute_samebase_partition_bases.
17921         (partition_view_normal): Drop want_bases parameter.
17922         (partition_view_bitmap): Likewise.
17923         * tree-ssa-live.h: Adjust declarations.
17924         * tree-ssa-coalesce.c: Include explow.h.
17925         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
17926         default defs at the entry point.
17927         (dump_part_var_map): New.
17928         (compute_optimized_partition_bases): New, called by...
17929         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
17930         of compute_samebase_partition_bases.  Adjust.
17931         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
17932         * cfgexpand.c (leader_merge): New.
17933         (get_rtl_for_parm_ssa_default_def): New.
17934         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
17935         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
17936         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
17937         redundant MEM attr setting.
17938         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
17939         from...
17940         (expand_one_stack_var): ... this.  New wrapper to check and
17941         skip already expanded SSA partitions.
17942         (record_alignment_for_reg_var): New, factored out of...
17943         (expand_one_var): ... this.
17944         (expand_one_ssa_partition): New.
17945         (adjust_one_expanded_partition_var): New.
17946         (expand_one_register_var): Check and skip already expanded SSA
17947         partitions.
17948         (expand_used_vars): Don't create DECLs for anonymous SSA
17949         names.  Expand all SSA partitions, then adjust all SSA names.
17950         (pass::execute): Replace the loops that set
17951         SA.partition_to_pseudo from partition leaders and cleared
17952         DECL_RTL for multi-location variables, and that which used to
17953         rename vars and set attrs, with one that clears DECL_RTL and
17954         checks that PARMs and RESULTs default_defs match DECL_RTL.
17955         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
17956         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
17957         * explow.c (promote_ssa_mode): New.
17958         * explow.h (promote_ssa_mode): Declare.
17959         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
17960         * function.c: Include cfgexpand.h.
17961         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
17962         (use_register_for_parm_decl): Wrapper for the above to
17963         special-case the result_ptr.
17964         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
17965         (split_complex_args): Take assign_parm_data_all argument.
17966         Pass it to rtl_for_parm.  Set up rtl and context for split
17967         args.
17968         (assign_parms_augmented_arg_list): Adjust.
17969         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
17970         multiple locations.  Recognize split complex args.
17971         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
17972         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
17973         (assign_parm_setup_block): Prefer SSA-assigned location.
17974         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
17975         if stack_parm is NULL.
17976         (assign_parm_setup_stack): Prefer SSA-assigned location.
17977         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
17978         rtl before testing for pointer bounds.  Special-case result_ptr.
17979         (expand_function_start): Maybe reset DECL_RTL of result.
17980         Prefer SSA-assigned location for result and static chain.
17981         Factor out DECL_RESULT and SET_DECL_RTL.
17982         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
17983         anonymous SSA names.  Use promote_ssa_mode.
17984         (get_temp_reg): Likewise.
17985         (remove_ssa_form): Adjust.
17986         * stor-layout.c (layout_decl): Don't set mem attributes of
17987         non-MEMs.
17988         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
17989         and get its reg_usage for reg invalidation.
17990         (compute_bb_dataflow): Pass it insn.
17991         (emit_notes_in_bb): Likewise.
17992
17993 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
17994
17995         * config/i386/i386.c (ix86_va_start): Remove
17996         unneeded !TARGET_64BIT check.
17997         (ix86_gimplify_va_arg): Ditto.
17998
17999 2015-07-24  Tom de Vries  <tom@codesourcery.com>
18000
18001         * graphite-sese-to-poly.c (build_poly_scop): Always call
18002         rewrite_commutative_reductions_out_of_ssa.
18003
18004 2015-07-24  Tom de Vries  <tom@codesourcery.com>
18005
18006         * graphite-sese-to-poly.c (is_reduction_operation_p): Limit
18007         flag_associative_math to FLOAT_TYPE_P.  Honour
18008         TYPE_OVERFLOW_WRAPS for INTEGRAL_TYPE_P. Don't allow any other types.
18009
18010 2015-07-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18011
18012         PR c++/64079
18013         * toplev.c (check_global_declaration): Use DECL_SOURCE_LOCATION
18014         and "%qD" in warning_at instead of "%q+D" in warning.
18015
18016 2015-07-24  Uros Bizjak  <ubizjak@gmail.com>
18017
18018         * config/i386/i386.c (ix86_call_abi_override): Call ix86_function_abi.
18019         (ix86_function_abi): Cleanup.
18020
18021 2015-07-24  Michael Darling  <darlingm@gmail.com>
18022
18023         PR other/66259
18024         * acinclude.m4: Reflects renaming of configure.in to configure.ac
18025         * configure: Likewise
18026         * configure.ac: Likewise
18027         * doc/install.texi: Likewise
18028         * doc/tm.texi: Likewise
18029         * doc/tm.texi.in: Likewise
18030
18031 2015-07-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18032
18033         * alias.c (nonoverlapping_memrefs_p): Use std::swap instead of
18034         manually swapping values.
18035         * cse.c (fold_rtx): Likewise.
18036         * lra-eliminations.c (form_sum): Likewise.
18037
18038 2015-07-24  Uros Bizjak  <ubizjak@gmail.com>
18039
18040         PR target/64003
18041         * config/i386/i386.h (ADJUST_INSN_LENGTH): New define.
18042         * config/i386/i386.md (maybe_prefix_bnd): New attribute.
18043         (*jcc_1, *jcc_2, jump, simple_return_internal)
18044         (simple_return_pop_internal): Set attribute maybe_prefix_bnd.
18045         Set length_nobnd attribute instead of length attribute.
18046         (indirect_jump, *tablejump_1): Set attribute maybe_prefix_bnd.
18047         (length_nobnd): Remove attribute.
18048         (length): Remove length_nobnd processing.
18049
18050 2015-07-24  Nathan Sidwell  <nathan@codesourcery.com>
18051
18052         * gimplify.c (omp_default_clause): New function.  Reorganize flow
18053         for clarity. Broken out of ...
18054         (omp_notice_variable): ... here.
18055
18056 2015-07-24  Gary Funck  <gary@intrepid.com>
18057
18058         PR middle-end/66984
18059         * fold-const.c (fold_binary_loc): Call fold_convert on arguments to
18060         fold_build2 for CEIL_DIV_EXPR and FLOOR_DIV_EXPR optimization.
18061
18062 2015-07-24  Tom de Vries  <tom@codesourcery.com>
18063
18064         * tree-parloops.c (gen_parallel_loop): Add debug print for alternative
18065         exit-first loop transform.
18066
18067 2015-07-24  Cesar Philippidis  <cesar@codesourcery.com>
18068
18069         PR 66714
18070         * tree-cfg.c (struct replace_decls_d): New struct.
18071         (replace_block_vars_by_duplicates_1): New function.
18072         (replace_block_vars_by_duplicates): Use it to replace the decls
18073         in the value exprs by duplicates.
18074
18075 2015-07-24  Szabolcs Nagy  <szabolcs.nagy@arm.com>
18076
18077         * config/aarch64/aarch64-elf-raw.h (LINK_SPEC): Handle -h, -static,
18078         -shared, -symbolic, -rdynamic.
18079
18080 2015-07-24  Szabolcs Nagy  <szabolcs.nagy@arm.com>
18081
18082         PR target/65711
18083         * config/aarch64/aarch64-linux.h (LINUX_TARGET_LINK_SPEC): Move
18084         -dynamic-linker within %{!static %{!shared, and -rdynamic within
18085         %{!static.
18086
18087 2015-07-24  Ilya Enkovich  <enkovich.gnu@gmail.com>
18088
18089         PR ipa/66566
18090         * ipa-inline-analysis.c (estimate_calls_size_and_time): Check
18091         edge summary is available.
18092
18093 2015-07-24  Richard Biener  <rguenther@suse.de>
18094
18095         * genmatch.c (struct dt_node): Add statistic fields.
18096         (dt_node::analyze): New method.
18097         (decision_tree::gen_gimple): Call analyze on the root node
18098         and print statistics to stderr.
18099         (decision_tree::gen_generic): Likewise.
18100
18101 2015-07-24  Richard Biener  <rguenther@suse.de>
18102
18103         * fold-const.c (fold_binary_loc): Move simplifying of comparisons
18104         against the highest or lowest possible integer ...
18105         * match.pd: ... as patterns here.
18106
18107 2015-07-24  Richard Biener  <rguenther@suse.de>
18108
18109         * genmatch.c (struct capture_info): Add same_as field.
18110         (capture_info::capture_info): Initialize same_as.
18111         (capture_info::walk_match): Compute same_as.
18112         (capture_info::walk_result): Compute stuff for the leader.
18113         (capture_info::walk_c_expr): Likewise.
18114         (dt_simplify::gen_1): Only look at leaders when deciding
18115         to force no side-effects or emit side-effects of omitted operands.
18116
18117 2015-07-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
18118
18119         * config/s390/s390.c (s390_save_gprs_to_fprs): Add CFA_REGISTER
18120         reg note to the GPR -> FPR save instructions.
18121
18122 2015-07-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
18123
18124         * config/s390/s390.c (s390_rtx_costs): Make risbg patterns
18125         cheaper.
18126         (s390_expand_insv): Don't generate risbg pattern for constant zero
18127         sources.
18128         * config/s390/s390.md ("*insv<mode>_zEC12_appendbitsleft")
18129         ("*insv<mode>_z10_appendbitsleft"): New pattern definitions.  New
18130         splitters.
18131
18132 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
18133
18134         * config/s390/s390.c (s390_reorg): Clean up handling of processors
18135         with
18136         -mtune=
18137         (s390_issue_rate): Likewise.
18138         (s390_sched_reorder): Likewise.
18139         (s390_sched_variable_issue): Likewise.
18140         (s390_loop_unroll_adjust): Likewise.
18141         (s390_option_override):  Likewise.
18142
18143 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
18144
18145         * config/s390/driver-native.c (s390_host_detect_local_cpu): Handle
18146         processor capabilities with -march=native.
18147         * config/s390/s390.h (MARCH_MTUNE_NATIVE_SPECS): Likewise.
18148         (DRIVER_SELF_SPECS): Likewise.  Join specs for 31 and 64 bit.
18149         (S390_TARGET_BITS_STRING): Macro to simplify specs.
18150
18151 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
18152
18153         * config/s390/s390.c (s390_issue_rate): Handle
18154         PROCESSOR_2094_Z9_EC.
18155         (s390_option_override): Likewise.
18156         (s390_adjust_priority): Likewise.
18157
18158 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
18159
18160         * config/s390/s390.h: S390: Do not define EXTRA_SPEC_FUNCTIONS
18161         when cross compiling.
18162
18163 2015-07-24  Richard Biener  <rguenther@suse.de>
18164
18165         * fold-const.c (maybe_canonicalize_comparison_1): Move
18166         A code CST canonicalization ...
18167         * match.pd: ... to a pattern here.
18168
18169 2015-07-24  Jiong Wang  <jiong.wang@arm.com>
18170
18171         Revert:
18172         2015-07-22  Jiong Wang  <jiong.wang@arm.com>
18173         PR target/63521
18174         * config/aarch64/aarch64.h (REG_ALLOC_ORDER): Define.
18175         (HONOR_REG_ALLOC_ORDER): Define.
18176
18177 2015-07-24  Richard Biener  <rguenther@suse.de>
18178
18179         * genmatch.c (add_operator): Allow SSA_NAME as predicate.
18180         * fold-const.c (fold_comparison): Move parameter does not
18181         alias &local simplification ...
18182         * match.pd: ... as a pattern here.
18183
18184 2015-07-24  Richard Biener  <rguenther@suse.de>
18185
18186         * gimple-fold.c (replace_stmt_with_simplification): Special-case
18187         valueizing call operands.
18188         * gimple-match-head.c (maybe_push_res_to_seq): Take
18189         number of call arguments from ops array.
18190         (do_valueize): New function.
18191         (gimple_simplify): Return true if valueization changed
18192         any operand even if the result didn't simplify further.
18193
18194 2015-07-24  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
18195
18196         PR middle-end/25530
18197         * match.pd (mult (trunc_div @0 integer_pow2p@1) @1) : New simplifier.
18198
18199 2015-07-24  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
18200
18201         PR middle-end/25529
18202         * match.pd (trunc_div (mult @0 integer_pow2p@1) @1) : New simplifier.
18203
18204 2015-07-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
18205
18206         * config/arm/arm.c (arm_emit_movpair): Add REG_EQUAL notes to
18207         instruction.
18208
18209 2015-07-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
18210
18211         * cse.c (cse_insn): Fix missing check for STRICT_LOW_PART and minor
18212         clean up.
18213
18214 2015-07-23  Uros Bizjak  <ubizjak@gmail.com>
18215
18216         * config/i386/i386.c (ix86_build_builtin_va_list_64): Rename
18217         from ix86_build_builtin_va_list_abi.  Handle only 64bit non-MS_ABI
18218         targets here.
18219         (ix86_build_builtin_va_list): Rewrite sysv_va_list_type_node and
18220         ms_va_list_type_node initialization.
18221
18222 2015-07-23  Jeff Law  <law@redhat.com>
18223
18224         PR lto/66752
18225         * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
18226         unable to find X NE 0 in the tables, return X as the simplified
18227         condition.
18228         (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
18229         in VISISTED_BBS, then return failure.  Else add nodes from NEXT_PATH
18230         to VISISTED_BBS.  */
18231         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
18232         after removing the control flow statement and unnecessary edges.
18233
18234 2015-07-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
18235
18236         * tree-pass.h (get_current_pass_name): Removed.
18237
18238 2015-07-23  Alexandre Oliva  <aoliva@redhat.com>
18239
18240         PR rtl-optimization/64164
18241         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
18242         * tree-ssa-copyrename.c: Removed.
18243         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
18244         -ftree-coalesce-vars.
18245         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
18246         * common.opt (ftree-copyrename): Ignore.
18247         (ftree-coalesce-inlined-vars): Likewise.
18248         * doc/invoke.texi: Remove the ignored options above.
18249         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
18250         * tree-ssa-coalesce.h: ... here.
18251         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
18252         headers required by it.
18253         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
18254         across variables when flag_tree_coalesce_vars.  Check register
18255         use and promoted modes to allow coalescing.  Moved to
18256         tree-ssa-coalesce.c.
18257         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
18258         with its member functions to tree-ssa-coalesce.c.
18259         (var_map_base_init): Likewise.  Renamed to
18260         compute_samebase_partition_bases.
18261         (partition_view_normal): Drop want_bases parameter.
18262         (partition_view_bitmap): Likewise.
18263         * tree-ssa-live.h: Adjust declarations.
18264         * tree-ssa-coalesce.c: Include explow.h.
18265         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
18266         default defs at the entry point.
18267         (dump_part_var_map): New.
18268         (compute_optimized_partition_bases): New, called by...
18269         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
18270         of compute_samebase_partition_bases.  Adjust.
18271         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
18272         * cfgexpand.c (leader_merge): New.
18273         (get_rtl_for_parm_ssa_default_def): New.
18274         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
18275         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
18276         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
18277         redundant MEM attr setting.
18278         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
18279         from...
18280         (expand_one_stack_var): ... this.  New wrapper to check and
18281         skip already expanded SSA partitions.
18282         (record_alignment_for_reg_var): New, factored out of...
18283         (expand_one_var): ... this.
18284         (expand_one_ssa_partition): New.
18285         (adjust_one_expanded_partition_var): New.
18286         (expand_one_register_var): Check and skip already expanded SSA
18287         partitions.
18288         (expand_used_vars): Don't create DECLs for anonymous SSA
18289         names.  Expand all SSA partitions, then adjust all SSA names.
18290         (pass::execute): Replace the loops that set
18291         SA.partition_to_pseudo from partition leaders and cleared
18292         DECL_RTL for multi-location variables, and that which used to
18293         rename vars and set attrs, with one that clears DECL_RTL and
18294         checks that PARMs and RESULTs default_defs match DECL_RTL.
18295         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
18296         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
18297         * explow.c (promote_ssa_mode): New.
18298         * explow.h (promote_ssa_mode): Declare.
18299         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
18300         * function.c: Include cfgexpand.h.
18301         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
18302         (use_register_for_parm_decl): Wrapper for the above to
18303         special-case the result_ptr.
18304         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
18305         (split_complex_args): Take assign_parm_data_all argument.
18306         Pass it to rtl_for_parm.  Set up rtl and context for split
18307         args.
18308         (assign_parms_augmented_arg_list): Adjust.
18309         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
18310         multiple locations.  Recognize split complex args.
18311         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
18312         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
18313         (assign_parm_setup_block): Prefer SSA-assigned location.
18314         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
18315         if stack_parm is NULL.
18316         (assign_parm_setup_stack): Prefer SSA-assigned location.
18317         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
18318         rtl before testing for pointer bounds.  Special-case result_ptr.
18319         (expand_function_start): Maybe reset DECL_RTL of result.
18320         Prefer SSA-assigned location for result and static chain.
18321         Factor out DECL_RESULT and SET_DECL_RTL.
18322         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
18323         anonymous SSA names.  Use promote_ssa_mode.
18324         (get_temp_reg): Likewise.
18325         (remove_ssa_form): Adjust.
18326         * stor-layout.c (layout_decl): Don't set mem attributes of
18327         non-MEMs.
18328         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
18329         and get its reg_usage for reg invalidation.
18330         (compute_bb_dataflow): Pass it insn.
18331         (emit_notes_in_bb): Likewise.
18332
18333 2015-07-23  Segher Boessenkool  <segher@kernel.crashing.org>
18334
18335         PR target/66217
18336         * config/rs6000/rs6000-protos.h (rs6000_emit_2insn_and): Change
18337         prototype.
18338         * config/rs6000/rs6000.c (rs6000_emit_dot_insn): New function.
18339         (rs6000_emit_2insn_and): Handle dot forms.
18340         * config/rs6000/rs6000.md (and<mode>3): Adjust.
18341         (*and<mode>3_2insn): Remove TODO.  Adjust.  Add "type" attr.
18342         (*and<mode>3_2insn_dot, *and<mode>3_2insn_dot2): New.
18343
18344 2015-07-23  Richard Biener  <rguenther@suse.de>
18345
18346         * generic-match-head.c: Include cgraph.h.
18347         * gimple-match-head.c: Likewise.
18348         * tree-ssa-sccvn.c (free_scc_vn): Guard against newly created
18349         SSA names.
18350         * fold-const.c (fold_binary_loc): Move &A ==/!= &B simplification...
18351         * match.pd: ...to a pattern here.  Add &A ==/!= 0 simplification
18352         pattern.
18353
18354 2015-07-23  Richard Biener  <rguenther@suse.de>
18355
18356         * gimple-fold.c (fold_gimple_cond): Do not require folding
18357         results to pass valid_gimple_rhs_p.
18358         * tree-cfg.h (fold_cond_expr_cond): Remove.
18359         * tree-cfg.c (fold_cond_expr_cond): Likewise.
18360         (make_edges): Do not call it.
18361         * tree-inline.c (tree_function_versioning): Likewise.
18362
18363 2015-07-23  Tom de Vries  <tom@codesourcery.com>
18364
18365         * tree-parloops.c (gather_scalar_reductions): Add arg to call to
18366         vect_force_simple_reduction.
18367         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Same.
18368         (vect_is_simple_reduction_1): Add and handle
18369         need_wrapping_integral_overflow parameter.
18370         (vect_is_simple_reduction, vect_force_simple_reduction): Add and pass
18371         need_wrapping_integral_overflow parameter.
18372         (vectorizable_reduction): Add arg to call to vect_is_simple_reduction.
18373         * tree-vectorizer.h (vect_force_simple_reduction): Add parameter to
18374         decl.
18375
18376 2015-07-23  Yuri Rumyantsev  <ysrumyan@gmail.com>
18377
18378         PR tree-optimization/66926,66951
18379         * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Delete
18380         INNER_LOOP and fix up condition for renaming virtual operands.
18381
18382 2015-07-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18383
18384         * combine.c (try_combine): Use std::swap instead of manually
18385         swapping.
18386
18387 2015-07-23  Prachi Godbole  <prachi.godbole@imgtec.com>
18388
18389         * config/mips/i6400.md: New file.
18390         * config/mips/mips-cpus.def (mips32r6): Change to PROCESSOR_I6400.
18391         (mips64r6): Likewise.
18392         (i6400): Define.
18393         * config/mips/mips-tables.opt: Regenerate.
18394         * config/mips/mips.c (mips_rtx_cost_data): Add I6400 processor.
18395         (mips_issue_rate): Add support for i6400.
18396         (mips_multipass_dfa_lookahead): Likewise.
18397         * config/mips/mips.h (TUNE_I6400): Define.
18398         * config/mips/mips.md: Include i6400.md.
18399         (processor): Add i6400.
18400         * doc/invoke.texi (-march=@var{arch}): Add i6400.
18401
18402 2015-07-23  Richard Biener  <rguenther@suse.de>
18403
18404         PR middle-end/66916
18405         * match.pd: Guard widen and sign-change comparison simplification
18406         with single_use.
18407
18408 2015-07-23  Richard Biener  <rguenther@suse.de>
18409
18410         PR tree-optimization/66945
18411         * tree-ssa-propagate.c (substitute_and_fold_dom_walker
18412         ::before_dom_children): Force the propagators idea of
18413         non-executable edges to materialize, not what the folder
18414         chooses.
18415
18416 2015-07-23  Richard Biener  <rguenther@suse.de>
18417
18418         * gimple.h (gimple_cond_make_false): Use 0 != 0.
18419         (gimple_cond_make_true): Use 1 != 0.
18420
18421 2015-07-22  DJ Delorie  <dj@redhat.com>
18422
18423         * config/msp430/t-msp430 (MULTILIB_DIRNAMES): Remove trailing
18424         slashes.
18425
18426         * config/msp430/msp430.md (ashlhi3): Optimize shifts of subregs.
18427         (ashrhi3): Likewise.
18428         (lshrhi3): Likewise.
18429         (movhi): Take advantage of zero-extend to load small constants.
18430         (movpsi): Likewise.
18431         (and<mode>3): Likewise.
18432         (zero_extendqihi2): Likewise.
18433         (zero_extendqisi2): New.
18434         * config/msp430/constraints.md (N,O): New.
18435         * config/msp430/msp430.h (WORD_REGISTER_OPERATIONS): Define.
18436
18437 2015-07-22  Uros Bizjak  <ubizjak@gmail.com>
18438
18439         PR target/66954
18440         * config/i386/i386.c (get_builtin_code_for_version): Add P_AES
18441         to enum feature_priority and feature_list.
18442         (fold_builtin_cpu): Add F_AES to enum processor_features
18443         and isa_names_table.
18444
18445 2015-07-22  Ilya Enkovich  <enkovich.gnu@gmail.com>
18446
18447         PR driver/66737
18448         * config/i386/linux-common.h (MPX_SPEC): Use linker option
18449         for 64bit target only.
18450
18451 2015-07-22  Bernd Schmidt  <bernds@codesourcery.com>
18452
18453         * config/nvptx/nvptx.c: Expand some comments.
18454
18455 2015-07-22  James Greenhalgh  <james.greenhalgh@arm.com>
18456
18457         * config/arm/cortex-a53 (cortex_53_advsimd): Rename to...
18458         (cortex_a53_advsimd): ...This.
18459
18460 2015-07-22  Richard Biener  <rguenther@suse.de>
18461
18462         * genmatch.c (expr::gen_transform): Clarify error message
18463         and display location.
18464
18465 2015-07-22  Richard Biener  <rguenther@suse.de>
18466
18467         * genmatch.c (struct operand): Add location member.
18468         (predicate, expr, c_expr, capture, if_expr, with_expr): Adjust
18469         constructors.
18470         (struct simplify): Remove match_location and result_location
18471         members.
18472         (elsehwere): Adjust.
18473
18474 2015-07-22  Prachi Godbole  <prachi.godbole@imgtec.com>
18475
18476         * config/mips/m5100.md: New file.
18477         * config/mips/mips-cpus.def (m5100, m5101): Define.
18478         * config/mips/mips-tables.opt: Regenerate.
18479         * config/mips/mips.c (mips_rtx_cost_data): Add costs for m5100.
18480         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=m5100 and
18481         -march=m5101 to -mips32r5.
18482         (MIPS_ARCH_FLOAT_SPEC): Map -m5101 to -msoft-float.
18483         (MIPS_ISA_NAN2008_SPEC): Map -march=m51* to -mnan=2008 if
18484         !-msoft-float.
18485         * config/mips/mips.md: Include m5100.md.
18486         (processor): Add m5100.
18487         * doc/invoke.texi (-march=@var{arch}): Add m5100, m5101.
18488
18489 2015-07-22  Robert Suchanek  <robert.suchanek@imgtec.com>
18490
18491         * config/mips/mips-cpus.def (interaptiv): Define.
18492         * config/mips/mips-tables.opt: Regenerate.
18493         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=interaptiv to
18494         -mips32r2.
18495         (BASE_DRIVER_SELF_SPECS): Likewise but map to -mdsp.
18496         * doc/invoke.texi (-march=@var{arch}): Add interaptiv.
18497
18498 2015-07-22  Jiong Wang  <jiong.wang@arm.com>
18499
18500         PR target/63521
18501         * config/aarch64/aarch64.h (REG_ALLOC_ORDER): Define.
18502         (HONOR_REG_ALLOC_ORDER): Define.
18503
18504 2015-07-22  Richard Biener  <rguenther@suse.de>
18505
18506         PR tree-optimization/66952
18507         * tree-ssa-ifcombine.c (pass_tree_ifcombine::execute): For
18508         blocks we end up executing unconditionally reset all SSA
18509         info such as range and alignment.
18510         * tree-ssanames.h (reset_flow_sensitive_info): Declare.
18511         * tree-ssanames.c (reset_flow_sensitive_info): New function.
18512
18513 2015-07-22  Charles Baylis  <charles.baylis@linaro.org>
18514
18515         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): Fix
18516         typo in attribute.
18517
18518 2015-07-22  Richard Biener  <rguenther@suse.de>
18519
18520         * genmatch.c (parser::parse_result): Properly handle
18521         match with result operands and conditions.
18522
18523 2015-07-22  Charles Baylis  <charles.baylis@linaro.org>
18524
18525         PR target/63870
18526         * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
18527         Add qualifier_struct_load_store_lane_index.
18528         (aarch64_types_loadstruct_lane_qualifiers): Use
18529         qualifier_struct_load_store_lane_index for lane index argument for
18530         last argument.
18531         (aarch64_types_storestruct_lane_qualifiers): Ditto.
18532         (builtin_simd_arg): Add SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
18533         (aarch64_simd_expand_args): Add new argument describing mode of
18534         builtin. Check lane bounds for arguments with
18535         SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
18536         (aarch64_simd_expand_builtin): Emit error for incorrect lane indices
18537         if marked with SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
18538         (aarch64_simd_expand_builtin): Handle arguments with
18539         qualifier_struct_load_store_lane_index. Pass machine mode of builtin to
18540         aarch64_simd_expand_args.
18541         * config/aarch64/aarch64-simd-builtins.def: Declare ld[234]_lane and
18542         vst[234]_lane with BUILTIN_VALLDIF.
18543         * config/aarch64/aarch64-simd.md:
18544         (aarch64_vec_load_lanesoi_lane<mode>): Use VALLDIF iterator. Perform
18545         endianness reversal on lane index.
18546         (aarch64_vec_load_lanesci_lane<mode>): Ditto.
18547         (aarch64_vec_load_lanesxi_lane<mode>): Ditto.
18548         (vec_store_lanesoi_lane<mode>): Use VALLDIF iterator.
18549         (vec_store_lanesci_lane<mode>): Ditto.
18550         (vec_store_lanesxi_lane<mode>): Ditto.
18551         (aarch64_ld2_lane<mode>): Use VALLDIF iterator. Remove endianness
18552         reversal of lane index.
18553         (aarch64_ld3_lane<mode>): Ditto.
18554         (aarch64_ld4_lane<mode>): Ditto.
18555         (aarch64_st2_lane<mode>): Ditto.
18556         (aarch64_st3_lane<mode>): Ditto.
18557         (aarch64_st4_lane<mode>): Ditto.
18558         * config/aarch64/arm_neon.h (__LD2_LANE_FUNC): Rename mode parameter
18559         to qmode. Add new mode parameter. Update uses.
18560         (__LD3_LANE_FUNC): Ditto.
18561         (__LD4_LANE_FUNC): Ditto.
18562         (__ST2_LANE_FUNC): Ditto.
18563         (__ST3_LANE_FUNC): Ditto.
18564         (__ST4_LANE_FUNC): Ditto.
18565
18566 2015-07-22  Jonathan Wakely  <jwakely@redhat.com>
18567
18568         * doc/invoke.texi (Language Independent Options): Rename node to
18569         Diagnostic Message Formatting Options.
18570
18571 2015-07-21  Vladimir Makarov  <vmakarov@redhat.com>
18572
18573         PR ipa/66424.
18574         * lra-remat.c (operand_to_remat): Prevent using insns with input
18575         subregs processed separately by IRA.
18576
18577 2015-07-21  Andrew MacLeod  <amacleod@redhat.com>
18578
18579         * ssa-iterators.h (has_zero_uses, has_single_use): Implement as
18580         straight loops.
18581         (single_imm_use): Check for iterator node.
18582         (num_imm_uses): Likewise.
18583         * tree-ssa-operands.c (has_zero_uses_1): Delete.
18584         (single_imm_use_1): Check for iterator node.
18585
18586 2015-07-21  Mike Frysinger  <vapier@gentoo.org>
18587             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
18588
18589         * configure.ac: Add check for new options in isl-0.15.
18590         * config.in, configure: Rebuilt.
18591         * graphite-blocking.c: Include <isl/constraint.h>
18592         * graphite-interchange.c,  graphite-poly.c: Likewise.
18593         * graphhite-scop-detection.c, graphite-sese-to-poly.c: Likewise.
18594         * graphite.c: Likewise.
18595         * graphite-isl-ast-to-gimple.c: Include <isl/constraint.h> and
18596         <isl/union_set.h>.
18597         * graphite-dependences.c: Include <isl/constraint.h>.
18598         (max_number_of_out_dimensions): Returns isl_stat.
18599         (extend_schedule_1): Likewise
18600         (extend_schedule): Corresponding changes.
18601         * graphite-optimize-isl.c: Include <isl/constraint.h> and
18602         <isl/union_set.h>.
18603         (getSingleMap): Change return type of isl_stat.
18604         (optimize_isl): Conditionally use
18605         isl_options_set_schedule_serialize_sccs.
18606         * graphite-poly.h (isl_stat, isl_stat_ok): Define fallbacks
18607         if not HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS.
18608
18609 2015-07-21  Georg-Johann Lay  <avr@gjlay.de>
18610
18611         PR target/66956
18612         * config/avr/avr-dimode.md (<extend_u>mulsidi3_insn)
18613         (<extend_u>mulsidi3): Don't use if !AVR_HAVE_MUL.
18614
18615 2015-07-21  Richard Biener  <rguenther@suse.de>
18616
18617         PR tree-optimization/66948
18618         * genmatch.c (capture_info::walk_match): Also recurse to
18619         captures.  Properly compute expr state from captures of
18620         captures.
18621         * match.pd: Add single-use guards to
18622         (X & C2) >> C1 into (X >> C1) & (C2 >> C1) transform.
18623
18624 2015-07-21  Nathan Sidwell  <nathan@codesourcery.com>
18625
18626         * config/nvptx/mkoffload.c (process): Add static destructor call.
18627
18628 2015-07-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18629
18630         PR middle-end/66915
18631         * match.pd (A - B -> A + (-B)): Don't allow folding
18632         when type if a fixed-point type.
18633
18634 2015-07-20  DJ Delorie  <dj@redhat.com>
18635
18636         * config/rl78/rl78-real.md (andqi3_real): Expand operands for clr1.
18637         (iorqi3_real): Likewise for set1.
18638
18639 2015-07-20  Uros Bizjak  <ubizjak@gmail.com>
18640
18641         * config/i386/i386.c (ix86_md_asm_adjust): Handle DImode dest_mode
18642         for !TARGET_64BIT.
18643
18644 2015-07-20  Aditya Kumar  <hiraditya@msn.com>
18645
18646         * graphite-isl-ast-to-gimple.c:
18647         Refactor so that each function can access 'region'. This will help
18648         maintain a parameter rename_map within a region.
18649
18650 2015-07-20  Segher Boessenkool  <segher@kernel.crashing.org>
18651
18652         * config/rs6000/rs6000.md (*lt0_disi): New.
18653
18654 2015-07-20  Segher Boessenkool  <segher@kernel.crashing.org>
18655
18656         PR target/66217
18657         * config/rs6000/constraints.md ("S", "T", "t"): Delete.  Update
18658         "available letters" comment.
18659         * config/rs6000/predicates.md (mask_operand, mask_operand_wrap,
18660         mask64_operand, mask64_2_operand, any_mask_operand, and64_2_operand,
18661         and_2rld_operand):  Delete.
18662         (and_operand): Adjust.
18663         (rotate_mask_operator): New.
18664         * config/rs6000/rs6000-protos.h (build_mask64_2_operands,
18665         includes_lshift_p, includes_rshift_p, includes_rldic_lshift_p,
18666         includes_rldicr_lshift_p, insvdi_rshift_rlwimi_p, extract_MB,
18667         extract_ME): Delete.
18668         (rs6000_is_valid_mask, rs6000_is_valid_and_mask,
18669         rs6000_is_valid_shift_mask, rs6000_is_valid_insert_mask,
18670         rs6000_insn_for_and_mask, rs6000_insn_for_shift_mask,
18671         rs6000_insn_for_insert_mask, rs6000_is_valid_2insn_and,
18672         rs6000_emit_2insn_and): New.
18673         * config/rs6000/rs6000.c (num_insns_constant): Adjust.
18674         (build_mask64_2_operands, includes_lshift_p, includes_rshift_p,
18675         includes_rldic_lshift_p, includes_rldicr_lshift_p,
18676         insvdi_rshift_rlwimi_p, extract_MB, extract_ME): Delete.
18677         (rs6000_is_valid_mask, rs6000_is_valid_and_mask,
18678         rs6000_insn_for_and_mask, rs6000_is_valid_shift_mask,
18679         s6000_insn_for_shift_mask, rs6000_is_valid_insert_mask,
18680         rs6000_insn_for_insert_mask, rs6000_is_valid_2insn_and,
18681         rs6000_emit_2insn_and): New.
18682         (print_operand) <'b', 'B', 'm', 'M', 's', 'S', 'W'>: Delete.
18683         (rs6000_rtx_costs) <CONST_INT>: Delete mask_operand and mask64_operand
18684         handling.
18685         <NOT>: Don't fall through to next case.
18686         <AND>: Handle the various rotate-and-mask cases directly.
18687         <IOR>: Always cost as one insn.
18688         * config/rs6000/rs6000.md (splitter for bswap:SI): Adjust.
18689         (and<mode>3): Adjust expander for the new patterns.
18690         (and<mode>3_imm, and<mode>3_imm_dot, and<mode>3_imm_dot2,
18691         and<mode>3_imm_mask_dot, and<mode>3_imm_mask_dot2): Adjust condition.
18692         (*and<mode>3_imm_dot_shifted): New.
18693         (*and<mode>3_mask): Delete, rewrite as ...
18694         (and<mode>3_mask): ... New.
18695         (*and<mode>3_mask_dot, *and<mode>3_mask_dot): Rewrite.
18696         (andsi3_internal0_nomc): Delete.
18697         (*andsi3_internal6): Delete.
18698         (*and<mode>3_2insn): New.
18699         (insv, insvsi_internal, *insvsi_internal1, *insvsi_internal2,
18700         *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
18701         *insvsi_internal6, insvdi_internal, *insvdi_internal2,
18702         *insvdi_internal3): Delete.
18703         (*rotl<mode>3_mask, *rotl<mode>3_mask_dot, *rotl<mode>3_mask_dot2,
18704         *rotl<mode>3_insert, *rotl<mode>3_insert_2, *rotl<mode>3_insert_3,
18705         *rotl<mode>3_insert_4, two splitters for multi-precision shifts,
18706         *ior<mode>_mask): New.
18707         (extzv, extzvdi_internal, *extzvdi_internal1, *extzvdi_internal2,
18708         *rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
18709         *ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
18710         *lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
18711         Delete.
18712         (ashr<mode>3): Delete expander.
18713         (*ashr<mode>3): Rename to ...
18714         (ashr<mode>3): ... This.
18715         (ashrdi3_no_power, *ashrdisi3_noppc64be): Delete.
18716         (*rotldi3_internal4, *rotldi3_internal5 and split,
18717         *rotldi3_internal6 and split, *ashldi3_internal4, ashldi3_internal5
18718         and split, *ashldi3_internal6 and split, *ashldi3_internal7,
18719         ashldi3_internal8 and split, *ashldi3_internal9 and split): Delete.
18720         (*anddi3_2rld, *anddi3_2rld_dot, *anddi3_2rld_dot2): Delete.
18721         (splitter for loading a mask): Adjust.
18722         * doc/md.texi (Machine Constraints): Remove q, S, T, t constraints.
18723
18724 2015-07-20  Marek Polacek  <polacek@redhat.com>
18725
18726         * genemit.c (print_code, gen_exp, gen_insn, gen_expand, gen_split,
18727         output_add_clobbers, output_added_clobbers_hard_reg_p,
18728         gen_rtx_scratch): Remove declarations.
18729
18730 2015-07-20  Marek Polacek  <polacek@redhat.com>
18731
18732         PR c++/55095
18733         * doc/invoke.texi: Document -Wshift-overflow and -Wshift-overflow=.
18734
18735 2015-07-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18736
18737         * simplify-rtx.c (simplify_unary_operation_1, NEG case):
18738         (neg (x ? (neg y) : y)) -> !x ? (neg y) : y.
18739
18740 2015-07-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18741
18742         * combine.c (combine_simplify_rtx): Move simplification step
18743         before various transformations/substitutions.
18744
18745 2015-07-20  Mikhail Maltsev  <maltsevm@gmail.com>
18746
18747         * wide-int.h (struct binary_traits): Fix partial specialization syntax.
18748         (struct int_traits): Likewise.
18749
18750 2015-07-18  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
18751
18752         * vmsdbgout.c (vmsdbgout_decl): Change name of prototyped
18753         function to vmsdbgout_function_decl.
18754
18755 2015-07-18  Uros Bizjak  <ubizjak@gmail.com>
18756
18757         PR target/66922
18758         * config/i386/i386.c (ix86_expand_pextr): Reject extractions
18759         from misaligned positions.
18760         (ix86_expand_pinsr): Reject insertions to misaligned positions.
18761
18762 2015-07-18  Sebastian Pop  <s.pop@samsung.com>
18763
18764         PR middle-end/46851
18765         PR middle-end/60340
18766         * Makefile.in: Removed omega.o.
18767         * common.opt: Document flag fcheck-data-deps as deprecated.
18768         * doc/invoke.texi: Remove documentation for fcheck-data-deps and
18769         its associated params: omega-max-vars, omega-max-geqs,
18770         omega-max-eqs, omega-max-wild-cards, omega-hash-table-size,
18771         omega-max-keys, omega-eliminate-redundant-constraints.
18772         * doc/loop.texi: Remove all the section on Omega.
18773         * graphite-blocking.c: Include missing params.h: it used to be
18774         included through tree-data-ref.h and omega.h.
18775         * graphite-isl-ast-to-gimple.c: Same.
18776         * graphite-optimize-isl.c: Same.
18777         * graphite-sese-to-poly.c: Same.
18778         * graphite.c: Same.
18779         * omega.c: Remove.
18780         * omega.h: Remove.
18781         * params.def: Removed PARAM_OMEGA_MAX_VARS, PARAM_OMEGA_MAX_GEQS,
18782         PARAM_OMEGA_MAX_EQS, PARAM_OMEGA_MAX_WILD_CARDS,
18783         PARAM_OMEGA_HASH_TABLE_SIZE, PARAM_OMEGA_MAX_KEYS, and
18784         PARAM_OMEGA_ELIMINATE_REDUNDANT_CONSTRAINTS.
18785         * passes.def: Remove pass_check_data_deps.
18786         * tree-data-ref.c (dump_affine_function): Declare DEBUG_FUNCTION.
18787         (dump_conflict_function): Same.
18788         (dump_subscript): Same.
18789         (print_direction_vector): Same.
18790         (print_dir_vectors): Same.
18791         (print_lambda_vector): Same.
18792         (print_dist_vectors): Same.
18793         (dump_data_dependence_relation): Same.
18794         (dump_data_dependence_relations): Same.
18795         (dump_dist_dir_vectors): Same.
18796         (dump_ddrs): Same.
18797         (init_omega_eq_with_af): Removed.
18798         (omega_extract_distance_vectors): Removed.
18799         (omega_setup_subscript): Removed.
18800         (init_omega_for_ddr_1): Removed.
18801         (init_omega_for_ddr): Removed.
18802         (ddr_consistent_p): Removed.
18803         (compute_affine_dependence): Do not use omega to check data
18804         dependences.
18805         (compute_data_dependences_for_bb): Removed.
18806         (analyze_all_data_dependences): Removed.
18807         (tree_check_data_deps): Removed.
18808         * tree-data-ref.h: Do not include omega.h.
18809         (compute_data_dependences_for_bb): Removed.
18810         (tree_check_data_deps): Removed.
18811         * tree-ssa-loop.c (pass_check_data_deps): Removed.
18812         (make_pass_check_data_deps): Removed.
18813         * tree-ssa-phiopt.c: Include params.h.
18814         * tree-vect-data-refs.c: Same.
18815         * tree-vect-slp.c: Same.
18816
18817 2015-07-18  Uros Bizjak  <ubizjak@gmail.com>
18818
18819         * config/i386/i386.md (pushsf splitter): Pass curr_insn to
18820         find_constant_src.  FAIL if find_constant_src returns NULL_RTX.
18821         (mem->fpreg splitters): Ditto.
18822         (general_operand->nonimmediate_operand splitter): Use explicit modes.
18823         Disable DFmode for TARGET_64BIT.
18824
18825 2015-07-17  H.J. Lu  <hongjiu.lu@intel.com>
18826
18827         PR target/66906
18828         * config/i386/i386.c (ix86_expand_prologue): Replicate static
18829         chain on the stack.
18830
18831 2015-07-17  Nathan Sidwell  <nathan@codesourcery.com>
18832
18833         * config/nvptx/mkoffload.c (process): Constify host data.
18834         * config/i386/intelmic-mkoffload.c (generate_target_descr_file):
18835         Constify host data.
18836         (generate_host_descr_file): Likewise.
18837
18838 2015-07-17  Aditya Kumar  <aditya.k7@samsung.com>
18839             Sebastian Pop  <s.pop@samsung.com>
18840
18841         PR middle-end/61929
18842         * graphite-dependences.c (add_pdr_constraints): Renamed
18843         pdr->extent to pdr->subscript_sizes.
18844         * graphite-interchange.c (build_linearized_memory_access): Add
18845         back all gcc_assert's that the "isl_int to isl_val conversion"
18846         patch has removed.  Refactored.
18847         (pdr_stride_in_loop): Renamed pdr->extent to pdr->subscript_sizes.
18848         * graphite-poly.c (new_poly_dr): Same.
18849         (free_poly_dr): Same.
18850         * graphite-poly.h (struct poly_dr): Same.
18851         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Ignore
18852         all data references other than ARRAY_REF, MEM_REF, and COMPONENT_REF.
18853         * graphite-scop-detection.h: Fix space.
18854         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Add
18855         back all gcc_assert's removed by a previous patch.
18856         (wrap): Remove the_isl_ctx global variable that the same patch has
18857         added.
18858         (build_loop_iteration_domains): Same.
18859         (add_param_constraints): Same.
18860         (pdr_add_data_dimensions): Same.  Refactored.
18861         (build_poly_dr): Renamed extent to subscript_sizes.
18862
18863 2015-07-17  Marek Polacek  <polacek@redhat.com>
18864
18865         * fold-const.c (fold_binary_loc): Move A - (A & B) into ~B & A ...
18866         * match.pd: ... here.
18867
18868 2015-07-17  Nathan Sidwell  <nathan@codesourcery.com>
18869
18870         * config/nvptx/mkoffload.c (process): Constify target data.
18871         * config/i386/intelmic-mkoffload.c (generate_target_descr_file):
18872         Constify target data.
18873         (generate_target_offloadend_file): Likewise.
18874
18875 2015-07-17  Yuri Rumyantsev  <ysrumyan@gmail.com>
18876
18877         * tree-vect-loop-manip.c (rename_variables_in_bb): Add argument
18878         to allow renaming of PHI arguments on edges incoming from outer
18879         loop header, add corresponding check before start PHI iterator.
18880         (slpeel_tree_duplicate_loop_to_edge_cfg): Introduce new bool
18881         variable DUPLICATE_OUTER_LOOP and set it to true for outer loops
18882         with true force_vectorize.  Set-up dominator for outer loop too.
18883         Pass DUPLICATE_OUTER_LOOP as argument to rename_variables_in_bb.
18884         (slpeel_can_duplicate_loop_p): Allow duplicate of outer loop if it
18885         was marked with force_vectorize and has restricted cfg.
18886         (slpeel_tree_peel_loop_to_edge): Do not rename exit PHI uses in
18887         inner loop.
18888         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
18889         do peeling for outer loops.
18890
18891 2015-07-17  Yvan Roux  <yvan.roux@linaro.org>
18892             Matthias Klose  <doko@ubuntu.com>
18893
18894         * configure.ac: Move AC_ARG_WITH checks for native-system-header-dir,
18895         build-sysroot, sysroot from the `Miscenalleous configure options' to
18896         the `Directories' section and strip trailing `/' from with_sysroot.
18897         (gcc_gxx_include_dir): Don't strip a `/' sysroot value.
18898         * configure: Regenerated.
18899
18900 2015-07-17  Uros Bizjak  <ubizjak@gmail.com>
18901
18902         PR target/66824
18903         * config/i386/i386.h (TARGET_HARD_SF_REGS): New define.
18904         (TARGET_HARD_DF_REGS): Ditto.
18905         (TARGET_HARD_XF_REGS): Ditto.
18906         * config/i386/i386.md (*movxf_internal): Add alternatives 9 and 10.
18907         Enable alternatives 9 and 10 only for !TARGET_HARD_XF_REG target.
18908         (*movdf_internal): Add alternatives 22, 23, 24 and 25. Enable
18909         alternatives 22, 23, 24 and 25 only for !TARGET_HARD_DF_REG target.
18910         (*movsf_internal): Add alternatives 16 and 17. Enable
18911         alternatives 16 and 17 only for !TARGET_HARD_SF_REG target.
18912
18913 2015-07-17  Uros Bizjak  <ubizjak@gmail.com>
18914
18915         PR rtl-optimization/66891
18916         * calls.c (expand_call): Wrap precompute_register_parameters with
18917         NO_DEFER_POP/OK_DEFER_POP to prevent deferred pops.
18918
18919 2015-07-16  Nathan Sidwell  <nathan@codesourcery.com>
18920
18921         * config/nvptx/mkoffload.c (process): Constify mapping variables.
18922         Define target data struct and initialize it.
18923
18924 2015-07-16  Vladimir Makarov  <vmakarov@redhat.com>
18925
18926         PR rtl-optimization/66626
18927         * ira.h (emit-rtl.h): Include.
18928         (non_spilled_static_chain_regno_p): New.
18929         * ira-color.c (setup_profitable_hard_regs): Clear profitable regs
18930         unless it is non spilled static chain pseudo.
18931         (assign_hard_rego): Spill memory profitable allocno unless it is
18932         non spilled static chain pseudo.
18933         (allocno_spill_priority_compare): Put non spilled static chain
18934         pseudo at the end of sorted array.
18935         (improve_allocation): Do nothing if we have static chain and
18936         non-local goto.
18937         (allocno__priority_compare_func): Put non spilled static chain
18938         pseudo at the beginning of sorted array.
18939         (move_spill_restore): Ignore non spilled static chain pseudo.
18940         * ira-costs.c (find_costs_and_classes): Don't assign class NO_REGS
18941         to non spilled static chain pseudo.
18942         * lra-assigns.c (pseudo_compare_func): Put non spilled static chain
18943         pseudo at the beginning of sorted array.
18944         (spill_for): Spill non spilled static chain pseudo last.
18945         * lra-constraints.c (lra_constraints): Remove static chain pseudo
18946         check for equivalence.
18947
18948 2015-07-16  Martin Liska  <mliska@suse.cz>
18949
18950         PR ipa/66896.
18951         * ipa-prop.c (update_jump_functions_after_inlining): Create properly
18952         dst_ctx if it does not exist.
18953
18954 2015-07-16  Martin Liska  <mliska@suse.cz>
18955
18956         * hash-set.h (remove): New function.
18957         (iterator): New iteration class for hash_set.
18958
18959 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
18960
18961         * genattrtab.c (make_canonical): Add a file_location parameter.
18962         Use fatal_at rather than fatal.
18963         (get_attr_value): Likewise.  Update call to make_canonical.
18964         (fill_attr, make_length_attrs, optimize_attrs, gen_attr)
18965         (make_internal_attr): Update calls accordingly.
18966
18967 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
18968
18969         * read-md.h (message_with_line, error_with_line): Delete.
18970         * read-md.c (message_with_line, error_with_line): Delete.
18971         * gensupport.h: Include read-md.h.
18972         (md_rtx_info): New structure.
18973         (read_md_rtx): Use it.  Return a bool success value.
18974         * gensupport.c (read_md_rtx): Likewise.
18975         * genattr-common.c (gen_attr): Take an md_rtx_info rather than an rtx.
18976         (main): Update after interface changes.
18977         * genattr.c (gen_attr): Take an md_rtx_info rather than an rtx.
18978         (main): Update after interface changes.
18979         * genattrtab.c (insn_code_number): Delete.
18980         (optimize_attrs): Add a max_insn_code parameter and use it instead
18981         of insn_code_number.
18982         (gen_attr): Take an md_rtx_info rather than an rtx and lineno.
18983         Use *_at rather than *_with_line functions.
18984         (gen_insn): Likewise.
18985         (gen_delay): Likewise.
18986         (gen_insn_reserv): Likewise.
18987         (gen_bypass): Take an md_rtx_info rather than an rtx.
18988         (main): Update after interface changes.  Use a local max_insn_code
18989         variable instead of insn_code_number.
18990         * genautomata.c (gen_cpu_unit): Take an md_rtx_info rather than
18991         an rtx.  Use fatal_at rather than fatal.
18992         (gen_query_cpu_unit, gen_bypass, gen_excl_set)
18993         (gen_presence_absence_set, gen_presence_set, gen_final_presence_set)
18994         (gen_absence_set, gen_final_absence_set, gen_automaton)
18995         (gen_automata_option, gen_reserv, gen_insn_reserv): Likewise.
18996         (main): Update after interface changes.
18997         * gencodes.c (gen_insn): Take an md_rtx_info rather than an rtx
18998         and code number.
18999         (main): Update after interface changes.
19000         * genconditions.c (main): Use new read_md_rtx interface.
19001         * genconfig.c (gen_insn): Take an md_rtx_info rather than an rtx.
19002         (gen_expand, gen_split, gen_peephole, gen_peephole2): Likewise.
19003         (main): Update after interface changes.
19004         * genemit.c (insn_code_number, insn_index_number): Delete.
19005         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
19006         Use fatal_at rather than fatal.
19007         (gen_expand): Take an md_rtx_info rather than an rtx.  Use fatal_at
19008         rather than fatal.
19009         (gen_split): Likewise.
19010         (main): Update after interface changes.
19011         * genextract.c (line_no): Delete.
19012         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
19013         Update call to walk_rtx.
19014         (VEC_safe_set_locstr): Add an md_rtx_info argument.  Use message_at
19015         rather than message_with_line.
19016         (walk_rtx): Add an md_rtx_info argument.  Update call to
19017         VEC_safe_set_locstr.
19018         (main): Update after interface changes.
19019         * genflags.c (gen_insn): Take an md_rtx_info rather than an rtx
19020         and lineno.  Use error_at rather than separate message_with_line
19021         calls and have_error assignments.
19022         (main): Update after interface changes.
19023         * genmddump.c (main): Use new read_md_rtx interface.
19024         * genopinit.c (insn): Take an md_rtx_info rather than an rtx.
19025         (main): Update after interface changes.
19026         * genoutput.c (next_code_number): Delete.
19027         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
19028         (gen_peephole, gen_expand, gen_split): Likewise.
19029         (note_constraint): Likewise.  Use *_at rather than *_with_line
19030         functions.
19031         (main): Update after interface changes.
19032         * genpeep.c (gen_peephole): Take an md_rtx_info rather than an
19033         rtx and lineno.
19034         (main): Update after interface changes.
19035         * genpreds.c (process_define_predicate): Take an md_rtx_info rather
19036         than an rtx and lineno.
19037         (process_define_constraint): Likewise.
19038         (process_define_register_constraint): Likewise.
19039         (main): Update after interface changes.
19040         * genrecog.c (next_insn_code, pattern_lineno): Delete.
19041         (validate_pattern): Replace top-level rtx with an md_rtx_info.
19042         Use *_at rather than *_with_line functions.
19043         (match_pattern_2): Likewise.
19044         (match_pattern_1, match_pattern): Add an md_rtx_info parameter.
19045         (get_peephole2_pattern): Take an md_rtx_info rather than an rtvec.
19046         Use *_at rather than *_with_line functions.
19047         * gentarget-def.c (add_insn): New function.
19048         (main): Use it.  Use new read_md_rtx interface.
19049
19050 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
19051
19052         * gensupport.h (compute_test_codes): Take a file_location rather
19053         than a line number.
19054         * gensupport.c (compute_test_codes): Likewise.  Use *_at functions
19055         rather than *_with_line functions.
19056         (process_define_predicate): Update call to compute_test_codes.
19057         * genpreds.c (validate_exp): Take a file_location rather than a
19058         line number.  Use *_at functions rather than *_with_line functions.
19059         (process_define_predicate): Update call to validate_exp.
19060         (constraint_data): Replace lineno field with a file_location.
19061         (add_constraint): Take a file_location rather than a line number.
19062         Use *_at functions rather than *_with_line functions.  Fix error
19063         message for address constraints.  Update after changes to
19064         validate_exp, constraint_data and compute_test_codes.
19065         (process_define_constraint): Update accordingly.
19066         (process_define_register_constraint): Likewise.
19067
19068 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
19069
19070         * genoutput.c (data): Use a file_location to record the source
19071         position.
19072         (nothing): Delete.
19073         (idata, idata_end): Remove initialization.
19074         (constraint_data): Replace lineno with a file_location.
19075         (output_insn_data): Update after changes to data.
19076         (gen_insn, gen_peephole, gen_expand, gen_split): Likewise.
19077         (scan_operands): Likewise, using *_at rather than *_with_line
19078         functions.
19079         (process_template): Likewise.
19080         (validate_insn_alternatives): Likewise.
19081         (validate_insn_operands): Likewise.
19082         (validate_optab_operands): Likewise.
19083         (init_insn_for_nothing): Initialize idata and idata_end.
19084         (note_constraint): Update after changes to constraint_data,
19085         using at rather than with_line functions.
19086         (mdep_constraint_len): Take a file_location rather than a
19087         line number.  Use at rather than with_line functions.
19088
19089 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
19090
19091         * read-md.h (fatal_at): Declare.
19092         * read-md.c (fatal_at): New function.
19093         * genattrtab.c (insn_def, attr_desc, delay_desc): Use a file_location
19094         to record the source position.
19095         (check_attr_test): Take a file_location instead of a line number.
19096         Use fatal_at instead of fatal.
19097         (check_attr_value): Update after above changes, using "at"
19098         rather than "with_line" reporting functions.
19099         (convert_set_attr_alternative): Likewise.
19100         (gen_attr): Likewise.
19101         (check_defs): Likewise.  Don't assign to read_md_filename.
19102         (gen_insn): Update initialization after above changes.
19103         (gen_delay): Likewise.
19104         (write_insn_cases): Print the filename for a define_peephole.
19105         (gen_insn_reserv): Take a line number as argument and update
19106         the call to check_attr_test.
19107         (main): Pass a line number to gen_insn_reserv.
19108
19109 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
19110
19111         * read-md.h (file_location): New structure.
19112         (directive_handler_t): Take a file_location rather than a line number.
19113         (message_at, error_at): Declare.
19114         (read_skip_construct): Delete.
19115         * read-md.c (message_with_line_1): Replace with...
19116         (message_at_1): ...this new function.
19117         (message_at, error_at): New functions.
19118         (message_with_line, error_with_line): Update to use message_at_1.
19119         (handle_enum): Take a file_location rather than a line number
19120         and use error_at for error reporting.
19121         (handle_include): Likewise.
19122         (read_skip_construct): Likewise.  Make static.
19123         (handle_file): Update after above changes.  Pass a file_location
19124         rather than a line number to handle_directive.
19125         * gensupport.c (queue_elem): Replace separate filename and lineno
19126         with a file_location.
19127         (queue_pattern): Replace filename and lineno arguments with a
19128         file_location.  Update after change to queue_elem.
19129         (process_define_predicate): Replace lineno argument with a
19130         file_location and use error_at for error reporting.  Update
19131         after above changes.
19132         (process_rtx): Likewise.
19133         (subst_pattern_match): Likewise.
19134         (get_alternatives_number): Likewise.
19135         (alter_predicate_for_insn): Likewise.
19136         (rtx_handle_directive): Likewise.
19137         (is_predicable): Update after above changes, using error_at rather
19138         than error_with_line.
19139         (has_subst_attribute): Likewise.
19140         (identify_predicable_attribute): Likewise.
19141         (alter_attrs_for_subst_insn): Likewise.
19142         (process_one_cond_exec): Likewise.
19143         (process_substs_on_one_elem): Likewise.
19144         (process_define_subst): Likewise.
19145         (check_define_attr_duplicates): Likewise.
19146         (read_md_rtx): Update after change to queue_elem.
19147
19148 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
19149
19150         * genoutput.c (next_index_number): Delete.
19151         (data): Remove index_number.
19152         (gen_insn, gen_peephole, gen_expand, gen_split): Update accordingly.
19153         (main): Remove manipulation of next_index_number.
19154
19155 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
19156
19157         * genattrtab.c (check_attr_value): Remove handling of null attrs.
19158         (make_canonical): Likewise.
19159
19160 2015-07-16  Eric Botcazou  <ebotcazou@adacore.com>
19161
19162         * config/sparc/sparc.md (save_stack_nonlocal): Use adjust_address
19163         instead of adjust_address_nv.
19164         (restore_stack_nonlocal): Likewise.
19165         (nonlocal_goto): Likewise.
19166
19167 2015-07-16  Tom de Vries  <tom@codesourcery.com>
19168
19169         * tree-parloops.c (create_parallel_loop): Handle case that exit phi does
19170         not have a corresponding loop header phi.
19171
19172 2015-07-16  Tom de Vries  <tom@codesourcery.com>
19173
19174         * tree-parloops.c (create_loads_for_reductions): Handle case that
19175         reduction is unused.
19176
19177 2015-07-16  Richard Biener  <rguenther@suse.de>
19178
19179         PR tree-optimization/66894
19180         * tree-vrp.c (register_edge_assert_for_2): Fix bad assumption
19181         about deriving NE_EXPR from truncated values.
19182
19183 2015-07-16  Martin Liska  <mliska@suse.cz>
19184
19185         * alloc-pool.h
19186         (object_allocator): Add new class.
19187         (pool_allocator::initialize): Use the underlying class.
19188         (pool_allocator::allocate): Likewise.
19189         (pool_allocator::remove): Likewise.
19190         (operator new): A new generic allocator.
19191         * asan.c (struct asan_mem_ref): Remove unused members.
19192         (asan_mem_ref_new): Replace new operator with
19193         object_allocator::allocate.
19194         (free_mem_ref_resources): Change deallocation.
19195         * cfg.c (initialize_original_copy_tables): Replace pool_allocator
19196         with object_allocator.
19197         * config/sh/sh.c (add_constant): Replace new operator with
19198         object_allocator::allocate.
19199         (sh_reorg): Change call to a release method.
19200         * cselib.c (struct elt_list): Remove unused members.
19201         (new_elt_list): Replace new operator with
19202         object_allocator::allocate.
19203         (new_elt_loc_list): Likewise.
19204         (new_cselib_val): Likewise.
19205         (unchain_one_elt_list): Change delete operator with remove method.
19206         (unchain_one_elt_loc_list): Likewise.
19207         (unchain_one_value): Likewise.
19208         (cselib_finish): Release newly added static allocators.
19209         * cselib.h (struct cselib_val): Remove unused members.
19210         (struct elt_loc_list): Likewise.
19211         * df-problems.c (df_chain_alloc): Replace pool_allocator with
19212         object_allocator.
19213         * df-scan.c (struct df_scan_problem_data): Likewise.
19214         (df_scan_alloc): Likewise.
19215         * df.h (struct dataflow): Likewise.
19216         * dse.c (struct read_info_type): Likewise.
19217         (struct insn_info_type): Likewise.
19218         (struct dse_bb_info_type): Likewise.
19219         (struct group_info): Likewise.
19220         (struct deferred_change): Likewise.
19221         (get_group_info): Likewise.
19222         (delete_dead_store_insn): Likewise.
19223         (free_read_records): Likewise.
19224         (replace_read): Likewise.
19225         (check_mem_read_rtx): Likewise.
19226         (scan_insn): Likewise.
19227         (dse_step1): Likewise.
19228         (dse_step7): Likewise.
19229         * et-forest.c (struct et_occ): Remove unused members.
19230         (et_new_occ): Use allocate instead of new operator.
19231         (et_new_tree): Likewise.
19232         (et_free_tree): Call release method explicitly.
19233         (et_free_tree_force): Likewise.
19234         (et_free_pools): Likewise.
19235         (et_split): Use remove instead of delete operator.
19236         * et-forest.h (struct et_node): Remove unused members.
19237         * ipa-cp.c: Change pool_allocator to object_allocator.
19238         * ipa-inline-analysis.c: Likewise.
19239         * ipa-profile.c: Likewise.
19240         * ipa-prop.c: Likewise.
19241         * ipa-prop.h: Likewise.
19242         * ira-build.c (initiate_cost_vectors): Cast return value.
19243         (ira_allocate_cost_vector): Likewise.
19244         * ira-color.c (struct update_cost_record): Remove unused members.
19245         * lra-int.h (struct lra_live_range): Likewise.
19246         (struct lra_copy): Likewise.
19247         (struct lra_insn_reg): Likewise.
19248         * lra-lives.c (lra_live_ranges_finish): Release new static allocator.
19249         * lra.c (new_insn_reg): Replace new operator with allocate method.
19250         (free_insn_regs): Same for operator delete.
19251         (finish_insn_regs): Release new static allocator.
19252         (finish_insn_recog_data): Likewise.
19253         (lra_free_copies): Replace delete operator with remove method.
19254         (lra_create_copy): Replace operator new with allocate method.
19255         (invalidate_insn_data_regno_info): Same for remove method.
19256         * regcprop.c (struct queued_debug_insn_change): Remove unused members.
19257         (free_debug_insn_changes): Replace delete operator with remove method.
19258         (replace_oldest_value_reg): Replace operator new with allocate method.
19259         (pass_cprop_hardreg::execute): Release new static variable.
19260         * sched-deps.c (sched_deps_init): Change pool_allocator to
19261         object_allocator.
19262         * sel-sched-ir.c: Likewise.
19263         * sel-sched-ir.h: Likewise.
19264         * stmt.c (expand_case): Likewise.
19265         (expand_sjlj_dispatch_table): Likewise.
19266         * tree-sra.c (struct access): Remove unused members.
19267         (struct assign_link): Likewise.
19268         (sra_deinitialize): Release newly added static pools.
19269         (create_access_1):Replace operator new with allocate method.
19270         (build_accesses_from_assign): Likewise.
19271         (create_artificial_child_access): Likewise.
19272         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Change
19273         pool_allocator to object_allocator.
19274         * tree-ssa-pre.c: Likewise.
19275         * tree-ssa-reassoc.c: Likewise.
19276         * tree-ssa-sccvn.c (allocate_vn_table): Likewise.
19277         * tree-ssa-strlen.c: Likewise.
19278         * tree-ssa-structalias.c: Likewise.
19279         * var-tracking.c (onepart_pool_allocate): New function.
19280         (unshare_variable): Use the newly added function.
19281         (variable_merge_over_cur): Likewise.
19282         (variable_from_dropped): Likewise.
19283         (variable_was_changed): Likewise.
19284         (set_slot_part): Likewise.
19285         (emit_notes_for_differences_1): Likewise.
19286         (vt_finalize): Release newly added static pools.
19287
19288 2015-07-16  Martin Jambor  <mjambor@suse.cz>
19289
19290         * ipa-prop.h (param_aa_status): Rename to ipa_param_aa_status.  Adjust
19291         all uses.  Fix two typos in its general comment.
19292         (func_body_info): Rename to ipa_func_body_info.  Adjust all uses.
19293
19294 2015-07-16  Ilya Enkovich  <enkovich.gnu@gmail.com>
19295
19296         * config/i386/linux-common.h (LINK_MPX): New.
19297         (MPX_SPEC): Use LINK_MPX instead of %(link_mpx).
19298         * configure.ac: Add HAVE_LD_BNDPLT_SUPPORT macro
19299         indicating '-z bndplt' support by linker.
19300         * configure: Regenerate.
19301         * config.in: Regenerate.
19302
19303 2015-07-16  Richard Biener  <rguenther@suse.de>
19304
19305         * fold-const.c (fold_widened_comparison): Remove.
19306         (fold_sign_changed_comparison): Likewise.
19307         (fold_comparison): Move widened and sign-changed comparison
19308         simplification ...
19309         * match.pd: ... to patterns here.
19310         * generic-match-head.c: Include target.h.
19311         * gimple-match-head.c: Likewise.
19312
19313 2015-07-16  Richard Biener  <rguenther@suse.de>
19314
19315         * tree-ssa-dom.c (dom_valueize): New function.
19316         (record_temporary_equivalences): Also record equivalences
19317         for dominating stmts that have uses of equivalences we are
19318         about to record.
19319
19320 2015-07-16  Bin Cheng  <bin.cheng@arm.com>
19321
19322         * tree-ssa-loop-ivopts.c (add_candidate): Remove call to
19323         add_autoinc_candidates.
19324         (add_iv_candidate_for_biv): Rename to add_iv_candidate_for_biv.
19325         (add_iv_candidate_for_biv): Rename from add_iv_candidate_for_biv.
19326         (add_old_ivs_candidates): Rename to add_iv_candidate_for_bivs.
19327         (add_iv_candidate_for_bivs): Rename from add_old_ivs_candidates.
19328         Call new function.
19329         (add_iv_value_candidates): Rename to add_iv_candidate_for_use.
19330         (add_iv_candidate_for_use): Rename from add_iv_value_candidates.
19331         Remove parameter struct iv*.  Call add_autoinc_candidates here.
19332         (add_derived_ivs_candidates): Rename to add_iv_candidate_for_uses.
19333         (add_iv_candidate_for_uses): Rename from add_derived_ivs_candidates.
19334         Call new function.
19335         (find_iv_candidates): Call new functions.
19336
19337 2015-07-16  Sandra Loosemore  <sandra@codesourcery.com>
19338
19339         * config/nios2/nios2.c (nios2_emit_stack_limit_check): Fix
19340         uninitialized-variable warning.
19341
19342 2015-07-16  Kaz Kojima  <kkojima@gcc.gnu.org>
19343
19344         PR target/65249
19345         * config/sh/sh.md (movdi): Split simple reg move to two movsi
19346         when the destination is R0.
19347
19348 2015-07-16  Uros Bizjak  <ubizjak@gmail.com>
19349
19350         PR target/66866
19351         * config/i386/i386-protos.h (ix86_expand_pextr): New prototype.
19352         * config/i386/i386.c (ix86_expand_pextr): New function.
19353         (ix86_expand_pinsr): Handle V1TI and TI modes.  Call ix86_expand_pextr
19354         for non-lowpart subregs.
19355         * config/i386/i386.md (extzv<mode>): Expand with ix86_expand_pextr.
19356         (insv<mode>): Use SWI248 mode iterator.
19357         (insv<mode>_1): Ditto.
19358
19359 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
19360             Sebastian Pop  <s.pop@samsung.com>
19361
19362         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Point
19363         iterator to use_stmt.
19364
19365 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
19366             Sebastian Pop <s.pop@samsung.com>
19367
19368         * graphite-scop-detection.c (build_scops_1): Discard scops for
19369         which entry==exit.
19370
19371 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
19372             Sebastian Pop <s.pop@samsung.com>
19373
19374         * graphite-scop-detection.c (stmt_simple_for_scop_p): Bail out in
19375         case of a return statement in scop.
19376
19377 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
19378             Sebastian Pop <s.pop@samsung.com>
19379
19380         * graphite-sese-to-poly.c (parameter_index_in_region): Only handle
19381         INTEGER_TYPE parameters.
19382         (scan_tree_for_params): Handle REAL_CST, COMPLEX_CST, and
19383         VECTOR_CST in scan_tree_for_params.
19384         (add_conditions_to_domain): Only constrain on INTEGER_TYPE.
19385
19386 2015-07-15  Andrew MacLeod  <amacleod@redhat.com>
19387
19388         * gimple-pretty-print.h: Don't include pretty-print.h.
19389         * tree-streamer.h: Don't include lto-streamer.h.
19390         * gimple-streamer.h: Include tree-streamer.h rather than lto-streamer.h.
19391         * gimple-streamer-in.c: Remove redundant includes.
19392         * gimple-streamer-out.c: Likewise.
19393         * ipa-devirt.c: Likewise.
19394         * ipa-icf.c: Likewise.
19395         * ipa-inline-analysis.c: Likewise.
19396         * ipa-polymorphic-call.c: Likewise.
19397         * ipa-profile.c: Likewise.
19398         * ipa-prop.c: Likewise.
19399         * ipa-pure-const.c: Likewise.
19400         * lto-cgraph.c: Likewise.
19401         * lto-streamer-in.c: Likewise.
19402         * lto-streamer-out.c: Likewise.
19403         * lto-streamer.c: Likewise.
19404         * tree-streamer-in.c: Likewise.
19405         * tree-streamer-out.c: Likewise.
19406         * tree-streamer.c: Likewise.
19407
19408 2015-07-15  Andrew MacLeod  <amacleod@redhat.com>
19409
19410         * opth-gen.awk: Check for UNKNOWN_LOCATION rather than GCC_TM_H, don't
19411         include input.h.
19412         * opts.c: Remove multiline #include comment.
19413
19414 2015-07-15  Nathan Sidwell  <nathan@codesourcery.com>
19415
19416         * config/nvptx/mkoffload.c (process): Add C++ protection to
19417         emitted code.
19418
19419 2015-07-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
19420
19421         PR target/66854
19422         * config/rs6000/rs6000.c (rs6000_pass_by_reference): Move test for
19423         null before IEEE 128-bit floating point support patch.
19424
19425 2015-07-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
19426
19427         * simplify-rtx.c (simplify_ternary_operation): Add simplification
19428         for (!c) != {0,...,0} ? a : b for vector modes.
19429
19430 2015-07-15  Paolo Bonzini  <bonzini@gnu.org>
19431             Martin Jambor  <mjambor@suse.cz>
19432
19433         * ipa-inline-analysis.c (unmodified_parm_or_parm_agg_item): Accept
19434         struct func_body_info* instead of struct ipa_node_params*, expecting
19435         fbi->info to be filled in.  Replace throughout.  Adjust call to
19436         ipa_load_from_parm_agg.
19437         (set_cond_stmt_execution_predicate): Accept struct func_body_info*
19438         instead of struct ipa_node_params*.  Adjust calls to other functions
19439         so that they pass either fbi or fbi->info.
19440         (set_switch_stmt_execution_predicate): Likewise.
19441         (will_be_nonconstant_predicate): Likewise.
19442         (compute_bb_predicates): Likewise.
19443         (estimate_function_body_sizes): Move asserts earlier.  Fill in
19444         struct func_body_info, replace parms_info with fbi.info.  Adjust
19445         calls to functions that now accept struct func_body_info.
19446         * ipa-prop.c (param_aa_status, struct ipa_bb_info): Move to ipa-prop.h.
19447         (struct func_body_info): Likewise.
19448         (ipa_load_from_parm_agg_1): Rename to ipa_load_from_parm_agg,
19449         remove static.  Adjust callers.
19450         (ipa_load_from_parm_agg): Remove.
19451         * ipa-prop.h (param_aa_status, ipa_bb_info): Move from ipa-prop.c.
19452         (func_body_info): Likewise.
19453         (ipa_load_from_parm_agg): Adjust prototype.
19454
19455 2015-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
19456
19457         * gensupport.c (rtx_handle_directive): Adjust.
19458         * read-rtl.c (apply_iterators): Take vector to add rtxs to
19459         instead of expr list rtx.
19460         (add_define_attr_for_define_subst): Likewise.
19461         (add_define_subst_attr): Likewise.
19462         (read_subst_mapping): Likewise.
19463         (read_rtx): Likewise.
19464         * rtl.h (read_rtx): Adjust.
19465
19466 2015-07-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19467
19468         * config/aarch64/aarch64.md (*csinc2<mode>_insn): Use cinc mnemonic.
19469
19470 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
19471
19472         PR target/58066
19473         * config/i386/i386.md (*tls_global_dynamic_64_<mode>): Depend on SP_REG.
19474         (*tls_local_dynamic_base_64_<mode>): Ditto.
19475         (*tls_local_dynamic_base_64_largepic): Ditto.
19476         (tls_global_dynamic_64_<mode>): Update expander pattern.
19477         (tls_local_dynamic_base_64_<mode>): Ditto.
19478
19479 2015-07-15  Richard Biener  <rguenther@suse.de>
19480
19481         * fold-const.c (fold_binary_loc): Move bool_var != 0 -> bool_var
19482         and bool_var == 1 -> bool_var simplifications ...
19483         * match.pd: ... to patterns here.  Factor out negate_expr_p
19484         cases from the A - B -> A + (-B) patterns as negate_expr_p
19485         predicate and add a -(A + B) -> (-B) - A pattern.
19486
19487 2015-07-15  Robert Suchanek  <robert.suchanek@imgtec.com>
19488
19489         * config/mips/mips.c (mips_emit_save_slot_move): Fix typo.
19490
19491 2015-07-15  Matthew Fortune  <matthew.fortune@imgtec.com>
19492             Robert Suchanek  <robert.suchanek@imgtec.com>
19493
19494         * config/mips/mips.c (mips_int_mask): New enum.
19495         (mips_shadow_set): Likewise.
19496         (int_mask): New variable.
19497         (use_shadow_register_set_p): Change type to enum mips_shadow_set.
19498         (machine_function): Add int_mask and use_shadow_register_set.
19499         (mips_attribute_table): Add attribute handlers for interrupt and
19500         use_shadow_register_set.
19501         (mips_interrupt_mask): New static function.
19502         (mips_handle_interrupt_attr): Likewise.
19503         (mips_handle_use_shadow_register_set_attr): Likewise.
19504         (mips_use_shadow_register_set): Change return type to enum
19505         mips_shadow_set.  Add argument handling for use_shadow_register_set
19506         attribute.
19507         (mips_interrupt_extra_called_saved_reg_p): Update the conditional to
19508         compare with mips_shadow_set enum.
19509         (mips_compute_frame_info): Add interrupt mask and
19510         use_shadow_register_set to per-function information structure.
19511         Add a stack slot for EPC unconditionally.
19512         (mips_expand_prologue): Compare use_shadow_register_set value
19513         with mips_shadow_set enum.  Save EPC always in K1, clobber only K1 for
19514         masked interrupt register but in EIC mode use K0 and save Cause in K0.
19515         EPC saved and restored unconditionally.  Use PMODE_INSN macro when
19516         copying the stack pointer from the shadow register set.
19517         * config/mips/mips.h (SR_IM0): New define.
19518         * config/mips/mips.md (mips_rdpgpr): Rename to...
19519         (mips_rdpgpr_<mode>): ...this.  Use the Pmode iterator.
19520         * doc/extend.texi (Declaring Attributes of Functions): Document
19521         optional arguments for interrupt and use_shadow_register_set
19522         attributes.
19523
19524 2015-07-15  Robert Suchanek  <robert.suchanek@imgtec.com>
19525
19526         * config/mips/mips.c (mips_compute_frame_info): Allow -mhard-float in
19527         interrupt attribute.
19528         (mips_expand_prologue): Disable the floating point unit in an ISR.
19529         * config/mips/mips.h (SR_COP1): New define.
19530
19531 2015-07-15  Richard Biener  <rguenther@suse.de>
19532
19533         * genmatch.c (parser::peek, parser::peek_ident): Add argument
19534         to tell how many tokens to peek ahead (default 1).
19535         (parser::eat_token, parser::eat_ident): Return token consumed.
19536         (parser::parse_result): Parse new switch statement.
19537         * match.pd: Use case statements where appropriate.
19538
19539 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
19540
19541         PR rtl-optimization/58066
19542         * calls.c (expand_call): Precompute register parameters before stack
19543         alignment is performed.
19544
19545 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
19546
19547         PR rtl-optimization/66838
19548         * postreload.c (reload_cse_move2add): Also process
19549         CALL_INSN_FUNCTION_USAGE when resetting information of
19550         call-clobbered registers.
19551
19552 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
19553             Cesar Philippidis  <cesar@codesourcery.com>
19554             Chung-Lin Tang  <cltang@codesourcery.com>
19555
19556         * config/nios2/constraints.md (U, v): New constraints.
19557         * config/nios2/predicates.md (rdprs_dcache_operand): New.
19558         (ldstex_memory_operand): New.
19559         * config/nios2/sync.md: New file.
19560         * config/nios2/nios2.md (unspecv): Add new builtin function
19561         UNSPECV codes.
19562         (rdprs, flushd, flushda, wrpie, eni): New patterns.
19563         (top-level): Include sync.md.
19564         * config/nios2/nios2.c (N2_FTYPES): Add function types for
19565         new builtins.
19566         (N2_BUILTINS): Add arch field setting, add new builtins.
19567         (enum nios2_builtin_code,nios2_builtins): Update N2_BUILTIN_DEF
19568         for arch field.
19569         (nios2_expand_ldst_builtin): Rename from nios2_expand_ldstio_builtin.
19570         Also handle ldex/stex/ldsex/stsex builtins.
19571         (nios2_expand_rdprs_builtin): New function.
19572         (nios2_expand_cache_builtin): New function.
19573         (nios2_expand_wrpie_builtin): New function.
19574         (nios2_expand_eni_builtin): New function.
19575         (nios2_expand_builtin): Add arch field handling and new builtin
19576         cases.
19577         * doc/extend.texi (Altera Nios II Built-in Functions): Document
19578         new builtins.
19579         * doc/md.texi (Machine Constraints): Document U and v constraints.
19580
19581 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
19582             Cesar Philippidis  <cesar@codesourcery.com>
19583             Chung-Lin Tang  <cltang@codesourcery.com>
19584
19585         * config/nios2/nios2-protos.h (nios2_expand_return): Declare.
19586         * config/nios2/nios2.c (struct GTY (()) machine_function): Add
19587         callee_save_reg_size and uses_anonymous_args fields.
19588         (nios2_compute_frame_layout): Update for CDX push.n/pop.n usage.
19589         (nios2_create_cfa_notes): New function.
19590         (nios2_adjust_stack): New function for adjusting stack.
19591         (nios2_expand_prologue): Update for CDX push.n/pop.n usage.
19592         Use nios2_adjust_stack.
19593         (nios2_expand_epilogue): Likewise.
19594         (nios2_expand_return): New function.
19595         (nios2_can_use_return_insn): Update for CDX pop.n usage.
19596         (nios2_setup_incoming_varargs): Set uses_anonymous_args flag.
19597         If TARGET_HAS_CDX, defer pushing regs to nios2_expand_prologue.
19598         * config/nios2/nios2.md (return): Use nios2_expand_return.
19599
19600 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
19601             Cesar Philippidis  <cesar@codesourcery.com>
19602             Chung-Lin Tang  <cltang@codesourcery.com>
19603
19604         * config/nios2/predicates.md (pop_operation): New.
19605         (ldwm_operation, stwm_operation): New.
19606         (nios2_hard_register_operand): New.
19607         * config/nios2/nios2-protos.h (pop_operation_p): Declare.
19608         (ldstwm_operation_p): Declare.
19609         (gen_ldstwm_peep): Declare.
19610         * config/nios2/nios2.c: (nios2_ldst_parallel): Declare.
19611         (base_reg_adjustment_p): New.
19612         (pop_operation_p): New.
19613         (CDX_LDSTWM_VALID_REGS_0, CDX_LDSTWM_VALID_REGS_1): Define.
19614         (nios2_ldstwm_regset_p): New.
19615         (ldstwm_operation_p): New.
19616         (gen_ldst): New.
19617         (nios2_ldst_parallel): New.
19618         (struct ldswm_operand): Declare.
19619         (compare_ldstwm_operands): New.
19620         (can_use_cdx_ldstw): New.
19621         (gen_ldstwm_peep): New.
19622         * config/nios2/nios2-ldstwm.sml: New.
19623         * config/nios2/nios2.md: Include ldstwm.md.
19624         * config/nios2/ldstwm.md: Generated.
19625
19626 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
19627             Cesar Philippidis  <cesar@codesourcery.com>
19628             Chung-Lin Tang  <cltang@codesourcery.com>
19629
19630         * config/nios2/nios2.h (LABEL_ALIGN): Define.
19631         (REG_ALLOC_ORDER): Define.
19632         (ADJUST_REG_ALLOC_ORDER): Define.
19633         (HONOR_REG_ALLOC_ORDER): Define.
19634         (CDX_REG_P): Define.
19635         (ANDCLEAR_INT): Define.
19636         * config/nios2/nios2-protos.h (nios2_add_insn_asm): Declare.
19637         (nios2_label_align): Declare.
19638         (nios2_cdx_narrow_form_p): Declare.
19639         (nios2_adjust_reg_alloc_order): Declare.
19640         * config/nios2/nios2.c (nios2_rtx_costs): Adjust for BMX zero-extract
19641         operation.
19642         (nios2_large_unspec_reloc_p): New function, split from...
19643         (nios2_legitimate_pic_operand_p): ...here.
19644         (nios2_emit_move_sequence): Add *high/*lo_sum constant expand code.
19645         (nios2_print_operand_punct_valid_p): New.
19646         (nios2_print_operand): Add %., %!, %x, %y, %A.  Remove %U.
19647         (split_mem_address): New.
19648         (split_alu_insn): New.
19649         (cdxreg): New.
19650         (cdx_add_immed, cdx_and_immed, cdx_mov_immed, cdx_shift_immed): New.
19651         (enum nios2_add_insn_kind): New.
19652         (nios2_add_insn_names, nios2_add_insn_narrow): New.
19653         (nios2_add_insn_classify): New.
19654         (nios2_add_insn_asm): New.
19655         (nios2_cdx_narrow_form_p): New.
19656         (label_align, min_labelno, max_labelno): New.
19657         (nios2_reorg): New.
19658         (nios2_label_align): New.
19659         (nios2_adjust_reg_alloc_order): New.
19660         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
19661         (TARGET_MACHINE_DEPENDENT_REORG): Define.
19662         * config/nios2/constraints.md (P): New constraint.
19663         * config/nios2/predicates.md (const_and_operand): New.
19664         (and_operand): New.
19665         (stack_memory_operand): New.
19666         * config/nios2/nios2.md (SP_REGNO): Define stack pointer regno.
19667         (length): Update to use nios2_cdx_narrow_form_p().
19668         (type): Add new insn type values.
19669         (control, alu, st, ld, shift): Update insn reservations with
19670         new insn type values.
19671         (*high, *lo_sum): Define new insn patterns for constant generation.
19672         (movqi_internal, movhi_internal, movsi_internal): Reduce
19673         alternatives, update asm template to handle CDX variants, update
19674         type attributes.
19675         (zero_extendhisi2, zero_extendqi<mode>2): Add CDX variants to asm
19676         template, update type attributes.
19677         (extendhisi2, extendqi<mode>2): Likewise.
19678         (addsi3): Change to use function for asm string.
19679         (subsi3): Add CDX notation to asm template, update type attributes.
19680         (negsi3, one_cmplsi3): Likewise.
19681         (andsi3): New pattern, specialized from logical patterns.
19682         (<code>si3): Remove and case, combine alternatives, update asm
19683         template.
19684         (<shift_op>si3): Add CDX notation, update type attributes.
19685         (rotrsi3): Update type attribute.
19686         (*merge, extzv, insv): New insn patterns.
19687         (return): Change to define_expand.
19688         (simple_return): Add CDX notation, update type attributes.
19689         (indirect_jump): Add CDX notation.
19690         (jump): Update asm cases, update length attribute expression.
19691         (*call, *call_value, *sibcall, *sibcall_value): Add CDX variant.
19692         (nios2_cbranch): Update asm cases and length attribute expression
19693         to handle CDX variants.
19694         (nios2_cmp<code>): Update asm template.
19695         (nop): Add CDX notation, update type attributes.
19696         (trap): Add CDX notation.
19697         (ctrapsi4): Update asm cases and length attribute expression to
19698         handle CDX variant.
19699         * doc/md.texi (Machine Constraints): Document P constraint.
19700
19701 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
19702             Cesar Philippidis  <cesar@codesourcery.com>
19703             Chung-Lin Tang  <cltang@codesourcery.com>
19704
19705         * config/nios2/nios2.h (SMALL_INT12): New macro.
19706         * config/nios2/nios2.c (nios2_valid_addr_offset_p): New function.
19707         (nios2_valid_addr_expr_p): Use it.
19708         (nios2_symbol_ref_in_small_data_p): Disallow GP-relative addressing
19709         with implicit "io" instructions on R2.
19710         * config/nios2/constraints.md (w): New constraint.
19711         * config/nios2/predicates.md (ldstio_memory_operand): New.
19712         * config/nios2/nios2.md (ld<bhw_uns>io, ld<bh>io): Update memory
19713         operand predicate and constraint.
19714         (ld<bh>io_signed, st<bhw>io>): Likewise.
19715         * doc/md.texi (Machine Constraints): Document w constraint.
19716
19717 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
19718             Cesar Philippidis  <cesar@codesourcery.com>
19719             Chung-Lin Tang  <cltang@codesourcery.com>
19720
19721         * config/nios2/nios2.opt (march, mbmx, mcdx): New options.
19722         * config/nios2/nios2-opts.h (enum nios2_arch_type): New enum for
19723         Nios II architecture level.
19724         * config/nios2/nios2.h (TARGET_ARCH_R2): New define.
19725         (TARGET_CPU_CPP_BUILTINS): Add definition of __nios2_arch__ symbol.
19726         (OPTION_DEFAULT_SPECS): Define.
19727         (ASM_SPEC): Add -march= spec strings.
19728         * config/nios2/nios2.c (nios2_option_override): Check for
19729         conflicts involving new options.
19730         * config.gcc (nios2*-*-*): Support --with-arch=.
19731         * doc/invoke.texi (Option Summary, Nios II Options): Document
19732         -march=, -mbmx, and -mcdx.
19733
19734 2015-07-14  Vladimir Makarov  <vmakarov@redhat.com>
19735
19736         PR rtl-optimization/66626
19737         * lra-constraints.c (lra_constraints): Prevent equivalence
19738         substitution for static chain pseudo in functions with nonlocal
19739         goto.
19740
19741 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
19742
19743         * config/nios2/nios2.c (TEMP_REG_NUM): Move define up in file.
19744         (nios2_emit_stack_limit_check): Add size parameter.  Handle
19745         -fstack-limit-symbol as well as -fstack-limit-register.
19746         (nios2_expand_prologue): Emit only a single stack limit check,
19747         even if multiple stack adjustments are required.
19748         (nios2_option_override): Diagnose unsupported combination of -fpic
19749         and -stack-limit-symbol.
19750
19751 2015-07-14  H.J. Lu  <hongjiu.lu@intel.com>
19752
19753         * Makefile.in (top_srcdir): New.
19754         * configure.ac: Use AM_ZLIB.
19755         * configure: Regeneated.
19756
19757 2015-07-14  Matthias Klose  <doko@ubuntu.com>
19758
19759         PR target/66840
19760         * config/rs6000/t-rs6000 (TM_H): Add rs6000-cpus.def.
19761
19762 2015-07-14  Richard Biener  <rguenther@suse.de>
19763
19764         PR tree-optimization/66863
19765         * tree-vrp.c (register_edge_assert_for_2): Properly restrict
19766         what we record for conversion use stmt lhs inequalities.
19767
19768 2015-07-14  Richard Biener  <rguenther@suse.de>
19769
19770         * genmatch.c (dt_node::gen_kids_1): Fix case label indenting.
19771         (decision_tree::gen_gimple): Likewise.
19772
19773 2015-07-14  Tom de Vries  <tom@codesourcery.com>
19774
19775         * gcc.c (greater_than_spec_func): Declare forward.
19776         (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use gt to ignore
19777         -ftree-parallelize-loops={0,1}.
19778         (static_spec_functions): Add greater_than_spec_func function with name
19779         "gt".
19780         (greater_than_spec_func): New function.
19781
19782 2015-07-14  Richard Biener  <rguenther@suse.de>
19783
19784         * tree-ssa-dom.c (record_temporary_equivalences): Merge
19785         wideing type conversion case from record_equivalences_from_incoming_edge
19786         and use record_equality to record equivalences.
19787         (record_equivalences_from_incoming_edge): Call
19788         record_temporary_equivalences.
19789
19790 2015-07-14  Richard Biener  <rguenther@suse.de>
19791
19792         * genmatch.c (struct operand): Add OP_IF and OP_WITH op_types.
19793         (struct if_expr): New.
19794         (struct with_expr): Likewise.
19795         (is_a_helper): Add helpers for if_expr and with_expr.
19796         (struct simplify): Add simplify_kind enum and member.  Remove
19797         ifexpr_vec member.
19798         (simplify::simplify): Adjust.
19799         (lower_commutative): Adjust.
19800         (lower_opt_convert): Likewise.
19801         (lower_cond): Likewise.
19802         (replace_id): Handle with_expr and if_expr.
19803         (lower_for): Adjust.
19804         (dt_simplify::gen_1): New recursive worker, split out from ...
19805         (dt_simplify::gen): ... here.  Deal with if and with expansion
19806         recursively.
19807         (capture_info::capture_info): Take context argument
19808         (capture_info::walk_result): Only analyze specific result.
19809         (parser::parse_result): New function.
19810         (parser::parse_simplify): Adjust to parse ifs with then end
19811         else case.
19812         (parser::parse_if): Simplify.
19813         (parser::parse_pattern): Pass down simplify kind.
19814         * match.pd: Convert if structure to new syntax.
19815
19816 2015-07-13  Marek Polacek  <polacek@redhat.com>
19817
19818         * rtl.c (rtx_equal_p_cb): Fix typo.
19819
19820 2015-07-13  Andrew MacLeod  <amacleod@redhat.com>
19821
19822         * omega.h: Don't include config.h, don't include params.h again if
19823         omega.h has already been included.
19824         * graphite-poly.h: Include sese.h.
19825         * graphite.c: Don't include sese.h, remove needless includes and
19826         minimize includes outside #ifdef HAVE_isl block.
19827         * graphite-blocking.c: Don't include sese.h, remove needless includes,
19828         and wrap entire file in #ifdef HAVE_isl
19829         * graphite-dependences.c: Likewise.
19830         * graphite-interchange.c: Likewise.
19831         * graphite-isl-ast-to-gimple.c: Likewise.
19832         * graphite-optimize-isl.c: Likewise.
19833         * graphite-poly.c: Likewise.
19834         * graphite-scop-detection.c: Likewise.
19835         * graphite-sese-to-poly.c: Likewise.
19836
19837 2015-07-13  Tom de Vries  <tom@codesourcery.com>
19838
19839         * omp-low.c (build_receiver_ref): Mark *.omp_data_i as non-trapping.
19840
19841 2015-07-13  Renlin Li  <renlin.li@arm.com>
19842
19843         PR rtl/66556
19844         * simplify-rtx.c (simplify_const_relational_operation): Add
19845         side_effects_p checks.
19846
19847 2015-07-12  Aldy Hernandez  <aldyh@redhat.com>
19848
19849         * bitmap.h: Fix double word typos.
19850         * builtins.c: Same.
19851         * calls.c: Same.
19852         * cfgloopmanip.c: Same.
19853         * cgraph.c: Same.
19854         * cgraph.h: Same.
19855         * cgraphclones.c: Same.
19856         * combine.c: Same.
19857         * config/aarch64/aarch64-protos.h: Same.
19858         * config/aarch64/aarch64.c: Same.
19859         * config/aarch64/aarch64.md: Same.
19860         * config/arm/arm.md: Same.
19861         * config/arm/arm1020e.md: Same.
19862         * config/arm/arm1026ejs.md: Same.
19863         * config/arm/arm926ejs.md: Same.
19864         * config/arm/fa526.md: Same.
19865         * config/arm/fa606te.md: Same.
19866         * config/arm/fa626te.md: Same.
19867         * config/arm/fa726te.md: Same.
19868         * config/arm/fmp626.md: Same.
19869         * config/darwin.c: Same.
19870         * config/epiphany/epiphany.c: Same.
19871         * config/frv/frv.c: Same.
19872         * config/ft32/ft32.c: Same.
19873         * config/gnu-user.h: Same.
19874         * config/h8300/constraints.md: Same.
19875         * config/i386/i386.c: Same.
19876         * config/i386/i386.md: Same.
19877         * config/iq2000/iq2000.md: Same.
19878         * config/mips/mips.c: Same.
19879         * config/mmix/mmix.md: Same.
19880         * config/moxie/moxie.c: Same.
19881         * config/nds32/nds32.md: Same.
19882         * config/pa/pa.h: Same.
19883         * config/rs6000/aix.h: Same.
19884         * config/rs6000/rs6000.h: Same.
19885         * config/sh/sh.c: Same.
19886         * config/tilegx/tilegx.md: Same.
19887         * config/tilepro/gen-mul-tables.cc: Same.
19888         * cse.c: Same.
19889         * dbxout.c: Same.
19890         * doc/invoke.texi: Same.
19891         * dse.c: Same.
19892         * dwarf2out.c: Same.
19893         * final.c: Same.
19894         * gcc.c: Same.
19895         * genmatch.c: Same.
19896         * gimplify.c: Same.
19897         * hash-table.h: Same.
19898         * internal-fn.c: Same.
19899         * ipa-cp.c: Same.
19900         * ipa-devirt.c: Same.
19901         * ipa-icf.c: Same.
19902         * ipa-icf.h: Same.
19903         * ipa-profile.c: Same.
19904         * ipa-prop.c: Same.
19905         * ipa-prop.h: Same.
19906         * ira.c: Same.
19907         * omp-low.c: Same.
19908         * reg-stack.c: Same.
19909         * regcprop.c: Same.
19910         * reorg.c: Same.
19911         * rtl.h: Same.
19912         * sbitmap.h: Same.
19913         * tree-eh.c: Same.
19914         * tree-inline.c: Same.
19915         * tree-sra.c: Same.
19916         * tree-ssa-dom.c: Same.
19917         * tree-ssa-loop-ivopts.c: Same.
19918         * tree-ssa-structalias.c: Same.
19919         * tree-ssa-tail-merge.c: Same.
19920         * tree-ssa-ter.c: Same.
19921         * tree-ssa-threadupdate.c: Same.
19922         * tree-ssa-uninit.c: Same.
19923         * tree-ssanames.c: Same.
19924         * tree-vect-loop-manip.c: Same.
19925         * tree-vrp.c: Same.
19926         * tree.c: Same.
19927         * valtrack.c: Same.
19928         * vec.h: Same.
19929
19930 2015-07-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
19931
19932         PR middle-end/66726
19933         * tree-ssa-phiopt.c(factor_out_conditional_conversion): New function.
19934         tree_ssa_phiopt_worker): Call it.
19935
19936 2015-07-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
19937
19938         * cse.c (cse_insn): Calculate src_eqv for ZERO_EXTRACT.
19939         * emit-rtl.c (set_for_reg_notes): Allow ZERO_EXTRACT to set
19940         REG_EQUAL note.
19941
19942 2015-07-11  Marek Polacek  <polacek@redhat.com>
19943
19944         PR middle-end/66353
19945         * basic-block.h (has_abnormal_call_or_eh_pred_edge_p): New function.
19946         * ira-lives.c (bb_has_abnormal_call_pred): Remove function.
19947         (process_bb_node_lives): Call has_abnormal_call_or_eh_pred_edge_p
19948         rather than bb_has_abnormal_call_pred.
19949         * lra-lives.c (bb_has_abnormal_call_pred): Remove function.
19950         (process_bb_lives): Call has_abnormal_call_or_eh_pred_edge_p
19951         rather than bb_has_abnormal_call_pred.
19952
19953 2015-07-10  Anatoly Sokolov  <aesok@post.ru>
19954
19955         * config/v850/v850.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
19956         REG_OK_FOR_BASE_P_STRICT, REG_OK_FOR_INDEX_P_STRICT, STRICT,
19957         RTX_OK_FOR_BASE_P, GO_IF_LEGITIMATE_ADDRESS): Remove macros.
19958         * config/v850/v850.c (v850_reg_ok_for_base_, v850_rtx_ok_for_base_p,
19959         v850_legitimate_address_p): New functions.
19960         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
19961
19962 2015-07-10  H.J. Lu  <hongjiu.lu@intel.com>
19963
19964         PR target/66819
19965         * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow
19966         indirect sibcall with register arguments if register available
19967         for argument passing.
19968         (init_cumulative_args): Set cfun->machine->arg_reg_available
19969         to (cum->nregs > 0) or to true if function has a variable
19970         argument list.
19971         (function_arg_advance_32): Set cfun->machine->arg_reg_available
19972         to false if cum->nregs <= 0.
19973         * config/i386/i386.h (machine_function): Add arg_reg_available.
19974
19975 2015-07-10  Uros Bizjak  <ubizjak@gmail.com>
19976
19977         * config/i386/sse.md (movdi_to_sse): Use gen_lowpart
19978         and gen_higpart instead of gen_rtx_SUBREG.
19979         * config/i386/i386.md
19980         (floatdi<X87MODEF:mode>2_i387_with_xmm splitter): Ditto.
19981         (read-modify peephole2): Use gen_lowpart instead of
19982         gen_rtx_SUBREG for operand 5.
19983
19984 2015-07-10  Andrew MacLeod  <amacleod@redhat.com>
19985
19986         * config/tilepro/gen-mul-tables.cc (main): Change include list for
19987         generated files.
19988         * config/tilepro/mul-tables.c: Regenerate.
19989         * config/tilegx/mul-tables.c: Regenerate.
19990
19991 2015-07-10  Richard Biener  <rguenther@suse.de>
19992
19993         * fold-const.c (distribute_bit_expr): Remove.
19994         (fold_binary_loc): Move simplifying (A & C1) + (B & C2)
19995         to (A & C1) | (B & C2), distributing (A & B) | (A & C)
19996         to A & (B | C) and simplifying A << C1 << C2 to ...
19997         * match.pd: ... patterns here.
19998
19999 2015-07-10  Jiong Wang  <jiong.wang@arm.com>
20000
20001         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
20002         Mark mem as READONLY and NOTRAP for PIC symbol.
20003
20004 2015-07-10  Andrew MacLeod  <amacleod@redhat.com>
20005
20006         * gimple-predict.h: New file.
20007         (gimple_predict_predictor, gimple_predict_set_predictor,
20008         gimple_predict_outcome, gimple_predict_set_outcome,
20009         gimple_build_predict): Relocate here.
20010         * gimple.h (gimple_predict_predictor, gimple_predict_set_predictor,
20011         gimple_predict_outcome, gimple_predict_set_outcome): Move to
20012         gimple-predict.h.
20013         * gimple.c (gimple_build_predict): Move to gimple-predict.h
20014         * basic-block.h: Don't include cfghooks.h.
20015         * backend.h: Don't include predict.h.
20016         * cfghooks.h: Include predict.h.
20017         * gimple-pretty-print.c: Include gimple-predict.h.
20018         * gimplify.c: Likwise.
20019         * predict.c: Adjust includes.
20020         * tree-inline.c: Likewise.
20021         * asan.c: Likewise.
20022         * auto-inc-dec.c: Likewise.
20023         * auto-profile.c: Likewise.
20024         * bb-reorder.c: Likewise.
20025         * builtins.c: Likewise.
20026         * caller-save.c: Likewise.
20027         * calls.c: Likewise.
20028         * cfganal.c: Likewise.
20029         * cfgbuild.c: Likewise.
20030         * cfg.c: Likewise.
20031         * cfgcleanup.c: Likewise.
20032         * cfgexpand.c: Likewise.
20033         * cfghooks.c: Likewise.
20034         * cfgloopanal.c: Likewise.
20035         * cfgloop.c: Likewise.
20036         * cfgloopmanip.c: Likewise.
20037         * cfgrtl.c: Likewise.
20038         * cgraph.c: Likewise.
20039         * cgraphunit.c: Likewise.
20040         * combine.c: Likewise.
20041         * cprop.c: Likewise.
20042         * cse.c: Likewise.
20043         * dce.c: Likewise.
20044         * dojump.c: Likewise.
20045         * dse.c: Likewise.
20046         * except.c: Likewise.
20047         * expmed.c: Likewise.
20048         * expr.c: Likewise.
20049         * final.c: Likewise.
20050         * fold-const.c: Likewise.
20051         * function.c: Likewise.
20052         * fwprop.c: Likewise.
20053         * gcc-plugin.h: Likewise.
20054         * gcse.c: Likewise.
20055         * genattrtab.c: Likewise.
20056         * genemit.c: Likewise.
20057         * gengtype.c: Likewise.
20058         * genopinit.c: Likewise.
20059         * genoutput.c: Likewise.
20060         * genpreds.c: Likewise.
20061         * genrecog.c: Likewise.
20062         * gimple-fold.c: Likewise.
20063         * gimple-iterator.c: Likewise.
20064         * gimple-ssa-isolate-paths.c: Likewise.
20065         * gimple-ssa-strength-reduction.c: Likewise.
20066         * graph.c: Likewise.
20067         * graphite-blocking.c: Likewise.
20068         * graphite.c: Likewise.
20069         * graphite-dependences.c: Likewise.
20070         * graphite-interchange.c: Likewise.
20071         * graphite-isl-ast-to-gimple.c: Likewise.
20072         * graphite-optimize-isl.c: Likewise.
20073         * graphite-poly.c: Likewise.
20074         * graphite-scop-detection.c: Likewise.
20075         * graphite-sese-to-poly.c: Likewise.
20076         * haifa-sched.c: Likewise.
20077         * ifcvt.c: Likewise.
20078         * internal-fn.c: Likewise.
20079         * ipa-cp.c: Likewise.
20080         * ipa-profile.c: Likewise.
20081         * ipa-split.c: Likewise.
20082         * ipa-utils.c: Likewise.
20083         * ira-build.c: Likewise.
20084         * ira-color.c: Likewise.
20085         * ira-conflicts.c: Likewise.
20086         * ira-costs.c: Likewise.
20087         * ira-emit.c: Likewise.
20088         * ira-lives.c: Likewise.
20089         * jump.c: Likewise.
20090         * loop-doloop.c: Likewise.
20091         * loop-init.c: Likewise.
20092         * loop-invariant.c: Likewise.
20093         * loop-unroll.c: Likewise.
20094         * lower-subreg.c: Likewise.
20095         * lra-assigns.c: Likewise.
20096         * lra.c: Likewise.
20097         * lra-coalesce.c: Likewise.
20098         * lra-constraints.c: Likewise.
20099         * lra-lives.c: Likewise.
20100         * lto-cgraph.c: Likewise.
20101         * lto-streamer-in.c: Likewise.
20102         * mode-switching.c: Likewise.
20103         * modulo-sched.c: Likewise.
20104         * omp-low.c: Likewise.
20105         * optabs.c: Likewise.
20106         * passes.c: Likewise.
20107         * postreload.c: Likewise.
20108         * postreload-gcse.c: Likewise.
20109         * profile.c: Likewise.
20110         * recog.c: Likewise.
20111         * regstat.c: Likewise.
20112         * reload1.c: Likewise.
20113         * reorg.c: Likewise.
20114         * rtlanal.c: Likewise.
20115         * sched-ebb.c: Likewise.
20116         * sel-sched-ir.c: Likewise.
20117         * sese.c: Likewise.
20118         * shrink-wrap.c: Likewise.
20119         * simplify-rtx.c: Likewise.
20120         * stmt.c: Likewise.
20121         * store-motion.c: Likewise.
20122         * tracer.c: Likewise.
20123         * trans-mem.c: Likewise.
20124         * tree-call-cdce.c: Likewise.
20125         * tree-cfg.c: Likewise.
20126         * tree-cfgcleanup.c: Likewise.
20127         * tree-chkp.c: Likewise.
20128         * tree-complex.c: Likewise.
20129         * tree-eh.c: Likewise.
20130         * tree-if-conv.c: Likewise.
20131         * tree-loop-distribution.c: Likewise.
20132         * tree-outof-ssa.c: Likewise.
20133         * tree-parloops.c: Likewise.
20134         * tree-predcom.c: Likewise.
20135         * tree-pretty-print.c: Likewise.
20136         * tree-profile.c: Likewise.
20137         * tree-sra.c: Likewise.
20138         * tree-ssa.c: Likewise.
20139         * tree-ssa-coalesce.c: Likewise.
20140         * tree-ssa-dce.c: Likewise.
20141         * tree-ssa-dom.c: Likewise.
20142         * tree-ssa-forwprop.c: Likewise.
20143         * tree-ssa-ifcombine.c: Likewise.
20144         * tree-ssa-loop-ch.c: Likewise.
20145         * tree-ssa-loop-im.c: Likewise.
20146         * tree-ssa-loop-ivcanon.c: Likewise.
20147         * tree-ssa-loop-ivopts.c: Likewise.
20148         * tree-ssa-loop-manip.c: Likewise.
20149         * tree-ssa-loop-prefetch.c: Likewise.
20150         * tree-ssa-loop-unswitch.c: Likewise.
20151         * tree-ssa-math-opts.c: Likewise.
20152         * tree-ssa-phiopt.c: Likewise.
20153         * tree-ssa-pre.c: Likewise.
20154         * tree-ssa-reassoc.c: Likewise.
20155         * tree-ssa-sink.c: Likewise.
20156         * tree-ssa-tail-merge.c: Likewise.
20157         * tree-ssa-threadedge.c: Likewise.
20158         * tree-ssa-threadupdate.c: Likewise.
20159         * tree-switch-conversion.c: Likewise.
20160         * tree-tailcall.c: Likewise.
20161         * tree-vect-data-refs.c: Likewise.
20162         * tree-vect-loop.c: Likewise.
20163         * tree-vect-loop-manip.c: Likewise.
20164         * tree-vectorizer.c: Likewise.
20165         * tree-vrp.c: Likewise.
20166         * ubsan.c: Likewise.
20167         * value-prof.c: Likewise.
20168         * varasm.c: Likewise.
20169         * var-tracking.c: Likewise.
20170         * config/aarch64/aarch64-builtins.c: Likewise.
20171         * config/aarch64/aarch64.c: Likewise.
20172         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
20173         * config/alpha/alpha.c: Likewise.
20174         * config/arc/arc.c: Likewise.
20175         * config/arm/arm.c: Likewise.
20176         * config/avr/avr.c: Likewise.
20177         * config/bfin/bfin.c: Likewise.
20178         * config/c6x/c6x.c: Likewise.
20179         * config/cr16/cr16.c: Likewise.
20180         * config/cris/cris.c: Likewise.
20181         * config/darwin.c: Likewise.
20182         * config/darwin-c.c: Likewise.
20183         * config/epiphany/epiphany.c: Likewise.
20184         * config/epiphany/mode-switch-use.c: Likewise.
20185         * config/epiphany/resolve-sw-modes.c: Likewise.
20186         * config/fr30/fr30.c: Likewise.
20187         * config/frv/frv.c: Likewise.
20188         * config/ft32/ft32.c: Likewise.
20189         * config/h8300/h8300.c: Likewise.
20190         * config/i386/i386.c: Likewise.
20191         * config/i386/winnt.c: Likewise.
20192         * config/ia64/ia64.c: Likewise.
20193         * config/iq2000/iq2000.c: Likewise.
20194         * config/lm32/lm32.c: Likewise.
20195         * config/m32c/m32c.c: Likewise.
20196         * config/m32r/m32r.c: Likewise.
20197         * config/m68k/m68k.c: Likewise.
20198         * config/mcore/mcore.c: Likewise.
20199         * config/mep/mep.c: Likewise.
20200         * config/microblaze/microblaze.c: Likewise.
20201         * config/mips/mips.c: Likewise.
20202         * config/mmix/mmix.c: Likewise.
20203         * config/mn10300/mn10300.c: Likewise.
20204         * config/moxie/moxie.c: Likewise.
20205         * config/msp430/msp430.c: Likewise.
20206         * config/nds32/nds32.c: Likewise.
20207         * config/nds32/nds32-cost.c: Likewise.
20208         * config/nds32/nds32-fp-as-gp.c: Likewise.
20209         * config/nds32/nds32-intrinsic.c: Likewise.
20210         * config/nds32/nds32-isr.c: Likewise.
20211         * config/nds32/nds32-md-auxiliary.c: Likewise.
20212         * config/nds32/nds32-memory-manipulation.c: Likewise.
20213         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
20214         * config/nds32/nds32-predicates.c: Likewise.
20215         * config/nios2/nios2.c: Likewise.
20216         * config/nvptx/nvptx.c: Likewise.
20217         * config/pa/pa.c: Likewise.
20218         * config/pdp11/pdp11.c: Likewise.
20219         * config/rl78/rl78.c: Likewise.
20220         * config/rs6000/rs6000.c: Likewise.
20221         * config/rx/rx.c: Likewise.
20222         * config/s390/s390.c: Likewise.
20223         * config/sh/sh.c: Likewise.
20224         * config/sh/sh-mem.cc: Likewise.
20225         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
20226         * config/sh/sh_treg_combine.cc: Likewise.
20227         * config/sparc/sparc.c: Likewise.
20228         * config/spu/spu.c: Likewise.
20229         * config/stormy16/stormy16.c: Likewise.
20230         * config/tilegx/tilegx.c: Likewise.
20231         * config/tilepro/tilepro.c: Likewise.
20232         * config/v850/v850.c: Likewise.
20233         * config/vax/vax.c: Likewise.
20234         * config/visium/visium.c: Likewise.
20235         * config/xtensa/xtensa.c: Likewise.
20236
20237 2015-07-10  Richard Biener  <rguenther@suse.de>
20238
20239         * genmatch.c (dt_node::gen_kids_1): Fix indenting of case labels.
20240         (decision_tree::gen_gimple): Likewise.
20241         (decision_tree::gen_generic): Likewise.
20242
20243 2015-07-10  Uros Bizjak  <ubizjak@gmail.com>
20244
20245         PR target/66813
20246         * config/i386/i386.c (ix86_md_asm_adjust): Emit movstrictqi
20247         sequence for TARGET_ZERO_EXTEND_WITH_AND targets.
20248
20249 2015-07-10  Jakub Jelinek  <jakub@redhat.com>
20250
20251         PR middle-end/66820
20252         * gimplify.c (maybe_fold_stmt): Don't fold in ORT_PARALLEL
20253         or ORT_TASK contexts.
20254         * omp-low.c (lower_omp): Call fold_stmt even if taskreg_nesting_level
20255         is non-zero.
20256
20257 2015-07-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20258
20259         * expr.c (expand_cond_expr_using_cmove): Fix typos in comment
20260         above function.
20261
20262 2015-07-10  Tom de Vries  <tom@codesourcery.com>
20263
20264         * tree-parloops.c (try_transform_to_exit_first_loop_alt): If not found,
20265         insert nit + 1 bound.
20266
20267 2015-07-10  Richard Biener  <rguenther@suse.de>
20268
20269         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p):
20270         Use ifcvt_could_trap_p also when not flag_tree_loop_if_convert_stores.
20271         (if_convertible_loop_p_1): For this always compute bb predicates.
20272         (if_convertible_loop_p): And free them.
20273
20274 2015-07-10  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
20275
20276         * ipa-icf.c (sem_item_optimizer::do_congruence_step): Fix typo
20277         in dump message.
20278
20279 2015-07-10  Richard Biener  <rguenther@suse.de>
20280
20281         PR tree-optimization/66823
20282         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Fix
20283         inverted predicate.
20284
20285 2015-07-09  Steve Ellcey  <sellcey@imgtec.com>
20286
20287         * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): Update
20288         to handle mips[32|64]r3 and mips[32|64]r5.
20289
20290 2015-07-09  Jakub Jelinek  <jakub@redhat.com>
20291
20292         PR middle-end/66633
20293         * tree-nested.c (get_static_chain): Or in a flag into
20294         info->static_chain_added.
20295         (get_frame_field, get_nonlocal_debug_decl): Likewise.
20296         (convert_nonlocal_omp_clauses, convert_local_omp_clauses): Revert
20297         2015-07-01 changes.
20298         (convert_tramp_reference_stmt): If a frame_decl or chain_decl
20299         is needed newly inside of GIMPLE_OMP_{PARALLEL,TASK,TARGET} body,
20300         add it to clauses.
20301
20302         PR tree-optimization/66718
20303         * tree-vect-stmts.c (struct simd_call_arg_info): Add simd_lane_linear
20304         field.
20305         (vect_simd_lane_linear): New function.
20306         (vectorizable_simd_clone_call): Support using linear arguments for
20307         addresses of arrays elements indexed by GOMP_SIMD_LANE result.
20308
20309 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
20310
20311         PR target/66821
20312         * config/i386/i386.c (iamcu_cost): Adjust variable shift costs.
20313
20314 2015-07-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
20315
20316         * config/rs6000/rs6000-protos.h (rs6000_secondary_reload_memory):
20317         Use machine mode, not enum machine_mode in the prototype.
20318
20319         * config/rs6000/rs6000.h (FLOAT128_IEEE_P): New helper macros to
20320         classify 128-bit floating point support.
20321         (FLOAT128_IBM_P): Likewise.
20322         (FLOAT128_VECTOR_P): Likewise.
20323         (FLOAT128_2REG_P): Likewise.
20324         (SCALAR_FLOAT_MODE_NOT_VECTOR_P): Likewise.
20325         (SLOW_UNALIGNED_ACCESS): Add IEEE 128-bit floating point support.
20326         (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
20327         (HARD_REGNO_CALL_PART_CLOBBERED): Likewise.
20328
20329         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Drop
20330         tests against TFmode/TDmode, since those modes do not use VSX
20331         addresses.
20332         (rs6000_hard_regno_mode_ok): Add IEEE 128-bit floating point
20333         support.
20334         (rs6000_init_hard_regno_mode_ok): Use new helper macros instead of
20335         tests against TFmode, etc.
20336         (invalid_e500_subreg): Add tests against IFmode/KFmode.
20337         (reg_offset_addressing_ok_p): Likewise.
20338         (rs6000_legitimate_offset_address_p): Likewise.
20339         (rs6000_legitimize_address): Likewise.
20340         (rs6000_legitimize_reload_address): Likewise.
20341         (rs6000_legitimate_address_p): Clean up tests against TFmode and
20342         TDmode to use the new helper macros, which will include IFmode and
20343         KFmode.
20344         (rs6000_emit_move): Likewise.
20345         (rs6000_darwin64_record_arg_recurse): Likewise.
20346         (print_operand): Likewise.
20347         (rs6000_member_type_forces_blk): Treat IEEE 128-bit floating point
20348         that uses a single vector register as a vector and not as a
20349         floating point register in terms of the calling sequence.
20350         (rs6000_discover_homogeneous_aggregate): Likewise.
20351         (rs6000_return_in_memory): Likewise.
20352         (init_cumulative_args): Likewise.
20353         (rs6000_function_arg_boundary): Likewise.
20354         (rs6000_function_arg_advance_1): Likewise.
20355         (rs6000_function_arg): Likewise.
20356         (rs6000_pass_by_reference): Likewise.
20357         (rs6000_gimplify_va_arg): Likewise.
20358         (rs6000_secondary_reload_memory): Use machine_mode not enum
20359         machine mode.
20360         (rs6000_split_multireg_move): Use new helper macros.
20361         (spe_func_has_64bit_regs_p): Likewise.
20362         (rs6000_output_function_epilogue): Add IFmode/KFmode support.
20363         (output_toc): Use new helper macros.
20364         (rs6000_register_move_cost): Likewise.
20365         (rs6000_function_value): Add IEEE 128-bit floating point calling
20366         sequence support.
20367         (rs6000_libcall_value): Likewise.
20368         (rs6000_scalar_mode_supported_p): Add support for IEEE 128-bit
20369         floating point support.
20370         (rs6000_vector_mode_supported_p): Likewise.
20371
20372 2015-07-09  Vladimir Makarov  <vmakarov@redhat.com>
20373
20374         PR rtl-optimization/66782
20375         * lra-int.h (struct lra_insn_recog_data): Add comment about
20376         clobbered hard regs for arg_hard_regs.
20377         * lra.c (lra_set_insn_recog_data): Add clobbered hard regs.
20378         * lra-lives.c (process_bb_lives): Process clobbered hard regs.
20379         Add condition for processing used hard regs.
20380         * lra-constraints.c (update_ebb_live_info, inherit_in_ebb):
20381         Process clobbered hard regs.
20382
20383 2015-07-09  Michael Matz  <matz@suse.de>
20384
20385         * genmatch.c (fprintf_indent): New function.
20386         (operand::gen_transform): Add indent parameter.
20387         (expr::gen_transform, c_expr::gen_transform,
20388         capture::gen_transform): Ditto and use fprintf_indent.
20389         (dt_node::gen, dt_node::gen_kids, dt_node::gen_kids_1): Ditto.
20390         (dt_operand::gen, dt_operand::gen_predicate,
20391         dt_operand::gen_match_op, dt_operand::gen_gimple_expr,
20392         dt_operand::gen_generic_expr, dt_simplify::gen): Ditto.
20393         (decision_tree::gen_gimple): Adjust calls and indent generated
20394         code.
20395         (decision_tree::gen_generic): Ditto.
20396         (write_predicate): Ditto.
20397
20398 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
20399
20400         PR target/66814
20401         * config/i386/predicates.md (nonimmediate_gr_operand): New predicate.
20402         * config/i386/i386.md (not peephole2): Use nonimmediate_gr_operand.
20403         (varous peephole2s): Use {GENERAL,SSE,MMX}_REGNO_P instead of
20404         {GENERAL,SSE,MMX}_REG_P where appropriate.
20405
20406 2015-07-09  Andrew MacLeod  <amacleod@redhat.com>
20407
20408         * lto-streamer.h: Don't include target.h and alloc-pool.h.
20409         * builtins.c: Adjust includes.
20410         * gimple.c: Likewise.
20411         * ipa-icf.c: Likewise.
20412         * lto-opts.c: Likewise.
20413         * ipa-reference.c: Likewise.
20414         * lto-section-out.c: Likewise.
20415         * lto-streamer-in.c: Likewise.
20416         * lto-streamer-out.c: Likewise.
20417         * opts-global.c: Likewise.
20418         * symtab.c: Likewise.
20419         * tree-chkp.c: Likewise.
20420         * tree-ssa-live.c: Likewise.
20421         * tree-streamer-in.c: Likewise.
20422         * tree-streamer-out.c: Likewise.
20423         * config/darwin.c: Likewise.
20424         * config/i386/winnt.c: Likewise.
20425
20426 2015-07-09  Richard Biener  <rguenther@suse.de>
20427
20428         * genmatch.c (struct expr): Add force_single_use flag.
20429         (expr::expr): Add copy constructor.
20430         (capture_info::walk_match): Gather force_single_use captures.
20431         (expr::gen_transform): Use possibly NULLified sequence.
20432         (dt_simplify::gen): Apply single-use restrictions by NULLifying
20433         seq if any constrained expr is not single-use.
20434         (parser::parse_expr): Refactor to allow multiple flags.  Handle
20435         's' flag to force an expression have a single-use if the pattern
20436         simplifies to more than one statement.
20437         * match.pd: Convert most single_use conditionals to :s flags.
20438
20439 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
20440
20441         * config/i386/iamcu.h (ASM_OUTPUT_ALIGNED_BSS): New.
20442         (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
20443         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
20444
20445 2015-07-09  Andrew MacLeod  <amacleod@redhat.com>
20446
20447         * flags.h: Don't include flag-types.h or options.h.
20448         * opts-common.c: Adjust includes.
20449         * opts-global.c: Likewise.
20450         * common/config/epiphany/epiphany-common.c: Likewise.
20451
20452 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
20453
20454         PR target/66818
20455         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Defined to 32
20456         for IA MCU.
20457
20458 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
20459
20460         PR target/66817
20461         * config/i386/i386.c (ix86_return_in_memory): Return true
20462         if int_size_in_bytes returns negative for IA MCU.
20463
20464 2015-07-09  Marek Polacek  <polacek@redhat.com>
20465
20466         PR tree-optimization/66718
20467         * Makefile.in (OBJS): Add gimple-laddress.o.
20468         * passes.def: Schedule pass_laddress.
20469         * timevar.def (DEFTIMEVAR): Add TV_GIMPLE_LADDRESS.
20470         * tree-pass.h (make_pass_laddress): Declare.
20471         * gimple-laddress.c: New file.
20472
20473 2015-07-09  Richard Biener  <rguenther@suse.de>
20474
20475         * toplev.c (compile_file): Reset maximum_field_alignment after parsing.
20476
20477 2015-07-09  Richard Biener  <rguenther@suse.de>
20478
20479         PR tree-optimization/66807
20480         * tree-chkp-opt.c (chkp_opt_fini): Free post dominator info.
20481
20482 2015-07-08  Kito Cheng  <kito.cheng@gmail.com>
20483
20484         * function.c (stack_protect_epilogue): Use if rather than switch for
20485         check targetm.have_stack_protect_test.
20486
20487 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20488
20489         * defaults.h: Provide default for WORD_REGISTER_OPERATIONS.
20490         * config/alpha/alpha.h: Define WORD_REGISTER_OPERATIONS to 1.
20491         * config/arc/arc.h: Likewise.
20492         * config/arm/arm.h: Likewise.
20493         * config/bfin/bfin.h: Likewise.
20494         * config/epiphany/epiphany.h: Likewise.
20495         * config/frv/frv.h: Likewise.
20496         * config/ia64/ia64.h: Likewise.
20497         * config/iq2000/iq2000.h: Likewise.
20498         * config/lm32/lm32.h: Likewise.
20499         * config/m32r/m32r.h: Likewise.
20500         * config/mcore/mcore.h: Likewise.
20501         * config/mep/mep.h: Likewise.
20502         * config/microblaze/microblaze.h: Likewise.
20503         * config/mips/mips.h: Likewise.
20504         * config/mmix/mmix.h: Likewise.
20505         * config/mn10300/mn10300.h: Likewise.
20506         * config/nds32/nds32.h: Likewise.
20507         * config/nios2/nios2.h: Likewise.
20508         * config/pa/pa.h: Likewise.
20509         * config/rl78/rl78.h: Likewise.
20510         * config/sh/sh.h: Likewise.
20511         * config/sparc/sparc.h: Likewise.
20512         * config/stormy16/stormy16.h: Likewise.
20513         * config/tilegx/tilegx.h: Likewise.
20514         * config/tilepro/tilepro.h: Likewise.
20515         * config/v850/v850.h: Likewise.
20516         * config/xtensa/xtensa.h: Likewise.
20517         * doc/tm.texi: Regenerate.
20518         * doc/tm.texi.in: Adjust.
20519         * combine.c (simplify_set): Likewise.
20520         (simplify_comparison): Likewise.
20521         * expr.c (store_constructor): Likewise.
20522         * internal-fn.c (expand_arith_overflow): Likewise.
20523         * reload.c (push_reload): Likewise.
20524         (find_reloads): Likewise.
20525         (find_reloads_subreg_address): Likewise.
20526         * reload1.c (eliminate_regs_1): Likewise.
20527         * rtlanal.c (nonzero_bits1): Likewise.
20528         (num_sign_bit_copies1): Likewise.
20529         * simplify-rtx.c (simplify_truncation): Likewise.
20530
20531 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20532
20533         * auto-inc-dec.c (pass_inc_dec::execute): Don't check the value
20534         of AUTO_INC_DEC with the preprocessor.
20535         * combine.c (combine_instructions): Likewise.
20536         (can_combine_p): Likewise.
20537         (try_combine): Likewise.
20538         * emit-rtl.c (try_split): Likewise.
20539         * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
20540         * lower-subreg.c (resolve_simple_move): Likewise.
20541         * lra.c (update_inc_notes): Likewise.
20542         * recog.c (asm_operand_ok): Likewise.
20543         (constrain_operands): Likewise.
20544         * regrename.c (scan_rtx_address): Likewise.
20545         * reload.c (update_auto_inc_notes): Likewise.
20546         (reg_inc_found_and_valid_p): Likewise.
20547         * reload1.c (reload): Likewise.
20548         (emit_input_reload_insns): Likewise.
20549         (delete_output_reload): Likewise.
20550         * sched-deps.c (init_insn_reg_pressure_info): Likewise.
20551         * valtrack.c (cleanup_auto_inc_dec): Likewise.
20552
20553 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20554
20555         * rtl.h: Always define AUTO_INC_DEC.
20556         * auto-inc-dec.c (pass_inc_dec::execute): Adjust.
20557         * combine.c (combine_instructions): Likewise.
20558         (can_combine_p): Likewise.
20559         (try_combine): Likewise.
20560         * emit-rtl.c (try_split): Likewise.
20561         * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
20562         * lower-subreg.c (resolve_simple_move): Likewise.
20563         * lra.c (update_inc_notes): Likewise.
20564         * recog.c (asm_operand_ok): Likewise.
20565         (constrain_operands): Likewise.
20566         * regrename.c (scan_rtx_address): Likewise.
20567         * reload.c (update_auto_inc_notes): Likewise.
20568         (find_equiv_reg): Likewise.
20569         * reload1.c (reload): Likewise.
20570         (reload_as_needed): Likewise.
20571         (choose_reload_regs): Likewise.
20572         (emit_input_reload_insns): Likewise.
20573         (delete_output_reload): Likewise.
20574         * sched-deps.c (init_insn_reg_pressure_info): Likewise.
20575         * valtrack.c (cleanup_auto_inc_dec): Likewise.
20576
20577 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20578
20579         * combine.c (can_combine_def_p): Don't check the value of
20580         HARD_FRAME_POINTER_IS_FRAME_POINTER with the preprocessor.
20581         (combinable_i3pat): Likewise.
20582         (mark_used_regs_combine): Likewise.
20583         * regrename.c (rename_chains): Likewise.
20584         * reload.c (find_reloads_address): Likewise.
20585         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
20586
20587 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20588
20589         * combine.c (update_rsp_from_reg_equal): Don't check if
20590         SHORT_IMMEDIATES_SIGN_EXTEND is defined.
20591         (reg_nonzero_bits_for_combine): Likewise.
20592         * config/alpha/alpha.h: Define SHORT_IMMEDIATES_SIGN_EXTEND to
20593         1.
20594         * config/frv/frv.h: Likewise.
20595         * config/lm32/lm32.h: Likewise.
20596         * config/mep/mep.h: Likewise.
20597         * config/mips/mips.h: Likewise.
20598         * config/rs6000/rs6000.h: Likewise.
20599         * config/sh/sh.h: Likewise.
20600         * config/tilegx/tilegx.h (enum reg_class): Likewise.
20601         * config/tilepro/tilepro.h: Likewise.
20602         * defaults.h: Add default for SHORT_IMMEDIATES_SIGN_EXTEND.
20603         * doc/tm.texi: Regenerate.
20604         * doc/tm.texi.in: Adjust.
20605         * rtlanal.c (nonzero_bits1): Likewise.
20606
20607 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20608
20609         * combine.c (do_SUBST_MODE): Don't check the value of HAVE_cc0
20610         with the preprocessor.
20611         (combine_instructions): Likewise.
20612         (try_combine): Likewise.
20613         (subst): Likewise.
20614         (distribute_notes): Likewise.
20615
20616 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20617
20618         * combine.c (try_combine): Don't check if LOAD_EXTEND_OP is
20619         defined.
20620         (simplify_set): Likewise.
20621         * cse.c (cse_insn): Likewise.
20622         * fold-const.c (fold_single_bit_test): Likewise.
20623         (fold_unary_loc): Likewise.
20624         * postreload.c (reload_cse_simplify_set): Likewise.
20625         (reload_cse_simplify_operands): Likewise.
20626
20627 2015-07-08  Jiong Wang  <jiong.wang@arm.com>
20628
20629         * config/aarch64/aarch64.c (aarch64_unspec_may_trap_p): New function.
20630         (TARGET_UNSPEC_MAY_TRAP_P): Define as aarch64_unspec_may_trap_p.
20631
20632 2015-07-08  H.J. Lu  <hongjiu.lu@intel.com>
20633
20634         PR target/66746
20635         * config/i386/x86intrin.h: Include <adxintrin.h> even if
20636         __iamcu__ is defined.
20637
20638 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
20639
20640         * config/i386/predicates.md (general_reg_operand): Use GENERAL_REGNO_P.
20641
20642 2015-07-08  Iain Sandoe  <iain@codesourcery.com>
20643
20644         PR target/66523
20645         * config/darwin.c (darwin_mark_decl_preserved): Exclude 'L' label
20646         names from preservation.
20647
20648 2015-07-08  H.J. Lu  <hongjiu.lu@intel.com>
20649
20650         PR target/66806
20651         * config/i386/i386.c (type_natural_mode): Don't warn vector ABI
20652         change for IAMCU.
20653         (function_arg_advance_32): Don't pass vectors in registers for
20654         IAMCU.
20655         (function_arg_32): Likewise.
20656         (ix86_return_in_memory): Don't return vectors in registers for
20657         IAMCU.
20658
20659 2015-07-08  Vladimir Makarov  <vmakarov@redhat.com>
20660
20661         PR middle-end/66334
20662         * ira-lives.c (process_bb_node_lives): Make conflicts with PIC
20663         hard regno live at the start of BB with incoming abnormal edges.
20664         * lra-lives.c (process_bb_lives): Ditto.
20665
20666 2015-07-08  Thomas Schwinge  <thomas@codesourcery.com>
20667
20668         PR libgomp/65099
20669         * config/nvptx/mkoffload.c (main): Create an offload image only in
20670         64-bit configurations.
20671
20672 2015-07-08  Martin Liska  <mliska@suse.cz>
20673
20674         PR bootstrap/66744
20675         * tree-sra.c (create_access_1): Call ctor without brackets.
20676         (create_artificial_child_access): Likewise.
20677
20678 2015-07-08  Richard Biener  <rguenther@suse.de>
20679
20680         PR tree-optimization/66793
20681         * gimple-ssa-isolate-paths.c (insert_trap_and_remove_trailing_statemen):
20682         Properly split the block after stmts ending it.
20683
20684 2015-07-08  Richard Biener  <rguenther@suse.de>
20685
20686         PR tree-optimization/66794
20687         * passes.c (execute_function_todo): Assert that post-dominators
20688         are not computed.
20689         * gimple-ssa-isolate-paths.c (gimple_ssa_isolate_erroneous_paths):
20690         Free post-dominators.
20691
20692 2015-07-08  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
20693
20694         * config/s390/s390.c (s390_init_frame_layout): Replace assertion
20695         with early exit.
20696
20697 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
20698
20699         * config/i386/i386.md (*jcc_bt<mode>): Only allow const_int values
20700         more than or equal 8 and less than 32 when optimizing for size.
20701
20702 2015-07-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20703
20704         * config/arm/arm.c (arm_new_rtx_costs): Initialise cost to
20705         COSTS_N_INSNS (1) and increment it appropriately throughout the
20706         function.
20707
20708 2015-07-08  Richard Biener  <rguenther@suse.de>
20709
20710         * fold-const.c (fold_widened_comparison): Fix inverted comparison.
20711
20712 2015-07-08  Alan Modra  <amodra@gmail.com>
20713
20714         * target.def (rtx_costs): Remove "code" param, add "mode".
20715         * rtl.h (rtx_cost, get_full_rtx_cost): Update prototype.
20716         (set_src_cost, get_full_set_src_cost): Likewise.  Move later in file.
20717         (set_rtx_cost, get_full_set_rtx_cost): Move later in file.
20718         * rtlanal.c (rtx_cost): Add "mode" parameter.  Update targetm.rtx_costs
20719         call.  Track mode when given in rtx.
20720         (get_full_rtx_cost): Add "mode" parameter.  Update rtx_cost calls.
20721         (default_address_cost): Pass Pmode to rtx_cost.
20722         (insn_rtx_cost): Pass dest mode of set to set_src_cost.
20723         * cprop.c (try_replace_reg): Ensure set_rtx_cost is not called
20724         with NULL set.
20725         * cse.c (COST, COST_IN): Add MODE param.  Update all uses.
20726         (notreg_cost): Add mode param.  Use it.
20727         * gcse.c (want_to_gcse_p): Delete forward declaration.  Add
20728         mode param and pass to set_src_cost.  Update all calls.
20729         (hash_scan_set): Formatting.
20730         * hooks.c (hook_bool_rtx_int_int_int_intp_bool_false): Delete.
20731         (hook_bool_rtx_mode_int_int_intp_bool_false): New function.
20732         * hooks.h: Ditto.
20733         * expmed.c (init_expmed_one_conv, init_expmed_one_mode,
20734         init_expmed, expand_mult, mult_by_coeff_cost, expand_smod_pow2,
20735         emit_store_flag): Update set_src_cost and rtx_cost calls.
20736         * auto-inc-dec.c (attempt_change): Likewise.
20737         * calls.c (precompute_register_parameters): Likewise.
20738         * combine.c (expand_compound_operation, make_extraction,
20739         force_to_mode, distribute_and_simplify_rtx): Likewise.
20740         * dojump.c (prefer_and_bit_test): Likewise.
20741         * dse.c (find_shift_sequence): Likewise.
20742         * expr.c (compress_float_constant): Likewise.
20743         * fwprop.c (should_replace_address, try_fwprop_subst): Likewise.
20744         * ifcvt.c (noce_try_sign_mask): Likewise.
20745         * loop-doloop.c (doloop_optimize): Likewise.
20746         * loop-invariant.c (create_new_invariant): Likewise.
20747         * lower-subreg.c (shift_cost, compute_costs): Likewise.
20748         * optabs.c (avoid_expensive_constant, prepare_cmp_insn,
20749         lshift_cheap_p): Likewise.
20750         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
20751         try_replace_in_use, reload_cse_move2add): Likewise.
20752         * reload1.c (calculate_elim_costs_all_insns, note_reg_elim_costly):
20753         Likewise.
20754         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
20755         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
20756         * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Likewise.
20757         * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
20758         * config/aarch64/aarch64.c (aarch64_rtx_costs): Delete "code" param,
20759         add "mode" param.  Use "mode: in place of GET_MODE (x).  Pass mode
20760         to rtx_cost calls.
20761         * config/alpha/alpha.c (alpha_rtx_costs): Likewise.
20762         * config/arc/arc.c (arc_rtx_costs): Likewise.
20763         * config/arm/arm.c (arm_rtx_costs): Likewise.
20764         * config/avr/avr.c (avr_rtx_costs, avr_rtx_costs_1): Likewise.
20765         * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
20766         * config/c6x/c6x.c (c6x_rtx_costs): Likewise.
20767         * config/cris/cris.c (cris_rtx_costs): Likewise.
20768         * config/epiphany/epiphany.c (epiphany_rtx_costs): Likewise.
20769         * config/frv/frv.c (frv_rtx_costs): Likewise.
20770         * config/h8300/h8300.c (h8300_rtx_costs): Likewise.
20771         * config/i386/i386.c (ix86_rtx_costs): Likewise.
20772         * config/ia64/ia64.c (ia64_rtx_costs): Likewise.
20773         * config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
20774         * config/lm32/lm32.c (lm32_rtx_costs): Likewise.
20775         * config/m32c/m32c.c (m32c_rtx_costs): Likewise.
20776         * config/m32r/m32r.c (m32r_rtx_costs): Likewise.
20777         * config/m68k/m68k.c (m68k_rtx_costs): Likewise.
20778         * config/mcore/mcore.c (mcore_rtx_costs): Likewise.
20779         * config/mep/mep.c (mep_rtx_cost): Likewise.
20780         * config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
20781         * config/mips/mips.c (mips_rtx_costs): Likewise.
20782         * config/mmix/mmix.c (mmix_rtx_costs): Likewise.
20783         * config/mn10300/mn10300.c (mn10300_rtx_costs): Likewise.
20784         * config/msp430/msp430.c (msp430_rtx_costs): Likewise.
20785         * config/nds32/nds32-cost.c (nds32_rtx_costs_impl): Likewise.
20786         * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Likewise.
20787         * config/nds32/nds32.c (nds32_rtx_costs): Likewise.
20788         * config/nios2/nios2.c (nios2_rtx_costs): Likewise.
20789         * config/pa/pa.c (hppa_rtx_costs): Likewise.
20790         * config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
20791         * config/rl78/rl78.c (rl78_rtx_costs): Likewise.
20792         * config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
20793         * config/s390/s390.c (s390_rtx_costs): Likewise.
20794         * config/sh/sh.c (sh_rtx_costs): Likewise.
20795         * config/sparc/sparc.c (sparc_rtx_costs): Likewise.
20796         * config/spu/spu.c (spu_rtx_costs): Likewise.
20797         * config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
20798         * config/tilegx/tilegx.c (tilegx_rtx_costs): Likewise.
20799         * config/tilepro/tilepro.c (tilepro_rtx_costs): Likewise.
20800         * config/v850/v850.c (v850_rtx_costs): Likewise.
20801         * config/vax/vax.c (vax_rtx_costs): Likewise.
20802         * config/visium/visium.c (visium_rtx_costs): Likewise.
20803         * config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.
20804         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Change type of
20805         "code" param, and pass as outer_code to first rtx_cost call.  Pass
20806         mode to rtx_cost calls.
20807         (aarch64_address_cost, aarch64_if_then_else_costs): Update rtx_cost
20808         calls.
20809         (aarch64_rtx_costs_wrapper): Update.
20810         * config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs,
20811         arm_unspec_cost, arm_new_rtx_costs, arm_slowmul_rtx_costs): Update
20812         rtx_cost calls.
20813         * config/avr/avr.c (avr_final_prescan_insn): Update set_src_cost
20814         and rtx_cost calls.
20815         (avr_operand_rtx_cost): Similarly.
20816         (avr_rtx_costs_1): Correct mode passed to avr_operand_rtx_cost
20817         for subexpressions of ZERO_EXTEND, SIGN_EXTEND and COMPARE.
20818         * config/mips/mips.c (mips_stack_address_p): Comment typo.
20819         (mips_binary_cost): Update rtx_cost and set_src_cost calls.
20820         (mips_rtx_costs): Use GET_MODE (x) to detect const_int.
20821         * config/mn10300/mn10300.c (mn10300_address_cost): Pass Pmode to
20822         rtx_cost.
20823         (mn10300_rtx_costs): Correct mode passed to mn10300_address_cost.
20824         * config/rs6000/rs6000.c (rs6000_debug_rtx_costs): Update.
20825         * config/sh/sh.c (and_xor_ior_costs): Update rtx_cost call.
20826         * doc/tm.texi: Regenerate.
20827
20828 2015-07-07  Andrew MacLeod  <amacleod@redhat.com>
20829
20830         * tree-core.h: Include symtab.h.
20831         * rtl.h: Include hard-reg-set.h but not flags.h.
20832         (HARD_CONST): Remove condition compilation involving HARD_CONST since
20833         hard-reg-set.h is always included.
20834         * regs.h: Don't include hard-reg-set.h or rtl.h.
20835         * cfg.h: Include dominance.h.
20836         * gimple.h: Include tree-ssa-alias.h and gimple-expr.h.
20837         * backend.h: New.  Aggregate commonly used backend header files.
20838         * gimple-ssa.h: Don't include tree-hasher.h.
20839         * ssa.h: New.  Aggregate commonly used SSA header files.
20840         * regset.h: Remove bitmap.h and hard-reg-set.h #includes.
20841         * sel-sched-ir.h: Flatten includes.
20842         * lra-int.h: Flatten completely.
20843         * sel-sched-dump.h: Flatten includes.
20844         * ira-int.h: Flatten includes.
20845         * gimple-streamer.h: Remove all includes.
20846         * cfgloop.h: Remove all #includes except cfgloopmanip.h.
20847         * resource.h: Flatten hard-reg-set.h and df.h.
20848         * sched-int.h: Flatten insn-arrt.h and df.h.
20849         * valtrack.h: flatten bitmap.h, df.h, and rtl.h
20850         * df.h: Flatten includes, leaving regset.h, alloc-pool.h and timevar.h.
20851         * genattrtab.c (write_header): Adjust generated includes.
20852         * genautomata.c (main): Likewise.
20853         * genconditions.c (write-header): Likewise.
20854         * genemit.c (main): Likewise.
20855         * gengtype.c (open_base_files): Likewise.
20856         * genopinit.c (main): Likewise.
20857         * genoutput.c (output_prologue): Likewise.
20858         * genpeep.c (main): Likewise.
20859         * genpreds.c (write_insn_preds_c): Likewise.
20860         * genrecog.c (write_header): Likewise.
20861         * alias.c: Adjust includes.
20862         * asan.c: Likewise.
20863         * attribs.c: Likewise.
20864         * auto-inc-dec.c: Likewise.
20865         * auto-profile.c: Likewise.
20866         * bb-reorder.c: Likewise.
20867         * bt-load.c: Likewise.
20868         * builtins.c: Likewise.
20869         * caller-save.c: Likewise.
20870         * calls.c: Likewise.
20871         * ccmp.c: Likewise.
20872         * cfg.c: Likewise.
20873         * cfganal.c: Likewise.
20874         * cfgbuild.c: Likewise.
20875         * cfgcleanup.c: Likewise.
20876         * cfgexpand.c: Likewise.
20877         * cfghooks.c: Likewise.
20878         * cfgloop.c: Likewise.
20879         * cfgloopanal.c: Likewise.
20880         * cfgloopmanip.c: Likewise.
20881         * cfgrtl.c: Likewise.
20882         * cgraph.c: Likewise.
20883         * cgraphbuild.c: Likewise.
20884         * cgraphclones.c: Likewise.
20885         * cgraphunit.c: Likewise.
20886         * cilk-common.c: Likewise.
20887         * combine-stack-adj.c: Likewise.
20888         * combine.c: Likewise.
20889         * compare-elim.c: Likewise.
20890         * convert.c: Likewise.
20891         * coverage.c: Likewise.
20892         * cppbuiltin.c: Likewise.
20893         * cprop.c: Likewise.
20894         * cse.c: Likewise.
20895         * cselib.c: Likewise.
20896         * data-streamer-in.c: Likewise.
20897         * data-streamer-out.c: Likewise.
20898         * data-streamer.c: Likewise.
20899         * dbxout.c: Likewise.
20900         * dce.c: Likewise.
20901         * ddg.c: Likewise.
20902         * debug.c: Likewise.
20903         * df-core.c: Likewise.
20904         * df-problems.c: Likewise.
20905         * df-scan.c: Likewise.
20906         * dfp.c: Likewise.
20907         * dojump.c: Likewise.
20908         * dominance.c: Likewise.
20909         * domwalk.c: Likewise.
20910         * double-int.c: Likewise.
20911         * dse.c: Likewise.
20912         * dumpfile.c: Likewise.
20913         * dwarf2asm.c: Likewise.
20914         * dwarf2cfi.c: Likewise.
20915         * dwarf2out.c: Likewise.
20916         * emit-rtl.c: Likewise.
20917         * et-forest.c: Likewise.
20918         * except.c: Likewise.
20919         * explow.c: Likewise.
20920         * expmed.c: Likewise.
20921         * expr.c: Likewise.
20922         * final.c: Likewise.
20923         * fixed-value.c: Likewise.
20924         * fold-const.c: Likewise.
20925         * function.c: Likewise.
20926         * fwprop.c: Likewise.
20927         * gcc-plugin.h: Likewise.
20928         * gcse-common.c: Likewise.
20929         * gcse.c: Likewise.
20930         * generic-match-head.c: Likewise.
20931         * ggc-page.c: Likewise.
20932         * gimple-builder.c: Likewise.
20933         * gimple-expr.c: Likewise.
20934         * gimple-fold.c: Likewise.
20935         * gimple-iterator.c: Likewise.
20936         * gimple-low.c: Likewise.
20937         * gimple-match-head.c: Likewise.
20938         * gimple-pretty-print.c: Likewise.
20939         * gimple-ssa-isolate-paths.c: Likewise.
20940         * gimple-ssa-strength-reduction.c: Likewise.
20941         * gimple-streamer-in.c: Likewise.
20942         * gimple-streamer-out.c: Likewise.
20943         * gimple-walk.c: Likewise.
20944         * gimple.c: Likewise.
20945         * gimplify-me.c: Likewise.
20946         * gimplify.c: Likewise.
20947         * godump.c: Likewise.
20948         * graph.c: Likewise.
20949         * graphite-blocking.c: Likewise.
20950         * graphite-dependences.c: Likewise.
20951         * graphite-interchange.c: Likewise.
20952         * graphite-isl-ast-to-gimple.c: Likewise.
20953         * graphite-optimize-isl.c: Likewise.
20954         * graphite-poly.c: Likewise.
20955         * graphite-scop-detection.c: Likewise.
20956         * graphite-sese-to-poly.c: Likewise.
20957         * graphite.c: Likewise.
20958         * haifa-sched.c: Likewise.
20959         * hw-doloop.c: Likewise.
20960         * ifcvt.c: Likewise.
20961         * init-regs.c: Likewise.
20962         * internal-fn.c: Likewise.
20963         * ipa-chkp.c: Likewise.
20964         * ipa-comdats.c: Likewise.
20965         * ipa-cp.c: Likewise.
20966         * ipa-devirt.c: Likewise.
20967         * ipa-icf-gimple.c: Likewise.
20968         * ipa-icf.c: Likewise.
20969         * ipa-inline-analysis.c: Likewise.
20970         * ipa-inline-transform.c: Likewise.
20971         * ipa-inline.c: Likewise.
20972         * ipa-polymorphic-call.c: Likewise.
20973         * ipa-profile.c: Likewise.
20974         * ipa-prop.c: Likewise.
20975         * ipa-pure-const.c: Likewise.
20976         * ipa-ref.c: Likewise.
20977         * ipa-reference.c: Likewise.
20978         * ipa-split.c: Likewise.
20979         * ipa-utils.c: Likewise.
20980         * ipa-visibility.c: Likewise.
20981         * ipa.c: Likewise.
20982         * ira-build.c: Likewise.
20983         * ira-color.c: Likewise.
20984         * ira-conflicts.c: Likewise.
20985         * ira-costs.c: Likewise.
20986         * ira-emit.c: Likewise.
20987         * ira-lives.c: Likewise.
20988         * ira.c: Likewise.
20989         * jump.c: Likewise.
20990         * langhooks.c: Likewise.
20991         * lcm.c: Likewise.
20992         * loop-doloop.c: Likewise.
20993         * loop-init.c: Likewise.
20994         * loop-invariant.c: Likewise.
20995         * loop-iv.c: Likewise.
20996         * loop-unroll.c: Likewise.
20997         * lower-subreg.c: Likewise.
20998         * lra-assigns.c: Likewise.
20999         * lra-coalesce.c: Likewise.
21000         * lra-constraints.c: Likewise.
21001         * lra-eliminations.c: Likewise.
21002         * lra-lives.c: Likewise.
21003         * lra-remat.c: Likewise.
21004         * lra-spills.c: Likewise.
21005         * lra.c: Likewise.
21006         * lto-cgraph.c: Likewise.
21007         * lto-compress.c: Likewise.
21008         * lto-opts.c: Likewise.
21009         * lto-section-in.c: Likewise.
21010         * lto-section-out.c: Likewise.
21011         * lto-streamer-in.c: Likewise.
21012         * lto-streamer-out.c: Likewise.
21013         * lto-streamer.c: Likewise.
21014         * mcf.c: Likewise.
21015         * mode-switching.c: Likewise.
21016         * modulo-sched.c: Likewise.
21017         * omega.c: Likewise.
21018         * omp-low.c: Likewise.
21019         * optabs.c: Likewise.
21020         * opts-global.c: Likewise.
21021         * passes.c: Likewise.
21022         * plugin.c: Likewise.
21023         * postreload-gcse.c: Likewise.
21024         * postreload.c: Likewise.
21025         * predict.c: Likewise.
21026         * print-rtl.c: Likewise.
21027         * print-tree.c: Likewise.
21028         * profile.c: Likewise.
21029         * real.c: Likewise.
21030         * realmpfr.c: Likewise.
21031         * recog.c: Likewise.
21032         * ree.c: Likewise.
21033         * reg-stack.c: Likewise.
21034         * regcprop.c: Likewise.
21035         * reginfo.c: Likewise.
21036         * regrename.c: Likewise.
21037         * regstat.c: Likewise.
21038         * reload.c: Likewise.
21039         * reload1.c: Likewise.
21040         * reorg.c: Likewise.
21041         * resource.c: Likewise.
21042         * rtl-chkp.c: Likewise.
21043         * rtlanal.c: Likewise.
21044         * rtlhooks.c: Likewise.
21045         * sanopt.c: Likewise.
21046         * sched-deps.c: Likewise.
21047         * sched-ebb.c: Likewise.
21048         * sched-rgn.c: Likewise.
21049         * sched-vis.c: Likewise.
21050         * sdbout.c: Likewise.
21051         * sel-sched-dump.c: Likewise.
21052         * sel-sched-ir.c: Likewise.
21053         * sel-sched.c: Likewise.
21054         * sese.c: Likewise.
21055         * shrink-wrap.c: Likewise.
21056         * simplify-rtx.c: Likewise.
21057         * stack-ptr-mod.c: Likewise.
21058         * stmt.c: Likewise.
21059         * stor-layout.c: Likewise.
21060         * store-motion.c: Likewise.
21061         * stringpool.c: Likewise.
21062         * symtab.c: Likewise.
21063         * target-globals.c: Likewise.
21064         * targhooks.c: Likewise.
21065         * toplev.c: Likewise.
21066         * tracer.c: Likewise.
21067         * trans-mem.c: Likewise.
21068         * tree-affine.c: Likewise.
21069         * tree-browser.c: Likewise.
21070         * tree-call-cdce.c: Likewise.
21071         * tree-cfg.c: Likewise.
21072         * tree-cfgcleanup.c: Likewise.
21073         * tree-chkp-opt.c: Likewise.
21074         * tree-chkp.c: Likewise.
21075         * tree-chrec.c: Likewise.
21076         * tree-complex.c: Likewise.
21077         * tree-data-ref.c: Likewise.
21078         * tree-dfa.c: Likewise.
21079         * tree-diagnostic.c: Likewise.
21080         * tree-dump.c: Likewise.
21081         * tree-eh.c: Likewise.
21082         * tree-emutls.c: Likewise.
21083         * tree-if-conv.c: Likewise.
21084         * tree-inline.c: Likewise.
21085         * tree-into-ssa.c: Likewise.
21086         * tree-iterator.c: Likewise.
21087         * tree-loop-distribution.c: Likewise.
21088         * tree-nested.c: Likewise.
21089         * tree-nrv.c: Likewise.
21090         * tree-object-size.c: Likewise.
21091         * tree-outof-ssa.c: Likewise.
21092         * tree-parloops.c: Likewise.
21093         * tree-phinodes.c: Likewise.
21094         * tree-predcom.c: Likewise.
21095         * tree-pretty-print.c: Likewise.
21096         * tree-profile.c: Likewise.
21097         * tree-scalar-evolution.c: Likewise.
21098         * tree-sra.c: Likewise.
21099         * tree-ssa-address.c: Likewise.
21100         * tree-ssa-alias.c: Likewise.
21101         * tree-ssa-ccp.c: Likewise.
21102         * tree-ssa-coalesce.c: Likewise.
21103         * tree-ssa-copy.c: Likewise.
21104         * tree-ssa-copyrename.c: Likewise.
21105         * tree-ssa-dce.c: Likewise.
21106         * tree-ssa-dom.c: Likewise.
21107         * tree-ssa-dse.c: Likewise.
21108         * tree-ssa-forwprop.c: Likewise.
21109         * tree-ssa-ifcombine.c: Likewise.
21110         * tree-ssa-live.c: Likewise.
21111         * tree-ssa-loop-ch.c: Likewise.
21112         * tree-ssa-loop-im.c: Likewise.
21113         * tree-ssa-loop-ivcanon.c: Likewise.
21114         * tree-ssa-loop-ivopts.c: Likewise.
21115         * tree-ssa-loop-manip.c: Likewise.
21116         * tree-ssa-loop-niter.c: Likewise.
21117         * tree-ssa-loop-prefetch.c: Likewise.
21118         * tree-ssa-loop-unswitch.c: Likewise.
21119         * tree-ssa-loop.c: Likewise.
21120         * tree-ssa-math-opts.c: Likewise.
21121         * tree-ssa-operands.c: Likewise.
21122         * tree-ssa-phiopt.c: Likewise.
21123         * tree-ssa-phiprop.c: Likewise.
21124         * tree-ssa-pre.c: Likewise.
21125         * tree-ssa-propagate.c: Likewise.
21126         * tree-ssa-reassoc.c: Likewise.
21127         * tree-ssa-sccvn.c: Likewise.
21128         * tree-ssa-scopedtables.c: Likewise.
21129         * tree-ssa-sink.c: Likewise.
21130         * tree-ssa-strlen.c: Likewise.
21131         * tree-ssa-structalias.c: Likewise.
21132         * tree-ssa-tail-merge.c: Likewise.
21133         * tree-ssa-ter.c: Likewise.
21134         * tree-ssa-threadedge.c: Likewise.
21135         * tree-ssa-threadupdate.c: Likewise.
21136         * tree-ssa-uncprop.c: Likewise.
21137         * tree-ssa-uninit.c: Likewise.
21138         * tree-ssa.c: Likewise.
21139         * tree-ssanames.c: Likewise.
21140         * tree-stdarg.c: Likewise.
21141         * tree-streamer-in.c: Likewise.
21142         * tree-streamer-out.c: Likewise.
21143         * tree-streamer.c: Likewise.
21144         * tree-switch-conversion.c: Likewise.
21145         * tree-tailcall.c: Likewise.
21146         * tree-vect-data-refs.c: Likewise.
21147         * tree-vect-generic.c: Likewise.
21148         * tree-vect-loop-manip.c: Likewise.
21149         * tree-vect-loop.c: Likewise.
21150         * tree-vect-patterns.c: Likewise.
21151         * tree-vect-slp.c: Likewise.
21152         * tree-vect-stmts.c: Likewise.
21153         * tree-vectorizer.c: Likewise.
21154         * tree-vrp.c: Likewise.
21155         * tree.c: Likewise.
21156         * tsan.c: Likewise.
21157         * ubsan.c: Likewise.
21158         * valtrack.c: Likewise.
21159         * value-prof.c: Likewise.
21160         * var-tracking.c: Likewise.
21161         * varasm.c: Likewise.
21162         * varpool.c: Likewise.
21163         * vmsdbgout.c: Likewise.
21164         * vtable-verify.c: Likewise.
21165         * web.c: Likewise.
21166         * wide-int.cc: Likewise.
21167         * xcoffout.c: Likewise.
21168         * config/aarch64/aarch64-builtins.c: Likewise.
21169         * config/aarch64/aarch64.c: Likewise.
21170         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
21171         * config/alpha/alpha.c: Likewise.
21172         * config/arc/arc.c: Likewise.
21173         * config/arm/aarch-common.c: Likewise.
21174         * config/arm/arm-builtins.c: Likewise.
21175         * config/arm/arm-c.c: Likewise.
21176         * config/arm/arm.c: Likewise.
21177         * config/avr/avr-c.c: Likewise.
21178         * config/avr/avr-log.c: Likewise.
21179         * config/avr/avr.c: Likewise.
21180         * config/bfin/bfin.c: Likewise.
21181         * config/c6x/c6x.c: Likewise.
21182         * config/cr16/cr16.c: Likewise.
21183         * config/cris/cris.c: Likewise.
21184         * config/darwin-c.c: Likewise.
21185         * config/darwin.c: Likewise.
21186         * config/epiphany/epiphany.c: Likewise.
21187         * config/epiphany/mode-switch-use.c: Likewise.
21188         * config/epiphany/resolve-sw-modes.c: Likewise.
21189         * config/fr30/fr30.c: Likewise.
21190         * config/frv/frv.c: Likewise.
21191         * config/ft32/ft32.c: Likewise.
21192         * config/h8300/h8300.c: Likewise.
21193         * config/i386/i386-c.c: Likewise.
21194         * config/i386/i386.c: Likewise.
21195         * config/i386/msformat-c.c: Likewise.
21196         * config/i386/winnt-cxx.c: Likewise.
21197         * config/i386/winnt-stubs.c: Likewise.
21198         * config/i386/winnt.c: Likewise.
21199         * config/ia64/ia64-c.c: Likewise.
21200         * config/ia64/ia64.c: Likewise.
21201         * config/iq2000/iq2000.c: Likewise.
21202         * config/lm32/lm32.c: Likewise.
21203         * config/m32c/m32c-pragma.c: Likewise.
21204         * config/m32c/m32c.c: Likewise.
21205         * config/m32r/m32r.c: Likewise.
21206         * config/m68k/m68k.c: Likewise.
21207         * config/mcore/mcore.c: Likewise.
21208         * config/mep/mep-pragma.c: Likewise.
21209         * config/mep/mep.c: Likewise.
21210         * config/microblaze/microblaze-c.c: Likewise.
21211         * config/microblaze/microblaze.c: Likewise.
21212         * config/mips/mips.c: Likewise.
21213         * config/mmix/mmix.c: Likewise.
21214         * config/mn10300/mn10300.c: Likewise.
21215         * config/moxie/moxie.c: Likewise.
21216         * config/msp430/msp430-c.c: Likewise.
21217         * config/msp430/msp430.c: Likewise.
21218         * config/nds32/nds32-cost.c: Likewise.
21219         * config/nds32/nds32-fp-as-gp.c: Likewise.
21220         * config/nds32/nds32-intrinsic.c: Likewise.
21221         * config/nds32/nds32-isr.c: Likewise.
21222         * config/nds32/nds32-md-auxiliary.c: Likewise.
21223         * config/nds32/nds32-memory-manipulation.c: Likewise.
21224         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
21225         * config/nds32/nds32-predicates.c: Likewise.
21226         * config/nds32/nds32.c: Likewise.
21227         * config/nios2/nios2.c: Likewise.
21228         * config/nvptx/nvptx.c: Likewise.
21229         * config/pa/pa.c: Likewise.
21230         * config/pdp11/pdp11.c: Likewise.
21231         * config/rl78/rl78-c.c: Likewise.
21232         * config/rl78/rl78.c: Likewise.
21233         * config/rs6000/rs6000-c.c: Likewise.
21234         * config/rs6000/rs6000.c: Likewise.
21235         * config/rx/rx.c: Likewise.
21236         * config/s390/s390-c.c: Likewise.
21237         * config/s390/s390.c: Likewise.
21238         * config/sh/sh-c.c: Likewise.
21239         * config/sh/sh-mem.cc: Likewise.
21240         * config/sh/sh.c: Likewise.
21241         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
21242         * config/sh/sh_treg_combine.cc: Likewise.
21243         * config/sol2-c.c: Likewise.
21244         * config/sol2-cxx.c: Likewise.
21245         * config/sol2-stubs.c: Likewise.
21246         * config/sol2.c: Likewise.
21247         * config/sparc/sparc-c.c: Likewise.
21248         * config/sparc/sparc.c: Likewise.
21249         * config/spu/spu-c.c: Likewise.
21250         * config/spu/spu.c: Likewise.
21251         * config/stormy16/stormy16.c: Likewise.
21252         * config/tilegx/mul-tables.c: Likewise.
21253         * config/tilegx/tilegx-c.c: Likewise.
21254         * config/tilegx/tilegx.c: Likewise.
21255         * config/tilepro/mul-tables.c: Likewise.
21256         * config/tilepro/tilepro-c.c: Likewise.
21257         * config/tilepro/tilepro.c: Likewise.
21258         * config/v850/v850-c.c: Likewise.
21259         * config/v850/v850.c: Likewise.
21260         * config/vax/vax.c: Likewise.
21261         * config/visium/visium.c: Likewise.
21262         * config/vms/vms-c.c: Likewise.
21263         * config/vms/vms.c: Likewise.
21264         * config/vxworks.c: Likewise.
21265         * config/xtensa/xtensa.c: Likewise.
21266
21267 2015-07-07  Uros Bizjak  <ubizjak@gmail.com>
21268
21269         * config/i386/i386.md (*jcc_bt<mode>): Only split before reload.
21270         Remove operand constraints.  Change operand 2 predicate to
21271         nonmemory operand.  Limit const_int values to mode bitsize.  Only
21272         allow const_int values less than 32 when optimizing for size.
21273         (*jcc_bt<mode>_1, *jcc_bt<mode>_mask): Only split before reload.
21274         Remove operand constraints.
21275         (*bt<mode>): Use SImode for const_int values less than 32.
21276         (regmode): Remove mode attribute.
21277
21278 2015-07-07  Anatoly Sokolov  <aesok@post.ru>
21279
21280         * config/moxie/moxie.h (GO_IF_LEGITIMATE_ADDRESS): Remove macros.
21281         * config/moxie/moxie.c (moxie_reg_ok_for_base_p,
21282           moxie_legitimate_address_p): New functions.
21283           (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
21284
21285 2015-07-07  Tom de Vries  <tom@codesourcery.com>
21286
21287         PR tree-optimization/66642
21288         * tree-parloops.c (transform_to_exit_first_loop_alt): Update function
21289         header comment.  Rename split_edge variable to edge_at_split.  Split
21290         exit edge to create new loop exit bb.  Insert loop exit phis in new
21291         loop exit bb.
21292
21293 2015-07-07  Tom de Vries  <tom@codesourcery.com>
21294
21295         * tree-cfg.c (get_virtual_phi): New function.
21296         * tree-cfg.h (get_virtual_phi): Declare.
21297         * tree-ssa-loop-manip.c (replace_uses_in_dominated_bbs)
21298         (rewrite_virtuals_into_loop_closed_ssa): New function.
21299         * tree-ssa-loop-manip.h (rewrite_virtuals_into_loop_closed_ssa):
21300         Declare.
21301         * tree-parloops.c (replace_uses_in_bbs_by): Remove.
21302         (transform_to_exit_first_loop_alt): Use
21303         rewrite_virtuals_into_loop_closed_ssa.
21304
21305 2015-07-07  Richard Biener  <rguenther@suse.de>
21306
21307         * fold-const.c (fold_binary_loc): Move
21308         (X & C2) << C1 -> (X << C1) & (C2 << C1) simplification ...
21309         * match.pd: ... here.
21310         Add (X * C1) % C2 -> 0 simplification pattern derived from
21311         extract_muldiv_1.
21312
21313 2015-07-07  Kaz Kojima  <kkojima@gcc.gnu.org>
21314
21315         PR target/66780
21316         * config/sh/sh.md (symGOT_load): Revert a part of 2015-03-03
21317         change for target/65249.
21318
21319 2015-07-07  Paulo Matos  <pmatos@broadcom.com>
21320
21321         * symtab.c (address_matters_1): Fix typo in comment above.
21322         (can_increase_alignment_p): Likewise.
21323
21324 2015-07-07  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
21325
21326         * function.c (free_after_compilation): Clear PROP_cfg in
21327         f->curr_properties.
21328
21329 2015-07-07  Richard Biener  <rguenther@suse.de>
21330
21331         * tree-ssa-propagate.c (add_ssa_edge): Dump what edge list we
21332         add which use to.
21333         (add_control_edge): Remove excessive vertical space in dumping.
21334         (process_ssa_edge_worklist): Simulate at most one statement and
21335         return whether we did.  Do not simulate PHIs if they are in a
21336         BB not yet simulated.
21337         (ssa_propagate): Adjust to always drain the BB worklist whenever
21338         a BB is available there, likewise the VARYING edges list before
21339         the interesting edge list.
21340
21341 2015-07-07  Christian Bruel  <christian.bruel@st.com>
21342
21343         PR target/52144
21344         * config/arm/elf.h (TARGET_ASM_FILE_START_APP_OFF): Delete.
21345
21346 2015-07-07  Richard Biener  <rguenther@suse.de>
21347
21348         PR middle-end/66739
21349         * match.pd: Condition A - B ==/!= 0 -> A ==/!= B on single-use
21350         A - B.
21351
21352 2015-07-06  Uros Bizjak  <ubizjak@gmail.com>
21353
21354         * config/i386/i386.md (insv<mode>): Rename from insv.  Use SWI48
21355         modes for operands 0 and 3.  Use SImode for operands 2 and 3.
21356         Copy operand 0 to a temporary if !ext_register_operand.  Remove
21357         ancient extract_bit_field workaround.
21358         (insv<mode>_1): Rename from mov<mode>_insv_1.
21359         (*insvqi): Rename from *movqi_insv_2.
21360         * config/i386/i386.c (emit_i386_cw_initialization): Update calls
21361         for renamed insvsi_1.
21362         (promote_duplicated_reg): Ditto for renamed insv<mode>_1.
21363
21364 2015-07-06  Nathan Sidwell  <nathan@codesourcery.com>
21365
21366         * config/nvptx/nvptx.c (nvptx_reorg): Remove unused vars.  Fix
21367         call to nvptx_reorg_subreg.
21368
21369 2015-07-06  Jim Wilson  <jim.wilson@linaro.org>
21370
21371         * graphite-blocking.c (HAVE_isl): Include <stddef.h>.
21372         * graphite-dependencies.c, graphite-interchange.c,
21373         graphite-isl-ast-to-gimple.c, graphite-optimize-isl.c, graphite-poly.c,
21374         graphite-scop-detection.c, graphite-sese-to-poly.c, graphite.c:
21375         Likewise.
21376
21377 2015-07-06  Marc Glisse  <marc.glisse@inria.fr>
21378
21379         * match.pd: Remove element_mode inside HONOR_*.
21380         (~ (-A) -> A - 1, ~ (A - 1) -> -A): Handle complex types.
21381         (~X | X -> -1, ~X ^ X -> -1): Merge.
21382         * tree.c (build_each_one_cst): New function.
21383         * tree.h (build_each_one_cst): Likewise.
21384
21385 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
21386
21387         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
21388         PROCESSOR_IAMCU.
21389
21390 2015-07-06  Steve Ellcey  <sellcey@imgtec.com>
21391
21392         * config.gcc <mips*-*-*>: Add fused-madd.opt.
21393         * config/mips/mips.opt (mfused-madd): Remove.
21394         * config/mips/mips.c (mips_rtx_costs): Update cost calculations.
21395         * config/mips/mips.h (TARGET_MIPS8000): New.
21396         (ISA_HAS_FP_MADD4_MSUB4): Remove.
21397         (ISA_HAS_FP_MADDF_MSUBF): Remove.
21398         (ISA_HAS_FP_MADD3_MSUB3): Remove.
21399         (ISA_HAS_NMADD4_NMSUB4): Remove.
21400         (ISA_HAS_NMADD3_NMSUB3): Remove.
21401         (ISA_HAS_FUSED_MADD4): New.
21402         (ISA_HAS_UNFUSED_MADD4): New.
21403         (ISA_HAS_FUSED_MADDF): New.
21404         (ISA_HAS_FUSED_MADD3): New.
21405         * config/mips/mips.md: (fma<mode>4) Change from insn to expand.
21406         (*fma<mode>4_madd3) New.
21407         (*fma<mode>4_madd4) New.
21408         (*fma<mode>4_maddf) New.
21409         (fms<mode>4) New.
21410         (*fms<mode>4_msub3) New.
21411         (*fms<mode>4_msub4) New.
21412         (fnma<mode>4) New.
21413         (*fnma<mode>4_nmadd3) New.
21414         (*fnma<mode>4_nmadd4) New.
21415         (fnms<mode>4) New.
21416         (*fnms<mode>4_nmsub3) New.
21417         (*fnms<mode>4_nmsub4) New.
21418         (*madd4<mode>) Modify to be unfused only.
21419         (*msub4<mode>) Modify to be unfused only.
21420         (*nmadd4<mode>) Modify to be unfused only.
21421         (*nmsub4<mode>) Modify to be unfused only.
21422         (*madd3<mode>) Remove.
21423         (*msub3<mode>) Remove.
21424         (*nmadd3<mode>) Remove.
21425         (*nmsub3<mode>) Remove.
21426         (*nmadd3<mode>_fastmath) Remove.
21427         (*nmsub3<mode>_fastmath) Remove.
21428         (*nmadd4<mode>_fastmath) Update condition.
21429         (*nmsub4<mode>_fastmath) Update condition.
21430
21431 2015-07-06  Alan Lawrence  <alan.lawrence@arm.com>
21432
21433         PR target/65956
21434         * config/arm/arm.c (arm_needs_doubleword_align): Drop any outer
21435         alignment attribute, exploring one level down for records and arrays.
21436
21437 2015-07-06  Uros Bizjak  <ubizjak@gmail.com>
21438
21439         * config/i386/i386.md (extv<mode>): Rename from extv.  Use SWI24
21440         modes for operands 0 and 1.  Use SImode for operands 2 and 3.
21441         Copy operand 1 to a temporary if !ext_register_operand.  Remove
21442         ancient extract_bit_field workaround.
21443         (*extv<mode>): Rename from *mov<mode>_extv_1.
21444         (*extvqi): Rename from *movqi_extv_1.
21445         (extzv<mode>): Rename from extzv.  Use SWI248 modes for
21446         operands 0 and 1.  Use SImode for operands 2 and 3. Copy operand 1
21447         to a temporary if !ext_register_operand.  Remove ancient
21448         extract_bit_field workaround.
21449         (*extzv<mode>): Rename from *mov<mode>_extzv_1.
21450         (*extzvqi): Rename from *movqi_extzv_2.
21451         (*testqi_ext_3): Remove modes from const_int_operand predicated
21452         operands.  Add "n" constraint.
21453         (*btsq, *btrq, *btcq): Remove mode from const_0_to_63 predicated
21454         operand.  Add "J" constraint.
21455         (*btsq, *btrq, *btcq peephole2s): Remove mode from
21456         const_0_to_63 predicated operand.
21457         (regmode): New insn attribute.
21458         (*bt<mode>): Use SImode for operand 1.  Change operand 1 predicate
21459         to nonmemory_operand.  Use regmode insn attribute.
21460         (*jcc_bt<mode>_1): Convert operand 2 to SImode.
21461         (*jcc_bt<mode>_mask): Remove mode from operand 3.
21462         (*jcc_btsi_1, *jcc_btsi_mask_1): Remove patterns.
21463         (tbm_bextri_<mode>): Remove modes from const_0_to_255 predicated
21464         operands.  Use "N" constraint instead of "n".
21465
21466 2015-07-06  Alan Lawrence  <alan.lawrence@arm.com>
21467
21468         * config/arm/arm.md (movdi): Avoid odd-number ldrd/strd in ARM state.
21469
21470 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
21471
21472         PR target/66749
21473         * config/i386/i386.c (iamcu_cost): New.
21474         (m_IAMCU): Likewise.
21475         (initial_ix86_arch_features): Disable X86_ARCH_CMOV for m_IAMCU.
21476         (processor_target_table): Add an entry for "iamcu".
21477         (processor_alias_table): Likewise.
21478         (ix86_issue_rate): Handle PROCESSOR_IAMCU.
21479         (ix86_adjust_cost): Likewise.
21480         (ia32_multipass_dfa_lookahead): Likewise.
21481         * config/i386/i386.h (processor_type): Add PROCESSOR_IAMCU.
21482         * config/i386/x86-tune.def: Updated for m_IAMCU.
21483
21484 2015-07-06  Richard Biener  <rguenther@suse.de>
21485
21486         PR tree-optimization/66772
21487         * tree-ssa-ccp.c (ccp_visit_phi_node): Make sure that copy
21488         values are available in the PHI node BB when there are
21489         still unexecutable edges.
21490
21491 2015-07-06  Richard Biener  <rguenther@suse.de>
21492
21493         PR tree-optimization/66767
21494         * tree-vect-loop-manip.c (vect_create_cond_for_align_checks):
21495         Make sure to build the alignment test on a SSA name without
21496         final alignment info valid only if the alignment test
21497         evaluates to true.
21498
21499 2015-07-06  Bernd Schmidt  <bernds@codesourcery.com>
21500
21501         PR target/66620
21502         * config/bfin/bfin.c (hwloop_optimize): Create new bb between jump and
21503         loop start when inserting LSETUP.
21504
21505 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
21506
21507         PR target/53383
21508         * config/i386/i386.c (ix86_option_override_internal): Allow
21509         -mincoming-stack-boundary=3 for 64-bit if SSE is disabled.
21510
21511 2015-07-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21512
21513         * read-md.c (decimal_string): Rename to ...
21514         (md_decimal_string): ... this.
21515         (handle_enum): Reflect this.
21516
21517 2015-07-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>
21518
21519         PR target/66731
21520         * config/aarch64/aarch64.md (fnmul<mode>3): Handle -frounding-math.
21521
21522 2015-07-06  Richard Biener  <rguenther@suse.de>
21523
21524         PR middle-end/66759
21525         * match.pd: Add missing constraint of y to REAL_CST in
21526         REAL_CST - x CMP y to y - CST CMP x simplification.
21527
21528 2015-07-06  Eric Botcazou  <ebotcazou@adacore.com>
21529
21530         PR tree-optimization/66757
21531         * match.pd: Add missing condition to ~X ^ C -> X ^ ~C.
21532
21533 2015-07-05  Chung-Lin Tang  <cltang@codesourcery.com>
21534             Sandra Loosemore <sandra@codesourcery.com>
21535
21536         * config/nios2/nios2-protos.h (nios2_symbol_ref_in_small_data_p):
21537         Delete extern declaration.
21538         (gprel_constant_p): Add extern declaration.
21539         * config/nios2/constraints.md ("S"): Use gprel_constant_p
21540         instead of nios2_symbol_ref_in_small_data_p.
21541         * config/nios2/nios2.c (nios2_legitimate_address_p): Likewise.
21542         (nios2_symbol_ref_in_small_data_p): Make static.
21543         (gprel_constant_p): Make non-static.
21544
21545 2015-07-05  Gerald Pfeifer  <gerald@pfeifer.com>
21546
21547         * doc/fragments.texi (Target Fragment): Convert debian.org
21548         link to use https.
21549         * doc/install.texi (Configuration): Ditto.
21550
21551 2015-07-05  Jakub Jelinek  <jakub@redhat.com>
21552
21553         PR tree-optimization/66718
21554         * tree-vect-stmts.c (vectorizable_call): Replace uses of
21555         GOMP_SIMD_LANE outside of loop with vf - 1 rather than 0.
21556
21557         PR tree-optimization/66718
21558         * tree-vect-stmts.c (vectorizable_assignment, vectorizable_store,
21559         vectorizable_load, vectorizable_condition): Move vectype,
21560         nunits, ncopies computation after checking what kind of statement
21561         stmt is.
21562
21563 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
21564
21565         * target-insns.def (extv, extzv, insv): New targetm instruction
21566         patterns.
21567         * optabs.c (get_extraction_insn): Use them instead of HAVE_*/gen_*
21568         interface.
21569         * recog.c (simplify_while_replacing): Likewise.
21570
21571 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
21572
21573         * target-insns.def (doloop_begin, doloop_end): New targetm
21574         instruction patterns.
21575         * loop-init.c: Include target.h.
21576         (pass_loop2::gate): Use the new targetm patterns instead of
21577         HAVE_*/gen_* interface.
21578         (pass_rtl_doloop::gate): Likewise.
21579         (pass_rtl_doloop::execute): Remove preprocessor condition.
21580         * hw-doloop.c: Build unconditionally.
21581         * loop-doloop.c: Likewise.
21582         (doloop_optimize): Use the new targetm patterns instead of
21583         HAVE_*/gen_* interface.
21584         (doloop_modify): Likewise. Change type of doloop_seq to rtx_insn *.
21585         * modulo-sched.c (doloop_register_get): Likewise.
21586
21587 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
21588
21589         * target-insns.def (clear_cache): New targetm instruction pattern.
21590         * builtins.c (expand_builtin___clear_cache): Use it instead of
21591         HAVE_*/gen_* interface.
21592
21593 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
21594
21595         * target-insns.def (allocate_stack, check_stack, probe_stack)
21596         (probe_stack_address, split_stack_prologue, split_stack_space_check):
21597         New targetm instruction patterns.
21598         * explow.c (allocate_dynamic_stack_space): Use them instead of
21599         HAVE_*/gen_* interface.
21600         (emit_stack_probe): Likewise.
21601         (probe_stack_range): Likewise.
21602         * function.c (thread_prologue_and_epilogue_insns): Likewise.
21603
21604 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
21605
21606         * target-insns.def (stack_protect_set, stack_protect_test): New
21607         targetm instruction patterns.
21608         * cfgexpand.c (stack_protect_prologue): Use them instead of
21609         HAVE_*/gen_* interface.
21610         * function.c (stack_protect_epilogue): Likewise.
21611
21612 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
21613
21614         * expr.h (gen_move_insn_uncast): Delete.
21615         * expr.c (gen_move_insn_uncast): Delete.
21616
21617 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
21618
21619         * target-insns.def (restore_stack_block, restore_stack_function)
21620         (restore_stack_nonlocal, save_stack_block, save_stack_function)
21621         (save_stack_nonlocal): New targetm instruction patterns.
21622         * builtins.c (expand_builtin_apply): Use them instead of
21623         HAVE_*/gen_* interface.
21624         * explow.c (emit_stack_save, emit_stack_restore): Likewise.
21625
21626 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
21627
21628         * target-insns.def (trap): New targetm instruction pattern.
21629         * builtins.c (expand_builtin_trap): Use it instead of HAVE_*/gen_*
21630         interface.
21631         * explow.c (allocate_dynamic_stack_space): Likewise.
21632         * ifcvt.c (find_if_header): Likewise.
21633
21634 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
21635
21636         * target-insns.def (prefetch): New targetm instruction pattern.
21637         * tree-ssa-loop-prefetch.c: Include targeth.
21638         (tree_ssa_prefetch_arrays): Use prefetch targetm pattern instead
21639         of HAVE_*/gen_* interface.
21640         * builtins.c (expand_builtin_prefetch): Likewise.
21641         * toplev.c (process_options): Likewise.
21642
21643 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
21644
21645         * target-insns.def (untyped_call, untyped_return): New targetm
21646         instruction patterns.
21647         * builtins.c (expand_builtin_apply): Use them instead of
21648         HAVE_*/gen_* interface.
21649         (result_vector): Define unconditionally.
21650
21651 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
21652
21653         * target-insns.def (builtin_longjmp, builtin_setjmp_receiver)
21654         (builtin_setjmp_setup, exception_receiver, nonlocal_goto)
21655         (nonlocal_goto_receiver): New targetm instruction patterns.
21656         * builtins.c (expand_builtin_setjmp_setup): Use them instead
21657         of HAVE_*/gen_* interface.
21658         (expand_builtin_setjmp_receiver): Likewise.
21659         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
21660         * except.c (expand_dw2_landing_pad_for_region): Likewise.
21661
21662 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
21663
21664         * target.def: Add code_for_* hooks.
21665         * gentarget-def.c (def_target_insn): Add TARGET_CODE_FOR_* macros.
21666         * defaults.h (HAVE_tablejump, gen_tablejump): Delete.
21667         * target-insns.def (casesi, tablejump): New targetm instruction
21668         patterns.
21669         * expr.c (try_casesi): Use them instead of HAVE_*/gen_* interface.
21670         (do_tablejump): Likewise.
21671         * stmt.c (expand_switch_as_decision_tree_p): Likewise.
21672         (expand_sjlj_dispatch_table): Likewise.
21673         * targhooks.c (default_case_values_threshold): Likewise.
21674
21675 2015-07-04  Sandra Loosemore  <sandra@codesourcery.com>
21676
21677         * config/nios2/nios2.c (save_reg, restore_reg): Use plus_constant.
21678         Use rtx_insn * instead of rtx.
21679         (nios2_emit_add_constant): Use rtx_insn * instead of rtx.
21680         (nios2_expand_prologue, nios2_expand_epilogue): Likewise.
21681         (nios2_call_tls_get_addr): Likewise.
21682         (nios2_emit_expensive_div): Likewise.
21683         (nios2_emit_move_sequence): Change return type to bool.
21684         * config/nios2/nios2-protos.h (nios2_emit_move_sequence):
21685         Change return type to bool.
21686
21687 2015-07-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
21688
21689         PR target/66747
21690         * config/mips/mips.c (mips_find_gp_ref): Handle instruction sequences.
21691
21692 2015-07-04  John David Anglin  <danglin@gcc.gnu.org>
21693
21694         PR target/66114
21695         * config/pa/pa.md (indirect_jump): Use pmode_register_operand instead
21696         of register_operand.  Remove constraint.
21697
21698 2015-07-04  Marc Glisse  <marc.glisse@inria.fr>
21699
21700         * tree-cfg.c (verify_gimple_assign_ternary) <VEC_COND_EXPR>: Check
21701         the first argument.
21702
21703 2015-07-03  Paolo Carlini  <paolo.carlini@oracle.com>
21704
21705         * attribs.c (decl_attributes): Guard inform with the return value
21706         of the preceding warning.
21707
21708 2015-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
21709
21710         * doc/invoke.texi (moverride): Move to correct section.
21711
21712 2015-07-03  Richard Biener  <rguenther@suse.de>
21713
21714         * genmatch.c (commutative_tree_code, commutative_ternary_tree_code):
21715         Copy from tree.c
21716         (dt_operand::gen_gimple_expr): After valueizing operands
21717         re-canonicalize operand order for commutative tree codes.
21718
21719 2015-07-03  H.J. Lu  <hongjiu.lu@intel.com>
21720
21721         PR target/66746.
21722         * config/i386/ia32intrin.h (__crc32b): Don't define if __iamcu__
21723         is defined.
21724         (__crc32w): Likewise.
21725         (__crc32d): Likewise.
21726         (__rdpmc): Likewise.
21727         (__rdtscp): Likewise.
21728         (_rdpmc): Likewise.
21729         (_rdtscp): Likewise.
21730         * config/i386/x86intrin.h: Only include ia32intrin.h if __iamcu__
21731         is defined.
21732
21733 2015-07-03  Richard Biener  <rguenther@suse.de>
21734
21735         * fold-const.c (fold_mathfn_compare): Remove.
21736         (fold_inf_compare): Likewise.
21737         (fold_comparison): Move floating point comparison simplifications...
21738         * match.pd: ... to patterns here.  Introduce simple_comparisons
21739         operator list and use it for patterns formerly in fold_comparison.
21740
21741 2015-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
21742
21743         PR tree-optimization/66119
21744         * toplev.c (process_options): Don't set up default values for
21745         the sra_max_scalarization_size_{speed,size} parameters.
21746         * tree-sra (analyze_all_variable_accesses): If no values
21747         have been set for the sra_max_scalarization_size_{speed,size}
21748         parameters, call get_move_ratio to get target defaults.
21749
21750 2015-07-03  Richard Biener  <rguenther@suse.de>
21751
21752         * fold-const.c (fold_binary_loc): Move (T)ptr & CST folding...
21753         * match.pd: ... here.
21754
21755 2015-07-03  Gerald Pfeifer  <gerald@pfeifer.com>
21756
21757         PR target/37072
21758         * doc/invoke.texi (i386 and x86-64 Options): -mno-fancy-math-387
21759         is not actually the default on FreeBSD.
21760
21761 2015-07-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
21762
21763         * config/rs6000/rs6000-builtin.def (CMPGE_16QI): New built-in
21764         definition.
21765         (CMPGE_8HI): Likewise.
21766         (CMPGE_4SI): Likewise.
21767         (CMPGE_2DI): Likewise.
21768         (CMPGE_U16QI): Likewise.
21769         (CMPGE_U8HI): Likewise.
21770         (CMPGE_U4SI): Likewise.
21771         (CMPGE_U2DI): Likewise.
21772         (CMPLE_16QI): Likewise.
21773         (CMPLE_8HI): Likewise.
21774         (CMPLE_4SI): Likewise.
21775         (CMPLE_2DI): Likewise.
21776         (CMPLE_U16QI): Likewise.
21777         (CMPLE_U8HI): Likewise.
21778         (CMPLE_U4SI): Likewise.
21779         (CMPLE_U2DI): Likewise.
21780         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
21781         overloads for ALTIVEC_BUILTIN_VEC_CMPGE and
21782         ALTIVEC_BUILTIN_VEC_CMPLE.
21783         * config/rs6000/vector.md (vector_ge<mode>): Restrict to
21784         floating-point vector modes.
21785         (vector_nlt<mode>): New define_expand.
21786         (vector_nltu<mode>): Likewise.
21787         (vector_ngt<mode>): Likewise.
21788         (vector_ngtu<mode>): Likewise.
21789
21790 2015-07-02  Segher Boessenkool  <segher@kernel.crashing.org>
21791
21792         PR rtl-optimization/66706
21793         * combine.c (make_compound_operation): If an AND of SUBREG of
21794         LSHIFTRT does not simplify, see if just the AND of SUBREG does.
21795
21796 2015-07-02  Alan Lawrence  <alan.lawrence@arm.com>
21797
21798         * tree-pass.h (make_pass_ch_vect): New.
21799         * passes.def: Add pass_ch_vect just before pass_if_conversion.
21800
21801         * tree-ssa-loop-ch.c (ch_base, pass_ch_vect, pass_data_ch_vect,
21802         pass_ch::process_loop_p, pass_ch_vect::process_loop_p,
21803         make_pass_ch_vect): New.
21804         (pass_ch): Extend ch_base.
21805
21806         (pass_ch::execute): Move all but loop_optimizer_init/finalize to...
21807         (ch_base::copy_headers): ...here.
21808
21809 2015-07-02  Richard Biener  <rguenther@suse.de>
21810
21811         * builtins.c (get_pointer_alignment_1): Handle POINTER_PLUS_EXPR.
21812         * fold-const.c (get_pointer_modulus_and_residue): Remove.
21813         (fold_binary_loc): Implement (T)ptr & CST in terms of
21814         get_pointer_alignment_1.
21815         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop):
21816         Make sure to build the alignment test on a SSA name without
21817         final alignment info valid only after the prologue.
21818
21819 2015-07-02  Hans-Peter Nilsson  <hp@axis.com>
21820
21821         * config/cris/cris.md ("epilogue"): Remove condition.
21822         ("prologue"): Ditto.
21823
21824 2015-07-02  Richard Biener  <rguenther@suse.de>
21825
21826         * tree-ssa-dom.c (build_and_record_new_cond): Add optional
21827         parameter to record a condition that is false.
21828         (record_conditions): When recording an extra NE_EXPR that is
21829         true also record a EQ_EXPR that is false.
21830
21831 2015-07-02  Bin Cheng  <bin.cheng@arm.com>
21832
21833         * tree-ssa-loop-ivopts.c (struct ivopts_data): New field iv_obstack.
21834         (tree_ssa_iv_optimize_init): Initialize iv_obstack.
21835         (alloc_iv): New parameter.  Allocate struct iv using obstack_alloc.
21836         (set_iv, find_interesting_uses_address, add_candidate_1): New
21837         argument to alloc_iv.
21838         (find_interesting_uses_op, find_interesting_uses_cond): Don't
21839         duplicate struct iv.
21840         (free_loop_data): Don't free struct iv explicitly.
21841         (tree_ssa_iv_optimize_finalize): Free iv_obstack.
21842
21843 2015-07-01  DJ Delorie  <dj@redhat.com>
21844
21845         * config/s390/tpf.h (LIBSTDCXX): Change to CPP1.
21846         (LIB_SPEC): Add.
21847         (SUPPORTS_DISCRIMINATOR): Define.
21848
21849 2015-07-01  Richard Sandiford  <richard.sandiford@arm.com>
21850
21851         PR bootstrap/66685
21852         * rtl.c (classify_insn): Only return JUMP_INSN for parallel returns if
21853         there are no CALLs in the same pattern.
21854
21855 2015-07-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
21856
21857         PR rtl-optimization/61047
21858         * rtlanal.c (get_initial_register_offset): New function.
21859         (rtx_addr_can_trap_p_1): Check offsets of stack references.
21860
21861 2015-07-01  Richard Biener  <rguenther@suse.de>
21862
21863         * fold-const.c (fold_comparison): Move X - Y CMP 0 -> X CMP Y,
21864         X * C1 CMP 0 -> X CMP 0, X CMP X, ~X CMP ~Y -> Y CMP X and
21865         ~X CMP C -> X CMP' ~C to ...
21866         * match.pd: ... patterns here.
21867
21868 2015-07-01  Nick Clifton  <nickc@redhat.com>
21869
21870         * config/msp430/msp430.md (zero_extendhipsi2): Use MOVX.A to store
21871         a 16-bit value into a 20-bit memory slot.
21872
21873 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
21874
21875         * doc/sourcebuild.texi (AArch64-specific attributes): Document
21876         "aarch64_tiny", "aarch64_small", "aarch64_large",
21877         "aarch64_little_endian", "aarch64_big_endian".
21878
21879 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
21880
21881         * doc/sourcebuild.texi (AArch64-specific attributes): New subsection.
21882         Document "aarch64_small_fpic".
21883
21884 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
21885
21886         * configure.ac: Add check for aarch64 assembler -fpic relocation
21887         modifier support.
21888         * configure: Regenerate.
21889         * config.in: Regenerate.
21890         * config/aarch64/aarch64.c (initialize_aarch64_code_model): Fall back
21891         to -fPIC if not support of -fpic relocation modifier in assembler.
21892
21893 2015-07-01  Richard Sandiford  <richard.sandiford@arm.com>
21894
21895         PR bootstrap/66685
21896         * rtl.c (classify_insn): Handle returns in PARALLELs.
21897
21898 2015-07-01  Eric Botcazou  <ebotcazou@adacore.com>
21899
21900         PR middle-end/66633
21901         * tree-nested.c (convert_nonlocal_omp_clauses): Initialize need_chain
21902         to true if the function is nested and if not optimizing.
21903         (convert_local_omp_clauses): Initialize need_frame to true if the
21904         function contains nested functions and if not optimizing.
21905
21906 2015-07-01  Richard Biener  <rguenther@suse.de>
21907
21908         * fold-const.c (fold_binary_loc): Move ~X ^ X -> -1 and
21909         (X & Y) ^ Y -> ~X & Y transforms to ...
21910         * match.pd: ... here.
21911
21912 2015-07-01  Richard Biener <rguenther@suse.de>
21913
21914         * genmatch.c (expr::gen_transform): Shortcut re-simplifying
21915         of converts to avoid uninteresting noise from the conversion
21916         simplifying patterns.
21917
21918 2015-06-30  Sandra Loosemore <sandra@codesourcery.com>
21919
21920         * config/c6x/c6x.c (try_rename_operands): Do not depend on
21921         gcc_assert evaluating its argument for side-effect.
21922
21923 2015-06-30  Kaz Kojima  <kkojima@gcc.gnu.org>
21924
21925         PR target/64833
21926         * config/sh/sh.md (casesi_worker_1): Set length to 8 when
21927         flag_pic is set.
21928
21929 2015-06-30  Eric Botcazou  <ebotcazou@adacore.com>
21930
21931         * lto-streamer-out.c (class DFS): Adjust hash_scc method.
21932         (DFS::DFS): Pass this_ref_p and ref_p to hash_scc.
21933         (hash_scc): Add this_ref_p and ref_p parameters and pass them
21934         to the inner DFS walk.
21935
21936 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
21937
21938         * target-insns.def (jump): New targetm instruction pattern.
21939         * bb-reorder.c (get_uncond_jump_length): Use targetm.gen_jump
21940         instead of gen_jump.
21941         (fix_up_crossing_landing_pad): Likewise.
21942         (add_labels_and_missing_jumps): Likewise.
21943         (fix_crossing_conditional_branches): Likewise.
21944         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
21945         (force_nonfallthru_and_redirect): Likewise.
21946         * cse.c (cse_insn): Likewise.
21947         * expmed.c (expand_divmod): Likewise.
21948         * expr.c (store_expr_with_bounds, expand_expr_real_2): Likewise.
21949         * haifa-sched.c (init_before_recovery): Likewise.
21950         (sched_create_recovery_edges): Likewise.
21951         * ifcvt.c (find_cond_trap): Likewise.
21952         * optabs.c (expand_doubleword_shift, expand_doubleword_clz): Likewise.
21953         (expand_float, expand_fix): Likewise.
21954         * stmt.c (emit_jump): Likewise.
21955
21956 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
21957
21958         * defaults.h (HAVE_load_multiple, gen_load_multiple)
21959         (HAVE_store_multiple, gen_store_multiple): Delete.
21960         * target-insns.def (load_multiple, store_multiple): New targetm
21961         instruction patterns.
21962         * expr.c (move_block_to_reg, move_block_from_reg): Use them instead
21963         of HAVE_*/gen_* interface.
21964
21965 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
21966
21967         * defaults.h (HAVE_mem_thread_fence, gen_mem_thread_fence)
21968         (HAVE_memory_barrier, gen_memory_barrier, HAVE_mem_signal_fence)
21969         (gen_mem_signal_fence): Delete.
21970         * target-insns.def (mem_signal_fence, mem_thread_fence)
21971         (memory_barrier): New targetm instruction patterns.
21972         * optabs.c (expand_mem_thread_fence): Use them instead of HAVE_*/gen_*
21973         interface.
21974         (expand_mem_signal_fence): Likewise.
21975
21976 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
21977
21978         * defaults.h (HAVE_epilogue, gen_epilogue): Delete.
21979         * target-insns.def (epilogue, prologue, sibcall_prologue): New
21980         targetm instruction patterns.
21981         * alias.c (init_alias_analysis): Use them instead of HAVE_*/gen_*
21982         interface.
21983         * calls.c (expand_call): Likewise.
21984         * cfgrtl.c (cfg_layout_finalize): Likewise.
21985         * df-scan.c (df_get_entry_block_def_set): Likewise.
21986         (df_get_exit_block_use_set): Likewise.
21987         * dwarf2cfi.c (pass_dwarf2_frame::gate): Likewise.
21988         * final.c (final_start_function): Likewise.
21989         * function.c (thread_prologue_and_epilogue_insns): Likewise.
21990         (reposition_prologue_and_epilogue_notes): Likewise.
21991         * reorg.c (find_end_label): Likewise.
21992         * toplev.c (process_options): Likewise.
21993
21994 2015-06-30  David Malcolm  <dmalcolm@redhat.com>
21995
21996         * typed-splay-tree.h: New file.
21997
21998 2015-06-30  Vladimir Makarov  <vmakarov@redhat.com>
21999
22000         PR debug/66691
22001         * lra-int.h (lra_substitute_pseudo): Add a parameter.
22002         (lra_substitute_pseudo_within_insn): Ditto.
22003         * lra.c (lra_substitute_pseudo): Add a parameter.  Simplify subreg
22004         of constant.
22005         (lra_substitute_pseudo_within_insn): Add a parameter.  Transfer it
22006         to lra_substitute_pseudo.
22007         * lra-lives.c (process_bb_lives): Add an argument to
22008         lra_substitute_pseudo_within_insn call.
22009         * lra-constraints.c (inherit_reload_reg, split_reg): Add an
22010         argument to lra_substitute_pseudo and
22011         lra_substitute_pseudo_within_insn calls.
22012         (remove_inheritance_pseudos, undo_optional_reloads): Ditto.
22013
22014 2015-06-30  H.J. Lu  <hongjiu.lu@intel.com>
22015
22016         * configure: Regenerated.
22017
22018 2015-06-30  H.J. Lu  <hongjiu.lu@intel.com>
22019
22020         * config.gcc: Support i[34567]86-*-elfiamcu target.
22021         * config/i386/iamcu.h: New.
22022         * config/i386/i386.opt: Add -miamcu.
22023         * doc/invoke.texi: Document -miamcu.
22024         * common/config/i386/i386-common.c  (ix86_handle_option): Turn
22025         off x87/MMX/SSE/AVX codegen for -miamcu.
22026         * config/i386/i386-c.c (ix86_target_macros_internal): Define
22027         __iamcu/__iamcu__ for -miamcu.
22028         * config/i386/i386.h (PREFERRED_STACK_BOUNDARY_DEFAULT): Set
22029         to MIN_STACK_BOUNDARY if TARGET_IAMCU is true.
22030         (BIGGEST_ALIGNMENT): Set to 32 if TARGET_IAMCU is true.
22031         * config/i386/i386.c (ix86_option_override_internal): Ignore and
22032         warn -mregparm for Intel MCU.  Turn on -mregparm=3 for Intel
22033         MCU by default.  Default long double to 64-bit for Intel MCU.
22034         Turn on -freg-struct-return for Intel MCU.  Issue an error when
22035         -miamcu is used in 64-bit or x32 mode or if x87, MMX, SSE or
22036         AVX is turned on.
22037         (function_arg_advance_32): Pass value whose size is no larger
22038         than 8 bytes in registers for Intel MCU.
22039         (function_arg_32): Likewise.
22040         (ix86_return_in_memory): Return value whose size is no larger
22041         than 8 bytes in registers for Intel MCU.
22042         (iamcu_alignment): New function.
22043         (ix86_data_alignment): Call iamcu_alignment if TARGET_IAMCU is
22044         true.
22045         (ix86_local_alignment): Don't increase alignment for Intel MCU.
22046         (x86_field_alignment): Return iamcu_alignment if TARGET_IAMCU is
22047         true.
22048
22049 2015-06-30  Marek Polacek  <polacek@redhat.com>
22050
22051         * match.pd (X - (X / Y) * Y): Use convert1 and convert2.  Convert
22052         both operands of the resulting expression.
22053
22054         * match.pd (~x | x): Don't use tree_nop_conversion_p.  Build
22055         the final expression with the operand's type and then convert
22056         it to the type of the expression.
22057
22058 2015-06-30  Richard Biener  <rguenther@suse.de>
22059
22060         * fold-const.c (fold_binary_loc): Move ~x & ~y -> ~(x | y) and
22061         ~x | ~y -> ~(x & y), (x & CST) ^ (x & CST2) -> (x & CST) | (x & CST2),
22062         (X | Y) ^ X -> Y & ~ X, ~X ^ ~Y to X ^ Y and ~X ^ C to X ^ ~C ...
22063         * match.pd: ... to patterns here.
22064
22065 2015-06-30  Richard Biener  <rguenther@suse.de>
22066
22067         PR tree-optimization/66704
22068         * tree-vect-data-refs.c (vect_setup_realignment): Use
22069         make_ssa_name for non-SSA name source.
22070
22071 2015-06-30  Jakub Jelinek  <jakub@redhat.com>
22072
22073         PR middle-end/66702
22074         * omp-low.c (simd_clone_adjust): Handle addressable linear
22075         or uniform parameters or non-gimple type uniform parameters.
22076
22077 2015-06-30  Richard Biener  <rguenther@suse.de>
22078
22079         * fold-const.c (fold_unary_loc): Move abs(abs(x)) -> abs(x),
22080         ~ (-A) to A - 1, ~ (A - 1) or ~ (A + -1) to -A and some cases of
22081         ~(X ^ Y) to ~X ^ Y or X ^ ~Y if ~X or ~Y simplify to ...
22082         * match.pd: ... here.
22083         Add a few cases of A - B -> A + (-B) when B "easily" negates.
22084         Move (x & y) | x -> x and friends before
22085         (x | CST1) & CST2 -> (x & CST2) | (CST1 & CST2).
22086
22087 2015-06-30  Eric Botcazou  <ebotcazou@adacore.com>
22088
22089         * config/sparc/leon.md (leon_load): Enable for all LEON variants if
22090         -mfix-ut699 is not specified.
22091         (leon3_load): Rename into...
22092         (ut699_load): ...this.  Enable for all LEON variants if -mfix-ut699
22093         is specified.
22094
22095 2015-06-30  Marek Polacek  <polacek@redhat.com>
22096
22097         * fold-const.c (fold_binary_loc): Move ~X | X folding ...
22098         * match.pd: ... here.
22099
22100 2015-06-30  Richard Biener  <rguenther@suse.de>
22101
22102         * target-insns.def (canonicalize_funcptr_for_compare): Add.
22103         * fold-const.c (build_range_check): Replace uses of
22104         HAVE_canonicalize_funcptr_for_compare.
22105         (fold_widened_comparison): Likewise.
22106         (fold_sign_changed_comparison): Likewise.
22107         * dojump.c: Include "target.h".
22108         (do_compare_and_jump): Replace uses of
22109         HAVE_canonicalize_funcptr_for_compare and
22110         gen_canonicalize_funcptr_for_compare.
22111         * expr.c (do_store_flag): Likewise.
22112
22113 2015-06-30  Tom de Vries  <tom@codesourcery.com>
22114
22115         PR tree-optimization/66652
22116         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
22117         max_loop_iterations to determine if nit + 1 overflows.
22118
22119 2015-06-30  Richard Biener  <rguenther@suse.de>
22120
22121         * tree-vrp.c (register_edge_assert_for_2): Also register
22122         asserts for dominating conversion results.
22123
22124 2015-06-30  Bin Cheng  <bin.cheng@arm.com>
22125
22126         * tree-ssa-loop-ivopts.c (record_sub_use): Don't reset ssa_name
22127         field in struct iv.
22128
22129 2015-06-29  Jack Howarth  <howarth.at.gcc@gmail.com>
22130
22131         PR target/66509
22132         * configure.ac: Fix filds and fildq test for 64-bit.
22133         * configure: Regenerated.
22134
22135 2015-06-29  Nathan Sidwell  <nathan@codesourcery.com>
22136
22137         * config/nvptx/nvptx.md (nvptx_reorg_subreg): New fn, broken out of ...
22138         (nvptx_reorg): Here.  Keep the non-subreg pieces.
22139
22140 2015-06-29  H.J. Lu  <hongjiu.lu@intel.com>
22141
22142         * config/gnu-user.h (GNU_USER_TARGET_ENDFILE_SPEC): Use
22143         PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
22144
22145 2015-06-29  Uros Bizjak  <ubizjak@gmail.com>
22146
22147         * config/i386/i386.md (*jcc_1): Use %! in asm template.
22148         Set attribute "length_nobnd" instead of "length".
22149         (*jcc_2): Ditto.
22150         (jump): Ditto.
22151         (*jcc_1_bnd, *jcc_2_bnd, jump_bnd): Remove insn patterns.
22152
22153 2015-06-29  Sandra Loosemore  <sandra@codesourcery.com>
22154
22155         * config/nios2/nios2.c (nios2_delegitimize_address): Make
22156         assert less restrictive.
22157
22158 2015-06-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22159
22160         PR fortran/66605
22161         * cgraphunit.c (cgraph_node::finalize_function): Do not call
22162         do_warn_unused_parameter.
22163         * function.c (do_warn_unused_parameter): Move from here.
22164         * function.h (do_warn_unused_parameter): Do not declare.
22165
22166 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
22167
22168         PR target/65697
22169         * gcc.target/arm/armv-sync-comp-swap.c: New.
22170         * gcc.target/arm/armv-sync-op-acquire.c: New.
22171         * gcc.target/arm/armv-sync-op-full.c: New.
22172         * gcc.target/arm/armv-sync-op-release.c: New.
22173
22174 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
22175
22176         PR target/65697
22177         * config/armc/arm.c (arm_split_compare_and_swap): For ARMv8, replace an
22178         initial acquire barrier with final barrier.
22179
22180 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
22181
22182         PR target/65697
22183         * config/armc/arm.c (arm_split_atomic_op): For ARMv8, replace an
22184         initial acquire barrier with final barrier.
22185
22186 2015-06-29  Richard Henderson  <rth@redhat.com>
22187
22188         * config/i386/constraints.md (Bf): New constraint.
22189         * config/i386/i386-c.c (ix86_target_macros): Define
22190         __GCC_ASM_FLAG_OUTPUTS__.
22191         * config/i386/i386.c (ix86_md_asm_adjust): Handle =@cc* constraints
22192         as flags outputs.
22193         * doc/extend.texi (FlagOutputOperands): Document them.
22194
22195 2015-06-29  Jiong Wang  <jiong.wang@arm.com>
22196
22197         * config/arch64/aarch64.md (UNSPEC_TLSLE): New enumeration.
22198         * config/arch64/aarch64.md (tlsle_small): Rename to tlsle and use new
22199         unspec name.
22200         (tlsle_small_<mode>): Rename to tlsle_<mode> and use new unspec name.
22201         * config/arch64/aarch64-protos.h (arch64_symbol_type): Rename
22202         SYMBOL_SMALL_TPREL to SYMBOL_TLSLE.
22203         (aarch64_symbol_context): Ditto.
22204         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto
22205         and use new pattern name.
22206         (aarch64_expand_mov_immediate): Ditto.
22207         (aarch64_print_operand): Ditto.
22208         (aarch64_classify_tls_symbol): Ditto.
22209
22210 2015-06-29  Marek Polacek  <polacek@redhat.com>
22211             Marc Glisse  <marc.glisse@inria.fr>
22212
22213         * fold-const.c (fold_binary_loc): Move X - (X / Y) * Y -> X % Y to ...
22214         * match.pd: ... pattern here.
22215
22216 2015-06-29  Tom de Vries  <tom@codesourcery.com>
22217
22218         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Simplify
22219         function structure.
22220
22221 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
22222
22223         * doc/invoke.texi (Aarch64 Options, -march): Split out arch and
22224         feature description, split out the native option, add a link to
22225         the feature documentation, rearrange and slightly rewrite text.
22226         (Aarch64 options, -mcpu): Likewise.
22227         (Aarch64 options, Feature Modifiers): Add an anchor.  Mention
22228         +rdma implies Adv. SIMD.
22229
22230 2015-06-29  Marek Polacek  <polacek@redhat.com>
22231
22232         PR c/66322
22233         * function.c (stack_protect_epilogue): Remove a cast to int.
22234         * doc/invoke.texi: Update -Wswitch-bool description.
22235
22236 2015-06-29  Richard Biener  <rguenther@suse.de>
22237
22238         * genmatch.c (add_operator): Treat ADDR_EXPR as atom.
22239         * fold-const.c (fold_binary_loc): Move &A - &B simplification
22240         via ptr_difference_const ...
22241         * match.pd: ... here.
22242         When matching (X ^ Y) == Y also match with swapped operands.
22243
22244 2015-06-29  Richard Biener  <rguenther@suse.de>
22245
22246         * lto-streamer.h (LTO_major_version): Bump to 5.
22247
22248 2015-06-29  Richard Biener  <rguenther@suse.de>
22249
22250         PR tree-optimization/66677
22251         * tree-vect-stmts.c (vect_transform_stmt): Make assert about
22252         STMT_VINFO_VEC_STMT clobbering less strict.
22253
22254 2015-06-29  Kugan Vivekanandarajah  <kuganv@linaro.org>
22255
22256         PR middle-end/64130
22257         * tree-vrp.c (extract_range_from_binary_expr_1): For unsigned
22258         division, compute max and min when value ranges for dividend and
22259         divisor are available.
22260
22261 2015-06-28  Chung-Lin Tang <cltang@codesourcery.com>
22262             Sandra Loosemore <sandra@codesourcery.com>
22263
22264         * regrename.h (regrename_do_replace): Change to return bool.
22265         * regrename.c (rename_chains): Check return value of
22266         regname_do_replace.
22267         (regrename_do_replace): Re-validate the modified insns and
22268         return bool status.
22269         * config/aarch64/cortex-a57-fma-steering.c (rename_single_chain):
22270         Update to match rename_chains changes.
22271         * config/c6x/c6x.c (try_rename_operands): Assert that
22272         regrename_do_replace returns true.
22273
22274 2015-06-28  Uros Bizjak  <ubizjak@gmail.com>
22275
22276         * config/i386/i386.md (<mode>_ldx): Do not zero-extend non-Pmode
22277         operand 2 here.  Use copy_addr_to_reg to copy non-index
22278         register operand 2 to a temporary.
22279         (<mode>_stx): Ditto for operand 1.
22280         (*<mode>_ldx, *<mode>_stx): Remove enclosing parallel.
22281         * config/i386/i386.c (ix86_load_bounds): Zero-extend non-Pmode ptr here.
22282         (ix86_store_bounds): Ditto.
22283
22284 2015-06-27  Patrick Palka  <ppalka@gcc.gnu.org>
22285
22286         * print-tree.c (print_node) [TREE_VEC]: Print its length.
22287
22288 2015-06-26  Andrew MacLeod  <amacleod@redhat.com>
22289
22290         * gimple.c (gimple_call_set_fndecl): Remove.
22291         * gimple.h (gimple_call_set_fndecl): Relocate to gimple.h and call
22292         build1_loc directly instead of build_fold_addr_expr_loc.
22293
22294 2015-06-26  Richard Sandiford  <richard.sandiford@arm.com>
22295
22296         * hash-map.h (hash_map::traverse): Use the definition of the
22297         Key typedef rather than the typedef itself.
22298
22299 2015-06-26  Martin Jambor  <mjambor@suse.cz>
22300
22301         PR debug/66301
22302         * tree-ssa-pre.c (before_dom_children): Check that dump_file is not
22303         NULL instead of calling dump_enabled_p.
22304
22305 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
22306
22307         * config/aarch64/aarch64.opt: (override): New.
22308         * doc/invoke.texi (override): Document.
22309         * config/aarch64/aarch64.c (aarch64_flag_desc): New
22310         (aarch64_fusible_pairs): Likewise.
22311         (aarch64_tuning_flags): Likewise.
22312         (aarch64_tuning_override_function): Likewise.
22313         (aarch64_tuning_override_functions): Likewise.
22314         (aarch64_parse_one_option_token): Likewise.
22315         (aarch64_parse_boolean_options): Likewise.
22316         (aarch64_parse_fuse_string): Likewise.
22317         (aarch64_parse_tune_string): Likewise.
22318         (aarch64_parse_one_override_token): Likewise.
22319         (aarch64_parse_override_string): Likewise.
22320         (aarch64_override_options): Parse the -override string if it
22321         is present.
22322
22323 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
22324
22325         * config/aarch64/aarch64-protos.h (tune_params): Remove
22326         const from members.
22327         (aarch64_tune_params): Remove const, change to no longer be
22328         a pointer.
22329         * config/aarch64/aarch64.c (aarch64_tune_params): Remove const,
22330         change to no longer be a pointer, initialize to generic_tunings.
22331         (aarch64_min_divisions_for_recip_mul): Change dereference of
22332         aarch64_tune_params to member access.
22333         (aarch64_reassociation_width): Likewise.
22334         (aarch64_rtx_mult_cost): Likewise.
22335         (aarch64_address_cost): Likewise.
22336         (aarch64_branch_cost): Likewise.
22337         (aarch64_rtx_costs): Likewise.
22338         (aarch64_register_move_cost): Likewise.
22339         (aarch64_memory_move_cost): Likewise.
22340         (aarch64_sched_issue_rate): Likewise.
22341         (aarch64_builtin_vectorization_cost): Likewise.
22342         (aarch64_override_options): Take a copy of the selected tuning
22343         struct in to aarch64_tune_params, rather than just setting
22344         a pointer, change dereferences of aarch64_tune_params to member
22345         accesses.
22346         (aarch64_override_options_after_change): Change dereferences of
22347         aarch64_tune_params to member access.
22348         (aarch64_macro_fusion_p): Likewise.
22349         (aarch_macro_fusion_pair_p): Likewise.
22350         * config/aarch64/cortex-a57-fma-steering.c (gate): Likewise.
22351
22352 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
22353
22354         * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Delete.
22355         (aarch64_tune_flags): Likewise.
22356         (AARCH64_TUNE_FMA_STEERING): Likewise.
22357         * config/aarch64/aarch64-cores.def (cortex-a57): Remove reference
22358         to AARCH64_FL_USE_FMA_STEERING_PASS.
22359         (cortex-a57.cortex-a53): Likewise.
22360         (cortex-a72): Use cortexa72_tunings.
22361         (cortex-a72.cortex-a53): Likewise.
22362         (exynos-m1): Likewise.
22363         * config/aarch64/aarch64-protos.h (tune_params): Add
22364         a field: extra_tuning_flags.
22365         * config/aarch64/aarch64-tuning-flags.def: New.
22366         * config/aarch64/aarch64-protos.h (AARCH64_EXTRA_TUNING_OPTION): New.
22367         (aarch64_extra_tuning_flags): Likewise.
22368         (aarch64_tune_params): Declare here.
22369         * config/aarch64/aarch64.c (generic_tunings): Set extra_tuning_flags.
22370         (cortexa53_tunings): Likewise.
22371         (cortexa57_tunings): Likewise.
22372         (thunderx_tunings): Likewise.
22373         (xgene1_tunings): Likewise.
22374         (cortexa72_tunings): New.
22375         * config/aarch64/cortex-a57-fma-steering.c: Include aarch64-protos.h.
22376          (gate): Check against aarch64_tune_params.
22377         * config/aarch64/t-aarch64 (cortex-a57-fma-steering.o): Depend on
22378         aarch64-protos.h.
22379
22380 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
22381
22382         * config/aarch64/aarch64-fusion-pairs.def: New.
22383         * config/aarch64/aarch64-protos.h (aarch64_fusion_pairs): New.
22384         * config/aarch64/aarch64.c (AARCH64_FUSE_NOTHING): Move to
22385         aarch64_fusion_pairs.
22386         (AARCH64_FUSE_MOV_MOVK): Likewise.
22387         (AARCH64_FUSE_ADRP_ADD): Likewise.
22388         (AARCH64_FUSE_MOVK_MOVK): Likewise.
22389         (AARCH64_FUSE_ADRP_LDR): Likewise.
22390         (AARCH64_FUSE_CMP_BRANCH): Likewise.
22391
22392 2015-06-26  Jiong Wang  <jiong.wang@arm.com>
22393
22394         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): New type
22395         SYMBOL_SMALL_GOT_28K.
22396         * config/aarch64/aarch64.md: (ldr_got_small_<mode>): Support new GOT
22397         relocation modifiers.
22398         (unspec): New enum "UNSPEC_GOTMALLPIC28K.
22399         (ldr_got_small_28k_<mode>): New.
22400         (ldr_got_small_28k_sidi): New.
22401         * config/aarch64/iterators.md (got_modifier): New mode iterator.
22402         * config/aarch64/aarch64-otps.h (aarch64_code_model): New model.
22403         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Support
22404         SYMBOL_SMALL_GOT_28K.
22405         (aarch64_rtx_costs): Add costs for new instruction sequences.
22406         (initialize_aarch64_code_model): Initialize new model.
22407         (aarch64_classify_symbol): Recognize new model and new symbol classification.
22408         (aarch64_asm_preferred_eh_data_format): Support new model.
22409         (aarch64_load_symref_appropriately): Generate new instruction
22410         sequences for -fpic.
22411         (TARGET_USE_PSEUDO_PIC_REG): New definition.
22412         (aarch64_use_pseudo_pic_reg): New function.
22413
22414 2015-06-26  Jiong Wang  <jiong.wang@arm.com>
22415
22416         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Rename
22417         SYMBOL_SMALL_GOT to SYMBOL_SMALL_GOT_4G.
22418         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto.
22419         (aarch64_expand_mov_immediate): Ditto.
22420         (aarch64_print_operand): Ditto.
22421         (aarch64_classify_symbol): Ditto.
22422
22423 2015-06-26  Nathan Sidwell  <nathan@codesourcery.com>
22424
22425         * config/nvptx/nvptx.md (call_operation): Remove unused variables.
22426
22427 2015-06-26  Bin Cheng  <bin.cheng@arm.com>
22428
22429         PR bootstrap/66638
22430         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Skip if
22431         assertion failed.  Remove assertion itself.
22432
22433 2015-06-26  Richard Biener  <rguenther@suse.de>
22434
22435         * fold-const.c (fold_binary_loc): Remove -A CMP -B -> A CMP B
22436         and -A CMP CST -> A CMP -CST which is redundant with a pattern
22437         in match.pd.
22438         Move (A | C) == D where C & ~D != 0 -> 0, (X ^ Y) ==/!= 0 -> X ==/!= Y,
22439         (X ^ Y) ==/!= {Y,X} -> {X,Y} ==/!= 0 and
22440         (X ^ C1) op C2 -> X op (C1 ^ C2) to ...
22441         * match.pd: ... patterns here.
22442
22443 2015-06-26  Marek Polacek  <polacek@redhat.com>
22444
22445         * match.pd ((x | y) & ~(x & y) -> x ^ y,
22446         (x | y) & (~x ^ y) -> x & y): New patterns.
22447
22448 2015-06-26  Richard Sandiford  <richard.sandiford@arm.com>
22449
22450         * rtl.h (emit): Add an optional boolean parameter to control
22451         whether barriers are emitted.
22452         * emit-rtl.c (emit): Likewise.
22453         * gensupport.c (get_emit_function): Return null rather than "emit".
22454         * genemit.c (gen_emit_seq): Handle the null return value.
22455         Don't emit barriers after the final instruction in the sequence.
22456         * gentarget-def.c (main): Don't emit barriers after the instruction.
22457
22458 2015-06-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
22459
22460         * config/arm/arm.c (arm_output_multireg_pop): Fix use of
22461         TARGET_UNIFIED_ASM.
22462
22463 2015-06-26  Richard Biener  <rguenther@suse.de>
22464
22465         * match.pd: Allow associating FLOAT_TYPE_P when flag_associative_math.
22466
22467 2015-06-26  Richard Biener  <rguenther@suse.de>
22468
22469         * match.pd: Allow (p +p off1) +p off2 to (p +p (off1 + off2))
22470         irrespective on whether the inner operation has a single use
22471         of both off are constant.
22472
22473 2015-06-26  Uros Bizjak  <ubizjak@gmail.com>
22474             Segher Boessenkool  <segher@kernel.crashing.org>
22475
22476         PR target/66412
22477         * config/i386/i386.md (various splitters): Use shallow_copy_rtx
22478         before doing PUT_MODE or PUT_CODE on operands to avoid
22479         in-place RTX modification.
22480
22481 2015-06-25  H.J. Lu  <hongjiu.lu@intel.com>
22482
22483         * gentarget-def.c (def_target_insn): Cast return of strtol to
22484         unsigned int.
22485
22486 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
22487
22488         * gimple.h (gimple_call_set_fn): Move inline function.
22489         * gimple.c (gimple_call_set_fn): Relocate here.
22490
22491 2015-06-25  Oleg Endo  <olegendo@gcc.gnu.org>
22492
22493         PR target/65979
22494         PR target/66611
22495         * config/sh/sh.md (tstsi_t peephole2): Use insn_invalid_p to check if
22496         the replacement insn will work.
22497
22498 2015-06-25  H.J. Lu  <hongjiu.lu@intel.com>
22499
22500         * gcc.c (driver_handle_option): Validate -pie if PIE is enabled
22501         by default.
22502
22503 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
22504
22505         * function.h (ipa_opt_pass, ipa_opt_pass_d): Move forward declarations.
22506         * cgraph.h: Include ipa-ref.h and plugin-api.h.
22507         (ipa_opt_pass, ipa_opt_pass_d)): Relocate forward declarations here.
22508         (symtab_node::address_can_be_compared_p): Move function.
22509         * cgraph.c (symtab_node::address_can_be_compared_p): Relocate function
22510         definition here.
22511         * asan.c: Remove ipa-ref.h and plugin-api.h from include list.
22512         * auto-profile.c: Likewise.
22513         * bb-reorder.c: Likewise.
22514         * builtins.c: Likewise.
22515         * calls.c: Likewise.
22516         * cfgexpand.c: Likewise.
22517         * cgraphbuild.c: Likewise.
22518         * cgraphclones.c: Likewise.
22519         * cgraphunit.c: Likewise.
22520         * combine.c: Likewise.
22521         * coverage.c: Likewise.
22522         * data-streamer-in.c: Likewise.
22523         * data-streamer-out.c: Likewise.
22524         * data-streamer.c: Likewise.
22525         * dbxout.c: Likewise.
22526         * dwarf2out.c: Likewise.
22527         * except.c: Likewise.
22528         * expr.c: Likewise.
22529         * final.c: Likewise.
22530         * fold-const.c: Likewise.
22531         * ggc-page.c: Likewise.
22532         * gimple-fold.c: Likewise.
22533         * gimple-iterator.c: Likewise.
22534         * gimple-pretty-print.c: Likewise.
22535         * gimple-streamer-in.c: Likewise.
22536         * gimple-streamer-out.c: Likewise.
22537         * gimple.c: Likewise.
22538         * gimplify.c: Likewise.
22539         * ipa-chkp.c: Likewise.
22540         * ipa-comdats.c: Likewise.
22541         * ipa-cp.c: Likewise.
22542         * ipa-devirt.c: Likewise.
22543         * ipa-icf-gimple.c: Likewise.
22544         * ipa-icf.c: Likewise.
22545         * ipa-inline-analysis.c: Likewise.
22546         * ipa-inline-transform.c: Likewise.
22547         * ipa-inline.c: Likewise.
22548         * ipa-polymorphic-call.c: Likewise.
22549         * ipa-profile.c: Likewise.
22550         * ipa-prop.c: Likewise.
22551         * ipa-pure-const.c: Likewise.
22552         * ipa-ref.c: Likewise.
22553         * ipa-reference.c: Likewise.
22554         * ipa-split.c: Likewise.
22555         * ipa-utils.c: Likewise.
22556         * ipa-visibility.c: Likewise.
22557         * ipa.c: Likewise.
22558         * langhooks.c: Likewise.
22559         * lto-cgraph.c: Likewise.
22560         * lto-compress.c: Likewise.
22561         * lto-opts.c: Likewise.
22562         * lto-section-in.c: Likewise.
22563         * lto-section-out.c: Likewise.
22564         * lto-streamer-in.c: Likewise.
22565         * lto-streamer-out.c: Likewise.
22566         * lto-streamer.c: Likewise.
22567         * omp-low.c: Likewise.
22568         * opts-global.c: Likewise.
22569         * passes.c: Likewise.
22570         * predict.c: Likewise.
22571         * print-tree.c: Likewise.
22572         * profile.c: Likewise.
22573         * ree.c: Likewise.
22574         * sanopt.c: Likewise.
22575         * stor-layout.c: Likewise.
22576         * symtab.c: Likewise.
22577         * toplev.c: Likewise.
22578         * trans-mem.c: Likewise.
22579         * tree-cfg.c: Likewise.
22580         * tree-chkp.c: Likewise.
22581         * tree-eh.c: Likewise.
22582         * tree-emutls.c: Likewise.
22583         * tree-inline.c: Likewise.
22584         * tree-nested.c: Likewise.
22585         * tree-parloops.c: Likewise.
22586         * tree-pretty-print.c: Likewise.
22587         * tree-profile.c: Likewise.
22588         * tree-sra.c: Likewise.
22589         * tree-ssa-alias.c: Likewise.
22590         * tree-ssa-live.c: Likewise.
22591         * tree-ssa-loop-ivcanon.c: Likewise.
22592         * tree-ssa-loop-ivopts.c: Likewise.
22593         * tree-ssa-pre.c: Likewise.
22594         * tree-ssa-sccvn.c: Likewise.
22595         * tree-ssa-strlen.c: Likewise.
22596         * tree-ssa-structalias.c: Likewise.
22597         * tree-streamer-in.c: Likewise.
22598         * tree-streamer-out.c: Likewise.
22599         * tree-streamer.c: Likewise.
22600         * tree-switch-conversion.c: Likewise.
22601         * tree-tailcall.c: Likewise.
22602         * tree-vect-data-refs.c: Likewise.
22603         * tree-vect-stmts.c: Likewise.
22604         * tree-vectorizer.c: Likewise.
22605         * tree.c: Likewise.
22606         * tsan.c: Likewise.
22607         * ubsan.c: Likewise.
22608         * value-prof.c: Likewise.
22609         * varasm.c: Likewise.
22610         * varpool.c: Likewise.
22611         * config/arm/arm.c: Likewise.
22612         * config/bfin/bfin.c: Likewise.
22613         * config/c6x/c6x.c: Likewise.
22614         * config/cris/cris.c: Likewise.
22615         * config/darwin-c.c: Likewise.
22616         * config/darwin.c: Likewise.
22617         * config/i386/i386.c: Likewise.
22618         * config/i386/winnt.c: Likewise.
22619         * config/microblaze/microblaze.c: Likewise.
22620         * config/mips/mips.c: Likewise.
22621         * config/rs6000/rs6000.c: Likewise.
22622         * config/rx/rx.c: Likewise.
22623         * config/s390/s390.c: Likewise.
22624         * config/tilegx/mul-tables.c: Likewise.
22625
22626 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
22627
22628         * config/aarch64/aarch64.c, config/alpha/alpha.c,
22629         config/arm/arm.c, config/avr/avr.c, config/bfin/bfin.c,
22630         config/c6x/c6x.c, config/cr16/cr16.c, config/cris/cris.c,
22631         config/fr30/fr30.c, config/frv/frv.c, config/h8300/h8300.c,
22632         config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
22633         config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
22634         config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
22635         config/microblaze/microblaze.c, config/mips/mips.c,
22636         config/mmix/mmix.c, config/mn10300/mn10300.c,
22637         config/moxie/moxie.c, config/msp430/msp430.c,
22638         config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
22639         config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
22640         config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
22641         config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
22642         config/stormy16/stormy16.c, config/tilegx/tilegx.c,
22643         config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
22644         config/visium/visium.c, config/xtensa/xtensa.c: Add comment above
22645         target-def.h include.
22646         * config/ft32/ft32.c: Likewise.  Fix misapplied hunk.
22647
22648 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
22649
22650         * Makefile.in (TARGET_DEF): Add target-insns.def.
22651         (.PRECIOUS, simple_rtl_generated_h): Add insn-target-def.h.
22652         (build/gentarget-def.o): New rule.
22653         (genprogrtl): Add target-def.
22654         * target-insns.def, gentarget-def.c: New files.
22655         * target.def: Add targetm.have_* and targetm.gen_* hooks,
22656         based on the contents of target-insns.def.
22657         * defaults.h (HAVE_simple_return, gen_simple_return): Delete.
22658         (HAVE_return, gen_return): Delete.
22659         * target-def.h: Include insn-target-def.h.
22660         * cfgrtl.c (force_nonfallthru_and_redirect): Use targetm interface
22661         instead of direct calls.  Rely on them to do the appropriate assertions.
22662         * function.c (gen_return_pattern): Likewise.  Return an rtx_insn *.
22663         (convert_jumps_to_returns): Use targetm interface instead of
22664         direct calls.
22665         (thread_prologue_and_epilogue_insns): Likewise.
22666         * reorg.c (find_end_label, dbr_schedule): Likewise.
22667         * shrink-wrap.h (SHRINK_WRAPPING_ENABLED): Likewise.
22668         * shrink-wrap.c (convert_to_simple_return): Likewise.
22669         (try_shrink_wrapping): Use SHRINK_WRAPPING_ENABLED.
22670
22671 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
22672
22673         * config/aarch64/aarch64.c, config/alpha/alpha.c, config/arm/arm.c,
22674         config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
22675         config/cr16/cr16.c, config/cris/cris.c, config/fr30/fr30.c,
22676         config/frv/frv.c, config/ft32/ft32.c, config/h8300/h8300.c,
22677         config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
22678         config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
22679         config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
22680         config/microblaze/microblaze.c, config/mips/mips.c, config/mmix/mmix.c,
22681         config/mn10300/mn10300.c, config/moxie/moxie.c, config/msp430/msp430.c,
22682         config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
22683         config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
22684         config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
22685         config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
22686         config/stormy16/stormy16.c, config/tilegx/tilegx.c,
22687         config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
22688         config/visium/visium.c, config/xtensa/xtensa.c: Move target-def.h
22689         includes to end.
22690
22691 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
22692
22693         * hash-map-traits.h (simple_hashmap_traits::key_type): New typedef.
22694         (unbounded_int_hashmap_traits::key_type): Likewise.
22695         * hash-map.h (hash_map): Get the key type from the traits.
22696         * hash-traits.h (default_hash_traits): By default, inherit from the
22697         template parameter.
22698         * alias.c (alias_set_traits): Delete.
22699         (alias_set_entry_d::children): Use alias_set_hash as the first
22700         template parameter.
22701         (record_alias_subset): Update accordingly.
22702         * except.c (tree_hash_traits): Delete.
22703         (type_to_runtime_map): Use tree_hash as the first template parameter.
22704         (init_eh): Update accordingly.
22705         * genmatch.c (capture_id_map_hasher): Delete.
22706         (cid_map_t): Use nofree_string_hash as first template parameter.
22707         * ipa-icf.h (symbol_compare_hashmap_traits): Delete.
22708         * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
22709         Use symbol_compare_hash as the first template parameter in
22710         subdivide_hash_map.
22711         * mem-stats.h (mem_usage_pair::mem_alloc_hashmap_traits): Delete.
22712         (mem_usage_pair::mem_map_t): Use mem_location_hash as the first
22713         template parameter.
22714         * passes.c (pass_registry_hasher): Delete.
22715         (name_to_pass_map): Use nofree_string_hash as the first template
22716         parameter.
22717         (register_pass_name): Update accordingly.
22718         * sanopt.c (sanopt_tree_map_traits): Delete.
22719         (sanopt_tree_triplet_map_traits): Delete.
22720         (sanopt_ctx::asan_check_map): Use tree_operand_hash as the first
22721         template parameter.
22722         (sanopt_ctx::vptr_check_map): Use sanopt_tree_triplet_hash as
22723         the first template parameter.
22724         * sese.c (rename_map_hasher): Delete.
22725         (rename_map_type): Use tree_ssa_name_hash as the first template
22726         parameter.
22727         * symbol-summary.h (function_summary::summary_hashmap_traits): Delete.
22728         (function_summary::m_map): Use map_hash as the first template
22729         parameter.
22730         (function_summary::release): Update accordingly.
22731         * tree-if-conv.c (phi_args_hash_traits): Delete.
22732         (predicate_scalar_phi): Use tree_operand_hash as the first template
22733         parameter to phi_arg_map.
22734         * tree-inline.h (dependence_hasher): Delete.
22735         (copy_body_data::dependence_map): Use dependence_hash as the first
22736         template parameter.
22737         * tree-inline.c (remap_dependence_clique): Update accordingly.
22738         * tree-ssa-strlen.c (stridxlist_hash_traits): Delete.
22739         (decl_to_stridxlist_htab): Use tree_decl_hash as the first template
22740         parameter.
22741         (addr_stridxptr): Update accordingly.
22742         * value-prof.c (profile_id_traits): Delete.
22743         (cgraph_node_map): Use profile_id_hash as the first template
22744         parameter.
22745         (init_node_map): Update accordingly.
22746         * config/alpha/alpha.c (string_traits): Delete.
22747         (machine_function::links): Use nofree_string_hash as the first
22748         template parameter.
22749         (alpha_use_linkage, alpha_write_linkage): Update accordingly.
22750         * config/m32c/m32c.c (pragma_traits): Delete.
22751         (pragma_htab): Use nofree_string_hash as the first template parameter.
22752         (m32c_note_pragma_address): Update accordingly.
22753         * config/mep/mep.c (pragma_traits): Delete.
22754         (pragma_htab): Use nofree_string_hash as the first template parameter.
22755         (mep_note_pragma_flag): Update accordingly.
22756         * config/mips/mips.c (mips16_flip_traits): Delete.
22757         (mflip_mips16_htab): Use nofree_string_hash as the first template
22758         parameter.
22759         (mflip_mips16_use_mips16_p): Update accordingly.
22760         (local_alias_traits): Delete.
22761         (mips16_local_aliases): Use nofree_string_hash as the first template
22762         parameter.
22763         (mips16_local_alias): Update accordingly.
22764
22765 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
22766
22767         * hash-map-traits.h (default_hashmap_traits): Delete.
22768
22769 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
22770
22771         * hash-map-traits.h (unbounded_hashmap_traits): New class.
22772         (unbounded_int_hashmap_traits): Likewise.
22773         * cfgexpand.c (part_traits): Use unbounded_int_hashmap_traits.
22774
22775 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
22776
22777         * ipa-icf.h (symbol_compare_hash): New class.
22778         (symbol_compare_hashmap_traits): Use it.
22779         * mem-stats.h (mem_alloc_description::mem_location_hash): New class.
22780         (mem_alloc_description::mem_alloc_hashmap_traits): Use it.
22781         (mem_alloc_description::reverse_mem_map_t): Remove redundant
22782         default_hashmap_traits.
22783         * sanopt.c (sanopt_tree_triplet_hash): New class.
22784         (sanopt_tree_triplet_map_traits): Use it.
22785
22786 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
22787
22788         * gengtype-parse.c (require_template_declaration): Allow '+' in
22789         template parameters.  Consolidate cases.
22790         * hash-traits.h (int_hash): New class.
22791         * alias.c (alias_set_hash): New structure.
22792         (alias_set_traits): Use it.
22793         * symbol-summary.h (function_summary::map_hash): New class.
22794         (function_summary::summary_hashmap_traits): Use it.
22795         * tree-inline.h (dependence_hash): New class.
22796         (dependence_hasher): Use it.
22797         * tree-ssa-reassoc.c (oecount_hasher): Use int_hash.
22798         * value-prof.c (profile_id_hash): New class.
22799         (profile_id_traits): Use it.
22800
22801 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
22802
22803         * config/mips/mips.c (mips16_flip_traits): Use it.
22804         (local_alias_traits, mips16_local_aliases): Convert from a map of
22805         rtxes to a map of symbol names.
22806         (mips16_local_alias): Update accordingly.
22807
22808 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
22809
22810         * hash-traits.h (string_hash, nofree_string_hash): New classes.
22811         * genmatch.c (capture_id_map_hasher): Use nofree_string_hash.
22812         * passes.c (pass_registry_hasher): Likewise.
22813         * config/alpha/alpha.c (string_traits): Likewise.
22814         * config/i386/winnt.c (i386_find_on_wrapper_list): Likewise.
22815         * config/m32c/m32c.c (pragma_traits): Likewise.
22816         * config/mep/mep.c (pragma_traits): Likewise.
22817
22818 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
22819
22820         * tree-hash-traits.h (tree_hash): New class.
22821         * except.c: Include tree-hash-traits.h.
22822         (tree_hash_traits): Use tree_hash.
22823
22824 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
22825
22826         * tree-hash-traits.h (tree_ssa_name_hasher): New class.
22827         * sese.c: Include tree-hash-traits.h.
22828         (rename_map_hasher): Use tree_ssa_name_hasher.
22829
22830 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
22831
22832         * tree-hash-traits.h (tree_decl_hash): New class.
22833         * tree-ssa-strlen.c: Include tree-hash-traits.h.
22834         (stridxlist_hash_traits): Use tree_decl_hash.
22835
22836 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
22837
22838         * tree-hash-traits.h: New file.
22839         (tree_operand_hash): New class.
22840         * sanopt.c: Include tree-hash-traits.h.
22841         (sanopt_tree_map_traits): Use tree_operand_hash.
22842         * tree-if-conv.c: Include tree-hash-traits.h.
22843         (phi_args_hash_traits): Use tree_operand_hash.
22844         * tree-ssa-uncprop.c: Include tree-hash-traits.h.
22845         (val_ssa_equiv_hash_traits): Use tree_operand_hash.
22846
22847 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
22848
22849         * hash-map-traits.h: Include hash-traits.h.
22850         (simple_hashmap_traits): New class.
22851         * mem-stats.h (hash_map): Change the default traits to
22852         simple_hashmap_traits<default_hash_traits<Key> >.
22853
22854 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
22855
22856         * hash-table.h: Update comments.
22857
22858 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
22859
22860         * hash-traits.h (default_hash_traits): New structure.
22861         * hash-set.h (default_hashset_traits): Delete.
22862         (hash_set): Use default_hash_traits<Key> instead of
22863         default_hashset_traits.  Delete hash_entry type and use Key directly.
22864         * ipa-devirt.c (pair_traits): Delete.
22865         (default_hash_traits <type_pair>): Override.
22866         (odr_subtypes_equivalent_p): Remove pair_types template parameter.
22867         (odr_types_equivalent_p, add_type_duplicate): Likewise.
22868
22869 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
22870
22871         * hash-traits.h (typed_noop_remove): Don't require a pointer type.
22872
22873 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
22874
22875         * hash-table.h (has_is_deleted, is_deleted_helper): Delete.
22876         (has_is_empty, is_empty_helper): Delete.
22877         (has_mark_deleted, mark_deleted_helper): Delete.
22878         (has_mark_empty, mark_empty_helper): Delete.
22879         (hash_table::is_deleted): Call the Descriptor unconditionally.
22880         (hash_table::is_empty): Likewise.
22881         (hash_table::mark_deleted): Likewise.
22882         (hash_table::mark_empty): Likewise.
22883
22884 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
22885
22886         * cgraph.h (asmname_hasher): Inherit from ggc_ptr_hash.  Remove
22887         redundant typedefs and members.
22888         * coverage.c (counts_entry): Inherit from pointer_hash.  Remove
22889         redundant typedefs.
22890         * dwarf2out.c (cu_hash_table_entry_hasher): Likewise.
22891         * ipa-devirt.c (odr_name_hasher): Likewise.
22892         (polymorphic_call_target_hasher): Likewise.
22893         * ira-costs.c (cost_classes_hasher): Likewise.
22894         * statistics.c (stats_counter_hasher): Likewise.
22895         * trans-mem.c (log_entry_hasher): Likewise.
22896         * tree-ssa-dom.c (expr_elt_hasher): Likewise.
22897         * tree-ssa-sccvn.c (vn_phi_hasher, vn_reference_hasher): Likewise.
22898         * tree-ssa-tail-merge.c (same_succ_def): Likewise.
22899         * var-tracking.c (variable_hasher): Likewise.
22900         * valtrack.h (dead_debug_hash_descr): Inherit from free_ptr_hash.
22901         Remove redundant typedefs and members.
22902
22903 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
22904
22905         * hash-traits.h (ggc_cache_hasher): Rename to...
22906         (ggc_cache_remove): ...this and remove typedefs.
22907         (ggc_cache_ptr_hash): New class.
22908         * hash-table.h: Update commentary.
22909         * emit-rtl.c (const_int_hasher): Inherit from ggc_cache_ptr_hash
22910         rather than ggc_cache_hasher.
22911         (const_wide_int_hasher, reg_attr_hasher): Likewise.
22912         (const_double_hasher, const_fixed_hasher): Likewise.
22913         * function.c (insn_cache_hasher): Likewise.
22914         * trans-mem.c (tm_wrapper_hasher): Likewise.
22915         * tree.h (tree_decl_map_cache_hasher): Likewise.
22916         * tree.c (type_cache_hasher, int_cst_hasher): Likewise.
22917         (cl_option_hasher, tree_vec_map_cache_hasher): Likewise.
22918         * ubsan.c (tree_type_map_cache_hasher): Likewise.
22919         * varasm.c (tm_clone_hasher): Likewise.
22920         * config/i386/i386.c (dllimport_hasher): Likewise.
22921         * config/nvptx/nvptx.c (declared_libfunc_hasher): Likewise.
22922         (tree_hasher): Likewise.
22923
22924 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
22925
22926         * hash-traits.h (ggc_hasher): Rename to...
22927         (ggc_remover): ...this and remove typedefs.
22928         (ggc_cache_hasher): Update accordingly.  Add typedefs.
22929         (ggc_ptr_hash): New class.
22930         * hash-table.h: Update comment.
22931         * cfgloop.h (loop_exit_hasher): Inherit from ggc_ptr_hash rather than
22932         ggc_hasher.
22933         * cgraph.h (section_name_hasher, cgraph_edge_hasher): Likewise.
22934         (tree_descriptor_hasher): Likewise.
22935         * cgraph.c (function_version_hasher): Likewise.
22936         * dwarf2out.c (indirect_string_hasher, dwarf_file_hasher): Likewise.
22937         (decl_die_hasher, block_die_hasher, decl_loc_hasher): Likewise.
22938         (dw_loc_list_hasher, addr_hasher): Likewise.
22939         * function.h (used_type_hasher): Likewise.
22940         * function.c (temp_address_hasher): Likewise.
22941         * gimple-ssa.h (tm_restart_hasher, ssa_name_hasher): Likewise.
22942         * libfuncs.h (libfunc_hasher): Likewise.
22943         * lto-streamer.h (decl_state_hasher): Likewise.
22944         * optabs.c (libfunc_decl_hasher): Likewise.
22945         * tree-scalar-evolution.c (scev_info_hasher): Likewise.
22946         * varasm.c (section_hasher, object_block_hasher): Likewise.
22947         (const_rtx_desc_hasher): Likewise.
22948         * config/darwin.c (indirection_hasher, cfstring_hasher): Likewise.
22949         * config/rs6000/rs6000.c (toc_hasher, builtin_hasher): Likewise.
22950
22951 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
22952
22953         * hash-traits.h (free_ptr_hash): New class.
22954         * dwarf2out.c (decl_table_entry_hasher): Inherit from free_ptr_hash
22955         rather than typed_free_remove.  Remove redudant typedefs.
22956         (external_ref_hasher): Likewise.
22957         * except.c (action_record_hasher, ttypes_filter_hasher): Likewise.
22958         (ehspec_hasher): Likewise.
22959         * ggc-common.c (saving_hasher): Likewise.
22960         * gimplify.c (gimplify_hasher): Likewise.
22961         * haifa-sched.c (delay_i2_hasher): Likewise.
22962         * loop-invariant.c (invariant_expr_hasher): Likewise.
22963         * loop-iv.c (biv_entry_hasher): Likewise.
22964         * loop-unroll.c (iv_split_hasher, var_expand_hasher): Likewise.
22965         * trans-mem.c (tm_mem_map_hasher, tm_memop_hasher): Likewise.
22966         * tree-cfg.c (locus_discrim_hasher): Likewise.
22967         * tree-eh.c (finally_tree_hasher): Likewise.
22968         * tree-into-ssa.c (var_info_hasher): Likewise.
22969         * tree-parloops.c (reduction_hasher, name_to_copy_hasher): Likewise.
22970         * tree-ssa-loop-ivopts.c (iv_inv_expr_hasher): Likewise.
22971         * tree-ssa-phiopt.c (ssa_names_hasher): Likewise.
22972         * tree-ssa-pre.c (expr_pred_trans_d): Likewise.
22973         * tree-ssa-sccvn.c (vn_constant_hasher): Likewise.
22974         * tree-ssa-structalias.c (equiv_class_hasher): Likewise.
22975         (shared_bitmap_hasher): Likewise.
22976         * tree-ssa-threadupdate.c (redirection_data): Likewise.
22977         * tree-vectorizer.h (peel_info_hasher): Likewise.
22978         * tree-vectorizer.c (simduid_to_vf, simd_array_to_simduid): Likewise.
22979         * config/mips/mips.c (mips_lo_sum_offset_hasher): Likewise.
22980
22981 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
22982
22983         * hash-table.h: Update comments.
22984         * hash-traits.h (pointer_hash): Don't inherit from typed_noop_remove.
22985         (nofree_ptr_hash): New class.
22986         * asan.c (asan_mem_ref_hasher): Inherit from nofree_ptr_hash rather
22987         than typed_noop_remove.  Remove redudant typedefs.
22988         * attribs.c (attribute_hasher): Likewise.
22989         * cfg.c (bb_copy_hasher): Likewise.
22990         * cselib.c (cselib_hasher): Likewise.
22991         * dse.c (invariant_group_base_hasher): Likewise.
22992         * dwarf2cfi.c (trace_info_hasher): Likewise.
22993         * dwarf2out.c (macinfo_entry_hasher): Likewise.
22994         (comdat_type_hasher, loc_list_hasher): Likewise.
22995         * gcse.c (pre_ldst_expr_hasher): Likewise.
22996         * genmatch.c (id_base): Likewise.
22997         * genrecog.c (test_pattern_hasher): Likewise.
22998         * gimple-ssa-strength-reduction.c (cand_chain_hasher): Likewise.
22999         * haifa-sched.c (delay_i1_hasher): Likewise.
23000         * hard-reg-set.h (simplifiable_subregs_hasher): Likewise.
23001         * ipa-icf.h (congruence_class_group_hash): Likewise.
23002         * ipa-profile.c (histogram_hash): Likewise.
23003         * ira-color.c (allocno_hard_regs_hasher): Likewise.
23004         * lto-streamer.h (string_slot_hasher): Likewise.
23005         * lto-streamer.c (tree_entry_hasher): Likewise.
23006         * plugin.c (event_hasher): Likewise.
23007         * postreload-gcse.c (expr_hasher): Likewise.
23008         * store-motion.c (st_expr_hasher): Likewise.
23009         * tree-sra.c (uid_decl_hasher): Likewise.
23010         * tree-ssa-coalesce.c (coalesce_pair_hasher): Likewise.
23011         (ssa_name_var_hash): Likewise.
23012         * tree-ssa-live.c (tree_int_map_hasher): Likewise.
23013         * tree-ssa-loop-im.c (mem_ref_hasher): Likewise.
23014         * tree-ssa-pre.c (pre_expr_d): Likewise.
23015         * tree-ssa-sccvn.c (vn_nary_op_hasher): Likewise.
23016         * vtable-verify.h (registration_hasher): Likewise.
23017         * vtable-verify.c (vtbl_map_hasher): Likewise.
23018         * config/arm/arm.c (libcall_hasher): Likewise.
23019         * config/i386/winnt.c (wrapped_symbol_hasher): Likewise.
23020         * config/ia64/ia64.c (bundle_state_hasher): Likewise.
23021         * config/sol2.c (comdat_entry_hasher): Likewise.
23022         * fold-const.c (fold): Use nofree_ptr_hash instead of pointer_hash.
23023         (print_fold_checksum, fold_checksum_tree): Likewise.
23024         (debug_fold_checksum, fold_build1_stat_loc): Likewise.
23025         (fold_build2_stat_loc, fold_build3_stat_loc): Likewise.
23026         (fold_build_call_array_loc): Likewise.
23027         * tree-ssa-ccp.c (gimple_htab): Likewise.
23028         * tree-browser.c (tree_upper_hasher): Inherit from nofree_ptr_hash
23029         rather than pointer_type.
23030
23031 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23032
23033         * hash-traits.h (pointer_hash::mark_deleted, pointer_hash::mark_empty)
23034         (pointer_hash::is_deleted, pointer_hash::is_empty): New functions.
23035
23036 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23037
23038         * hash-traits.h (ggc_hasher::remove): Take a reference parameter.
23039         (ggc_hasher::ggc_mx): Likewise.
23040         (ggc_cache_hasher): Inherit from ggc_hasher.  Remove definitions
23041         that duplicate ggc_hasher ones.
23042
23043 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23044
23045         * hash-table.h (hash_table): Add gt_cleare_cache as a friend.
23046         (gt_cleare_cache): Check here for deleted and empty entries.
23047         Replace handle_cache_entry with a call to keep_cache_entry.
23048         * hash-traits.h (ggc_cache_hasher::handle_cache_entry): Delete.
23049         (ggc_cache_hasher::keep_cache_entry): New function.
23050         * trans-mem.c (tm_wrapper_hasher::handle_cache_entry): Delete.
23051         (tm_wrapper_hasher::keep_cache_entry): New function.
23052         * tree.h (tree_decl_map_cache_hasher::handle_cache_entry): Delete.
23053         (tree_vec_map_cache_hasher::keep_cache_entry): New function.
23054         * tree.c (type_cache_hasher::handle_cache_entry): Delete.
23055         (type_cache_hasher::keep_cache_entry): New function.
23056         (tree_vec_map_cache_hasher::handle_cache_entry): Delete.
23057         (tree_vec_map_cache_hasher::keep_cache_entry): New function.
23058         * ubsan.c (tree_type_map_cache_hasher::handle_cache_entry): Delete.
23059         (tree_type_map_cache_hasher::keep_cache_entry): New function.
23060         * varasm.c (tm_clone_hasher::handle_cache_entry): Delete.
23061         (tm_clone_hasher::keep_cache_entry): New function.
23062         * config/i386/i386.c (dllimport_hasher::handle_cache_entry): Delete.
23063         (dllimport_hasher::keep_cache_entry): New function.
23064
23065 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23066
23067         * hash-table.h: Include hash-traits.h.
23068         (typed_free_remove, typed_noop_remove, pointer_hash, ggc_hasher)
23069         (ggc_cache_hasher): Move to...
23070         * hash-traits.h: ...this new file.
23071
23072 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
23073
23074         * tree-core.h (struct tree_optimization_option): Make opts a pointer to
23075         struct cl_optimization.
23076         * tree.h (TREE_OPTIMIZATION): Return the pointer, not the address of it.
23077         * tree.c (make_node_stat): Allocate cl_optimization struct.
23078         (copy_node_stat): Allocate and copy cl_optimization struct.
23079
23080 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
23081
23082         * function.h (struct incoming_args): Move struct.
23083         (pass_by_reference, reference_callee_copied): Remove prototypes.
23084         * emit-rtl.h (struct incoming_args): Relocate struct here.
23085         * calls.h (pass_by_reference, reference_callee_copied): Relocate
23086         prototypes here.
23087         * function.c (pass_by_reference, reference_callee_copied): Move.
23088         * calls.c (pass_by_reference, reference_callee_copied): Relocate here.
23089         * cfgloop.h: Don't include tm.h or hard-reg-set.h.
23090         * ipa-chkp.c: Include calls.h.
23091
23092 2015-06-25  Andrew Macleod  <amacleod@redhat.com>
23093
23094         * alias.h (alias_set_type): Move typedef.
23095         * coretypes.h (alias_set_type): Relocate typedef here.
23096         * rtl.h: Don't include alias.h.
23097
23098 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
23099
23100         * cgraph.h (cgraph_rtl_info): Move to rtl.h
23101         (cgraph_node): Maintain pointer to struct cgraph_rtl_info instead of
23102         and instance.
23103         * rtl.h (struct cgraph_rtl_info): Define when HARD_REG_SET available.
23104         * cgraph.c (cgraph_node::rtl_info): Allocate cgraph_rtl_info if one
23105         doesn't exist.
23106         * calls.c: Include hard-reg-set.h before rtl.h.
23107         * ira.c: Likewise.
23108
23109 2015-06-25  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
23110             Vladimir Makarov  <vmakarov@redhat.com>
23111
23112         * ira-color.c (assign_hard_reg): Remove unecessary bitmap check.
23113         Add assert.
23114
23115 2015-06-25  Richard Biener  <rguenther@suse.de>
23116
23117         * fold-const.c (fold_binary_loc): Move simplification of
23118         (X <<>> C1) & C2 ...
23119         * match.pd: ... here.
23120
23121 2015-06-25  Eric Botcazou  <ebotcazou@adacore.com>
23122
23123         * lto-streamer-out.c (DFS::hash_scc): Fix typos & formatting glitches.
23124
23125 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23126
23127         * match.pd: Add patterns for vec_conds between 1 and 0.
23128
23129 2015-06-25  Richard Biener  <rguenther@suse.de>
23130
23131         * tree-vect-stmts.c (vectorizable_conversion): Do not set
23132         STMT_VINFO_VEC_STMT for SLP.
23133         (vectorizable_store): Likewise.
23134         (vectorizable_load): Likewise.
23135         (vect_transform_stmt): Catch SLP vectorization clobbering
23136         STMT_VINFO_VEC_STMT.
23137
23138 2015-06-25  Richard Biener  <rguenther@suse.de>
23139
23140         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Improve debug
23141         dumping.
23142         (vect_create_mask_and_perm): Do not set STMT_VINFO_VEC_STMT and
23143         cleanup resulting dead code and parameters.
23144         (vect_transform_slp_perm_load): Adjust.
23145
23146 2015-06-25  Nick Clifton  <nickc@redhat.com>
23147
23148         * config/bfin/bfin.c (bfin_expand_prologue): Set
23149         current_function_static_stack_size if flag_stack_usage_info is set.
23150         * config/ft32/ft32.c (ft32_expand_prologue): Likewise.
23151         * config/h8300/h8300.c (h8300_expand_prologue): Likewise.
23152         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
23153         * config/m32c/m32c.c (m32c_emit_prologue): Likewise.
23154
23155 2015-06-25  Tom de Vries  <tom@codesourcery.com>
23156
23157         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Don't claim in header
23158         comment that the generated IV is unsigned.
23159
23160 2015-06-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
23161
23162         PR target/29693
23163         * config/arm/arm.c (arm_dbx_register_number): Return
23164         DWARF_FRAME_REGISTERS by default.
23165
23166 2015-06-25  Tom de Vries  <tom@codesourcery.com>
23167
23168         * dominance.c (calculate_dominance_info): Fix verify_dominators call
23169         argument.  Call verify_dominator when reusing dominator info.
23170
23171 2015-06-24  Kaz Kojima  <kkojima@gcc.gnu.org>
23172
23173         PR target/66563
23174         * config/sh/sh.md (GOTaddr2picreg): Add a new operand for
23175         an additional element of the unspec vector.  Modify indices
23176         of operands.
23177         (builtin_setjmp_receiver): Pass const0_rtx to gen_GOTaddr2picreg.
23178         * config/sh/sh.c (prepare_move_operands): Pass incremented
23179         const_int to gen_GOTaddr2picreg.
23180         (sh_expand_prologue): Pass const0_rtx to gen_GOTaddr2picreg.
23181
23182 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
23183
23184         * config/aarch64/aarch64.md (<optab><fcvt_target><GPF:mode>2):
23185         Condition on TARGET_FLOAT.
23186
23187 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
23188
23189         * doc/invoke.texi: Clarify AArch64 feature modifiers (no)fp, (no)simd
23190         and (no)crypto.
23191
23192 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
23193
23194         * config/aarch64/aarch64-protos.h (aarch64_err_no_fpadvsimd): New.
23195
23196         * config/aarch64/aarch64.md (mov<mode>/GPF, movtf): Use
23197         aarch64_err_no_fpadvsimd.
23198
23199         * config/aarch64/aarch64.c (aarch64_err_no_fpadvsimd): New.
23200         (aarch64_layout_arg, aarch64_init_cumulative_args): Use
23201         aarch64_err_no_fpadvsimd if !TARGET_FLOAT and we need FP regs.
23202         (aarch64_expand_builtin_va_start, aarch64_setup_incoming_varargs):
23203         Turn error into assert, test TARGET_FLOAT.
23204         (aarch64_gimplify_va_arg_expr): Use aarch64_err_no_fpadvsimd, test
23205         TARGET_FLOAT.
23206
23207 2015-06-24  Aldy Hernandez  <aldyh@redhat.com>
23208
23209         PR debug/66482
23210         * dwarf2out.c (gen_formal_parameter_die): Remove assert.
23211
23212 2015-06-24  Ilya Enkovich  <enkovich.gnu@gmail.com>
23213
23214         * tree-vect-slp.c (vect_build_slp_tree_1): Init vectype.
23215
23216 2015-06-24  Renlin Li <renlin.li@arm.com>
23217
23218         * config/aarch64/aarch64.h(TARGET_CPU_CPP_BUILTINS): Add
23219         __ARM_ALIGN_MAX_PWR, __ARM_ALIGN_MAX_STACK_PWR.
23220
23221 2015-06-24  Richard Biener  <rguenther@suse.de>
23222
23223         * genmatch.c (enum tree_code): Add VIEW_CONVERT[012].
23224         (main): Likewise.
23225         (lower_opt_convert): Support lowering of conditional view_convert.
23226         (parser::parse_operation): Likewise.
23227         (parser::parse_for): Likewise.
23228
23229 2015-06-24  Renlin Li  <renlin.li@arm.com>
23230
23231         * varasm.c (emit_local): Use unsigned int for align variable.
23232
23233 2015-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
23234
23235         PR target/63408
23236         * config/arm/arm.c (vfp3_const_double_for_fract_bits): Disable
23237         for negative numbers.
23238
23239 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23240
23241         PR rtl-optimization/66306
23242         * reload.c (find_reloads): Swap the match_dup info for
23243         commutative operands.
23244
23245 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23246
23247         * config/s390/vx-builtins.md
23248         ("vec_scatter_element<mode>_<non_vec_int>")
23249         ("vec_scatter_element<V_HW_64:mode>_SI"): Replace gf mode
23250         attribute with bhfgq.
23251
23252 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23253
23254         * config/s390/s390-builtins.def: Fix vpopct instruction comments.
23255
23256 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23257
23258         * config/s390/s390-builtin-types.def: Add flag to indicate the
23259         options under which the function type is needed.
23260         * config/s390/s390-builtins.def: Add flag to indicate the options
23261         under which the builtin is enabled.
23262         * config/s390/s390-builtins.h: Add flags parameter to macro
23263         definitions.
23264         (bflags_for_builtin): New function.
23265         (flags_for_builtin): Renamed to ...
23266         (opflags_for_builtin): ... this.
23267         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Rename
23268         flags_for_builtin to bflags_for_builtin and
23269         flags_overloaded_builtin_var to opflags_overloaded_builtin_var.
23270         * config/s390/s390.c: Add initialization of bflags_builtin and
23271         opflags_builtin arrays.
23272         Remove code for flags_builtin.
23273         (s390_init_builtins): Only create builtin function types if one of
23274         their flags is active.
23275         Only create builtins if all of their flags are active.
23276         (s390_expand_builtin): Rename flags_for_builtin to
23277         opflags_for_builtin.
23278
23279 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23280
23281         * config/s390/vecintrin.h: Remove internal builtins.
23282
23283 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23284
23285         * config/s390/s390.c (s390_secondary_reload): Fix check for
23286         GENERAL_REGS register class.
23287
23288 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23289
23290         * config/s390/s390.c (s390_support_vector_misalignment): Call
23291         default implementation for !TARGET_VX.
23292
23293 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23294
23295         * config/s390/s390.c (s390_legitimate_constant_p): Add
23296         TARGET_VX check.
23297
23298 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23299
23300         * config/s390/s390.c (s390_vector_abi): New variable definition.
23301         (s390_check_type_for_vector_abi): New function.
23302         (TARGET_ASM_FILE_END): New macro definition.
23303         (s390_asm_file_end): New function.
23304         (s390_function_arg): Call s390_check_type_for_vector_abi.
23305         (s390_gimplify_va_arg): Likewise.
23306         * configure: Regenerate.
23307         * configure.ac: Check for .gnu_attribute Binutils feature.
23308
23309 2015-06-23  Chen Gang  <gang.chen.5i5j@gmail.com>
23310
23311         PR target/65803
23312         * config/bfin/bfin.c (hwloop_optimize): Initialize
23313         JUMP_LABEL for newly created jump.
23314
23315 2015-06-23  Tristan Gingold  <gingold@adacore.com>
23316
23317         * collect-utils.c (collect_wait): Unlink the response file here
23318         instead of...
23319         (do_wait): ...here.
23320         (utils_cleanup): ...and here.
23321
23322 2015-06-23  Richard Sandiford  <richard.sandiford@arm.com>
23323
23324         * df-scan.c: Don't include target-def.h.
23325         * targhooks.c: Likewise.
23326         * config/arm/arm-c.c: Likewise.
23327         * config/i386/i386-c.c: Likewise.
23328         * config/nds32/nds32-cost.c: Likewise.
23329         * config/nds32/nds32-fp-as-gp.c: Likewise.
23330         * config/nds32/nds32-intrinsic.c: Likewise.
23331         * config/nds32/nds32-isr.c: Likewise.
23332         * config/nds32/nds32-md-auxiliary.c: Likewise.
23333         * config/nds32/nds32-memory-manipulation.c: Likewise.
23334         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
23335         * config/nds32/nds32-predicates.c: Likewise.
23336
23337 2015-06-23  Richard Biener  <rguenther@suse.de>
23338
23339         PR tree-optimization/66636
23340         * tree-vect-stmts.c (vectorizable_store): Properly compute the
23341         def type for further defs for strided stores.
23342
23343 2015-06-23  Nathan Sidwell  <nathan@codesourcery.com>
23344
23345         * config/nvptx/nvptx.md (sel_true<mode>, sel_false<mode>): New
23346         conditional selects.
23347         (setcc_int<mode>, setcc_float<mode>): Reformat.
23348
23349 2015-06-23  Marek Polacek  <polacek@redhat.com>
23350
23351         * match.pd ((x + y) - (x | y) -> x & y,
23352         (x + y) - (x & y) -> x | y): New patterns.
23353
23354 2015-06-23  Ludovic Courtès  <ludo@gnu.org>
23355
23356         PR 65711
23357         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Move
23358         '-dynamic-linker' within %{!shared: ...}.
23359
23360 2015-06-23  Uros Bizjak  <ubizjak@gmail.com>
23361
23362         PR target/66560
23363         * config/i386/predicates.md (addsub_vm_operator): New predicate.
23364         (addsub_vs_operator): Ditto.
23365         (addsub_vs_parallel): Ditto.
23366         * config/i386/sse.md (ssedoublemode): Add V4SF and V2DF modes.
23367         (avx_addsubv4df3, avx_addsubv8sf3, sse3_addsubv2df3, sse3_addsubv4sf3):
23368         Put minus RTX before plus and adjust vec_merge selector.
23369         (*avx_addsubv4df3_1, *avx_addsubv4df3_1s, *sse3_addsubv2df3_1)
23370         (*sse_addsubv2df3_1s, *avx_addsubv8sf3_1, *avx_addsubv8sf3_1s)
23371         (*sse3_addsubv4sf3_1, *sse_addsubv4sf3_1s): Remove insn patterns.
23372         (addsub vec_merge splitters): New combiner splitters.
23373         (addsub vec_select/vec_concat splitters): Ditto.
23374
23375 2015-06-23  Bin Cheng  <bin.cheng@arm.com>
23376
23377         PR tree-optimization/66449
23378         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Use
23379         POINTER_PLUS_EXPR for pointers.
23380
23381 2015-06-23  Alan Modra  <amodra@gmail.com>
23382
23383         * rtlanal.c (commutative_operand_precedence): Correct comments.
23384         * simplify-rtx.c (simplify_plus_minus_op_data_cmp): Delete forward
23385         declaration.  Return an int.  Distinguish REG,REG return from
23386         others.
23387         (struct simplify_plus_minus_op_data): Make local to function.
23388         (simplify_plus_minus): Don't set canonicalized if merely sorting
23389         registers.  Avoid packing ops if nothing changes.  White space fixes.
23390
23391 2015-06-22  Pierre-Marie de Rodat  <derodat@adacore.com>
23392
23393         * gcc.c (default_compilers): Pass "-o %g.s" to cc1 for headers even if
23394         -fdump-ada-spec is passed but not if -fsyntax-only is.
23395
23396 2015-06-22  Vladimir Makarov  <vmakarov@redhat.com>
23397
23398         PR bootstrap/63740
23399         * lra-lives.c (process_bb_lives): Check insn copying the same
23400         reload pseudo and don't create a copy for it.
23401
23402 2015-06-22  Tom de Vries  <tom@codesourcery.com>
23403
23404         * tree-parloops.c (transform_to_exit_first_loop_alt): Add update_stmt
23405         for cond_stmt.
23406
23407 2015-06-22  Tom de Vries  <tom@codesourcery.com>
23408
23409         * builtins.def (DEF_GOMP_BUILTIN): Test
23410         'flag_tree_parallelize_loops > 1' instead of
23411         'flag_tree_parallelize_loops'.  Test flag_cilkplus.
23412
23413 2015-06-22  Tom de Vries  <tom@codesourcery.com>
23414
23415         * dominance.c (calculate_dominance_info): Verify dominators if
23416         early-out.
23417
23418 2015-06-22  Marek Polacek  <polacek@redhat.com>
23419
23420         * match.pd ((x ^ y) ^ (x | y) -> x & y,
23421         (x & y) + (x ^ y) -> x | y, (x & y) | (x ^ y) -> x | y,
23422         (x & y) ^ (x ^ y) -> x | y, (x & y) + (x | y) -> x + y,
23423         (x | y) - (x ^ y) -> x & y, (x | y) - (x & y) -> x ^ y): New patterns.
23424
23425 2015-06-22  Uros Bizjak  <ubizjak@gmail.com>
23426
23427         PR target/65871
23428         * config/i386/i386.c (ix86_rtx_costs) <case COMPARE>: Ignore the
23429         cost of embedded comparison.
23430
23431 2015-06-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
23432
23433         PR target/65914
23434         * config/rs6000/predicates.md (altivec_register_operand): Permit
23435         virtual stack registers.
23436         (vsx_register_operand): Likewise.
23437         (vfloat_operand): Likewise.
23438         (vint_operand): Likewise.
23439         (vlogical_operand): Likewise.
23440
23441 2015-06-22  Richard Biener  <rguenther@suse.de>
23442
23443         * tree-vectorizer.h (_loop_vec_info): Add scalar_cost_vec
23444         and single_scalar_iteration_cost members.
23445         (LOOP_VINFO_SCALAR_ITERATION_COST): New.
23446         (LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST): Likewise.
23447         (vect_get_single_scalar_iteration_cost): Remove.
23448         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
23449         Use LOOP_VINFO_SCALAR_ITERATION_COST.
23450         * tree-vect-loop.c (destroy_loop_vec_info): Free
23451         scalar_cost_vec.
23452         (vect_get_single_scalar_iteration_cost): Compute result into
23453         LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST and
23454         LOOP_VINFO_SCALAR_ITERATION_COST.  Make static.
23455         (vect_analyze_loop_2): Call vect_get_single_scalar_iteration_cost.
23456         (vect_estimate_min_profitable_iters): Use them.
23457
23458 2015-06-22  Christian Bruel  <christian.bruel@st.com>
23459
23460         PR target/52144
23461         * config/arm/arm.c (add_attribute, arm_insert_attributes): New functions
23462         (TARGET_INSERT_ATTRIBUTES): Define.
23463         (thumb_flipper): New var.
23464         * config/arm/arm.opt (-mflip-thumb): New switch.
23465
23466 2015-06-22  Jan Hubicka  <hubicka@ucw.cz>
23467             Martin Liska  <mliska@suse.cz>
23468
23469         PR ipa/65908
23470         * ipa-icf.c (sem_item::target_supports_symbol_aliases): Remove
23471         construction of arg_types.
23472         (sem_function::sem_function): Likewise.
23473         (sem_function::~sem_function): Remove destruction of arg_types.
23474         (sem_function::compatible_parm_types_p): New function.
23475         (sem_function::equals_wpa): Reorg matching of return values
23476         and parameter types.
23477         (sem_function::equals_private): Reorg mathcing of argument types.
23478         (sem_function::parse_tree_args): Remove.
23479         * ipa-icf.h (init_wpa): Do not call it.
23480         (parse_tree_args): Remove.
23481         (compatible_parm_types_p): Declare.
23482         (result_type): Remove.
23483         (arg_types): Remove.
23484
23485 2015-06-22  Jan Hubicka  <hubicka@ucw.cz>
23486
23487         PR ipa/66351
23488         * ipa-polymorphic-call.c
23489         (ipa_polymorphic_call_context::get_dynamic_type): Fix thinko when
23490         initializing alias oracle; fix formating; set base_alias_set if it
23491         is known.
23492
23493 2015-06-22  Mikhail Maltsev  <maltsevm@gmail.com>
23494
23495         * auto-inc-dec.c (reverse_mem, reverse_inc): Remove.
23496         (parse_add_or_inc): Use std::swap instead of reverse_{mem,inc}.
23497         (find_inc): Likewise.
23498         * combine.c (combine_simplify_rtx): Use std::swap instead of manually
23499         swapping.
23500         * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
23501         * df-scan.c (df_swap_refs): Remove.
23502         (df_sort_and_compress_refs): Use std::swap instead of df_swap_refs.
23503         * dominance.c (link_roots): Use std::swap instead of manually swapping.
23504         * expr.c (expand_expr_real_2, do_store_flag): Likewise.
23505         * fold-const.c (fold_relational_const): Likewise.
23506         * genattrtab.c (simplify_test_exp): Likewise.
23507         * gimple-match-head.c (gimple_resimplify2, gimple_resimplify3,
23508         gimple_simplify): Likewise.
23509         * ifcvt.c (noce_try_abs, find_if_header): Likewise.
23510         * internal-fn.c (expand_addsub_overflow, expand_mul_overflow): Likewise.
23511         * ipa-devirt.c (add_type_duplicate): Likewise.
23512         * loop-iv.c (get_biv_step_1, iv_number_of_iterations): Likewise.
23513         * lra-lives.c (lra_setup_reload_pseudo_preferenced_hard_reg): Likewise.
23514         * lra.c (lra_create_copy): Likewise.
23515         * lto-streamer-out.c (DFS::DFS): Likewise.
23516         * modulo-sched.c (get_sched_window): Likewise.
23517         * omega.c (omega_pretty_print_problem): Likewise.
23518         * optabs.c (prepare_float_lib_cmp, expand_mult_highpart): Likewise.
23519         * reload1.c (reloads_unique_chain_p): Likewise.
23520         * sel-sched-ir.c (exchange_lv_sets, exchange_av_sets): Remove.
23521         (exchange_data_sets): Move logic from exchange_{av,lv}_sets here and
23522         use std::swap.
23523         * simplify-rtx.c (simplify_unary_operation_1): Use std::swap instead of
23524         manually swapping.
23525         * tree-if-conv.c (is_cond_scalar_reduction, predicate_scalar_phi,
23526         predicate_mem_writes): Likewise.
23527         * tree-loop-distribution.c (pg_add_dependence_edges): Likewise.
23528         * tree-predcom.c (combine_chains): Likewise.
23529         * tree-ssa-alias.c (nonoverlapping_component_refs_p,
23530         refs_may_alias_p_1): Likewise.
23531         * tree-ssa-ifcombine.c (recognize_if_then_else): Likewise.
23532         * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
23533         * tree-ssa-loop-niter.c (refine_bounds_using_guard,
23534         number_of_iterations_cond): Likewise.
23535         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
23536         * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
23537         * tree-vect-slp.c (vect_build_slp_tree): Likewise.
23538         * tree-vect-stmts.c (supportable_widening_operation): Likewise.
23539         * tree-vrp.c (extract_range_from_binary_expr_1,
23540         extract_range_from_unary_expr_1): Likewise.
23541
23542 2015-06-20  Marek Polacek  <polacek@redhat.com>
23543
23544         * common.opt (fsanitize-undefined-trap-on-error): Add Driver.
23545
23546 2015-06-19  Kaz Kojima  <kkojima@gcc.gnu.org>
23547
23548         PR target/66591
23549         * config/sh/sh.c (prepare_move_operands): Replace subreg
23550         index term with R0 for base and index addressing.
23551
23552 2015-06-19  Jim Wilson  <jim.wilson@linaro.org>
23553
23554         * config/aarch64/aarch64.md (mov<mode>:GPF): Don't call force_reg if
23555         op1 is an fp zero.
23556         (movsf_aarch64): Change condition from register_operand to
23557         aarch64_reg_or_fp_zero for op1.  Change type for alternative 6 to
23558         load1.  Change type for alternative 7 to store1.
23559         (movdf_aarch64): Likewise.
23560
23561 2015-06-19  James Greenhalgh  <james.greenhalgh@arm.com>
23562
23563         * config/vax/vax.md: Adjust sign/zero extend patterns to
23564         handle SUBREGs in operands[1].
23565
23566 2015-06-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23567
23568         * config/i386/i386.c (ix86_function_versions): Use std::swap instead
23569         of manually swapping.
23570         (expand_vec_perm_interleave2): Likewise.
23571
23572 2015-06-19  Ilya Enkovich  <enkovich.gnu@gmail.com>
23573
23574         * tree-chkp.c (chkp_compute_bounds_for_assignment): Don't
23575         reuse bounds created for abnormal ssa names.
23576
23577 2015-06-19  Jakub Jelinek  <jakub@redhat.com>
23578
23579         * config/nvptx/nvptx.md (allocate_stack): Rename to...
23580         (allocate_stack_<mode>): ... this, and add :P on both
23581         match_operand and unspec.
23582         (allocate_stack): New expander.
23583
23584 2015-06-19  Christian Bruel  <christian.bruel@st.com>
23585
23586         PR target/66541
23587         PR target/52144
23588         * config/arm/arm.c (arm_set_current_function): Handle
23589         explicit default options.
23590
23591 2015-06-18  Uros Bizjak  <ubizjak@gmail.com>
23592
23593         * config/i386/i386.md (*movsicc_noc_zext): New insn.
23594         (zero-extended cmove with mem peephole2): New pattern.
23595         (cmove with mem peephole2): Merge patterns.
23596
23597 2015-06-18  Segher Boessenkool  <segher@kernel.crashing.org>
23598
23599         * config/rs6000/rs6000.h (WORD_REGISTER_OPERATIONS): Delete.
23600
23601 2015-06-18  Steve Ellcey  <sellcey@imgtec.com>
23602
23603         * config/mips/mips.c (mips_rtx_costs): Remove HONOR_NAN check.
23604         * config/mips/mips.md (*madd4<mode>): Ditto.
23605         (*nmadd3<mode>) Ditto.
23606         (*nmadd4<mode>_fastmath): Ditto.
23607         (*nmadd3<mode>_fastmath): Ditto.
23608         (*nmsub4<mode>): Ditto.
23609         (*nmsub3<mode>): Ditto.
23610         (*nmsub4<mode>_fastmath): Ditto.
23611         (*nmsub3<mode>_fastmath): Ditto.
23612
23613 2015-06-18  Michael Matz  <matz@suse.de>
23614
23615         PR middle-end/66253
23616         * tree-vect-stmts.c (vectorizable_store): Implement non-SLP
23617         grouped strided stores.
23618         (vectorizable_load): Don't use the DR from first_stmt in
23619         the non-SLP grouped strided case.
23620
23621 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
23622
23623         PR target/66569
23624         * function.c (assign_bounds): Add arguments assign_regs,
23625         assign_special, assign_bt.
23626         (assign_parms): For vararg functions handle bounds in BT
23627         and special slots after incoming vararg bounds.
23628
23629 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
23630
23631         PR middle-end/66568
23632         * cfgexpand.c (expand_return): Handle missing bounds.
23633         (expand_gimple_stmt_1): Likewise.
23634         * tree-chkp.c (chkp_expand_zero_bounds): New.
23635         * tree-chkp.h (chkp_expand_zero_bounds): New.
23636
23637 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
23638
23639         PR middle-end/66567
23640         * ipa-chkp.c (chkp_maybe_create_clone): Require
23641         functions to be instrumentable.
23642         * tree-chkp.c (chkp_replace_function_pointer): Use
23643         chkp_instrumentable_p instead of attribute check.
23644
23645 2015-06-18  Richard Biener  <rguenther@suse.de>
23646
23647         PR tree-optimization/66510
23648         * tree-vect-stmts.c (vectorizable_load): Properly compute the
23649         number of vector loads for SLP permuted loads.
23650         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Also
23651         check the stride for loop vectorization.
23652         (vect_enhance_data_refs_alignment): Deal with SLP adjusted
23653         vectorization factor.
23654         (vect_analyze_group_access): If the group size is not a power
23655         of two require a epilogue loop.
23656         * tree-vect-loop.c (vect_analyze_loop_2): Move alignment
23657         compute and optimizing and alias test pruning after final
23658         vectorization factor computation.
23659         * tree-vect-slp.c (vect_build_slp_tree_1): Remove check on
23660         vector alignment.
23661         (vect_transform_slp_perm_load): Properly compute the original
23662         number of vector load stmts.
23663
23664 2015-06-18  Uros Bizjak  <ubizjak@gmail.com>
23665
23666         * doc/invoke.texi (-fsanitize-sections): Split @var to avoid
23667         "unlikely character , in @var" warning.
23668
23669 2015-06-17  Uros Bizjak  <ubizjak@gmail.com>
23670
23671         * config/i386/i386.c (ix86_function_arg): Nest TARGET_64BIT code.
23672         (ix86_function_arg_advance): Ditto.
23673         (ix86_pass_by_reference): Ditto.  Rewrite MS_ABI part.
23674
23675 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
23676
23677         * function.h (struct rtl_data): Remove struct and accessor macros.
23678         * emit-rtl.h (struct rtl_data): Relocate to here.
23679         * Makefile.in (GTFILES): Add emit-rtl.h.
23680         * df-core.c: Include emit-rtl.h.
23681         * genattrtab.c: Likewise.
23682         * genconditions.c: Likewise.
23683         * genpreds.c: Likewise.
23684         * genrecog.c: Likewise.
23685         * regcprop.c: Likewise.
23686         * resource.c: Likewise.
23687         * sched-rgn.c: Likewise.
23688         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
23689         * config/i386/winnt.c: Likewise.
23690
23691 2015-06-17  Jakub Jelinek  <jakub@redhat.com>
23692
23693         PR middle-end/66429
23694         * omp-low.c (expand_omp_taskreg, expand_omp_target): Use child_cfun
23695         instead of DECL_STRUCT_FUNCTION (child_fn).  Or in has_simduid_loops
23696         and has_force_vectorize_loops flags from cfun into
23697         child_cfun.
23698         (expand_omp_simd): For broken loop, set cfun->has_simduid_loops
23699         if simduid is non-NULL.
23700         * tree-pass.h (make_pass_simduid_cleanup): New prototype.
23701         * passes.def (pass_simduid_cleanup): Add new pass after loop
23702         passes.
23703         * tree-vectorizer.c (adjust_simduid_builtins): Remove one unnecessary
23704         indirection from htab argument's type.
23705         (shrink_simd_arrays): New function.
23706         (vectorize_loops): Use it.  Adjust adjust_simduid_builtins caller.
23707         Don't call adjust_simduid_builtins if there are no loops.
23708         (pass_data_simduid_cleanup, pass_simduid_cleanup): New variables.
23709         (pass_simduid_cleanup::execute): New method.
23710         (make_pass_simduid_cleanup): New function.
23711
23712 2017-06-17  Andrew MacLeod  <amacleod@redhat.com>
23713
23714         * tree-core.h (tree_target_option): Make opts field a pointer to a
23715         cl_target_option instead of an instance of the struct.
23716         * tree.h (TREE_TARGET_OPTION): Return the pointer, not an address of
23717         the structure.
23718         * tree.c (make_node_stat ): Allocate a cl_target_option struct for
23719         TARGET_OPTION_NODE.
23720         (copy_node_stat): Allocate and copy struct cl_target_option.
23721
23722 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
23723
23724         * tree.h (merge_dllimport_decl_attributes, handle_dll_attribute):
23725         Remove conditional exposure of prototypes.
23726         (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Delete.
23727         * tree.c (anon_aggrname_format, anon_aggrname_p): New.  Replace macro
23728         definitions in tree.h with functions.
23729         * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Use
23730         anon_aggrname_p.
23731         * tree-streamer-out.c (write_ts_decl_minimal_tree_pointers): Likewise.
23732
23733 2015-06-17  Segher Boessenkool  <segher@kernel.crashing.org>
23734
23735         * config/rs6000/rs6000.md (*cmp<mode>_internal1): Rename to...
23736         (*cmp<mode>_signed): ... this.
23737         (*cmpsi_internal2, *cmpdi_internal2): Merge, rename to...
23738         (*cmp<mode>_unsigned): ... this.  Remove %b.
23739
23740 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
23741
23742         * coretypes.h: Include input.h and as-a.h.
23743         * rtl.h: Include input.h and as-a.h for generator files.
23744         * hwint.c: Include coretypes.h, don't include diagnostic-core.h.
23745         * vec.c: Don't include diagnostic-core.h.
23746         * alias.c: Do not include input.h, line-map.h or is-a.h.
23747         * asan.c: Likewise.
23748         * attribs.c: Likewise.
23749         * auto-inc-dec.c: Likewise.
23750         * auto-profile.c: Likewise.
23751         * bb-reorder.c: Likewise.
23752         * bt-load.c: Likewise.
23753         * builtins.c: Likewise.
23754         * caller-save.c: Likewise.
23755         * calls.c: Likewise.
23756         * ccmp.c: Likewise.
23757         * cfg.c: Likewise.
23758         * cfganal.c: Likewise.
23759         * cfgbuild.c: Likewise.
23760         * cfgcleanup.c: Likewise.
23761         * cfgexpand.c: Likewise.
23762         * cfghooks.c: Likewise.
23763         * cfgloop.c: Likewise.
23764         * cfgloop.h: Likewise.
23765         * cfgloopanal.c: Likewise.
23766         * cfgloopmanip.c: Likewise.
23767         * cfgrtl.c: Likewise.
23768         * cgraph.c: Likewise.
23769         * cgraphbuild.c: Likewise.
23770         * cgraphclones.c: Likewise.
23771         * cgraphunit.c: Likewise.
23772         * cilk-common.c: Likewise.
23773         * combine-stack-adj.c: Likewise.
23774         * combine.c: Likewise.
23775         * compare-elim.c: Likewise.
23776         * convert.c: Likewise.
23777         * coverage.c: Likewise.
23778         * cppbuiltin.c: Likewise.
23779         * cprop.c: Likewise.
23780         * cse.c: Likewise.
23781         * cselib.c: Likewise.
23782         * data-streamer-in.c: Likewise.
23783         * data-streamer-out.c: Likewise.
23784         * data-streamer.c: Likewise.
23785         * dbxout.c: Likewise.
23786         * dce.c: Likewise.
23787         * ddg.c: Likewise.
23788         * debug.c: Likewise.
23789         * df-core.c: Likewise.
23790         * df-problems.c: Likewise.
23791         * df-scan.c: Likewise.
23792         * df.h: Likewise.
23793         * dfp.c: Likewise.
23794         * diagnostic-core.h: Likewise.
23795         * diagnostic.c: Likewise.
23796         * dojump.c: Likewise.
23797         * dominance.c: Likewise.
23798         * domwalk.c: Likewise.
23799         * double-int.c: Likewise.
23800         * dse.c: Likewise.
23801         * dumpfile.c: Likewise.
23802         * dumpfile.h: Likewise.
23803         * dwarf2asm.c: Likewise.
23804         * dwarf2cfi.c: Likewise.
23805         * dwarf2out.c: Likewise.
23806         * emit-rtl.c: Likewise.
23807         * et-forest.c: Likewise.
23808         * except.c: Likewise.
23809         * explow.c: Likewise.
23810         * expmed.c: Likewise.
23811         * expr.c: Likewise.
23812         * final.c: Likewise.
23813         * fixed-value.c: Likewise.
23814         * fold-const.c: Likewise.
23815         * function.c: Likewise.
23816         * fwprop.c: Likewise.
23817         * gcc-plugin.h: Likewise.
23818         * gcse.c: Likewise.
23819         * generic-match-head.c: Likewise.
23820         * ggc-page.c: Likewise.
23821         * gimple-builder.c: Likewise.
23822         * gimple-expr.c: Likewise.
23823         * gimple-fold.c: Likewise.
23824         * gimple-iterator.c: Likewise.
23825         * gimple-low.c: Likewise.
23826         * gimple-match-head.c: Likewise.
23827         * gimple-pretty-print.c: Likewise.
23828         * gimple-ssa-isolate-paths.c: Likewise.
23829         * gimple-ssa-strength-reduction.c: Likewise.
23830         * gimple-streamer-in.c: Likewise.
23831         * gimple-streamer-out.c: Likewise.
23832         * gimple-streamer.h: Likewise.
23833         * gimple-walk.c: Likewise.
23834         * gimple.c: Likewise.
23835         * gimplify-me.c: Likewise.
23836         * gimplify.c: Likewise.
23837         * godump.c: Likewise.
23838         * graph.c: Likewise.
23839         * graphite-blocking.c: Likewise.
23840         * graphite-dependences.c: Likewise.
23841         * graphite-interchange.c: Likewise.
23842         * graphite-isl-ast-to-gimple.c: Likewise.
23843         * graphite-optimize-isl.c: Likewise.
23844         * graphite-poly.c: Likewise.
23845         * graphite-scop-detection.c: Likewise.
23846         * graphite-sese-to-poly.c: Likewise.
23847         * graphite.c: Likewise.
23848         * haifa-sched.c: Likewise.
23849         * hw-doloop.c: Likewise.
23850         * ifcvt.c: Likewise.
23851         * init-regs.c: Likewise.
23852         * input.c: Likewise.
23853         * internal-fn.c: Likewise.
23854         * ipa-chkp.c: Likewise.
23855         * ipa-comdats.c: Likewise.
23856         * ipa-cp.c: Likewise.
23857         * ipa-devirt.c: Likewise.
23858         * ipa-icf-gimple.c: Likewise.
23859         * ipa-icf.c: Likewise.
23860         * ipa-inline-analysis.c: Likewise.
23861         * ipa-inline-transform.c: Likewise.
23862         * ipa-inline.c: Likewise.
23863         * ipa-polymorphic-call.c: Likewise.
23864         * ipa-profile.c: Likewise.
23865         * ipa-prop.c: Likewise.
23866         * ipa-pure-const.c: Likewise.
23867         * ipa-ref.c: Likewise.
23868         * ipa-reference.c: Likewise.
23869         * ipa-split.c: Likewise.
23870         * ipa-utils.c: Likewise.
23871         * ipa-visibility.c: Likewise.
23872         * ipa.c: Likewise.
23873         * ira-build.c: Likewise.
23874         * ira-color.c: Likewise.
23875         * ira-conflicts.c: Likewise.
23876         * ira-costs.c: Likewise.
23877         * ira-emit.c: Likewise.
23878         * ira-lives.c: Likewise.
23879         * ira.c: Likewise.
23880         * jump.c: Likewise.
23881         * langhooks.c: Likewise.
23882         * lcm.c: Likewise.
23883         * loop-doloop.c: Likewise.
23884         * loop-init.c: Likewise.
23885         * loop-invariant.c: Likewise.
23886         * loop-iv.c: Likewise.
23887         * loop-unroll.c: Likewise.
23888         * lower-subreg.c: Likewise.
23889         * lra-assigns.c: Likewise.
23890         * lra-coalesce.c: Likewise.
23891         * lra-constraints.c: Likewise.
23892         * lra-eliminations.c: Likewise.
23893         * lra-lives.c: Likewise.
23894         * lra-remat.c: Likewise.
23895         * lra-spills.c: Likewise.
23896         * lra.c: Likewise.
23897         * lto-cgraph.c: Likewise.
23898         * lto-compress.c: Likewise.
23899         * lto-opts.c: Likewise.
23900         * lto-section-in.c: Likewise.
23901         * lto-section-out.c: Likewise.
23902         * lto-streamer-in.c: Likewise.
23903         * lto-streamer-out.c: Likewise.
23904         * lto-streamer.c: Likewise.
23905         * mcf.c: Likewise.
23906         * mode-switching.c: Likewise.
23907         * modulo-sched.c: Likewise.
23908         * omega.c: Likewise.
23909         * omp-low.c: Likewise.
23910         * optabs.c: Likewise.
23911         * opts-global.c: Likewise.
23912         * opts.h: Likewise.
23913         * passes.c: Likewise.
23914         * plugin.c: Likewise.
23915         * postreload-gcse.c: Likewise.
23916         * postreload.c: Likewise.
23917         * predict.c: Likewise.
23918         * pretty-print.h: Likewise.
23919         * print-rtl.c: Likewise.
23920         * print-tree.c: Likewise.
23921         * profile.c: Likewise.
23922         * real.c: Likewise.
23923         * realmpfr.c: Likewise.
23924         * recog.c: Likewise.
23925         * ree.c: Likewise.
23926         * reg-stack.c: Likewise.
23927         * regcprop.c: Likewise.
23928         * reginfo.c: Likewise.
23929         * regrename.c: Likewise.
23930         * regstat.c: Likewise.
23931         * reload.c: Likewise.
23932         * reload1.c: Likewise.
23933         * reorg.c: Likewise.
23934         * resource.c: Likewise.
23935         * rtl-chkp.c: Likewise.
23936         * rtl-error.c: Likewise.
23937         * rtlanal.c: Likewise.
23938         * rtlhooks.c: Likewise.
23939         * sanopt.c: Likewise.
23940         * sched-deps.c: Likewise.
23941         * sched-ebb.c: Likewise.
23942         * sched-rgn.c: Likewise.
23943         * sched-vis.c: Likewise.
23944         * sdbout.c: Likewise.
23945         * sel-sched-dump.c: Likewise.
23946         * sel-sched-ir.c: Likewise.
23947         * sel-sched.c: Likewise.
23948         * sese.c: Likewise.
23949         * shrink-wrap.c: Likewise.
23950         * simplify-rtx.c: Likewise.
23951         * stack-ptr-mod.c: Likewise.
23952         * statistics.c: Likewise.
23953         * stmt.c: Likewise.
23954         * stor-layout.c: Likewise.
23955         * store-motion.c: Likewise.
23956         * streamer-hooks.c: Likewise.
23957         * stringpool.c: Likewise.
23958         * symtab.c: Likewise.
23959         * target-globals.c: Likewise.
23960         * targhooks.c: Likewise.
23961         * toplev.c: Likewise.
23962         * tracer.c: Likewise.
23963         * trans-mem.c: Likewise.
23964         * tree-affine.c: Likewise.
23965         * tree-browser.c: Likewise.
23966         * tree-call-cdce.c: Likewise.
23967         * tree-cfg.c: Likewise.
23968         * tree-cfgcleanup.c: Likewise.
23969         * tree-chkp-opt.c: Likewise.
23970         * tree-chkp.c: Likewise.
23971         * tree-chrec.c: Likewise.
23972         * tree-complex.c: Likewise.
23973         * tree-data-ref.c: Likewise.
23974         * tree-dfa.c: Likewise.
23975         * tree-diagnostic.c: Likewise.
23976         * tree-dump.c: Likewise.
23977         * tree-eh.c: Likewise.
23978         * tree-emutls.c: Likewise.
23979         * tree-if-conv.c: Likewise.
23980         * tree-inline.c: Likewise.
23981         * tree-into-ssa.c: Likewise.
23982         * tree-iterator.c: Likewise.
23983         * tree-loop-distribution.c: Likewise.
23984         * tree-nested.c: Likewise.
23985         * tree-nrv.c: Likewise.
23986         * tree-object-size.c: Likewise.
23987         * tree-outof-ssa.c: Likewise.
23988         * tree-parloops.c: Likewise.
23989         * tree-phinodes.c: Likewise.
23990         * tree-predcom.c: Likewise.
23991         * tree-pretty-print.c: Likewise.
23992         * tree-profile.c: Likewise.
23993         * tree-scalar-evolution.c: Likewise.
23994         * tree-sra.c: Likewise.
23995         * tree-ssa-address.c: Likewise.
23996         * tree-ssa-alias.c: Likewise.
23997         * tree-ssa-ccp.c: Likewise.
23998         * tree-ssa-coalesce.c: Likewise.
23999         * tree-ssa-copy.c: Likewise.
24000         * tree-ssa-copyrename.c: Likewise.
24001         * tree-ssa-dce.c: Likewise.
24002         * tree-ssa-dom.c: Likewise.
24003         * tree-ssa-dse.c: Likewise.
24004         * tree-ssa-forwprop.c: Likewise.
24005         * tree-ssa-ifcombine.c: Likewise.
24006         * tree-ssa-live.c: Likewise.
24007         * tree-ssa-loop-ch.c: Likewise.
24008         * tree-ssa-loop-im.c: Likewise.
24009         * tree-ssa-loop-ivcanon.c: Likewise.
24010         * tree-ssa-loop-ivopts.c: Likewise.
24011         * tree-ssa-loop-manip.c: Likewise.
24012         * tree-ssa-loop-niter.c: Likewise.
24013         * tree-ssa-loop-prefetch.c: Likewise.
24014         * tree-ssa-loop-unswitch.c: Likewise.
24015         * tree-ssa-loop.c: Likewise.
24016         * tree-ssa-math-opts.c: Likewise.
24017         * tree-ssa-operands.c: Likewise.
24018         * tree-ssa-phiopt.c: Likewise.
24019         * tree-ssa-phiprop.c: Likewise.
24020         * tree-ssa-pre.c: Likewise.
24021         * tree-ssa-propagate.c: Likewise.
24022         * tree-ssa-reassoc.c: Likewise.
24023         * tree-ssa-sccvn.c: Likewise.
24024         * tree-ssa-scopedtables.c: Likewise.
24025         * tree-ssa-sink.c: Likewise.
24026         * tree-ssa-strlen.c: Likewise.
24027         * tree-ssa-structalias.c: Likewise.
24028         * tree-ssa-tail-merge.c: Likewise.
24029         * tree-ssa-ter.c: Likewise.
24030         * tree-ssa-threadedge.c: Likewise.
24031         * tree-ssa-threadupdate.c: Likewise.
24032         * tree-ssa-uncprop.c: Likewise.
24033         * tree-ssa-uninit.c: Likewise.
24034         * tree-ssa.c: Likewise.
24035         * tree-ssanames.c: Likewise.
24036         * tree-stdarg.c: Likewise.
24037         * tree-streamer-in.c: Likewise.
24038         * tree-streamer-out.c: Likewise.
24039         * tree-streamer.c: Likewise.
24040         * tree-switch-conversion.c: Likewise.
24041         * tree-tailcall.c: Likewise.
24042         * tree-vect-data-refs.c: Likewise.
24043         * tree-vect-generic.c: Likewise.
24044         * tree-vect-loop-manip.c: Likewise.
24045         * tree-vect-loop.c: Likewise.
24046         * tree-vect-patterns.c: Likewise.
24047         * tree-vect-slp.c: Likewise.
24048         * tree-vect-stmts.c: Likewise.
24049         * tree-vectorizer.c: Likewise.
24050         * tree-vrp.c: Likewise.
24051         * tree.c: Likewise.
24052         * tsan.c: Likewise.
24053         * ubsan.c: Likewise.
24054         * valtrack.c: Likewise.
24055         * value-prof.c: Likewise.
24056         * var-tracking.c: Likewise.
24057         * varasm.c: Likewise.
24058         * varpool.c: Likewise.
24059         * vmsdbgout.c: Likewise.
24060         * vtable-verify.c: Likewise.
24061         * web.c: Likewise.
24062         * wide-int.cc: Likewise.
24063         * xcoffout.c: Likewise.
24064         * common/common-target.h: Do not include input.h, line-map.h or is-a.h.
24065         * common/common-targhooks.c: Likewise.
24066         * config/aarch64/aarch64-builtins.c: Likewise.
24067         * config/aarch64/aarch64.c: Likewise.
24068         * config/alpha/alpha.c: Likewise.
24069         * config/arc/arc.c: Likewise.
24070         * config/arm/aarch-common.c: Likewise.
24071         * config/arm/arm-builtins.c: Likewise.
24072         * config/arm/arm-c.c: Likewise.
24073         * config/arm/arm.c: Likewise.
24074         * config/avr/avr-c.c: Likewise.
24075         * config/avr/avr-log.c: Likewise.
24076         * config/avr/avr.c: Likewise.
24077         * config/bfin/bfin.c: Likewise.
24078         * config/c6x/c6x.c: Likewise.
24079         * config/cr16/cr16.c: Likewise.
24080         * config/cris/cris.c: Likewise.
24081         * config/darwin-c.c: Likewise.
24082         * config/darwin.c: Likewise.
24083         * config/default-c.c: Likewise.
24084         * config/epiphany/epiphany.c: Likewise.
24085         * config/epiphany/mode-switch-use.c: Likewise.
24086         * config/epiphany/resolve-sw-modes.c: Likewise.
24087         * config/fr30/fr30.c: Likewise.
24088         * config/frv/frv.c: Likewise.
24089         * config/ft32/ft32.c: Likewise.
24090         * config/glibc-c.c: Likewise.
24091         * config/h8300/h8300.c: Likewise.
24092         * config/i386/i386-c.c: Likewise.
24093         * config/i386/i386.c: Likewise.
24094         * config/i386/msformat-c.c: Likewise.
24095         * config/i386/winnt-cxx.c: Likewise.
24096         * config/i386/winnt-stubs.c: Likewise.
24097         * config/i386/winnt.c: Likewise.
24098         * config/ia64/ia64-c.c: Likewise.
24099         * config/ia64/ia64.c: Likewise.
24100         * config/iq2000/iq2000.c: Likewise.
24101         * config/lm32/lm32.c: Likewise.
24102         * config/m32c/m32c-pragma.c: Likewise.
24103         * config/m32c/m32c.c: Likewise.
24104         * config/m32r/m32r.c: Likewise.
24105         * config/m68k/m68k.c: Likewise.
24106         * config/mcore/mcore.c: Likewise.
24107         * config/mep/mep-pragma.c: Likewise.
24108         * config/mep/mep.c: Likewise.
24109         * config/microblaze/microblaze-c.c: Likewise.
24110         * config/microblaze/microblaze.c: Likewise.
24111         * config/mips/mips.c: Likewise.
24112         * config/mmix/mmix.c: Likewise.
24113         * config/mn10300/mn10300.c: Likewise.
24114         * config/moxie/moxie.c: Likewise.
24115         * config/msp430/msp430-c.c: Likewise.
24116         * config/msp430/msp430.c: Likewise.
24117         * config/nds32/nds32-cost.c: Likewise.
24118         * config/nds32/nds32-fp-as-gp.c: Likewise.
24119         * config/nds32/nds32-intrinsic.c: Likewise.
24120         * config/nds32/nds32-isr.c: Likewise.
24121         * config/nds32/nds32-md-auxiliary.c: Likewise.
24122         * config/nds32/nds32-memory-manipulation.c: Likewise.
24123         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
24124         * config/nds32/nds32-predicates.c: Likewise.
24125         * config/nds32/nds32.c: Likewise.
24126         * config/nios2/nios2.c: Likewise.
24127         * config/nvptx/nvptx.c: Likewise.
24128         * config/pa/pa.c: Likewise.
24129         * config/pdp11/pdp11.c: Likewise.
24130         * config/rl78/rl78-c.c: Likewise.
24131         * config/rl78/rl78.c: Likewise.
24132         * config/rs6000/rs6000-c.c: Likewise.
24133         * config/rs6000/rs6000.c: Likewise.
24134         * config/rx/rx.c: Likewise.
24135         * config/s390/s390-c.c: Likewise.
24136         * config/s390/s390.c: Likewise.
24137         * config/sh/sh-c.c: Likewise.
24138         * config/sh/sh-mem.cc: Likewise.
24139         * config/sh/sh.c: Likewise.
24140         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
24141         * config/sh/sh_treg_combine.cc: Likewise.
24142         * config/sol2-c.c: Likewise.
24143         * config/sol2-cxx.c: Likewise.
24144         * config/sol2-stubs.c: Likewise.
24145         * config/sol2.c: Likewise.
24146         * config/sparc/sparc-c.c: Likewise.
24147         * config/sparc/sparc.c: Likewise.
24148         * config/spu/spu-c.c: Likewise.
24149         * config/spu/spu.c: Likewise.
24150         * config/stormy16/stormy16.c: Likewise.
24151         * config/tilegx/mul-tables.c: Likewise.
24152         * config/tilegx/tilegx-c.c: Likewise.
24153         * config/tilegx/tilegx.c: Likewise.
24154         * config/tilepro/mul-tables.c: Likewise.
24155         * config/tilepro/tilepro-c.c: Likewise.
24156         * config/tilepro/tilepro.c: Likewise.
24157         * config/v850/v850-c.c: Likewise.
24158         * config/v850/v850.c: Likewise.
24159         * config/vax/vax.c: Likewise.
24160         * config/visium/visium.c: Likewise.
24161         * config/vms/vms-c.c: Likewise.
24162         * config/vms/vms.c: Likewise.
24163         * config/vxworks.c: Likewise.
24164         * config/winnt-c.c: Likewise.
24165         * config/xtensa/xtensa.c: Likewise.
24166
24167 2015-06-17  Robert Suchanek  <robert.suchanek@imgtec.com>
24168
24169         * config/mips/mips.c (mips_ira_change_pseudo_allocno_class): New
24170         function.
24171         (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define macro.
24172
24173 2015-06-17  Richard Biener  <rguenther@suse.de>
24174
24175         PR tree-optimization/66251
24176         * tree-vect-stmts.c (vectorizable_store): Fix gathering of vectorized
24177         stmts for SLP strided stores.
24178
24179         Revert
24180         2015-05-22  Richard Biener  <rguenther@suse.de>
24181
24182         PR tree-optimization/66251
24183         * tree-vect-stmts.c (vectorizable_conversion): Properly
24184         set STMT_VINFO_VEC_STMT even for the SLP case.
24185
24186         2015-05-26  Michael Matz  <matz@suse.de>
24187
24188         PR middle-end/66251
24189         * tree-vect-stmts.c (vect_create_vectorized_demotion_stmts): Always set
24190         STMT_VINFO_VEC_STMT, also with SLP.
24191
24192 2015-06-16  Uros Bizjak  <ubizjak@gmail.com>
24193
24194         PR target/56766
24195         * config/i386/sse.md (*avx_addsubv4df3_1): New insn pattern.
24196         (*avx_addsubv4df3_1s): Ditto.
24197         (*sse3_addsubv2df3_1): Ditto.
24198         (*sse3_addsubv2df3_1s): Ditto.
24199         (*avx_addsubv8sf3_1): Ditto.
24200         (*avx_addsubv8sf3_1s): Ditto.
24201         (*sse3_addsubv4sf3_1): Ditto.
24202         (*sse3_addsubv4sf3_1s): Ditto.
24203
24204 2015-06-16  Steve Ellcey  <sellcey@imgtec.com>
24205
24206         * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): New.
24207         (SYSROOT_SUFFIX_SPEC): Update.
24208         (SYSROOT_HEADERS_SUFFIX_SPEC): New.
24209         (STARTFILE_PREFIX_SPEC): Update.
24210         * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Remove.
24211         (MULTILIB_REQUIRED): New.
24212         (MULTILIB_OSDIRNAMES): New.
24213         * config/mips/t-img-linux (MULTILIB_EXCEPTIONS): Remove.
24214         (MULTILIB_REQUIRED): New.
24215         (MULTILIB_OSDIRNAMES): New.
24216
24217 2015-06-16  Matthew Wahab  <matthew.wahab@arm.com>
24218
24219         * config/aarch64/aarch64-arches.def: Add "armv8.1-a".
24220         * config/aarch64/aarch64-options-extensions.def: Update "fP",
24221         "simd" and "crypto".  Add "lse", "pan", "lor" and "rdma".
24222         * config/aarch64/aarch64.h (AARCH64_FL_LSE): New.
24223         (AARCH64_FL_PAN): New.
24224         (AARCH64_FL_LOR): New.
24225         (AARCH64_FL_RDMA): New.
24226         (AARCH64_FL_FOR_ARCH8_1): New.
24227         * doc/invoke.texi (AArch64 Options): Add "armv8.1-a" to
24228         -march. Add "lse", "pan", "lor", "rdma" to feature modifiers.
24229
24230 2015-06-16  Martin Liska  <mliska@suse.cz>
24231
24232         * bitmap.c (dump_bitmap_statistics): Fix GNU coding style.
24233         * hash-table.c (void dump_hash_table_loc_statistics): Add missing
24234         guard.
24235
24236 2015-06-16  Richard Biener  <rguenther@suse.de>
24237
24238         * tree-vect-stmts.c (vectorizable_store): Adjust.
24239         (vectorizable_load): Likewise.
24240         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
24241         Simplify.
24242         (vect_create_data_ref_ptr): Likewise.
24243         (bump_vector_ptr): Adjust.
24244
24245 2015-06-16  Richard Biener  <rguenther@suse.de>
24246
24247         * tree-vect-stmts.c (vectorizable_load): Properly start loads
24248         with the first element if this is grouped loads.
24249
24250 2015-06-16  James Greenhalgh  <james.greenhalgh@arm.com>
24251
24252         * config/arm/arm-protos.h (struct tune_params): Rename
24253         log_op_non_sc to log_op_non_short_circuit, and rename enum
24254         values to expand SC to SHORT_CIRCUIT.
24255         * config/arm/arm.c (arm_slowmul_tune): Expand LOG_OP_NON_SC
24256         to LOG_OP_NON_SHORT_CIRCUIT.
24257         (arm_fastmul_tune):Likewise
24258         (arm_strongarm_tune): Likewise.
24259         (arm_xscale_tune): Likewise.
24260         (arm_9e_tune): Likewise.
24261         (arm_marvell_pj4_tune): Likewise.
24262         (arm_v6t2_tune): Likewise.
24263         (arm_cortex_tune): Likewise.
24264         (arm_cortex_a8_tune): Likewise.
24265         (arm_cortex_a7_tune): Likewise.
24266         (arm_cortex_a15_tune): Likewise.
24267         (arm_cortex_a53_tune): Likewise.
24268         (arm_cortex_a57_tune): Likewise.
24269         (arm_xgene1_tune): Likewise.
24270         (arm_cortex_a5_tune): Likewise.
24271         (arm_cortex_a9_tune): Likewise.
24272         (arm_cortex_a12_tune): Likewise.
24273         (arm_v7m_tune): Likewise.
24274         (arm_cortex_m7_tune): Likewise.
24275         (arm_v6m_tune): Likewise.
24276         (arm_fa726te_tune): Likewise.
24277
24278 2015-06-15  David Edelsohn  <dje.gcc@gmail.com>
24279
24280         * altivec.md: Delete UNSPEC_VMLADDUHM.
24281         (mulv4si3_p8): New pattern.
24282         (mulv4si3): Use it for POWER8.
24283         (mulv8hi3): Use vmladduhm with zero addend.
24284         (altivec_vmladduhm): Descriptive RTL.
24285
24286 2015-06-15  Jim Wilson  <jim.wilson@linaro.org>
24287
24288         * config/aarch64/aarch64.md (mov<mode>_aarch64): Change alternative 2
24289         to use neon_move instead of mov_imm.
24290         (movdi_aarch64): Change alternative 14 to use neon_move not fmov.
24291         (movtf_aarch64): Change alternative 4 to use neon_move_q not fconstd.
24292
24293         * config/aarch64/aarch64.c (aarch64_valid_floating_const): Move
24294         aarch64_float_const_zero_rtx_p check before TFmode check.
24295         * config/aarch64/aarch64.md (movtf): Don't call force_reg if op1 is
24296         an fp zero.
24297         (movtf_aarch64): Separate ?rY alternative into two.  Adjust assembly
24298         code and attributes to match.  Change condition from register_operand
24299         to aarch64_reg_or_fp_zero for op1.  Change type for ldp from
24300         neon_load1_2reg to load2.  Change type for stp from neon_store1_2reg
24301         to store2.
24302
24303 2015-06-15  Aldy Hernandez  <aldyh@redhat.com>
24304
24305         PR debug/66535
24306         * dwarf2out.c (gen_subprogram_die): Do not check a parent's tag if
24307         there is no parent.
24308
24309 2015-06-14  Shiva Chen  <shiva0217@gmail.com>
24310
24311         * aarch64.c (aarch64_simd_lane_bounds): Change %ld to %wd for
24312         HOST_WIDE_INT parameter.
24313
24314 2015-06-14  Jan Hubicka  <hubicka@ucw.cz>
24315
24316         PR ipa/66181
24317         * lto-streamer-out.c (hash_tree): Do not hash TYPE_NO_FORCE_BLK.
24318         * tree-streamer-out.c (pack_ts_type_common_value_fields): Do not stream
24319         TYPE_NO_FORCE_BLK.
24320         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Likewise.
24321
24322 2015-06-14  Richard Sandiford  <richard.sandiford@arm.com>
24323
24324         * rtl.h (classify_insn): Declare.
24325         * emit-rtl.c (classify_insn): Move to...
24326         * rtl.c: ...here and add generator support.
24327         * gensupport.h (get_emit_function, needs_barrier_p): Declare.
24328         * gensupport.c (get_emit_function, needs_barrier_p): New functions.
24329         * genemit.c (gen_emit_seq): New function.
24330         (gen_expand, gen_split): Use it.
24331
24332 2015-06-13  Patrick Palka  <ppalka@gcc.gnu.org>
24333
24334         * tree.c (make_vector_stat): Fix comment to state that the
24335         function returns a VECTOR_CST.
24336
24337 2015-06-13  Richard Sandiford  <richard.sandiford@arm.com>
24338
24339         * gensupport.h (add_implicit_parallel): Declare.
24340         * genrecog.c (add_implicit_parallel): Move to...
24341         * gensupport.c (add_implicit_parallel): ...here.
24342         (process_one_cond_exec): Use it.
24343         * genemit.c (gen_insn): Likewise.
24344
24345 2015-06-13  Iain Sandoe  <iain@codesourcery.com>
24346
24347         PR bootstrap/66448
24348         * passes.c (rest_of_decl_compilation): Do not register globals for
24349         early debug if they are declared in built-ins.
24350
24351 2015-06-12  Aldy Hernandez  <aldyh@redhat.com>
24352
24353         * dwarf2out.c (check_die): Protect with ENABLE_CHECKING.
24354
24355 2015-06-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24356
24357         * ifcvt.c (noce_try_store_flag_constants): Use std::swap instead of
24358         manually swapping.
24359         (noce_try_cmove_arith): Likewise.
24360         (noce_get_alt_condition): Likewise.
24361
24362 2015-06-12  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
24363
24364         * common/config/i386/i386-common.c
24365         (OPTION_MASK_ISA_MWAITX_SET): New.
24366         (ix86_handle_option): Handle mwaitx.
24367         * config.gcc (i[34567]86-*-*): Add mwaitxintrin.h,
24368         (x86_64-*-*): Likewise.
24369         * config/i386/mwaitxintrin.h: New header.
24370         * config/i386/cpuid.h (bit_MWAITX):  Define.
24371         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
24372         MWAITX support.
24373         * config/i386/i386.opt (mwaitx): New.
24374         * config/i386/i386-builtin-types.def
24375         (VOID_FTYPE_UNSIGNED_ UNSIGNED_UNSIGNED): New function type.
24376         * config/i386/i386-c.c: Define __MWAITX__ if needed.
24377         * config/i386/i386.c (ix86_target_string): Define -mmwaitx option.
24378         (PTA_MWAITX): New.
24379         (ix86_option_override_internal): Handle new option.
24380         (processor_alias_table): Added PTA_MWAITX.
24381         (ix86_valid_target_attribute_inner_p): Add OPT_mmwaitx.
24382         (ix86_builtins): Add IX86_BUILTIN_MWAITX, IX86_BUILTIN_MONITORX.
24383         (ix86_expand_builtin): Handle IX86_BUILTIN_MWAITX and
24384         IX86_BUILTIN_MONITORX  built-ins.
24385         * config/i386/i386.h (TARGET_MWAITX): New.
24386         * config/i386/i386.md (unspecv): Add UNSPEC_MWAITX and
24387         UNSPEC_MONITORX.
24388         (mwaitx):  New pattern.
24389         (monitorx_<mode>): New pattern.
24390         * config/i386/x86intrin.h: Include mwaitxintrin.h.
24391         * doc/extend.texi: Document monitorx and mwaitx builtins.
24392         * doc/invoke.texi: Document -mmwaitx option.
24393
24394 2015-06-12  Uros Bizjak  <ubizjak@gmail.com>
24395
24396         * emit-rtl.c (need_atomic_barrier_p): Mask model with
24397         MEMMODEL_BASE_MASK.  Remove MEMMODEL_SYNC_* cases.
24398
24399 2015-06-11  David Edelsohn  <dje.gcc@gmail.com>
24400
24401         * dbxout.c (xcoff_debug_hooks): Provide a function for
24402         register_main_translation_unit hook.
24403
24404 2015-06-11  David Edelsohn  <dje.gcc@gmail.com>
24405
24406         * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier): Remove SYNC
24407         variants cases from switch.
24408         (rs6000_post_atomic_barrier): Same.
24409         (rs6000_expand_atomic_compare_and_swap): Use memmodel_base.
24410         (rs6000_expand_atomic_exchange): Same.
24411         (rs6000_expand_atomic_op): Same.
24412         * config/rs6000/sync.md (mem_thread_fence): Use memodel_base. Remove
24413         SYNC variants cases from switch.
24414         (atomic_load): Same.
24415         (atomic_store): Same.
24416
24417 2015-06-11  John David Anglin  <danglin@gcc.gnu.org>
24418
24419         * config/pa/pa.c (pa_output_global_address): Handle LABEL_REF plus
24420         CONST_INT for goto.
24421
24422 2015-06-11  Aldy Hernandez  <aldyh@redhat.com>
24423
24424         PR bootstrap/66448
24425         * dwarf2out.c (check_die): Check for common duplicate attributes.
24426         (add_location_or_const_value_attribute): Do not add duplicate
24427         attributes.
24428         (gen_formal_parameter_die): Do not add DW_AT_artificial the second
24429         time around.
24430         (gen_struct_or_union_type_die): Bail early if TREE_ASM_WRITTEN.
24431         (gen_type_die_with_usage): Call check_die.
24432         (dwarf2out_decl): Only call check_die() when ENABLE_CHECKING.
24433
24434 2015-06-11  Jason Merrill  <jason@redhat.com>
24435
24436         * dwarf2out.c (prune_unused_types): Handle unused top-level limbo
24437         dies.
24438
24439 2015-06-11  Marek Polacek  <polacek@redhat.com>
24440
24441         * match.pd ((x & y) ^ (x | y)): Don't check for single_use.
24442
24443 2015-06-11  Eric Botcazou  <ebotcazou@adacore.com>
24444
24445         PR bootstrap/66252
24446         * config/sparc/sparc.c (hard_regno_mode_classes): Add ??? comment.
24447         * config/sparc/sparc.md (zero_extendsidi2_insn_sp32): Use single order.
24448         (*addx_extend_sp32): Fix pasto.
24449         (*subx_extend): Rename into...
24450         (*subx_extend_sp32): ...this.
24451         (*adddi3_extend_sp32): Add earlyclobber.
24452         (*subdi3_insn_sp32): Likewise.
24453         (*subdi3_extend_sp32): Likewise.
24454         (*and_not_di_sp32): Likewise.
24455         (*or_not_di_sp32): Likewise.
24456         (*xor_not_di_sp32): Likewise.
24457         (*negdi2_sp32): Likewise.
24458         (*one_cmpldi2_sp32): Likewise.
24459
24460 2015-06-11  Pierre-Marie de Rodat  <derodat@adacore.com>
24461
24462         * debug.h (struct gcc_debug_hooks): Add a
24463         register_main_translation_unit hook.
24464         * debug.c (do_nothing_debug_hooks): Provide a function for this
24465         new hook.
24466         * dbxout.c (dbx_debug_hooks): Likewise.
24467         * sdbout.c (sdb_debug_hooks): Likewise.
24468         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
24469         * dwarf2out.c (main_translation_unit): New global variable.
24470         (dwarf2out_register_main_translation_unit): New function
24471         implementing the new hook.
24472         (dwarf2_debug_hooks): Assign
24473         dwarf2out_register_main_translation_unit to this new hook.
24474         (dwarf2out_init): Associate any main translation unit to
24475         comp_unit_die ().
24476
24477 2015-06-11  Marek Polacek  <polacek@redhat.com>
24478
24479         * match.pd ((x & y) ^ (x | y) -> x ^ y): New pattern.
24480
24481 2015-06-11  Marek Polacek  <polacek@redhat.com>
24482
24483         * match.pd: Use single_use throughout.
24484
24485 2015-06-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24486
24487         * config/arm/arm.c (arm_option_params_internal): When optimising
24488         for speed set max_insns_skipped when arm_restrict_it.
24489
24490 2015-06-11  Christian Bruel  <christian.bruel@st.com>
24491
24492         PR target/52144
24493         * config/arm/arm-c.c (arm_cpu_cpp_builtins): Conditionally define
24494          macros in ...
24495         (arm_cpu_builtins): New function.
24496         (arm_pragma_target_parse): Call arm_cpu_builtins.
24497         * config/arm/arm-protos.h (arm_cpu_builtins): Declare.
24498         (arm_register_target_pragmas): Likewise.
24499         * config/arm/arm.h (REGISTER_TARGET_PRAGMAS):
24500          Call arm_register_target_pragmas.
24501         * config/arm/arm-c.c (arm_register_target_pragmas): New function.
24502         (arm_pragma_target_parse): Likewise.
24503
24504 2015-06-10  Kaz Kojima  <kkojima@gcc.gnu.org>
24505
24506         * config/sh/sh.md (tstsi_t): Add '?' modifier to 'r' alternative
24507         of the second operand.
24508
24509 2015-06-10  Uros Bizjak  <ubizjak@gmail.com>
24510
24511         PR target/66473
24512         * config/i386/i386.c (ix86_expand_vector_set): Use gen_int_mode
24513         to prepare mask operand for AVX512 modes.
24514
24515 2015-06-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
24516
24517         PR target/66474
24518         * doc/md.texi (Machine Constraints): Document that on the PowerPC
24519         if you use a constraint that targets a VSX register, you must use
24520         %x<n> in the template.
24521
24522 2015-06-10  Max Filippov  <jcmvbkbc@gmail.com>
24523
24524         * config/xtensa/xtensa.h (TARGET_DEBUG): New definition.
24525         * config/xtensa/xtensa.md (define_attr "type"): New type "trap".
24526         (define_insn "trap"): New definition.
24527
24528 2015-06-10  Richard Biener  <rguenther@suse.de>
24529
24530         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Split
24531         out from ...
24532         (vect_supported_load_permutation_p): ... here.  Handle
24533         supportable permutations in reductions.
24534         * tree-vect-stmts.c (vectorizable_load): Handle SLP permutations
24535         for vectorizing strided group loads.
24536
24537 2015-06-10  Jakub Jelinek  <jakub@redhat.com>
24538
24539         PR target/66470
24540         * config/i386/i386.c (ix86_split_long_move): For collisions
24541         involving direct tls segment refs, move the UNSPEC_TP possibly
24542         wrapped in ZERO_EXTEND out of the address for lea, to each of
24543         the memory loads.
24544
24545 2015-06-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
24546
24547         * config/arm/sync.md (*memory_barrier): Use dmb ish instead of
24548         dmb sy. Adjust tabs.
24549
24550 2015-06-10  Tom de Vries  <tom@codesourcery.com>
24551
24552         * omp-low.c (expand_omp_target): Remove duplicate declaration of node.
24553
24554 2015-06-10  Martin Liska  <mliska@suse.cz>
24555
24556         PR bootstrap/66471
24557         * mem-stats-traits.h (enum mem_alloc_origin): Add _ORIGIN suffix for
24558         all enum values in mem_alloc_origin.
24559         * alloc-pool.c (dump_alloc_pool_statistics): Use newly changed enum
24560         name.
24561         * alloc-pool.h (pool_allocator::pool_allocator): Likewise.
24562         * bitmap.c (bitmap_register): Likewise.
24563         (dump_bitmap_statistics): Likewise.
24564         * ggc-common.c (dump_ggc_loc_statistics): Likewise.
24565         (ggc_record_overhead): Likewise.
24566         * hash-map.h: Likewise.
24567         * hash-set.h: Likewise.
24568         * hash-table.c (void dump_hash_table_loc_statistics): Likewise.
24569         * hash-table.h: Likewise.
24570         * vec.c (vec_prefix::register_overhead): Likewise.
24571         (vec_prefix::release_overhead): Likewise.
24572         (dump_vec_loc_statistics): Likewise.
24573
24574 2015-06-09  Christian Bruel  <christian.bruel@st.com>
24575
24576         PR target/52144
24577         * config/arm/arm.opt (THUMB, arm_restrict_it, inline_asm_unified): Save.
24578         * config/arm/arm-protos.h (arm_valid_target_attribute_tree): Declare.
24579         (arm_reset_previous_fndecl, arm_change_mode_p): Likewise.
24580         * config/arm/arm.h (SWITCHABLE_TARGET): Define.
24581         * config/arm/arm.c (arm_reset_previous_fndecl): New functions.
24582         (arm_valid_target_attribute_tree, arm_change_mode_p): Likewise.
24583         (arm_valid_target_attribute_p): Likewise.
24584         (arm_set_current_function, arm_can_inline_p): Likewise.
24585         (arm_valid_target_attribute_rec): Likewise.
24586         (arm_previous_fndecl): New variable.
24587         (TARGET_SET_CURRENT_FUNCTION, TARGET_OPTION_VALID_ATTRIBUTE_P): Define.
24588         (TARGET_CAN_INLINE_P): Define.
24589         (arm_asm_trampoline_template): Emit mode.
24590         (arm_file_start): Don't set unified syntax.
24591         (arm_declare_function_name): Set unified syntax and mode.
24592         (arm_option_override): Init target_option_default_node.
24593         and target_option_current_node.
24594         * config/arm/arm.md (*call_value_symbol): Set mode when possible.
24595         (*call_symbol): Likewise.
24596         * doc/extend.texi: Document ARM/Thumb target attribute.
24597         * doc/invoke.texi: Likewise.
24598
24599 2015-06-09  Alexandre Oliva  <aoliva@redhat.com>
24600
24601         Revert:
24602         2015-06-09  Alexandre Oliva  <aoliva@redhat.com>
24603         PR rtl-optimization/64164
24604         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
24605         * tree-ssa-copyrename.c: Removed.
24606         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
24607         -ftree-coalesce-vars.
24608         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
24609         * common.opt (ftree-copyrename): Ignore.
24610         (ftree-coalesce-inlined-vars): Likewise.
24611         * doc/invoke.texi: Remove the ignored options above.
24612         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
24613         * tree-ssa-coalesce.h: ... here.
24614         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
24615         headers required by it.
24616         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
24617         across variables when flag_tree_coalesce_vars.  Check register
24618         use and promoted modes to allow coalescing.  Moved to
24619         tree-ssa-coalesce.c.
24620         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
24621         with its member functions to tree-ssa-coalesce.c.
24622         (var_map_base_init): Likewise.  Renamed to
24623         compute_samebase_partition_bases.
24624         (partition_view_normal): Drop want_bases parameter.
24625         (partition_view_bitmap): Likewise.
24626         * tree-ssa-live.h: Adjust declarations.
24627         * tree-ssa-coalesce.c: Include explow.h.
24628         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
24629         default defs at the entry point.
24630         (dump_part_var_map): New.
24631         (compute_optimized_partition_bases): New, called by...
24632         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
24633         of compute_samebase_partition_bases.  Adjust.
24634         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
24635         * cfgexpand.c (leader_merge): New.
24636         (get_rtl_for_parm_ssa_default_def): New.
24637         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
24638         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
24639         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
24640         redundant MEM attr setting.
24641         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
24642         from...
24643         (expand_one_stack_var): ... this.  New wrapper to check and
24644         skip already expanded SSA partitions.
24645         (record_alignment_for_reg_var): New, factored out of...
24646         (expand_one_var): ... this.
24647         (expand_one_ssa_partition): New.
24648         (adjust_one_expanded_partition_var): New.
24649         (expand_one_register_var): Check and skip already expanded SSA
24650         partitions.
24651         (expand_used_vars): Don't create DECLs for anonymous SSA
24652         names.  Expand all SSA partitions, then adjust all SSA names.
24653         (pass::execute): Replace the loops that set
24654         SA.partition_to_pseudo from partition leaders and cleared
24655         DECL_RTL for multi-location variables, and that which used to
24656         rename vars and set attrs, with one that clears DECL_RTL and
24657         checks that PARMs and RESULTs default_defs match DECL_RTL.
24658         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
24659         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
24660         * explow.c (promote_ssa_mode): New.
24661         * explow.h (promote_ssa_mode): Declare.
24662         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
24663         * function.c: Include cfgexpand.h.
24664         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
24665         (use_register_for_parm_decl): Wrapper for the above to
24666         special-case the result_ptr.
24667         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
24668         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
24669         multiple locations.
24670         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
24671         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
24672         (assign_parm_setup_block): Prefer SSA-assigned location.
24673         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
24674         if stack_parm is NULL.
24675         (assign_parm_setup_stack): Prefer SSA-assigned location.
24676         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
24677         rtl before testing for pointer bounds.  Special-case result_ptr.
24678         (expand_function_start): Maybe reset DECL_RTL of result.
24679         Prefer SSA-assigned location for result and static chain.
24680         Factor out DECL_RESULT and SET_DECL_RTL.
24681         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
24682         anonymous SSA names.  Use promote_ssa_mode.
24683         (get_temp_reg): Likewise.
24684         (remove_ssa_form): Adjust.
24685         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
24686         and get its reg_usage for reg invalidation.
24687         (compute_bb_dataflow): Pass it insn.
24688         (emit_notes_in_bb): Likewise.
24689         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
24690         fail assert on conversion between unsigned types.
24691
24692 2015-06-09  Tom de Vries  <tom@codesourcery.com>
24693
24694         PR tree-optimization/65460
24695         * omp-low.c (expand_omp_target): Set parallelized_function on
24696         cgraph_node for child_fn.
24697
24698 2015-06-09  Tom de Vries  <tom@codesourcery.com>
24699
24700         * omp-low.c (finalize_task_copyfn, expand_omp_taskreg): Mark function
24701         parallelized_function before add_new_function.
24702
24703 2015-06-09  Andrew MacLeod  <amacleod@redhat.com>
24704
24705         * gcc-plugin.h: Move decls to plugin.h and include it.
24706         * plugin.h: Relocate decls from gcc-plugin.h
24707         * ggc-page.c: Include required header files.
24708         * passes.c: Likewise.
24709         * cgraphunit.c: Likewise.
24710
24711 2015-06-09  Tom de Vries  <tom@codesourcery.com>
24712
24713         * tree-stdarg.c (expand_ifn_va_arg_1): Handle location.
24714
24715 2015-06-09  Jason Merrill  <jason@redhat.com>
24716
24717         PR bootstrap/66448
24718         * toplev.c (check_global_declaration): Don't warn about a clone.
24719
24720 2015-06-09  Marek Polacek  <polacek@redhat.com>
24721
24722         PR tree-optimization/66299
24723         * match.pd ((CST1 << A) == CST2 -> A == ctz (CST2) - ctz (CST1)
24724         ((CST1 << A) != CST2 -> A != ctz (CST2) - ctz (CST1)): New
24725         patterns.
24726
24727 2015-06-09  Richard Biener  <rguenther@suse.de>
24728
24729         * tree-vect-slp.c (vect_build_slp_tree_1): Remove bailout on gaps.
24730         (vect_analyze_slp_instance): Instead do not falsely drop
24731         load permutations.
24732
24733 2015-06-09  Richard Biener  <rguenther@suse.de>
24734
24735         PR middle-end/66423
24736         * match.pd: Handle A % (unsigned)(1 << B).
24737
24738 2015-06-09  Aldy Hernandez  <aldyh@redhat.com>
24739
24740         * varasm.c (output_object_block_htab): Remove.
24741         (output_object_block_compare): New.
24742         (output_object_blocks): Sort named object_blocks before outputting
24743         them.
24744
24745 2015-06-09  Richard Biener  <rguenther@suse.de>
24746
24747         PR tree-optimization/66419
24748         * tree-vect-slp.c (vect_supported_load_permutation_p): Properly
24749         consider GROUP_GAP when detecting a perfect subchain.
24750
24751 2015-06-09  Nick Clifton  <nickc@redhat.com>
24752
24753         * config/rl78/rl78.c (rl78_select_section): When -mes0 is active
24754         place read only data in the .frodata section.
24755
24756 2015-06-09  Shiva Chen  <shiva0217@gmail.com>
24757
24758         * sync.md (atomic_load<mode>): Add conditional code for lda/ldr
24759         (atomic_store<mode>): Likewise.
24760
24761 2015-06-09  Richard Biener  <rguenther@suse.de>
24762
24763         * cfgloop.c (get_loop_body_in_bfs_order): Fix assert.
24764
24765 2015-06-09  Richard Biener  <rguenther@suse.de>
24766
24767         PR middle-end/66413
24768         * tree-inline.c (insert_init_debug_bind): Unshare value.
24769
24770 2015-06-09  Richard Biener  <rguenther@suse.de>
24771
24772         PR tree-optimization/66396
24773         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
24774         Rename virtual operands.
24775
24776 2015-06-09  Tom de Vries  <tom@codesourcery.com>
24777
24778         * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Don't
24779         always return false.
24780
24781 2015-06-09  Alexandre Oliva  <aoliva@redhat.com>
24782
24783         PR rtl-optimization/64164
24784         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
24785         * tree-ssa-copyrename.c: Removed.
24786         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
24787         -ftree-coalesce-vars.
24788         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
24789         * common.opt (ftree-copyrename): Ignore.
24790         (ftree-coalesce-inlined-vars): Likewise.
24791         * doc/invoke.texi: Remove the ignored options above.
24792         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
24793         * tree-ssa-coalesce.h: ... here.
24794         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
24795         headers required by it.
24796         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
24797         across variables when flag_tree_coalesce_vars.  Check register
24798         use and promoted modes to allow coalescing.  Moved to
24799         tree-ssa-coalesce.c.
24800         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
24801         with its member functions to tree-ssa-coalesce.c.
24802         (var_map_base_init): Likewise.  Renamed to
24803         compute_samebase_partition_bases.
24804         (partition_view_normal): Drop want_bases parameter.
24805         (partition_view_bitmap): Likewise.
24806         * tree-ssa-live.h: Adjust declarations.
24807         * tree-ssa-coalesce.c: Include explow.h.
24808         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
24809         default defs at the entry point.
24810         (dump_part_var_map): New.
24811         (compute_optimized_partition_bases): New, called by...
24812         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
24813         of compute_samebase_partition_bases.  Adjust.
24814         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
24815         * cfgexpand.c (leader_merge): New.
24816         (get_rtl_for_parm_ssa_default_def): New.
24817         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
24818         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
24819         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
24820         redundant MEM attr setting.
24821         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
24822         from...
24823         (expand_one_stack_var): ... this.  New wrapper to check and
24824         skip already expanded SSA partitions.
24825         (record_alignment_for_reg_var): New, factored out of...
24826         (expand_one_var): ... this.
24827         (expand_one_ssa_partition): New.
24828         (adjust_one_expanded_partition_var): New.
24829         (expand_one_register_var): Check and skip already expanded SSA
24830         partitions.
24831         (expand_used_vars): Don't create DECLs for anonymous SSA
24832         names.  Expand all SSA partitions, then adjust all SSA names.
24833         (pass::execute): Replace the loops that set
24834         SA.partition_to_pseudo from partition leaders and cleared
24835         DECL_RTL for multi-location variables, and that which used to
24836         rename vars and set attrs, with one that clears DECL_RTL and
24837         checks that PARMs and RESULTs default_defs match DECL_RTL.
24838         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
24839         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
24840         * explow.c (promote_ssa_mode): New.
24841         * explow.h (promote_ssa_mode): Declare.
24842         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
24843         * function.c: Include cfgexpand.h.
24844         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
24845         (use_register_for_parm_decl): Wrapper for the above to
24846         special-case the result_ptr.
24847         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
24848         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
24849         multiple locations.
24850         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
24851         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
24852         (assign_parm_setup_block): Prefer SSA-assigned location.
24853         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
24854         if stack_parm is NULL.
24855         (assign_parm_setup_stack): Prefer SSA-assigned location.
24856         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
24857         rtl before testing for pointer bounds.  Special-case result_ptr.
24858         (expand_function_start): Maybe reset DECL_RTL of result.
24859         Prefer SSA-assigned location for result and static chain.
24860         Factor out DECL_RESULT and SET_DECL_RTL.
24861         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
24862         anonymous SSA names.  Use promote_ssa_mode.
24863         (get_temp_reg): Likewise.
24864         (remove_ssa_form): Adjust.
24865         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
24866         and get its reg_usage for reg invalidation.
24867         (compute_bb_dataflow): Pass it insn.
24868         (emit_notes_in_bb): Likewise.
24869         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
24870         fail assert on conversion between unsigned types.
24871
24872 2015-06-09  Alexandre Oliva  <aoliva@redhat.com>
24873
24874         PR debug/58315
24875         * tree-inline.c (reset_debug_binding): New.
24876         (reset_debug_bindings): Likewise.
24877         (expand_call_inline): Call it.
24878
24879 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
24880
24881         * tree.c (gimple_canonical_types_compatible_p): Drop comparsion of
24882         TYPE_STRING_FLAG.
24883
24884 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
24885
24886         * lto-streamer-out.c (lto_output_location): Stream
24887         reserved locations correctly.
24888         * lto-streamer-in.c (lto_output_location): Likewise.
24889
24890 2015-06-08  Andrew MacLeod  <amacleod@redhat.com>
24891
24892         * coretypes.h: Include hash-table.h and hash-set.h for host files.
24893         * ggc.h: Don't include statistics.h>
24894         * hash-map.h: Remove all includes.
24895         * hash-set.h: Likewise.
24896         * hash-table.h: Add statistics.h, inchash.h and hash-map-traits.h to
24897         the include list. Remove <new>.
24898         * inchash.h: Remove all includes.
24899         * mem-stats.h: Likewise.
24900         * vec.h: No special processing for generators or ggc.
24901         * alias.c : Adjust include files.
24902         * alloc-pool.c : Likewise.
24903         * alloc-pool.h : Likewise.
24904         * asan.c : Likewise.
24905         * attribs.c : Likewise.
24906         * auto-inc-dec.c : Likewise.
24907         * auto-profile.c : Likewise.
24908         * bb-reorder.c : Likewise.
24909         * bitmap.c : Likewise.
24910         * bitmap.h : Likewise.
24911         * bt-load.c : Likewise.
24912         * builtins.c : Likewise.
24913         * caller-save.c : Likewise.
24914         * calls.c : Likewise.
24915         * ccmp.c : Likewise.
24916         * cfg.c : Likewise.
24917         * cfganal.c : Likewise.
24918         * cfgbuild.c : Likewise.
24919         * cfgcleanup.c : Likewise.
24920         * cfgexpand.c : Likewise.
24921         * cfghooks.c : Likewise.
24922         * cfgloop.c : Likewise.
24923         * cfgloop.h : Likewise.
24924         * cfgloopanal.c : Likewise.
24925         * cfgloopmanip.c : Likewise.
24926         * cfgrtl.c : Likewise.
24927         * cgraph.c : Likewise.
24928         * cgraphbuild.c : Likewise.
24929         * cgraphclones.c : Likewise.
24930         * cgraphunit.c : Likewise.
24931         * cilk-common.c : Likewise.
24932         * combine-stack-adj.c : Likewise.
24933         * combine.c : Likewise.
24934         * compare-elim.c : Likewise.
24935         * context.c : Likewise.
24936         * convert.c : Likewise.
24937         * coverage.c : Likewise.
24938         * cppbuiltin.c : Likewise.
24939         * cprop.c : Likewise.
24940         * cse.c : Likewise.
24941         * cselib.c : Likewise.
24942         * data-streamer-in.c : Likewise.
24943         * data-streamer-out.c : Likewise.
24944         * data-streamer.c : Likewise.
24945         * data-streamer.h : Likewise.
24946         * dbxout.c : Likewise.
24947         * dce.c : Likewise.
24948         * ddg.c : Likewise.
24949         * debug.c : Likewise.
24950         * df-core.c : Likewise.
24951         * df-problems.c : Likewise.
24952         * df-scan.c : Likewise.
24953         * df.h : Likewise.
24954         * dfp.c : Likewise.
24955         * dojump.c : Likewise.
24956         * dominance.c : Likewise.
24957         * domwalk.c : Likewise.
24958         * double-int.c : Likewise.
24959         * dse.c : Likewise.
24960         * dumpfile.c : Likewise.
24961         * dwarf2asm.c : Likewise.
24962         * dwarf2cfi.c : Likewise.
24963         * dwarf2out.c : Likewise.
24964         * emit-rtl.c : Likewise.
24965         * et-forest.c : Likewise.
24966         * except.c : Likewise.
24967         * except.h : Likewise.
24968         * explow.c : Likewise.
24969         * expmed.c : Likewise.
24970         * expr.c : Likewise.
24971         * final.c : Likewise.
24972         * fixed-value.c : Likewise.
24973         * fold-const.c : Likewise.
24974         * function.c : Likewise.
24975         * fwprop.c : Likewise.
24976         * gcc-plugin.h : Likewise.
24977         * gcc.c : Likewise.
24978         * gcse-common.c : Likewise.
24979         * gcse.c : Likewise.
24980         * genattrtab.c : Likewise.
24981         * genautomata.c : Likewise.
24982         * genconditions.c : Likewise.
24983         * genemit.c : Likewise.
24984         * generic-match-head.c : Likewise.
24985         * genextract.c : Likewise.
24986         * gengtype-state.c : Likewise.
24987         * gengtype.c : Likewise.
24988         * genhooks.c : Likewise.
24989         * genmatch.c : Likewise.
24990         * genmodes.c : Likewise.
24991         * genrecog.c : Likewise.
24992         * gensupport.c : Likewise.
24993         * ggc-common.c : Likewise.
24994         * ggc-internal.h : Likewise.
24995         * ggc-none.c : Likewise.
24996         * ggc-page.c : Likewise.
24997         * gimple-builder.c : Likewise.
24998         * gimple-expr.c : Likewise.
24999         * gimple-fold.c : Likewise.
25000         * gimple-iterator.c : Likewise.
25001         * gimple-low.c : Likewise.
25002         * gimple-match-head.c : Likewise.
25003         * gimple-pretty-print.c : Likewise.
25004         * gimple-ssa-isolate-paths.c : Likewise.
25005         * gimple-ssa-strength-reduction.c : Likewise.
25006         * gimple-ssa.h : Likewise.
25007         * gimple-streamer-in.c : Likewise.
25008         * gimple-streamer-out.c : Likewise.
25009         * gimple-streamer.h : Likewise.
25010         * gimple-walk.c : Likewise.
25011         * gimple.c : Likewise.
25012         * gimplify-me.c : Likewise.
25013         * gimplify.c : Likewise.
25014         * godump.c : Likewise.
25015         * graph.c : Likewise.
25016         * graphds.c : Likewise.
25017         * graphite-blocking.c : Likewise.
25018         * graphite-dependences.c : Likewise.
25019         * graphite-interchange.c : Likewise.
25020         * graphite-isl-ast-to-gimple.c : Likewise.
25021         * graphite-optimize-isl.c : Likewise.
25022         * graphite-poly.c : Likewise.
25023         * graphite-scop-detection.c : Likewise.
25024         * graphite-sese-to-poly.c : Likewise.
25025         * graphite.c : Likewise.
25026         * haifa-sched.c : Likewise.
25027         * hard-reg-set.h : Likewise.
25028         * hw-doloop.c : Likewise.
25029         * ifcvt.c : Likewise.
25030         * inchash.c : Likewise.
25031         * incpath.c : Likewise.
25032         * init-regs.c : Likewise.
25033         * input.c : Likewise.
25034         * internal-fn.c : Likewise.
25035         * ipa-chkp.c : Likewise.
25036         * ipa-comdats.c : Likewise.
25037         * ipa-cp.c : Likewise.
25038         * ipa-devirt.c : Likewise.
25039         * ipa-icf-gimple.c : Likewise.
25040         * ipa-icf.c : Likewise.
25041         * ipa-inline-analysis.c : Likewise.
25042         * ipa-inline-transform.c : Likewise.
25043         * ipa-inline.c : Likewise.
25044         * ipa-polymorphic-call.c : Likewise.
25045         * ipa-profile.c : Likewise.
25046         * ipa-prop.c : Likewise.
25047         * ipa-pure-const.c : Likewise.
25048         * ipa-ref.c : Likewise.
25049         * ipa-reference.c : Likewise.
25050         * ipa-split.c : Likewise.
25051         * ipa-utils.c : Likewise.
25052         * ipa-visibility.c : Likewise.
25053         * ipa.c : Likewise.
25054         * ira-build.c : Likewise.
25055         * ira-color.c : Likewise.
25056         * ira-conflicts.c : Likewise.
25057         * ira-costs.c : Likewise.
25058         * ira-emit.c : Likewise.
25059         * ira-lives.c : Likewise.
25060         * ira.c : Likewise.
25061         * jump.c : Likewise.
25062         * langhooks.c : Likewise.
25063         * lcm.c : Likewise.
25064         * libfuncs.h : Likewise.
25065         * lists.c : Likewise.
25066         * loop-doloop.c : Likewise.
25067         * loop-init.c : Likewise.
25068         * loop-invariant.c : Likewise.
25069         * loop-iv.c : Likewise.
25070         * loop-unroll.c : Likewise.
25071         * lower-subreg.c : Likewise.
25072         * lra-assigns.c : Likewise.
25073         * lra-coalesce.c : Likewise.
25074         * lra-constraints.c : Likewise.
25075         * lra-eliminations.c : Likewise.
25076         * lra-lives.c : Likewise.
25077         * lra-remat.c : Likewise.
25078         * lra-spills.c : Likewise.
25079         * lra.c : Likewise.
25080         * lto-cgraph.c : Likewise.
25081         * lto-compress.c : Likewise.
25082         * lto-opts.c : Likewise.
25083         * lto-section-in.c : Likewise.
25084         * lto-section-out.c : Likewise.
25085         * lto-streamer-in.c : Likewise.
25086         * lto-streamer-out.c : Likewise.
25087         * lto-streamer.c : Likewise.
25088         * lto-streamer.h : Likewise.
25089         * mcf.c : Likewise.
25090         * mode-switching.c : Likewise.
25091         * modulo-sched.c : Likewise.
25092         * omega.c : Likewise.
25093         * omp-low.c : Likewise.
25094         * optabs.c : Likewise.
25095         * opts-global.c : Likewise.
25096         * opts.h : Likewise.
25097         * passes.c : Likewise.
25098         * plugin.c : Likewise.
25099         * postreload-gcse.c : Likewise.
25100         * postreload.c : Likewise.
25101         * predict.c : Likewise.
25102         * print-rtl.c : Likewise.
25103         * print-tree.c : Likewise.
25104         * profile.c : Likewise.
25105         * read-md.c : Likewise.
25106         * read-md.h : Likewise.
25107         * read-rtl.c : Likewise.
25108         * real.c : Likewise.
25109         * realmpfr.c : Likewise.
25110         * recog.c : Likewise.
25111         * ree.c : Likewise.
25112         * reg-stack.c : Likewise.
25113         * regcprop.c : Likewise.
25114         * reginfo.c : Likewise.
25115         * regrename.c : Likewise.
25116         * regstat.c : Likewise.
25117         * reload.c : Likewise.
25118         * reload1.c : Likewise.
25119         * reorg.c : Likewise.
25120         * resource.c : Likewise.
25121         * rtl-chkp.c : Likewise.
25122         * rtl.c : Likewise.
25123         * rtl.h : Likewise.
25124         * rtlanal.c : Likewise.
25125         * rtlhash.c : Likewise.
25126         * rtlhash.h : Likewise.
25127         * rtlhooks.c : Likewise.
25128         * sanopt.c : Likewise.
25129         * sched-deps.c : Likewise.
25130         * sched-ebb.c : Likewise.
25131         * sched-rgn.c : Likewise.
25132         * sched-vis.c : Likewise.
25133         * sdbout.c : Likewise.
25134         * sel-sched-dump.c : Likewise.
25135         * sel-sched-ir.c : Likewise.
25136         * sel-sched-ir.h : Likewise.
25137         * sel-sched.c : Likewise.
25138         * sese.c : Likewise.
25139         * shrink-wrap.c : Likewise.
25140         * shrink-wrap.h : Likewise.
25141         * simplify-rtx.c : Likewise.
25142         * stack-ptr-mod.c : Likewise.
25143         * statistics.c : Likewise.
25144         * stmt.c : Likewise.
25145         * stor-layout.c : Likewise.
25146         * store-motion.c : Likewise.
25147         * stringpool.c : Likewise.
25148         * symtab.c : Likewise.
25149         * target-globals.c : Likewise.
25150         * targhooks.c : Likewise.
25151         * tlink.c : Likewise.
25152         * toplev.c : Likewise.
25153         * tracer.c : Likewise.
25154         * trans-mem.c : Likewise.
25155         * tree-affine.c : Likewise.
25156         * tree-affine.h : Likewise.
25157         * tree-browser.c : Likewise.
25158         * tree-call-cdce.c : Likewise.
25159         * tree-cfg.c : Likewise.
25160         * tree-cfgcleanup.c : Likewise.
25161         * tree-chkp-opt.c : Likewise.
25162         * tree-chkp.c : Likewise.
25163         * tree-chrec.c : Likewise.
25164         * tree-complex.c : Likewise.
25165         * tree-data-ref.c : Likewise.
25166         * tree-dfa.c : Likewise.
25167         * tree-diagnostic.c : Likewise.
25168         * tree-dump.c : Likewise.
25169         * tree-eh.c : Likewise.
25170         * tree-eh.h : Likewise.
25171         * tree-emutls.c : Likewise.
25172         * tree-hasher.h : Likewise.
25173         * tree-if-conv.c : Likewise.
25174         * tree-inline.c : Likewise.
25175         * tree-inline.h : Likewise.
25176         * tree-into-ssa.c : Likewise.
25177         * tree-iterator.c : Likewise.
25178         * tree-loop-distribution.c : Likewise.
25179         * tree-nested.c : Likewise.
25180         * tree-nrv.c : Likewise.
25181         * tree-object-size.c : Likewise.
25182         * tree-outof-ssa.c : Likewise.
25183         * tree-parloops.c : Likewise.
25184         * tree-phinodes.c : Likewise.
25185         * tree-predcom.c : Likewise.
25186         * tree-pretty-print.c : Likewise.
25187         * tree-profile.c : Likewise.
25188         * tree-scalar-evolution.c : Likewise.
25189         * tree-sra.c : Likewise.
25190         * tree-ssa-address.c : Likewise.
25191         * tree-ssa-alias.c : Likewise.
25192         * tree-ssa-ccp.c : Likewise.
25193         * tree-ssa-coalesce.c : Likewise.
25194         * tree-ssa-copy.c : Likewise.
25195         * tree-ssa-copyrename.c : Likewise.
25196         * tree-ssa-dce.c : Likewise.
25197         * tree-ssa-dom.c : Likewise.
25198         * tree-ssa-dse.c : Likewise.
25199         * tree-ssa-forwprop.c : Likewise.
25200         * tree-ssa-ifcombine.c : Likewise.
25201         * tree-ssa-live.c : Likewise.
25202         * tree-ssa-loop-ch.c : Likewise.
25203         * tree-ssa-loop-im.c : Likewise.
25204         * tree-ssa-loop-ivcanon.c : Likewise.
25205         * tree-ssa-loop-ivopts.c : Likewise.
25206         * tree-ssa-loop-manip.c : Likewise.
25207         * tree-ssa-loop-niter.c : Likewise.
25208         * tree-ssa-loop-prefetch.c : Likewise.
25209         * tree-ssa-loop-unswitch.c : Likewise.
25210         * tree-ssa-loop.c : Likewise.
25211         * tree-ssa-math-opts.c : Likewise.
25212         * tree-ssa-operands.c : Likewise.
25213         * tree-ssa-phiopt.c : Likewise.
25214         * tree-ssa-phiprop.c : Likewise.
25215         * tree-ssa-pre.c : Likewise.
25216         * tree-ssa-propagate.c : Likewise.
25217         * tree-ssa-reassoc.c : Likewise.
25218         * tree-ssa-sccvn.c : Likewise.
25219         * tree-ssa-scopedtables.c : Likewise.
25220         * tree-ssa-sink.c : Likewise.
25221         * tree-ssa-strlen.c : Likewise.
25222         * tree-ssa-structalias.c : Likewise.
25223         * tree-ssa-tail-merge.c : Likewise.
25224         * tree-ssa-ter.c : Likewise.
25225         * tree-ssa-threadedge.c : Likewise.
25226         * tree-ssa-threadupdate.c : Likewise.
25227         * tree-ssa-uncprop.c : Likewise.
25228         * tree-ssa-uninit.c : Likewise.
25229         * tree-ssa.c : Likewise.
25230         * tree-ssanames.c : Likewise.
25231         * tree-stdarg.c : Likewise.
25232         * tree-streamer-in.c : Likewise.
25233         * tree-streamer-out.c : Likewise.
25234         * tree-streamer.c : Likewise.
25235         * tree-streamer.h : Likewise.
25236         * tree-switch-conversion.c : Likewise.
25237         * tree-tailcall.c : Likewise.
25238         * tree-vect-data-refs.c : Likewise.
25239         * tree-vect-generic.c : Likewise.
25240         * tree-vect-loop-manip.c : Likewise.
25241         * tree-vect-loop.c : Likewise.
25242         * tree-vect-patterns.c : Likewise.
25243         * tree-vect-slp.c : Likewise.
25244         * tree-vect-stmts.c : Likewise.
25245         * tree-vectorizer.c : Likewise.
25246         * tree-vectorizer.h : Likewise.
25247         * tree-vrp.c : Likewise.
25248         * tree.c : Likewise.
25249         * tsan.c : Likewise.
25250         * ubsan.c : Likewise.
25251         * valtrack.c : Likewise.
25252         * valtrack.h : Likewise.
25253         * value-prof.c : Likewise.
25254         * var-tracking.c : Likewise.
25255         * varasm.c : Likewise.
25256         * varpool.c : Likewise.
25257         * vec.c: Likewise.
25258         * vmsdbgout.c : Likewise.
25259         * vtable-verify.c : Likewise.
25260         * vtable-verify.h : Likewise.
25261         * web.c : Likewise.
25262         * wide-int.cc : Likewise.
25263         * xcoffout.c : Likewise.
25264         * config/aarch64/aarch64-builtins.c : Likewise.
25265         * config/aarch64/aarch64.c : Likewise.
25266         * config/aarch64/cortex-a57-fma-steering.c : Likewise.
25267         * config/alpha/alpha.c : Likewise.
25268         * config/arc/arc.c : Likewise.
25269         * config/arm/aarch-common.c : Likewise.
25270         * config/arm/arm-builtins.c : Likewise.
25271         * config/arm/arm-c.c : Likewise.
25272         * config/arm/arm.c : Likewise.
25273         * config/avr/avr-c.c : Likewise.
25274         * config/avr/avr-log.c : Likewise.
25275         * config/avr/avr.c : Likewise.
25276         * config/bfin/bfin.c : Likewise.
25277         * config/c6x/c6x.c : Likewise.
25278         * config/cr16/cr16.c : Likewise.
25279         * config/cris/cris.c : Likewise.
25280         * config/darwin-c.c : Likewise.
25281         * config/darwin.c : Likewise.
25282         * config/default-c.c : Likewise.
25283         * config/epiphany/epiphany.c : Likewise.
25284         * config/epiphany/mode-switch-use.c : Likewise.
25285         * config/epiphany/resolve-sw-modes.c : Likewise.
25286         * config/fr30/fr30.c : Likewise.
25287         * config/frv/frv.c : Likewise.
25288         * config/ft32/ft32.c : Likewise.
25289         * config/glibc-c.c : Likewise.
25290         * config/h8300/h8300.c : Likewise.
25291         * config/i386/i386-c.c : Likewise.
25292         * config/i386/i386.c : Likewise.
25293         * config/i386/msformat-c.c : Likewise.
25294         * config/i386/winnt-cxx.c : Likewise.
25295         * config/i386/winnt-stubs.c : Likewise.
25296         * config/i386/winnt.c : Likewise.
25297         * config/ia64/ia64-c.c : Likewise.
25298         * config/ia64/ia64.c : Likewise.
25299         * config/iq2000/iq2000.c : Likewise.
25300         * config/lm32/lm32.c : Likewise.
25301         * config/m32c/m32c-pragma.c : Likewise.
25302         * config/m32c/m32c.c : Likewise.
25303         * config/m32r/m32r.c : Likewise.
25304         * config/m68k/m68k.c : Likewise.
25305         * config/mcore/mcore.c : Likewise.
25306         * config/mep/mep-pragma.c : Likewise.
25307         * config/mep/mep.c : Likewise.
25308         * config/microblaze/microblaze-c.c : Likewise.
25309         * config/microblaze/microblaze.c : Likewise.
25310         * config/mips/mips.c : Likewise.
25311         * config/mmix/mmix.c : Likewise.
25312         * config/mn10300/mn10300.c : Likewise.
25313         * config/moxie/moxie.c : Likewise.
25314         * config/msp430/msp430-c.c : Likewise.
25315         * config/msp430/msp430.c : Likewise.
25316         * config/nds32/nds32-cost.c : Likewise.
25317         * config/nds32/nds32-fp-as-gp.c : Likewise.
25318         * config/nds32/nds32-intrinsic.c : Likewise.
25319         * config/nds32/nds32-isr.c : Likewise.
25320         * config/nds32/nds32-md-auxiliary.c : Likewise.
25321         * config/nds32/nds32-memory-manipulation.c : Likewise.
25322         * config/nds32/nds32-pipelines-auxiliary.c : Likewise.
25323         * config/nds32/nds32-predicates.c : Likewise.
25324         * config/nds32/nds32.c : Likewise.
25325         * config/nios2/nios2.c : Likewise.
25326         * config/nvptx/nvptx.c : Likewise.
25327         * config/pa/pa.c : Likewise.
25328         * config/pdp11/pdp11.c : Likewise.
25329         * config/rl78/rl78-c.c : Likewise.
25330         * config/rl78/rl78.c : Likewise.
25331         * config/rs6000/rs6000-c.c : Likewise.
25332         * config/rs6000/rs6000.c : Likewise.
25333         * config/rx/rx.c : Likewise.
25334         * config/s390/s390-c.c : Likewise.
25335         * config/s390/s390.c : Likewise.
25336         * config/sh/sh-c.c : Likewise.
25337         * config/sh/sh-mem.cc : Likewise.
25338         * config/sh/sh.c : Likewise.
25339         * config/sh/sh_optimize_sett_clrt.cc : Likewise.
25340         * config/sh/sh_treg_combine.cc : Likewise.
25341         * config/sol2-c.c : Likewise.
25342         * config/sol2-cxx.c : Likewise.
25343         * config/sol2-stubs.c : Likewise.
25344         * config/sol2.c : Likewise.
25345         * config/sparc/sparc-c.c : Likewise.
25346         * config/sparc/sparc.c : Likewise.
25347         * config/spu/spu-c.c : Likewise.
25348         * config/spu/spu.c : Likewise.
25349         * config/stormy16/stormy16.c : Likewise.
25350         * config/tilegx/mul-tables.c : Likewise.
25351         * config/tilegx/tilegx-c.c : Likewise.
25352         * config/tilegx/tilegx.c : Likewise.
25353         * config/tilepro/mul-tables.c : Likewise.
25354         * config/tilepro/tilepro-c.c : Likewise.
25355         * config/tilepro/tilepro.c : Likewise.
25356         * config/v850/v850-c.c : Likewise.
25357         * config/v850/v850.c : Likewise.
25358         * config/vax/vax.c : Likewise.
25359         * config/visium/visium.c : Likewise.
25360         * config/vms/vms-c.c : Likewise.
25361         * config/vms/vms.c : Likewise.
25362         * config/vxworks.c : Likewise.
25363         * config/winnt-c.c : Likewise.
25364         * config/xtensa/xtensa.c : Likewise.
25365
25366 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
25367
25368         PR lto/65378
25369         * ipa-utils.h (warn_types_mismatch): Update prototype.
25370         * ipa-devirt.c (odr_types_equivalent_p): Add loc1/loc2
25371         parameters.
25372         (type_mismatch_p): New function.
25373         (warn_types_mismatch): Reorg to work better on non-C++ types.
25374         (odr_types_equivalent_p): Add loc1/loc2 parameters.
25375         (add_type_duplicate): Update.
25376
25377 2015-06-08  Tom de Vries  <tom@codesourcery.com>
25378
25379         PR rtl-optimization/66444
25380         * postreload.c (reload_combine): Use get_call_reg_set_usage instead of
25381         call_used_regs.
25382
25383 2015-06-08  Richard Biener  <rguenther@suse.de>
25384
25385         PR tree-optimization/66422
25386         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Split
25387         block after inserted gcc_unreachable.
25388
25389 2015-06-08  Nick Clifton  <nickc@redhat.com>
25390
25391         * config/rx/rx.c (rx_function_value): Do not promote vector types.
25392         (rx_promote_function_mode): Likewise.
25393         * config/rx/rx.h (LIBCALL_VALUE): Likewise.
25394
25395 2015-06-08  Jakub Jelinek  <jakub@redhat.com>
25396
25397         * genattrtab.c (insn_alternatives): Change type from int *
25398         to uint64_t *.
25399         (check_attr_test): Shift ((uint64_t) 1) instead of 1 up.
25400         (get_attr_value): Change type of num_alt to uint64_t.
25401         (compute_alternative_mask): Change return type from
25402         int to uint64_t, shift ((uint64_t) 1) instead of 1 up.
25403         (make_alternative_compare, mk_attr_alt): Change argument type
25404         from int to uint64_t.
25405         (simplify_test_exp): Change type of i from int to uint64_t.
25406         Shift ((uint64_t) 1) instead of 1 up.
25407         (main): Adjust oballocvec first argument from int to uint64_t.
25408         Shift ((uint64_t) 1) instead of 1 up.
25409
25410 2015-06-08  Jan Kratochvil  <jan.kratochvil@redhat.com>
25411
25412         PR other/65366
25413         * gdbhooks.py: Import sys.
25414         (intptr): New function.  Replace int(...) by intptr(...).
25415
25416 2015-06-08  Richard Biener  <rguenther@suse.de>
25417
25418         * tree-vect-stmts.c (vectorizable_load): Compute the pointer
25419         adjustment for gaps at the end of a SLP load group properly.
25420         * tree-vect-slp.c (vect_supported_load_permutation_p): Allow
25421         all permutations we can generate.
25422         (vect_transform_slp_perm_load): Use the correct group-size.
25423
25424 2015-06-08  Marc Glisse  <marc.glisse@inria.fr>
25425
25426         * genmatch.c (expr::gen_transform): For conditions, guess the type
25427         from the second operand.
25428
25429 2015-06-08  Tom de Vries  <tom@codesourcery.com>
25430
25431         PR tree-optimization/66442
25432         * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Add function.
25433         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Return false
25434         if the loop latch is not a singleton.  Use
25435         gimple_seq_nondebug_singleton_p instead of gimple_seq_singleton_p.
25436
25437 2015-06-08  Marek Polacek  <polacek@redhat.com>
25438
25439         PR sanitizer/66452
25440         * toplev.c (check_global_declaration): Don't warn about artificial
25441         decls.
25442
25443 2015-06-08  Tom de Vries  <tom@codesourcery.com>
25444
25445         PR tree-optimization/66436
25446         * cgraphunit.c (cgraph_node::analyze): Don't dump function to gimple
25447         dump file.
25448         * gimplify.c: Add tree-dump.h include.
25449         (gimplify_function_tree): Dump function to gimple dump file.
25450         * stor-layout.c (finalize_size_functions): Don't dump function to gimple
25451         dump file.
25452
25453 2015-06-08  Tom de Vries  <tom@codesourcery.com>
25454
25455         PR tree-optimization/66435
25456         * cgraphunit.c (cgraph_node::add_new_function): Dump message on new
25457         function.
25458
25459 2015-06-06  Jan Hubicka  <hubicka@ucw.cz>
25460
25461         * alias.c (get_alias_set): Be ready for TYPE_CANONICAL
25462         of ptr_type_node to not be ptr_to_node.
25463         * tree.c (gimple_types_compatible_p): Do not match TREE_CODE of
25464         TREE_TYPE of pointers.
25465         * gimple-expr.c (useless_type_conversion): Reorder the check for
25466         function pointers and TYPE_CANONICAL.
25467
25468 2015-06-06  John David Anglin  <danglin@gcc.gnu.org>
25469
25470         PR bootstrap/66319
25471         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Rearrange builtin
25472         defines.  Define _LARGEFILE_SOURCE and _LARGEFILE64_SOURCE for c++.
25473         Define _XOPEN_UNIX and _XOPEN_SOURCE_EXTENDED for c++ if unix95 or
25474         later.
25475         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Likewise.
25476         Define _INCLUDE_STDC_SOURCE_PRE_199901, _INCLUDE_STDC_SOURCE_199901,
25477         _INCLUDE_XOPEN_SOURCE_PRE_500, _INCLUDE_XOPEN_SOURCE_520,
25478         _INCLUDE_XOPEN_SOURCE_PRE_600 and _INCLUDE_XOPEN_SOURCE_600 for c++
25479         and non iso if unix2003.
25480
25481 2015-06-06  Aldy Hernandez  <aldyh@redhat.com>
25482
25483         * dwarf2out.c (gen_lexical_block_die): Initialize stmt_die.
25484
25485 2015-06-06  Richard Sandiford  <richard.sandiford@arm.com>
25486
25487         * emit-rtl.c, expr.c, gcse.c, optabs.c, optabs.h, print-rtl.c,
25488         rtl.h, bb-reorder.c, builtins.c, calls.c, cfgbuild.c, cfgexpand.c,
25489         cfgrtl.c, cilk-common.c, config/i386/i386.md, cse.c, dwarf2cfi.c,
25490         except.c, final.c, function.c, gcse-common.c, genemit.c,
25491         haifa-sched.c, ifcvt.c, jump.c, loop-invariant.c, loop-iv.c,
25492         lra-constraints.c, lra.c, reload1.c, resource.c, rtlanal.c,
25493         sched-deps.c, sched-ebb.c, sel-sched-ir.c, sel-sched.c,
25494         shrink-wrap.c, stmt.c, store-motion.c: Replace rtx base types with
25495         more derived ones.
25496
25497 2015-06-06  Mikhail Maltsev  <maltsevm@gmail.com>
25498
25499         * combine.c (combine_split_insns): Remove cast.
25500         * config/bfin/bfin.c (hwloop_fail): Add cast in try_split call.
25501         * config/sh/sh.c (sh_try_split_insn_simple): Remove cast.
25502         * config/sh/sh_treg_combine.cc (sh_treg_combine::execute): Add cast.
25503         * emit-rtl.c (try_split): Promote type of trial argument to rtx_insn.
25504         * genemit.c (gen_split): Change return type of generated functions to
25505         rtx_insn.
25506         * genrecog.c (get_failure_return): Use NULL instead of NULL_RTX.
25507         (print_subroutine_start): Promote rtx to rtx_insn in gen_split_* and
25508         gen_peephole2_* functions.
25509         (print_subroutine, main): Likewise.
25510         * recog.c (peephole2_optimize): Remove cast.
25511         (peep2_next_insn): Promote return type to rtx_insn.
25512         * recog.h (peep2_next_insn): Fix prototype.
25513         * rtl.h (try_split, split_insns): Likewise.
25514
25515 2015-06-06  DJ Delorie  <dj@redhat.com>
25516
25517         * config/msp430/msp430.c (msp430_asm_integer): Support addition
25518         and subtraction too.
25519
25520 2015-06-05  Kaz Kojima  <kkojima@gcc.gnu.org>
25521
25522         PR target/66410
25523         * config/sh/constraints.md (Sid, Ssd): New memory constraints.
25524         * config/sh/sh.md (*mov<mode>): Use Sid and Ssd alternatives
25525         instead of Snd.  Disparage Sid/z alternative with '^'.
25526
25527 2015-06-05  Aldy Hernandez  <aldyh@redhat.com>
25528
25529         * dwarf2out.c: Remove deferred_locations*.
25530         (dwarf2_debug_hooks): Add early_finish hook.
25531         Remove global_decl hook.
25532         Add early_global_decl and late_global_decl hook.
25533         New global early_dwarf.
25534         New structure set_early_dwarf.
25535         (output_die): Indicate whether a DIE was generated early
25536         when generating assembly with -dA.
25537         (struct limbo_die_struct): Document created_for field.
25538         Remove file_table_last_lookup.
25539         (remove_AT): Return TRUE if successful.
25540         (remove_child_TAG): Clear die_parent.
25541         (reparent_child): New function abstracted from...
25542         (splice_child_die): ...here.
25543         (new_die): ICE if a DIE ends up in limbo too late.
25544         (check_die): New.
25545         (defer_location): Remove.
25546         (add_subscript_info): Reuse DW_TAG_subrange_type if available.
25547         (fill_variable_array_bounds): New.
25548         (decl_start_label): Call fill_variable_array_bounds.
25549         (gen_formal_parameter_die): Rewrite to reuse previously generated
25550         DIEs.
25551         (gen_subprogram_die): Same.
25552         (gen_variable_die): Same.
25553         (gen_const_die): Same.
25554         (gen_label_die): Same.
25555         (gen_lexical_block_die): Same.
25556         (decl_will_get_specification_p): New.
25557         (local_function_static): New.
25558         (gen_struct_or_union_type_die): Fill in variable-length fields.
25559         (gen_typedef_die): Fill in variable-length typedefs.
25560         (gen_tagged_type_die): Gracefully return on error_mark_node.
25561         Handle re-entrancy.
25562         (gen_type_die_with_usage): Handle variable-length types.
25563         Remove duplicate code for ARRAY_TYPE case.
25564         (process_scope_var): Only process imported modules during early
25565         dwarf.
25566         (dwarf2out_early_global_decl): New.
25567         (dwarf2out_late_global_decl): Rename from dwarf2out_global_decl.
25568         (dwarf2out_type_decl): Set early_dwarf while calling
25569         dwarf2out_decl.
25570         (dwarf2out_decl): Verify that we did not recreate a previously
25571         generated DIE.
25572         Do not return on DECL_EXTERNALs in VAR_DECLs.
25573         Abstract some code to local_function_static.
25574         (lookup_filename): Remove use of file_table_last_lookup.
25575         Gracefully exit on missing file_name.
25576         (dwarf2out_finish): Verify limbo list.
25577         Remove deferred_locations_list use.
25578         Move deferred_asm_name and limbo flushing to...
25579         (dwarf2out_early_finish): ...here.  New.
25580         (dwarf2out_c_finalize): Remove set of deferred_location_list,
25581         deferred_asm_name, and file_table_last_lookup.
25582         * cgraph.h (referred_to_p): Add default argument.
25583         * cgraphunit.c (referred_to_p): Add and handle include_self
25584         argument.
25585         (analyze_functions): Add first_time argument.
25586         Call check_global_declaration for all symbols.
25587         Call late_global_decl for nodes for moribund nodes.
25588         (finalize_compilation_unit): Add new argument to
25589         analyze_functions.
25590         Call early_global_decl for functions.
25591         Call early_finish debug hook.
25592         * dbxout.c (dbxout_early_global_decl): New.
25593         (dbxout_late_global_decl): New.  Adapted from dbxout_global_decl.
25594         (dbx_debug_hooks): Add new hooks.
25595         (xcoff_debug_hooks): Same.
25596         * debug.c (do_nothing_debug_hooks): Add early_finish field.
25597         Add early and late debug hooks.
25598         Remove global_decl hook.
25599         * debug.h (struct gcc_debug_hooks): Add early_finish,
25600         early_global_decl, and late_global_decl fields.
25601         Remove global_decl field.
25602         Document gcc_debug_hooks.
25603         * gengtype.c (output_typename): Remove.
25604         * godump.c (go_early_global_decl): New.
25605         (go_late_global_decl): New.
25606         (go_global_decl): Remove.
25607         (dump_go_spec_init): Remove global_decl.  Add
25608         {early,late}_global_decl.
25609         * langhooks-def.h (LANG_HOOKS_WRITE_GLOBALS): Remove.
25610         (LANG_HOOKS_POST_COMPILATION_PARSING_CLEANUPS): New.
25611         * langhooks.c (lhd_warn_unused_global_decl): Adjust comment.
25612         (write_global_declarations): Remove.
25613         (global_decl_processing): New.
25614         * langhooks.h (struct lang_hooks_for_decls): Remove
25615         final_write_globals field.
25616         Add post_compilation_parsing_cleanups field.
25617         * passes.c (rest_of_decl_compilation): Call early_global_decl.
25618         * sdbout.c: Add early and late_global_decl hooks.  Remove
25619         sdbout_global_decl hook.
25620         Add early_finish field for sdb_debug_hooks.
25621         (sdbout_global_decl): Remove.
25622         (sdbout_early_global_decl): New.
25623         (sdbout_late_global_decl): New.
25624         * timevar.def (TV_PHASE_LATE_PARSING_CLEANUPS): New.
25625         * toplev.c (check_global_declaration): Rename from
25626         check_global_declaration_1.
25627         Adapt to use symtab infrastructure.
25628         (check_global_declarations): Remove.
25629         (emit_debug_global_declarations): Remove.
25630         (compile_file): Remove call to final_write_globals langhook.
25631         Run the actual compilation process.
25632         Perform any post compilation parser cleanups.
25633         Generate late debug info.
25634         * toplev.h (check_global_declaration): New.
25635         (check_global_declaration_1): Remove.
25636         (check_global_declarations): Remove.
25637         (write_global_declarations): Remove.
25638         (emit_debug_global_declarations): Remove.
25639         (global_decl_processing): New.
25640         * tree-core.h (struct tree_block): Add DIE field.
25641         * tree.h (BLOCK_DIE): New.
25642         * vmsdbgout.c (vmsdbgout_global_decl): Remove function and its use
25643         throughout.
25644         (vmsdbgout_early_global_decl): New.
25645         (vmsdbgout_late_global_decl): New.
25646         Add early_finish debug hook field to vmsdbg_debug_hooks.
25647         Remove vmsdbgout_decl to vmsdbgout_function_decl.
25648         Add early and late_global_decl debug hooks.
25649
25650 2015-06-05  Julian Brown  <julian@codesourcery.com>
25651             Sandra Loosemore  <sandra@codesourcery.com>
25652
25653         * config/print-sysroot-suffix.sh: Handle MULTILIB_REUSE settings.
25654         * config/t-sysroot-suffix (sysroot-suffix.h): Pass MULTILIB_REUSE
25655         to print-sysroot-suffix.sh script.
25656
25657 2015-06-05  Tom de Vries  <tom@codesourcery.com>
25658
25659         merge from gomp4 branch:
25660         2015-05-28  Tom de Vries  <tom@codesourcery.com>
25661
25662         PR tree-optimization/65443
25663         * tree-parloops.c (replace_imm_uses, replace_uses_in_bb_by)
25664         (replace_uses_in_bbs_by, transform_to_exit_first_loop_alt)
25665         (try_transform_to_exit_first_loop_alt): New function.
25666         (transform_to_exit_first_loop): Use
25667         try_transform_to_exit_first_loop_alt.
25668
25669 2015-06-05  James Greenhalgh  <james.greenhalgh@arm.com>
25670
25671         * builtins.c (expand_builtin_atomic_compare_exchange): Call
25672         emit_cmp_and_jump_insns with the mode of target.
25673
25674 2015-06-05  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
25675
25676         * config/i386/sse.md (sse3_mwait): Swap the operand constriants.
25677
25678 2015-06-04  DJ Delorie  <dj@redhat.com>
25679
25680         * config/msp430/msp430.md (movsi_s): New.  Special case for
25681         storing a 20-bit symbol into a 32-bit register.
25682         * config/msp430/msp430.c (msp430_subreg): Add support for it.
25683         * config/msp430/predicates.md (msp430_symbol_operand): New.
25684
25685 2015-06-04  Sriraman Tallam  <tmsriram@google.com>
25686
25687         * c-family/c-common.c (noplt): New attribute.
25688         (handle_noplt_attribute): New handler.
25689         * calls.c (prepare_call_address): Check for noplt
25690         attribute.
25691         * config/i386/i386.c (ix86_expand_call): Check
25692         for noplt attribute.
25693         (ix86_nopic_noplt_attribute_p): New function.
25694         (ix86_output_call_insn): Output indirect call for non-pic
25695         no plt calls.
25696         * doc/extend.texi (noplt): Document new attribute.
25697         * doc/invoke.texi: Document new attribute.
25698
25699 2015-06-04  Andrew MacLeod  <amacleod@redhat.com>
25700
25701         * coretypes.h: Include machmode.h, signop.h, wide-int.h, double-int.h,
25702         real.h, and fixed-value.h when included in host source files.
25703         * double-int.h: Remove redundant #includes listed above.
25704         * fixed-value.h: Likewise.
25705         * real.h: Likewise.
25706         * wide-int.h: Likewise.
25707         * inchash.h: Likewise.
25708         * rtl.h: Add some include files When included from a generator file.
25709         * target.h: Remove wide-int.h and insn-modes.h from the include list.
25710         * internal-fn.h: Don't include coretypes.h.
25711         * alias.c: Adjust includes for restructured coretypes.h.
25712         * asan.c: Likewise.
25713         * attribs.c: Likewise.
25714         * auto-inc-dec.c: Likewise.
25715         * auto-profile.c: Likewise.
25716         * bb-reorder.c: Likewise.
25717         * bt-load.c: Likewise.
25718         * builtins.c: Likewise.
25719         * caller-save.c: Likewise.
25720         * calls.c: Likewise.
25721         * ccmp.c: Likewise.
25722         * cfg.c: Likewise.
25723         * cfganal.c: Likewise.
25724         * cfgbuild.c: Likewise.
25725         * cfgcleanup.c: Likewise.
25726         * cfgexpand.c: Likewise.
25727         * cfghooks.c: Likewise.
25728         * cfgloop.c: Likewise.
25729         * cfgloop.h: Likewise.
25730         * cfgloopanal.c: Likewise.
25731         * cfgloopmanip.c: Likewise.
25732         * cfgrtl.c: Likewise.
25733         * cgraph.c: Likewise.
25734         * cgraphbuild.c: Likewise.
25735         * cgraphclones.c: Likewise.
25736         * cgraphunit.c: Likewise.
25737         * cilk-common.c: Likewise.
25738         * combine-stack-adj.c: Likewise.
25739         * combine.c: Likewise.
25740         * compare-elim.c: Likewise.
25741         * convert.c: Likewise.
25742         * coverage.c: Likewise.
25743         * cppbuiltin.c: Likewise.
25744         * cprop.c: Likewise.
25745         * cse.c: Likewise.
25746         * cselib.c: Likewise.
25747         * data-streamer-in.c: Likewise.
25748         * data-streamer-out.c: Likewise.
25749         * data-streamer.c: Likewise.
25750         * dbxout.c: Likewise.
25751         * dce.c: Likewise.
25752         * ddg.c: Likewise.
25753         * debug.c: Likewise.
25754         * df-core.c: Likewise.
25755         * df-problems.c: Likewise.
25756         * df-scan.c: Likewise.
25757         * df.h: Likewise.
25758         * dfp.c: Likewise.
25759         * dojump.c: Likewise.
25760         * dominance.c: Likewise.
25761         * domwalk.c: Likewise.
25762         * double-int.c: Likewise.
25763         * dse.c: Likewise.
25764         * dumpfile.c: Likewise.
25765         * dwarf2asm.c: Likewise.
25766         * dwarf2cfi.c: Likewise.
25767         * dwarf2out.c: Likewise.
25768         * dwarf2out.h: Likewise.
25769         * emit-rtl.c: Likewise.
25770         * et-forest.c: Likewise.
25771         * except.c: Likewise.
25772         * explow.c: Likewise.
25773         * expmed.c: Likewise.
25774         * expr.c: Likewise.
25775         * final.c: Likewise.
25776         * fixed-value.c: Likewise.
25777         * fold-const.c: Likewise.
25778         * function.c: Likewise.
25779         * fwprop.c: Likewise.
25780         * gcc-plugin.h: Likewise.
25781         * gcse.c: Likewise.
25782         * generic-match-head.c: Likewise.
25783         * ggc-page.c: Likewise.
25784         * gimple-builder.c: Likewise.
25785         * gimple-expr.c: Likewise.
25786         * gimple-fold.c: Likewise.
25787         * gimple-iterator.c: Likewise.
25788         * gimple-low.c: Likewise.
25789         * gimple-match-head.c: Likewise.
25790         * gimple-pretty-print.c: Likewise.
25791         * gimple-ssa-isolate-paths.c: Likewise.
25792         * gimple-ssa-strength-reduction.c: Likewise.
25793         * gimple-streamer-in.c: Likewise.
25794         * gimple-streamer-out.c: Likewise.
25795         * gimple-streamer.h: Likewise.
25796         * gimple-walk.c: Likewise.
25797         * gimple.c: Likewise.
25798         * gimplify-me.c: Likewise.
25799         * gimplify.c: Likewise.
25800         * godump.c: Likewise.
25801         * graph.c: Likewise.
25802         * graphite-blocking.c: Likewise.
25803         * graphite-dependences.c: Likewise.
25804         * graphite-interchange.c: Likewise.
25805         * graphite-isl-ast-to-gimple.c: Likewise.
25806         * graphite-optimize-isl.c: Likewise.
25807         * graphite-poly.c: Likewise.
25808         * graphite-scop-detection.c: Likewise.
25809         * graphite-sese-to-poly.c: Likewise.
25810         * graphite.c: Likewise.
25811         * haifa-sched.c: Likewise.
25812         * hooks.h: Likewise.
25813         * hw-doloop.c: Likewise.
25814         * ifcvt.c: Likewise.
25815         * incpath.c: Likewise.
25816         * init-regs.c: Likewise.
25817         * internal-fn.c: Likewise.
25818         * ipa-chkp.c: Likewise.
25819         * ipa-comdats.c: Likewise.
25820         * ipa-cp.c: Likewise.
25821         * ipa-devirt.c: Likewise.
25822         * ipa-icf-gimple.c: Likewise.
25823         * ipa-icf.c: Likewise.
25824         * ipa-inline-analysis.c: Likewise.
25825         * ipa-inline-transform.c: Likewise.
25826         * ipa-inline.c: Likewise.
25827         * ipa-polymorphic-call.c: Likewise.
25828         * ipa-profile.c: Likewise.
25829         * ipa-prop.c: Likewise.
25830         * ipa-pure-const.c: Likewise.
25831         * ipa-ref.c: Likewise.
25832         * ipa-reference.c: Likewise.
25833         * ipa-split.c: Likewise.
25834         * ipa-utils.c: Likewise.
25835         * ipa-visibility.c: Likewise.
25836         * ipa.c: Likewise.
25837         * ira-build.c: Likewise.
25838         * ira-color.c: Likewise.
25839         * ira-conflicts.c: Likewise.
25840         * ira-costs.c: Likewise.
25841         * ira-emit.c: Likewise.
25842         * ira-lives.c: Likewise.
25843         * ira.c: Likewise.
25844         * jump.c: Likewise.
25845         * langhooks.c: Likewise.
25846         * lcm.c: Likewise.
25847         * loop-doloop.c: Likewise.
25848         * loop-init.c: Likewise.
25849         * loop-invariant.c: Likewise.
25850         * loop-iv.c: Likewise.
25851         * loop-unroll.c: Likewise.
25852         * lower-subreg.c: Likewise.
25853         * lra-assigns.c: Likewise.
25854         * lra-coalesce.c: Likewise.
25855         * lra-constraints.c: Likewise.
25856         * lra-eliminations.c: Likewise.
25857         * lra-lives.c: Likewise.
25858         * lra-remat.c: Likewise.
25859         * lra-spills.c: Likewise.
25860         * lra.c: Likewise.
25861         * lto-cgraph.c: Likewise.
25862         * lto-compress.c: Likewise.
25863         * lto-opts.c: Likewise.
25864         * lto-section-in.c: Likewise.
25865         * lto-section-out.c: Likewise.
25866         * lto-streamer-in.c: Likewise.
25867         * lto-streamer-out.c: Likewise.
25868         * lto-streamer.c: Likewise.
25869         * mcf.c: Likewise.
25870         * mode-switching.c: Likewise.
25871         * modulo-sched.c: Likewise.
25872         * omega.c: Likewise.
25873         * omp-low.c: Likewise.
25874         * optabs.c: Likewise.
25875         * opts-global.c: Likewise.
25876         * passes.c: Likewise.
25877         * plugin.c: Likewise.
25878         * postreload-gcse.c: Likewise.
25879         * postreload.c: Likewise.
25880         * predict.c: Likewise.
25881         * print-rtl.c: Likewise.
25882         * print-tree.c: Likewise.
25883         * profile.c: Likewise.
25884         * real.c: Likewise.
25885         * realmpfr.c: Likewise.
25886         * realmpfr.h: Likewise.
25887         * recog.c: Likewise.
25888         * ree.c: Likewise.
25889         * reg-stack.c: Likewise.
25890         * regcprop.c: Likewise.
25891         * reginfo.c: Likewise.
25892         * regrename.c: Likewise.
25893         * regs.h: Likewise.
25894         * regstat.c: Likewise.
25895         * reload.c: Likewise.
25896         * reload1.c: Likewise.
25897         * reorg.c: Likewise.
25898         * resource.c: Likewise.
25899         * rtl-chkp.c: Likewise.
25900         * rtlanal.c: Likewise.
25901         * rtlhooks.c: Likewise.
25902         * sanopt.c: Likewise.
25903         * sched-deps.c: Likewise.
25904         * sched-ebb.c: Likewise.
25905         * sched-rgn.c: Likewise.
25906         * sched-vis.c: Likewise.
25907         * sdbout.c: Likewise.
25908         * sel-sched-dump.c: Likewise.
25909         * sel-sched-ir.c: Likewise.
25910         * sel-sched.c: Likewise.
25911         * sese.c: Likewise.
25912         * shrink-wrap.c: Likewise.
25913         * shrink-wrap.h: Likewise.
25914         * simplify-rtx.c: Likewise.
25915         * stack-ptr-mod.c: Likewise.
25916         * statistics.c: Likewise.
25917         * stmt.c: Likewise.
25918         * stor-layout.c: Likewise.
25919         * store-motion.c: Likewise.
25920         * stringpool.c: Likewise.
25921         * symtab.c: Likewise.
25922         * target-globals.c: Likewise.
25923         * targhooks.c: Likewise.
25924         * toplev.c: Likewise.
25925         * tracer.c: Likewise.
25926         * trans-mem.c: Likewise.
25927         * tree-affine.c: Likewise.
25928         * tree-affine.h: Likewise.
25929         * tree-browser.c: Likewise.
25930         * tree-call-cdce.c: Likewise.
25931         * tree-cfg.c: Likewise.
25932         * tree-cfgcleanup.c: Likewise.
25933         * tree-chkp-opt.c: Likewise.
25934         * tree-chkp.c: Likewise.
25935         * tree-chrec.c: Likewise.
25936         * tree-complex.c: Likewise.
25937         * tree-data-ref.c: Likewise.
25938         * tree-dfa.c: Likewise.
25939         * tree-diagnostic.c: Likewise.
25940         * tree-dump.c: Likewise.
25941         * tree-eh.c: Likewise.
25942         * tree-emutls.c: Likewise.
25943         * tree-if-conv.c: Likewise.
25944         * tree-inline.c: Likewise.
25945         * tree-into-ssa.c: Likewise.
25946         * tree-iterator.c: Likewise.
25947         * tree-loop-distribution.c: Likewise.
25948         * tree-nested.c: Likewise.
25949         * tree-nrv.c: Likewise.
25950         * tree-object-size.c: Likewise.
25951         * tree-outof-ssa.c: Likewise.
25952         * tree-parloops.c: Likewise.
25953         * tree-phinodes.c: Likewise.
25954         * tree-predcom.c: Likewise.
25955         * tree-pretty-print.c: Likewise.
25956         * tree-pretty-print.h: Likewise.
25957         * tree-profile.c: Likewise.
25958         * tree-scalar-evolution.c: Likewise.
25959         * tree-sra.c: Likewise.
25960         * tree-ssa-address.c: Likewise.
25961         * tree-ssa-alias.c: Likewise.
25962         * tree-ssa-ccp.c: Likewise.
25963         * tree-ssa-coalesce.c: Likewise.
25964         * tree-ssa-copy.c: Likewise.
25965         * tree-ssa-copyrename.c: Likewise.
25966         * tree-ssa-dce.c: Likewise.
25967         * tree-ssa-dom.c: Likewise.
25968         * tree-ssa-dse.c: Likewise.
25969         * tree-ssa-forwprop.c: Likewise.
25970         * tree-ssa-ifcombine.c: Likewise.
25971         * tree-ssa-live.c: Likewise.
25972         * tree-ssa-loop-ch.c: Likewise.
25973         * tree-ssa-loop-im.c: Likewise.
25974         * tree-ssa-loop-ivcanon.c: Likewise.
25975         * tree-ssa-loop-ivopts.c: Likewise.
25976         * tree-ssa-loop-manip.c: Likewise.
25977         * tree-ssa-loop-niter.c: Likewise.
25978         * tree-ssa-loop-prefetch.c: Likewise.
25979         * tree-ssa-loop-unswitch.c: Likewise.
25980         * tree-ssa-loop.c: Likewise.
25981         * tree-ssa-loop.h: Likewise.
25982         * tree-ssa-math-opts.c: Likewise.
25983         * tree-ssa-operands.c: Likewise.
25984         * tree-ssa-phiopt.c: Likewise.
25985         * tree-ssa-phiprop.c: Likewise.
25986         * tree-ssa-pre.c: Likewise.
25987         * tree-ssa-propagate.c: Likewise.
25988         * tree-ssa-reassoc.c: Likewise.
25989         * tree-ssa-sccvn.c: Likewise.
25990         * tree-ssa-scopedtables.c: Likewise.
25991         * tree-ssa-sink.c: Likewise.
25992         * tree-ssa-strlen.c: Likewise.
25993         * tree-ssa-structalias.c: Likewise.
25994         * tree-ssa-tail-merge.c: Likewise.
25995         * tree-ssa-ter.c: Likewise.
25996         * tree-ssa-threadedge.c: Likewise.
25997         * tree-ssa-threadupdate.c: Likewise.
25998         * tree-ssa-uncprop.c: Likewise.
25999         * tree-ssa-uninit.c: Likewise.
26000         * tree-ssa.c: Likewise.
26001         * tree-ssanames.c: Likewise.
26002         * tree-stdarg.c: Likewise.
26003         * tree-streamer-in.c: Likewise.
26004         * tree-streamer-out.c: Likewise.
26005         * tree-streamer.c: Likewise.
26006         * tree-switch-conversion.c: Likewise.
26007         * tree-tailcall.c: Likewise.
26008         * tree-vect-data-refs.c: Likewise.
26009         * tree-vect-generic.c: Likewise.
26010         * tree-vect-loop-manip.c: Likewise.
26011         * tree-vect-loop.c: Likewise.
26012         * tree-vect-patterns.c: Likewise.
26013         * tree-vect-slp.c: Likewise.
26014         * tree-vect-stmts.c: Likewise.
26015         * tree-vectorizer.c: Likewise.
26016         * tree-vrp.c: Likewise.
26017         * tree.c: Likewise.
26018         * tsan.c: Likewise.
26019         * ubsan.c: Likewise.
26020         * valtrack.c: Likewise.
26021         * value-prof.c: Likewise.
26022         * var-tracking.c: Likewise.
26023         * varasm.c: Likewise.
26024         * varpool.c: Likewise.
26025         * vmsdbgout.c: Likewise.
26026         * vtable-verify.c: Likewise.
26027         * web.c: Likewise.
26028         * wide-int-print.cc: Likewise.
26029         * wide-int-print.h: Likewise.
26030         * wide-int.cc: Likewise.
26031         * xcoffout.c: Likewise.
26032         * config/aarch64/aarch64-builtins.c: Likewise.
26033         * config/aarch64/aarch64.c: Likewise.
26034         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
26035         * config/alpha/alpha.c: Likewise.
26036         * config/arc/arc.c: Likewise.
26037         * config/arm/aarch-common.c: Likewise.
26038         * config/arm/arm-builtins.c: Likewise.
26039         * config/arm/arm-c.c: Likewise.
26040         * config/arm/arm.c: Likewise.
26041         * config/avr/avr-c.c: Likewise.
26042         * config/avr/avr-log.c: Likewise.
26043         * config/avr/avr.c: Likewise.
26044         * config/bfin/bfin.c: Likewise.
26045         * config/c6x/c6x.c: Likewise.
26046         * config/cr16/cr16.c: Likewise.
26047         * config/cris/cris.c: Likewise.
26048         * config/darwin-c.c: Likewise.
26049         * config/darwin.c: Likewise.
26050         * config/default-c.c: Likewise.
26051         * config/epiphany/epiphany.c: Likewise.
26052         * config/epiphany/mode-switch-use.c: Likewise.
26053         * config/epiphany/resolve-sw-modes.c: Likewise.
26054         * config/fr30/fr30.c: Likewise.
26055         * config/frv/frv.c: Likewise.
26056         * config/ft32/ft32.c: Likewise.
26057         * config/glibc-c.c: Likewise.
26058         * config/h8300/h8300.c: Likewise.
26059         * config/i386/i386-c.c: Likewise.
26060         * config/i386/i386.c: Likewise.
26061         * config/i386/msformat-c.c: Likewise.
26062         * config/i386/winnt-cxx.c: Likewise.
26063         * config/i386/winnt-stubs.c: Likewise.
26064         * config/i386/winnt.c: Likewise.
26065         * config/ia64/ia64-c.c: Likewise.
26066         * config/ia64/ia64.c: Likewise.
26067         * config/iq2000/iq2000.c: Likewise.
26068         * config/lm32/lm32.c: Likewise.
26069         * config/m32c/m32c-pragma.c: Likewise.
26070         * config/m32c/m32c.c: Likewise.
26071         * config/m32r/m32r.c: Likewise.
26072         * config/m68k/m68k.c: Likewise.
26073         * config/mcore/mcore.c: Likewise.
26074         * config/mep/mep-pragma.c: Likewise.
26075         * config/mep/mep.c: Likewise.
26076         * config/microblaze/microblaze-c.c: Likewise.
26077         * config/microblaze/microblaze.c: Likewise.
26078         * config/mips/mips.c: Likewise.
26079         * config/mmix/mmix.c: Likewise.
26080         * config/mn10300/mn10300.c: Likewise.
26081         * config/moxie/moxie.c: Likewise.
26082         * config/msp430/msp430-c.c: Likewise.
26083         * config/msp430/msp430.c: Likewise.
26084         * config/nds32/nds32-cost.c: Likewise.
26085         * config/nds32/nds32-fp-as-gp.c: Likewise.
26086         * config/nds32/nds32-intrinsic.c: Likewise.
26087         * config/nds32/nds32-isr.c: Likewise.
26088         * config/nds32/nds32-md-auxiliary.c: Likewise.
26089         * config/nds32/nds32-memory-manipulation.c: Likewise.
26090         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
26091         * config/nds32/nds32-predicates.c: Likewise.
26092         * config/nds32/nds32.c: Likewise.
26093         * config/nios2/nios2.c: Likewise.
26094         * config/nvptx/nvptx.c: Likewise.
26095         * config/pa/pa.c: Likewise.
26096         * config/pdp11/pdp11.c: Likewise.
26097         * config/rl78/rl78-c.c: Likewise.
26098         * config/rl78/rl78.c: Likewise.
26099         * config/rs6000/rs6000-c.c: Likewise.
26100         * config/rs6000/rs6000.c: Likewise.
26101         * config/rx/rx.c: Likewise.
26102         * config/s390/s390-c.c: Likewise.
26103         * config/s390/s390.c: Likewise.
26104         * config/sh/sh-c.c: Likewise.
26105         * config/sh/sh-mem.cc: Likewise.
26106         * config/sh/sh.c: Likewise.
26107         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
26108         * config/sh/sh_treg_combine.cc: Likewise.
26109         * config/sol2-c.c: Likewise.
26110         * config/sol2-cxx.c: Likewise.
26111         * config/sol2-stubs.c: Likewise.
26112         * config/sol2.c: Likewise.
26113         * config/sparc/sparc-c.c: Likewise.
26114         * config/sparc/sparc.c: Likewise.
26115         * config/spu/spu-c.c: Likewise.
26116         * config/spu/spu.c: Likewise.
26117         * config/stormy16/stormy16.c: Likewise.
26118         * config/tilegx/mul-tables.c: Likewise.
26119         * config/tilegx/tilegx-c.c: Likewise.
26120         * config/tilegx/tilegx.c: Likewise.
26121         * config/tilepro/mul-tables.c: Likewise.
26122         * config/tilepro/tilepro-c.c: Likewise.
26123         * config/tilepro/tilepro.c: Likewise.
26124         * config/v850/v850-c.c: Likewise.
26125         * config/v850/v850.c: Likewise.
26126         * config/vax/vax.c: Likewise.
26127         * config/visium/visium.c: Likewise.
26128         * config/vms/vms-c.c: Likewise.
26129         * config/vms/vms.c: Likewise.
26130         * config/vxworks.c: Likewise.
26131         * config/winnt-c.c: Likewise.
26132         * config/xtensa/xtensa.c: Likewise.
26133         * common/config/bfin/bfin-common.c: Likewise.
26134
26135 2015-06-04  Jan Hubicka  <hubicka@ucw.cz>
26136
26137         * tree.h (tree_code_for_canonical_type_merging): New function.
26138         * tree.c (gimple_canonical_types_compatible_p): Use
26139         tree_code_for_canonical_type_merging..
26140
26141 2015-06-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
26142
26143         PR c++/66192
26144         PR target/66200
26145         * doc/tm.texi: Regenerate.
26146         * doc/tm.texi.in (TARGET_RELAXED_ORDERING): Delete.
26147         * target.def (TARGET_RELAXED_ORDERING): Likewise.
26148         * config/alpha/alpha.c (TARGET_RELAXED_ORDERING): Likewise.
26149         * config/ia64/ia64.c (TARGET_RELAXED_ORDERING): Likewise.
26150         * config/rs6000/rs6000.c (TARGET_RELAXED_ORDERING): Likewise.
26151         * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Likewise.
26152         * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
26153         * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Likewise.
26154         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Likewise.
26155
26156 2015-06-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26157
26158         * config/aarch64/aarch64.c (aarch64_override_options): Unconditionally
26159         register fma steering pass.
26160         * config/aarch64/cortex-a57-fma-steering.c (gate): Add gating on
26161         AARCH64_TUNE_FMA_STEERING.
26162
26163 2015-06-03  Jan Hubicka  <hubicka@ucw.cz>
26164
26165         * tree.c (verify_type_variant): Verify that type and variant is
26166         compatible.
26167         (gimple_canonical_types_compatible_p): Look for main variants.
26168
26169 2015-06-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
26170
26171         * config.gcc (powerpc*-*-*): Add support for a new configure
26172         option --with-advance-toolchain=<xxx> which overrides using the
26173         default header files, libraries and dynamic linker.
26174
26175         * config/rs6000/linux64.h (SUBSUBTARGET_EXTRA_SPECS): Add new
26176         specs to support the configure --with-advance-toolchain=<xxx>
26177         option.
26178         (INCLUDE_EXTRA_SPEC): Likewise.
26179         (LINK_OS_EXTRA_SPEC32): Likewise.
26180         (LINK_OK_EXTRA_SPEC64): Likewise.
26181         (LINK_OS_NEW_DTAGS_SPEC): Likewise.
26182         (DYNAMIC_LINKER_PREFIX): Likewise.
26183         (CPP_OS_DEFAULT_SPEC): Use the new specs for providing advance
26184         toolchain support.
26185         (GLIBC_DYNAMIC_LINKER32): Likewise.
26186         (GLIBC_DYNAMIC_LINKER64): Likewise.
26187         (LINK_OS_LINUX_SPEC32): Likewise.
26188         (LINK_OS_LINUX_SPEC64): Likewise.
26189
26190         * doc/install.texi (--enable-advance-toolchain=<xx>): Document new
26191         configuration option.
26192
26193 2015-06-03  Uros Bizjak  <ubizjak@gmail.com>
26194
26195         PR target/66275
26196         * config/i386/i386.c (ix86_function_arg_regno): Use ix86_cfun_abi
26197         to determine current function ABI.
26198         (ix86_function_value_regno_p): Ditto.
26199
26200 2015-06-03  Martin Liska  <mliska@suse.cz>
26201
26202         * alloc-pool.h (struct pool_usage): Correct GNU coding style.
26203         * bitmap.h (struct bitmap_usage): Likewise.
26204         * ggc-common.c (struct ggc_usage): Likewise.
26205         * mem-stats.h (struct mem_location): Likewise.
26206         (struct mem_usage): Likewise.
26207         * vec.c (struct vec_usage): Likewise.
26208
26209 2015-06-03  Benigno B. Junior  <bbj@gentoo.org>
26210
26211         * config/netbsd-elf.h (NETBSD_LINK_SPEC_ELF): Turn -symbolic into
26212         -Bsymbolic.
26213
26214 2015-06-02  Andres Tiraboschi  <andres.tiraboschi@tallertechnologies.com>
26215
26216         * doc/plugins.texi (enum plugin_event): New event.
26217         * plugin.c (register_callback): Handle PLUGIN_START_PARSE_FUNCTION
26218         and PLUGIN_FINISH_FUNCTION.
26219         * plugin.def (PLUGIN_START_PARSE_FUNCTION): Add plugin event
26220         (PLUGIN_FINISH_PARSE_FUNCTION): Likewise.
26221
26222 2015-06-03  Richard Biener  <rguenther@suse.de>
26223
26224         * tree-vect-data-refs.c (vect_analyze_group_access): Properly
26225         compute GROUP_GAP for the first element.
26226         * tree-vect-slp.c (vect_build_slp_tree_1): Remove restriction
26227         on in-group gaps.
26228
26229 2015-06-03  Nick Clifton  <nickc@redhat.com>
26230
26231         * config/rl78/rl78-real.md: Add peepholes to avoid a register
26232         copy when calling a function.
26233         * config/rl78/rl78.c (need_to_save): Do not push the frame
26234         pointer in an interrupt handler prologue if it is never used.
26235
26236 2015-06-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26237
26238         * ifcvt (end_ifcvt_sequence): Fix typo in comment above.
26239
26240 2015-06-03  Ilya Enkovich  <ilya.enkovich@intel.com>
26241
26242         * ipa-chkp.c (chkp_maybe_create_clone): Create alias
26243         reference when cloning alias node.
26244
26245 2015-06-03  Martin Liska  <mliska@suse.cz>
26246
26247         * alloc-pool.h (struct pool_usage): Correct space padding.
26248         * ggc-page.c (ggc_print_statistics): Align columns in a report.
26249         * mem-stats.h (struct mem_usage): Add argument to print_dash_line.
26250         * tree.c (dump_tree_statistics): Align columns in a report.
26251
26252 2015-06-03  Martin Liska  <mliska@suse.cz>
26253
26254         * alloc-pool.c (allocate_pool_descriptor): Remove.
26255         (struct pool_output_info): Likewise.
26256         (print_alloc_pool_statistics): Likewise.
26257         (dump_alloc_pool_statistics): Likewise.
26258         * alloc-pool.h (struct pool_usage): New struct.
26259         (pool_allocator::initialize): Change usage of memory statistics
26260         to a new interface.
26261         (pool_allocator::release): Likewise.
26262         (pool_allocator::allocate): Likewise.
26263         (pool_allocator::remove): Likewise.
26264         * mem-stats-traits.h (enum mem_alloc_origin): Add new enum value
26265         for a pool allocator.
26266         * mem-stats.h (struct mem_location): Add new ctor.
26267         (struct mem_usage): Add counter for number of
26268         instances.
26269         (mem_alloc_description::register_descriptor): New overload of
26270         * mem-stats.h (mem_location::to_string): New function.
26271         * bitmap.h (struct bitmap_usage): Use this new function.
26272         * ggc-common.c (struct ggc_usage): Likewise.
26273         the function.
26274
26275 2015-06-03  Richard Sandiford  <richard.sandiford@arm.com>
26276
26277         * defaults.h (SWITCHABLE_TARGET, TARGET_SUPPORTS_WIDE_INT): Move out
26278         of GCC_INSN_FLAGS_H block.
26279
26280 2015-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
26281
26282         * explow.c (plus_constant): Update check after force_const_mem call
26283         to see if the value returned is not a NULL_RTX.
26284
26285 2015-06-03  Ilya Enkovich  <ilya.enkovich@intel.com>
26286
26287         * ipa.c (symbol_table::remove_unreachable_nodes): Don't
26288         remove instumentation thunks calling reachable functions.
26289         * lto-cgraph.c (output_refs): Always output IPA_REF_CHKP.
26290         * lto/lto-partition.c (privatize_symbol_name_1): New.
26291         (privatize_symbol_name): Privatize both decl and orig_decl
26292         names for instrumented functions.
26293         * cgraph.c (cgraph_node::verify_node): Add transparent
26294         alias chain check for instrumented node.
26295
26296 2015-06-03  Marek Polacek  <polacek@redhat.com>
26297
26298         PR c/64223
26299         PR c/29358
26300         * tree.c (attribute_value_equal): Handle attribute format.
26301         (cmp_attrib_identifiers): Factor out of lookup_ident_attribute.
26302
26303 2015-06-03  Richard Biener  <rguenther@suse.de>
26304
26305         PR tree-optimization/63916
26306         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
26307         Forward-propagate non-invariant addresses by splicing their
26308         reference ops if the result isn't going to be used by PRE.
26309         (vn_reference_lookup_3): Remove pointless assert.
26310
26311 2015-06-03  Richard Biener  <rguenther@suse.de>
26312
26313         PR tree-optimization/66375
26314         * tree-scalar-evolution.c (follow_ssa_edge_binary): First
26315         add to the evolution before following SSA edges.
26316
26317 2015-06-03  Bin Cheng  <bin.cheng@arm.com>
26318
26319         * tree-ssa-loop-ivopts.c (dump_iv): New parameter.
26320         (dump_use, dump_cand, find_induction_variables): Pass new argument
26321         to dump_iv.
26322         (record_use): Preserve the ssa name information in IV.
26323
26324 2015-06-03  Richard Sandiford  <richard.sandiford@arm.com>
26325
26326         * genpreds.c (mark_mode_tests): Mark all MATCH_CODEs as
26327         NO_MODE_TEST.
26328         (add_mode_tests): Don't add mode tests if the predicate only
26329         accepts scalar constant integers.  Otherwise, allow the mode
26330         of "op" to be VOIDmode if the predicate does accept such integers.
26331
26332 2015-06-02  Jim Wilson  <jim.wilson@linaro.org>
26333
26334         PR target/66258
26335         * config/aarch64/aarch64.c (aarch64_function_value_regno_p): Change
26336         !TARGET_GENERAL_REGS_ONLY to TARGET_FLOAT.
26337         (aarch64_secondary_reload): Likewise
26338         (aarch64_expand_builtin_va_start): Change TARGET_GENERAL_REGS_ONLY
26339         to !TARGET_FLOAT.
26340         (aarch64_gimplify_va_arg_expr, aarch64_setup_incoming_varargs):
26341         Likewise.
26342
26343 2015-06-03  Kugan Vivekanandarajah  <kuganv@linaro.org>
26344             Zhenqiang Chen  <zhenqiang.chen@linaro.org>
26345
26346         PR target/65768
26347         * cprop.c (try_replace_reg): Check cost of constants before propagating.
26348
26349 2015-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
26350
26351         * config/rs6000/rs6000-modes.def (IFmode): Define IFmode to
26352         provide access to the IBM extended double floating point mode if
26353         long double is IEEE 128-bit floating point.
26354         (KFmode): Define KFmode to provide access to IEEE 128-bit floating
26355         point if long double is the IBM extended double type.
26356
26357         * config/rs6000/rs6000.opt (-mfloat128-none): New switches to
26358         enable adding IEEE 128-bit floating point support.
26359         (-mfloat128-software): Likewise.
26360         (-mfloat128-sw): Likewise.
26361
26362         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Do not allow
26363         128-bit floating point types to occupy any register if
26364         -mlong-double-64.  Do not allow use of IFmode/KFmode unless
26365         -mfloat128-software is enabled.
26366         (rs6000_debug_reg_global): Add IEEE 128-bit floating point debug
26367         support.
26368         (rs6000_option_override_internal): Add -mfloat128-* support.
26369         (rs6000_init_builtins): Setup __ibm128 and __float128 type modes.
26370
26371         * config/rs6000/rs6000.h (rs6000_builtin_type_index): Add ibm128
26372         and float128 type nodes.
26373         (ieee128_float_type_node): Likewise.
26374         (ibm128_float_type_node): Likewise.
26375
26376 2015-06-02  Szabolcs Nagy  <szabolcs.nagy@arm.com>
26377
26378         PR target/66136
26379         * config/aarch64/geniterators.sh: Rewrite in awk.
26380
26381 2015-06-02  Martin Liska  <mliska@suse.cz>
26382
26383         * alloc-pool.h (pool_allocator::pool_allocator): Set implicit
26384         values to avoid -Wmaybe-uninitialized errors.
26385
26386 2015-06-02  Richard Biener  <rguenther@suse.de>
26387
26388         PR debug/65549
26389         * dwarf2out.c (lookup_context_die): New function.
26390         (resolve_addr): Avoid forcing a full DIE for the
26391         target of a DW_TAG_GNU_call_site during late compilation.
26392         Instead create a stub DIE without a type if we have a
26393         context DIE present.
26394
26395 2015-06-02  Uros Bizjak  <ubizjak@gmail.com>
26396
26397         * df-scan.c (df_scan_start_dump): Add space between regno and regname.
26398
26399 2015-06-02  Bin Cheng  <bin.cheng@arm.com>
26400
26401         PR tree-optimization/48052
26402         * cfgloop.h (struct control_iv): New.
26403         (struct loop): New field control_ivs.
26404         * tree-ssa-loop-niter.c : Include "stor-layout.h".
26405         (number_of_iterations_lt): Set no_overflow information.
26406         (number_of_iterations_exit): Init control iv in niter struct.
26407         (record_control_iv): New.
26408         (estimate_numbers_of_iterations_loop): Call record_control_iv.
26409         (loop_exits_before_overflow): New.  Interface factored out of
26410         scev_probably_wraps_p.
26411         (scev_probably_wraps_p): Factor loop niter related code into
26412         loop_exits_before_overflow.
26413         (free_numbers_of_iterations_estimates_loop): Free control ivs.
26414         * tree-ssa-loop-niter.h (free_loop_control_ivs): New.
26415
26416 2015-06-02  Eric Botcazou  <ebotcazou@adacore.com>
26417
26418         * gimplify.c (gimplify_modify_expr): Do not create a DECL_DEBUG_EXPR if
26419         the target doesn't belong to the current function.
26420
26421 2015-06-02  Marek Polacek  <polacek@redhat.com>
26422
26423         PR middle-end/66345
26424         * gimple-fold.c (gimple_fold_builtin_snprintf): Return false if
26425         get_maxval_strlen does not produce an INTEGER_CST.
26426
26427 2015-06-02  Richard Sandiford  <richard.sandiford@arm.com>
26428
26429         * config/arc/constraints.md: Use lower-case names in match_code.
26430         * config/mmix/constraints.md: Likewise.
26431
26432 2015-06-02  Richard Biener  <rguenther@suse.de>
26433
26434         PR tree-optimization/65961
26435         * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove bogus
26436         check and clarify dump message.
26437         (vect_build_slp_tree): If all children are built up from scalars
26438         build up the parent from scalars instead.
26439         * tree-vect-stmts.c (vect_is_simple_use): Cleanup.
26440
26441 2015-06-02  Jan Kratochvil  <jan.kratochvil@redhat.com>
26442
26443         PR other/65366
26444         * gdbhooks.py: Use int(...) instead of long(...).  Use print(...)
26445         instead of print ... .
26446
26447 2015-06-02  Alan Modra  <amodra@gmail.com>
26448
26449         * config/rs6000/vsx.md (vsx_extract_v4sf): Revert accidental
26450         2014-08-11 change.
26451
26452 2015-06-02  Bin Cheng  <bin.cheng@arm.com>
26453
26454         PR tree-optimization/52563
26455         PR tree-optimization/62173
26456         * tree-ssa-loop-ivopts.c (struct iv): New field.  Reorder fields.
26457         (alloc_iv, set_iv): New parameter.
26458         (determine_biv_step): Delete.
26459         (find_bivs): Inline original determine_biv_step.  Pass new
26460         argument to set_iv.
26461         (idx_find_step): Use no_overflow information for conversion.
26462         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop): Let
26463         resolve_mixers handle folded_casts.
26464         (instantiate_scev_name): Change bool parameter to bool pointer.
26465         (instantiate_scev_poly, instantiate_scev_binary): Ditto.
26466         (instantiate_array_ref, instantiate_scev_not): Ditto.
26467         (instantiate_scev_3, instantiate_scev_2): Ditto.
26468         (instantiate_scev_1, instantiate_scev_r): Ditto.
26469         (instantiate_scev_convert, ): Change parameter.  Pass argument
26470         to chrec_convert_aggressive.
26471         (instantiate_scev): Change argument.
26472         (resolve_mixers): New parameter and set it.
26473         (scev_const_prop): New argument.
26474         * tree-scalar-evolution.h (resolve_mixers): New parameter.
26475         * tree-chrec.c (convert_affine_scev): Call chrec_convert instead
26476         of chrec_conert_1.
26477         (chrec_convert): New parameter.  Move definition below.
26478         (chrec_convert_aggressive): New parameter and set it.  Call
26479         convert_affine_scev.
26480         * tree-chrec.h (chrec_convert): New parameter.
26481         (chrec_convert_aggressive): Ditto.
26482
26483 2015-06-01  Eric Botcazou  <ebotcazou@adacore.com>
26484
26485         * gimplify.c (gimplify_modify_expr_rhs): Use simple test on the size.
26486         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Do not remove
26487         the LHS of a no-return call if its type has variable size.
26488         * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
26489         * tree-cfg.c (verify_gimple_call): Accept these no-return calls.
26490
26491 2015-06-01  Andreas Tobler  <andreast@gcc.gnu.org>
26492
26493         * read-rtl.c: Adapt to use HAVE_DECL_ATOLL instead of HAVE_ATOLL.
26494         * config.in: Regenerate.
26495
26496 2015-06-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
26497
26498         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
26499         consecutive accesses within outer-loop with force_vectorize
26500         for references with zero step in inner-loop.
26501
26502 2015-06-01  Vidya Praveen  <vidyapraveen@arm.com>
26503
26504         * Makefile.in: Pick up gcov-dump dependencies from gcc/ directory
26505         rather than from gcc/build directory.
26506
26507 2015-06-01  Matthew Wahab  <matthew.wahab@arm.com>
26508
26509         PR target/65697
26510         * config/aarch64/aarch64.c (aarch64_split_compare_and_swap): Check
26511         for __sync memory models, emit initial loads and final barriers as
26512         appropriate.
26513
26514 2015-06-01  Matthew Wahab  <matthew.wahab@arm.com>
26515
26516         PR target/65697
26517         * config/aarch64/aarch64.c (aarch64_emit_post_barrier):New.
26518         (aarch64_split_atomic_op): Check for __sync memory models, emit
26519         appropriate initial loads and final barriers.
26520
26521 2015-06-01  Vidya Praveen  <vidyapraveen@arm.com>
26522
26523         * Makefile.in: Fix gcov dependencies that should
26524         not point to a build folder.
26525
26526 2015-06-01  Richard Biener  <rguenther@suse.de>
26527
26528         Revert
26529         2015-05-29  Richard Biener  <rguenther@suse.de>
26530
26531         PR tree-optimization/66314
26532         * tree-ssa-threadupdate.c (create_block_for_threading): Add
26533         parameter that says which loop the new block belongs to.
26534         (ssa_create_duplicates): Blocks duplicated for the threaded
26535         path belong to the loop of the thread destination.
26536
26537 2015-06-01  Martin Liska  <mliska@suse.cz>
26538
26539         * sched-deps.c: Include pool-alloc.h before
26540         cselib.h header file is included.
26541
26542 2015-06-01  Richard Biener  <rguenther@suse.de>
26543
26544         * tree-ssa-structalias.c (ipa_pta_execute): Handle address-taken
26545         functions.
26546
26547 2015-06-01  Martin Liska  <mliska@suse.cz>
26548
26549         * alloc-pool.h: Add ATTRIBUTE_UNUSED for
26550         a function local variable.
26551
26552 2015-06-01  Martin Liska  <mliska@suse.cz>
26553
26554         * alloc-pool.c (create_alloc_pool): Remove.
26555         (empty_alloc_pool): Likewise.
26556         (free_alloc_pool): Likewise.
26557         (free_alloc_pool_if_empty): Likewise.
26558         (pool_alloc): Likewise.
26559         (pool_free): Likewise.
26560         * alloc-pool.h: Remove old declarations.
26561
26562 2015-06-01  Martin Liska  <mliska@suse.cz>
26563
26564         * ira-build.c (initiate_allocnos): Use new type-based pool allocator.
26565         (ira_create_object): Likewise.
26566         (ira_create_allocno): Likewise.
26567         (ira_create_live_range): Likewise.
26568         (copy_live_range): Likewise.
26569         (ira_finish_live_range): Likewise.
26570         (ira_free_allocno_costs): Likewise.
26571         (finish_allocno): Likewise.
26572         (finish_allocnos): Likewise.
26573         (initiate_prefs): Likewise.
26574         (ira_create_pref): Likewise.
26575         (finish_pref): Likewise.
26576         (finish_prefs): Likewise.
26577         (initiate_copies): Likewise.
26578         (ira_create_copy): Likewise.
26579         (finish_copy): Likewise.
26580         (finish_copies): Likewise.
26581         (finish_prefs): Likewise.
26582
26583 2015-06-01  Martin Liska  <mliska@suse.cz>
26584
26585         * ipa-cp.c (ipcp_value::add_source): Use new type-based pool allocator.
26586         (allocate_and_init_ipcp_value): Likewise.
26587         (ipcp_lattice::add_value): Likewise.
26588         (merge_agg_lats_step): Likewise.
26589         (ipcp_driver): Likewise.
26590         * ipa-prop.c (ipa_free_all_structures_after_ipa_cp): Likewise.
26591         (ipa_free_all_structures_after_iinln): Likewise.
26592         * ipa-prop.h: Likewise.
26593
26594 2015-06-01  Martin Liska  <mliska@suse.cz>
26595
26596         * ipa-inline-analysis.c (edge_set_predicate): Use new type-based
26597         pool allocator.
26598         (set_hint_predicate): Likewise.
26599         (inline_summary_alloc): Likewise.
26600         (reset_inline_edge_summary): Likewise.
26601         (reset_inline_summary): Likewise.
26602         (set_cond_stmt_execution_predicate): Likewise.
26603         (set_switch_stmt_execution_predicate): Likewise.
26604         (compute_bb_predicates): Likewise.
26605         (estimate_function_body_sizes): Likewise.
26606         (inline_free_summary): Likewise.
26607
26608 2015-06-01  Martin Liska  <mliska@suse.cz>
26609
26610         * ipa-prop.c (ipa_set_jf_constant): Use new type-based pool allocator.
26611         (ipa_edge_duplication_hook): Likewise.
26612         (ipa_free_all_structures_after_ipa_cp): Likewise.
26613         (ipa_free_all_structures_after_iinln): Likewise.
26614
26615 2015-06-01  Martin Liska  <mliska@suse.cz>
26616
26617         * ipa-profile.c (account_time_size): Use new type-based pool allocator.
26618         (ipa_profile_generate_summary): Likewise.
26619         (ipa_profile_read_summary): Likewise.
26620         (ipa_profile): Likewise.
26621
26622 2015-06-01  Martin Liska  <mliska@suse.cz>
26623
26624         * tree-ssa-structalias.c (new_var_info): Use new type-based
26625         pool allocator.
26626         (new_constraint): Likewise.
26627         (init_alias_vars): Likewise.
26628         (delete_points_to_sets): Likewise.
26629
26630 2015-06-01  Martin Liska  <mliska@suse.cz>
26631
26632         * tree-ssa-strlen.c (new_strinfo): Use new type-based pool allocator.
26633         (free_strinfo): Likewise.
26634         (pass_strlen::execute): Likewise.
26635
26636 2015-06-01  Martin Liska  <mliska@suse.cz>
26637
26638         * tree-ssa-sccvn.c (vn_reference_insert): Use new type-based
26639         pool allocator.
26640         (vn_reference_insert_pieces): Likewise.
26641         (vn_phi_insert): Likewise.
26642         (visit_reference_op_call): Likewise.
26643         (copy_phi): Likewise.
26644         (copy_reference): Likewise.
26645         (process_scc): Likewise.
26646         (allocate_vn_table): Likewise.
26647         (free_vn_table): Likewise.
26648
26649 2015-06-01  Martin Liska  <mliska@suse.cz>
26650
26651         * tree-ssa-reassoc.c (add_to_ops_vec): Use new type-based
26652         pool allocator.
26653         (add_repeat_to_ops_vec): Likewise.
26654         (get_ops): Likewise.
26655         (maybe_optimize_range_tests): Likewise.
26656         (init_reassoc): Likewise.
26657         (fini_reassoc): Likewise.
26658
26659 2015-06-01  Martin Liska  <mliska@suse.cz>
26660
26661         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Use new type-based
26662         pool allocator.
26663         (bitmap_set_new): Likewise.
26664         (get_or_alloc_expr_for_constant): Likewise.
26665         (get_or_alloc_expr_for): Likewise.
26666         (phi_translate_1): Likewise.
26667         (compute_avail): Likewise.
26668         (init_pre): Likewise.
26669         (fini_pre): Likewise.
26670
26671 2015-06-01  Martin Liska  <mliska@suse.cz>
26672
26673         * sched-deps.c (create_dep_node): Use new type-based pool allocator.
26674         (delete_dep_node): Likewise.
26675         (create_deps_list): Likewise.
26676         (free_deps_list): Likewise.
26677         (sched_deps_init): Likewise.
26678         (sched_deps_finish): Likewise.
26679
26680 2015-06-01  Martin Liska  <mliska@suse.cz>
26681
26682         * regcprop.c (free_debug_insn_changes): Use new type-based
26683         pool allocator.
26684         (replace_oldest_value_reg): Likewise.
26685         (pass_cprop_hardreg::execute): Likewise.
26686
26687 2015-06-01  Martin Liska  <mliska@suse.cz>
26688
26689         * ira-build.c (initiate_cost_vectors): Use new type-based
26690         pool allocator.
26691         (ira_allocate_cost_vector): Likewise.
26692         (ira_free_cost_vector): Likewise.
26693         (finish_cost_vectors): Likewise.
26694
26695 2015-06-01  Martin Liska  <mliska@suse.cz>
26696
26697         * sel-sched-ir.c (alloc_sched_pools): Use new type-based
26698         pool allocator.
26699         (free_sched_pools): Likewise.
26700         * sel-sched-ir.h (_list_alloc): Likewise.
26701         (_list_remove): Likewise.
26702
26703 2015-06-01  Martin Liska  <mliska@suse.cz>
26704
26705         * stmt.c (add_case_node): Use new type-based pool allocator.
26706         (expand_case): Likewise.
26707         (expand_sjlj_dispatch_table): Likewise.
26708
26709 2015-06-01  Martin Liska  <mliska@suse.cz>
26710
26711         * tree-ssa-math-opts.c (occ_new): Use new type-based pool allocator.
26712         (free_bb): Likewise.
26713         (pass_cse_reciprocals::execute): Likewise.
26714
26715 2015-06-01  Martin Liska  <mliska@suse.cz>
26716
26717         * tree-sra.c (sra_initialize): Use new type-based pool allocator.
26718         (sra_deinitialize) Likewise.
26719         (create_access_1) Likewise.
26720         (build_accesses_from_assign) Likewise.
26721         (create_artificial_child_access) Likewise.
26722
26723 2015-06-01  Martin Liska  <mliska@suse.cz>
26724
26725         * dse.c (get_group_info):Use new type-based pool allocator.
26726         (dse_step0) Likewise.
26727         (free_store_info) Likewise.
26728         (delete_dead_store_insn) Likewise.
26729         (free_read_records) Likewise.
26730         (record_store) Likewise.
26731         (replace_read) Likewise.
26732         (check_mem_read_rtx) Likewise.
26733         (scan_insn) Likewise.
26734         (dse_step1) Likewise.
26735         (dse_step7) Likewise.
26736
26737 2015-06-01  Martin Liska  <mliska@suse.cz>
26738
26739         * df-scan.c (struct df_scan_problem_data):Use new type-based
26740         pool allocator.
26741         (df_scan_free_internal) Likewise.
26742         (df_scan_alloc) Likewise.
26743         (df_grow_reg_info) Likewise.
26744         (df_free_ref) Likewise.
26745         (df_insn_create_insn_record) Likewise.
26746         (df_mw_hardreg_chain_delete) Likewise.
26747         (df_insn_info_delete) Likewise.
26748         (df_free_collection_rec) Likewise.
26749         (df_mw_hardreg_chain_delete_eq_uses) Likewise.
26750         (df_sort_and_compress_mws) Likewise.
26751         (df_ref_create_structure) Likewise.
26752         (df_ref_record) Likewise.
26753
26754 2015-06-01  Martin Liska  <mliska@suse.cz>
26755
26756         * df-problems.c (df_chain_create):Use new type-based pool allocator.
26757         (df_chain_unlink_1) Likewise.
26758         (df_chain_unlink) Likewise.
26759         (df_chain_remove_problem) Likewise.
26760         (df_chain_alloc) Likewise.
26761         (df_chain_free) Likewise.
26762         * df.h (struct dataflow) Likewise.
26763
26764 2015-06-01  Martin Liska  <mliska@suse.cz>
26765
26766         * cselib.c (new_elt_list):Use new type-based pool allocator.
26767         (new_elt_loc_list) Likewise.
26768         (unchain_one_elt_list) Likewise.
26769         (unchain_one_elt_loc_list) Likewise.
26770         (unchain_one_value) Likewise.
26771         (new_cselib_val) Likewise.
26772         (cselib_init) Likewise.
26773         (cselib_finish) Likewise.
26774
26775 2015-06-01  Martin Liska  <mliska@suse.cz>
26776
26777         * config/sh/sh.c (add_constant):Use new type-based pool allocator.
26778         (sh_reorg) Likewise.
26779
26780 2015-06-01  Martin Liska  <mliska@suse.cz>
26781
26782         * cfg.c (initialize_original_copy_tables):Use new type-based
26783         pool allocator.
26784         (free_original_copy_tables) Likewise.
26785         (copy_original_table_clear) Likewise.
26786         (copy_original_table_set) Likewise.
26787
26788 2015-06-01  Martin Liska  <mliska@suse.cz>
26789
26790         * asan.c (asan_mem_ref_get_alloc_pool):Use new type-based
26791         pool allocator.
26792         (asan_mem_ref_new) Likewise.
26793         (free_mem_ref_resources) Likewise.
26794
26795 2015-06-01  Martin Liska  <mliska@suse.cz>
26796
26797         * var-tracking.c (variable_htab_free):Use new type-based
26798         pool allocator.
26799         (attrs_list_clear) Likewise.
26800         (attrs_list_insert) Likewise.
26801         (attrs_list_copy) Likewise.
26802         (shared_hash_unshare) Likewise.
26803         (shared_hash_destroy) Likewise.
26804         (unshare_variable) Likewise.
26805         (var_reg_delete_and_set) Likewise.
26806         (var_reg_delete) Likewise.
26807         (var_regno_delete) Likewise.
26808         (drop_overlapping_mem_locs) Likewise.
26809         (variable_union) Likewise.
26810         (insert_into_intersection) Likewise.
26811         (canonicalize_values_star) Likewise.
26812         (variable_merge_over_cur) Likewise.
26813         (dataflow_set_merge) Likewise.
26814         (remove_duplicate_values) Likewise.
26815         (variable_post_merge_new_vals) Likewise.
26816         (dataflow_set_preserve_mem_locs) Likewise.
26817         (dataflow_set_remove_mem_locs) Likewise.
26818         (variable_from_dropped) Likewise.
26819         (variable_was_changed) Likewise.
26820         (set_slot_part) Likewise.
26821         (clobber_slot_part) Likewise.
26822         (delete_slot_part) Likewise.
26823         (loc_exp_insert_dep) Likewise.
26824         (notify_dependents_of_changed_value) Likewise.
26825         (emit_notes_for_differences_1) Likewise.
26826         (vt_emit_notes) Likewise.
26827         (vt_initialize) Likewise.
26828         (vt_finalize) Likewise.
26829
26830 2015-06-01  Martin Liska  <mliska@suse.cz>
26831
26832         * ira-color.c (init_update_cost_records):Use new type-based
26833         pool allocator.
26834         (get_update_cost_record) Likewise.
26835         (free_update_cost_record_list) Likewise.
26836         (finish_update_cost_records) Likewise.
26837         (initiate_cost_update) Likewise.
26838
26839 2015-06-01  Martin Liska  <mliska@suse.cz>
26840
26841         * lra.c (init_insn_regs): Use new type-based pool allocator.
26842         (new_insn_reg) Likewise.
26843         (free_insn_reg) Likewise.
26844         (free_insn_regs) Likewise.
26845         (finish_insn_regs) Likewise.
26846         (init_insn_recog_data) Likewise.
26847         (init_reg_info) Likewise.
26848         (finish_reg_info) Likewise.
26849         (lra_free_copies) Likewise.
26850         (lra_create_copy) Likewise.
26851         (invalidate_insn_data_regno_info) Likewise.
26852
26853 2015-06-01  Martin Liska  <mliska@suse.cz>
26854
26855         * lra-lives.c (free_live_range): Use new type-based pool allocator.
26856         (free_live_range_list) Likewise.
26857         (create_live_range) Likewise.
26858         (copy_live_range) Likewise.
26859         (lra_merge_live_ranges) Likewise.
26860         (remove_some_program_points_and_update_live_ranges) Likewise.
26861         (lra_live_ranges_init) Likewise.
26862         (lra_live_ranges_finish) Likewise.
26863
26864 2015-06-01  Martin Liska  <mliska@suse.cz>
26865
26866         * et-forest.c (et_new_occ): Use new type-based pool allocator.
26867         (et_new_tree): Likewise.
26868         (et_free_tree): Likewise.
26869         (et_free_tree_force): Likewise.
26870         (et_free_pools): Likewise.
26871         (et_split): Likewise.
26872
26873 2015-06-01  Martin Liska  <mliska@suse.cz>
26874
26875         * alloc-pool.c (struct alloc_pool_descriptor): Move definition
26876         to header file.
26877         * alloc-pool.h (pool_allocator::pool_allocator): New function.
26878         (pool_allocator::release): Likewise.
26879         (inline pool_allocator::release_if_empty): Likewise.
26880         (inline pool_allocator::~pool_allocator): Likewise.
26881         (pool_allocator::allocate): Likewise.
26882         (pool_allocator::remove): Likewise.
26883
26884 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
26885
26886         * sched-deps.c (sched_analyze_2): Replace fuseable with fusible
26887         in comment.
26888
26889 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
26890
26891         * config/arm/arm-protos.h (tune_params): Rename fuseable_ops
26892         to fusible_ops.
26893         * config/arm/arm.c (arm_print_tune_info): Likewise.
26894         (arm_macro_fusion_p): Likewise.
26895         (arm_macro_fusion_pair_p): Likewise.
26896
26897 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
26898
26899         * config/aarch64/aarch64-protos.h (tune_params): Rename
26900         fuseable_ops to fusible_ops.
26901         * config/aarch64/aarch64.c (generic_tunings): Rename
26902         fuseable_ops to fusible_ops.
26903         (cortexa53_tunings): Likewise.
26904         (cortexa57_tunings): Likewise.
26905         (thunderx_tunings): Likewise.
26906         (xgene1_tunings): Likewise.
26907         (aarch64_macro_fusion_p): Likewise.
26908         (aarch64_macro_fusion_pair_p): Likewise.
26909
26910 2015-06-01  Dominik Vogt  <vogt@linux.vnet.ibm.com>
26911
26912         * config/s390/driver-native.c: New file.
26913         * config/s390/x-native: New file.
26914         * config.host: Add new files for s390.
26915         * config/s390/s390.h (DRIVER_SELF_SPECS): Add support for -mtune=native
26916         and -march=native
26917         * config.gcc: Likewise.
26918         * config/s390/s390.opt (march): Likewise; add PROCESSOR_NATIVE
26919         * config/s390/s390-opts.h (enum processor_type): Ditto.
26920         * config/s390/s390.c (s390_option_override): Catch unhandled
26921         PROCESSOR_NATIVE
26922
26923 2015-06-01  Ilya Enkovich  <ilya.enkovich@intel.com>
26924
26925         PR target/65527
26926         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Add
26927         redirection for instrumented calls.
26928         * lto-wrapper.c (merge_and_complain): Merge -fcheck-pointer-bounds.
26929         (append_compiler_options): Append -fcheck-pointer-bounds.
26930         * tree-chkp.h (chkp_copy_call_skip_bounds): New.
26931         (chkp_redirect_edge): New.
26932         * tree-chkp.c (chkp_copy_call_skip_bounds): New.
26933         (chkp_redirect_edge): New.
26934
26935 2015-06-01  Richard Biener  <rguenther@suse.de>
26936
26937         PR tree-optimization/66280
26938         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Fix pattern
26939         def-use walking.
26940
26941 2015-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26942
26943         * config/aarch64/aarch64.md
26944         (*<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Change type to
26945         logic_shift_imm.
26946
26947 2015-06-01  Eric Botcazou  <ebotcazou@adacore.com>
26948
26949         * config/i386/winnt.c (i386_pe_encode_section_info) <FUNCTION_DECL>:
26950         Remove obsolete kludge.
26951
26952 2015-06-01  Richard Biener  <rguenther@suse.de>
26953
26954         * tree-ssa-reassoc.c (get_rank): Simplify.
26955
26956 2015-05-31  H.J. Lu  <hongjiu.lu@intel.com>
26957
26958         * configure.ac (NO_PIE_CFLAGS): Check CXXFLAGS instead of CFLAGS.
26959         * configure: Regenerated.
26960
26961 2015-05-31  Mikhail Maltsev  <maltsevm@gmail.com>
26962
26963         * config/cris/cris.h (CRIS_ARCH_CPP_DEFAULT): Fix C++11 compatibility
26964         issue (add space between string literal and macro).
26965         * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Likewise.
26966
26967 2015-05-30  Andreas Schwab  <schwab@linux-m68k.org>
26968
26969         * config/m68k/m68k.h (ASM_PCREL_SPEC): Pass --pcrel also for
26970         implict or explicit -fPIE or -fpie.
26971
26972 2015-05-30  Mike Frysinger  <vapier@gentoo.org>
26973
26974         * config/alpha/elf.h (ASM_SPEC): Add %{mcpu=*:-m%*}.
26975
26976 2015-05-28  DJ Delorie  <dj@redhat.com>
26977
26978         * expmed.c (extract_bit_field_1): Avoid clobbering a
26979         yet-to-be-used base/index register.
26980
26981 2015-05-30  Jan Hubicka  <hubicka@ucw.cz>
26982
26983         * alias.c (alias_set_entry_d): Add is_pointer and has_pointer.
26984         (alias_stats): Add num_universal.
26985         (alias_set_subset_of): Special case pointers; be ready for NULL
26986         children.
26987         (alias_sets_conflict_p): Special case pointers; be ready for NULL
26988         children.
26989         (init_alias_set_entry): Break out from ...
26990         (record_alias_subset): ... here; propagate new fields;
26991         allocate children only when really needed.
26992         (get_alias_set): Do less generous pointer globbing.
26993         (dump_alias_stats_in_alias_c): Update statistics.
26994
26995 2015-05-30  Alan Modra  <amodra@gmail.com>
26996
26997         * config/rs6000/rs6000.c (split_stack_arg_pointer_used_p): Scan
26998         correct block for use of r12.
26999         (rs6000_expand_split_stack_prologue): Error on r29 asm global reg.
27000
27001 2015-05-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
27002
27003         PR target/66215
27004         * config/s390/s390.c (s390_reorg): Fix placement of post-label NOPs
27005         with -mhotpatch=.
27006
27007 2015-05-29  Jakub Jelinek  <jakub@redhat.com>
27008
27009         PR tree-optimization/66142
27010         * tree-if-conv.c (if_convertible_phi_p): Don't give up on
27011         virtual phis that feed themselves.
27012
27013 2015-05-29  Richard Biener  <rguenther@suse.de>
27014
27015         PR tree-optimization/66314
27016         * tree-ssa-threadupdate.c (create_block_for_threading): Add
27017         parameter that says which loop the new block belongs to.
27018         (ssa_create_duplicates): Blocks duplicated for the threaded
27019         path belong to the loop of the thread destination.
27020
27021 2015-05-29  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
27022
27023         * config/arm/neon-testgen.ml (emit_epilogue): Remove manual call
27024         to cleanup-saved-temps.
27025         * doc/sourcebuild.texi (Clean up generated test files): Expand
27026         introduction.
27027         (dg-keep-saved-temps): Document new proc.
27028         (cleanup-ipa-dump, cleanup-rtl-dump, cleanup-tree-dump,
27029         cleanup-saved-temps): Remove.
27030
27031 2015-05-28  Andreas Tobler  <andreast@gcc.gnu.org>
27032
27033         * configure.ac: Move the atoll check from AC_CHECK_FUNCS to
27034         gcc_AC_CHECK_DECLS.
27035         * configure: Regenerate.
27036
27037 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
27038
27039         * config/nios2/linux.h (CPP_SPEC): Define.
27040
27041 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
27042
27043         * config/microblaze/linux.h (CPP_SPEC): Define.
27044
27045 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
27046
27047         * config/pa/pa-linux.h (CPP_SPEC): Change so -D_REENTRANT is used when
27048         -pthread is specified.
27049
27050 2015-05-28  Richard Biener  <rguenther@suse.de>
27051
27052         * tree-vect-loop.c (vect_fixup_reduc_chain): New function.
27053         (vect_fixup_scalar_cycles_with_patterns): Likewise.
27054         (vect_analyze_loop_2): Call vect_fixup_scalar_cycles_with_patterns
27055         after pattern recog.
27056         (vect_create_epilog_for_reduction): Properly handle reductions
27057         with patterns.
27058         (vectorizable_reduction): Likewise.
27059         * tree-vect-slp.c (vect_analyze_slp_instance): Properly mark
27060         reduction chains.
27061         (vect_get_constant_vectors): Create the correct number of
27062         initial values for reductions.
27063         (vect_schedule_slp_instance): Handle reduction chains that are
27064         type changing properly.
27065         * tree-vect-stmts.c (vect_analyze_stmt): Adjust.
27066
27067 2015-05-28  Richard Biener  <rguenther@suse.de>
27068
27069         PR tree-optimization/66142
27070         * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle non-GIMPLE
27071         values better in memcpy destination handling.  Handle non-aliasing
27072         we discover here.
27073
27074 2015-05-28  Lawrence Velázquez  <vq@larryv.me>
27075
27076         PR target/63810
27077         * config/darwin-c.c (version_components): New global enum.
27078         (parse_version, version_as_legacy_macro)
27079         (version_as_modern_macro, macosx_version_as_macro): New functions.
27080         (version_as_macro): Remove.
27081         (darwin_cpp_builtins): Use new function.
27082
27083 2015-05-28  H.J. Lu  <hongjiu.lu@intel.com>
27084
27085         * builtins.c (expand_builtin_acc_on_device): Mark parameters
27086         with ATTRIBUTE_UNUSED.
27087
27088 2015-05-28  Julian Brown  <julian@codesourcery.com>
27089
27090         PR libgomp/65742
27091
27092         * builtins.c (expand_builtin_acc_on_device): Don't use open-coded
27093         sequence for !ACCEL_COMPILER.
27094
27095 2015-05-28  Nick Clifton  <nickc@redhat.com>
27096
27097         * config/rx/rx.c (push_regs): New function.  Extracts code from...
27098         (rx_expand_prologue): ... here.  Use push_regs to push even small
27099         spans of registers.
27100         (pop_regs): New function.
27101         (rx_expand_epilogue):  Use pop_regs to pop even small spans of
27102         registers.
27103
27104 2015-05-28  Richard Biener  <rguenther@suse.de>
27105
27106         * tree-vectorizer.h (struct _slp_instance): Remove body_cost_vec
27107         member.
27108         (SLP_INSTANCE_BODY_COST_VEC): Remove.
27109         (vect_update_slp_costs_according_to_vf): Likewise.
27110         (vect_slp_analyze_operations): Update prototype.
27111         * tree-vect-loop.c (vect_analyze_loop_2): Remove call to
27112         vect_update_slp_costs_according_to_vf, adjust.
27113         * tree-vect-slp.c (vect_free_slp_instance): Adjust.
27114         (vect_analyze_slp_cost_1): Likewise.
27115         (vect_analyze_slp_cost): Likewise.  Properly deal with
27116         widening reduction ops.  Commit body costs.
27117         (vect_analyze_slp_instance): Adjust.  Do not analyze SLP
27118         cost for loops from here.
27119         (vect_slp_analyze_operations): But do it from here when
27120         the vectorization factor is known and stmts are analyzed.
27121         (vect_bb_vectorization_profitable_p): Simplify.
27122         (vect_slp_analyze_bb_1): Do not compute SLP cost here.
27123         (vect_update_slp_costs_according_to_vf): Remove.
27124
27125 2015-05-27  Magnus Granberg  <zorry@gentoo.org>
27126             H.J. Lu  <hongjiu.lu@intel.com>
27127
27128         * Makefile.in (COMPILER): Add @NO_PIE_CFLAGS@.
27129         (BUILD_CFLAGS): Likewise.
27130         (BUILD_CXXFLAGS): Likewise.
27131         (LINKER): Add @NO_PIE_FLAG@.
27132         (BUILD_LDFLAGS): Likewise.
27133         (libgcc.mvars): Set NO_PIE_CFLAGS to -fno-PIE for
27134         --enable-default-pie.
27135         * common.opt (fPIE): Initialize to -1.
27136         (fpie): Likewise.
27137         (no-pie): New option.
27138         (pie): Replace "Negative(shared)" with "Negative(no-pie)".
27139         * configure.ac: Add --enable-default-pie.
27140         (NO_PIE_CFLAGS): New.  Check if -fno-PIE works.  AC_SUBST.
27141         (NO_PIE_FLAG): New.  Check if -no-pie works.  AC_SUBST.
27142         * defaults.h (DEFAULT_FLAG_PIE): New.  Default PIE to -fPIE.
27143         * gcc.c (NO_PIE_SPEC): New.
27144         (PIE_SPEC): Likewise.
27145         (NO_FPIE1_SPEC): Likewise.
27146         (FPIE1_SPEC): Likewise.
27147         (NO_FPIE2_SPEC): Likewise.
27148         (FPIE2_SPEC): Likewise.
27149         (NO_FPIE2_SPEC): Likewise.
27150         (FPIE_SPEC): Likewise.
27151         (NO_FPIE_SPEC): Likewise.
27152         (NO_FPIC1_SPEC): Likewise.
27153         (FPIC1_SPEC): Likewise.
27154         (NO_FPIC2_SPEC): Likewise.
27155         (FPIC2_SPEC): Likewise.
27156         (NO_FPIC2_SPEC): Likewise.
27157         (FPIC_SPEC): Likewise.
27158         (NO_FPIC_SPEC): Likewise.
27159         (NO_FPIE1_AND_FPIC1_SPEC): Likewise.
27160         (FPIE1_OR_FPIC1_SPEC): Likewise.
27161         (NO_FPIE2_AND_FPIC2_SPEC): Likewise.
27162         (FPIE2_OR_FPIC2_SPEC): Likewise.
27163         (NO_FPIE_AND_FPIC_SPEC): Likewise.
27164         (FPIE_OR_FPIC_SPEC): Likewise.
27165         (LD_PIE_SPEC): Likewise.
27166         (LINK_PIE_SPEC): Handle -no-pie.  Use PIE_SPEC and LD_PIE_SPEC.
27167         * opts.c (finish_options): Update opts->x_flag_pie if it is -1.
27168         * config/darwin.h (PIE_SPEC): Renamed to ...
27169         (DARWIN_PIE_SPEC): This.
27170         (LINK_SPEC): Replace PIE_SPEC with DARWIN_PIE_SPEC.
27171         * config/darwin9.h (PIE_SPEC): Renamed to ...
27172         (DARWIN_PIE_SPEC): This.
27173         * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Use
27174         PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
27175         * config/openbsd.h (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and
27176         FPIE2_OR_FPIC2_SPEC.
27177         * config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
27178         * config/m68k/openbsd.h (ASM_SPEC): Likewise.
27179         * config/sol2.h (ASM_PIC_SPEC): Likewise.
27180         * config/arm/freebsd.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
27181         * config/arm/netbsd-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
27182         * config/arm/semi.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
27183         * config/cris/linux.h (CRIS_ASM_SUBTARGET_SPEC): Likewise.
27184         * config/m32r/m32r.h (ASM_SPEC): Likewise.
27185         * config/m68k/uclinux.h (DRIVER_SELF_SPECS): Likewise.
27186         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
27187         * config/rs6000/sysv4.h (ASM_SPEC): Likewise.
27188         * config/sparc/freebsd.h (ASM_SPEC): Likewise.
27189         * config/sparc/linux.h (ASM_SPEC): Likewise.
27190         * config/sparc/linux64.h (ASM_SPEC): Likewise.
27191         * config/sparc/netbsd-elf.h (ASM_SPEC): Likewise.
27192         * config/sparc/openbsd64.h (ASM_SPEC): Likewise.
27193         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
27194         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
27195         * config/sparc/sparc.h (ASM_SPEC): Likewise.
27196         * config/sparc/sysv4.h (ASM_SPEC): Likewise.
27197         * config/sparc/vxworks.h (ASM_SPEC): Likewise.
27198         * config/c6x/elf-common.h (ASM_SPEC): Use NO_FPIC2_SPEC,
27199         FPIC2_SPEC, FPIC1_SPEC and FPIC2_SPEC.
27200         * config/c6x/uclinux-elf.h (LINK_SPEC): Use FPIE_SPEC.
27201         * config/frv/frv.h (DRIVER_SELF_SPECS): Use FPIC_SPEC,
27202         NO_FPIC_SPEC and NO_FPIE1_AND_FPIC1_SPEC.
27203         (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and FPIE2_OR_FPIC2_SPEC.
27204         * config/m68k/m68k.h (ASM_PCREL_SPEC): Use FPIC_SPEC and NO_FPIC_SPEC.
27205         * config/mips/gnu-user.h (NO_SHARED_SPECS): Use NO_FPIE_AND_FPIC_SPEC.
27206         * config/mips/vxworks.h (SUBTARGET_ASM_SPEC): Use FPIC_SPEC.
27207         * config/rs6000/freebsd64.h (ASM_SPEC32): Likewise.
27208         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
27209         * config/vax/linux.h (ASM_SPEC): Likewise.
27210         * doc/install.texi: Document --enable-default-pie.
27211         * doc/invoke.texi: Document -no-pie.
27212         * config.in: Regenerated.
27213         * configure: Likewise.
27214
27215 2015-05-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
27216
27217         PR rtl-optimization/66168
27218         * loop-invariant.c (move_invariant_reg): Pass dest rather than reg to
27219         can_move_invariant_reg.
27220
27221 2015-05-27  John David Anglin  <danglin@gcc.gnu.org>
27222
27223         PR target/66148
27224         * config/pa/pa.c (pa_emit_move_sequence): Correct placement of
27225         REG_EQUAL note when doing insert.
27226
27227         * config/pa/pa.c (pa_print_operand): Use HOST_WIDE_INT_PRINT_DEC
27228         instead of "%d" for 'o' operand.
27229
27230 2015-05-27  Nathan Sidwell  <nathan@acm.org>
27231
27232         PR c++/66270
27233         * tree.c (build_pointer_type_for_mode): Canonical type does not
27234         inherit can_alias_all.
27235         (build_reference_type_for_mode): Likewise.
27236
27237 2015-05-27  Eric Botcazou  <ebotcazou@adacore.com>
27238
27239         * expr.h (array_at_struct_end_p): Move to...
27240         (array_ref_element_size): Likewise.
27241         (component_ref_field_offset): Likewise.
27242         * tree.h (array_ref_element_size): ...here.
27243         (array_at_struct_end_p): Likewise.
27244         (component_ref_field_offset): Likewise.
27245         * expr.c (array_ref_element_size): Move to...
27246         (array_ref_low_bound): Likewise.
27247         (array_at_struct_end_p): Likewise.
27248         (array_ref_up_bound): Likewise.
27249         (component_ref_field_offset): Likewise.
27250         * tree.c (array_ref_element_size): ...here.
27251         (array_ref_low_bound): Likewise.
27252         (array_ref_up_bound): Likewise.
27253         (array_at_struct_end_p): Likewise.
27254         (component_ref_field_offset): Likewise.
27255
27256 2015-05-27  Gregor Richards  <gregor.richards@uwaterloo.ca>
27257             Szabolcs Nagy  <szabolcs.nagy@arm.com>
27258
27259         * config/aarch64/aarch64-linux.h (MUSL_DYNAMIC_LINKER): Define.
27260
27261 2015-05-27  Jason Merrill  <jason@redhat.com>
27262
27263         PR bootstrap/66304
27264         * configure.ac: Use ACX_PROG_CXX_WARNING_OPTS,
27265         ACX_PROG_CXX_WARNING_ALMOST_PEDANTIC, and
27266         ACX_PROG_CXX_WARNINGS_ARE_ERRORS.
27267
27268 2015-05-22  Aditya Kumar  <hiraditya@msn.com>
27269
27270         * auto-profile.c (afdo_calculate_branch_prob): Break once has_sample
27271         is true.
27272
27273         * statistics.c (statistics_fini_pass): Print pass name.
27274
27275 2015-05-27  Richard Biener  <rguenther@suse.de>
27276
27277         PR tree-optimization/66272
27278         Revert parts of
27279         2014-08-15  Richard Biener  <rguenther@suse.de>
27280
27281         PR tree-optimization/62031
27282         * tree-data-ref.c (dr_analyze_indices): Do not set
27283         DR_UNCONSTRAINED_BASE.
27284         (dr_may_alias_p): All indirect accesses have to go the
27285         formerly DR_UNCONSTRAINED_BASE path.
27286         * tree-data-ref.h (struct indices): Remove
27287         unconstrained_base member.
27288         (DR_UNCONSTRAINED_BASE): Remove.
27289
27290 2015-05-27  Aldy Hernandez  <aldyh@redhat.com>
27291
27292         * dwarf2out.c: Remove block_map.
27293         (gen_call_site_die): Replace block_map use with BLOCK_DIE.
27294         (gen_lexical_block_die): Same.
27295         (dwarf2out_function_decl): Remove block_map use.
27296         (dwarf2out_c_finalize): Same.
27297         * tree-core.h (struct tree_block): Add die field.
27298         * tree.h (BLOCK_DIE): New.
27299
27300 2015-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27301
27302         PR target/65358
27303         * expr.c (memory_load_overlap): New function.
27304         (emit_push_insn): When pushing partial args to the stack would
27305         clobber the register part load the overlapping part into a pseudo
27306         and put it into the hard reg after pushing.  Change return type
27307         to bool.  Add bool argument.
27308         * expr.h (emit_push_insn): Change return type to bool.
27309         Add bool argument.
27310         * calls.c (expand_call): Cancel sibcall optimization when encountering
27311         partial argument on targets with ARGS_GROW_DOWNWARD and
27312         !STACK_GROWS_DOWNWARD.
27313         (emit_library_call_value_1): Update callsite of emit_push_insn.
27314         (store_one_arg): Likewise.
27315
27316 2015-05-27  Gregor Richards  <gregor.richards@uwaterloo.ca>
27317
27318         * config/arm/linux-eabi.h (MUSL_DYNAMIC_LINKER): Define.
27319
27320 2015-05-27  Martin Liska  <mliska@suse.cz>
27321
27322         * Makefile.in: Add additional dependencies related to memory report
27323         enhancement.
27324         * alloc-pool.c (allocate_pool_descriptor): Use new ctor.
27325         * bitmap.c (struct bitmap_descriptor_d): Remove.
27326         (struct loc): Likewise.
27327         (struct bitmap_desc_hasher): Likewise.
27328         (bitmap_desc_hasher::hash): Likewise.
27329         (bitmap_desc_hasher::equal): Likewise.
27330         (get_bitmap_descriptor): Likewise.
27331         (bitmap_register): User new memory descriptor API.
27332         (register_overhead): Likewise.
27333         (bitmap_find_bit): Register nsearches and search_iter statistics.
27334         (struct bitmap_output_info): Remove.
27335         (print_statistics): Likewise.
27336         (dump_bitmap_statistics): Use new memory descriptor.
27337         * bitmap.h (struct bitmap_usage): New class.
27338         * genmatch.c: Extend header file inclusion.
27339         * genpreds.c: Likewise.
27340         * ggc-common.c (struct ggc_usage): New class.
27341         (struct ggc_loc_desc_hasher): Remove.
27342         (ggc_loc_desc_hasher::hash): Likewise.
27343         (ggc_loc_desc_hasher::equal): Likewise.
27344         (struct ggc_ptr_hash_entry): Likewise.
27345         (struct ptr_hash_hasher): Likewise.
27346         (ptr_hash_hasher::hash): Likewise.
27347         (ptr_hash_hasher::equal): Likewise.
27348         (make_loc_descriptor): Likewise.
27349         (ggc_prune_ptr): Likewise.
27350         (dump_ggc_loc_statistics): Use new memory descriptor.
27351         (ggc_record_overhead): Likewise.
27352         (ggc_free_overhead): Likewise.
27353         (final_cmp_statistic): Remove.
27354         (cmp_statistic): Likewise.
27355         (ggc_add_statistics): Liekwise.
27356         (ggc_prune_overhead_list): Likewise.
27357         * hash-map-traits.h: New file.
27358         * hash-map.h (struct default_hashmap_traits): Move the traits to a
27359         separate header file.
27360         * hash-set.h: Pass memory statistics info to ctor.
27361         * hash-table.c (void dump_hash_table_loc_statistics): New function.
27362         * hash-table.h (hash_table::hash_table): Add new ctor arguments.
27363         (hash_table::~hash_table): Register memory release operation.
27364         (hash_table::alloc_entries): Handle memory allocation operation.
27365         (hash_table::expand): Likewise.
27366         * inchash.c (iterative_hash_hashval_t): Move implementation to header
27367         file.
27368         (iterative_hash_host_wide_int): Likewise.
27369         * inchash.h (class hash): Likewise.
27370         * mem-stats-traits.h: New file.
27371         * mem-stats.h: New file.
27372         (mem_location): Add new class.
27373         (mem_usage): Likewise.
27374         (mem_alloc_description): Likewise.
27375         * sese.c: Add new header file inclusision.
27376         * toplev.c (dump_memory_report): Add report for hash_table, hash_map
27377         and hash_set.
27378         * tree-sra.c: Add new header file inclusision.
27379         * vec.c (struct vec_descriptor): Remove.
27380         (hash_descriptor): Likewise.
27381         (struct vec_usage): Likewise.
27382         (struct ptr_hash_entry): Likewise.
27383         (hash_ptr): Likewise.
27384         (eq_ptr): Likewise.
27385         (vec_prefix::register_overhead): Use new memory descriptor API.
27386         (vec_prefix::release_overhead): Likewise.
27387         (add_statistics): Remove.
27388         (dump_vec_loc_statistics): Use new memory descriptor API.
27389         * vec.h (struct vec_prefix): Likewise.
27390         (va_heap::reserve): Likewise.
27391         (va_heap::release): Likewise.
27392         * emit-rtl.c (gen_raw_REG): Fix passing MEM_STAT.
27393
27394 2015-05-27  Richard Biener  <rguenther@suse.de>
27395
27396         * tree-vect-stmts.c (vectorizable_load): Initialize slp_perm
27397         earlier and remove ??? comment.
27398         (vect_analyze_stmt): If we are analyzing a pure SLP stmt
27399         and got called from loop analysis bail out.  Always pass the SLP
27400         node to the vectorizable_* functions.
27401         * tree-vect-loop.c (vect_analyze_loop_operations): Remove
27402         the premature SLP check here.
27403         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Dump hybrid
27404         detected SLP stmts.
27405         (vect_detect_hybrid_slp_1): Likewise.
27406
27407 2015-05-26  Jeff Law  <law@redhat.com>
27408
27409         * combine.c (find_split_point): Verify that the shift count is a
27410         constant when choosing (plus (ashift ...)) as a split point.
27411
27412         * tree-ssa-threadupdate.c: Replace 8 space sequences with tabs.
27413         No functional changes.
27414
27415 2015-05-26  Jan Hubicka  <hubicka@ucw.cz>
27416
27417         * ipa-polymorphic-call.c
27418         (ipa_polymorphic_call_context::get_dynamic_type): Short circuit the
27419         case when call target is already known.
27420
27421 2015-05-26  Oleg Endo  <olegendo@gcc.gnu.org>
27422
27423         PR target/65979
27424         * config/sh/sh.md (tstsi_t peephole2): Use gen_rtx_SET and
27425         take into account the case that operands[1] and operands[2]
27426         are the same register.
27427
27428 2015-05-26  Michael Matz  <matz@suse.de>
27429
27430         PR middle-end/66251
27431
27432         * tree-vect-stmts.c (vect_model_store_cost): Handled strided group
27433         stores.
27434         (vect_create_vectorized_demotion_stmts): Always set
27435         STMT_VINFO_VEC_STMT, also with SLP.
27436         (vectorizable_store): Handle strided group stores.
27437
27438 2015-05-26  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
27439
27440         PR target/66049
27441         * config/aarch64/aarch64.md
27442         (*adds_shift_imm_<mode>):  New pattern.
27443         (*subs_shift_imm_<mode>):  Likewise.
27444         (*adds_<optab><ALLX:mode>_shift_<GPI:mode>):  Likewise.
27445         (*subs_<optab><ALLX:mode>_shift_<GPI:mode>): Likewise.
27446         (*add_uxt<mode>_shift2): Likewise.
27447         (*add_uxtsi_shift2_uxtw): Likewise.
27448         (*sub_uxt<mode>_shift2): Likewise.
27449         (*sub_uxtsi_shift2_uxtw): Likewise.
27450
27451 2015-05-26  David Edelsohn  <dje.gcc@gmail.com>
27452
27453         * config/rs6000/constraints.md (Y, U): Use match_test.
27454
27455 2015-05-26  Christian Bruel  <christian.bruel@st.com>
27456
27457         PR target/52144
27458         * config/arm/arm.c (arm_option_check_internal)
27459         (arm_option_params_internal): Check opts->target_flags to set macros.
27460         (TREE_TARGET_ARM, TREE_TARGET_THUMB)
27461         (TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Replace with...
27462         (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
27463         (builtin_define): Replaced with def_or_undef_macro.
27464         * config/arm/arm.h (TREE_TARGET_ARM, TREE_TARGET_THUMB)
27465         TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Redefine with...
27466         (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
27467         (TARGET_32BIT_P, TARGET_ARM_QBIT_P, TARGET_ARM_SAT_P, TARGET_IDIV_P)
27468         (TARGET_HAVE_LDREX_P, TARGET_HAVE_LDREXBH_P, TARGET_HAVE_LDREXD_P)
27469         (TARGET_ARM_FEATURE_LDREX_P)
27470         (TARGET_DSP_MULTIPLY_P, TARGET_INT_SIMD_P): New macros.
27471         * config/arm/arm-c.c (def_or_undef_macro): New function.
27472         (arm_cpu_cpp_builtins): Use def_or_undef_macro for macros definition.
27473
27474 2015-05-26  Christian Bruel  <christian.bruel@st.com>
27475
27476         * c-common.h (builtin_define_with_int_value)
27477         (builtin_define_type_sizeof): Declare.
27478         * c-cppbuiltin.c (builtin_define_with_int_value)
27479         (builtin_define_type_sizeof): Externalize.
27480         (builtin_define_std): Cleanup declaration.
27481         * config/arm/arm-protos.h (arm_cpu_cpp_builtins): Declare.
27482         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Move macro defines into...
27483         * config/arm/arm-c.c (arm_cpu_cpp_builtins): New function.
27484         (builtin_define, builtin_assert): New macros.
27485
27486 2015-05-26  Richard Biener  <rguenther@suse.de>
27487
27488         PR tree-optimization/66142
27489         * tree-ssa-sccvn.c (vn_reference_lookup_3): Manually compare
27490         MEM_REFs for the same base address.
27491
27492 2015-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
27493
27494         PR ipa/66181
27495         * tree.c (verify_type_variant): Do not check TYPE_NO_FORCE_BLK.
27496
27497 2015-05-26  Jason Merrill  <jason@redhat.com>
27498
27499         * configure.ac: Set CXXFLAGS for ISL test.
27500         * configure: Regenerate.
27501
27502         * configure.ac: Use C++ for all tests.  Use AC_CHECK_DECLS for
27503         strstr and basename.
27504         * configure: Regenerate.
27505
27506 2015-05-26  Richard Biener  <rguenther@suse.de>
27507
27508         * fold-const.c (fold_binary_loc): Move X % -Y -> X % Y and
27509         X % C -> X & (C - 1) for C being a power-of two to ...
27510         * match.pd: ... patterns.
27511
27512 2015-05-26  Marc Glisse  <marc.glisse@inria.fr>
27513
27514         * match.pd (swapped_tcc_comparison): New operator list.
27515         (-A CMP -B): New simplification.
27516         * fold-const.c (fold_comparison): Remove corresponding code.
27517
27518 2015-05-26  Richard Sandiford  <richard.sandiford@arm.com>
27519
27520         * caller-save.c (init_caller_save): Base temporary register numbers
27521         on LAST_VIRTUAL_REGISTER + 1 rather than FIRST_PSEUDO_REGISTER.
27522         * cfgloopanal.c (init_set_costs): Likewise.
27523         * dojump.c (prefer_and_bit_test): Likewise.
27524         * expr.c (init_expr_target): Likewise.
27525         * ira.c (setup_prohibited_mode_move_regs): Likewise.
27526         * lower-subreg.c (init_lower_subreg): Likewise.
27527         * postreload.c (reload_cse_regs_1): Likewise.
27528
27529 2015-05-26  Richard Sandiford  <richard.sandiford@arm.com>
27530
27531         * gensupport.h (compute_test_codes): Declare.
27532         * gensupport.c (compute_predicate_codes): Rename to...
27533         (compute_test_codes): ...this.  Generalize error message.
27534         (process_define_predicate): Update accordingly.
27535         * genpreds.c (compute_maybe_allows): Delete.
27536         (add_constraint): Use compute_test_codes to determine whether
27537         something can accept a SUBREG, REG or MEM.
27538
27539 2015-05-26  Torvald Riegel  <triegel@redhat.com>
27540
27541         * doc/extend.texi (__atomic Builtins): Use 'memory order' instead of
27542         'memory model' to align with C++11; fix description of memory orders;
27543         fix a few typos.
27544
27545 2015-05-26  Richard Biener  <rguenther@suse.de>
27546
27547         * tree-vect-loop.c (vect_update_vf_for_slp): Split out from ...
27548         (vect_analyze_loop_operations): ... here.  Remove slp parameter,
27549         detect whether we apply SLP.  Remove call to
27550         vect_update_slp_costs_according_to_vf.
27551         (vect_analyze_loop_2): Call vect_update_vf_for_slp and
27552         vect_update_slp_costs_according_to_vf from here.  Dispatch
27553         to vect_slp_analyze_operations to analyze SLP stmts.
27554         * tree-vect-slp.c (vect_slp_analyze_node_operations): Drop
27555         unused bb_vec_info parameter, adjust assert.
27556         (vect_slp_analyze_operations): Pass in the slp instance tree
27557         instead of bb_vec_info.
27558         (vect_slp_analyze_bb_1): Adjust call to vect_slp_analyze_operations.
27559         * tree-vectorizer.h (vect_slp_analyze_operations): Declare.
27560
27561 2015-05-25  Alexander Monakov  <amonakov@ispras.ru>
27562
27563         * config/i386/i386.h (enum reg_class): Move CLOBBERED_REGS prior to
27564         Q_REGS.  Expand comment.
27565         (REG_CLASS_NAMES): Ditto.
27566         (REG_CLASS_CONTENTS): Ditto.
27567
27568 2015-05-25  Uros Bizjak  <ubizjak@gmail.com>
27569
27570         PR target/66274
27571         * config/i386/i386.c (print_reg): Only print "r" for TARGET_64BIT
27572         when LEGACY_INT_REGNO_P is processed.
27573
27574 2015-05-25  Alexander Monakov  <amonakov@ispras.ru>
27575
27576         * config/i386/i386.c (ix86_function_ok_for_sibcall): Check flag_plt.
27577
27578 2015-05-25  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
27579
27580         * config/avr/avr.c (avr_out_load_psi_reg_no_disp_tiny): Restore base
27581         register if not marked dead/unused, before return.
27582
27583 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
27584
27585         PR lto/66180
27586         * ipa-devirt.c (type_with_linkage): Check that TYPE_STUB_DECL
27587         is set; check for assembler name at LTO time.
27588         (type_in_anonymous_namespace): Remove hacks, check that all
27589         anonymous types are called "<anon>"
27590         (odr_type_p): Simplify; add check for "<anon>"
27591         (odr_subtypes_equivalent): Add odr_type_p check.
27592         * tree.c (need_assembler_name_p): Even anonymous namespace needs
27593         assembler name.
27594
27595 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
27596
27597         * ipa-utils.h (method_class_type): Remove.
27598         * cgraphunit.c (walk_polymorphic_call_targets): Use
27599         TYPE_METHOD_BASETYPE.
27600         * ipa-devirt.c (type_in_anonymous_namespace_p): Check that it is called
27601         on main variants only.
27602         (method_class_type): Remove.
27603         (update_type_inheritance_graph): Use TYPE_METHOD_BASETYPE.
27604         (build_type_inheritance_graph): Likewise.
27605         * ipa-icf.c (sem_function::equals_wpa): Likewise.
27606         * pa-polymorphic-call.c (decl_maybe_in_construction_p,
27607         check_stmt_for_type_change): Use TYPE_METHOD_BASETYPE.
27608
27609 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
27610
27611         * tree.c (prototype_p, virtual_method_call_p, obj_type_ref_class,
27612         is_typedef_decl, typedef_variant_p): Constify.
27613         * tree.h (prototype_p, virtual_method_call_p, obj_type_ref_class,
27614         is_typedef_decl, typedef_variant_p): Constify.
27615
27616 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
27617
27618         * defaults.h (gen_tablejump): New function.
27619         (HAVE_tablejump): Add default value.
27620         * expr.c: Adjust.
27621         * stmt.c: Likewise.
27622
27623 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
27624
27625         * defaults.h (gen_store_multiple): New function.
27626         (HAVE_store_multiple): Add default value.
27627         * expr.c (move_block_from_reg): Adjust.
27628
27629 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
27630
27631         * defaults.h (gen_load_multiple): New function.
27632         (HAVE_load_multiple): Add default value.
27633         * expr.c (move_block_to_reg): Adjust.
27634
27635 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
27636
27637         * defaults.h (gen_mem_signal_fence): New function.
27638         (HAVE_mem_signal_fence): Add default value.
27639         * optabs.c: Adjust.
27640
27641 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
27642
27643         * defaults.h (gen_memory_barrier): New function.
27644         (HAVE_memory_barrier): Add default value.
27645         * optabs.c: Adjust.
27646
27647 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
27648
27649         * defaults.h (gen_mem_thread_fence): New function.
27650         (HAVE_mem_thread_fence): Add default definition.
27651         * optabs.c: Adjust.
27652
27653 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
27654
27655         * combine.c (find_split_point): Check the value of HAVE_lo_sum
27656         instead of if it is defined.
27657         (combine_simplify_rtx): Likewise.
27658         * lra-constraints.c (process_address_1): Likewise.
27659         * config/darwin.c: Adjust.
27660         * genconfig.c (main): Always define HAVE_lo_sum.
27661
27662 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
27663
27664         * genmatch.c (parser::parse_operation): Reject expanding
27665         operator-list inside 'for'.
27666
27667 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
27668
27669         * genmatch.c (parser::parse_for): Reject iterator if used as
27670         operator-list.
27671
27672 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
27673
27674         * genmatch.c (parser::parse_operator_list): Check for CPP_CLOSE_PAREN
27675         after end of id-list.
27676
27677 2015-05-22  Jan Hubicka  <hubicka@ucw.cz>
27678
27679         * tree.c (gimple_canonical_types_compatible_p): Sanity check that
27680         we do not try to compute canonical type for type that does not need
27681         alias set.
27682         (verify_type): Drop FIXME for METHOD_TYPE, update FIXME for
27683         FUNCITON_TYPE.
27684         * tree.h (type_with_alias_set_p): New.
27685
27686 2015-05-22  Jan Hubicka  <hubicka@ucw.cz>
27687
27688         * tree.c (gimple_canonical_types_compatible_p):  Do not compare
27689         function attributes.
27690         (verify_type): Remove METHOD_TYPE FIXME; update FUNCTION_TYPE.
27691
27692 2015-05-22  Jim Wilson  <jim.wilson@linaro.org>
27693
27694         * Makefile.in (check_gcc_parallelize): Delete.
27695         (lang_checks_parallelized): Update comment.
27696
27697 2015-05-22  Mikhail Maltsev  <maltsevm@gmail.com>
27698
27699         PR rtl-optimization/66237
27700         * bb-reorder.c (fix_crossing_conditional_branches): Fix wrong
27701         location of an "as_a" cast.
27702
27703 2015-05-22  Jeff Law  <law@redhat.com>
27704
27705         * config/pa/pa.md (non-canonical shift-add insns): Remove.
27706         (peepholes with non-canonical RTL sources): Remove.
27707         (peepholes for indexed stores of FP regs in integer modes): Match and
27708         generate canonical RTL.
27709
27710 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
27711
27712         PR tree-optimization/63387
27713         * match.pd ((X /[ex] A) * A -> X): Remove unnecessary condition.
27714         ((x ord x) & (y ord y) -> (x ord y),
27715         (x ord x) & (x ord y) -> (x ord y)): New simplifications.
27716         * fold-const.c (tree_unary_nonnegative_warnv_p) <ABS_EXPR>: Handle
27717         vectors like scalars.
27718
27719 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
27720
27721         * convert.c (convert_to_integer, convert_to_vector): Include the
27722         types in the error message.
27723
27724 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
27725
27726         * match.pd ((x | y) & ~x -> y & ~x, (x & y) | ~x -> y | ~x): New
27727         simplifications.
27728
27729 2015-05-22  Jeff Law  <law@redhat.com>
27730
27731         * config/pa/pa.md (integer_indexed_store splitters): Use
27732         mem_shadd_operand.  Use ASHIFT rather than MULT in the resulting
27733         insns -- adjusting the constant 2nd operand accordingly.
27734
27735         * combine.c (try_combine): Canonicalize (plus (mult X pow2) Y) into
27736         (plus (ashift X log2) Y) if it is a split point.
27737
27738         * config/pa/pa.c (mem_shadd_or_shadd_rtx_p): New function factoredx
27739         out of hppa_legitimize_address to handle both forms of a multiply
27740         by 2, 4 or 8.
27741         (hppa_legitimize_address): Use mem_shadd_or_shadd_rtx_p.
27742         Always generate the ASHIFT variant as the result is not directly
27743         used in a MEM.  Update comments and refactor slightly to improve
27744         readability.
27745
27746 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27747
27748         PR target/65491
27749         * config/aarch64/aarch64.c (aarch64_short_vector_p): Move above
27750         aarch64_composite_type_p.  Remove check for aarch64_composite_type_p.
27751         (aarch64_composite_type_p): Return false if given type and mode are
27752         for a short vector.
27753
27754 2015-05-22  Richard Biener  <rguenther@suse.de>
27755
27756         * tree-vectorizer.h (struct _slp_oprnd_info): Add second_pattern
27757         member.
27758         * tree-vect-loop.c (vect_analyze_loop_operations): Look at
27759         patterns when determining whether SLP is pure.
27760         (vect_is_slp_reduction): Remove check for pattern stmts.
27761         (vect_is_simple_reduction_1): Remove dead code.
27762         * tree-vect-slp.c (vect_create_oprnd_info): Initialize second_pattern.
27763         (vect_get_and_check_slp_defs): Pass in the stmt number.
27764         Allow the first def in a reduction to be not a pattern stmt when
27765         the rest of the stmts def are patterns.
27766         (vect_build_slp_tree_1): Allow tcc_expression codes like
27767         SAD_EXPR and DOT_PROD_EXPR.
27768         (vect_build_slp_tree): Adjust.
27769         (vect_analyze_slp): Refactor and move BB vect error message ...
27770         (vect_slp_analyze_bb_1): ... here.
27771
27772 2015-05-22  Aldy Hernandez  <aldyh@redhat.com>
27773
27774         * tree-switch-conversion.c (build_one_array): Set DECL_IGNORED_P
27775         for CSWTCH temporary.
27776
27777 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27778
27779         * config/arm/arm.c (arm_new_rtx_costs): Handle UNSPEC_VOLATILE.
27780         (arm_unspec_cost): Allow UNSPEC_VOLATILE.  Do not recurse inside
27781         unknown unspecs.
27782
27783 2015-05-22  Richard Biener  <rguenther@suse.de>
27784
27785         PR tree-optimization/66251
27786         * tree-vect-stmts.c (vectorizable_conversion): Properly
27787         set STMT_VINFO_VEC_STMT even for the SLP case.
27788
27789 2015-05-22  Marek Polacek  <polacek@redhat.com>
27790
27791         * doc/extend.texi: Use @pxref instead of @xref.
27792
27793 2015-05-22  hiraditya  <hiraditya@msn.com>
27794
27795         * gimple.h (gimple_expr_type): Refactor to make it concise. Remove
27796         redundant if.
27797
27798 2015-05-22  Richard Biener  <rguenther@suse.de>
27799
27800         PR tree-optimization/65701
27801         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
27802         Move peeling cost models into one place.  Peel for alignment
27803         for single loads only if an aligned load is cheaper than
27804         an unaligned load.
27805
27806 2015-05-22  Marek Polacek  <polacek@redhat.com>
27807
27808         PR c/47043
27809         * doc/extend.texi (Enumerator Attributes): New section.
27810         Document syntax of enumerator attributes.
27811
27812 2015-05-22  Richard Biener  <rguenther@suse.de>
27813
27814         * tree-vect-loop.c (get_reduction_op): New function.
27815         (vect_model_reduction_cost): Use it, add reduc_index parameter.
27816         Make ready for BB reductions.
27817         (vect_create_epilog_for_reduction): Use get_reduction_op.
27818         (vectorizable_reduction): Init reduc_index to a valid value.
27819         Adjust vect_model_reduction_cost call.
27820         * tree-vect-slp.c (vect_get_constant_vectors): Use the proper
27821         operand for reduction defaults.  Add SAD_EXPR support.
27822         Assert we have a neutral op for SLP reductions.
27823         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): When
27824         walking pattern stmt ops only recurse to SSA names.
27825
27826 2015-05-22  Richard Biener  <rguenther@suse.de>
27827
27828         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Replace
27829         assert with guard, remove check on detected reduction.
27830         (vect_recog_sad_pattern): Likewise.
27831         (vect_recog_widen_sum_pattern): Likewise.
27832
27833 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27834
27835         * config/aarch64/arm_neon.h (vaeseq_u8): Add __extension__ and
27836         __always_inline__ attribute.
27837         (vaesdq_u8): Likewise.
27838         (vaesmcq_u8): Likewise.
27839         (vaesimcq_u8): Likewise.
27840         (vsha1cq_u32): Likewise.
27841         (vsha1mq_u32): Likewise.
27842         (vsha1pq_u32): Likewise.
27843         (vsha1h_u32): Likewise.
27844         (vsha1su0q_u32): Likewise.
27845         (vsha1su1q_u32): Likewise.
27846         (vsha256hq_u32): Likewise.
27847         (vsha256h2q_u32): Likewise.
27848         (vsha256su0q_u32): Likewise.
27849         (vsha256su1q_u32): Likewise.
27850         (vmull_p64): Likewise.
27851         (vmull_high_p64): Likewise.
27852
27853 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
27854
27855         * final.c (final_scan_insn): Don't check HAVE_peephole with the
27856         preprocessor.
27857         * output.h: Likewise.
27858         * genconfig.c (main): Alwways define HAVE_peephole.
27859         * genpeep.c: Don't emit checks of HAVE_peephole.
27860
27861 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
27862
27863         * combine.c, expmed.c, expr.c, optabs.c optabs.h, toplev.c: DOn't
27864         check HAVE_conditional_move with the preprocessor.
27865
27866 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
27867
27868         * genconfig.c (main): Always define HAVE_conditional_move.
27869         * combine.c, expmed.c, expr.c, ifcvt.c, optabs.c, optabs.h,
27870         toplev.c, tree-ssa-phiopt.c: Don't check if HAVE_conditional_move
27871         is defined.
27872
27873 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
27874
27875         * combine.c, df-problems.c, df-scan.c, emit-rtl.c, reginfo.c,
27876         reload.c, rtlanal.c: Remove comparison of ARG_FRAME_POINTER_REGNUM
27877         and FRAME_POINTER_REGNUM with the preprocessor.
27878
27879 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
27880
27881         * defaults.h: Add default for STACK_PUSH_CODE.
27882         * expr.c: Don't redefine STACK_PUSH_CODE.
27883         * recog.c: Likewise.
27884
27885 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
27886
27887         * builtins.c, dwarf2cfi.c, explow.c, expr.c, recog.c,
27888         sched-deps.c: Use if instead of preprocessor checks with
27889         STACK_GROWS_DOWNWARD.
27890
27891 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
27892
27893         * *.c: Check the value of STACK_GROWS_DOWNWARD rather than if it
27894         is defined.
27895         * config/**/*.h: Define STACK_GROWS_DOWNWARD to an integer.
27896         * defaults.h: Provide default for STACK_GROWS_DOWNWARD.
27897         * doc/tm.texi.in: Update references to STACK_GROWS_DOWNWARD.
27898         * doc/tm.texi: Regenerate.
27899
27900 2015-05-21  H.J. Lu  <hongjiu.lu@intel.com>
27901
27902         PR target/66232
27903         * config/i386/constraints.md (Bg): New constraint for GOT memory
27904         operand.
27905         * config/i386/i386.md (*call_got_x32): New pattern.
27906         (*call_value_got_x32): Likewise.
27907         * config/i386/predicates.md (GOT_memory_operand): New predicate.
27908
27909 2015-05-21  Jakub Jelinek  <jakub@redhat.com>
27910
27911         PR tree-optimization/66233
27912         * match.pd (ocvt (icvt@1 @0)): Don't handle vector types.
27913         Simplify.
27914
27915 2015-05-21  Jeff Law  <law@redhat.com>
27916
27917         * config/pa/pa.md (add-with-constant splitter): Use ASHIFT rather
27918         than MULT for shadd sequences.
27919
27920 2015-05-08  Jan Hubicka  <hubicka@ucw.cz>
27921
27922         * alias.c (alias_stats): New static var.
27923         (alias_sets_conflict_p, alias_sets_must_conflict_p): Update stats.
27924         (dump_alias_stats_in_alias_c): New function.
27925         * alias.h (dump_alias_stats_in_alias_c): Declare.
27926         * tree-ssa-alias.c (dump_alias_stats): Call it.
27927
27928 2015-05-08  Michael Matz  <matz@suse.de>
27929
27930         * tree-vectorizer.h (struct _stmt_vec_info): Rename stride_load_p
27931         to strided_p.
27932         (STMT_VINFO_STRIDE_LOAD_P): Rename to ...
27933         (STMT_VINFO_STRIDED_P): ... this.
27934         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust.
27935         (vect_verify_datarefs_alignment): Likewise.
27936         (vect_enhance_data_refs_alignment): Likewise.
27937         (vect_analyze_data_ref_access): Likewise.
27938         (vect_analyze_data_refs): Accept strided stores.
27939         * tree-vect-stmts.c (vect_model_store_cost): Count strided stores.
27940         (vect_model_load_cost): Adjust for macro rename.
27941         (vectorizable_mask_load_store): Likewise.
27942         (vectorizable_load): Likewise.
27943         (vectorizable_store): Open code strided stores.
27944
27945 2015-05-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27946
27947         * doc/sourcebuild.texi (7.2.3.9 Other hardware attributes):
27948         Document sqrt_insn.
27949
27950 2015-05-21  Richard Biener  <rguenther@suse.de>
27951
27952         PR c++/66211
27953         * match.pd: Guard pattern optimzing (int)(float)int
27954         conversions to apply only on GIMPLE.
27955
27956 2015-05-21  Jeff Law  <law@redhat.com>
27957
27958         * combine.c (find_split_point): Handle ASHIFT like MULT to encourage
27959         multiply-accumulate/shift-add insn generation.
27960
27961 2015-05-21  Oleg Endo  <olegendo@gcc.gnu.org>
27962
27963         PR target/54236
27964         * config/sh/sh.md (*round_int_even): Reject pattern if operands[0] and
27965         operands[1] are the same.
27966
27967 2015-05-21  Ilya Enkovich  <enkovich.gnu@gmail.com>
27968
27969         PR middle-end/66221
27970         * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Use
27971         build_distinct_type_copy to copy bounds.
27972
27973 2015-05-21  Thomas Schwinge  <thomas@codesourcery.com>
27974
27975         * genrecog.c (MAX_DEPTH, MIN_NUM_STATEMENTS, MAX_NUM_STATEMENTS):
27976         Change to unsigned int.
27977
27978 2015-05-20  Jeff Law  <law@redhat.com>
27979
27980         * config/pa/pa.c (pa_print_operand): New 'o' output modifier.
27981         (pa_mem_shadd_constant_p): Renamed from pa_shadd_constant_p.
27982         (pa_shadd_constant_p): Allow constants for shadd insns rather
27983         than valid scaling constants for memory addresses.
27984         * config/pa/pa-protos.h (pa_mem_shadd_constant_p): Add prototype.
27985         * config/pa/predicates.md (mem_shadd_operand): New predicate.
27986         * config/pa/pa.md (shift-add insns using MULT): Use mem_shadd_operand.
27987         (shift-add insns using ASHIFT): New patterns.
27988
27989 2015-05-20  Mikhail Maltsev  <maltsevm@gmail.com>
27990
27991         * bb-reorder.c (set_edge_can_fallthru_flag): Use rtx_jump_insn where
27992         feasible.
27993         (fix_up_fall_thru_edges): Likewise.
27994         (fix_crossing_conditional_branches): Likewise. Promote jump targets
27995         from to rtx_insn to rtx_code_label where feasible.
27996         * bt-load.c (move_btr_def): Remove as-a cast of the value returned by
27997         gen_move_insn (returned type changed to rtx_insn).
27998         * builtins.c (expand_errno_check): Fix arguments of
27999         do_compare_rtx_and_jump (now expects rtx_code_label).
28000         (expand_builtin_acc_on_device): Likewise.
28001         * cfgcleanup.c (try_simplify_condjump): Add cast when calling
28002         invert_jump (now exprects rtx_jump_insn).
28003         * cfgexpand.c (label_rtx_for_bb): Promote return type to rtx_code_label.
28004         (construct_init_block): Use rtx_code_label.
28005         * cfgrtl.c (block_label): Promote return type to rtx_code_label.
28006         (try_redirect_by_replacing_jump): Use cast to rtx_jump_insn when
28007         calling redirect_jump.
28008         (patch_jump_insn): Likewise.
28009         (redirect_branch_edge): Likewise.
28010         (force_nonfallthru_and_redirect): Likewise.
28011         (fixup_reorder_chain): Explicitly use rtx_jump_insn instead of rtx_insn
28012         when suitable.
28013         (rtl_lv_add_condition_to_bb): Update call of do_compare_rtx_and_jump.
28014         * cfgrtl.h: Promote return type of block_label to rtx_code_label.
28015         * config/bfin/bfin.c (hwloop_optimize): Fix call of emit_label_before.
28016         * config/i386/i386.c (ix86_emit_cmove): Explicitly use rtx_code_label
28017         to store the value retured by gen_label_rtx.
28018         * config/mips/mips.c (mips16_split_long_branches): Promote rtx_insn to
28019         rtx_jump_insn.
28020         * config/sh/sh.c (gen_far_branch): Likewise. Fix call of invert_jump.
28021         (split_branches): Fix calls of redirect_jump.
28022         * dojump.c (jumpifnot): Promote argument type from rtx to
28023         rtx_code_label.
28024         (jumpifnot_1): Likewise.
28025         (jumpif): Likewise.
28026         (jumpif_1): Likewise.
28027         (do_jump_1): Likewise.
28028         (do_jump): Likewise. Use rtx_code_label when feasible.
28029         (do_jump_by_parts_greater_rtx): Likewise.
28030         (do_jump_by_parts_zero_rtx): Likewise.
28031         (do_jump_by_parts_equality_rtx): Likewise.
28032         (do_compare_rtx_and_jump): Likewise.
28033         * dojump.h: Update function prototypes.
28034         * dse.c (emit_inc_dec_insn_before): Remove case (gen_move_insn now
28035         returns rtx_insn).
28036         * emit-rtl.c (emit_jump_insn_before_noloc): Promote return type to
28037         rtx_jump_insn.
28038         (emit_label_before): Likewise.
28039         (emit_jump_insn_after_noloc): Likewise.
28040         (emit_jump_insn_after_setloc): Likewise.
28041         (emit_jump_insn_after): Likewise
28042         (emit_jump_insn_before_setloc): Likewise.
28043         (emit_jump_insn_before): Likewise.
28044         (emit_label_before): Promote return type to rtx_code_label.
28045         (emit_label): Likewise.
28046         * except.c (sjlj_emit_dispatch_table): Use jump_target_rtx.
28047         * explow.c (emit_stack_save): Use gen_move_insn_uncast instead of
28048         gen_move_insn.
28049         (emit_stack_restore): Likewise.
28050         * expmed.c (emit_store_flag_force): Fix calls of do_compare_rtx_and_jump.
28051         (do_cmp_and_jump): Likewise.
28052         * expr.c (expand_expr_real_2): Likewise. Promote some local variables
28053         from rtx to rtx_code_label.
28054         (gen_move_insn_uncast): New function.
28055         * expr.h: Update return type of gen_move_insn (promote to rtx_insn).
28056         * function.c (convert_jumps_to_returns): Fix call of redirect_jump.
28057         * gcse.c (pre_insert_copy_insn): Use rtx_insn instead of rtx.
28058         * ifcvt.c (dead_or_predicable): Use rtx_jump_insn when calling
28059         invert_jump_1 and redirect_jump_1.
28060         * internal-fn.c (expand_arith_overflow_result_store): Fix call of
28061         do_compare_rtx_and_jump.
28062         (expand_addsub_overflow): Likewise.
28063         (expand_neg_overflow): Likewise.
28064         (expand_mul_overflow): Likewise.
28065         * ira.c (split_live_ranges_for_shrink_wrap): Use rtx_insn for
28066         return value of gen_move_insn.
28067         * jump.c (redirect_jump): Promote argument from rtx to rtx_jump_insn.
28068         * loop-doloop.c (add_test): Use rtx_code_label.
28069         (doloop_modify): Likewise.
28070         (doloop_optimize): Likewise.
28071         * loop-unroll.c (compare_and_jump_seq): Promote rtx to rtx_code_label.
28072         * lra-constraints.c (emit_spill_move): Remove cast of value returned
28073         by gen_move_insn.
28074         (inherit_reload_reg): Add cast when calling dump_insn_slim.
28075         (split_reg): Likewise.
28076         * modulo-sched.c (schedule_reg_moves): Remove cast of value returned by
28077         gen_move_insn.
28078         * optabs.c (expand_binop_directly): Remove casts of values returned by
28079         maybe_gen_insn.
28080         (expand_unop_direct): Likewise.
28081         (expand_abs): Likewise.
28082         (maybe_emit_unop_insn): Likewise.
28083         (maybe_gen_insn): Promote return type to rtx_insn.
28084         * optabs.h: Update prototype of maybe_gen_insn.
28085         * postreload-gcse.c (eliminate_partially_redundant_load): Remove
28086         redundant cast.
28087         * recog.c (struct peep2_insn_data): Promote type of insn field to
28088         rtx_insn.
28089         (peep2_reinit_state): Use NULL instead of NULL_RTX.
28090         (peep2_attempt): Remove casts of insn in peep2_insn_data.
28091         (peep2_fill_buffer): Promote argument from rtx to rtx_insn
28092         * recog.h (struct insn_gen_fn): Promote return types of function
28093         pointers and operator ().from rtx to rtx_insn.
28094         * reorg.c (fill_simple_delay_slots): Promote rtx_insn to rtx_jump_insn.
28095         (fill_eager_delay_slots): Likewise.
28096         (relax_delay_slots): Likewise.
28097         (make_return_insns): Likewise.
28098         (dbr_schedule): Likewise.
28099         (optimize_skips): Likewise.
28100         (reorg_redirect_jump): Likewise.
28101         (fill_slots_from_thread): Likewise.
28102         * reorg.h: Update prototypes.
28103         * resource.c (find_dead_or_set_registers): Use dyn_cast to
28104         rtx_jump_insn instead of check.  Use it's jump_target method.
28105         * rtl.h (rtx_jump_insn::jump_label): Define new method.
28106         (rtx_jump_insn::jump_target): Define new method.
28107         (rtx_jump_insn::set_jump_target): Define new method.
28108         * rtlanal.c (tablejump_p): Promote type of one local variable.
28109         * sched-deps.c (sched_analyze_2): Promote rtx to rtx_insn_list.
28110         (sched_analyze_insn): Likewise.
28111         * sched-vis.c (print_insn_with_notes): Promote rtx to rtx_insn.
28112         (print_insn): Likewise.
28113         * stmt.c (label_rtx): Promote return type to rtx_insn.
28114         (force_label_rtx): Likewise.
28115         (jump_target_rtx): Define new function.
28116         (expand_label): Use it, get rid of one cast.
28117         (expand_naked_return): Promote rtx to rtx_code_label.
28118         (do_jump_if_equal): Fix do_compare_rtx_and_jump call.
28119         (expand_case): Use rtx_code_label instread of rtx where feasible.
28120         (expand_sjlj_dispatch_table): Likewise.
28121         (emit_case_nodes): Likewise.
28122         * stmt.h: Declare jump_target_rtx.  Update prototypes.  Fix comments.
28123         * store-motion.c (insert_store): Make use of new return type of
28124         gen_move_insn and remove a cast.
28125         (replace_store_insn): Likewise.
28126
28127 2015-05-20  Max Filippov  <jcmvbkbc@gmail.com>
28128
28129         * config/xtensa/xtensa.c (init_alignment_context): Replace MULT
28130         by BITS_PER_UNIT with ASHIFT by exact_log2 (BITS_PER_UNIT).
28131
28132 2015-05-20  Jeff Law  <law@redhat.com>
28133
28134         * tree-ssa-threadupdate.c (mark_threaded_blocks): Properly
28135         dispose of the jump thread path when the jump threading
28136         opportunity is cancelled.
28137
28138 2015-05-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
28139
28140         * diagnostic.c (diagnostic_print_caret_line): Fix off-by-one error
28141         when printing the caret character.
28142
28143 2015-05-20  Marek Polacek  <polacek@redhat.com>
28144
28145         * cfgexpand.c (expand_debug_expr): Use UNARY_CLASS_P.
28146
28147 2015-05-20  Marek Polacek  <polacek@redhat.com>
28148
28149         * expr.c (expand_cond_expr_using_cmove): Use COMPARISON_CLASS_P.
28150         * gimple-expr.c (gimple_cond_get_ops_from_tree): Likewise.
28151         * gimple-fold.c (canonicalize_bool): Likewise.
28152         (same_bool_result_p): Likewise.
28153         * tree-if-conv.c (parse_predicate): Likewise.
28154
28155 2015-05-20  Marek Polacek  <polacek@redhat.com>
28156
28157         * gimple-fold.c (fold_const_aggregate_ref_1): Use DECL_P.
28158         * gimplify.c (gimplify_modify_expr_rhs): Likewise.
28159
28160 2015-05-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28161
28162         * config/aarch64/aarch64.c (aarch64_class_max_nregs):
28163         Use UNITS_PER_VREG and UNITS_PER_WORD instead of their direct
28164         values.
28165
28166 2015-05-20  Robert Suchanek  <robert.suchanek@imgtec.com>
28167
28168         * config/mips/mips.h (micromips_globals): Declare.
28169
28170 2015-05-20  David Malcolm  <dmalcolm@redhat.com>
28171
28172         * timevar.def (TV_INITIALIZE_RTL): New.
28173         * toplev.c (initialize_rtl): Use an auto_timevar to account this
28174         function's time to TV_INITIALIZE_RTL.
28175
28176 2015-05-20  Ilya Enkovich  <enkovich.gnu@gmail.com>
28177
28178         * tree-chkp.c (chkp_maybe_copy_and_register_bounds): Remove useless
28179         gimple_build_nop calls.
28180         (chkp_find_bounds_for_elem): Likewise.
28181         (chkp_get_zero_bounds): Likewise.
28182         (chkp_get_none_bounds): Likewise.
28183         (chkp_get_bounds_by_definition): Likewise.
28184         (chkp_generate_extern_var_bounds): Likewise.
28185         (chkp_get_bounds_for_decl_addr): Likewise.
28186         (chkp_get_bounds_for_string_cst): Likewise.
28187
28188 2015-05-20  Bin Cheng  <bin.cheng@arm.com>
28189
28190         PR tree-optimization/65447
28191         * tree-ssa-loop-ivopts.c (struct iv_use): New fields.
28192         (dump_use, dump_uses): Support to dump sub use.
28193         (record_use): New parameters to support sub use.  Remove call to
28194         dump_use.
28195         (record_sub_use, record_group_use): New functions.
28196         (compute_max_addr_offset, split_all_small_groups): New functions.
28197         (group_address_uses, rewrite_use_address): New functions.
28198         (strip_offset): New declaration.
28199         (find_interesting_uses_address): Call record_group_use.
28200         (add_candidate): New assertion.
28201         (infinite_cost_p): Move definition forward.
28202         (add_costs): Check INFTY cost and return immediately.
28203         (get_computation_cost_at): Clear setup cost and dependent bitmap
28204         for sub uses.
28205         (determine_use_iv_cost_address): Compute cost for sub uses.
28206         (rewrite_use_address_1): Rename from old rewrite_use_address.
28207         (free_loop_data): Free sub uses.
28208         (tree_ssa_iv_optimize_loop): Call group_address_uses.
28209
28210 2015-05-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
28211             Jim Wilson  <jim.wilson@linaro.org>
28212
28213         * config/arm/aarch-common-protos.h (struct mem_cost_table): Added
28214         new  fields loadv and storev.
28215         * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
28216         Initialize loadv and storev.
28217         * config/arm/aarch-cost-tables.h (generic_extra_costs): Likewise.
28218         (cortexa53_extra_costs): Likewise.
28219         (cortexa57_extra_costs): Likewise.
28220         (xgene1_extra_costs): Likewise.
28221         * config/aarch64/aarch64.c (aarch64_rtx_costs): Update vector
28222         rtx_costs.
28223
28224 2015-05-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
28225
28226         * config/arm/arm.c (cortexa9_extra_costs): Initialize loadv and
28227          storev.
28228         (cortexa8_extra_costs): Likewise.
28229         (cortexa5_extra_costs): Likewise.
28230         (cortexa7_extra_costs): Likewise.
28231         (cortexa12_extra_costs): Likewise.
28232         (cortexa15_extra_costs): Likewise.
28233         (v7m_extra_costs): Likewise.
28234
28235 2015-05-20  Jeff Law  <law@redhat.com>
28236
28237         * tree-ssa-threadupdate.c (thread_single_edge): Use delete_jump_thread
28238         instead of open-coded version.  Also delete the jump thread created
28239         within this function.
28240
28241 2015-05-20  Alan Modra  <amodra@gmail.com>
28242
28243         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Return
28244         stack adjusting insn.  Formatting.
28245         (rs6000_emit_prologue): Track stack adjusting insn, and use of
28246         r12.  If possible, emit first -fsplit-stack arg pointer insn
28247         before stack adjust.  Don't use r12 to save cr if split-stack.
28248
28249 2015-05-20  Alan Modra  <amodra@gmail.com>
28250
28251         * common/config/rs6000/rs6000-common.c (TARGET_SUPPORTS_SPLIT_STACK):
28252         Define.
28253         (rs6000_supports_split_stack): New function.
28254         * config/rs6000/rs6000.c (machine_function): Add
28255         split_stack_arg_pointer.
28256         (TARGET_EXTRA_LIVE_ON_ENTRY, TARGET_INTERNAL_ARG_POINTER): Define.
28257         (setup_incoming_varargs): Use crtl->args.internal_arg_pointer
28258         rather than virtual_incoming_args_rtx.
28259         (rs6000_va_start): Likewise.
28260         (split_stack_arg_pointer_used_p): New function.
28261         (rs6000_emit_prologue): Set up arg pointer for -fsplit-stack.
28262         (morestack_ref): New var.
28263         (gen_add3_const, rs6000_expand_split_stack_prologue,
28264         rs6000_internal_arg_pointer, rs6000_live_on_entry,
28265         rs6000_split_stack_space_check): New functions.
28266         (rs6000_elf_file_end): Call file_end_indicate_split_stack.
28267         * config/rs6000/rs6000.md (UNSPEC_STACK_CHECK): Define.
28268         (UNSPECV_SPLIT_STACK_RETURN): Define.
28269         (split_stack_prologue, load_split_stack_limit,
28270         load_split_stack_limit_di, load_split_stack_limit_si,
28271         split_stack_return, split_stack_space_check): New expands and insns.
28272         * config/rs6000/rs6000-protos.h
28273         (rs6000_expand_split_stack_prologue): Declare.
28274         (rs6000_split_stack_space_check): Declare.
28275
28276 2015-05-20  Alan Modra  <amodra@gmail.com>
28277
28278         * config/rs6000/rs6000.c (struct rs6000_stack): Correct comments.
28279         (direct_return): Test vrsave_size rather than vrsave_mask.
28280         (rs6000_emit_prologue): Likewise.  Remove redundant altivec tests.
28281         (rs6000_emit_epilogue): Likewise.
28282
28283 2015-05-20  Alan Modra  <amodra@gmail.com>
28284
28285         * config/rs6000/rs6000.c (rs6000_stack_info): Don't zero offsets
28286         when not saving registers.
28287         (debug_stack_info): Adjust to omit printing unused offsets,
28288         as before.
28289         (rs6000_emit_epilogue): Adjust use_backchain_to_restore_sp
28290         expression.
28291
28292 2015-05-19  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28293
28294         PR c++/65835
28295         * config/i386/winnt.c (struct wrapped_symbol_hasher): Change
28296         value_type to const char *.
28297
28298 2015-05-19  Sandra Loosemore  <sandra@codesourcery.com>
28299
28300         * config.gcc [powerpc*-*-linux*]: Allow --enable-targets=all
28301         to build a biarch toolchain again.
28302
28303 2015-05-19  Jan Hubicka  <hubicka@ucw.cz>
28304
28305         * ipa-devirt.c (type_in_anonymous_namespace_p): Return true
28306         or implicit declarations.
28307         (odr_type_p): Check that TYPE_NAME is TYPE_DECL before looking
28308         into it.
28309         (get_odr_type): Check type has linkage before adding bases.
28310         (register_odr_type): Check that type has linkage before adding it.
28311         (type_known_to_have_no_deriavations_p): Rename to ..
28312         (type_known_to_have_no_derivations_p): This one.
28313         * ipa-utils.h (type_known_to_have_no_deriavations_p): Rename to ..
28314         (type_known_to_have_no_derivations_p): This one.
28315         * ipa-polymorphic-call.c
28316         (ipa_polymorphic_call_context::restrict_to_inner_type): Check that
28317         type has linkage.
28318
28319 2015-05-19  Eric Botcazou  <ebotcazou@adacore.com>
28320
28321         * stor-layout.c (finalize_type_size): Use AGGREGATE_TYPE_P.
28322         (layout_type): Use RECORD_OR_UNION_TYPE_P.
28323
28324 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28325
28326         * config/s390/s390.c (s390_vector_bool_type_p): New function.
28327         (s390_invalid_binary_op): New function.
28328         (TARGET_INVALID_BINARY_OP): Define macro.
28329
28330 2015-05-19  David Sherwood  <david.sherwood@arm.com>
28331
28332         * loop-invariant.c (create_new_invariant): Don't calculate address cost
28333         if mode is not a scalar integer.
28334         (get_inv_cost): Increase computational cost for unused invariants.
28335
28336 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28337
28338         * config.gcc: Add vecintrin.h to extra_headers.  Add s390-c.o to
28339         c_target_objs and cxx_target_objs.  Add t-s390 to tmake_file.
28340         * config/s390/s390-builtin-types.def: New file.
28341         * config/s390/s390-builtins.def: New file.
28342         * config/s390/s390-builtins.h: New file.
28343         * config/s390/s390-c.c: New file.
28344         * config/s390/s390-modes.def: Add modes CCVEQANY, CCVH,
28345         CCVHANY, CCVHU, CCVHUANY, CCVFHANY, CCVFHEANY.
28346         * config/s390/s390-protos.h (s390_expand_vec_compare_cc)
28347         (s390_cpu_cpp_builtins, s390_register_target_pragmas): Add
28348         prototypes.
28349         * config/s390/s390.c (s390-builtins.h, s390-builtins.def):
28350         Include.
28351         (flags_builtin, flags_overloaded_builtin_var, s390_builtin_types)
28352         (s390_builtin_fn_types, s390_builtin_decls, code_for_builtin): New
28353         variable definitions.
28354         (s390_const_operand_ok): New function.
28355         (s390_expand_builtin): Rewrite.
28356         (s390_init_builtins): New function.
28357         (s390_handle_vectorbool_attribute): New function.
28358         (s390_attribute_table): Add s390_vector_bool attribute.
28359         (s390_match_ccmode_set): Handle new cc modes CCVH, CCVHU.
28360         (s390_branch_condition_mask): Generate masks for new modes.
28361         (s390_expand_vec_compare_cc): New function.
28362         (s390_mangle_type): Add mangling for vector bool types.
28363         (enum s390_builtin): Remove.
28364         (s390_atomic_assign_expand_fenv): Rename constants for sfpc and
28365         efpc builtins.
28366         * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Call
28367         s390_cpu_cpp_builtins.
28368         (REGISTER_TARGET_PRAGMAS): New macro.
28369         * config/s390/s390.md: Define more UNSPEC_VEC_* constants.
28370         (insn_cmp mode attribute): Add new CC modes.
28371         (s390_sfpc, s390_efpc): Rename patterns to sfpc and efpc.
28372         (lcbb): New pattern definition.
28373         * config/s390/s390intrin.h: Include vecintrin.h.
28374         * config/s390/t-s390: New file.
28375         * config/s390/vecintrin.h: New file.
28376         * config/s390/vector.md: Include vx-builtins.md.
28377         * config/s390/vx-builtins.md: New file.S/390 zvector builtin
28378         support.
28379
28380 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28381
28382         * config/s390/s390-modes.def: Add new modes CCVEQ, CCVFH, and
28383         CCVFHE.
28384         * config/s390/s390.c (s390_match_ccmode_set): Handle new modes.
28385         (s390_select_ccmode): Likewise.
28386         (s390_canonicalize_comparison): Swap operands if necessary.
28387         (s390_expand_vec_compare_scalar): Expand DFmode compare using
28388         single element vector instructions.
28389         (s390_emit_compare): Call s390_expand_vec_compare_scalar.
28390         (s390_branch_condition_mask): Generate CC masks for the new modes.
28391         * config/s390/s390.md (v0, vf, vd): New mode attributes.
28392         (VFCMP, asm_fcmp, insn_cmp): New mode iterator and attributes.
28393         (*vec_cmp<insn_cmp>df_cconly, *fixuns_truncdfdi2_z13)
28394         (*fix_trunc<BFP:mode><GPR:mode>2_bfp, *floatunsdidf2_z13)
28395         (*floatuns<GPR:mode><FP:mode>2, *extendsfdf2_z13)
28396         (*extend<DSF:mode><BFP:mode>2): New insn definition.
28397         (fix_trunc<BFP:mode><GPR:mode>2_bfp, loatuns<GPR:mode><FP:mode>2)
28398         (extend<DSF:mode><BFP:mode>2): Turn into expander.
28399         (floatdi<mode>2, truncdfsf2, add<mode>3, sub<mode>3, mul<mode>3)
28400         (div<mode>3, *neg<mode>2, *abs<mode>2, *negabs<mode>2)
28401         (sqrt<mode>2): Add vector instruction.
28402
28403 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28404
28405         * config/s390/constraints.md (j00, jm1, jxx, jyy, v): New
28406         constraints.
28407         * config/s390/predicates.md (const0_operand, constm1_operand)
28408         (constable_operand): Accept vector operands.
28409         * config/s390/s390-modes.def: Add supported vector modes.
28410         * config/s390/s390-protos.h (s390_cannot_change_mode_class)
28411         (s390_function_arg_vector, s390_contiguous_bitmask_vector_p)
28412         (s390_bytemask_vector_p, s390_expand_vec_strlen)
28413         (s390_expand_vec_compare, s390_expand_vcond)
28414         (s390_expand_vec_init): Add prototypes.
28415         * config/s390/s390.c (VEC_ARG_NUM_REG): New macro.
28416         (s390_vector_mode_supported_p): New function.
28417         (s390_contiguous_bitmask_p): Mask out the irrelevant bits.
28418         (s390_contiguous_bitmask_vector_p): New function.
28419         (s390_bytemask_vector_p): New function.
28420         (s390_split_ok_p): Vector regs don't work either.
28421         (regclass_map): Add VEC_REGS.
28422         (s390_legitimate_constant_p): Handle vector constants.
28423         (s390_cannot_force_const_mem): Handle CONST_VECTOR.
28424         (legitimate_reload_vector_constant_p): New function.
28425         (s390_preferred_reload_class): Handle CONST_VECTOR.
28426         (s390_reload_symref_address):  Likewise.
28427         (s390_secondary_reload): Vector memory instructions only support
28428         short displacements.  Rename reload*_nonoffmem* to reload*_la*.
28429         (s390_emit_ccraw_jump): New function.
28430         (s390_expand_vec_strlen): New function.
28431         (s390_expand_vec_compare): New function.
28432         (s390_expand_vcond): New function.
28433         (s390_expand_vec_init): New function.
28434         (s390_dwarf_frame_reg_mode): New function.
28435         (print_operand): Handle addresses with 'O' and 'R' constraints.
28436         (NR_C_MODES, constant_modes): Add vector modes.
28437         (s390_output_pool_entry): Handle vector constants.
28438         (s390_hard_regno_mode_ok): Handle vector registers.
28439         (s390_class_max_nregs): Likewise.
28440         (s390_cannot_change_mode_class): New function.
28441         (s390_invalid_arg_for_unprototyped_fn): New function.
28442         (s390_function_arg_vector): New function.
28443         (s390_function_arg_float): Remove size variable.
28444         (s390_pass_by_reference): Handle vector arguments.
28445         (s390_function_arg_advance): Likewise.
28446         (s390_function_arg): Likewise.
28447         (s390_return_in_memory): Vector values are returned in a VR if
28448         possible.
28449         (s390_function_and_libcall_value): Handle vector arguments.
28450         (s390_gimplify_va_arg): Likewise.
28451         (s390_call_saved_register_used): Consider the arguments named.
28452         (s390_conditional_register_usage): Disable v16-v31 for non-vec
28453         targets.
28454         (s390_preferred_simd_mode): New function.
28455         (s390_support_vector_misalignment): New function.
28456         (s390_vector_alignment): New function.
28457         (TARGET_STRICT_ARGUMENT_NAMING, TARGET_DWARF_FRAME_REG_MODE)
28458         (TARGET_VECTOR_MODE_SUPPORTED_P)
28459         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN)
28460         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
28461         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT)
28462         (TARGET_VECTOR_ALIGNMENT): Define target macro.
28463         * config/s390/s390.h (FUNCTION_ARG_PADDING): Define macro.
28464         (FIRST_PSEUDO_REGISTER): Increase value.
28465         (VECTOR_NOFP_REGNO_P, VECTOR_REGNO_P, VECTOR_NOFP_REG_P)
28466         (VECTOR_REG_P): Define macros.
28467         (FIXED_REGISTERS, CALL_USED_REGISTERS)
28468         (CALL_REALLY_USED_REGISTERS, REG_ALLOC_ORDER)
28469         (HARD_REGNO_CALL_PART_CLOBBERED, REG_CLASS_NAMES)
28470         (FUNCTION_ARG_REGNO_P, FUNCTION_VALUE_REGNO_P, REGISTER_NAMES):
28471         Add vector registers.
28472         (CANNOT_CHANGE_MODE_CLASS): Call C function.
28473         (enum reg_class): Add VEC_REGS, ADDR_VEC_REGS, GENERAL_VEC_REGS.
28474         (SECONDARY_MEMORY_NEEDED): Allow SF<->SI mode moves without
28475         memory.
28476         (DBX_REGISTER_NUMBER, FIRST_VEC_ARG_REGNO, LAST_VEC_ARG_REGNO)
28477         (SHORT_DISP_IN_RANGE, VECTOR_STORE_FLAG_VALUE): Define macro.
28478         * config/s390/s390.md (UNSPEC_VEC_*): New constants.
28479         (VR*_REGNUM): New constants.
28480         (ALL): New mode iterator.
28481         (INTALL): Remove mode iterator.
28482         Include vector.md.
28483         (movti): Implement TImode moves for VRs.
28484         Disable TImode splitter for VR targets.
28485         Implement splitting TImode GPR<->VR moves.
28486         (reload*_tomem_z10, reload*_toreg_z10): Replace INTALL with ALL.
28487         (reload<mode>_nonoffmem_in, reload<mode>_nonoffmem_out): Rename to
28488         reload<mode>_la_in, reload<mode>_la_out.
28489         (*movdi_64, *movsi_zarch, *movhi, *movqi, *mov<mode>_64dfp)
28490         (*mov<mode>_64, *mov<mode>_31): Add vector instructions.
28491         (TD/TF mode splitter): Enable for GPRs only (formerly !FP).
28492         (mov<mode> SF SD): Prefer lder, lde for loading.
28493         Add lrl and strl instructions.
28494         Add vector instructions.
28495         (strlen<mode>): Rename old strlen<mode> to strlen_srst<mode>.
28496         Call s390_expand_vec_strlen on z13.
28497         (*cc_to_int): Change predicate to nonimmediate_operand.
28498         (addti3): Rename to *addti3.  New expander.
28499         (subti3): Rename to *subti3.  New expander.
28500         * config/s390/vector.md: New file.
28501
28502 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28503
28504         * common/config/s390/s390-common.c (processor_flags_table): Add
28505         z13.
28506         * config.gcc: Add z13.
28507         * config/s390/s390-opts.h (enum processor_type): Add
28508         PROCESSOR_2964_Z13.
28509         * config/s390/s390.c (s390_adjust_priority): Check for
28510         PROCESSOR_2964_Z13.
28511         (s390_reorg): Likewise.
28512         (s390_sched_reorder): Likewise.
28513         (s390_sched_variable_issue): Likewise.
28514         (s390_loop_unroll_adjust): Likewise.
28515         (s390_option_override): Likewise. Default to -mvx when available.
28516         * config/s390/s390.h (enum processor_flags): Add PF_Z13 and PF_VX.
28517         (TARGET_CPU_Z13, TARGET_CPU_VX, TARGET_Z13, TARGET_VX)
28518         (TARGET_VX_ABI): Define macros.
28519         macros.
28520         (TARGET_DEFAULT): Add MASK_OPT_VX.
28521         * config/s390/s390.md ("cpu" attribute): Add z13.
28522         ("cpu_facility" attribute): Add vec.
28523         * config/s390/s390.opt (processor_type): Add z13.
28524         (mvx): New options.
28525         * doc/invoke.texi: Add z13 option for -march.
28526
28527 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28528
28529         * config/s390/predicates.md (shift_count_or_setmem_operand): Add
28530         mode check to make sure that only scalar integer values are
28531         accepted.
28532
28533 2015-05-19  Jan Hubicka  <hubicka@ucw.cz>
28534
28535         * tree.c (verify_type_variant): Fix #undef.
28536         (gimple_canonical_types_compatible_p): Move here from lto.c
28537         (verify_type): Verify TYPE_CANONICAL compatibility.
28538         * tree.h (gimple_canonical_types_compatible_p): Declare.
28539
28540 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
28541
28542         PR middle-end/66199
28543         * tree.h (OMP_TEAMS_COMBINED): Define.
28544         * gimplify.c (enum gimplify_omp_var_data): Add
28545         GOVD_LINEAR_LASTPRIVATE_NO_OUTER.
28546         (enum omp_region_type): Add ORT_COMBINED_TEAMS.
28547         (omp_notice_variable): Accept both ORT_TEAMS
28548         and ORT_COMBINED_TEAMS.  Don't recurse if
28549         GOVD_LINEAR_LASTPRIVATE_NO_OUTER is set and either
28550         GOVD_LINEAR is set, or GOVD_LASTPRIVATE without
28551         GOVD_FIRSTPRIVATE.
28552         (omp_no_lastprivate): New function.
28553         (gimplify_scan_omp_clauses): For OMP_CLAUSE_LASTPRIVATE
28554         and OMP_CLAUSE_LINEAR, if omp_no_lastprivate, don't
28555         notice_outer and set appropriate bits, otherwise make
28556         sure default(none) combined constructs won't complain.
28557         (gimplify_adjust_omp_clauses): Remove OMP_CLAUSE_LINEAR
28558         outer special casing, for OMP_CLAUSE_LASTPRIVATE if
28559         omp_no_lastprivate either remove the clause or turn it
28560         into OMP_CLAUSE_PRIVATE.
28561         (gimplify_omp_for): Fix up handling of implicit
28562         lastprivate or linear iterators.
28563         (gimplify_omp_workshare): For OMP_TEAMS_COMBINED use
28564         ORT_COMBINED_TEAMS.
28565         * omp-low.c (lower_omp_for_lastprivate): For combined
28566         for simd use fd.loop.n2 from the for rather than simd.
28567
28568 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
28569
28570         * config/cris/cris.c (cris_expand_prologue): Use gen_raw_REG
28571         instead of gen_rtx_raw_REG.
28572         (cris_expand_epilogue): Likewise.
28573         * config/microblaze/microblaze.c (microblaze_classify_address):
28574         Likewise.
28575         * config/sparc/sparc.md: Likewise.
28576
28577 2015-05-19  Uros Bizjak  <ubizjak@gmail.com>
28578
28579         * config/alpha/alpha.c (alpha_legitimize_reload_address)
28580         (alpha_preferred_reload_class, alpha_legitimate_constant_p): Use
28581         CONST_INT_P, CONST_SCALAR_INT_P and CONST_DOUBLE_P predicates.
28582         (alpha_split_reload_pair) <case CONST_INT, case CONST_WIDE_INT>:
28583         Use CASE_CONST_SCALAR_INT.
28584         (print_operand) <case 'M'>: Use mode_width_operand to check the
28585         value of the constant.
28586         * config/alpha/alpha.md (movti): Use CONST_SCALAR_INT_P predicate.
28587         * config/alpha/predicates.md (input_operand): Use general_operand
28588         instead of match_code as operand check.
28589         (symbolic_operand): Use match_code with subexpression digits.
28590         * config/alpha/constraints.md (Q): Ditto.
28591
28592 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28593
28594         * optabs.c (expand_vec_perm): Don't re-use SEL as target operand.
28595
28596 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28597
28598         * config/s390/s390.c (s390_secondary_reload): Fix check for
28599         load/store relative.
28600
28601 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28602
28603         * recog.h: Increase MAX_RECOG_ALTERNATIVES.  Change type of
28604         alternative_mask to uint64_t.
28605
28606 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
28607
28608         PR tree-optimization/66187
28609         * match.pd ((bit_and (plus/minus (convert @0) (convert @1)) mask)):
28610         Pass TYPE_SIGN to tree_int_cst_min_precision.  If
28611         !TYPE_OVERFLOW_WRAPS, ensure @4 is non-negative.
28612
28613 2015-05-19  David Malcolm  <dmalcolm@redhat.com>
28614
28615         * diagnostic.c (diagnostic_report_current_module): Strengthen
28616         local "new_map" from const line_map * to
28617         const line_map_ordinary *.
28618         * genmatch.c (error_cb): Likewise for local "map".
28619         (output_line_directive): Likewise for local "map".
28620         * input.c (expand_location_1): Likewise for local "map".
28621         Pass NULL rather than &map to
28622         linemap_unwind_to_first_non_reserved_loc, since the value is never
28623         read from there, and the value written back not read from here.
28624         (is_location_from_builtin_token): Strengthen local "map" from
28625         const line_map * to const line_map_ordinary *.
28626         (dump_location_info): Strengthen locals "map" from
28627         line_map *, one to const line_map_ordinary *, the other
28628         to const line_map_macro *.
28629         * tree-diagnostic.c (loc_map_pair): Strengthen field "map" from
28630         const line_map * to const line_map_macro *.
28631         (maybe_unwind_expanded_macro_loc): Add a call to
28632         linemap_check_macro when writing to the "map" field of the
28633         loc_map_pair.
28634         Introduce local const line_map_ordinary * "ord_map", using it in
28635         place of "map" in the part of the function where we know we have
28636         an ordinary map.  Strengthen local "m" from const line_map * to
28637         const line_map_ordinary *.
28638
28639 2015-05-19  Nick Clifton  <nickc@redhat.com>
28640
28641         PR target/66156
28642         * config/msp430/msp430.md (zero_extendhisi2): Add support for
28643         separate source and destination registers.
28644
28645 2015-05-19  Richard Biener  <rguenther@suse.de>
28646
28647         PR tree-optimization/66165
28648         * tree-vect-slp.c (vect_supported_load_permutation_p): Add guard
28649         for no load permutation.
28650
28651         PR tree-optimization/66185
28652         * tree-vect-slp.c (vect_build_slp_tree): Properly roll back
28653         when building the SLP node from scalars.
28654
28655 2015-05-19  Eric Botcazou  <ebotcazou@adacore.com>
28656             Tristan Gingold  <gingold@adacore.com>
28657
28658         * insn-notes.def (UPDATE_SJLJ_CONTEXT): New note.
28659         * builtins.c (expand_builtin_update_setjmp_buf): Make global.
28660         (expand_stack_restore): Call record_new_stack_level.
28661         (expand_stack_save): Do not call do_pending_stack_adjust.
28662         * builtins.h (expand_builtin_update_setjmp_buf): Declare.
28663         * calls.c (expand_call): Call record_new_stack_level for alloca.
28664         * except.c (sjlj_mark_call_sites): Expand builtin_update_setjmp_buf
28665         wherever a NOTE_INSN_UPDATE_SJLJ_CONTEXT note is present.
28666         (update_sjlj_context): New global function.
28667         * except.h (update_sjlj_context): Declare.
28668         * explow.c (record_new_stack_level): New global function.
28669         (allocate_dynamic_stack_space): Call record_new_stack_level.
28670         * explow.h (record_new_stack_level): Declare.
28671         * final.c (final_scan_insn): Deal with NOTE_INSN_UPDATE_SJLJ_CONTEXT.
28672         * cfgrtl.c (duplicate_insn_chain): Likewise.
28673
28674 2015-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28675
28676         * calls.c: Always define STACK_GROWS_DOWNWARD as 0 or 1.
28677         (mem_overlaps_already_clobbered_arg_p): Rewrite ifdef
28678         STACK_GROWS_DOWNWARD as normal if.
28679         (expand_call): Likewise.
28680
28681 2015-05-19  Oleg Endo  <olegendo@gcc.gnu.org>
28682
28683         PR target/54236
28684         * config/sh/sh.md (*round_int_even): New insn_and_split and
28685         accompanying new unnamed split.
28686
28687 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
28688
28689         * bitmap.c (bitmap_set_range): Handle count==1 specially.
28690         (bitmap_clear_range): Likewise.
28691         * cfgcleanup.c (mark_effect): Use bitmap_clear_range and
28692         bitmap_set_range unconditionally.
28693         * df-problems.c (df_simulate_one_insn_forwards): Likewise.
28694         * df-scan.c (df_mark_reg): Likewise.
28695         * haifa-sched.c (setup_ref_regs): Likewise.
28696         * sched-rgn.c (update_live_1): Likewise.
28697
28698 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
28699
28700         * regs.h (END_HARD_REGNO): Delete.
28701         (END_REGNO): Move to...
28702         * rtl.h: ...here.
28703         * bt-load.c (note_btr_set): Use END_REGNO instead of END_HARD_REGNO.
28704         * caller-save.c (mark_set_regs): Likewise.
28705         * combine.c (move_deaths, distribute_notes): Likewise.
28706         * cse.c (invalidate, invalidate_for_call): Likewise.
28707         * df-scan.c (df_ref_record): Likewise.
28708         * postreload-gcse.c (reg_changed_after_insn_p): Likewise.
28709         (record_last_reg_set_info): Likewise.
28710         * reg-stack.c (convert_regs_exit): Likewise.
28711         * reload.c (reg_overlap_mentioned_for_reload_p): Likewise.
28712         * resource.c (update_live_status): Likewise.
28713         * rtlanal.c (find_reg_fusage, find_regno_fusage): Likewise.
28714
28715 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
28716
28717         * rtl.h (reg_info): Add an nregs field.
28718         (REG_NREGS): Use it.
28719         (SET_REGNO_RAW): Delete.
28720         (set_regno_raw): New function.
28721         * regs.h (END_HARD_REGNO): Make equivalent to END_REGNO.
28722         (END_REGNO): Redefine in terms of REG_NREGS.
28723         * read-rtl.c (read_rtx_code): Call set_regno_raw instead of
28724         SET_REGNO_RAW.
28725         * emit-rtl.c (set_mode_and_regno): Likewise.
28726         * df-scan.c (df_ref_change_reg_with_loc): Use set_mode_and_regno
28727         instead of SET_REGNO_RAW.
28728
28729 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
28730
28731         * rtl.h (PUT_MODE_RAW): New macro.
28732         (PUT_REG_NOTE_KIND): Use it.
28733         (set_mode_and_regno): Declare.
28734         (gen_raw_REG): Change regno to "unsigned int".
28735         (gen_rtx_REG): Change "unsigned" to "unsigned int".
28736         (PUT_MODE): Forward to PUT_MODE_RAW for generators, otherwise
28737         use set_mode_and_regno to change the mode of registers.
28738         * gengenrtl.c (gendef): Use PUT_MODE_RAW.
28739         * emit-rtl.c (set_mode_and_regno): New function.
28740         (gen_raw_REG): Change regno to unsigned int.  Use set_mode_and_regno.
28741         * caller-save.c (reg_save_code): Use set_mode_and_regno.
28742         * expr.c (init_expr_target): Likewise.
28743         * ira.c (setup_prohibited_mode_move_regs): Likewise.
28744         * postreload.c (reload_cse_simplify_operands): Likewise.
28745
28746 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
28747
28748         * caller-save.c (init_caller_save): Use word_mode and
28749         FIRST_PSEUDO_REGISTER when creating temporary rtxes.
28750         * expr.c (init_expr_target): Likewise.
28751         * ira.c (setup_prohibited_mode_move_regs): Likewise.
28752         * postreload.c (reload_cse_regs_1): Likewise.
28753
28754 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
28755
28756         * rtl.def (REG): Change format to "r".
28757         * rtl.h (rtunion): Remove rt_reg.
28758         (reg_info): New structure.
28759         (rtx_def): Add reg field to main union.
28760         (X0REGATTR): Delete.
28761         (REG_CHECK): New macro.
28762         (SET_REGNO_RAW, rhs_regno, REG_ATTRS): Use it.
28763         * rtl.c (rtx_format): Document "r".
28764         (rtx_code_size): Handle REG specially.
28765         * gengenrtl.c (special_format): Return true for formats
28766         that include 'r'.
28767         * gengtype.c (adjust_field_rtx_def): Handle 'r' fields.
28768         Deal with REG_ATTRS after the field loop.
28769         * emit-rtl.c (gen_raw_REG): Call rtx_alloc_stat directly.
28770         * expmed.c (init_expmed): Call gen_raw_REG instead of
28771         gen_rtx_raw_REG.
28772         * expr.c (init_expr_target): Likewise.
28773         * regcprop.c (maybe_mode_change): Likewise.
28774         * varasm.c (make_decl_rtl): Likewise.
28775         * final.c (leaf_renumber_regs_insn): Return early after
28776         handling REGs.
28777         * genemit.c (gen_exp): Handle 'r' fields.
28778         * genpeep.c (match_rtx): Likewise.
28779         * gensupport.c (subst_pattern_match): Likewise.
28780         (get_alternatives_number, collect_insn_data, alter_predicate_for_insn)
28781         (alter_constraints, subst_dup): Likewise.
28782         * read-rtl.c (read_rtx_code): Likewise.
28783         * print-rtl.c (print_rtx): Likewise.
28784         * genrecog.c (find_operand, find_matching_operand): Likewise.
28785         (validate_pattern, match_pattern_2): Likewise.
28786         (parameter::UINT, rtx_test::REGNO_FIELD): New enum values.
28787         (rtx_test::regno_field): New function.
28788         (operator ==, safe_to_hoist_p, transition_parameter_type)
28789         (parameter_type_string, print_parameter_value)
28790         (print_nonbool_test, print_test): Handle new enum values.
28791         * cselib.c (rtx_equal_for_cselib_1): Handle REG specially.
28792         * lra-constraints.c (operands_match_p): Likewise.
28793
28794 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
28795
28796         * df.h (df_ref_change_reg_with_loc): Remove old_regno parameter.
28797         Change type of new_regno to unsigned int.
28798         * df-scan.c (df_ref_change_reg_with_loc_1): Change type of
28799         new_regno to unsigned int.
28800         (df_ref_change_reg_with_loc): Remove old_regno parameter.
28801         Change type of new_regno to unsigned int.  Use SET_REGNO_RAW.
28802         * rtl.h (SET_REGNO): Update call to df_ref_change_reg_with_loc.
28803         (SET_REGNO_RAW): Add space after ",".
28804
28805 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
28806
28807         * rtl.h (REG_NREGS): New macro
28808         * alias.c (record_set): Use it.
28809         * cfgcleanup.c (mark_effect): Likewise.
28810         * combine.c (likely_spilled_retval_1): Likewise.
28811         (likely_spilled_retval_p, can_change_dest_mode): Likewise.
28812         (move_deaths, distribute_notes): Likewise.
28813         * cselib.c (cselib_record_set): Likewise.
28814         * df-problems.c (df_simulate_one_insn_forwards): Likewise.
28815         * df-scan.c (df_mark_reg): Likewise.
28816         * dse.c (look_for_hardregs): Likewise.
28817         * dwarf2out.c (reg_loc_descriptor): Likewise.
28818         (multiple_reg_loc_descriptor): Likewise.
28819         * expr.c (write_complex_part, read_complex_part): Likewise.
28820         (emit_move_complex): Likewise.
28821         * haifa-sched.c (setup_ref_regs): Likewise.
28822         * ira-lives.c (mark_hard_reg_live): Likewise.
28823         * lra.c (lra_set_insn_recog_data): Likewise.
28824         * mode-switching.c (create_pre_exit): Likewise.
28825         * postreload.c (reload_combine_recognize_const_pattern): Likewise.
28826         (reload_combine_recognize_pattern): Likewise.
28827         (reload_combine_note_use, move2add_record_mode): Likewise.
28828         (reload_cse_move2add): Likewise.
28829         * reg-stack.c (subst_stack_regs_pat): Likewise.
28830         * regcprop.c (kill_value, copy_value): Likewise.
28831         (copyprop_hardreg_forward_1): Likewise.
28832         * regrename.c (verify_reg_in_set, scan_rtx_reg): Likewise.
28833         (build_def_use): Likewise.
28834         * sched-deps.c (mark_insn_reg_birth, mark_reg_death): Likewise.
28835         (deps_analyze_insn): Likewise.
28836         * sched-rgn.c (check_live_1, update_live_1): Likewise.
28837         * sel-sched.c (count_occurrences_equiv): Likewise.
28838         * valtrack.c (dead_debug_insert_temp): Likewise.
28839
28840 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
28841
28842         * cfgcleanup.c (mentions_nonequal_regs): Use END_REGNO.
28843         * dse.c (note_add_store): Likewise.
28844         * ira-lives.c (mark_hard_reg_dead): Likewise.
28845         * loop-invariant.c (mark_reg_store): Likewise.
28846         (mark_reg_death): Likewise.
28847         * postreload.c (reload_combine): Likewise.
28848         (reload_combine_note_store): Likewise.
28849         (reload_combine_note_use): Likewise.
28850         * recog.c (peep2_reg_dead_p): Likewise.
28851
28852 2015-05-19  Alan Modra  <amodra@gmail.com>
28853
28854         * config/rs6000/predicates.md (gpc_reg_operand): Don't allow all
28855         hard registers numbered greater or equal to ARG_POINTER_REGNUM.
28856         (reg_or_neg_short_operand, fix_trunc_dest_operand): Delete
28857         unused predicates.
28858         * config/rs6000/altivec.md (save_vregs_*, restore_vregs_*):
28859         Use altivec_register_operand.  Make insn predicate TARGET_ALTIVEC.
28860         * config/rs6000/rs6000.md (extzvdi_internal2): Use cc_reg_operand.
28861         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Expand comment.
28862
28863 2015-05-19  Sameera Deshpande  <Sameera.Deshpande@imgtec.com>
28864
28865         * config/mips/mips.md (JOIN_MODE): New mode iterator.
28866         (join2_load_Store<JOIN_MODE:mode>): New pattern.
28867         (join2_loadhi): Likewise.
28868         (define_peehole2): Add peephole2 patterns to join 2 HI/SI/SF/DF-mode
28869         load-load and store-stores.
28870         * config/mips/mips.opt (mload-store-pairs): New option.
28871         (TARGET_LOAD_STORE_PAIRS): New macro.
28872         * config/mips/mips.h (ENABLE_LD_ST_PAIRS): Likewise.
28873         * config/mips/mips-protos.h (mips_load_store_bonding_p): New prototype.
28874         * config/mips/mips.c (mips_load_store_bonding_p): New function.
28875
28876 2015-05-19  Mikhail Maltsev  <maltsevm@gmail.com>
28877
28878         * bb-reorder.c (fix_up_fall_thru_edges): Use std::swap instead of
28879         explicit swaps.
28880         * dojump.c (do_compare_rtx_and_jump): Likewise.
28881         * expmed.c (emit_store_flag_1): Likewise.
28882         * fibonacci_heap.h (fibonacci_heap::union_with): Likewise.
28883         * final.c (sprint_ul): Use std::reverse for reversing a string.
28884         * fold-const.c (extract_muldiv_1): Use std::swap.
28885         * genmodes.c (emit_mode_int_n): Likewise.
28886         * ifcvt.c (dead_or_predicable): Likewise.
28887         * ira-build.c (ira_merge_live_ranges): Likewise.
28888         (swap_allocno_copy_ends_if_necessary): Likewise.
28889         * ira.c (ira_setup_alts): Likewise.
28890         * loop-iv.c (iv_analyze_expr): Likewise.
28891         (implies_p): Likewise.
28892         (canon_condition): Likewise.
28893         * lra-constraints.c (swap_operands): Likewise.
28894         * lra-lives.c (lra_merge_live_ranges): Likewise.
28895         * omega.c (swap): Remove.
28896         (bswap): Remove.
28897         (omega_unprotect_1): Use std::swap.
28898         (omega_solve_geq): Likewise.
28899         * optabs.c (expand_binop_directly): Likewise.
28900         (expand_binop): Likewise.
28901         (emit_conditional_move): Likewise.
28902         (emit_conditional_add): Likewise.
28903         * postreload.c (reload_cse_simplify_operands): Likewise.
28904         * reg-stack.c (emit_swap_insn): Likewise.
28905         (swap_to_top): Likewise.
28906         (compare_for_stack_reg): Likewise.
28907         (subst_asm_stack_regs): Likewise.
28908         * reload.c (find_reloads): Likewise.
28909         * reload1.c (gen_reload_chain_without_interm_reg_p): Likewise.
28910         * sel-sched.c (invoke_reorder_hooks): Likewise.
28911         (create_block_for_bookkeeping): Likewise.
28912         * tree-data-ref.c (lambda_matrix_row_exchange): Remove.
28913         (lambda_matrix_right_hermite): Use std::swap.
28914         * tree-ssa-coalesce.c (sort_coalesce_list): Likewise.
28915         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
28916         * tree-ssa-loop-ivopts.c (iv_ca_delta_reverse): Likewise.
28917         * tree-ssa-math-opts.c (is_widening_mult_p): Likewise.
28918         * tree-ssa-phiopt.c (hoist_adjacent_loads): Likewise.
28919         * tree-ssa-reassoc.c (linearize_expr_tree): Likewise.
28920         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
28921         * tree-vrp.c (compare_ranges): Likewise.
28922         * var-tracking.c (add_with_sets): Likewise.
28923         (vt_find_locations): Likewise.
28924
28925 2015-05-18  Andreas Tobler  <andreast@gcc.gnu.org>
28926
28927         * config/freebsd-spec.h (FBSD_STARTFILE_SPEC): Add the bits to build
28928         pie executables.
28929         (FBSD_ENDFILE_SPEC): Likewise.
28930         * config/i386/freebsd.h (STARTFILE_SPEC): Remove and use the one from
28931         config/freebsd-spec.h.
28932         (ENDFILE_SPEC): Likewise.
28933
28934 2015-05-18  Uros Bizjak  <ubizjak@gmail.com>
28935             Richard Henderson  <rth@redhat.com>
28936
28937         PR target/57032
28938         * config/alpha/constraints.md (Q): Rewrite as define_memory_constraint.
28939         Check for a memory location that is not a reference (using an AND)
28940         to an unaligned location here.
28941         * config/alpha/predicates.md (normal_memory_operand): Remove.
28942
28943 2015-05-18  Alex Velenko  <Alex.Velenko@arm.com>
28944
28945         * config/arm/arm.md (andsi_not_shiftsi_si_scc): New pattern.
28946         (andsi_not_shiftsi_si_scc_no_reuse): New pattern.
28947
28948 2015-05-18  Robert Suchanek  <robert.suchanek@imgtec.com>
28949
28950         * config/mips/mips.c (micromips_globals): New variable.
28951         (mips_set_compression_mode): Save and reinitialize target-dependent
28952         state for microMIPS.
28953
28954 2015-05-18  Martin Liska  <mliska@suse.cz>
28955
28956         * dbgcnt.def: Add new counter.
28957         * ipa-icf.c (sem_item_optimizer::merge_classes): Use the counter.
28958
28959 2015-05-18  Martin Liska  <mliska@suse.cz>
28960
28961         * dbgcnt.def: Sort counters.
28962         * opts.c (common_handle_option): Do not compile if
28963         -fdbg-cnt-list is enabled.
28964
28965 2015-05-18  Tom de Vries  <tom@codesourcery.com>
28966
28967         * gimplify.c (gimplify_modify_expr): Remove do_deref handling.
28968         (gimplify_va_arg_expr): Remove do_deref handling.  Remove adding of
28969         address operator to va_list operand.
28970         * tree-stdarg.c (expand_ifn_va_arg_1): Do deref of va_list operand
28971         unconditionally.
28972         * config/i386/i386.c (ix86_gimplify_va_arg): Remove deref on va_list
28973         operand.
28974         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Same.
28975         * config/s390/s390.c (s390_gimplify_va_arg): Same.
28976         * config/spu/spu.c (spu_gimplify_va_arg_expr): Same.
28977
28978 2015-05-18  Tom de Vries  <tom@codesourcery.com>
28979
28980         * tree-ssa-tail-merge.c: Fix whitespace.
28981
28982 2015-05-17  Jim Wilson  <jim.wilson@linaro.org>
28983
28984         * doc/invoke.texi (ARM Options, mtune): Add generic-armv7-a,
28985         cortex-a17, and cortex-a17.cortex-a7.
28986
28987 2015-05-17  Oleg Endo  <olegendo@gcc.gnu.org>
28988
28989         PR target/54236
28990         * config/sh/sh.md (*addc_2r_t): Use ashift instead of mult.
28991
28992 2015-05-17  Uros Bizjak  <ubizjak@gmail.com>
28993
28994         PR target/66174
28995         * config/i386/i386.c (expand_vec_perm_blend): Enable HImode and
28996         QImode inner modes for TARGET_AVX512BW.  Force mask operand
28997         to a register for AVX512F modes.
28998
28999 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
29000
29001         * toplev.c (emit_debug_global_declarations): Do not output debug info
29002         when doing slim LTO objects.
29003
29004 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
29005
29006         * ipa-utils.h (warn_types_mismatch, odr_or_derived_type_p,
29007         odr_types_equivalent_p): Declare.
29008         (odr_type_p): Use gcc_checking_assert.
29009         (type_in_anonymous_namespace_p) Declare.
29010         (type_with_linkage_p): Declare.
29011         * common.opt (Wlto-type-mismatch): New warning.
29012         * ipa-devirt.c (compound_type_base): New function.
29013         (odr_or_derived_type_p): New function.
29014         (odr_types_equivalent_p): New function.
29015         (add_type_duplicate): Simplify.
29016         (type_with_linkage_p): Add hack to prevent false positives on C types
29017         (type_in_anonymous_namespace_p): Likewise.
29018         * tree.c (need_assembler_name_p): Use type_with_linkage.
29019         * tree.h (type_in_anonymous_namespace_p): Remove.
29020         * doc/invoke.texi (-Wlto-type-mismatch): Document
29021
29022 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
29023
29024         * tree.c (verify_type_variant): Verify tree_base and type_common flags.
29025         (verify_type): Verify STRING_FLAG.
29026
29027 2015-05-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
29028
29029         PR fortran/44054
29030         * tree-pretty-print.c (percent_K_format): Replace locus pointer
29031         with accessor function.
29032         * tree-diagnostic.c (diagnostic_report_current_function): Use
29033         diagnostic_location function.
29034         (maybe_unwind_expanded_macro_loc): Likewise.
29035         (virt_loc_aware_diagnostic_finalizer): Likewise.
29036         (default_tree_printer): Replace locus pointer with accessor function.
29037         * diagnostic.c (diagnostic_initialize): Initialize caret_chars array.
29038         (diagnostic_set_info_translated): Initialize second location.
29039         (diagnostic_build_prefix): Use CARET_LINE_MARGIN.
29040         (diagnostic_show_locus): Handle two locations. Call
29041         diagnostic_print_caret_line.
29042         (diagnostic_print_caret_line): New.
29043         (default_diagnostic_starter): Use diagnostic_location function.
29044         (diagnostic_report_diagnostic): Use diagnostic_location function.
29045         (verbatim): Do not set text.locus.
29046         * diagnostic.h (struct diagnostic_info): Remove location field.
29047         (struct diagnostic_context): Make caret_chars an array of two.
29048         (diagnostic_location): New inline.
29049         (diagnostic_expand_location): Handle two locations.
29050         (diagnostic_same_line): New inline.
29051         (diagnostic_print_caret_line): Declare.
29052         (CARET_LINE_MARGIN): New constant.
29053         * pretty-print.c (pp_printf): Do not set text.locus.
29054         (pp_verbatim): Do not set text.locus.
29055         * pretty-print.h (MAX_LOCATIONS_PER_MESSAGE): New constant.
29056         (struct text_info): Replace locus pointer with locations
29057         array. Add accessor functions.
29058
29059 2015-05-16  Kugan Vivekanandarajah  <kuganv@linaro.org>
29060             Zhenqiang Chen  <zhenqiang.chen@linaro.org>
29061
29062         PR target/65768
29063         * config/arm/arm.h (DONT_EARLY_SPLIT_CONSTANT): New macro.
29064         * config/arm/arm.md (subsi3, andsi3, iorsi3, xorsi3, movsi): Keep some
29065          large constants in register instead of splitting them.
29066
29067 2015-05-16  Uros Bizjak  <ubizjak@gmail.com>
29068
29069         PR target/66140
29070         * config/alpha/alpha.c (get_aligned_mem): Also look for reload
29071         replacements in memory addresses.
29072         (get_unaligned_address): Ditto.
29073
29074 2015-05-16  James Bowman  <james.bowman@ftdichip.com>
29075
29076         * config/ft32/*: New files for FT32 port.
29077         * doc/install.texi: Add FT32 information.
29078         * doc/invoke.texi: Add FT32 information.
29079         * doc/md.texi: Add FT32 information.
29080         * doc/contrib.texi: Self added.
29081
29082 2015-05-15  Marc Glisse  <marc.glisse@inria.fr>
29083
29084         PR tree-optimization/64454
29085         * match.pd ((X % Y) % Y, (X % Y) < Y): New patterns.
29086         (-1 - A -> ~A): Remove unnecessary condition.
29087
29088 2015-05-15  Gregor Richards  <gregor.richards@uwaterloo.ca>
29089
29090         * config/i386/linux.h (MUSL_DYNAMIC_LINKER): Define.
29091         * config/i386/linux64.h (MUSL_DYNAMIC_LINKER32): Define.
29092         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32): Define.
29093
29094 2015-05-15  Ilya Enkovich  <ilya.enkovich@intel.com>
29095
29096         * ipa-chkp.h (chkp_wrap_function): New.
29097         * ipa-chkp.c (chkp_wrap_function): Remove 'static'.
29098         (chkp_wrap_function_name): New.
29099         (chkp_build_instrumented_fndecl): Use chkp_wrap_function_name
29100         to get wrapper name.
29101         * lto-cgraph.c: Include ipa-chkp.h.
29102         (input_cgraph_1): Avoid alias chain for wrappers.
29103
29104 2015-05-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
29105
29106         PR middle-end/66134
29107         * tree-chkp.c (chkp_get_orginal_bounds_for_abnormal_copy): New.
29108         (chkp_maybe_copy_and_register_bounds): Don't copy abnormal copy.
29109
29110 2015-05-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29111
29112         * config/aarch64/aarch64.h (AARCH64_TUNE_SLOWMUL): Delete.
29113         (AARCH64_FL_SLOWMUL): Delete.
29114         (AARCH64_FL_CRC): Redefine to 1<<3.
29115         (AARCH64_FL_USE_FMA_STEERING_PASS): Redefine to 1<<4.
29116
29117 2015-05-15  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
29118
29119         * config/arm/arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Add appropriate
29120         casting.
29121
29122 2015-05-15  Uros Bizjak  <ubizjak@gmail.com>
29123
29124         * config/alpha/alpha.md (extendqidi2): Use general_operand
29125         instead of some_operand for operand[1] predicate.
29126         (extendhidi2): Ditto.
29127         (cbranchdi4): Use general_operand instead of some_operand
29128         for operand[1] and operands[2] predicates.
29129         (cstoredi4): Ditto.
29130         * config/alpha/predicates.md (some_operand): Remove unused predicate.
29131         (some_ni_operand): Ditto.
29132
29133 2015-05-15  Uros Bizjak  <ubizjak@gmail.com>
29134
29135         * config/alpha/alpha.c (alpha_extract_integer): Do not handle
29136         CONST_WIDE_INT and CONST_DOUBLE.  Assert CONST_INT_P (x).
29137         (alpha_legitimate_constant_p) <case CONST_WIDE_INT>: Check high and
29138         low part of the constant using alpha_emit_set_const_1.
29139         (alpha_expand_mov): Do not handle CONST_WIDE_INT and CONST_DOUBLE.
29140
29141 2015-05-14  Rohit Arul Raj  <rohitrulraj@freescale.com>
29142
29143         * varasm.c (output_constant_pool_1): Pass down alignment from
29144         constant pool entry's descriptor to output_constant_pool_2.
29145         (output_object_block): Add comment prior to call to
29146         output_constant_pool_1.
29147
29148 2015-05-14  Vladimir Makarov  <vmakarov@redhat.com>
29149
29150         PR rtl-optimization/65862
29151         * target.def (ira_change_pseudo_allocno_class): New hook.
29152         * targhooks.c (default_ira_change_pseudo_allocno_class): Default
29153         value of the hook.
29154         * targhooks.h (default_ira_change_pseudo_allocno_class): New extern.
29155         * doc/tm.texi.in (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Add the
29156         hook.
29157         * ira-costs.c (find_costs_and_classes): Call the hook and change
29158         classes when it is necessary.
29159         * doc/tm.texi: Update.
29160
29161 2015-05-14  Alexander Monakov  <amonakov@ispras.ru>
29162
29163         * config/i386/i386.md (sibcall_memory): Check that register with
29164         callee address is not also used as one of the arguments, instead
29165         of checking that it is not live after the sibcall.
29166         (sibcall_pop_memory): Ditto.
29167         (sibcall_value_memory): Ditto.
29168         (sibcall_value_pop_memory): Ditto.
29169
29170 2015-05-14  Marc Glisse  <marc.glisse@inria.fr>
29171
29172         * generic-match-head.c (types_match): Handle non-types.
29173         * gimple-match-head.c (types_match): Likewise.
29174         * match.pd: Remove unnecessary TREE_TYPE for types_match.
29175
29176 2015-05-14  Wilco Dijkstra  <wdijkstr@arm.com>
29177
29178         * config/aarch64/aarch64.md (absdi2): Optimize abs expansion.
29179         (csneg3<mode>_insn): Enable expansion of pattern.
29180
29181 2015-05-14  Nick Clifton  <nickc@redhat.com>
29182
29183         * config/rl78/rl78.c (rl78_select_section): Select the correct
29184         default section based upon the category of the decl.
29185
29186 2015-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
29187
29188         PR rtl-optimization/30967
29189         * config/rs6000/rs6000.c (rs6000_rtx_costs): Don't consider
29190         destination mode for the cost of scc patterns.
29191
29192 2015-05-13  Uros Bizjak  <ubizjak@gmail.com>
29193
29194         * config/i386/i386.md (*mul<mode>3_1): Merge with *mulhi3_1
29195         using SWIM248 mode iterator.
29196         (*mulv<mode>4): Use x86_64_sext_operand for operand[2] constraint.
29197         (*mulvhi4): mark operand[1] as commutative.  Use nonimmediate_operand
29198         for operand[2] constraint.
29199         (*mulv<mode>4_1): Merge with *mulvhi4_1 using SWI248 mode iterator.
29200
29201 2015-05-13  Jakub Jelinek  <jakub@redhat.com>
29202
29203         PR middle-end/66133
29204         * omp-low.c (expand_omp_taskreg): For GIMPLE_OMP_TASK expansion,
29205         make sure it is never noreturn, even when the task body does not
29206         return.
29207         (lower_omp_taskreg): For GIMPLE_OMP_TASK, emit GIMPLE_OMP_CONTINUE
29208         right before GIMPLE_OMP_RETURN.
29209         (make_gimple_omp_edges): Accept GIMPLE_OMP_CONTINUE as ->cont
29210         for GIMPLE_OMP_TASK.  For GIMPLE_OMP_RETURN corresponding to
29211         GIMPLE_OMP_TASK add an EDGE_ABNORMAL edge from entry to exit.
29212
29213 2015-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29214
29215         * params.def (PARAM_MAX_POW_SQRT_DEPTH): New param.
29216         * tree-ssa-math-opts.c: Include params.h
29217         (pow_synth_sqrt_info): New struct.
29218         (representable_as_half_series_p): New function.
29219         (get_fn_chain): Likewise.
29220         (print_nested_fn): Likewise.
29221         (dump_fractional_sqrt_sequence): Likewise.
29222         (dump_integer_part): Likewise.
29223         (expand_pow_as_sqrts): Likewise.
29224         (gimple_expand_builtin_pow): Use above to attempt to expand
29225         pow as series of square roots.  Removed now unused variables.
29226
29227 2015-05-13  Uros Bizjak  <ubizjak@gmail.com>
29228
29229         * config/alpha/alpha.c (alpha_emit_set_long_const): Remove c1 argument.
29230         (alpha_extract_integer): Redeclare as static HOST_WIDE_INT.
29231         Remove *p0 and *p1 arguments.  Rewrite function.
29232         (alpha_legitimate_constant_p): Update call to alpha_extract_integer.
29233         (alpha_split_const_mov): Update calls to alpha_extract_integer and
29234         alpha_emit_set_long_const.
29235         (alpha_expand_epilogue): Update calls to alpha_emit_set_long_const.
29236         (alpha_output_mi_thunk_osf): Ditto.
29237         * config/alpha/alpha.md (movti): Do not check operands[1]
29238         for CONST_DOUBLE.
29239
29240 2015-05-13  Richard Biener  <rguenther@suse.de>
29241
29242         PR tree-optimization/66129
29243         * tree-vect-slp.c (vect_build_slp_tree): Make sure all ops are
29244         commutative.
29245         (vect_schedule_slp_instance): Fix typo.
29246
29247 2015-05-13  David Malcolm  <dmalcolm@redhat.com>
29248
29249         * common.opt (fdump-internal-locations): New option.
29250         * input.c: Include diagnostic-core.h.
29251         (get_end_location): New function.
29252         (write_digit): New function.
29253         (write_digit_row): New function.
29254         (dump_location_range): New function.
29255         (dump_labelled_location_range): New function.
29256         (dump_location_info): New function.
29257         * input.h (dump_location_info): New prototype.
29258         * toplev.c (compile_file): Handle flag_dump_locations.
29259
29260 2015-05-13  Eric Botcazou  <ebotcazou@adacore.com>
29261
29262         * gimple-expr.h (is_gimple_constant): Reorder.
29263         * tree-ssa-propagate.c (before_dom_children): Use inline accessor.
29264
29265 2015-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
29266
29267         * combine.c (simplify_set): When generating a CC set, if the
29268         source already is in the correct mode, do not wrap it in a
29269         compare.  Simplify the rest of that code.
29270
29271 2015-05-13  Richard Biener  <rguenther@suse.de>
29272
29273         PR tree-optimization/66123
29274         * tree-ssa-dom.c (propagate_rhs_into_lhs): Check if we found
29275         a taken edge.
29276
29277 2015-05-13  Richard Biener  <rguenther@suse.de>
29278
29279         PR middle-end/66110
29280         * alias.c (alias_sets_conflict_p): Do not treat has_zero_child
29281         specially.
29282         * Makefile.in (dfp.o-warn): Add -Wno-strict-aliasing.
29283
29284 2015-05-13  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
29285
29286         * doc/install.texi: Bump latest automake 1.11 version to 1.11.6.
29287         * aclocal.m4: Regenerated with automake-1.11.6.
29288
29289 2015-05-13  Tom de Vries  <tom@codesourcery.com>
29290
29291         PR tree-optimization/66010
29292         * gimplify.h (gimplify_va_arg_internal): Remove declaration.
29293         * gimplify.c (gimplify_va_arg_internal): Remove and inline into ...
29294         * tree-stdarg.c (expand_ifn_va_arg_1): ... here.  Choose between lval
29295         and rval based on do_deref.
29296
29297 2015-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
29298
29299         PR target/65103
29300         * config/i386/i386.c (ix86_rtx_costs): We want to propagate
29301         link time constants into adress expressions and therefore set
29302         their cost to 0.
29303
29304 2015-05-13  Jakub Jelinek  <jakub@redhat.com>
29305
29306         PR target/66112
29307         * config/i386/i386.md (mulv<mode>4, umulv<mode>4, *umulv<mode>4):
29308         Use SWI248 iterator instead of SWI.
29309         (*mulv<mode>4_1): Use SWI48 instead of SWI.  Simplify output template.
29310         Use eq_attr "alternative" "0" instead of match_test in
29311         length_immediate attribute computation.
29312         (*mulvhi4, *mulvhi4_1): New define_insns.
29313
29314         PR target/66112
29315         * internal-fn.c (get_min_precision): Use UNSIGNED instead of
29316         SIGNED to get precision of non-negative value.
29317
29318 2015-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
29319
29320         PR target/66048
29321         * function.c (diddle_return_value_1): Process bounds first.
29322         * config/i38/i386.c (ix86_function_value_regno_p): Add bnd1
29323         register.
29324
29325 2015-05-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
29326
29327         PR rtl-optimization/64616
29328         * loop-invariant.c (can_move_invariant_reg): New.
29329         (move_invariant_reg): Call above new function to decide whether
29330         instruction can just be moved, skipping creation of temporary
29331         register.
29332
29333 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
29334
29335         PR target/pr66047.c
29336         * i386.c (ix86_function_sseregparm): Only return -1 if local function
29337         with implied regparm is called from -mno-sse function.
29338         (init_cumulative_args): Output error if ix86_function_sseregparm
29339         return -1 and SSE register would be needed.
29340         (function_arg_advance_32): Likewise.
29341         (function_arg_32): Likewise.
29342         * i386.h (ix86_args): Add decl field.
29343
29344 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
29345
29346         PR ipa/65873
29347         * ipa-inline.c (can_inline_edge_p): Allow early inlining of always
29348         inlines across optimization boundary.
29349
29350 2015-05-12  Jason Merrill  <jason@redhat.com>
29351
29352         * config/mmix/mmix.c, config/msp430/msp430.c: Add space between
29353         string literal and macro name.
29354
29355 2015-05-12  Steve Ellcey  <sellcey@imgtec.com>
29356
29357         * config/mips/mips.c (mips_print_operand): Remove 'y' operand code.
29358         * config/mips/mips.md (<GPR:d>lsa): Rewrite with shift operator.
29359         * config/mips/predicates.md (const_immlsa_operand): Remove log call.
29360
29361 2015-05-12  David Malcolm  <dmalcolm@redhat.com>
29362
29363         * doc/invoke.texi (Warning Options): Add -Wmisleading-indentation.
29364         (-Wmisleading-indentation): New option.
29365         * Makefile.in (C_COMMON_OBJS): Add c-family/c-indentation.o.
29366
29367 2015-05-12  Uros Bizjak  <ubizjak@gmail.com>
29368
29369         * config/alpha/alpha.h (TARGET_SUPPORTS_WIDE_INT): New define.
29370         * config/alpha/alpha.c (alpha_rtx_costs): Handle CONST_WIDE_INT.
29371         (alpha_extract_integer): Ditto.
29372         (alpha_legitimate_constant_p): Ditto.
29373         (alpha_split_tmode_pair): Ditto.
29374         (alpha_preferred_reload_class): Add CONST_WIDE_INT.
29375         (alpha_expand_mov): Ditto.
29376         (print_operand): Remove handling of 'H' modifier.
29377         <case 'm'>: Remove CONST_DOUBLE handling.
29378         (summarize_insn): Handle CONST_WIDE_INT.
29379         * config/alpha/alpha.md (*andsi_internal): Remove H constraint.
29380         (anddi3): Ditto.
29381         (movti): Handle CONST_WIDE_INT.
29382         * config/alpha/constraints.md ('H'): Remove constraint definition.
29383         ('G'): Do not match MODE_FLOAT class.
29384         * config/alpha/predicates.md (const0_operand): Also match
29385         const_wide_int.
29386         (non_add_const_operand): Ditto.
29387         (non_zero_const_operand): Ditto.
29388         (some_operand): Ditto.
29389         (input_operand): Ditto.  Handle CONST_WIDE_INT.
29390         (and_operand): Do not match const_double.
29391         * config/alpha/sync.md (fetchop_constr): Remove H constraint.
29392
29393 2015-05-12  Andrew MacLeod  <amacleod@redhat.com>
29394
29395         PR target/65697
29396         * coretypes.h (MEMMODEL_SYNC, MEMMODEL_BASE_MASK): New macros.
29397         (enum memmodel): Add SYNC_{ACQUIRE,RELEASE,SEQ_CST}.
29398         * tree.h (memmodel_from_int, memmodel_base, is_mm_relaxed,
29399         is_mm_consume,is_mm_acquire, is_mm_release, is_mm_acq_rel,
29400         is_mm_seq_cst, is_mm_sync): New accessor functions.
29401         * builtins.c (expand_builtin_sync_operation,
29402         expand_builtin_compare_and_swap): Use MEMMODEL_SYNC_SEQ_CST.
29403         (expand_builtin_sync_lock_release): Use MEMMODEL_SYNC_RELEASE.
29404         (get_memmodel,  expand_builtin_atomic_compare_exchange,
29405         expand_builtin_atomic_load, expand_builtin_atomic_store,
29406         expand_builtin_atomic_clear): Use new accessor routines.
29407         (expand_builtin_sync_synchronize): Use MEMMODEL_SYNC_SEQ_CST.
29408         * optabs.c (expand_compare_and_swap_loop): Use MEMMODEL_SYNC_SEQ_CST.
29409         (maybe_emit_sync_lock_test_and_set): Use new accessors and
29410         MEMMODEL_SYNC_ACQUIRE.
29411         (expand_sync_lock_test_and_set): Use MEMMODEL_SYNC_ACQUIRE.
29412         (expand_mem_thread_fence, expand_mem_signal_fence, expand_atomic_load,
29413         expand_atomic_store): Use new accessors.
29414         * emit-rtl.c (need_atomic_barrier_p): Add additional enum cases.
29415         * tsan.c (instrument_builtin_call): Update check for memory model beyond
29416         final enum to use MEMMODEL_LAST.
29417         * c-family/c-common.c: Use new accessor for memmodel_base.
29418         * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap): Use new
29419         accessors.
29420         * config/aarch64/atomics.md (atomic_load<mode>,atomic_store<mode>,
29421         arch64_load_exclusive<mode>, aarch64_store_exclusive<mode>,
29422         mem_thread_fence, *dmb): Likewise.
29423         * config/alpha/alpha.c (alpha_split_compare_and_swap,
29424         alpha_split_compare_and_swap_12): Likewise.
29425         * config/arm/arm.c (arm_expand_compare_and_swap,
29426         arm_split_compare_and_swap, arm_split_atomic_op): Likewise.
29427         * config/arm/sync.md (atomic_load<mode>, atomic_store<mode>,
29428         atomic_loaddi): Likewise.
29429         * config/i386/i386.c (ix86_destroy_cost_data, ix86_memmodel_check):
29430         Likewise.
29431         * config/i386/sync.md (mem_thread_fence, atomic_store<mode>): Likewise.
29432         * config/ia64/ia64.c (ia64_expand_atomic_op): Add new memmodel cases and
29433         use new accessors.
29434         * config/ia64/sync.md (mem_thread_fence, atomic_load<mode>,
29435         atomic_store<mode>, atomic_compare_and_swap<mode>,
29436         atomic_exchange<mode>): Use new accessors.
29437         * config/mips/mips.c (mips_process_sync_loop): Likewise.
29438         * config/pa/pa.md (atomic_loaddi, atomic_storedi): Likewise.
29439         * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier,
29440         rs6000_post_atomic_barrier): Add new cases.
29441         (rs6000_expand_atomic_compare_and_swap): Use new accessors.
29442         * config/rs6000/sync.md (mem_thread_fence): Add new cases.
29443         (atomic_load<mode>): Add new cases and use new accessors.
29444         (store_quadpti): Add new cases.
29445         * config/s390/s390.md (mem_thread_fence, atomic_store<mode>): Use new
29446         accessors.
29447         * config/sparc/sparc.c (sparc_emit_membar_for_model): Use new accessors.
29448         * doc/extend.texi: Update docs to indicate 16 bits are used for memory
29449         model, not 8.
29450
29451 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
29452
29453         * ipa-devirt.c (type_with_linkage_p): New function.
29454         (type_in_anonymous_namespace_p): Move here from tree.c; assert that
29455         type has linkage.
29456         (odr_type_p): Move here from ipa-utils.h; use type_with_linkage_p.
29457         (can_be_name_hashed_p): Simplify.
29458         (hash_odr_name): Check that type has linkage before checking if it is
29459         anonymous.
29460         (types_same_for_odr): Likewise.
29461         (odr_name_hasher::equal): Likewise.
29462         (odr_subtypes_equivalent_p): Likewise.
29463         (warn_types_mismatch): Likewise.
29464         (get_odr_type): Likewise.
29465         (odr_types_equivalent_p): Fix checking of TYPE_MAIN_VARIANT.
29466         * ipa-utils.h (odr_type_p): Move offline.
29467         * tree.c (need_assembler_name_p): Fix handling of types
29468         without linkages.
29469         (type_in_anonymous_namespace_p): Move to ipa-devirt.c
29470
29471 2015-05-12  David Malcolm  <dmalcolm@redhat.com>
29472
29473         * timevar.c (timevar_enable): Delete in favor of...
29474         (g_timer): New global.
29475         (struct timevar_def): Move to timevar.h inside class timer.
29476         (struct timevar_stack_def): Likewise.
29477         (timevars): Delete global in favor of field "m_timevars" within
29478         class timer in timevar.h
29479         (stack): Likewise, in favor of field "m_stack".
29480         (unused_stack_instances): Likewise, in favor of field
29481         "m_unused_stack_instances".
29482         (start_time): Likewise, in favor of field "m_start_time".
29483         (get_time): Eliminate check for timevar_enable.
29484         (timer::timer): New function, built from part of timevar_init.
29485         (timevar_init): Rewrite idempotency test from using
29486         "timevar_enable" bool to using dynamic allocation of "g_timer".
29487         Move rest of implementation into timer's constructor.
29488         (timevar_push_1): Rename to...
29489         (timer::push): ...this, adding "m_" prefixes to variables that
29490         are now fields of timer.
29491         (timevar_pop_1): Likewise, rename to...
29492         (timer::pop): ...this, and add "m_" prefixes.
29493         (timevar_start): Replace test for "timevar_enable" with one for
29494         "g_timer", and move bulk of implementation to...
29495         (timer::start): ...here, adding "m_" prefixes.
29496         (timevar_stop): Likewise, from here...
29497         (timer::stop): ...to here.
29498         (timevar_cond_start): Likewise, from here...
29499         (timer::cond_start): ...to here.
29500         (timevar_cond_stop): Likewise, from here...
29501         (timer::cond_stop): ...to here.
29502         (validate_phases): Rename to...
29503         (timer::validate_phases): ...this, and add "m_" prefixes.  Make
29504         locals "total" and "tv" const.
29505         (timevar_print): Rename to...
29506         (timer::print): ...this, and add "m_" prefixes.  Make locals
29507         "total" and "tv" const.  Eliminate test for timevar_enable.
29508         * timevar.h (timevar_enable): Eliminate.
29509         (g_timer): New declaration.
29510         (timevar_push_1): Eliminate.
29511         (timevar_pop_1): Eliminate.
29512         (timevar_print): Eliminate.
29513         (class timer): New class.
29514         (timevar_push): Rewrite to use g_timer.
29515         (timevar_pop): Likewise.
29516         * toplev.c (toplev::~toplev): Likewise.
29517
29518 2015-05-12  Richard Earnshaw  <rearnsha@arm.com>
29519
29520         * arm-protos.h (arm_sched_autopref): Delete.
29521         (tune_params): Re-organize, use enums for flag values.
29522         (FUSE_OPS): New macro.
29523         * arm.c (ARM_PREFETCH_NOT_BENEFICIAL): Update.
29524         (ARM_PREFETCH_BENEFICIAL): Likewise.
29525         (ARM_FUSE_NOTHING, ARM_FUSE_MOVW_MOVT): Delete.
29526         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
29527         (arm_xscale_tune, arm_9e_tune, arm_marvell_pj4_tune)
29528         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a8_tune)
29529         (arm_cortex_a7_tune, arm_cortex_a15_tune, arm_cortex_a53_tune)
29530         (arm_cortex_a57_tune,  arm_xgene1_tune, arm_cortex_a5_tune)
29531         (arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune)
29532         (arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune): Use new
29533         format.
29534         (arm_option_override, thumb2_reorg, arm_print_tune_info)
29535         (aarch_macro_fusion_pair_p): Update uses of current_tune.
29536         * arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Likewise.
29537
29538 2015-05-12  Sandra Loosemore  <sandra@codesourcery.com>
29539
29540         * config/nios2/nios2.md (trap, ctrapsi4): Use "trap" instead of
29541         "break".
29542
29543 2015-05-12  Chung-Lin Tang  <cltang@codesourcery.com>
29544             Sandra Loosemore <sandra@codesourcery.com>
29545
29546         * config/nios2/nios2.h (enum reg_class): Add IJMP_REGS enum
29547         value.
29548         (REG_CLASS_NAMES): Add "IJMP_REGS".
29549         (REG_CLASS_CONTENTS): Add new entry for IJMP_REGS.
29550         * config/nios2/nios2.md (indirect_jump,*tablejump): Adjust to
29551         use new "c" register constraint.
29552         * config/nios2/constraint.md (c): New register constraint
29553         corresponding to IJMP_REGS.
29554
29555 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
29556
29557         * config/rs6000/rs6000.md (*rotlsi3_internal4, *rotlsi3_internal5,
29558         *rotlsi3_internal6, rlwinm, 5 unnamed define_insns, and 6
29559         define_splits): Delete, revamp, transmogrify into ...
29560         (*rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
29561         *ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
29562         *lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
29563         New.
29564
29565 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
29566
29567         * config/rs6000/rs6000.md (rs6000_adjust_atomic_subword): Use
29568         gen_ashlsi3 and gen_andsi3 instead of gen_rlwinm.
29569
29570 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
29571
29572         * config/rs6000/rs6000.md (extzv): FAIL for SImode.
29573         (extzvsi_internal, *extzvsi_internal1, *extzvsi_internal2,
29574         *rotlsi3_internal7le, *rotlsi3_internal7be, *rotlsi3_internal8le,
29575         *rotlsi3_internal8be, *rotlsi3_internal9le, *rotlsi3_internal9be,
29576         *rotlsi3_internal10le, *rotlsi3_internal10be, *rotlsi3_internal11le,
29577         *rotlsi3_internal11be, *rotlsi3_internal12le, *rotlsi3_internal12be,
29578         *lshiftrt_internal1le, *lshiftrt_internal1be, *lshiftrt_internal2le,
29579         *lshiftrt_internal2be, *lshiftrt_internal3le, *lshiftrt_internal3be,
29580         *lshiftrt_internal4le, *lshiftrt_internal4be, *lshiftrt_internal5le,
29581         *lshiftrt_internal5be, *lshiftrt_internal5le, *lshiftrt_internal5be,
29582         *rotldi3_internal7le, *rotldi3_internal7be, *rotldi3_internal8le,
29583         *rotldi3_internal8be, *rotldi3_internal9le, *rotldi3_internal9be,
29584         *rotldi3_internal10le, *rotldi3_internal10be, *rotldi3_internal11le,
29585         *rotldi3_internal11be, *rotldi3_internal12le, *rotldi3_internal12be,
29586         *rotldi3_internal13le, *rotldi3_internal13be, *rotldi3_internal14le,
29587         *rotldi3_internal14be, *rotldi3_internal15le, *rotldi3_internal15be,
29588         and 30 corresponding splitters): Delete.
29589
29590 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
29591
29592         * config/rs6000/rs6000.md (define_split for bswaphi): Don't use
29593         zero_extract.
29594
29595 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
29596
29597         * combine.c (recog_for_combine_1): New function, factored out
29598         from recog_for_combine.
29599         (change_zero_ext): New function.
29600         (recog_for_combine): If recog fails, try again with the pattern
29601         modified by change_zero_ext; if that still fails, restore the
29602         pattern.
29603
29604 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
29605
29606         * combine.c (get_undo_marker): New function.
29607         (undo_to_marker): New function, largely factored out from ...
29608         (undo_all): ... this.  Adjust.
29609
29610 2015-05-12  Richard Biener  <rguenther@suse.de>
29611
29612         PR tree-optimization/66101
29613         * tree-ssa-dce.c (remove_dead_stmt): Properly mark loops for
29614         fixup if we turn a loop exit edge to a fallthru edge.
29615
29616 2015-05-12  Richard Biener  <rguenther@suse.de>
29617
29618         PR tree-optimization/37021
29619         * tree-vectorizer.h (struct _slp_tree): Add two_operators flag.
29620         (SLP_TREE_TWO_OPERATORS): New define.
29621         * tree-vect-slp.c (vect_create_new_slp_node): Initialize
29622         SLP_TREE_TWO_OPERATORS.
29623         (vect_build_slp_tree_1): Allow two mixing plus/minus in an
29624         SLP node.
29625         (vect_build_slp_tree): Adjust.
29626         (vect_analyze_slp_cost_1): Likewise.
29627         (vect_schedule_slp_instance): Vectorize mixing plus/minus by
29628         emitting two vector stmts and mixing the results.
29629
29630 2015-05-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>
29631
29632         * call.c (print_z_candidates): Remove dead code.
29633
29634 2015-05-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
29635
29636         * config/s390/2827.md: Split zEC12_simple into zEC12_simple_int
29637         and zEC12_simple_fp.
29638         * config/s390/s390.c (s390_issue_rate): Set issue rate for zEC12
29639         to 1.
29640
29641 2015-05-12  Tom de Vries  <tom@codesourcery.com>
29642
29643         PR tree-optimization/66010
29644         * gimplify.c (gimplify_modify_expr): Handle new do_deref argument of
29645         ifn_va_arg.
29646         * gimplify.h (gimplify_va_arg_internal): Remove loc parameter.
29647         (gimplify_va_arg_internal): Remove loc parameter.  Assert no array-typed
29648         va_lists are passed, and remove corresponding handling.
29649         (gimplify_va_arg_expr): Only take address of ap if necessary.  Add
29650         do_deref argument to ifn_va_arg.
29651         * tree-stdarg.c (expand_ifn_va_arg_1): Handle new do_deref argument of
29652         ifn_va_arg.
29653
29654 2015-05-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29655
29656         PR target/65955
29657         * config/arm/arm.md (movcond_addsi): Check that operands[2] is a
29658         REG before taking its REGNO.
29659
29660 2015-05-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
29661
29662         * combine.c i(set_nonzero_bits_and_sign_copies): Split code updating
29663         rsp->sign_bit_copies and rsp->nonzero_bits into ...
29664         (update_rsp_from_reg_equal): This.  Also use REG_EQUAL note on src if
29665         present to get more accurate information about the number of sign bit
29666         copies and non zero bits.
29667
29668 2015-05-12  Richard Biener  <rguenther@suse.de>
29669
29670         * tree-vect-slp.c (vect_build_slp_tree_1): For BB vectorization
29671         do not allow unrolling.
29672
29673 2015-05-11  Richard Henderson  <rth@redhat.com>
29674
29675         * config/i386/i386-modes.def (CCP): New.
29676         * config/i386/i386.c (put_condition_code): Handle it.
29677         (ix86_match_ccmode, ix86_cc_modes_compatible): Likewise.
29678
29679 2015-05-11  Richard Henderson  <rth@redhat.com>
29680
29681         * target.def (md_asm_clobbers): Replace with...
29682         (md_asm_adjust): this.
29683         * tm.texi.in (TARGET_MD_ASM_CLOBBERS): Remove.
29684         (TARGET_MD_ASM_ADJUST): New.
29685         * tm.texi: Rebuild.
29686         * hooks.c (hook_tree_tree_tree_tree_3rd_identity): Remove.
29687         * hooks.h (hook_tree_tree_tree_tree_3rd_identity): Remove.
29688         * system.h (TARGET_MD_ASM_CLOBBERS): Poison.
29689
29690         * cfgexpand.c (check_operand_nalternatives): Accept vector of
29691         constraints instead of lists of outputs and inputs.
29692         (expand_asm_stmt): Save and restore input_location around the
29693         body of the function.  Move asm data into vectors instead of
29694         building tree lists.  Generate cleanup sequences as needed,
29695         rather than waiting til the end.  Use new md_asm_adjust hook.
29696
29697         * config/vxworks.c: Include vec.h before target.h.
29698         * gimple.c: Likewise.
29699         * incpath.c: Likewise.
29700         * mode-switching.c: Likewise.
29701
29702         * config/cris/cris.c (cris_md_asm_clobbers): Convert to...
29703         (cris_md_asm_adjust): this.
29704         (TARGET_MD_ASM_CLOBBERS): Remove.
29705         (TARGET_MD_ASM_ADJUST): New.
29706         * config/i386/i386.c (ix86_md_asm_clobbers): Convert to...
29707         (ix86_md_asm_adjust): this.
29708         (TARGET_MD_ASM_CLOBBERS): Remove.
29709         (TARGET_MD_ASM_ADJUST): New.
29710         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): Convert to...
29711         (mn10300_md_asm_adjust): this.
29712         (TARGET_MD_ASM_CLOBBERS): Remove.
29713         (TARGET_MD_ASM_ADJUST): New.
29714         * config/rs6000/rs6000.c (rs6000_md_asm_clobbers): Convert to...
29715         (rs6000_md_asm_adjust): this.
29716         (TARGET_MD_ASM_CLOBBERS): Remove.
29717         (TARGET_MD_ASM_ADJUST): New.
29718         * config/visium/visium.c (visium_md_asm_clobbers): Convert to...
29719         (visium_md_asm_adjust): this.
29720         (TARGET_MD_ASM_CLOBBERS): Remove.
29721         (TARGET_MD_ASM_ADJUST): New.
29722
29723 2015-05-11  Richard Henderson  <rth@redhat.com>
29724
29725         * gimplify.c (gimplify_asm_expr): Set gimple_asm_volatile_p
29726         if noutputs is zero.
29727         * cfgexpand.c (expand_asm_stmt): Use gimple_asm_volatile_p unchanged.
29728
29729         * cfgexpand.c (expand_asm_operands): Merge into...
29730         (expand_asm_stmt): ... here.
29731
29732         * cfgexpand.c (expand_asm_operands): Don't call
29733         resolve_asm_operand_names.
29734         * stmt.c (resolve_asm_operand_names): Clarify block comment.
29735
29736 2015-05-11  Jan Hubicka  <hubicka@ucw.cz>
29737
29738         * dwarf2out.c (gen_member_die): Sanity check that we access
29739         TYPE_MAIN_VARIANT for TYPE_METHODS.
29740         * function.c (use_register_for_decl): Look for TYPE_MAIN_VARIANT when
29741         checking TYPE_METHODS.
29742         * tree.c (free_lang_data_in_type): See TYPE_METHODS to error_mark_node
29743         if non-null.
29744         (build_distinct_type_copy): Clear TYPE_METHODS.
29745         (verify_type_variant): Verify that TYPE_METHODS is NULL for variants.
29746         (verify_type): Allow TYPE_METHODS to be error_mark_node.
29747         * tree.def: Update docs of TYPE_STUB_DECL and TYPE_METHODS.
29748
29749 2015-05-11  Eric Botcazou  <ebotcazou@adacore.com>
29750
29751         * emit-rtl.c (emit_pattern_after_setloc): Add missing guard.
29752         (emit_pattern_before_setloc): Likewise.
29753
29754 2015-05-11  Richard Sandiford  <richard.sandiford@arm.com>
29755
29756         * genrecog.c (match_pattern_1): Expect the pattern to be a SEQUENCE
29757         for define_peephole2s.
29758         (get_peephole2_pattern): New function.
29759         (main): Use it.  Call validate_pattern.
29760
29761 2015-05-11  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
29762
29763         * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Use
29764         LAST_CALLEE_SAVED_REG instead of hard-coded register number.
29765         (Last callee saved reg is different for AVR_TINY architecture)
29766
29767 2015-05-11  Uros Bizjak  <ubizjak@gmail.com>
29768
29769         * config/i386/i386.c (ix86_loop_unroll_adjust): Use PATTERN (insn)
29770         when looking for memory references.
29771
29772 2015-05-11  Alexander Monakov  <amonakov@ispras.ru>
29773
29774         PR target/65753
29775         * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow PIC sibcalls
29776         via function pointers.
29777
29778 2015-05-11  Alexander Monakov  <amonakov@ispras.ru>
29779
29780         * calls.c (prepare_call_address): Transform PLT call to GOT lookup and
29781         indirect call by forcing address into a pseudo with -fno-plt.
29782         * common.opt (flag_plt): New option.
29783         * doc/invoke.texi (Code Generation Options): Add -fno-plt.
29784         ([-fno-plt]): Document.
29785
29786 2015-05-11  Markus Trippelsdorf  <markus@trippelsdorf.de>
29787
29788         PR bootstrap/66105
29789         * config/rs6000/option-defaults.h: Add space between string literal
29790         and macro name.
29791
29792 2015-05-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>
29793
29794         * gcc.target/arm/pr64616.c: Test dump rather than assembly to work
29795         accross ARM targets.
29796
29797 2015-05-11  Christian Bruel  <christian.bruel@st.com>
29798
29799         * config/arm/arm-protos.h (thumb_code, thumb1_code): Remove.
29800         * config/arm/vxworks.h (thumb_code): Replace with TARGET_THUMB.
29801
29802 2015-05-11  Richard Sandiford  <richard.sandiford@arm.com>
29803
29804         PR rtl-optimization/66076
29805         * rtlanal.c (generic_subrtx_iterator <T>::add_single_to_queue):
29806         Don't grow the heap array if it is already big enough from a
29807         previous iteration.
29808
29809 2015-05-11  Christian Bruel  <christian.bruel@st.com>
29810
29811         * config/arm/arm-protos.h (arm_declare_function_name): Declare.
29812         (is_called_in_ARM_mode): Remove.
29813         * config/arm/arm.c (is_called_in_ARM_mode): Declare static bool.
29814         (arm_declare_function_name): Moved from from ARM_DECLARE_FUNCTION_NAME.
29815         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Call
29816          arm_declare_function_name.
29817
29818 2015-05-11  Christian Bruel  <christian.bruel@st.com>
29819
29820         * config/arm/arm.c (arm_option_override): Reoganized and split into :
29821         (arm_option_params_internal); New function.
29822         (arm_option_check_internal): New function.
29823         (arm_option_override_internal): New function.
29824         (thumb_code, thumb1_code): Remove.
29825         * config/arm/arm.h (TREE_TARGET_THUMB, TREE_TARGET_THUMB1): New macros.
29826         (TREE_TARGET_THUM2, TREE_TARGET_ARM): Likewise.
29827         (thumb_code, thumb1_code): Remove.
29828         * config/arm/arm.md (is_thumb, is_thumb1): Check TARGET flag.
29829
29830 2015-05-11  Uros Bizjak  <ubizjak@gmail.com>
29831
29832         * config/alpha/alpha.c (alpha_emit_set_const_1)
29833         (alpha_emit_set_long_const, alpha_extract_integer)
29834         (alpha_legitimate_constant_p, alpha_split_const_mov)
29835         (alpha_expand_block_clear, alpha_expand_zap_mask, print_operand):
29836         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
29837         (alpha_emit_set_const_1): Change "(HOST_WIDE_INT) 1" to
29838         HOST_WIDE_INT_1U.
29839         * config/alpha/predicates.md (mode_mask_operand): Do not match
29840         const_double RTX.
29841         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
29842         * config/alpha/alpha.md (abstf, *abstf_internal, UNSPEC_ZAP splitter):
29843         Change "(HOST_WIDE_INT) 1" to HOST_WIDE_INT_1U.
29844         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
29845         (*negtf_internal): Use gen_int_mode instead of immed_double_const.
29846
29847 2015-05-11  Jakub Jelinek  <jakub@redhat.com>
29848
29849         PR target/65780
29850         * config/s390/linux.h (TARGET_BINDS_LOCAL_P): Define to
29851         default_binds_local_p_2.
29852         * config/arm/linux-elf.h (TARGET_BINDS_LOCAL_P): Likewise.
29853         * config/aarch64/aarch64-linux.h (TARGET_BINDS_LOCAL_P): Likewise.
29854
29855 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
29856
29857         * tree.c (verify_type_variant): Check TYPE_VALUES_RAW and TYPE_PRECISION
29858
29859 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
29860
29861         Patch by Richard Biener
29862         * coverage.c (coverage_obj_init): Delay building of type variant
29863         until the type is finished.
29864
29865 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
29866
29867         * ipa-devirt.c (warn_types_mismatch): Do not ICE when warning about
29868         mismatch between C and C++ type; compoare correctly ARG_TYPES
29869         for non-prototypes and output correctly parameter index for METHOD_TYPE.
29870         (odr_types_equivalent_p): Fix wording of warning about attributes;
29871         it is OK to match prototype and non-prototype.
29872
29873 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
29874
29875         * tree.c (free_lang_data_in_type): Free TREE_PURPOSE of
29876         TYPE_ARG_TYPES list.
29877         (verify_type): Permit non-NULL TREE_PURPOSE in non-LTO builds.
29878         * tree.def (FUNCTION_TYPE): Document TREE_PURPOSE in TYPE_ARG_TYPES
29879
29880 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
29881
29882         * tree.c (verify_type): Verify TYPE_BINFO and TYPE_VALUES_RAW.
29883         * tree.h (is_lang_specific): Constify.
29884
29885 2015-05-09  Marc Glisse  <marc.glisse@inria.fr>
29886
29887         PR tree-optimization/64454
29888         * tree-vrp.c (extract_range_from_binary_expr_1) <TRUNC_MOD_EXPR>:
29889         Rewrite.
29890
29891 2015-05-08  Jason Merrill  <jason@redhat.com>
29892
29893         * bitmap.c, c/c-aux-info.c, cfg.c, cfghooks.c, cgraph.c,
29894         config/aarch64/aarch64.md config/alpha/vms.h, config/darwin.c,
29895         config/darwin.h, config/darwin9.h, config/elfos.h,
29896         config/i386/bsd.h, config/ia64/ia64.c, config/lm32/lm32.h,
29897         config/microblaze/microblaze.h, config/mips/mips.h,
29898         config/mmix/mmix.c, config/msp430/msp430.c, config/nios2/nios2.h,
29899         config/nvptx/nvptx.c, config/nvptx/nvptx.h, config/pa/pa.c,
29900         config/pa/pa.h, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
29901         config/rs6000/xcoff.h, config/rx/rx.h, config/s390/s390.h,
29902         config/sparc/sol2.h, config/sparc/sparc.h, config/visium/visium.h,
29903         cppbuiltin.c, defaults.h, doc/invoke.texi, dwarf2cfi.c,
29904         dwarf2out.c, final.c, gcc.c, gcov-dump.c, gcov.c, ipa-cp.c,
29905         ipa-inline.c, ipa-polymorphic-call.c, ipa-profile.c, ipa-prop.c,
29906         ira-color.c, ira.c, loop-doloop.c, loop-iv.c, mcf.c,
29907         modulo-sched.c, predict.c, profile.c, stor-layout.c, toplev.c,
29908         tree-ssa-reassoc.c, value-prof.c, wide-int-print.cc: Add space
29909         between string literal and macro name.
29910
29911 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29912
29913         * jump.c: Change argument types to rtx_insn *.
29914         * rtl.h: Adjust.
29915
29916 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29917
29918         * lra-constraints.c: Change argument type to rtx_insn *.
29919
29920 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29921
29922         * df-problems.c: Change argument type to rtx_insn *.
29923
29924 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29925
29926         * combine.c: Change argument type to rtx_insn *.
29927
29928 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29929
29930         * rtl.h: Adjust.
29931         * rtlanal.c: Change argument type to rtx_insn *.
29932
29933 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29934
29935         * sched-deps.c: Change argument types to rtx_insn *.
29936         * sched-int.h: Adjust.
29937
29938 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29939
29940         * dwarf2cfi.c: Change argument type to rtx_insn *.
29941
29942 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29943
29944         * ira.c (decrease_live_ranges_number): Changetype of local
29945         variable to rtx_insn *.
29946         * recog.c: Change argument types to rtx_insn *.
29947         * recog.h: Adjust.
29948
29949 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29950
29951         * reorg.c: Change argument types to rtx_insn *.
29952
29953 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29954
29955         * ira-color.c: Change argument types to rtx_insn *.
29956         * lra-eliminations.c: Likewise.
29957         * ira.h: Adjust.
29958
29959 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29960
29961         * gcse.c: Change argument types to rtx_insn *.
29962
29963 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29964
29965         * cse.c (cse_change_cc0_mode): Change argument type to rtx_insn *.
29966
29967 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29968
29969         * emit-rtl.c (emit_debug_insn_before): Change argument type to
29970         rtx_insn *.
29971         * rtl.h: Adjust.
29972
29973 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29974
29975         * emit-rtl.c (emit_note_before): Change argument type to rtx_insn *.
29976         * rtl.h: Adjust.
29977
29978 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29979
29980         * emit-rtl.c (emit_note_after): Change argument type to rtx_insn *.
29981         * rtl.h: Adjust.
29982
29983 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29984
29985         * emit-rtl.c (prev_cc0_setter): Change argument type to rtx_insn *.
29986         * rtl.h: Adjust.
29987
29988 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29989
29990         * rtlanal.c (noop_move_p): Change argument type to rtx_insn *.
29991         * rtl.h: Adjust.
29992
29993 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29994
29995         * rtlanal.c (add_shallow_copy_of_reg_note): Change argument type
29996         to rtx_insn *.
29997         * rtl.h: Adjust.
29998
29999 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30000
30001         * rtlanal.c (remove_reg_equal_equiv_notes): Change argument type
30002         to rtx_insn *.
30003         * rtl.h: Likewise.
30004
30005 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30006
30007         * except.c (can_nonlocal_goto): Change type of argument to
30008         rtx_insn *.
30009         * rtl.h: Adjust.
30010
30011 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30012
30013         * rtlanal.c (computed_jump_p): Cange argument type to rtx_insn *.
30014         * rtl.h: Adjust.
30015
30016 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30017
30018         * rtlanal.c (in_insn_list_p): Renamed from in_expr_list_p.
30019         * cfgrtl.c (can_delete_label_p): Adjust.
30020         * rtl.h: likewise.
30021
30022 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30023
30024         * reorg.c (stop_search_p): Change argument to rtx_insn *.
30025
30026 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30027
30028         * except.c (make_reg_eh_region_note): Change argument to
30029         rtx_insn *.
30030         (make_reg_eh_region_note_nothrow_nononlocal): Likewise.
30031         * except.h: Adjust.
30032
30033 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30034
30035         * mode-switching.c (commit_mode_sets): Change type of local
30036         variable from rtx to rtx_insn *.
30037
30038 2015-05-08  Jim Wilson  <jim.wilson@linaro.org>
30039
30040         * doc/install.texi (--enable-languages): Add missing jit and lto info.
30041         Add ^ to grep command.
30042         * doc/match-and-simplify.texi (GIMPLE API): Add missing fourth tree
30043         arg to last gimple_simplify declaration.  Add missing gimple_build
30044         declaration for built-in function case with four tree args.
30045
30046 2015-05-08  Gregor Richards  <gregor.richards@uwaterloo.ca>
30047             Szabolcs Nagy  <szabolcs.nagy@arm.com>
30048
30049         * config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Define.
30050         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Define.
30051         (GNU_USER_DYNAMIC_LINKERN32): Update.
30052
30053 2015-05-08  Richard Biener  <rguenther@suse.de>
30054
30055         PR tree-optimization/66036
30056         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
30057         Handle strided group loads.
30058         (vect_verify_datarefs_alignment): Likewise.
30059         (vect_enhance_data_refs_alignment): Likewise.
30060         (vect_analyze_group_access): Likewise.
30061         (vect_analyze_data_ref_access): Likewise.
30062         (vect_analyze_data_ref_accesses): Likewise.
30063         * tree-vect-stmts.c (vect_model_load_cost): Likewise.
30064         (vectorizable_load): Likewise.
30065
30066 2015-05-08  Segher Boessenkool  <segher@kernel.crashing.org>
30067
30068         * config/rs6000/rs6000.md: Require operand inequality in one
30069         of the peepholes.
30070
30071 2015-05-08  Richard Sandiford  <richard.sandiford@arm.com>
30072             Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
30073
30074         * config/i386/i386.md (<mode>_ldx, *<mode>_ldx): Remove mode
30075         from (set ...).
30076         * config/rx/rx.md (movdi, movdf): Likewise.
30077         Likewise for define_peephole2s.
30078
30079 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
30080
30081         * config/aarch64/arm_neon.h (vceq_s64, vceq_u64, vceqz_s64, vceqz_u64,
30082         vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64, vcgtz_s64, vcle_s64,
30083         vcle_u64, vclez_s64, vclt_s64, vclt_u64, vcltz_s64, vtst_s64,
30084         vtst_u64): Rewrite using gcc vector extensions.
30085
30086 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
30087
30088         * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>,
30089         vcond<mode><mode>, vcondu<mode><mode>): Add DImode variant.
30090
30091 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
30092
30093         * optabs.c (vector_compare_rtx): Handle RTL operands having VOIDmode.
30094
30095 2015-05-08  Szabolcs Nagy  <szabolcs.nagy@arm.com>
30096
30097         * config/glibc-stdint.h (OPTION_MUSL): Define.
30098         (INT_FAST16_TYPE, INT_FAST32_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE):
30099         Change the definition based on OPTION_MUSL for 64 bit targets.
30100         * config/linux.h (OPTION_MUSL): Redefine.
30101         * config/alpha/linux.h (OPTION_MUSL): Redefine.
30102         * config/rs6000/linux.h (OPTION_MUSL): Redefine.
30103         * config/rs6000/linux64.h (OPTION_MUSL): Redefine.
30104
30105 2015-05-08  Gregor Richards  <gregor.richards@uwaterloo.ca>
30106             Szabolcs Nagy  <szabolcs.nagy@arm.com>
30107
30108         * config.gcc (LIBC_MUSL): New tm_defines macro.
30109         * config/linux.h (OPTION_MUSL): Define.
30110         (MUSL_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER32,)
30111         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32,)
30112         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
30113         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
30114         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
30115         * config/linux.opt (mmusl): New option.
30116         * doc/invoke.texi (GNU/Linux Options): Document -mmusl.
30117         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
30118         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
30119         * configure: Regenerate.
30120
30121 2015-05-08  H.J. Lu  <hongjiu.lu@intel.com>
30122             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
30123
30124         PR target/48904
30125         * config.gcc (x86_64-*-knetbsd*-gnu): Add i386/knetbsd-gnu64.h.
30126         * config/i386/knetbsd-gnu64.h: New file.
30127
30128 2015-05-08  Marek Polacek  <polacek@redhat.com>
30129
30130         PR c/64918
30131         * doc/invoke.texi: Document -Woverride-init-side-effects.
30132
30133 2015-05-07  Marek Polacek  <polacek@redhat.com>
30134
30135         PR c/65179
30136         * doc/invoke.texi: Document -Wshift-negative-value.
30137
30138 2015-05-06  Aditya Kumar  <hiraditya@msn.com>
30139
30140         * gcov-tool.c (do_merge): Refactore to remove int ret.
30141         * ipa-icf.c (sem_item::hash_referenced_symbol_properties): Change
30142         !type == FUNC to type != FUNC.
30143         * reload.h (struct target_reload): Changee to type of
30144         x_spill_indirect_levels from bool to unsigned char.
30145
30146 2015-05-07  Richard Sandiford  <richard.sandiford@arm.com>
30147
30148         * rtl.h (always_void_p): New function.
30149         * gengenrtl.c (always_void_p): Likewise.
30150         (genmacro): Don't add a mode parameter to gen_rtx_foo if rtxes
30151         with code foo are always VOIDmode.
30152         * genemit.c (gen_exp): Update gen_rtx_foo calls accordingly.
30153         * builtins.c, caller-save.c, calls.c, cfgexpand.c, combine.c,
30154         compare-elim.c, config/aarch64/aarch64.c,
30155         config/aarch64/aarch64.md, config/alpha/alpha.c,
30156         config/alpha/alpha.md, config/arc/arc.c, config/arc/arc.md,
30157         config/arm/arm-fixed.md, config/arm/arm.c, config/arm/arm.md,
30158         config/arm/ldrdstrd.md, config/arm/thumb2.md, config/arm/vfp.md,
30159         config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
30160         config/c6x/c6x.md, config/cr16/cr16.c, config/cris/cris.c,
30161         config/cris/cris.md, config/darwin.c, config/epiphany/epiphany.c,
30162         config/epiphany/epiphany.md, config/fr30/fr30.c, config/frv/frv.c,
30163         config/frv/frv.md, config/h8300/h8300.c, config/i386/i386.c,
30164         config/i386/i386.md, config/i386/sse.md, config/ia64/ia64.c,
30165         config/ia64/vect.md, config/iq2000/iq2000.c,
30166         config/iq2000/iq2000.md, config/lm32/lm32.c, config/lm32/lm32.md,
30167         config/m32c/m32c.c, config/m32r/m32r.c, config/m68k/m68k.c,
30168         config/m68k/m68k.md, config/mcore/mcore.c, config/mcore/mcore.md,
30169         config/mep/mep.c, config/microblaze/microblaze.c,
30170         config/mips/mips.c, config/mips/mips.md, config/mmix/mmix.c,
30171         config/mn10300/mn10300.c, config/msp430/msp430.c,
30172         config/nds32/nds32-memory-manipulation.c, config/nds32/nds32.c,
30173         config/nds32/nds32.md, config/nios2/nios2.c, config/nvptx/nvptx.c,
30174         config/pa/pa.c, config/pa/pa.md, config/rl78/rl78.c,
30175         config/rs6000/altivec.md, config/rs6000/rs6000.c,
30176         config/rs6000/rs6000.md, config/rs6000/vector.md,
30177         config/rs6000/vsx.md, config/rx/rx.c, config/rx/rx.md,
30178         config/s390/s390.c, config/s390/s390.md, config/sh/sh.c,
30179         config/sh/sh.md, config/sh/sh_treg_combine.cc,
30180         config/sparc/sparc.c, config/sparc/sparc.md, config/spu/spu.c,
30181         config/spu/spu.md, config/stormy16/stormy16.c,
30182         config/tilegx/tilegx.c, config/tilegx/tilegx.md,
30183         config/tilepro/tilepro.c, config/tilepro/tilepro.md,
30184         config/v850/v850.c, config/v850/v850.md, config/vax/vax.c,
30185         config/visium/visium.c, config/xtensa/xtensa.c, cprop.c, dse.c,
30186         expr.c, gcse.c, ifcvt.c, ira.c, jump.c, lower-subreg.c,
30187         lra-constraints.c, lra-eliminations.c, lra.c, postreload.c, ree.c,
30188         reg-stack.c, reload.c, reload1.c, reorg.c, sel-sched.c,
30189         var-tracking.c: Update calls accordingly.
30190
30191 2015-05-07  Segher Boessenkool  <segher@kernel.crashing.org>
30192
30193         PR middle-end/192
30194         PR middle-end/54303
30195         * varasm.c (function_mergeable_rodata_prefix): New function.
30196         (mergeable_string_section): Use it.
30197         (mergeable_constant_section): Use it.
30198
30199 2015-05-07  Jeff Law  <law@redhat.com>
30200
30201         PR target/39726
30202         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
30203         simplifier to narrow arithmetic.
30204         * generic-match-head.c: (types_match, single_use): New functions.
30205         * gimple-match-head.c: (types_match, single_use): New functions.
30206
30207 2015-05-07  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
30208
30209         * combine.c (make_compound_operation): Remove checks for PLUS/MINUS
30210         rtx type.
30211
30212 2015-05-07  Richard Biener  <rguenther@suse.de>
30213
30214         PR tree-optimization/66002
30215         * passes.def: Schedule another pass_merge_phi after ifcombine, right
30216         before phiopt.
30217
30218 2015-05-07  Marek Polacek  <polacek@redhat.com>
30219             Martin Uecker  <uecker@eecs.berkeley.edu>
30220
30221         * doc/invoke.texi: Document -fsanitize=bounds-strict.
30222         * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS_STRICT, or it
30223         into SANITIZE_NONDEFAULT.
30224         * opts.c (common_handle_option): Handle -fsanitize=bounds-strict.
30225
30226 2015-05-07  Uros Bizjak  <ubizjak@gmail.com>
30227
30228         PR target/66015
30229         * config/alpha/alpha.c (alpha_override_options_after_change): New.
30230         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
30231         (alpha_override_options): Move align_loops, align_jumps and
30232         align_functions handling into alpha_override_options_after_change.
30233
30234 2015-05-06  Sandra Loosemore  <sandra@codesourcery.com>
30235             Chris Jones  <chrisj@nvidia.com>
30236             Joshua Conner  <jconner@nvidia.com>
30237
30238         * config/arm/unknown-elf.h (STARTFILE_SPEC): Add conditional
30239         linking of crtfastmath.o.
30240         * config/arm/linux-eabi.h (STARTFILE_SPEC): Likewise.
30241
30242 2015-05-06  Segher Boessenkool  <segher@kernel.crashing.org>
30243
30244         * config/rs6000/rs6000.md (cstore<mode>4_signed_imm): New expander.
30245         (cstore<mode>4_unsigned_imm): New expander.
30246         (cstore<mode>4): Remove empty constraint strings.  Use the new
30247         expanders.
30248
30249 2015-05-06  Yvan Roux  <yvan.roux@linaro.org>
30250
30251         PR target/64208
30252         * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Cleanup redundant
30253         alternatives.
30254
30255 2015-05-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>
30256
30257         * config/aarch64/geniterators.sh: Use standard BRE in sed.
30258
30259 2015-05-06  Alan Modra  <amodra@gmail.com>
30260
30261         PR target/66033
30262         * config/rs6000/rs6000.md (nop): Use an unspec pattern.
30263         (UNSPEC_NOP): Define.
30264         (reload_vsx_from_gpr<mode>): Add missing DONE.
30265         (reload_gpr_from_vsx<mode>): Likewise.
30266         * config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
30267         (vsx_div_v2di, vsx_udiv_v2di): Likewise.
30268
30269 2015-05-06  Christian Bruel  <christian.bruel@st.com>
30270
30271         PR target/66015
30272         * config/aarch64/aarch64.c (aarch64_override_options): Move align_loops,
30273         align_jumps, align_functions into aarch64_override_options_after_change.
30274
30275 2015-05-06  Richard Biener  <rguenther@suse.de>
30276
30277         * tree-vect-slp.c (vect_supported_load_permutation_p): Use
30278         vect_transform_slp_perm_load to check if we support a permutation
30279         for basic-block vectorization.
30280
30281 2015-05-06  Nick Clifton  <nickc@redhat.com>
30282
30283         * config/rl78/rl78.c (need_to_save): Save register 22 if it is
30284         used, even if it is not being used as a frame pointer.
30285
30286 2015-05-05  Jason Merrill  <jason@redhat.com>
30287
30288         * dwarf2out.c (gen_member_die): Don't emit anything for an
30289         anonymous class constructor.
30290
30291 2015-05-05  David Malcolm  <dmalcolm@redhat.com>
30292
30293         * auto-profile.c (afdo_find_equiv_class): Fix indentation so
30294         that it reflects the block structure.
30295         (afdo_propagate_edge): Likewise.
30296         (afdo_calculate_branch_prob): Likewise.
30297         (afdo_annotate_cfg): Likewise.
30298         * cfgcleanup.c (equal_different_set_p): Likewise.
30299         (try_crossjump_to_edge): Likewise.
30300         * cgraph.c (cgraph_node::verify_node): Likewise.
30301         * cgraphunit.c (expand_all_functions): Likewise.
30302         * config/i386/i386.c (ix86_expand_copysign): Likewise.
30303         (exact_dependency_1): Likewise.
30304         * dwarf2asm.c (dw2_output_indirect_constants): Likewise.
30305         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Likewise.
30306         * gensupport.c (process_define_subst): Likewise.
30307         * lto-wrapper.c (merge_and_complain): Likewise.
30308         * tree-if-conv.c (if_convertible_bb_p): Likewise.
30309         * tree-ssa-loop-prefetch.c (find_or_create_group): Likewise.
30310         * tree-ssa-tail-merge.c (gsi_advance_fw_nondebug_nonlocal): Likewise.
30311         * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
30312         * tree-vect-loop.c (vectorizable_reduction): Likewise.
30313         * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
30314         * tree-vect-stmts.c (vectorizable_shift): Likewise.
30315         * tree-vrp.c (vrp_finalize): Likewise.
30316         * tree.c (variably_modified_type_p): Likewise.
30317
30318 2015-05-05  Jack Howarth  <howarth.at.gcc@gmail.com>
30319
30320         * config.gcc: Use darwin9.h, darwin10.h and darwin12.h
30321         on darwin12 and later.
30322         * config/darwin12.h (LINK_GCC_C_SEQUENCE_SPEC): Add
30323         file to pass -rdynamic on darwin12 and later.
30324         * config/darwin.opt (rdynamic): Add.
30325
30326 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
30327
30328         * doc/extend.texi (C Extensions): Update menu for moved Variable
30329         Attributes and Type Attributes sections.
30330
30331 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
30332
30333         PR target/65990
30334         * config/i386/i386.c (ix86_parse_stringop_strategy_string): Error out
30335         if rep_8byte stringop strategy was specified for 32-bit target.
30336
30337 2015-05-05  Ilya Tocar  <ilya.tocar@intel.com>
30338
30339         PR target/65915
30340         * config/i386/i386.md (vector convert to float spltiter): Check for
30341         xmm16+, when splitting scalar float conversion.
30342         * config/i386/sse.md (sse2_cvtsi2sd): Support EVEX version.
30343
30344 2015-05-05  Nick Clifton  <nickc@redhat.com>
30345
30346         * config/msp430/msp430-opts.h (enum msp430_regions): New.
30347         * config/msp430/msp430.c (msp430_override_options): Complain if
30348         -mcode-region or -mdata-region is used on a non MSP430X.
30349         (msp430_section_attr): New function.  Checks lower, upper and
30350         either attributes.
30351         (msp430_attribute_table): Add lower, upper and either.
30352         (gen_prefix): New function.  Generates a prefix for a section
30353         name.
30354         (msp430_select_section): New function - handles the choice of
30355         section for an object.  Takes into account memory region
30356         attributes and options.
30357         (msp430_function_section): Use gen_prefix.
30358         (TARGET_SECTION_TYPE_FLAGS): Define.
30359         (msp430_section_type_flags): New function.
30360         (TARGET_ASM_UNIQUE_SECTION): Define.
30361         (msp430_unique_section): New function.
30362         (msp430_output_aligned_decl_common): New function.
30363         (msp430_do_not_relax_short_jumps): New function.
30364         * config/msp430/msp430.h (USE_SELECT_SECTION_FOR_FUNCTIONS):
30365         Define.
30366         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
30367         * config/msp430/msp430-protos.h
30368         (msp430_do_not_relax_short_jumps): New prototype.
30369         (msp430_output_aligned_decl_common): New prototype.
30370         * config/msp430/msp430.md (length): New attribute.
30371         (cbranchhi4_real): If msp430_do_not_relax_short_jumps is true
30372         then use a long code sequence for short jumps.
30373         * config/msp430/msp430.opt (mcode-region): New.
30374         (mdata-region): New.
30375         * doc/invoke.texi: Document new options.
30376         * doc/extend.texi: Document new attributes.
30377
30378 2015-05-05  Matthew Wahab  <matthew.wahab@arm.com>
30379
30380         * config/aarch64-protos.h (struct cpu_branch_cost): New.
30381         (tune_params): Add field branch_costs.
30382         (aarch64_branch_cost): Declare.
30383         * config/aarch64.c (generic_branch_cost): New.
30384         (generic_tunings): Set field cpu_branch_cost to generic_branch_cost.
30385         (cortexa53_tunings): Likewise.
30386         (cortexa57_tunings): Likewise.
30387         (thunderx_tunings): Likewise.
30388         (xgene1_tunings): Likewise.
30389         (aarch64_branch_cost): Define.
30390         * config/aarch64/aarch64.h (BRANCH_COST): Redefine.
30391
30392 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
30393
30394         * config/i386/i386.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1
30395         and HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1.
30396         * config/i386/i386.md: Ditto.
30397         * config/i386/winnt.c: Ditto.
30398
30399 2015-05-05  Matthew Wahab  <matthew.wahab@arm.com>
30400
30401         * doc/extend.texi (__atomic Builtins): Move implementation details
30402         to the end of the description, rewrite opening paragraphs, state
30403         difference with __sync builtins, state C11/C++11 assumptions,
30404         weaken itemized descriptions, add explanation of memory model
30405         behaviour, expand description of compare-exchange, simplify text.
30406
30407 2015-05-05  Renlin Li  <renlin.li@arm.com>
30408
30409         * config/aarch64/aarch64.md (add<mode>3): Use mov when allowed.
30410
30411 2015-05-05  Yvan Roux  <yvan.roux@linaro.org>
30412
30413         * config/aarch64/aarch64-elf-raw.h (CA53_ERR_843419_SPEC): Define.
30414         (LINK_SPEC): Include CA53_ERR_843419_SPEC.
30415         * config/aarch64/aarch64-linux.h (CA53_ERR_843419_SPEC): Define.
30416         (LINK_SPEC): Include CA53_ERR_843419_SPEC.
30417         * config/aarch64/aarch64.opt (mfix-cortex-a53-843419): New option.
30418         * configure: Regenerate.
30419         * configure.ac: Add --enable-fix-cortex-a53-843419 option.
30420         * doc/install.texi (aarch64*-*-*): Document new
30421         --enable-fix-cortex-a53-843419 option.
30422         * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-843419
30423         and -mno-fix-cortex-a53-843419 options.
30424
30425 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
30426
30427         PR target/65871
30428         * config/i386/i386.md (*bmi_andn_<mode>_ccno): New pattern.
30429
30430 2015-05-04  Jan Hubicka  <hubicka@ucw.cz>
30431
30432         * tree.c (verify_type): Check various uses of TYPE_MAXVAL;
30433         fix overactive TYPE_MIN_VALUE check and add FIXME for type
30434         compatibility problems.
30435
30436 2015-05-04  Ajit Agarwal  <ajitkum@xilinx.com>
30437
30438         * config/microblaze/microblaze.md (cbranchsi4): Added immediate
30439         constraints.
30440         (cbranchsi4_reg): New.
30441         * config/microblaze/microblaze.c
30442         (microblaze_expand_conditional_branch_reg): New.
30443         * config/microblaze/microblaze-protos.h
30444         (microblaze_expand_conditional_branch_reg): New prototype.
30445
30446 2015-05-04  Ajit Agarwal  <ajitkum@xilinx.com>
30447
30448         * config/microblaze/microblaze.md (peephole2): New.
30449
30450 2015-05-04  Jeff Law  <law@redhat.com>
30451
30452         Revert:
30453         2015-05-04  Jeff Law  <law@redhat.com>
30454
30455         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
30456         simplifier to narrow arithmetic.
30457         * generic-match-head.c: (types_match, single_use): New functions.
30458         * gimple-match-head.c: (types_match, single_use): New functions.
30459
30460 2015-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
30461
30462         PR target/65987
30463         * config/sh/sh.c (output_far_jump): Take into account crossing jumps.
30464         (split_branches): Likewise.
30465
30466 2015-05-04  Sandra Loosemore  <sandra@codesourcery.com>
30467
30468         * common.opt (fdelete-null-pointer-checks): Init to -1.
30469         * config/nios2/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define to
30470         override flag_delete_null_pointer_checks default.
30471         * doc/invoke.texi (-fdelete-null-pointer-checks): Clarify
30472         behavior re address zero.  Better document target-specific behavior.
30473         (-fisolate-errneous-paths-dereference): Mention relationship to
30474         -fdelete-null-pointer-checks.
30475
30476 2015-05-04  Jakub Jelinek  <jakub@redhat.com>
30477
30478         PR tree-optimization/65984
30479         * ubsan.c: Include tree-cfg.h.
30480         (instrument_bool_enum_load): Use stmt_ends_bb_p instead of
30481         stmt_could_throw_p test, rename can_throw variable to ends_bb.
30482
30483 2015-05-04  Uros Bizjak  <ubizjak@gmail.com>
30484
30485         * config/i386/i386.c: Change GET_CODE (...) == CONST_DOUBLE check
30486         to CONST_DOUBLE_P predicate.
30487         (standard_sse_constant_p): Return 0 for !TARGET_SSE.
30488         (ix86_legitimate_constant_p) <case CONST_WIDE_INT>: For 32bit targets,
30489         allow only operands that satisfy standard_sse_constant_p predicate.
30490         * config/i386/i386.md: Change GET_CODE (...) == CONST_DOUBLE check
30491         to CONST_DOUBLE_P predicate.
30492
30493 2015-05-04  Jeff Law  <law@redhat.com>
30494
30495         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
30496         simplifier to narrow arithmetic.
30497         * generic-match-head.c: (types_match, single_use): New functions.
30498         * gimple-match-head.c: (types_match, single_use): New functions.
30499
30500 2015-05-04  Andreas Tobler  <andreast@gcc.gnu.org>
30501
30502         * config/arm/arm.c: Restore bootstrap.
30503
30504 2015-05-04  Uros Bizjak  <ubizjak@gmail.com>
30505
30506         * config/i386/i386.h (TARGET_SUPPORTS_WIDE_INT): New define.
30507         * config/i386/i386.c (ix86_legitimate_constant_p): Handle TImode
30508         as CONST_WIDE_INT, not CONST_DOUBLE.
30509         (ix86_cannot_force_const_mem): Handle CONST_WIDE_INT.
30510         (output_pic_addr_const): Do not handle VOIDmode CONST_DOUBLEs.
30511         (ix86_find_base_term): Do not check for CONST_DOUBLE.
30512         (ix86_print_operand): Do not handle non-FPmode CONST_DOUBLEs.
30513         (ix86_build_signbit_mask): Rewrite using wide ints.
30514         (ix86_split_to_parts) [HOST_BITS_PER_WIDE_INT < 64]: Remove.
30515         (ix86_rtx_costs): Handle CONST_WIDE_INT.
30516         (find_constant): Ditto.
30517         * config/i386/i386.md (bts, btr, btc peepholes): Rewrite
30518         using gen_int_mode.
30519         * config/i386/predicates.md (x86_64_immediate_operand)
30520         <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
30521         (x86_64_zext_immediate_operand): Remove CONST_DOUBLE handling.
30522         <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
30523         (const0_operand): Also match const_wide_int.
30524         (constm1_operand): Ditto.
30525         (const1_operand): Ditto.
30526
30527 2015-05-04  Richard Biener  <rguenther@suse.de>
30528
30529         PR tree-optimization/65965
30530         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Split
30531         store groups at gaps.
30532
30533 2015-05-04  Richard Biener  <rguenther@suse.de>
30534
30535         PR tree-optimization/65935
30536         * tree-vect-slp.c (vect_build_slp_tree): If we swapped operands
30537         then make sure to apply that swapping to the IL.
30538
30539 2015-05-04  Jakub Jelinek  <jakub@redhat.com>
30540
30541         * Makefile.in (PATCHLEVEL_c): New variable.
30542         (DATESTAMP_s, REVISION_s): If PATCHLEVEL_c is not 0,
30543         expand the same way as if DEVPHASE_c was non-empty.
30544
30545 2015-05-04  Kai Tietz  <ktietz@redhat.com>
30546
30547         PR target/65559
30548         * lto-wrapper.c (run_gcc): Open filename
30549         in binary-mode.
30550
30551 2015-05-03  Sandra Loosemore  <sandra@codesourcery.com>
30552
30553         * doc/extend.texi (Variable Attributes, Type Attributes):  Move
30554         sections up in file, to immediately after the Function Attributes
30555         section.
30556
30557 2015-05-02  Jan Hubicka  <hubicka@ucw.cz>
30558
30559         * tree.c (verify_type): Check various uses of TYPE_MINVAL.
30560
30561 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30562
30563         * tree-outof-ssa.c (emit_partition_copy): Return rtx_insn *.
30564         (insert_partition_copy_on_edge): Adjust.
30565         (insert_rtx_to_part_on_edge): Likewise.
30566         (insert_part_to_rtx_on_edge): Likewise.
30567
30568 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30569
30570         * function.c (set_return_jump_label): Change type of argument to
30571         rtx_insn *.
30572         * function.h (set_return_jump_label): Adjust.
30573
30574 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30575
30576         * reload.h (struct reg_equivs_t): Change type of init to
30577         rtx_insn *.
30578         * ira.c (fix_reg_equiv_init): Adjust.
30579         * reload1.c (eliminate_regs_1): Likewise.
30580         (init_eliminable_invariants): Likewise.
30581
30582 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30583
30584         * cselib.c (fp_setter_insn): Take a rtx_insn *.
30585         * cselib.h (fp_setter_insn): Adjust.
30586
30587 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30588
30589         * recog.c (struct validate_replace_src_data): Change type of
30590         insn field to rtx_insn *.
30591         (validate_replace_src_group): Change type of argument to rtx_insn *.
30592         * recog.h (validate_replace_src_group): Adjust.
30593
30594 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30595
30596         * haifa-sched.c: Change the type of some variables to rtx_insn *.
30597         * sched-deps.c: Likewise.
30598         * sched-int.h: Likewise.
30599         * sched-rgn.c: Likewise.
30600         * sel-sched.c: Likewise.
30601
30602 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30603
30604         to rtx_insn *.
30605         * config/i386/i386.c: Change the type of some arguments to
30606         rtx_insn *.
30607         * config/arm/arm.c: Likewise.
30608
30609 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30610
30611         * lra-constraints.c: Change type of some arguments to rtx_insn *.
30612
30613 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30614
30615         * regcprop.c (kill_autoinc_value): Change type of argument to
30616         rtx_insn *.
30617
30618 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30619
30620         * genrecog.c (print_subroutine): Adjust.
30621         * recog.c (get_bool_attr_mask_uncached): Likewise.
30622         * recog.h (struct recog_data_d): Change the type of insn to
30623         rtx_insn *.
30624
30625 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30626
30627         * dwarf2cfi.c (add_cfi_insn): Change type to rtx_insn *.
30628
30629 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30630
30631         * df-problems.c (df_set_note): Change type of argument to
30632         rtx_insn *.
30633
30634 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30635
30636         * builtins.c (expand_builtin_trap): Change type of local
30637         variable to rtx_insn *.
30638         (add_sched_insns_for_speculation): Likewise.
30639         (ix86_emit_save_regs): Likewise.
30640         (get_scratch_register_on_entry): Likewise.
30641         (ix86_emit_restore_reg_using_pop): Likewise.
30642         (ix86_emit_leave): Likewise.
30643         (ix86_emit_restore_regs_using_mov): Likewise.
30644         (ix86_expand_epilogue): Likewise.
30645         Likewise.
30646         (rl78_alloc_physical_registers_umul): Likewise.
30647         * cselib.c (discard_useless_locs): Likewise.
30648         (cselib_invalidate_regno): Likewise.
30649         (cselib_invalidate_mem): Likewise.
30650         * function.c (expand_function_start): Likewise.
30651         (emit_use_return_register_into_block): Likewise.
30652         * gcse.c: Likewise.
30653         * haifa-sched.c (ok_for_early_queue_removal): Likewise.
30654         * ifcvt.c (noce_get_alt_condition): Likewise.
30655         * loop-doloop.c (doloop_condition_get): Likewise.
30656         * lra-constraints.c (inherit_in_ebb): Likewise.
30657         * modulo-sched.c (sms_schedule_by_order): Likewise.
30658         * recog.c (next_insn_tests_no_inequality): Likewise.
30659         * reorg.c (emit_delay_sequence): Likewise.
30660         (update_reg_dead_notes): Likewise.
30661         (fix_reg_dead_note): Likewise.
30662         (fill_slots_from_thread): Likewise.
30663         (delete_computation): Likewise.
30664
30665 2015-05-01  Sandra Loosemore  <sandra@codesourcery.com>
30666
30667         * doc/extend.texi (Variable Attributes): Add menu and proper
30668         @nodes to subsections.  Move Microsoft Windows attributes to
30669         their own subsection.
30670         (Type Attributes): Reorganize introduction to remove duplicate
30671         list of attributes.  Add menu and proper @nodes to subsections.
30672         Alphabetize the main table of common attributes.
30673
30674 2015-05-01  Rasmus Villemoes  <rv@rasmusvillemoes.dk>
30675
30676         * match.pd: New simplification patterns.
30677         (x + (x & 1))  -> ((x + 1) & ~1)
30678         (x & ~(x & y)) -> ((x & ~y))
30679         (x | ~(x | y)) -> ((x | ~y))
30680
30681 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30682
30683         * target.def (attribute_table): Mention that struct attribute_spec
30684         is defined in tree-core.h rather than tree.h
30685         * doc/tm.texi: Regenerate.
30686
30687 2015-05-01  Richard Sandiford  <richard.sandiford@arm.com>
30688
30689         * genrecog.c (test): Rename to rtx_test.  Update rest of file
30690         accordingly.
30691
30692 2015-05-01  Andreas Schwab  <schwab@linux-m68k.org>
30693
30694         PR translation/65959
30695         * params.h (DEFPARAM): Rename msgid to nocmsgid.
30696
30697 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
30698
30699         * config/aarch64/aarch64-protos.h (tune_params):
30700         Add min_div_recip_mul_sf and min_div_recip_mul_df fields.
30701         * config/aarch64/aarch64.c (aarch64_min_divisions_for_recip_mul):
30702         Return value depending on target.
30703         (generic_tunings): Initialize new target settings.
30704         (cortexa53_tunings): Likewise.
30705         (cortexa57_tunings): Likewise.
30706         (thunderx_tunings): Likewise.
30707         (xgene1_tunings): Likewise.
30708
30709 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
30710
30711         * config/arm/aarch-cost-tables.h (cortexa53_extra_costs):
30712         Make Cortex-A53 shift costs more accurate.
30713
30714 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30715
30716         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle FLOAT and
30717         UNSIGNED_FLOAT.
30718
30719 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
30720
30721         * config/aarch64/aarch64.c (aarch64_rtx_costs):
30722         Calculate cost of op0 and op1 in PLUS and MINUS cases.
30723
30724 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30725
30726         * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
30727         Add cost of op0 in the compare-with-fpzero case.
30728
30729 2015-04-30  David Malcolm  <dmalcolm@redhat.com>
30730
30731         * builtins.c (fold_builtin_1): Remove spurious second
30732         semicolon.
30733         * cgraph.h (symtab_node::get_availability): Likewise.
30734         * opts.c (common_handle_option): Remove spurious second semicolon.
30735         * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
30736         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
30737
30738 2015-04-30  Caroline Tice  <cmtice@google.com>
30739
30740         PR gcov-profile/65929
30741         * config/elfos.h (ASM_DECLARE_COLD_FUNCTION_NAME): New macro definition.
30742         (ASM_DECLARE_COLD_FUNCTION_SIZE): New macro definition.
30743         * doc/tm.texi.in (ASM_DECLARE_COLD_FUNCTION_NAME): Document new macro.
30744         (ASM_DECLARE_COLD_FUNCTION_SIZE): Document new macro.
30745         * doc/tm.texi: Regenerate.
30746         * final.c (final_scan_insn):  Use ASM_DECLARE_COLD_FUNCTION_NAME
30747         instead of ASM_DECLARE_FUNCTION_NAME for cold partition name.
30748         * varasm.c (assemble_end_function):  Use ASM_DECLARE_COLD_FUNCTION_SIZE
30749         instead of ASM_DECLARE_FUNCTION_SIZE for cold partition size.
30750
30751 2015-04-30  Marek Polacek  <polacek@redhat.com>
30752
30753         * varasm.c (handle_cache_entry): Fix logic.
30754
30755 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30756
30757         * config/aarch64/aarch64.md (*extr<mode>5_insn_alt): New pattern.
30758         (*extrsi5_insn_uxtw_alt): Likewise.
30759         * config/aarch64/aarch64.c (aarch64_extr_rtx_p): New function.
30760         (aarch64_rtx_costs, IOR case): Use above to properly cost extr
30761         operations.
30762
30763 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30764
30765         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle pattern for
30766         fabd in ABS case.
30767
30768 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30769
30770         * config/aarch64/aarch64.md
30771         (*eor_one_cmpl_<SHIFT:optab><mode>3_alt): New pattern.
30772         (*eor_one_cmpl_<SHIFT:optab>sidi3_alt_ze): Likewise.
30773         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle MVN-shift
30774         appropriately.  Handle alternative EON form.
30775
30776 2015-04-30  Renlin Li  <renlin.li@arm.com>
30777
30778         * config/aarch64/aarch64-simd.md (vec_shr): Defined as an unspec.
30779         * config/aarch64/iterators.md (unspec): Add UNSPEC_VEC_SHR.
30780
30781 2015-04-30  Jan Hubicka  <hubicka@ucw.cz>
30782
30783         PR ipa/65873
30784         * ipa-inline.c (can_inline_edge_p): It is safe to inline across
30785         -fstrict-aliasing boundaries.
30786
30787 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30788
30789         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Handle MNEG
30790         and [SU]MNEGL patterns.
30791
30792 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30793
30794         * config/aarch64/aarch64.c (aarch64_shift_p): New function.
30795         (aarch64_rtx_mult_cost): Update comment to reflect that it also handles
30796         combined arithmetic-shift ops.  Properly handle all shift and extend
30797         operations that can occur in combination with PLUS/MINUS.
30798         Rename maybe_fma to compound_p.
30799         (aarch64_rtx_costs): Use aarch64_shift_p when costing compound
30800         arithmetic and shift operations.
30801
30802 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30803
30804         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use extend_arith
30805         rather than arith_shift cost when costing ADD/MINUS of an
30806         extended value.
30807
30808 2015-04-30  Jan Hubicka  <hubicka@ucw.cz>
30809
30810         PR lto/65948
30811         * ipa-devirt.c (odr_types_equivalent_p): NULLPTR_TYPE is equivalent
30812         to itself.
30813
30814 2015-04-30  Richard Sandiford  <richard.sandiford@arm.com>
30815
30816         * genrecog.c (simplify_tests): Check that CONST_INT and XWINT tests
30817         are for the same position.
30818
30819 2015-04-29  Aditya Kumar  <hiraditya@hotmail.com>
30820
30821         * tree-vectorizer.c (set_uid_loop_bbs): New.  Factored out of
30822         vectorize_loops.
30823         (vectorize_loops): Use it.
30824
30825 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
30826
30827         * ipa-devirt.c (odr_subtypes_equivalent_p): Compare TYPE_NAME only
30828         for aggregate types.
30829         (register_odr_type): Be ready for MAIN_VARIANT of ODR type
30830         type to be non_ODR.
30831         * tree.c (need_assembler_name_p): Compute mangled name for
30832         non-fundamental types and integer types.
30833
30834 2015-04-29  Mikhail Maltsev  <maltsevm@gmail.com>
30835
30836         * dojump.c (do_compare_rtx_and_jump): Use std::swap instead of
30837         manual swaps.
30838         * expr.c (expand_expr_real_2): Likewise.
30839
30840 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
30841
30842         * tree.c (build_common_builtin_nodes): Do not build
30843         __builtin_alloca_with_align as equivalent of library alloca.
30844
30845 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
30846
30847         * dwarf2out.c (gen_type_die_with_usage): Call verify_type.
30848         * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Do not produce
30849         bugus variants.
30850         * tree.c: Include print-tree.h and ipa-utils.h
30851         (free_lang_data_in_type): Clear TYPE_VFIELD leaked by C FE.
30852         (free_lang_data_in_cgraph): Call verify_type.
30853         (verify_type_variant): New function.
30854         (verify_type): New function.
30855         * tree.h (verify_type): Declare.
30856
30857 2015-04-29  Steve Ellcey  <sellcey@imgtec.com>
30858
30859         * config/mips/mips-cpus.def: (mips4): Change default processor
30860         from PROCESSOR_R8000 to PROCESSOR_R10000.
30861
30862 2015-04-29  Petar Jovanovic  <petar.jovanovic@rt-rk.com>
30863
30864         * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Fix the macro to use
30865         la/jalr instead of jal.
30866
30867 2015-04-29  Uros Bizjak  <ubizjak@gmail.com>
30868
30869         PR target/65871
30870         * config/i386/i386.md (*bmi_bextr_<mode>_ccz): New pattern.
30871         (*bmi2_bzhi_<mode>3_1_ccz): Ditto.
30872         (setcc+movzbl peephole2): Check also clobbered reg.
30873         (setcc+andl peephole2): Ditto.
30874
30875 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
30876
30877         PR libgomp/65099
30878         * config/nvptx/mkoffload.c (target_ilp32): New variable.
30879         (main): Set it depending on "-foffload-abi=[...]".
30880         (compile_native, main): Use it to pass "-m32" or "-m64" to the
30881         compiler.
30882
30883 2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>
30884
30885         PR target/65770
30886         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>,
30887         vec_store_lanesci_lane<mode>, vec_store_lanesxi_lane<mode>):
30888         Flip lane index back at assembly time for bigendian.
30889
30890 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
30891
30892         * tree.h (OMP_STANDALONE_CLAUSES): New macro.
30893         * gimplify.c (gimplify_omp_workshare): Use it.
30894
30895 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
30896
30897         * Makefile.in (build/genrecog.o): Depend on inchash.h.
30898         (build/genrecog$(build_exeext): Depend on build/hash-table.o and
30899         build/inchash.o
30900         * genrecog.c: Rewrite most of the code except for the third page.
30901
30902 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
30903
30904         * inchash.h, inchash.c: Include bconfig.h for build objects.
30905         * Makefile.in (build/inchash.o): New rule.
30906
30907 2015-04-29  Yvan Roux  <yvan.roux@linaro.org>
30908
30909         PR target/65924
30910         * config/arm/thumb2.md (*thumb2_addsi3_compare0_scratch): Fix operand
30911         number in type attribute expression.
30912
30913 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
30914
30915         * loop-iv.c (canon_condition): Generalize to all types of integer
30916         constant.
30917
30918 2015-04-29  Bernhard Reuther-Fischer  <aldot@gcc.gnu.org>
30919
30920         * gimple-walk.c: Prune duplicate or unneeded includes.
30921         (walk_gimple_asm): Only call parse_input_constraint or
30922         parse_output_constraint if their findings are used.
30923         Honour parse_input_constraint and parse_output_constraint
30924         result.
30925
30926 2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>
30927
30928         * config/arm/neon.md (vec_shl<mode>, vec_shr<mode>): Remove.
30929
30930 2015-04-29  Tom de Vries  <tom@codesourcery.com>
30931
30932         PR tree-optimization/65893
30933         * passes.def (pass_all_optimizations): Move pass_stdarg to after
30934         pass_dce.
30935
30936 2015-04-29  Richard Biener  <rguenther@suse.de>
30937
30938         * tree-vect-data-refs.c (vect_analyze_group_access): Properly
30939         compute GROUP_SIZE for basic-block SLP.
30940         * tree-vect-slp.c (vect_get_place_in_interleaving_chain): Properly
30941         take into account gaps.
30942         (vect_get_mask_element): Properly reject references to previous
30943         vectors.
30944         (vect_transform_slp_perm_load): Likewise.
30945
30946 2015-04-29  Christian Bruel  <christian.bruel@st.com>
30947
30948         PR target/64835
30949         * config/i386/i386.c (ix86_default_align): New function.
30950         (ix86_override_options_after_change): Call ix86_default_align.
30951         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New hook.
30952         (ix86_override_options_after_change): New function.
30953
30954 2015-04-28  Jeff Law  <law@redhat.com>
30955
30956         * tree-ssa-dom.c (record_equality); Fix comment typos.
30957
30958 2015-04-28  Tom de Vries  <tom@codesourcery.com>
30959
30960         PR tree-optimization/65887
30961         * gimplify.c (gimplify_modify_expr): Remove ifn_va_arg ap fixup.
30962
30963 2015-04-28  Sandra Loosemore  <sandra@codesourcery.com>
30964
30965         * doc/extend.texi (Declaring Attributes of Functions): Split into
30966         subsections by target.  Alphabetize the table of common attributes.
30967         Rewrite some of the introductory text to reflect the new structure.
30968         Update some cross-references to point to the new subsections.
30969         (Attribute Syntax): Put paragraph about "__" naming here.  Remove
30970         duplicate copies in the discussion of function, label, and type
30971         attributes.
30972
30973 2015-04-28  Dominique d'Humieres  <dominiq@lps.ens.fr>
30974
30975         PR bootstrap/65910
30976         * varasm.c (assemble_end_function): Guard ASM_DECLARE_FUNCTION_SIZE.
30977
30978 2015-04-28  Jason Merrill  <jason@redhat.com>
30979
30980         PR c++/65734
30981         * stor-layout.c (layout_type): Layout the TYPE_MAIN_VARIANT.
30982         (finalize_type_size): Respect TYPE_USER_ALIGN.
30983         (layout_type) [ARRAY_TYPE]: Likewise.
30984
30985 2015-04-28  Yvan Roux  <yvan.roux@linaro.org>
30986
30987         * config/arm/arm.md (*arm_movt): Fix type attribute.
30988         (*cmpsi_shiftsi): Likewise.
30989         (*cmpsi_shiftsi_swp): Likewise.
30990         (*movsicc_insn): Likewise.
30991         (*cond_move): Likewise.
30992         (*if_plus_move): Likewise.
30993         (*if_move_plus): Likewise.
30994         (*if_arith_move): Likewise.
30995         (*if_move_arith): Likewise.
30996         (*if_shift_move): Likewise.
30997         (*if_move_shift): Likewise.
30998         (*arm_movtas_ze): Likewise.
30999         * config/arm/thumb2.md (*thumb2_movsicc_insn): Fix alternative
31000         redundancy and type attribute.
31001         (*thumb2_movsi_insn): Fix type attribute.
31002         (*thumb2_addsi_short): Likewise.
31003         (thumb2_addsi3_compare0): Likewise.
31004         (*thumb2_addsi3_compare0_scratch): Merge alternatives and fix
31005         attributes accordingly.
31006
31007 2015-04-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
31008
31009         PR other/65911
31010         * function.c (pad_to_arg_alignment): Add parentheses.
31011
31012 2015-04-28  Uros Bizjak  <ubizjak@gmail.com>
31013
31014         * config/frv/frv.h (CRT_GET_RFIB_DATA): Move definition to
31015         libgcc/config/frv/elf-lib.h.
31016
31017 2015-04-28  Tom de Vries  <tom@codesourcery.com>
31018
31019         * tree-call-cdce.c: Fix example in header comment.
31020
31021 2015-04-28  Richard Biener  <rguenther@suse.de>
31022
31023         PR tree-optimization/62283
31024         * tree-vect-slp.c (vect_build_slp_tree): When the SLP build
31025         fails fatally and we are vectorizing a basic-block simply
31026         cause the child to be constructed piecewise.
31027         (vect_analyze_slp_cost_1): Adjust.
31028         (vect_detect_hybrid_slp_stmts): Likewise.
31029         (vect_bb_slp_scalar_cost): Likewise.
31030         (vect_get_constant_vectors): For piecewise constructed
31031         constants place them after the last def.
31032         (vect_get_slp_defs): Adjust.
31033         * tree-vect-stmts.c (vect_is_simple_use): Detect in-BB
31034         externals for basic-block vectorization.
31035
31036 2015-04-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
31037
31038         PR target/63503
31039         * config.gcc: Add cortex-a57-fma-steering.o to extra_objs for
31040         aarch64-*-*.
31041         * config/aarch64/t-aarch64: Add a rule for cortex-a57-fma-steering.o.
31042         * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Define.
31043         (AARCH64_TUNE_FMA_STEERING): Likewise.
31044         * config/aarch64/aarch64-cores.def: Set
31045         AARCH64_FL_USE_FMA_STEERING_PASS for cores with dynamic steering of
31046         FMUL/FMADD instructions.
31047         * config/aarch64/aarch64.c (aarch64_register_fma_steering): Declare.
31048         (aarch64_override_options): Include cortex-a57-fma-steering.h.  Call
31049         aarch64_register_fma_steering () if AARCH64_TUNE_FMA_STEERING is true.
31050         * config/aarch64/cortex-a57-fma-steering.h: New file.
31051         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
31052
31053 2015-04-28  Richard Sandiford  <richard.sandiford@arm.com>
31054
31055         * gensupport.c (std_preds): Add missing codes to address_operand entry.
31056
31057 2015-04-28  Richard Biener  <rguenther@suse.de>
31058
31059         PR tree-optimization/65851
31060         * tree-ssa-ccp.c (set_lattice_value): Perform a meet when
31061         changing CONSTANT to CONSTANT non-copy.  Get new_val by reference.
31062         (ccp_lattice_meet): Remove stray argument.  Use operand_equal_p
31063         rather than simple_cst_equal as the latter doesn't handle COMPLEX_CST.
31064         (ccp_visit_phi_node): Adjust.
31065         (evaluate_stmt): For simplifications to SSA names return its
31066         lattice value if that isn't VARYING.  Return immediately when
31067         simplified to a constant.
31068         (visit_assignment): Adjust.
31069         (ccp_visit_stmt): Likewise.
31070
31071 2015-04-28  Tom de Vries  <tom@codesourcery.com>
31072
31073         PR tree-optimization/65818
31074         * tree-stdarg.c (expand_ifn_va_arg_1): Ensure that side-effects are
31075         evaluated.
31076
31077 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31078
31079         * calls.c (save_fixed_argument_area): Don't check
31080         ARGS_GROW_DOWNWARD with the preprocessor.
31081         (restore_fixed_argument_area): Likewise.
31082         (mem_overlaps_already_clobbered_arg_p): Likewise.
31083         (check_sibcall_argument_overlap): Likewise.
31084         (expand_call): Likewise.
31085         (emit_library_call_value_1): Likewise.
31086         (store_one_arg): Likewise.
31087         * function.c (assign_parms): Likewise.
31088         (locate_and_pad_parm): Likewise.
31089         (pad_to_arg_alignment): Likewise.
31090         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
31091
31092 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31093
31094         * config/pa/pa.h (ARGS_GROW_DOWNWARD): Define to 1.
31095         * defaults.h (ARGS_GROW_DOWNWARD): Define it to 0 by default.
31096         * calls.c (save_fixed_argument_area): Don't chekc if
31097         ARGS_GROW_DOWNWARD is defined.
31098         (restore_fixed_argument_area): Likewise.
31099         (mem_overlaps_already_clobbered_arg_p): Likewise.
31100         (check_sibcall_argument_overlap): Likewise.
31101         (expand_call): Likewise.
31102         (emit_library_call_value_1): Likewise.
31103         (store_one_arg): Likewise.
31104         * function.c (assign_parms): Likewise.
31105         (locate_and_pad_parm): Likewise.
31106         (pad_to_arg_alignment): Likewise.
31107         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
31108
31109 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31110
31111         * defaults.h (gen_epilogue): New function.
31112         * alias.c (init_alias_analysis): don't check if HAVE_epilogue is
31113         defined.
31114         * cfgrtl.c (cfg_layout_finalize): Likewise.
31115         * df-scan.c: Likewise.
31116         * function.c (thread_prologue_and_epilogue_insns): Likewise.
31117         (reposition_prologue_and_epilogue_notes): Likewise.
31118         * reorg.c (find_end_label): Likewise.
31119         * toplev.c: Likewise.
31120
31121 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31122
31123         * bb-reorder.c (HAVE_return): Don't check if its undefined.
31124         * defaults.h (gen_simple_return): New function.
31125         (gen_simple_return): Likewise.
31126         (HAVE_return): Add default definition to false.
31127         (HAVE_simple_return): Likewise.
31128         * cfgrtl.c (force_nonfallthru_and_redirect): Remove checks if
31129         HAVE_return and HAVE_simple_return are defined.
31130         * function.c (gen_return_pattern): Likewise.
31131         (convert_jumps_to_returns): Likewise.
31132         (thread_prologue_and_epilogue_insns): Likewise.
31133         * reorg.c (find_end_label): Likewise.
31134         (dbr_schedule): Likewise.
31135         * shrink-wrap.c: Likewise.
31136         * shrink-wrap.h: Likewise.
31137
31138 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31139
31140         * defaults.h (EPILOGUE_USES): Add default definition of false.
31141         * df-scan.c (EPILOGUE_USES): Remove check if its undefined.
31142         * resource.c (init_resource_info): Likewise.
31143
31144 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31145
31146         * defaults.h (PCC_BITFIELD_TYPE_MATTERS): Add default definition
31147         to false.
31148         * dwarf2out.c (field_byte_offset): REmove check if
31149         PCC_BITFIELD_TYPE_MATTERS is defined.
31150         * stor-layout.c (layout_decl): Likewise.
31151         (update_alignment_for_field): Likewise.
31152         (place_field): Likewise.
31153
31154 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31155
31156         * defaults.h (HARD_REGNO_RENAME_OK): Add default definition to
31157         true.
31158         * regrename.c (check_new_reg_p): Remove check if
31159         HARD_REGNO_RENAME_OK is defined.
31160         * sel-sched.c (sel_hard_regno_rename_ok): Likewise.
31161
31162 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31163
31164         * calls.c (prepare_call_address): Remove ifdef NO_FUNCTION_CSE.
31165         * cse.c (fold_rtx): Likewise.
31166         * config/alpha/alpha.h (NO_FUNCTION_CSE): Define to 1.
31167         * config/arc/arc.h (NO_FUNCTION_CSE): Likewise.
31168         * config/avr/avr.h (NO_FUNCTION_CSE): Likewise.
31169         * config/cr16/cr16.h (NO_FUNCTION_CSE): Likewise.
31170         * config/epiphany/epiphany.h (NO_FUNCTION_CSE): Likewise.
31171         * config/frv/frv.h (NO_FUNCTION_CSE): Likewise.
31172         * config/h8300/h8300.h (NO_FUNCTION_CSE): Likewise.
31173         * config/i386/i386.h (NO_FUNCTION_CSE): Likewise.
31174         * config/ia64/ia64.h (NO_FUNCTION_CSE): Likewise.
31175         * config/lm32/lm32.h (enum reg_class) (NO_FUNCTION_CSE):
31176         * Likewise.
31177         * config/m32r/m32r.h (NO_FUNCTION_CSE): Likewise.
31178         * config/mep/mep.h (NO_FUNCTION_CSE): Likewise.
31179         * config/mn10300/mn10300.h (NO_FUNCTION_CSE): Likewise.
31180         * config/nds32/nds32.h (NO_FUNCTION_CSE): Likewise.
31181         * config/nios2/nios2.h (NO_FUNCTION_CSE): Likewise.
31182         * config/pa/pa.h (NO_FUNCTION_CSE): Likewise.
31183         * config/rs6000/rs6000.h (NO_FUNCTION_CSE): Likewise.
31184         * config/s390/s390.h (NO_FUNCTION_CSE): Likewise.
31185         * config/sparc/sparc.h (NO_FUNCTION_CSE): Likewise.
31186         * config/spu/spu.h (NO_FUNCTION_CSE): Likewise.
31187         * config/stormy16/stormy16.h (NO_FUNCTION_CSE): Likewise.
31188         * config/v850/v850.h (NO_FUNCTION_CSE): Likewise.
31189         * defaults.h (NO_FUNCTION_CSE): Provide default definition to 0.
31190         * doc/tm.texi: Regenerate.
31191         * doc/tm.texi.in: Document NO_FUNCTION_CSE is always defined to
31192         either true or false.
31193
31194 2015-04-27  Jeff Law  <law@redhat.com>
31195
31196         PR tree-optimization/65217
31197         * tree-ssa-dom.c (record_equality): Given two SSA_NAMEs, if just one
31198         of them has a single use, make sure it is the LHS of the implied
31199         copy.
31200
31201 2015-04-28  Alan Modra  <amodra@gmail.com>
31202
31203         PR target/65810
31204         * config/rs6000/rs6000.c (POWERPC64_TOC_POINTER_ALIGNMENT): Define.
31205         (offsettable_ok_by_alignment): Use minimum of decl and toc
31206         pointer alignment.  Replace dead code with assertion.
31207         (use_toc_relative_ref): Add mode arg.  Return false in -mcmodel=medium
31208         case if size exceeds toc pointer alignment.
31209         (rs6000_legitimize_reload_address): Update use_toc_relative_ref call.
31210         (rs6000_emit_move): Likewise.
31211         * configure.ac: Add linker toc pointer alignment check.
31212         * configure: Regenerate.
31213         * config.in: Regenerate.
31214
31215 2015-04-27  Yoshinori Sato <ysato@users.sourceforge.jp>
31216
31217         * config.gcc: Add h8300-*-linux.
31218         * config/h8300/linux.h: New.
31219         * config/h8300/t-linux: New.
31220         * config/h8300/h8300.c (h8300_option_override): Normal mode
31221         is not supported for h8300-*-linux.
31222         (h8300_file_start): Target priority change.
31223         (get_shift_alg): Likewise.
31224         (h8300_shift_need_scratch_p): Likewise.
31225         * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Likewise.
31226         * config/h8300/h8300.md (define_peephole2): Remove duplicate condition.
31227
31228 2015-04-27  Caroline Tice  <cmtice@google.com>
31229
31230         * final.c (final_scan_insn):  Output cold_function_name as function
31231         type.
31232         * varasm.c (cold_function_name):  Make global.
31233         (assemble_start_function):  Re-set cold_function_name.
31234         (assemble_end_function): Output cold partition size.
31235         * varasm.h (cold_function_name):  Declare global.
31236
31237 2015-04-27  Ilya Tocar  <ilya.tocar@intel.com>
31238
31239         * config/i386/i386.h (EXT_REX_SSE_REG_P): New.
31240         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed): Use "v"
31241         constraint.
31242         (*movxi_internal_avx512f): Ditto.
31243         (define_split): Check for xmm16+, when splitting scalar float_extend.
31244         (*extendsfdf2_mixed): Use "v" constraint.
31245         (define_split): Check for xmm16+, when splitting scalar float_truncate.
31246         (*truncdfsf_fast_sse): Use "v" constraint.
31247         (fix_trunc<MODEF:mode><SWI48:mode>_sse): Ditto.
31248         (*float<SWI48:mode><MODEF:mode>2_sse): Ditto.
31249         (define_peephole2): Check for xmm16+, when converting scalar
31250         float_truncate.
31251         (define_peephole2): Check for xmm16+, when converting scalar
31252         float_extend.
31253         (*fop_<mode>_comm_mixed): Use "v" constraint.
31254         (*fop_<mode>_comm_sse): Ditto.
31255         (*fop_<mode>_1_mixed): Ditto.
31256         (*sqrt<mode>2_sse): Ditto.
31257         (*ieee_s<ieee_maxmin><mode>3): Ditto.
31258
31259 2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31260
31261         * combine.c (simplify_if_then_else): Use std::swap instead
31262         of manually swapping.
31263         (known_cond): Likewise.
31264         (simplify_comparison): Likewise.
31265
31266 2015-04-27  Peter Bergner  <bergner@vnet.ibm.com>
31267
31268         PR target/64579
31269         * config/rs6000/htm.md: Remove all define_expands.
31270         (UNSPECV_HTM_TABORTDC, UNSPECV_HTM_TABORTDCI, UNSPECV_HTM_TABORTWC,
31271         UNSPECV_HTM_TABORTWCI): Remove.
31272         (UNSPECV_HTM_TABORTXC, UNSPECV_HTM_TABORTXCI, UNSPECV_HTM_TTEST): New.
31273         (tabort_internal, tbegin_internal, tcheck_internal, tend_internal,
31274         trechkpt_internal, treclaim_internal, tsr_internal): Rename from this...
31275         (tabort, tbegin, tcheck, tend, trechkpt, treclaim, tsr): ...to this.
31276         (tabortdc_internal, tabortdci_internal, tabortwc_internal,
31277         tabortwci_internal): Remove define_insns.
31278         (tabort<wd>c, tabort<wd>ci): New define_insns.
31279         (tabort): Use gpc_reg_operand.
31280         (tcheck): Remove operand.
31281         (htm_mfspr_<mode>, htm_mtspr_<mode>): Use GPR mode macro.
31282         * config/rs6000/htmxlintrin.h (__TM_end): Use _HTM_TRANSACTIONAL as
31283         expected value.
31284         * config/rs6000/rs6000-builtin.def (BU_HTM_SPR0): Remove.
31285         (BU_HTM_SPR1): Rename to BU_HTM_V1.  Remove use of RS6000_BTC_SPR.
31286         (tabort, tabortdc, tabortdci, tabortwc, tabortwci, tbegin,
31287         tcheck, tend, tendall, trechkpt, treclaim, tresume, tsuspend,
31288         tsr, ttest): Pass in the RS6000_BTC_CR attribute.
31289         (get_tfhar, set_tfhar, get_tfiar, set_tfiar, get_texasr, set_texasr,
31290         get_texasru, set_texasru): Pass in the RS6000_BTC_SPR attribute.
31291         (tcheck): Remove builtin argument.
31292         * config/rs6000/rs6000.c (rs6000_htm_spr_icode): Use TARGET_POWERPC64
31293         not TARGET_64BIT.
31294         (htm_expand_builtin): Fix usage of expandedp.  Disallow usage of the
31295         tabortdc and tabortdci builtins when not in 64-bit mode.
31296         Modify code to handle the loss of the HTM define_expands.
31297         Emit code to copy the CR register to TARGET.
31298         (htm_init_builtins): Modify code to handle the loss of the HTM
31299         define_expands.
31300         * config/rs6000/rs6000.h (RS6000_BTC_32BIT): Delete.
31301         (RS6000_BTC_64BIT): Likewise.
31302         (RS6000_BTC_CR): New macro.
31303         * doc/extend.texi: Update documentation for htm builtins.
31304
31305 2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31306
31307         * simplify-rtx.c (simplify_gen_binary): Use std::swap instead
31308         of manually swapping.
31309         (simplify_associative_operation): Likewise.
31310         (simplify_binary_operation): Likewise.
31311         (simplify_plus_minus): Likewise.
31312         (simplify_relational_operation): Likewise.
31313         (simplify_ternary_operation): Likewise.
31314
31315 2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>
31316
31317         * config/stormy16/predicates.md (xs_hi_general_operand): Delete.
31318         (xs_hi_nonmemory_operand): Remove error.
31319         * config/stormy16/stormy16.md (movhi, movhi_internal): Use
31320         general_operand rather than xs_hi_general_operand.
31321
31322 2015-04-27  Richard Biener  <rguenther@suse.de>
31323
31324         * tree-ssa-dom.c (record_equivalences_from_phis): Valueize PHI arg.
31325         (record_equivalences_from_stmt): Valueize rhs.
31326         (record_equality): Canonicalize x and y order via
31327         tree_swap_operands_p.  Do not swap operands for same loop depth.
31328
31329 2015-04-27  Georg-Johann Lay  <avr@gjlay.de>
31330
31331         PR target/65296
31332         PR target/65895
31333         * config/avr/gen-avr-mmcu-specs.c (print_mcu): Close file.
31334         Add hint how to use own spec file.
31335
31336 2015-04-27  Jakub Jelinek  <jakub@redhat.com>
31337
31338         PR tree-optimization/65875
31339         * tree-vrp.c (update_value_range): If in is_new case setting
31340         old_vr to VR_VARYING, also set new_vr to it.  Remove
31341         old_vr->type == VR_VARYING test.
31342         (vrp_visit_phi_node): Return SSA_PROP_VARYING instead of
31343         SSA_PROP_INTERESTING if update_value_range returned true,
31344         but new range is VR_VARYING.
31345
31346 2015-04-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>
31347
31348         * combine.c (sign_extend_short_imm): New.
31349         (set_nonzero_bits_and_sign_copies): Use above new function for sign
31350         extension of src short immediate.
31351         (reg_nonzero_bits_for_combine): Likewise for tem.
31352
31353 2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>
31354
31355         * stor-layout.c (self_referential_component_ref_p): New predicate.
31356         (copy_self_referential_tree_r): Use it.
31357         (self_referential_size): Punt for simple operations directly involving
31358         self-referential component references.
31359         * tree-cfg.c (dump_function_to_file): Add missing final curly bracket.
31360
31361 2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>
31362
31363         * ipa-icf.c (icf_handled_component_p): Remove redundant tests.
31364
31365 2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>
31366
31367         * vec.h (vec): Make splice arguments const.  Update definitions
31368         accordingly.
31369
31370 2015-04-27  Yvan Roux  <yvan.roux@linaro.org>
31371
31372         * config/arm/arm.md (*arm_subsi3_insn): Fixed redundant
31373         alternatives.
31374
31375 2015-04-26  Tom de Vries  <tom@codesourcery.com>
31376
31377         PR tree-optimization/65826
31378         * internal-fn.def: Mark VA_ARG with ECF_LEAF.
31379
31380 2015-04-24  Steve Ellcey  <sellcey@imgtec.com>
31381
31382         * config/mips/mips.md: (*madd4<mode>) Remove accum_in attribute.
31383         (*madd3<mode>): Ditto.
31384         (*msub4<mode>): Ditto.
31385         (*msub3<mode>): Ditto.
31386         (*nmadd4<mode>): Ditto.
31387         (*nmadd3<mode>): Ditto.
31388         (*nmadd4<mode>_fastmath): Ditto.
31389         (*nmadd3<mode>_fastmath): Ditto.
31390         (*nmsub4<mode>): Ditto.
31391         (*nmsub3<mode>): Ditto.
31392         (*nmsub4<mode>_fastmath): Ditto.
31393         (*nmsub3<mode>_fastmath): Ditto.
31394
31395 2015-04-24  Jason Merrill  <jason@redhat.com>
31396
31397         PR c++/50800
31398         * tree.c (build_reference_type_for_mode): Don't pass can_alias_all
31399         down when building TYPE_CANONICAL.
31400         (build_pointer_type_for_mode): Likewise.
31401
31402 2015-04-24  Chen Gang  <gang.chen.5i5j@gmail.com>
31403
31404         * genrecog.c (validate_pattern): Check matching constraint refers
31405         to a lower numbered operand.
31406
31407 2015-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
31408
31409         PR target/65849
31410         * config/rs6000/rs6000.opt (-mvsx-align-128): Make options that
31411         save to independent variables use the Save attribute.  This will
31412         allow these options to be modified with the #pragma/attribute
31413         target support.
31414         (-mallow-movmisalign): Likewise.
31415         (-mallow-df-permute): Likewise.
31416         (-msched-groups): Likewise.
31417         (-malways-hint): Likewise.
31418         (-malign-branch-targets): Likewise.
31419         (-mvectorize-builtins): Likewise.
31420         (-msave-toc-indirect): Likewise.
31421
31422         * config/rs6000/rs6000.c (rs6000_opt_masks): Add more options that
31423         can be set via the #pragma/attribute target support.
31424         (rs6000_opt_vars): Likewise.
31425         (rs6000_inner_target_options): If VSX was set, also set
31426         -mno-avoid-indexed-addresses.
31427
31428 2015-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31429
31430         * config/arm/iterators.md (shiftable_ops): Rename to...
31431         (SHIFTABLE_OPS): ... This.  Update use in comments.
31432         (ior_xor): Rename to...
31433         (IOR_XOR): ... This.
31434         (vqh_ops): Rename to...
31435         (VQH_OPS): ... This.
31436         (vqhs_ops): Rename to...
31437         (VQHS_OPS): ... This.
31438         (rshifts): Rename to...
31439         (RSHIFTS): ... This.
31440         (returns): Rename to...
31441         (RETURNS): ... This.
31442         * config/arm/arm.md: Update uses of the above.
31443         * config/arm/neon.md: Likewise.
31444
31445 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31446
31447         * config.host (case ${host}): Add aarch64*-*-linux case.
31448         * config/aarch64/aarch64-cores.def: Add IMPLEMENTER_ID and PART_NUMBER
31449         fields to all the cores.
31450         * config/aarch64/aarch64-elf.h (DRIVER_SELF_SPECS):
31451         Add MCPU_MTUNE_NATIVE_SPECS.
31452         * config/aarch64/aarch64-option-extensions.def: Add FEATURE_STRING
31453         field to all extensions.
31454         * config/aarch64/aarch64-opts.h: Adjust definition of AARCH64_CORE.
31455         * config/aarch64/aarch64.c: Adjust definition of AARCH64_CORE.
31456         Adjust definition of AARCH64_OPT_EXTENSION.
31457         * config/aarch64/aarch64.h: Adjust definition of AARCH64_CORE.
31458         (MCPU_MTUNE_NATIVE_SPECS): Define.
31459         * config/aarch64/driver-aarch64.c: New file.
31460         * config/aarch64/x-arch64: New file.
31461         * doc/invoke.texi (AArch64 Options): Document native value for -mcpu,
31462         -mtune and -march.
31463
31464 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
31465             Wei Mi  <wmi@google.com>
31466
31467         * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple): New.
31468         * config/i386/i386.c (extract_base_offset_in_addr): New function.
31469         (ix86_operands_ok_for_move_multiple): Ditto.
31470         * config/i386/sse.md (movsd/movhpd to movupd peephole2): New pattern.
31471         (movlpd/movhpd to movupd peephole2): Ditto.
31472
31473 2015-04-24  Marek Polacek  <polacek@redhat.com>
31474
31475         PR c/61534
31476         * input.h (from_macro_expansion_at): Define.
31477
31478         PR c/63357
31479         * doc/invoke.texi: Update description of -Wlogical-op.
31480
31481 2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
31482
31483         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): fix
31484         ternary operator in fprintf and harmonize spacing.
31485
31486 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
31487
31488         * config/i386/sse.md (*vec_widen_smult_even_v8si<mask_name>):
31489         Mark operand1 commutative.
31490
31491 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
31492
31493         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Do not allow both
31494         input operands in memory.
31495         (*vec_concatv2si_sse4_1): Ditto.
31496         (*vec_concatv2df): Ditto, except for SSE3 and equal input operands.
31497         (vec_extract_lo_<mode><mask_name>): Change operand 1 predicate to
31498         register_operand.
31499         (vec_extract_hi_v32hi): Ditto.
31500         (vec_extract_hi_v64hi): Ditto.
31501         (<mask_codefor>avx512f_unpckhpd512<mask_name>): Ditto.
31502
31503 2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
31504             Steven Bosscher <steven@gcc.gnu.org>
31505
31506         PR rtl-optimization/34503
31507         * cprop.c (cprop_reg_p): New.
31508         (hash_scan_set): Use above function to check if register can be
31509         propagated.
31510         (find_avail_set): Return up to two sets, one whose source is a
31511         register and one whose source is a constant.  Sets are returned in an
31512         array passed as parameter rather than as a return value.
31513         (cprop_insn): Use a do while loop rather than a goto.  Try each of the
31514         sets returned by find_avail_set, starting with the one whose source is
31515         a constant. Use cprop_reg_p to check if register can be propagated.
31516         (do_local_cprop): Use cprop_reg_p to check if register can be
31517         propagated.
31518         (implicit_set_cond_p): Likewise.
31519
31520 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
31521
31522         * ipa-icf.c (sem_function::equals_wpa): Compare thunk info.
31523         (sem_function::equals): IGNORED_NODES parameter is now unused;
31524         update call of equals_private.
31525         (sem_function::equals_private): Do not call equals_wpa; skip
31526         gimple body matching if there is no body.
31527         (sem_function::init): Add logic to hash tthunk info.
31528         (sem_function::parse): Also parse thunks.
31529         * ipa-icf.h (equals_private): Update declaration.
31530
31531 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31532
31533         * config/rs6000/altivec.md (*altivec_lvx_<mode>_internal): Remove
31534         asterisk from name so this can be generated directly.
31535         (*altivec_stvx_<mode>_internal): Likewise.
31536         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Add assert
31537         that this is never called during or after reload/lra.
31538         (rs6000_frame_related): Remove split_reg
31539         argument and logic that references it.
31540         (emit_frame_save): Remove last parameter from call to
31541         rs6000_frame_related.
31542         (rs6000_emit_prologue): Remove last parameter from eight calls to
31543         rs6000_frame_related.  Force generation of stvx instruction for
31544         Altivec register saves.  Remove split_reg handling, which is no
31545         longer needed.
31546         (rs6000_emit_epilogue):  Force generation of lvx instruction for
31547         Altivec register restores.
31548
31549 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31550
31551         * config/rs6000/rs6000.opt (mcrypto): Change option description to
31552         match category changes in ISA 2.07B.
31553
31554 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31555
31556         * config/arm/iterators.md (GTGE, GTUGEU, COMPARISONS): New code
31557         iterators.
31558         (cmp_op, cmp_type): New code attributes.
31559         (NEON_VCMP, NEON_VACMP): New int iterators.
31560         (cmp_op_unsp): New int attribute.
31561         * config/arm/neon.md (neon_vc<cmp_op><mode>): New define_expand.
31562         (neon_vceq<mode>): Delete.
31563         (neon_vc<cmp_op><mode>_insn): New pattern.
31564         (neon_vc<cmp_op_unsp><mode>_insn_unspec): Likewise.
31565         (neon_vcgeu<mode>): Delete.
31566         (neon_vcle<mode>): Likewise.
31567         (neon_vclt<mode>: Likewise.
31568         (neon_vcage<mode>): Likewise.
31569         (neon_vcagt<mode>): Likewise.
31570         (neon_vca<cmp_op><mode>): New define_expand.
31571         (neon_vca<cmp_op><mode>_insn): New pattern.
31572         (neon_vca<cmp_op_unsp><mode>_insn_unspec): Likewise.
31573
31574 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
31575
31576         * tree.h (attribute_value_equal): Declare.
31577         * tree.c (attribute_value_equal): Export.
31578
31579 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
31580
31581         * ipa-icf.c (sem_item::compare_attributes): New function.
31582         (sem_item::compare_referenced_symbol_properties): Compare variable
31583         attributes.
31584         (sem_item::hash_referenced_symbol_properties): Record DECL_ALIGN.
31585         (sem_function::param_used_p): New function.
31586         (sem_function::equals_wpa): Fix attribute comparsion; match
31587         parameter type codes; do not compare paremter flags when
31588         they are not used; compare edge flags; compare indirect calls.
31589         (sem_item::update_hash_by_addr_refs): Hash reference type.
31590         (sem_function::equals_private): Do not match DECL_ATTRIBUTES.
31591         (sem_variable::equals_wpa): Do not match DECL_ALIGN; match
31592         reference use type.
31593         (sem_item_optimizer::update_hash_by_addr_refs): Use param_used_p.
31594         * ipa-icf.h (compare_attributes, param_used_p): Declare.
31595
31596 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
31597
31598         * ipa-icf.c (symbol_compare_collection::symbol_compare_collection):
31599         cleanup.
31600         (sem_function::get_hash): Do not hash DECL_DISREGARD_INLINE_LIMITS,
31601         DECL_DECLARED_INLINE_P and DECL_IS_OPERATOR_NEW.
31602         (sem_item::compare_referenced_symbol_properties): New.
31603         (sem_item::hash_referenced_symbol_properties): New.
31604         (sem_item::compare_cgraph_references): Rename to ...
31605         (sem_item::compare_symbol_references): ... this one; use
31606         compare_referenced_symbol_properties.
31607         (sem_function::equals_wpa): Do not compare
31608         DECL_DISREGARD_INLINE_LIMITS, DECL_DECLARED_INLINE_P,
31609         DECL_IS_OPERATOR_NEW; compare pointer sizes.
31610         (sem_item::update_hash_by_addr_refs): Call
31611         hash_referenced_symbol_properties.
31612         (sem_item::update_hash_by_local_refs): Cleanup.
31613         (sem_function::merge): Do not mix up symbol properties.
31614         (sem_variable::equals_wpa): Use compare_symbol_references.
31615         * ipa-icf.h (sem_item::compare_referenced_symbol_properties): New.
31616         (sem_item::hash_referenced_symbol_properties): New.
31617         (sem_item::compare_symbol_references): New.
31618         (sem_item::compare_cgraph_references): Remove.
31619
31620 2015-04-23  Kwok Cheung Yeung  <kcy@codesourcery.com>
31621
31622         PR target/26702
31623         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL):
31624         Emit size of local.
31625
31626 2015-04-23  Nick Clifton  <nickc@redhat.com>
31627
31628         * config/rl78/rl78.c (rl78_preferred_reload_class): Add
31629         ATTRIBUTE_UNUSED to x parameter.
31630         * config/rl78/rl78-opts.h (enum rl78_mul_types): Remove unused MUL_RL78.
31631
31632 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31633
31634         * config/rs6000/crypto.md (crypto_vpmsum<CR_char>): Change
31635         TARGET_CRYPTO to TARGET_P8_VECTOR>
31636         (crypto_vpermxor_<mode>): Likewise.
31637         * config/rs6000/rs6000-builtin.def (BU_CRYPTO_2A): New #define.
31638         (BU_CRYPTO_3A): Likewise.
31639         (BU_CRYPTO_OVERLOAD_2A): Rename from BU_CRYPTO_OVERLOAD_2.
31640         (BU_CRYPTO_OVERLOAD_3A): New #define.
31641         (VPMSUMB): Change from BU_CRYPTO_2 to BU_CRYPTO_2A.
31642         (VPMSUMH): Likewise.
31643         (VPMSUMW): Likewise.
31644         (VPMSUMD): Likewise.
31645         (VPERMXOR_V2DI): Change from BU_CRYPTO_3 to BU_CRYPTO_3A.
31646         (VPERMXOR_V4SI): Likewise.
31647         (VPERMXOR_V8HI): Likewise.
31648         (VPERMXOR_V16QI): Likewise.
31649         (VPMSUM): Change from BU_CRYPTO_OVERLOAD_2 to
31650         BU_CRYPTO_OVERLOAD_2A.
31651         (VPERMXOR): Change from BU_CRYPTO_OVERLOAD3 to
31652         BU_CRYPTO_OVERLOAD_3A.
31653         * config/rs6000/rs6000.opt (mcrypto): Change description of
31654         option.
31655
31656 2015-04-23  Richard Biener  <rguenther@suse.de>
31657
31658         * passes.def: Remove copy propagation passes run directly after CCP.
31659         * tree-ssa-ccp.c (get_value_for_expr): Fall back to a COPY for
31660         SSA names.
31661         (ccp_visit_phi_node): Rework to handle first executable edge
31662         specially.
31663
31664 2015-04-23  Matthew Wahab  <matthew.wahab@arm.com>
31665
31666         * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
31667         (ARM_LEGITIMIZE_RELOAD_ADDRESS): Remove.
31668         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Remove.
31669         * config/arm/arm.c (arm_legimitimize_reload_address): Remove.
31670         (thumb_legimitimize_reload_address): Remove.
31671         * config/arm/arm-protos.h (arm_legimitimize_reload_address):
31672         Remove.
31673         (thumb_legimitimize_reload_address): Remove.
31674
31675 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31676
31677         * conditions.h (CC_STATUS_INIT): Gate on #ifndef CC_STATUS_INIT.
31678
31679 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31680
31681         * config/arm/arm.md (load_multiple): Reject operand 2 greater than
31682         MAX_LDM_STM_OPS.
31683         (store_multiple): Likewise.
31684
31685 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31686
31687         * config/arm/arm-protos.h (struct tune_params): Add issue_rate field.
31688         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune,
31689         arm_strongarm_tune, arm_xscale_tune, arm_9e_tune, arm_v6t2_tune,
31690         arm_cortex_tune, arm_cortex_a8_tune, arm_cortex_a7_tune,
31691         arm_cortex_a15_tune, arm_cortex_a53_tune, arm_cortex_a57_tune,
31692         arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune,
31693         arm_fa726te_tune arm_cortex_a5_tune, arm_xgene1_tune):
31694         Specify issue_rate value.
31695         (arm_issue_rate): Look up issue rate from tuning structs. Remove
31696         large switch statement.
31697         (arm_marvell_pj4_tune): New struct.
31698         * config/arm/arm-cores.def (marvell-pj4): Use arm_marvell_pj4_tune
31699         struct.
31700
31701 2015-04-23  Richard Biener  <rguenther@suse.de>
31702
31703         * tree-vect-slp.c (vect_find_first_load_in_slp_instance): Remove.
31704         (vect_find_last_store_in_slp_instance): Rename to ...
31705         (vect_find_last_scalar_stmt_in_slp): ... this and generalize.
31706         (vect_analyze_slp_cost_1): Use vector_load for constant defs
31707         and vec_construct for external defs when estimating prologue cost.
31708         (vect_analyze_slp_instance): Do not init SLP_INSTANCE_FIRST_LOAD_STMT.
31709         Compute costs here only when vectorizing loops.
31710         (vect_slp_analyze_bb_1): Compute SLP cost here, after vector types
31711         have been determined.
31712         (vect_schedule_slp_instance): Simplify vectorized code placement
31713         and prepare for in-BB external defs.
31714         * tree-vectorizer.h (struct _slp_instance): Remove first_load member.
31715         (SLP_INSTANCE_FIRST_LOAD_STMT): Remove.
31716         * tree-vect-stmts.c (vect_model_store_cost): Remove PURE_SLP_STMT
31717         guard.
31718         (vect_model_load_cost): Likewise.
31719         (vectorizable_store): Instead add it here.
31720         (vectorizable_load): Likewise.
31721         (vect_is_simple_use): Dump def type textually.
31722
31723 2015-04-23  Richard Biener  <rguenther@suse.de>
31724
31725         * cfgexpand.c (expand_gimple_stmt_1): Use ops.code.
31726         * cfgloop.c (verify_loop_structure): Verify the root loop node.
31727         * except.c (duplicate_eh_regions): Call get_eh_region_from_lp_number_fn
31728         instead of get_eh_region_from_lp_number.
31729         * loop-init.c (fix_loop_structure): If we removed a loop, reset
31730         the SCEV cache.
31731
31732 2015-04-23  Anton Blanchard  <anton@samba.org>
31733
31734         * config/rs6000/rs6000.c (rs6000_output_function_prologue): No
31735         need for -mprofile-kernel to save LR to stack.
31736
31737 2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31738
31739         * config/rs6000/rs6000.c (rtx_is_swappable_p): Commentary
31740         adjustments.
31741         (insn_is_swappable_p): Return 1 for a convert from double to
31742         single precision when all of its uses are splats of BE element
31743         zero.
31744
31745 2015-04-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
31746
31747         * ira-costs.c (record_operand_costs): Fix typo (remove redundant code).
31748
31749 2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31750
31751         PR target/65456
31752         * config/rs6000/rs6000.c (rs6000_option_override_internal):  For
31753         VSX + POWER8, enable TARGET_ALLOW_MOVMISALIGN and
31754         TARGET_EFFICIENT_UNALIGNED_VSX if not selected by command line
31755         option.
31756         (rs6000_builtin_mask_for_load): Return 0 for targets with
31757         efficient unaligned VSX accesses so that the vectorizer will use
31758         direct unaligned loads.
31759         (rs6000_builtin_support_vector_misalignment): Always return true
31760         for targets with efficient unaligned VSX accesses.
31761         (rs6000_builtin_vectorization_cost): Cost of unaligned loads and
31762         stores on targets with efficient unaligned VSX accesses is almost
31763         always the same as the cost of an aligned load or store, so model
31764         it that way.
31765         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Return 0 for
31766         unaligned vectors if we have efficient unaligned VSX accesses.
31767         * config/rs6000/rs6000.opt (mefficient-unaligned-vector): New
31768         undocumented option.
31769
31770 2015-04-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31771
31772         Revert:
31773         2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>
31774
31775         * config.gcc (LIBC_MUSL): New tm_defines macro.
31776         * config/linux.h (OPTION_MUSL): Define.
31777         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
31778         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
31779         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
31780
31781         * config/linux.opt (mmusl): New option.
31782         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
31783         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
31784
31785         * configure: Regenerate.
31786
31787 2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>
31788
31789         * config.gcc (LIBC_MUSL): New tm_defines macro.
31790         * config/linux.h (OPTION_MUSL): Define.
31791         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
31792         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
31793         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
31794
31795         * config/linux.opt (mmusl): New option.
31796         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
31797         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
31798
31799         * configure: Regenerate.
31800
31801 2015-04-22  Yury Gribov  <y.gribov@samsung.com>
31802
31803         * doc/invoke.texi (-fsanitize-sections): Update description.
31804         * asan.c (set_sanitized_sections): Parse incoming arg.
31805         (section_sanitized_p): Support wildcards.
31806
31807 2015-04-22  Tom de Vries  <tom@codesourcery.com>
31808
31809         PR tree-optimization/65823
31810         * gimplify.c (gimplify_modify_expr): Use operand_equal_p to test for
31811         equality between ap_copy and ap.
31812
31813 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
31814
31815         PR target/47098
31816         * config/openbsd-oldgas.h (OBSD_LIB_SPEC): Add.
31817
31818 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
31819
31820         PR target/47122
31821         * config.gcc (vax-*-openbsd*): Fix name of pthread spec header.
31822
31823 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
31824
31825         PR target/55144
31826         * config.gcc (bfin*-linux-uclibc*): Prepend tmake_file and
31827         remove already contained t-files.
31828
31829 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
31830
31831         * tree-tailcall.c (suitable_for_tail_opt_p, find_tail_calls):
31832         Remove unneeded forward declarations.
31833         (suitable_for_tail_call_opt_p): Commentary typo fix.
31834
31835 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
31836
31837         * varasm.c (emit_bss): Remove redundant guard.
31838
31839 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
31840
31841         * config/c6x/c6x.h (TARGET_CPU_CPP_BUILTINS): Add unk_isa.
31842
31843 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
31844
31845         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Add BFIN_CPU_UNKNOWN.
31846
31847 2015-04-22  Hale Wang  <hale.wang@arm.com>
31848             Terry Guo  <terry.guo@arm.com>
31849
31850         PR rtl-optimization/64818
31851         * combine.c (can_combine_p): Don't combine user-specified
31852         register if it is in an asm input.
31853
31854 2015-04-21  Jan Hubicka  <hubicka@ucw.cz>
31855
31856         PR ipa/65076
31857         * passes.def (early_optimizations): Add pass_dse.
31858
31859 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31860
31861         * defaults.h (INSN_REFERENCES_ARE_DELAYED): New definition.
31862         * reorg.c (redundant_insn): Remove ifdef
31863         INSN_REFERENCES_ARE_DELAYED.
31864         * resource.c (mark_referenced_resources): Likewise.
31865
31866 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31867
31868         * defaults.h (INSN_SETS_ARE_DELAYED): New definition.
31869         * reorg.c (redundant_insn): Remove ifdef INSN_SETS_ARE_DELAYED.
31870         * resource.c (mark_set_resources): Likewise.
31871
31872 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31873
31874         * caller-save.c (insert_one_insn): Remove ifdef HAVE_cc0.
31875         * cfgcleanup.c (flow_find_cross_jump): Likewise.
31876         (flow_find_head_matching_sequence): Likewise.
31877         (try_head_merge_bb): Likewise.
31878         * combine.c (can_combine_p): Likewise.
31879         (try_combine): Likewise.
31880         (distribute_notes): Likewise.
31881         * df-problems.c (can_move_insns_across): Likewise.
31882         * final.c (final): Likewise.
31883         * gcse.c (insert_insn_end_basic_block): Likewise.
31884         * ira.c (find_moveable_pseudos): Likewise.
31885         * reorg.c (try_merge_delay_insns): Likewise.
31886         (fill_simple_delay_slots): Likewise.
31887         (fill_slots_from_thread): Likewise.
31888         * sched-deps.c (sched_analyze_2): Likewise.
31889
31890 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31891
31892         * df-scan.c (df_get_entry_block_def_set): Remove #ifdef
31893         PIC_OFFSET_TABLE_REGNUM.
31894
31895 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31896
31897         * alias.c (init_alias_target): Remove ifdef
31898         * HARD_FRAME_POINTER_IS_FRAME_POINTER.
31899         * df-scan.c (df_insn_refs_collect): Likewise.
31900         (df_get_regular_block_artificial_uses): Likewise.
31901         (df_get_eh_block_artificial_uses): Likewise.
31902         (df_get_entry_block_def_set): Likewise.
31903         (df_get_exit_block_use_set): Likewise.
31904         * emit-rtl.c (gen_rtx_REG): Likewise.
31905         * ira.c (ira_setup_eliminable_regset): Likewise.
31906         * reginfo.c (init_reg_sets_1): Likewise.
31907         * regrename.c (rename_chains): Likewise.
31908         * reload1.c (reload): Likewise.
31909         (eliminate_regs_in_insn): Likewise.
31910         * resource.c (mark_referenced_resources): Likewise.
31911         (init_resource_info): Likewise.
31912
31913 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31914
31915         * defaults.h (MASK_RETURN_ADDR): New definition.
31916         * except.c (expand_builtin_extract_return_addr): Remove ifdef
31917         MASK_RETURN_ADDR.
31918
31919 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31920
31921         * defaults.h (RETURN_ADDR_OFFSET): New definition.
31922         * except.c (expand_builtin_extract_return_addr): Remove ifdef
31923         RETURN_ADDR_OFFSET.
31924         (expand_builtin_frob_return_addr): Likewise.
31925
31926 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31927
31928         * cfgrtl.c (rtl_merge_blocks): Change #if HAVE_cc0 to if (HAVE_cc0)
31929         (try_redirect_by_replacing_jump): Likewise.
31930         (rtl_tidy_fallthru_edge): Likewise.
31931         * combine.c (insn_a_feeds_b): Likewise.
31932         (find_split_point): Likewise.
31933         (simplify_set): Likewise.
31934         * cprop.c (cprop_jump): Likewise.
31935         * cse.c (cse_extended_basic_block): Likewise.
31936         * df-problems.c (can_move_insns_across): Likewise.
31937         * function.c (emit_use_return_register_into_block): Likewise.
31938         * haifa-sched.c (sched_init): Likewise.
31939         * ira.c (find_moveable_pseudos): Likewise.
31940         * loop-invariant.c (find_invariant_insn): Likewise.
31941         * lra-constraints.c (curr_insn_transform): Likewise.
31942         * postreload.c (reload_combine_recognize_const_pattern):
31943         * Likewise.
31944         * reload.c (find_reloads): Likewise.
31945         * reorg.c (delete_scheduled_jump): Likewise.
31946         (steal_delay_list_from_target): Likewise.
31947         (steal_delay_list_from_fallthrough): Likewise.
31948         (redundant_insn): Likewise.
31949         (fill_simple_delay_slots): Likewise.
31950         (fill_slots_from_thread): Likewise.
31951         (delete_computation): Likewise.
31952         * sched-rgn.c (add_branch_dependences): Likewise.
31953
31954 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31955
31956         * genconfig.c (main): Always define HAVE_cc0.
31957         * caller-save.c (insert_one_insn): Change ifdef HAVE_cc0 to #if
31958         HAVE_cc0.
31959         * cfgcleanup.c (flow_find_cross_jump): Likewise.
31960         (flow_find_head_matching_sequence): Likewise.
31961         (try_head_merge_bb): Likewise.
31962         * cfgrtl.c (rtl_merge_blocks): Likewise.
31963         (try_redirect_by_replacing_jump): Likewise.
31964         (rtl_tidy_fallthru_edge): Likewise.
31965         * combine.c (do_SUBST_MODE): Likewise.
31966         (insn_a_feeds_b): Likewise.
31967         (combine_instructions): Likewise.
31968         (can_combine_p): Likewise.
31969         (try_combine): Likewise.
31970         (find_split_point): Likewise.
31971         (subst): Likewise.
31972         (simplify_set): Likewise.
31973         (distribute_notes): Likewise.
31974         * cprop.c (cprop_jump): Likewise.
31975         * cse.c (cse_extended_basic_block): Likewise.
31976         * df-problems.c (can_move_insns_across): Likewise.
31977         * final.c (final): Likewise.
31978         (final_scan_insn): Likewise.
31979         * function.c (emit_use_return_register_into_block): Likewise.
31980         * gcse.c (insert_insn_end_basic_block): Likewise.
31981         * haifa-sched.c (sched_init): Likewise.
31982         * ira.c (find_moveable_pseudos): Likewise.
31983         * loop-invariant.c (find_invariant_insn): Likewise.
31984         * lra-constraints.c (curr_insn_transform): Likewise.
31985         * optabs.c (prepare_cmp_insn): Likewise.
31986         * postreload.c (reload_combine_recognize_const_pattern):
31987         * Likewise.
31988         * reload.c (find_reloads): Likewise.
31989         (find_reloads_address_1): Likewise.
31990         * reorg.c (delete_scheduled_jump): Likewise.
31991         (steal_delay_list_from_target): Likewise.
31992         (steal_delay_list_from_fallthrough): Likewise.
31993         (try_merge_delay_insns): Likewise.
31994         (redundant_insn): Likewise.
31995         (fill_simple_delay_slots): Likewise.
31996         (fill_slots_from_thread): Likewise.
31997         (delete_computation): Likewise.
31998         (relax_delay_slots): Likewise.
31999         * sched-deps.c (sched_analyze_2): Likewise.
32000         * sched-rgn.c (add_branch_dependences): Likewise.
32001
32002 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32003
32004         * combine.c (find_single_use): Remove HAVE_cc0 ifdef for code
32005         that is trivially ded on non cc0 targets.
32006         (simplify_set): Likewise.
32007         (mark_used_regs_combine): Likewise.
32008         * cse.c (new_basic_block): Likewise.
32009         (fold_rtx): Likewise.
32010         (cse_insn): Likewise.
32011         (cse_extended_basic_block): Likewise.
32012         (set_live_p): Likewise.
32013         * rtlanal.c (canonicalize_condition): Likewise.
32014         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
32015
32016 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32017
32018         * conditions.h: Define macros even if HAVE_cc0 is undefined.
32019         * emit-rtl.c: Define functions even if HAVE_cc0 is undefined.
32020         * final.c: Likewise.
32021         * jump.c: Likewise.
32022         * recog.c: Likewise.
32023         * recog.h: Declare functions even when HAVE_cc0 is undefined.
32024         * sched-deps.c (sched_analyze_2): Always compile case for cc0.
32025
32026 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32027
32028         * defaults.h: New definition of EH_RETURN_DATA_REGNO.
32029         * except.c: Remove definition of EH_RETURN_DATA_REGNO.
32030         * builtins.c (expand_builtin): Remove check if
32031         EH_RETURN_DATA_REGNO is defined.
32032         * df-scan.c (df_bb_refs_collect): Likewise.
32033         (df_get_exit_block_use_set): Likewise.
32034         * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
32035         * ira-lives.c (process_bb_node_lives): Likewise.
32036         * lra-lives.c (process_bb_lives): Likewise.
32037
32038 2015-04-21  Uros Bizjak  <ubizjak@gmail.com>
32039
32040         * config/i386/i386.md (ARGP_REG, FRAME_REG, BND2_REG, BND3_REG,
32041         FIRST_PSEUDO_REG): New.
32042         * config/i386/i386.h (STACK_POINTER_REGNUM): Define to SP_REG.
32043         (ARG_POINTER_REGNUM): Define to ARGP_REG.
32044         (FRAME_POINTER_REGNUM): Define to FRAME_REG.
32045         (HARD_FRAME_POINTER_REGNUM): Define to BP_REG.
32046         (FIRST_PSEUDO_REGISTER): Define to FIRST_PSEUDO_REG.
32047         (FIRST_INT_REG): New.
32048         (LAST_INT_REG): New.
32049         (FIRST_*_REG): Define using *_REG.
32050         (LAST_*_REG): Ditto.
32051         (QI_REGNO_P): Define using FIRST_QU_REG and LAST_QI_REG.
32052         (LEGACY_INT_REGNO_P): Define using FIRST_INT_REG and LAST_INT_REG.
32053         (FIRST_FLOAT_REG): Define to FIRST_STACK_REG.
32054
32055 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32056
32057         * expmed.c: (synth_mult): Only assume overlapping
32058         shift with previous steps in alg_sub_t_m2 case.
32059
32060 2015-04-21  Richard Biener  <rguenther@suse.de>
32061
32062         PR tree-optimization/65650
32063         * tree-ssa-ccp.c (valid_lattice_transition): Allow lattice
32064         transitions involving copies.
32065         (set_lattice_value): Adjust for copy lattice state.
32066         (ccp_lattice_meet): Do not merge UNDEFINED and a copy to the copy
32067         if that doesn't dominate the merge point.
32068         (bit_value_unop): Adjust what we treat as varying mask.
32069         (bit_value_binop): Likewise.
32070         (bit_value_assume_aligned): Likewise.
32071         (evaluate_stmt): When we simplified to a SSA name record a copy
32072         instead of dropping to varying.
32073         (visit_assignment): Simplify.
32074
32075         * gimple-match.h (gimple_simplify): Add another callback.
32076         * gimple-fold.c (fold_stmt_1): Adjust caller.
32077         (gimple_fold_stmt_to_constant_1): Likewise - pass valueize
32078         for the 2nd callback.
32079         * gimple-match-head.c (gimple_simplify): Add a callback that is
32080         used to valueize the stmt operands and use it that way.
32081
32082 2015-04-21  Richard Biener  <rguenther@suse.de>
32083
32084         PR tree-optimization/65788
32085         * tree-ssa-ccp.c (evaluate_stmt): Evaluate to UNDEFINED early.
32086
32087 2015-04-21  Richard Biener  <rguenther@suse.de>
32088
32089         * config/i386/i386.c (ix86_builtin_vectorization_cost): Scale
32090         vec_construct cost by vec_stmt_cost.
32091
32092 2015-04-21  Richard Biener  <rguenther@suse.de>
32093
32094         * cfghooks.h (create_basic_block): Replace with two overloads
32095         for RTL and GIMPLE.
32096         (split_block): Likewise.
32097         * cfghooks.c (split_block): Rename to ...
32098         (split_block_1): ... this.
32099         (split_block): Add two type-safe overloads for RTL and GIMPLE.
32100         (split_block_after_labels): Call split_block_1.
32101         (create_basic_block): Rename to ...
32102         (create_basic_block_1): ... this.
32103         (create_basic_block): Add two type-safe overloads for RTL and GIMPLE.
32104         (create_empty_bb): Call create_basic_block_1.
32105         * cfgrtl.c (fixup_fallthru_exit_predecessor): Use
32106         split_block_after_labels.
32107         * omp-low.c (expand_parallel_call): Likewise.
32108         (expand_omp_target): Likewise.
32109         (simd_clone_adjust): Likewise.
32110         * tree-chkp.c (chkp_get_entry_block): Likewise.
32111         * cgraphunit.c (init_lowered_empty_function): Use the GIMPLE
32112         create_basic_block overload.
32113         (cgraph_node::expand_thunk): Likewise.
32114         * tree-cfg.c (make_blocks): Likewise.
32115         (handle_abnormal_edges): Likewise.
32116         * tree-inline.c (copy_bb): Likewise.
32117
32118 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32119
32120         * config/aarch64/aarch64.md (*<NLOGICAL:optab>_one_cmplsidi3_ze):
32121         New pattern.
32122         (*xor_one_cmplsidi3_ze): Likewise.
32123
32124 2015-04-21  Thomas Preud'homme  <thomas.preudhomme@arm.com>
32125
32126         * df-core.c (df_finish_pass): Iterate over df->problems_by_index[] and
32127         use df_remove_problem rather than manually removing problems, leaving
32128         holes in df->problems_in_order[].
32129
32130 2015-04-21  Tom de Vries  <tom@codesourcery.com>
32131
32132         PR tree-optimization/65802
32133         * internal-fn.def (VA_ARG): Add ECF_NOTROW to flags.
32134
32135 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32136
32137         * common/config/aarch64/aarch64-common.c (AARCH64_CPU_NAME_LENGTH):
32138         Increase to 128.
32139         (aarch64_rewrite_selected_cpu): Do not chop off extensions starting
32140         at '.'.  Assert that there's enough space for everything.
32141
32142 2015-04-21  Uros Bizjak  <ubizjak@gmail.com>
32143
32144         PR tree-optimization/64950
32145         Revert:
32146         2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
32147
32148         PR target/41089
32149         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
32150         as volatile.
32151
32152 2015-04-20  Shiva Chen  <shiva0217@gmail.com>
32153
32154         PR rtl-optimization/64916
32155         * cfgcleanup.c (values_equal_p): New function.
32156         (can_replace_by): Use it.
32157
32158 2015-04-20  Paolo Carlini  <paolo.carlini@oracle.com>
32159
32160         PR c++/65801
32161         * doc/invoke.texi ([-Wnarrowing]): Update.
32162
32163 2015-04-20  Jeff Law  <law@redhat.com>
32164
32165         PR tree-optimization/65658
32166         * tree-ssa-threadupdate.c (redirection_block_p): Remove
32167         redundant test for GIMPLE_ASSIGN in last change.
32168
32169 2015-04-20  Uros Bizjak  <ubizjak@gmail.com>
32170
32171         * config/i386/i386.c (set_pic_reg_ever_live): Remove.
32172         (legitimize_pic_address): Do not call set_pic_reg_ever_live.
32173         (legitimize_tls_address): Ditto.
32174         (ix86_expand_move): Ditto.
32175         (ix86_expand_binary_operator): Remove reload_in_progress checks.
32176         (ix86_expand_unary_operator): Ditto.
32177         * config/i386/predicates.md (index_register_operand): Ditto.
32178
32179 2015-04-20  Selim Belbachir  <selim.belbachir@fr.thalesgroup.com>
32180
32181         * reorg.c (try_merge_delay_insns): Improve correctness checking
32182         for targets with multiple delay slots.
32183
32184 2015-04-20  Jeff Law  <law@redhat.com>
32185
32186         PR tree-optimization/65658
32187         * tree-ssa-threadupdate.c (redirection_block_p): Ignore clobber
32188         statements too.
32189
32190 2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>
32191
32192         * config/aarch64/aarch64.c (aarch64_simd_emit_pair_result_insn): Delete.
32193         * config/aarch64/aarch64-protos.h (aarch64_simd_emit_pair_result_insn):
32194         Delete.
32195
32196 2015-04-20  Jakub Jelinek  <jakub@redhat.com>
32197
32198         PR debug/65807
32199         * dwarf2out.c (add_AT_wide): Clear attr.dw_attr_val.val_entry.
32200
32201 2015-04-20  Richard Biener  <rguenther@suse.de>
32202
32203         * gimple-fold.h (gimple_build): Remove optional valueize arguments.
32204         * gimple-fold.c (gimple_build_valueize): New function.
32205         (gimple_build): Always use gimple_build_valueize as valueize hook.
32206
32207 2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>
32208
32209         PR target/64134
32210         * config/aarch64/aarch64.c (aarch64_expand_vector_init): Load constant
32211         and overwrite variable parts if <= 1/2 the elements are variable.
32212
32213 2015-04-19  Vladimir Makarov  <vmakarov@redhat.com>
32214
32215         PR rtl-optimization/65805
32216         * lra-eliminations.c (lra_eliminate_regs_1): Add new assert.
32217         Don't use difference of offset and previous offset if
32218         update_sp_offset is non-zero.
32219         (eliminate_regs_in_insn): Ditto.
32220         * lra-spills.c (remove_pseudos): Exchange 4th and 6th args in
32221         lra_eliminate_regs_1 call.
32222         * lra-constraints.c (get_equiv_with_elimination): Ditto.
32223
32224 2015-04-18  Trevor Saunders  <tsaunders@mozilla.com>
32225
32226         * hash-table.h: Remove version of hash_table that stored value_type *.
32227         * asan.c, attribs.c, bitmap.c, cfg.c, cgraph.h, config/arm/arm.c,
32228         config/i386/winnt.c, config/ia64/ia64.c, config/mips/mips.c,
32229         config/sol2.c, coverage.c, cselib.c, dse.c, dwarf2cfi.c,
32230         dwarf2out.c, except.c, gcse.c, genmatch.c, ggc-common.c,
32231         gimple-ssa-strength-reduction.c, gimplify.c, haifa-sched.c,
32232         hard-reg-set.h, hash-map.h, hash-set.h, ipa-devirt.c, ipa-icf.h,
32233         ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
32234         loop-iv.c, loop-unroll.c, lto-streamer.h, plugin.c, postreload-gcse.c,
32235         reginfo.c, statistics.c, store-motion.c, trans-mem.c, tree-cfg.c,
32236         tree-eh.c, tree-hasher.h, tree-into-ssa.c, tree-parloops.c,
32237         tree-sra.c, tree-ssa-coalesce.c, tree-ssa-dom.c, tree-ssa-live.c,
32238         tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c,
32239         tree-ssa-pre.c, tree-ssa-reassoc.c, tree-ssa-sccvn.c,
32240         tree-ssa-structalias.c, tree-ssa-tail-merge.c,
32241         tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
32242         valtrack.h, var-tracking.c, vtable-verify.c, vtable-verify.h: Adjust.
32243
32244 2015-04-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32245             Jakub Jelinek  <jakub@redhat.com>
32246
32247         PR target/65787
32248         * config/rs6000/rs6000.c (rtx_is_swappable_p): Ensure that a
32249         subsequent SH_NONE operand does not overwrite an existing *special
32250         value.
32251         (adjust_extract): Handle case where a vec_extract operation is
32252         wrapped in a PARALLEL.
32253
32254 2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>
32255
32256         PR target/65780
32257         * config/i386/i386.c (ix86_binds_local_p): Define only if
32258         TARGET_MACHO and TARGET_DLLIMPORT_DECL_ATTRIBUTES are false.
32259
32260 2015-04-17  Jeff Law  <law@redhat.com>
32261
32262         PR tree-optimization/47679
32263         * Makefile.in (OBJS); Add tree-ssa-scopedtables.o.
32264         * tree-ssa-scopedtables.c: New file.
32265         * tree-ssa-scopedtables.h: New file.
32266         * tree-ssa-dom.c: Include tree-ssa-scopedtables.h.
32267         (const_and_copies): Change name/type.
32268         (record_const_or_copy): Move into tree-ssa-scopedtables.c
32269         (record_const_or_copy_1): Similarly.
32270         (restore_vars_to_original_value): Similarly.
32271         (pass_dominator::execute): Create and destroy const_and_copies table.
32272         (thread_across_edge): Update passing of const_and_copies.
32273         (record_temporary_equivalence): Use method calls rather than
32274         manipulating const_and_copies directly.
32275         (record_equality, cprop_into_successor_phis): Similarly.
32276         (dom_opt_dom_walker::before_dom_children): Similarly.
32277         (dom_opt_dom_walker::after_dom_children): Similarly.
32278         (eliminate_redundant_computations): Similarly.
32279         * tree-ssa-threadedge.c (remove_temporary_equivalences): Delete.
32280         (record_temporary_equivalence): Likewise.
32281         (invalidate_equivalences): Likewise.
32282         (record_temporary_equivalences_from_phis): Update due to type
32283         change of const_and_copies.  Use method calls rather than
32284         manipulating the stack directly.
32285         (record_temporary_equivalences_from_stmts_at_dest): Likewise.
32286         (thread_through_normal_block, thread_across_edge): Likewise.
32287         (thread_across_edge): Likewise.
32288         * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
32289         * tree-vrp.c: Include tree-ssa-scopedtables.h.  Change type
32290         of equiv_stack.
32291         (identify_jump_threads): Update due to type change of equiv_stack.
32292         (finalize_jump_threads): Delete the equiv_stack when complete.
32293
32294 2015-04-17  Uros Bizjak  <ubizjak@gmail.com>
32295
32296         * config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
32297         * config/i386/i386.c (ix86_legitimize_reload_address): Ditto.
32298         * config/i386/i386-protos.h (ix86_legitimize_reload_address): Ditto.
32299
32300 2015-04-17  Andreas Tobler  <andreast@gcc.gnu.org>
32301
32302         PR target/65535
32303         * config.gcc: Exit with a comment when we do not have a major version
32304         number for the FreeBSD target.
32305
32306 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
32307
32308         PR target/65689
32309         * genpreds.c (struct constraint_data): Add maybe_allows_reg and
32310         maybe_allows_mem bitfields.
32311         (maybe_allows_none_start, maybe_allows_none_end,
32312         maybe_allows_reg_start, maybe_allows_reg_end, maybe_allows_mem_start,
32313         maybe_allows_mem_end): New variables.
32314         (compute_maybe_allows): New function.
32315         (add_constraint): Use it to initialize maybe_allows_reg and
32316         maybe_allows_mem fields.
32317         (choose_enum_order): Sort the non-is_register/is_const_int/is_memory/
32318         is_address constraints such that those that allow neither mem nor
32319         reg come first, then those that only allow reg but not mem, then
32320         those that only allow mem but not reg, then the rest.
32321         (write_allows_reg_mem_function): New function.
32322         (write_tm_preds_h): Call it.
32323         * stmt.c (parse_output_constraint, parse_input_constraint): Use
32324         the generated insn_extra_constraint_allows_reg_mem function
32325         instead of always setting *allows_reg = true; *allows_mem = true;
32326         for unknown extra constraints.
32327
32328 2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>
32329
32330         PR target/65780
32331         * output.h (default_binds_local_p_3): New.
32332         * varasm.c (default_binds_local_p_3): Make it public.  Take an
32333         argument to indicate if common symbol may be local.  If common
32334         symbol may be local, treat non-external variable as defined
32335         locally.
32336         (default_binds_local_p_2): Pass !flag_pic to default_binds_local_p_3.
32337         (default_binds_local_p_1): Pass false to default_binds_local_p_3.
32338         * config/i386/i386.c (ix86_binds_local_p): New.
32339         (TARGET_BINDS_LOCAL_P): Replace default_binds_local_p_2 with
32340         ix86_binds_local_p.
32341
32342 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
32343
32344         PR debug/65771
32345         * dwarf2out.c (mem_loc_descriptor): For CONST, fallback to
32346         trying mem_loc_descriptor on XEXP (rtl, 0).
32347
32348 2015-04-17  Martin Liska  <mliska@suse.cz>
32349
32350         * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
32351         Release symbol_compare_collection.
32352         * ipa-reference.c: Add TODO that a vector should be released.
32353
32354 2015-04-17  Sivanupandi Pitchumani <Pitchumani.Sivanupandi@atmel.com>
32355
32356         PR target/65296
32357         * config/avr/gen-avr-mmcu-specs.c (*avrlibc_startfile): Adjust
32358         to new AVR-LibC file layout (bug #44574).
32359         (*avrlibc_devicelib): Same.
32360         * config/avr/avr-mcus.def: Adjust comments.
32361         * config/avr/avr.opt (nodevicelib): Adjust help.
32362
32363 2015-04-17  Alan Lawrence  <alan.lawrence@arm.com>
32364
32365         * config/aarch64/arm_neon.h (vdup_n_f32): Remove forward declaration.
32366
32367 2015-04-17  Patrick Palka  <ppalka@gcc.gnu.org>
32368
32369         PR c++/64527
32370         * gimplify.c (gimplify_init_constructor): Always emit a
32371         side-effecting constructor.
32372
32373 2015-04-17  Tom de Vries  <tom@codesourcery.com>
32374
32375         PR tree-optimization/64950
32376         * gimplify.c (gimplify_function_tree): Tentatively set PROP_gimple_lva
32377         in cfun->curr_properties.
32378         (gimplify_va_arg_expr): Clear PROP_gimple_lva in cfun->curr_properties
32379         if we generate an IFN_VA_ARG.
32380         * tree-inline.c (expand_call_inline): Reset PROP_gimple_lva in dest
32381         function if PROP_gimple_lva is not set in src function.
32382
32383 2015-04-17  Tom de Vries  <tom@codesourcery.com>
32384             Michael Matz  <matz@suse.de>
32385
32386         PR tree-optimization/64950
32387         * gimple-iterator.c (update_modified_stmts): Remove static.
32388         * gimple-iterator.h (update_modified_stmts): Declare.
32389         * gimplify.c (gimplify_modify_expr): Handle IFN_VA_ARG.
32390         (gimplify_va_arg_internal): New function.
32391         (gimplify_va_arg_expr): Use IFN_VA_ARG.
32392         * gimplify.h (gimplify_va_arg_internal): Declare.
32393         * internal-fn.c (expand_VA_ARG): New unreachable function.
32394         * internal-fn.def (VA_ARG): New DEF_INTERNAL_FN.
32395         * tree-stdarg.c (gimple_call_ifn_va_arg_p, expand_ifn_va_arg_1)
32396         (expand_ifn_va_arg): New function.
32397         (pass_data_stdarg): Add PROP_gimple_lva to properties_provided field.
32398         (pass_stdarg::execute): Call expand_ifn_va_arg.
32399         (pass_data_lower_vaarg): New pass_data.
32400         (pass_lower_vaarg): New gimple_opt_pass.
32401         (pass_lower_vaarg::gate, pass_lower_vaarg::execute)
32402         (make_pass_lower_vaarg): New function.
32403         * cfgexpand.c (pass_data_expand): Add PROP_gimple_lva to
32404         properties_required field.
32405         * passes.def (all_passes): Add pass_lower_vaarg.
32406         * tree-pass.h (PROP_gimple_lva): Add define.
32407         (make_pass_lower_vaarg): Declare.
32408
32409 2015-04-17  Tom de Vries  <tom@codesourcery.com>
32410
32411         * fold-const.c (operand_equal_p): Handle INTERNAL_FNs.
32412         * calls.c (call_expr_flags): Same.
32413
32414 2015-04-17  Tom de Vries  <tom@codesourcery.com>
32415
32416         * tree-stdarg.c (optimize_va_list_gpr_fpr_size): Factor out of ...
32417         (pass_stdarg::execute): ... here.
32418
32419 2015-04-17  Tom de Vries  <tom@codesourcery.com>
32420             Michael Matz  <matz@suse.de>
32421
32422         * tree-cfg.c (make_blocks_1): Factor out of ...
32423         (make_blocks): ... here.
32424         (make_edges_bb): Factor out of ...
32425         (make_edges): ... here.
32426         (gimple_find_sub_bbs): New function.
32427         * tree-cfg.h (gimple_find_sub_bbs): Declare.
32428
32429 2015-04-17  Tom de Vries  <tom@codesourcery.com>
32430
32431         * tree.c (free_lang_data): Disable lang_hooks.gimplify_expr.
32432
32433 2015-04-17  Yury Gribov  <y.gribov@samsung.com>
32434
32435         * asan.c (set_sanitized_sections): New function.
32436         (section_sanitized_p): Ditto.
32437         (asan_protect_global): Optionally sanitize user-defined
32438         sections.
32439         * asan.h (set_sanitized_sections): Declare new function.
32440         * common.opt (fsanitize-sections): New option.
32441         * doc/invoke.texi (-fsanitize-sections): Document new option.
32442         * opts-global.c (handle_common_deferred_options): Handle new
32443         option.
32444
32445 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
32446
32447         PR debug/65771
32448         * dwarf2out.c (loc_list_from_tree): Return NULL
32449         for DEBUG_EXPR_DECL.
32450
32451 2015-04-17  Christian Bruel  <christian.bruel@st.com>
32452
32453         * ipa-inline.c (can_inline_edge_p): Allow inlining of functions with
32454         same attributes.
32455
32456 2015-04-16  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
32457
32458         * ira-color.c (setup_left_conflict_sizes_p): Do not process
32459         node itself when computing left conflict subnode size.
32460
32461 2015-04-16  Uros Bizjak  <ubizjak@gmail.com>
32462
32463         * config/i386/predicates.md (register_mixssei387nonimm_operand): New.
32464         * config/i386/i386.md (*fop_<mode>_1_mixed): Merge with
32465         *fop_<mode>_1_sse using enabled attribute.  Use
32466         register_mixssei387nonimm_operand operand 1 predicate. Change
32467         alternative 3 constraints from "x" to "v".
32468
32469 2015-04-16  Richard Biener  <rguenther@suse.de>
32470
32471         PR tree-optimization/65774
32472         * tree-ssa-ccp.c (evaluate_stmt): Constrain types we invoke
32473         bit-value tracking on.
32474
32475 2015-04-16  Richard Biener  <rguenther@suse.de>
32476
32477         PR tree-optimization/64277
32478         * tree-vrp.c (check_array_ref): Fix anti-range handling,
32479         simplify upper bound handling.
32480         (search_for_addr_array): Simplify.
32481         (check_array_bounds): Handle ADDR_EXPRs here.
32482         (check_all_array_refs): Simplify.
32483
32484 2015-04-16  Uros Bizjak  <ubizjak@gmail.com>
32485
32486         * config/i386/i386.c (print_reg): Rewrite function.
32487
32488 2015-04-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
32489
32490         * config/s390/s390.h (IRA_HARD_REGNO_ADD_COST_MULTIPLIER):
32491         Invert the condition.
32492
32493 2015-04-16  Renlin Li  <renlin.li@arm.com>
32494
32495         * simplify-rtx.c (simplify_unary_operation_1): Fix a typo. Enable two
32496         simplifications for UNSIGNED_FLOAT.
32497
32498 2015-04-16  Nick Clifton  <nickc@redhat.com>
32499
32500         * config/rl78/rl78-opts.h (enum rl78_mul_types): Add MUL_G14 and
32501         MUL_UNINIT.
32502         (enum rl78_cpu_type): New.
32503         * config/rl78/rl78-virt.md (attr valloc): Add divhi and divsi.
32504         (umulhi3_shift_virt): Remove m constraint from operand 1.
32505         (umulqihi3_virt): Likewise.
32506         * config/rl78/rl78.c (rl78_option_override): Add code to process
32507         -mcpu and -mmul options.
32508         (rl78_alloc_physical_registers): Add code to handle divhi and
32509         divsi valloc attributes.
32510         (set_origin): Likewise.
32511         * config/rl78/rl78.h (RL78_MUL_G14): Define.
32512         (TARGET_G10, TARGET_G13, TARGET_G14): Define.
32513         (TARGET_CPU_CPP_BUILTINS): Define __RL78_MUL_xxx__ and
32514         __RL78_Gxx__.
32515         (ASM_SPEC): Pass -mcpu on to assembler.
32516         * config/rl78/rl78.md (mulqi3): Add a clobber of AX.
32517         (mulqi3_rl78): Likewise.
32518         (mulhi3_g13): Likewise.
32519         (mulhi3): Generate the G13 or G14 versions of the insn directly.
32520         (mulsi3): Likewise.
32521         (mulhi3_g14): Add clobbers of AX and BC.
32522         (mulsi3_g14): Likewise.
32523         (mulsi3_g13): Likewise.
32524         (udivmodhi4, udivmodhi4_g14, udivmodsi4): New patterns.
32525         (udivmodsi4_g14, udivmodsi4_g13): New patterns.
32526         * config/rl78/rl78.opt (mmul): Initialise value to
32527         RL78_MUL_UNINIT.
32528         (mcpu): New option.
32529         (m13, m14, mrl78): New option aliases.
32530         * config/rl78/t-rl78 (MULTILIB_OPTIONS): Add mg13 and mg14.
32531         (MULTILIB_DIRNAMES): Add g13 and g14.
32532         * doc/invoke.texi: Document -mcpu and -mmul options.
32533
32534 2015-04-16  Richard Biener  <rguenther@suse.de>
32535
32536         * tree-ssa-ccp.c (likely_value): See if we have operands that
32537         are marked as never simulate again and return CONSTANT in this
32538         case.
32539         * tree-ssa-propagate.c (simulate_stmt): Mark stmts that do
32540         not have any operands that will be simulated again as
32541         not being simulated again.
32542
32543 2015-04-15  Uros Bizjak  <ubizjak@gmail.com>
32544
32545         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed):
32546         Merge with *cmpi<FPCMP:unord><MODEF:mode>_sse using enabled attribute.
32547         (*extendsfdf2_mixed): Merge with *extendsfdf2_sse using enabled
32548         attribute.
32549         (*truncdfsf_fast_mixed): Merge with *truncdfsf_fast_sse using
32550         enabled attribute.
32551         (*float<SWI48:mode><MODEF:mode>2_mixed): Rename from
32552         *float<SWI48:mode><MODEF:mode>2_sse.
32553         (*absneg<mode>2_mixed): Merge with *absneg<mode>2_sse using
32554         enabled attribute.
32555         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_sse using
32556         enabled attribute.
32557
32558 2015-04-15  Tom de Vries  <tom@codesourcery.com>
32559
32560         PR other/65487
32561         * function.c (push_dummy_function): New function.
32562         (init_dummy_function_start): Use push_dummy_function.
32563         (pop_dummy_function): New function.  Factored out of ...
32564         (expand_dummy_function_end): ... here.
32565         * function.h (push_dummy_function, pop_dummy_function): Declare.
32566         * passes.c (pass_manager::dump_passes): Use push_dummy_function and
32567         pop_dummy_function.
32568         * tree-chkp.c (chkp_gate): Handle cgraph_node::get (cfun->decl) == NULL.
32569
32570 2015-04-15  Jeff Law  <law@redhat.com>
32571
32572         PR tree-optimization/47679
32573         * tree-ssa-dom.c (build_and_record_new_cond): Moved to avoid
32574         need for forward declaration in upcoming changes.
32575         (record_conditions, record_edge_info): Likewise.
32576
32577         PR rtl-optimization/42522
32578         * cse.c (fold_rtx): Try to simplify a ZERO_EXTRACT or
32579         SIGN_EXTRACT as a whole object rather than simplifying
32580         its operand.
32581
32582 2015-04-15  Jakub Jelinek  <jakub@redhat.com>
32583
32584         PR ipa/65765
32585         * ipa-icf-gimple.c (func_checker::compare_bb): For GIMPLE_NOP
32586         and GIMPLE_PREDICT use break instead of return true. For
32587         GIMPLE_EH_DISPATCH, compare dispatch region.
32588
32589 2015-04-14  Matthew Wahab  <matthew.wahab@arm.com>
32590
32591         * doc/extend.texi (__sync Builtins): Simplify some text.  Update
32592         details about the implementation.  Make clear preference for
32593         __atomic builtins.  Reduce possibility of future change.
32594
32595 2015-04-15  Nick Clifton  <nickc@redhat.com>
32596
32597         * config/rx/rx.opt (mallow-string-insns): New option.
32598         * config/rx/rx.c (RX_BUILTIN_RMPA): Disable the use of this
32599         builtin if string instructions are denied.
32600         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Define
32601         __RX_ALLOW_STRING_INSNS__ or __RX_DISALLOW_STRING_INSNS__, as
32602         appropriate.
32603         (ASM_SPEC): Pass -mno-allow-string-insns on to the assembler.
32604         * config/rx/rx.md (movstr): Enable pattern only if string
32605         instructions are allowed.
32606         (rx_movstr, rx_strend, movmemsi, rx_movmem): Likewise.
32607         (cmpstrnsi, cmpstrsi, rx_cmpstrn, rmpa): Likewise.
32608         * config/rx/t-rx (MULTILIB_OPTIONS): Add mno-allow-string-insns.
32609         (MULTILIB_DIRNAMES): Add no-strings.
32610         * doc/invoke.texi: Document -mno-allow-string-insns.
32611
32612 2015-04-15  Alan Modra  <amodra@gmail.com>
32613
32614         PR target/65408
32615         PR target/58744
32616         PR middle-end/36043
32617         * calls.c (load_register_parameters): Don't load past end of
32618         mem unless suitably aligned.
32619
32620 2015-04-15  Nick Clifton  <nickc@redhat.com>
32621
32622         * config/rl78/rl78.c (rl78_expand_prologue): Mark large stack
32623         decrement instruction as being frame related.
32624         (rl78_print_operand_1): Handle 'p' modifier to add +0 to HL
32625         based addresses.
32626         If zero extending a function address enclose the operation in
32627         %code(...).
32628         (rl78_preferred_reload_class): New function.
32629         (TARGET_PREFERRED_RELOAD_CLASS): Define.
32630         * config/rl78/rl78.md: Remove useless constraints in expanders.
32631         (mulqi3_rl78): Remove + qualifier on input-only operand 1.
32632         (mulhi3_rl78): Likewise.
32633         (mulhi3_g13): Likewise.
32634         (mulsi3_rl78): Likewise.
32635         (es_addr): Move to before the multiply patterns.
32636
32637 2015-04-15  Alan Modra  <amodra@gmail.com>
32638
32639         * function.h (struct emit_status): Delete x_first_insn, x_last_insn
32640         and sequence_stack.  Add seq.
32641         (seq_stack): Delete.
32642         * function.c (prepare_function_start): Don't access x_last_insn.
32643         * emit-rtl.h (get_current_sequence, get_topmost_sequence): New.
32644         (get_insns, set_first_insn, get_last_insn, set_last_insn): Use them.
32645         * emit_rtl.c (start_sequence, push_topmost_sequence,
32646         pop_topmost_sequence, end_sequence, in_sequence_p, init_emit): Use
32647         sequence accessors.
32648         (get_last_insn_anywhere, add_insn_after_nobb, add_insn_before_nobb,
32649         remove_insn): Likewise.  Simplify.
32650         * config/m32c/m32c.c (m32c_leaf_function_p): Use push_topmost_sequence
32651         and pop_topmost_sequence.
32652         (m32c_function_needs_enter): Use get_topmost_sequence.  Ignore
32653         debug insns.
32654         * config/rs6000/rs6000.c (rs6000_call_aix): Use get_current_sequence.
32655
32656 2015-04-14  Yvan Roux  <yvan.roux@linaro.org>
32657
32658         PR target/65729
32659         * lra-constraints.c (prohibited_class_reg_set_mode_p): Restore and fix
32660         the assertiion.
32661
32662 2015-04-14  Uros Bizjak  <ubizjak@gmail.com>
32663
32664         * config/i386/i386.h (LEGACY_INT_REG_P): New define.
32665         (LEGACY_INT_REGNO_P): Ditto.
32666         (GENERAL_REGNO_P): Use LEGACY_INT_REGNO_P.
32667         (ANY_MASK_REG_P): Remove.
32668         (BND_REG_P): Rename from ANY_BND_REG_P.
32669         * config/i386/i386.c (print_reg): Use LEGACY_INT_REG_P to print
32670         legacy integer registers.  Do not handle MMX_REG_P in a special way.
32671         Merge 64byte and 32byte SSE handling.
32672
32673 2015-04-14  Nick Clifton  <nickc@redhat.com>
32674
32675         * expr.c (expand_assignment): Force an address offset computation
32676         into a register before changing its mode.
32677         (expand_expr_real_1): Likewise.
32678
32679 2015-04-14  Alan Lawrence  <alan.lawrence@arm.com>
32680
32681         * config/aarch64/arm_neon.h (vst1_lane_f32, vst1_lane_f64,
32682         vst1_lane_p8, vst1_lane_p16, vst1_lane_s8, vst1_lane_s16,
32683         vst1_lane_s32, vst1_lane_s64, vst1_lane_u8, vst1_lane_u16,
32684         vst1_lane_u32, vst1_lane_u64, vst1q_lane_f32, vst1q_lane_f64,
32685         vst1q_lane_p8, vst1q_lane_p16, vst1q_lane_s8, vst1q_lane_s16,
32686         vst1q_lane_s32, vst1q_lane_s64, vst1q_lane_u8, vst1q_lane_u16,
32687         vst1q_lane_u32, vst1q_lane_u64): Reimplement with pointer dereference
32688         and __aarch64_vget_lane_any.
32689
32690 2015-04-14  Jakub Jelinek  <jakub@redhat.com>
32691
32692         PR rtl-optimization/65761
32693         * cfgrtl.c (rtl_split_edge): For EDGE_CROSSING split, use
32694         get_last_bb_insn (after) instead of NEXT_INSN (BB_END (after)).
32695
32696 2015-04-14  Richard Biener  <rguenther@suse.de>
32697
32698         * graphite-scop-detection.c: Do not include cp/cp-tree.h.
32699         (graphite_can_represent_scev): Use POINTER_TYPE_P.
32700
32701 2015-04-14  Richard Biener  <rguenther@suse.de>
32702
32703         PR tree-optimization/65758
32704         * tree-ssa-ccp.c (get_value_from_alignment): Adjust mask test
32705         against -1.
32706         (ccp_lattice_meet): Likewise.
32707         (bit_value_unop): Likewise.
32708         (bit_value_binop): Likewise.
32709         (bit_value_assume_aligned): Likewise.
32710
32711 2015-04-14  Christian Bruel  <christian.bruel@st.com>
32712
32713         * execute_dwarf2_frame (dw_frame_pointer_regnum): Reinitialize for each
32714         function.
32715
32716 2015-04-14  Marc Glisse  <marc.glisse@inria.fr>
32717
32718         PR tree-optimization/63387
32719         * match.pd ((x unord x) | (y unord y) -> (x unord y),
32720         (x unord x) | (x unord y) -> (x unord y)): New simplifications.
32721
32722 2015-04-14  Uros Bizjak  <ubizjak@gmail.com>
32723
32724         * config/i386/predicates.md (any_QIreg_operand): Rename from
32725         q_regs_operand.  Do not process subregs.
32726         (QIreg_operand): Use QI_REGNO_P predicate.
32727         (ext_QIreg_operand): Ditto.
32728         (ext_register_operand): Ditto.
32729         * config/i386/i386.md (TEST splitters): Use QIreg_operand predicate.
32730         (AND splitters): Ditto.
32731         (AND with -65536 splitter): Add SWI48 mode for operand 0.
32732         (AND with -256 splitter): Use any_QIreg_operand predicate and
32733         SWI248 mode for operand 0.
32734         (AND with -65281 splitter): Use QIreg_operand predicate and SWI248
32735         mode for operand 0.
32736         (SETCC + MOVZBL peepholes): Update for renamed any_QIreg_operand.
32737
32738 2015-04-13  Gerald Pfeifer  <gerald@pfeifer.com>
32739
32740         * doc/plugins.texi: Rewrite first introductory paragraph.
32741
32742 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
32743
32744         * tree-vrp.c (nonnull_arg_p): THIS pointers and references are non-zero.
32745         (gimple_stmt_nonzero_warnv_p): Reference return values are non-zero.
32746
32747 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
32748
32749         * ipa-profie.c (ipa_profile): Check number of parameters
32750         and possible polymorphic call targets before
32751         devirtualizing.
32752
32753 2015-04-13  Uros Bizjak  <ubizjak@gmail.com>
32754
32755         * config/i386/i386.md (*bmi2_umul<mode><dwi>3_1): Merge from
32756         *bmi2_umulsidi3_1 and *bmi2_umulditi3_1 using DWIH mode iterator.
32757
32758 2015-04-13  Richard Biener  <rguenther@suse.de>
32759
32760         PR tree-optimization/65204
32761         * tree-ssa-ccp.c (evaluate_stmt): Always evaluate address
32762         takens for bit-CCP.
32763
32764 2015-04-13  Richard Biener  <rguenther@suse.de>
32765
32766         PR target/65660
32767         * config/i386/i386.c (bdver1_cost): Double cond_taken_branch_cost
32768         and cond_not_taken_branch_cost to 4 and 2.
32769         (bdver2_cost): Likewise.
32770         (bdver3_cost): Likewise.
32771         (bdver4_cost): Likewise.
32772
32773 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
32774
32775         * hash-table.h (hash_table constructor): Add mem stats.
32776         (alloc_entries): Likewise.
32777
32778 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
32779
32780         * ipa-cp.c (ipcp_driver): Relase prev_edge.
32781         * passes.c (execute_one_pass): Only add transform if pass has one.
32782
32783 2015-04-12  Joseph Myers  <joseph@codesourcery.com>
32784
32785         * config/i386/i386.c (ix86_option_override_internal): Don't set
32786         -fprefetch-loop-arrays if optimizing for size.
32787
32788 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
32789             Gerald Pfeifer  <gerald@pfeifer.com>
32790
32791         * doc/contrib.texi (Contributors): Add Martin Jambor and
32792         Michael Matz.
32793
32794 2015-04-12  Jakub Jelinek  <jakub@redhat.com>
32795
32796         * BASE-VER: Set to 6.0.0.
32797
32798         PR tree-optimization/65747
32799         * ipa-icf-gimple.c (func_checker::compare_operand): Use compare_operand
32800         rather than compare_ssa_name for OBJ_TYPE_REF_OBJECT.
32801
32802 2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
32803
32804         * doc/invoke.texi (-Wmemset-transposed-args): Break a long
32805         sentence.  Improve grammar.
32806
32807 2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
32808
32809         * doc/contrib.texi (Contributors): Add Maxim Kuvyrkov.
32810
32811 2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
32812
32813         PR ipa/65743
32814         * ipa-inline-transform.c (speculation_removed): Remove static var.
32815         (check_speculations): New function.
32816         (clone_inlined_nodes): Do not check spculations.
32817         (inline_call): Call check_speculations.
32818         * ipa-prop.c (ipa_make_edge_direct_to_target): Do not
32819         consider non-invariants.
32820
32821 2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
32822             Martin Liska  <mliska@suse.cz>
32823
32824         PR ipa/65722
32825         * ipa-icf.c (sem_item::compare_cgraph_references): function and
32826         variable can not match.
32827         (sem_item::update_hash_by_addr_refs): Fix handling of virtual tables.
32828         (sem_variable::equals_wpa): Fix checking of DECL_FINAL_P patch.
32829
32830 2015-04-11  Jakub Jelinek  <jakub@redhat.com>
32831
32832         PR tree-optimization/65735
32833         * tree-ssa-threadedge.c (fsm_find_control_statement_thread_paths):
32834         Remove visited_phis argument, add visited_bbs, avoid recursing into the
32835         same bb rather than just into the same phi node.
32836         (thread_through_normal_block): Adjust caller.
32837
32838 2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
32839
32840         * doc/contrib.texi (Contributors): Add Ira Rosen.
32841
32842 2015-04-11  Benno Schulenberg  <bensberg@justemail.net>
32843
32844         * gcov.c (find_source): Fix miswording in error message.
32845         * config/i386/i386.c (ix86_handle_cconv_attribute): Likewise.
32846         (ix86_expand_sse_comi_round): Fix typo in error message.
32847
32848 2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
32849
32850         * doc/contrib.texi (Contributors): Add Laurynas Biveinis.
32851
32852 2015-04-10  Gerald Pfeifer  <gerald@pfeifer.com>
32853
32854         * doc/contrib.texi (Contributors): Update Joe Buck's entry.
32855
32856 2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>
32857
32858         PR target/65710
32859         * lra-assigns.c (spill_for): Update smallest_bad_spills_num.
32860         Print bad_spills_num and insn_pseudos_num.
32861
32862 2015-04-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32863
32864         PR target/65694
32865         * config/arm/arm.c (arm_canonicalize_comparison): Use ARM_SIGN_EXTEND
32866         when creating +1 values for SImode.
32867
32868 2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>
32869
32870         PR target/65729
32871         * lra-constraints.c (prohibited_class_reg_set_mode_p): Comment the
32872         assert.
32873
32874 2015-04-10  Jakub Jelinek  <jakub@redhat.com>
32875             Iain Sandoe  <iain@codesourcery.com>
32876
32877         PR target/65351
32878         * configure: Regenerate.
32879
32880 2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>
32881
32882         PR target/65671
32883         * config/i386/sse.md: Generate vextract32x4 if AVX-512DQ is disabled.
32884
32885 2015-04-09  Gerald Pfeifer  <gerald@pfeifer.com>
32886
32887         * doc/contrib.texi (Contributors): Add John Marino.
32888
32889 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
32890
32891         PR tree-optimization/65709
32892         * ubsan.c (instrument_mem_ref): Use TREE_TYPE (base) instead of
32893         TREE_TYPE (TREE_TYPE (t)).
32894
32895 2015-04-09  Vladimir Makarov  <vmakarov@redhat.com>
32896
32897         PR target/65710
32898         * lra-int.h (lra_bad_spill_regno_start): New.
32899         * lra.c (lra_bad_spill_regno_start): New.
32900         (lra): Set up lra_bad_spill_regno_start.  Set up
32901         lra_constraint_new_regno_start unconditionally.
32902         * lra-assigns.c (spill_for): Use lra_bad_spill_regno_start for
32903         spill preferences.
32904
32905 2015-04-09  Marek Polacek  <polacek@redhat.com>
32906             Jakub Jelinek  <jakub@redhat.com>
32907
32908         PR middle-end/65554
32909         * gimple-fold.c (gimple_fold_builtin_memory_op): Update comment.
32910         (fold_ctor_reference): Use STRIP_USELESS_TYPE_CONVERSION instead
32911         of STRIP_NOPS.
32912
32913 2015-04-09  Segher Boessenkool  <segher@kernel.crashing.org>
32914
32915         PR rtl-optimization/65693
32916         * combine.c (is_parallel_of_n_reg_sets): Move outside of
32917         #ifndef HAVE_cc0.
32918
32919 2015-04-09  Georg-Johann Lay  <avr@gjlay.de>
32920
32921         PR target/65296
32922         * config/avr/driver-avr.c (avr_devicespecs_file): Don't specify a
32923         device specs file if "device-specs%s" didn't resolve to a path.
32924
32925 2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>
32926
32927         PR target/65676
32928         * config/i386/i386.c (fixup_modeless_constant): New.
32929         (ix86_expand_args_builtin): Fixup modeless constant operand.
32930         (ix86_expand_round_builtin): Ditto.
32931         (ix86_expand_special_args_builtin): Ditto.
32932         (ix86_expand_builtin): Ditto.
32933
32934 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
32935
32936         PR target/65693
32937         * config/i386/i386.md (*udivmod<mode>4_pow2): Allow
32938         any pow2 integer in between 2 and 0x80000000U inclusive.
32939
32940 2015-04-08  Segher Boessenkool  <segher@kernel.crashing.org>
32941
32942         PR rtl-optimization/65693
32943         * combine.c (is_parallel_of_n_reg_sets): Change first argument
32944         from an rtx_insn * to an rtx.
32945         (try_combine): Adjust both callers.  Use it once more.
32946
32947 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
32948
32949         * tree-chkp.c (chkp_find_const_bounds_var): Remove.
32950         (chkp_make_static_const_bounds): Search existing
32951         symbol by assembler name.  Use make_decl_one_only.
32952         (chkp_get_zero_bounds_var): Remove node search which
32953         is now performed in chkp_make_static_const_bounds.
32954         (chkp_get_none_bounds_var): Likewise.
32955
32956 2015-04-08  Michael Witten  <mfwitten@gmail.com>
32957
32958         * doc/extend.texi (Attribute Syntax): Add a trailing semicolon
32959         to an example.
32960
32961 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
32962
32963         * tree.h (CONVERT_EXPR_P): Commentary typo fix.
32964
32965 2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>
32966
32967         * doc/extend.texi (__sync Builtins): Fix grammar.
32968
32969 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
32970
32971         * doc/cfg.texi (GIMPLE statement iterators): Fix typo.
32972
32973 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
32974
32975         * varasm.c (emit_local): Move definition of align.
32976
32977 2015-04-08  Julian Brown  <julian@codesourcery.com>
32978
32979         * config/nvptx/mkoffload.c (process): Support variable mapping.
32980
32981 2015-03-27  Trevor Saunders  <tbsaunde@tbsaunde.org>
32982
32983         * config/alpha/alpha.c (alpha_use_linkage): Change type of slot to
32984         alpha_links **.
32985         (alpha_write_one_linkage): Correct typo.
32986
32987 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
32988
32989         * ipa-comdats.c (propagate_comdat_group): Walk through thunks.
32990
32991 2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>
32992
32993         * doc/install.texi (bootstrap-lto-noplugin): Rewrite.
32994
32995 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
32996
32997         * tree-chkp.h (chkp_insert_retbnd_call): New.
32998         * tree-chkp.c (chkp_insert_retbnd_call): New.
32999         * ipa-split.c (insert_bndret_call_after): Remove.
33000         (split_function): Use chkp_insert_retbnd_call.
33001         * cgraphunit.c (cgraph_node::expand_thunk): Build returned
33002         bounds for instrumented functions.
33003
33004 2015-04-07  Jan Hubicka  <hubicka@ucw.cz>
33005
33006         PR ipa/65540
33007         * calls.c (initialize_argument_information): When producing tail
33008         call also turn SSA_NAMES passed by references to original PARM_DECLs
33009
33010 2015-04-07  Vladimir Makarov  <vmakarov@redhat.com>
33011
33012         PR target/65648
33013         * lra-remat.c (do_remat): Process input and non-input insn
33014         registers separately.
33015
33016 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
33017
33018         PR debug/65678
33019         * valtrack.c (debug_lowpart_subreg): New function.
33020         (dead_debug_insert_temp): Use it.
33021
33022         PR middle-end/65680
33023         * expr.c (get_inner_reference): Handle bit_offset that doesn't fit
33024         into signed HOST_WIDE_INT the same as negative bit_offset.
33025
33026 2015-04-07  Ilya Enkovich  <ilya.enkovich@intel.com>
33027
33028         * ipa-comdats.c (ipa_comdats): Visit all thunks
33029         to set proper comdat group.
33030
33031 2015-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33032
33033         PR target/65489
33034         * config/arm/arm.c (arm_legitimate_constant_p_1): Remove restriction
33035         on constants for NEON VSTRUCT modes.
33036
33037 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
33038             Iain Sandoe  <iain@codesourcery.com>
33039
33040         PR target/65351
33041         * configure: Regenerate.
33042
33043 2015-04-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
33044
33045         PR target/65614
33046         * config/rs6000/rs6000.c (struct processor_costs): Add cost field
33047         for SF->DF conversions to make FLOAT_EXTEND more expensive, so
33048         that LFD is used to load double constants instead of LFS.  Add
33049         defaults for all costs structures.  Add comments for missing
33050         initialization fields.
33051         (size32_cost): Likewise.
33052         (size64_cost): Likewise.
33053         (rs64a_cost): Likewise.
33054         (mpccore_cost): Likewise.
33055         (ppc403_cost): Likewise.
33056         (ppc405_cost): Likewise.
33057         (ppc440_cost): Likewise.
33058         (ppc476_cost): Likewise.
33059         (ppc601_cost): Likewise.
33060         (ppc603_cost): Likewise.
33061         (ppc604_cost): Likewise.
33062         (ppc604e_cost): Likewise.
33063         (ppc620_cost): Likewise.
33064         (ppc630_cost): Likewise.
33065         (ppccell_cost): Likewise.
33066         (ppc750_cost): Likewise.
33067         (ppc7450_cost): Likewise.
33068         (ppc8540_cost): Likewise.
33069         (ppce300c2c3_cost): Likewise.
33070         (ppce500mc_cost): Likewise.
33071         (ppce500mc64_cost): Likewise.
33072         (ppce5500_cost): Likewise.
33073         (ppce6500_cost): Likewise.
33074         (titan_cost): Likewise.
33075         (power4_cost): Likewise.
33076         (power6_cost): Likewise.
33077         (power7_cost): Likewise.
33078         (power8_cost): Likewise.
33079         (ppca2_cost): Likewise.
33080         (rs6000_rtx_costs): Make FLOAT_EXTEND use SFDF_convert field.
33081
33082         * config/rs6000/rs6000.md (extendsfdf2_fpr): Generate XSCPSGNDP
33083         instead of XXLOR to copy SFmode to clear out dirty bits created
33084         when SFmode denormals are generated.
33085         (mov<mode>_hardfloat, FMOVE32 case): Likewise.
33086         (truncdfsf2_fpr): Add support for ISA 2.07 XSRSP instruction.
33087
33088 2015-04-06  Evandro Menezes  <e.menezes@samsung.com>
33089
33090         * doc/invoke.texi (AARCH64/mtune): Add exynos-m1 as an option.
33091         * config/aarch64/aarch64-cores.def (exynos-m1): New core.
33092         * config/aarch64/aarch64-tune.md: Regenerate.
33093
33094 2015-04-06  Evandro Menezes  <e.menezes@samsung.com>
33095
33096         * doc/invoke.texi (ARM/mtune): Add "exynos-m1" as an option.
33097         * config/arm/arm.c (arm_issue_rate): Specify "3" for "exynosm1".
33098         * config/arm/arm-cores.def (exynos-m1): New core.
33099         * config/arm/arm-tune.md: Regenerate.
33100         * config/arm/arm-tables.opt: Add entry for "exynos-m1".
33101         * config/arm/bpabi.h: Likewise.
33102
33103 2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>
33104
33105         * ipa-cp (set_single_call_flag): Remove too
33106         restrictive assert.
33107
33108 2015-04-06  Ilya Verbin  <ilya.verbin@intel.com>
33109
33110         * config/i386/intelmic-mkoffload.c (generate_host_descr_file): Call
33111         GOMP_offload_unregister from the destructor.
33112
33113 2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>
33114
33115         * ipa-chkp.c (chkp_maybe_create_clone): Reset cdtor
33116         flags for instrumentation thunk.
33117         (chkp_produce_thunks): Likewise.
33118
33119 2015-04-05  Martin Liska  <mliska@suse.cz>
33120
33121         PR ipa/65665
33122         * ipa-icf.c (sem_function::equals_wpa): Verify that IPA CP
33123         has computed data structure.
33124         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
33125
33126 2015-04-04  Jan Hubicka  <hubicka@ucw.cz>
33127
33128         * invoke.texi (inline-unit-growth): Increase growth to 20%
33129         * params.def (PARAM_INLINE_UNIT_GROWTH): Likewise.
33130
33131 2015-04-04  Vladimir Makarov  <vmakarov@redhat.com>
33132
33133         PR target/65647
33134         * lra-int.h (LRA_MAX_REMATERIALIZATION_PASSES): New.  Add its
33135         value checking.
33136         (lra_rematerialization_iter): New.
33137         * lra.c (lra): Initialize lra_rematerialization_iter.
33138         Stop updating lra_constraint_new_regno_start after switching of
33139         inheritance and rematerialization.
33140         * lra-remat.c (lra_rematerialization_iter): New.
33141         (lra_remat): Add printing pass iteration.  Do rematerialization
33142         only first LRA_MAX_REMATERIALIZATION_PASSES iterations.
33143
33144 2015-04-04  Richard Biener  <rguenther@suse.de>
33145
33146         PR tree-optimization/64909
33147         PR tree-optimization/65660
33148         * tree-vectorizer.h (vect_get_known_peeling_cost): Adjust
33149         to take a cost vector for scalar iteration cost.
33150         (vect_get_single_scalar_iteration_cost): Likewise.
33151         * tree-vect-loop.c (vect_get_single_scalar_iteration_cost):
33152         Compute the scalar iteration cost into a cost vector.
33153         (vect_get_known_peeling_cost): Use the scalar cost vector to
33154         account for the cost of the peeled iterations.
33155         (vect_estimate_min_profitable_iters): Likewise.
33156         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
33157         Likewise.
33158
33159 2015-04-04  Alan Modra  <amodra@gmail.com>
33160
33161         PR target/65576
33162         PR target/65240
33163         * config/rs6000/predicates.md (zero_reg_mem_operand): Exclude
33164         0.0 constant unless TARGET_VSX.
33165         * config/rs6000/rs6000.md (extenddftf2_internal): Remove last
33166         alternative.
33167
33168 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
33169
33170         PR ipa/65654
33171         * ipa-inline-transform.c (inline_call): Skip sanity check to work
33172         around the ICE
33173
33174 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
33175
33176         PR ipa/65655
33177         * ipa-inline-analysis.c (edge_set_predicate): Do not redirect
33178         speculative indirect edges to avoid ordering issue.
33179
33180 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
33181
33182         PR ipa/65076
33183         * ipa-inline.c (edge_badness): Add combined size to the denominator.
33184
33185 2015-04-03  Jakub Jelinek  <jakub@redhat.com>
33186
33187         * omp-low.c (scan_omp_parallel, scan_omp_task, scan_omp_target): Set
33188         TYPE_ARTIFICIAL on the .omp_data* types.
33189
33190 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
33191
33192         * cgraphunit.c (cgraph_node::expand_thunk): Don't expand
33193         instrumentation thunks.
33194
33195 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
33196
33197         * config/i386/i386.c (ix86_expand_call): Avoid nested
33198         PARALLEL in returned call value.
33199
33200 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
33201
33202         * lto-cgraph.c (input_cgraph_1): Always link instrumented
33203         assembler name with original one.
33204
33205 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
33206
33207         * config/i386/i386.c (ix86_register_priority): Use AX_REG.
33208
33209 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
33210
33211         Revert parts of r216820.
33212         * config/i386/i386.md (movqi_internal): Correct type calculation
33213         for alternatives 3 and 5.
33214
33215 2015-04-02  Jakub Jelinek  <jakub@redhat.com>
33216
33217         PR preprocessor/61977
33218         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Don't
33219         predefine __vector/__bool/__pixel macros nor context sensitive
33220         macros for CLK_ASM.
33221         * config/spu/spu-c.c (spu_cpu_cpp_builtins): Similarly.
33222
33223 2015-04-02  John David Anglin  <danglin@gcc.gnu.org>
33224
33225         * config/pa/pa.c (pa_output_move_double): Directly handle register
33226         indexed memory operand.  Simplify handling of scaled register indexed
33227         memory operands.
33228
33229 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
33230
33231         PR driver/65444
33232         * config/i386/linux-common.h (MPX_SPEC): New.
33233         (CHKP_SPEC): Add MPX_SPEC.
33234         * doc/invoke.texi (-fcheck-pointer-boudns): Document
33235         possible issues with '-z bndplt' support in linker.
33236
33237 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
33238
33239         * config/i386/sync.md (UNSPEC_FILD_ATOMIC, UNSPEC_FIST_ATOMIC): New.
33240         (loaddi_via_fpu): Use UNSPEC_FILD_ATOMIC.
33241         (storedi_via_fpu): Use UNSPEC_FIST_ATOMIC.
33242         * reg-stack.c (get_true_reg): Change UNSPEC_LDA to UNSPEC_FILD_ATOMIC.
33243         (subst_stack_regs_pat): Change UNSPEC_STA to UNSPEC_FIST_ATOMIC.
33244
33245 2015-04-01  Uros Bizjak  <ubizjak@gmail.com>
33246
33247         * config/i386/sync.md (UNSPEC_MOVA): Remove.
33248         (atomic_load<mode>): Change operand 0 predicate to
33249         nonimmediate_operand and fix up the destination when needed.
33250         Use UNSPEC_LDA.
33251         (atomic_loaddi_fpu): Use UNSPEC_LDA.
33252         (atomic_store<mode>): Change operand 1 predicate to
33253         nonimmendate_operand and move the source to register when needed.
33254         Use UNSPEC_STA.
33255         (atomic_store<mode>_1): Use UNSPEC_STA.
33256         (atomic_storedi_fpu): Change operand 1 to nonimmediate_operand.
33257         Fix moves from memory operand.  Use UNSPEC_STA.
33258
33259 2015-04-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
33260
33261         * expmed.c (strict_volatile_bitfield_p): Check that the access will
33262         not cross a MODESIZE boundary.
33263         (store_bit_field, extract_bit_field): Added assertions in the
33264         strict volatile bitfields code path.
33265
33266 2015-04-01  Max Ostapenko  <m.ostapenko@partner.samsung.com>
33267
33268         PR target/65624
33269         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_builtin):
33270         Increase args array size by one to avoid buffer overflow.
33271
33272 2015-03-31  Jan Hubicka  <hubicka@ucw.cz>
33273
33274         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
33275         split_part.
33276         * ipa-inline.c (edge_badness): Add wrapper penalty.
33277         (sum_callers): Move up.
33278         (inline_small_functions): Set single_caller.
33279         * ipa-inline.h (inline_summary): Add single_caller.
33280         * ipa-split.c (split_function): Set split_part.
33281         (cgraph_node::create_clone): Do not shadow decl; copy split_part.
33282         * cgraph.h (cgraph_node): Add split_part.
33283
33284 2015-03-31  Uros Bizjak  <ubizjak@gmail.com>
33285
33286         PR target/58945
33287         * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
33288         Do not split operands 0 and operands 2 to halfmode.
33289         (atomic_compare_and_swap<mode>): Update for
33290         atomic_compare_and_swap<dwi>_doubleword changes.
33291
33292 2015-03-31  Jan Hubicka  <hubicka@ucw.cz>
33293
33294         * tree.c (need_assembler_name_p): Artificial types have no ODR names.
33295         * ipa-devirt.c (warn_odr): Do not try to apply ODR cache when
33296         no caching is done.
33297
33298 2015-03-31  Martin Liska  <mliska@suse.cz>
33299
33300         PR ipa/65557
33301         * ipa-icf.c (sem_function::equals_wpa): Check if IPA CP
33302         has already filled up function summary.
33303         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
33304
33305 2015-03-31  Richard Biener  <rguenther@suse.de>
33306
33307         * tree-sra.c (create_access_replacement): Drop under-/over-alignment
33308         of types.
33309
33310 2015-03-31  Dominik Vogt  <vogt@linux.vnet.ibm.com>
33311
33312         * config/s390/s390.c (s390_function_num_hotpatch_hw): Allow hotpatching
33313         nested functions.
33314         (s390_reorg): Adapt to new signature of s390_function_num_hotpatch_hw.
33315         (s390_asm_output_function_label): Adapt to new signature of
33316         s390_function_num_hotpatch_hw
33317         Optimise the code generating assembler output.
33318         Add comments to assembler file.
33319
33320 2015-03-31  Richard Biener  <rguenther@suse.de>
33321
33322         PR middle-end/65626
33323         * tree-cfgcleanup.c (fixup_noreturn_call): Only split the block
33324         of the noreturn call so it is last and cleanup_control_flow_bb
33325         can do the CFG part.
33326
33327 2015-03-31  Ilya Enkovich  <ilya.enkovich@intel.com>
33328
33329         PR target/65531
33330         * ipa-chkp.c (chkp_maybe_create_clone): Don't set
33331         same_comdat_group for external symbols.
33332         * symtab.c (symtab_node::verify_symtab_nodes): Avoid
33333         infinite same_comdat_group traversal loop.
33334
33335 2015-03-31  Jakub Jelinek  <jakub@redhat.com>
33336
33337         PR plugins/61176
33338         * Makefile.in (install-plugin): Add all gcc/*.{h,def} files
33339         automatically to $headers.
33340
33341 2015-03-30  Jakub Jelinek  <jakub@redhat.com>
33342
33343         PR ipa/65610
33344         * ipa-utils.h (inlined_polymorphic_ctor_dtor_block_p): Declare.
33345         * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p): New
33346         function.
33347         (decl_maybe_in_construction_p, noncall_stmt_may_be_vtbl_ptr_store):
33348         Use it.
33349         * ipa-prop.c (param_type_may_change_p): Likewise.
33350         * tree-ssa-live.c: Include ipa-utils.h and its dependencies.
33351         (remove_unused_scope_block_p): Add in_ctor_dtor_block
33352         argument.  Before inlining, preserve
33353         inlined_polymorphic_ctor_dtor_block_p blocks and the outermost block
33354         with FUNCTION_DECL BLOCK_ABSTRACT_ORIGIN inside of them.  Adjust
33355         recursive calls.
33356         (remove_unused_locals): Adjust remove_unused_scope_block_p caller.
33357
33358 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
33359
33360         PR ipa/65076
33361         * ipa-inline.c (edge_badness): Base denominator on callee's
33362         grwoth squared.
33363
33364 2015-03-27  Martin Jambor  <mjambor@suse.cz>
33365
33366         PR ipa/65478
33367         * params.def (PARAM_IPA_CP_RECURSION_PENALTY) : New.
33368         (PARAM_IPA_CP_SINGLE_CALL_PENALTY): Likewise.
33369         * ipa-prop.h (ipa_node_params): New flags node_within_scc and
33370         node_calling_single_call.
33371         * ipa-cp.c (count_callers): New function.
33372         (set_single_call_flag): Likewise.
33373         (initialize_node_lattices): Count callers and set single_flag_call if
33374         necessary.
33375         (incorporate_penalties): New function.
33376         (good_cloning_opportunity_p): Use it, dump new flags.
33377         (propagate_constants_topo): Set node_within_scc flag if appropriate.
33378         * doc/invoke.texi (ipa-cp-recursion-penalty,
33379         ipa-cp-single-call-pentalty): Document.
33380
33381 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
33382
33383         PR ipa/65588
33384         * symtab.c (symtab_node::get_partitioning_class): Register vars
33385         are duplicated.
33386         * varpool.c (symbol_table::output_variables) Do not assemble unefined
33387         decls for non-symbols.
33388
33389 2015-03-27  H.J. Lu  <hongjiu.lu@intel.com>
33390
33391         PR target/65248
33392         * output.h (default_binds_local_p_2): New.
33393         * varasm.c (default_binds_local_p_2): Renamed to ...
33394         (default_binds_local_p_3): This.  Don't return true on protected
33395         data symbol if protected data may be external.
33396         (default_binds_local_p): Use default_binds_local_p_3.
33397         (default_binds_local_p_1): Likewise.
33398         (default_binds_local_p_2): New.
33399         * config/i386/i386.c (TARGET_BINDS_LOCAL_P): Set to
33400         default_binds_local_p_2 if TARGET_MACHO is undefined.
33401
33402 2015-03-27  Jakub Jelinek  <jakub@redhat.com>
33403
33404         PR target/65593
33405         * config/i386/i386.c (legitimize_pic_address): If base
33406         is SYMBOL_REF or LABEL_REF using %rip addressing, force
33407         it to reg to avoid PLUS of SYMBOL_REF/LABEL_REF and register.
33408
33409 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
33410
33411         PR target/65531
33412         * symtab.c (symtab_node::verify_symtab_nodes): Fix verification of
33413         comdat groups.
33414
33415 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
33416
33417         PR ipa/65600
33418         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Fix the case
33419         of optimized out indirect call.
33420         (redirect_to_unreachable): Always build symbol table node for
33421         BUILT_IN_UNREACHABLE
33422
33423 2015-03-27  Vladimir Makarov  <vmakarov@redhat.com>
33424
33425         PR target/65407
33426         * ira-costs.c (record_reg_classes): Process all constraint string
33427         containing 0-9.
33428
33429 2015-03-27  Bernd Schmidt  <bernds@codesourcery.com>
33430
33431         * config/c6x/c6x.md (movmisalign<mode>): Use MEM_P, not
33432         memory_operand.
33433
33434         PR target/65052
33435         * config/c6x/constraints.md (S3): New constraint.
33436         * config/c6x/c6x.md (real_jump): Use it.
33437
33438 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
33439
33440         PR middle-end/65595
33441         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Only
33442         do redirection if the call is not optimized out.
33443
33444 2015-03-27  Ilya Enkovich  <ilya.enkovich@intel.com>
33445
33446         PR target/65495
33447         * c-family/c.opt (fcheck-pointer-bounds): List supported languages.
33448         (fchkp-check-incomplete-type): Add LTO.
33449         (fchkp-zero-input-bounds-for-main): Likewise.
33450         (fchkp-first-field-has-own-bounds): Likewise.
33451         (fchkp-narrow-bounds): Likewise.
33452         (fchkp-narrow-to-innermost-array): Likewise.
33453         (fchkp-use-static-bounds): Likewise.
33454         (fchkp-use-static-const-bounds): Likewise.
33455         (fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
33456
33457 2015-03-27  Marek Polacek  <polacek@redhat.com>
33458
33459         * gimple-iterator.h (gsi_prev_nondebug): Fix typo.
33460
33461 2015-03-27  Marek Polacek  <polacek@redhat.com>
33462
33463         PR sanitizer/65583
33464         * ubsan.c (ubsan_create_edge): New function.
33465         (instrument_bool_enum_load): Call it.
33466         (instrument_nonnull_arg): Likewise.
33467         (instrument_nonnull_return): Likewise.
33468         (instrument_object_size): Likewise.
33469
33470 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
33471
33472         * lto-streamer.h (class lto_location_cache): Turn loc_cache into
33473         auto_vec.
33474
33475 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
33476
33477         PR lto/65536
33478         * lto-streamer.h (class lto_location_cache): New.
33479         (struct data_in): Add location_cache.
33480         (lto_input_location): Update prototype.
33481         (stream_input_location_now): New.
33482         * streamer-hooks.h (struct streamer_hooks): Make input_location to take
33483         pointer to location.
33484         (stream_input_location): Update.
33485         * ipa-devirt.c: Include streamer-hooks.h and lto-streamer.h
33486         (warn_odr): Apply location cache before warning.
33487         (lto_input_location): Update prototype.
33488         * gimple-streamer-in.c (input_phi, input_gimple_stmt):
33489         Use stream_input_location_now.
33490         * lto-streamer-in.c (lto_location_cache::current_cache): New static
33491         variable.
33492         (lto_location_cache::cmp_loc): New function.
33493         (lto_location_cache::apply_location_cache): New function.
33494         (lto_location_cache::accept_location_cache): New function.
33495         (lto_location_cache::revert_location_cache): New function.
33496         (lto_location_cache::input_location): New function.
33497         (lto_input_location): Do location caching.
33498         (stream_input_location_now): New function.
33499         (input_eh_region, input_struct_function_base): Use
33500         stream_input_location_now.
33501         (lto_data_in_create): use new.
33502         (lto_data_in_delete): Use delete.
33503         * tree-streamer-in.c (unpack_ts_block_value_fields,
33504         unpack_ts_omp_clause_value_fields, streamer_read_tree_bitfields,
33505         lto_input_ts_exp_tree_pointers): Update for cached location api.
33506
33507 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
33508
33509         PR ipa/65076
33510         * passes.def: Add pass_nothrow.
33511         * ipa-pure-const.c: (pass_data_nothrow): New.
33512         (pass_nothrow): New.
33513         (pass_nothrow::execute): New.
33514         (make_pass_nothrow): New.
33515         * tree-pass.h (make_pass_nothrow): Declare.
33516
33517 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
33518
33519         * ipa-inline-analysis.c (redirect_to_unreachable): Be prepared for
33520         edge to change by speculation resolution or redirection.
33521         (edge_set_predicate): Likewise.
33522         (inline_summary_t::duplicate): Likewise.
33523         (remap_edge_summaries): Likewise.
33524
33525 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
33526
33527         * ipa-inline.c (check_maybe_up, check_maybe_down, check_match):
33528         New macros.
33529         (can_inline_edge_p): Relax option matching for always inline functions.
33530
33531 2015-03-26  Uros Bizjak  <ubizjak@gmail.com>
33532
33533         PR target/65561
33534         * config/i386/sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm):
33535         Check operand 4 and operand 0 for equality.
33536         (avx512f_vextract<shuffletype>32x4_1_maskm):
33537         Check operand 6 and operand 0 for equality.
33538         (vec_extract_lo_<mode>_maskm): Check operand 2 and operand 0
33539         for equality.
33540         (vec_extract_hi_<mode>_maskm): Ditto.
33541
33542 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
33543
33544         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Do not bring
33545         dead calls back to live.
33546         (cgraph_edge::verify_count_and_frequency): Move cgraph/cfg frequency
33547         cross check to ...
33548         (cgraph_node::verify_node): ... here; verify only callee edges,
33549         not caller.
33550         * cif-code.def (CILK_SPAWN): New code.
33551
33552 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
33553
33554         * ipa-inline-analysis.c (redirect_to_unreachable): New function.
33555         (edge_set_predicate): Use it to mark unreachable edges.
33556         (inline_summary_t::duplicate): Remove unnecesary code.
33557         (remap_edge_summaries): Likewise.
33558         (dump_inline_summary): Report contains_cilk_spawn.
33559         (compute_inline_parameters): Compute contains_cilk_spawn.
33560         (inline_read_section, inline_write_summary): Stream
33561         contains_cilk_spawn.
33562         * ipa-inline.c (can_inline_edge_p): Do not touch
33563         DECL_STRUCT_FUNCTION that may not be available;
33564         use CIF_CILK_SPAWN for cilk; fix optimization attribute checks;
33565         remove check for callee_fun->can_throw_non_call_exceptions and
33566         replace it by optimization attribute check; check for flag_exceptions.
33567         * ipa-inline-transform.c (inline_call): Maintain
33568         DECL_FUNCTION_PERSONALITY
33569         * ipa-inline.h (inline_summary): Add contains_cilk_spawn.
33570
33571 2015-03-26  Jakub Jelinek  <jakub@redhat.com>
33572
33573         PR tree-optimization/65551
33574         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use
33575         TYPE_PRECISION only for INTEGRAL_TYPE_P types.
33576
33577 2015-03-26  Richard Biener  <rguenther@suse.de>
33578
33579         PR middle-end/65555
33580         * tree-cfg.c (verify_gimple_call): Do not require a call to
33581         have no LHS if it wasn't recognized as control altering yet.
33582
33583 2015-03-26  Jakub Jelinek  <jakub@redhat.com>
33584
33585         PR tree-optimization/64715
33586         * passes.def: Add another instance of pass_object_sizes before ccp1.
33587         * tree-object-size.c (pass_object_sizes::execute): In
33588         first_pass_instance, only handle __bos (, 1) and __bos (, 3)
33589         calls, and keep the call in the IL, as {MIN,MAX}_EXPR of the
33590         __bos result and the computed constant.  Remove redundant
33591         checks, obsoleted by gimple_call_builtin_p test.
33592
33593         * var-tracking.c (variable_tracking_main_1): Don't track
33594         variables for targetm.no_register_allocation targets.
33595
33596 2015-03-26  Oleg Endo  <olegendo@gcc.gnu.org>
33597
33598         * config/sh/t-linux (DEFAULT_ENDIAN, MULTILIB_EXCEPTIONS): Remove.
33599         * config/sh/t-sh (MULTILIB_EXCEPTIONS): Handle default endian.
33600
33601 2015-03-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
33602
33603         PR target/65569
33604         * config/rs6000/rs6000.md (extenddftf2_fprs): On VSX systems use
33605         XXLXOR to create 0.0.  On pre-VSX systems make sure the constant
33606         0.0 is correctly setup.
33607         (extenddftf2_internal): Likewise.
33608
33609 2015-03-25  Sebastian Pop  <s.pop@samsung.com>
33610
33611         PR tree-optimization/65177
33612         * tree-ssa-threadupdate.c (verify_seme): Renamed verify_jump_thread.
33613         (bb_in_bbs): New.
33614         (duplicate_seme_region): Renamed duplicate_thread_path.  Redirect all
33615         edges not adjacent on the path to the original code.
33616
33617 2015-03-25  Uros Bizjak  <ubizjak@gmail.com>
33618
33619         PR bootstrap/65537
33620         * doc/install.texi (Building a native compiler): Document new
33621         bootstrap-lto-noplugin configuration.  Mention that bootstrap-lto
33622         configuration assumes that the host supports the linker plugin.
33623
33624 2015-03-25  Ilya Enkovich  <ilya.enkovich@intel.com>
33625
33626         PR target/65508
33627         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Set static
33628         chain for generated call.
33629
33630 2015-03-25  Richard Biener  <rguenther@suse.de>
33631
33632         * passes.c (pass_manager::execute_early_local_passes): Guard
33633         execution of pass_chkp_instrumentation_passes with
33634         flag_check_pointer_bounds.
33635         (pass_chkp_instrumentation_passes::gate): Likewise.
33636
33637 2015-03-25  Martin Liska  <mliska@suse.cz>
33638
33639         PR tree-optimization/65538
33640         * symbol-summary.h (function_summary::~function_summary):
33641         Relese memory for allocated summaries.
33642         (function_summary::release): New function.
33643
33644 2015-03-25  Jakub Jelinek  <jakub@redhat.com>
33645
33646         PR lto/65515
33647         * lto-streamer-out.c (DFS::worklist): New struct.
33648         (DFS::worklist_vec): New data member.
33649         (DFS::next_dfs_num): Remove.
33650         (DFS::DFS): Rewritten using worklist instead of recursion,
33651         using most of code from DFS::DFS_write_tree.
33652         (DFS::DFS_write_tree_body): Remove SINGLE_P argument, don't
33653         pass it to DFS_write_tree calls.
33654         (DFS::DFS_write_tree): Remove SINGLE_P argument, after
33655         quick initial checks push it into worklist_vec and return.
33656
33657 2015-03-25  Richard Biener  <rguenther@suse.de>
33658
33659         PR middle-end/65519
33660         * genmatch.c (expr::gen_transform): Re-write to avoid
33661         using gimple_build.
33662
33663 2015-03-25  Bin Cheng  <bin.cheng@arm.com>
33664
33665         * doc/sourcebuild.texi (arm_tune_string_ops_prefer_neon): New.
33666
33667 2015-03-25  Bin Cheng  <bin.cheng@arm.com>
33668
33669         * config/arm/arm.opt (print_tune_info): New option.
33670         * config/arm/arm.c (arm_print_tune_info): New function.
33671         (arm_file_start): Call arm_print_tune_info.
33672         * config/arm/arm-protos.h (struct tune_params): Add comment.
33673         * doc/invoke.texi (@item -mprint-tune-info): New item.
33674         (-mtune): mention it in ARM Option Summary.
33675
33676 2015-03-25  DJ Delorie  <dj@redhat.com>
33677
33678         * config/rl78/rl78.c (rl78_print_operand_1): Move 'p' test to
33679         correct clause.
33680
33681 2015-03-24  Jan Hubicka  <hubicka@ucw.cz>
33682             Martin Liska  <mliska@suse.cz>
33683
33684         * ipa-icf-gimple.h (return_with_result): Add missing colon to dump.
33685         * ipa-icf.c (sem_function::get_hash): Hash new declaration properties.
33686         (sem_item::add_type): New function.
33687         (sem_function::hash_stmt): Add TREE_TYPE of gimple_op.
33688         (sem_function::compare_polymorphic_p): Do not consider indirect calls.
33689         (sem_item_optimizer::update_hash_by_addr_refs): Add ODR type to hash.
33690         (sem_function::equals_wpa): Fix typo.
33691         * ipa-icf.h (sem_item::add_type): New function.
33692         (symbol_compare_hashmap_traits): Replace hashing of pointer with symbol
33693         order.
33694
33695 2015-03-24  Jakub Jelinek  <jakub@redhat.com>
33696
33697         PR tree-optimization/65533
33698         * tree-vect-slp.c (vect_build_slp_tree): Before re-trying
33699         with swapped operands, call vect_free_slp_tree on
33700         SLP_TREE_CHILDREN of child and truncate the SLP_TREE_CHILDREN
33701         vector.
33702
33703 2015-03-24  Richard Biener  <rguenther@suse.de>
33704
33705         PR middle-end/65517
33706         * tree-cfg.c (remove_edge_and_dominated_blocks): Mark loops
33707         for fixup if necessary.
33708
33709 2015-03-23  Sandra Loosemore  <sandra@codesourcery.com>
33710
33711         * doc/extend.texi (Function Attributes): Add @cindex entries
33712         for all attributes and regularize their format.  Delete text
33713         about long-obsolete 68HC11 and 68HC12 targets.  Move misplaced
33714         information about "eightbit_data", "tiny_data", and "model"
33715         variable attributes to the Variable Attributes section.  Fix
33716         some obvious typos and copy-editing issues.
33717         (Variable Attributes, Type Attributes): Likewise add/fix
33718         @cindex entries for all attributes.
33719
33720 2015-03-23  Jakub Jelinek  <jakub@redhat.com>
33721
33722         PR target/65523
33723         * tree-chkp.c (chkp_build_returned_bound): Ignore
33724         ERF_RETURNS_ARG calls if they have fewer than needed arguments.
33725
33726 2015-03-23  Oleg Endo  <olegendo@gcc.gnu.org>
33727
33728         PR target/65505
33729         * config/sh/predicates.md (simple_mem_operand,
33730         displacement_mem_operand): Add test for reg.
33731         (short_displacement_mem_operand): Test for displacement_mem_operand
33732         before invoking sh_disp_addr_displacement.
33733         * config/sh/constraints.md (Sdd, Sra): Simplify.
33734         * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1):
33735         Remove redundant displacement_mem_operand tests.
33736
33737 2015-03-23  Georg-Johann Lay  <avr@gjlay.de>
33738
33739         PR target/65296
33740         * config/avr/driver-avr.c (avr_devicespecs_file): Allow to specify
33741         the same -mmcu=MCU more than once.
33742
33743 2015-03-23  Jakub Jelinek  <jakub@redhat.com>
33744
33745         PR bootstrap/65522
33746         * ipa-devirt.c: Remove duplicate demangle.h include.
33747
33748         PR target/65504
33749         * config/i386/i386.c (ix86_copy_addr_to_reg): Set REG_POINTER
33750         on the pseudo.
33751         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Set
33752         REG_POINTER on *destptr after adjusting it for prologue size.
33753
33754         PR ipa/65521
33755         * ipa-icf.c (sem_item::update_hash_by_addr_refs): Hash
33756         ultimate_alias_target ()->order ints instead of
33757         ultimate_alias_target () pointers.
33758
33759 2015-03-23  Richard Biener  <rguenther@suse.de>
33760
33761         PR tree-optimization/65518
33762         * tree-vect-stmts.c (vectorizable_load): Reject single-element
33763         interleaving cases we generate absymal code for.
33764
33765 2015-03-23  Richard Biener  <rguenther@suse.de>
33766
33767         PR tree-optimization/65494
33768         * tree-vect-slp.c (vect_build_slp_tree): Do not (re-)allocate
33769         matches here.
33770         (vect_analyze_slp_instance): But do that here, always and once.
33771
33772 2015-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33773
33774         * expmed.c (synth_mult): Fix comment about multiplying by T-1 and
33775         adding T or multiplying by T+1 and subracting T.
33776
33777 2015-03-22  Jeff Law  <law@redhat.com>
33778
33779         PR rtl-optimization/64317
33780         * Makefile.in (OBJS): Add gcse-common.c
33781         * gcse.c: Include gcse-common.h
33782         (struct modify_pair_s): Move structure definition to gcse-common.h
33783         (compute_transp): Move function to gcse-common.c.
33784         (canon_list_insert): Similarly.
33785         (record_last_mem_set_info): Break out some code and put it into
33786         gcse-common.c.  Call into the new common code.
33787         (compute_local_properties): Pass additional arguments to compute_transp.
33788         * postreload-gcse.c: Include gcse-common.h and df.h
33789         (modify_mem_list_set, blocks_with_calls): New variables.
33790         (modify_mem_list, canon_modify_mem_list, transp): Likewise.
33791         (get_bb_avail_insn): Pass in the expression index too.
33792         (alloc_mem): Allocate memory for the new bitmaps and lists.
33793         (free_mem): Free memory for the new bitmaps and lists.
33794         (insert_expr_in_table): Record a bitmap index for each entry we
33795         add to the table.
33796         (record_last_mem_set_info): Call into common code in gcse-common.c.
33797         (get_bb_avail_insn): If no available insn was found in the requested
33798         BB.  If BB has a single predecessor, see if the expression is
33799         transparent in BB and available in that single predecessor.
33800         (compute_expr_transp): New wrapper for compute_transp.
33801         (eliminate_partially_redundant_load): Pass expression's bitmap_index
33802         to get_bb_avail_insn.  Compute next_pred_bb_end a bit later.
33803         (gcse_after_reload_main): If there are elements in the hash table,
33804         then compute transparency for all the elements in the hash table.
33805         * gcse-common.h: New file.
33806         * gcse-common.c: New file.
33807
33808 2015-03-22  Sandra Loosemore  <sandra@codesourcery.com>
33809
33810         * doc/cpp.texi (Search Path): Hyphenate "command-line" when used
33811         as an adjective.
33812         (System Headers): Likewise.
33813         (Ifdef): Likewise.
33814         (Traditional macros): Likewise.
33815         (Invocation): Likewise.
33816         (Option Index): Likewise.
33817         * doc/cppopts.texi (-M): Likewise.
33818         (-finput-charset): Likewise.
33819         (--help): Likewise.
33820         * doc.invoke.texi (AVR Options): Likewise.
33821         (V850 Options): Likewise.
33822
33823 2015-03-22  Jan Hubicka  <hubicka@ucw.cz>
33824
33825         PR ipa/65475
33826         * ipa-devirt.c: Include demangle.h
33827         (odr_type_d): Add field rtti_broken.
33828         (odr_subtypes_equivalent_p): Do not require name to match.
33829         (compare_virtual_tables): Fix typo; if type already has ODR violation,
33830         bypass the tests; be ready for function referneces in vtables that are
33831         not DECL_VIRTUAL; make warnings to be OPT_Wodr.
33832         (warn_odr): Give up for nameless types.
33833         (warn_types_mismatch): Report mismatch in mangled names;
33834         report mismatch in anonymous namespaces; look into component types to
33835         give useful error; report when mismatch is dragged in from other ODR
33836         type.
33837         (odr_types_equivalent_p): Match types for being polymorphic; avoid
33838         duplicated diagnostics.
33839         (add_type_duplicate): Reorder checks so more informative ones come
33840         first; fix typo; do not output "the extra base is defined here" when
33841         we did not warn.
33842         (BINFO_N_BASE_BINFOS): Relax sanity check.
33843
33844 2015-03-22  Martin Liska  <mliska@suse.cz>
33845             Jakub Jelinek  <jakub@redhat.com>
33846
33847         * config/i386/i386.c (def_builtin): Set deferred_isa_values for
33848         masks that can potentially include a builtin.
33849         (ix86_add_new_builtins): Introduce fast filter for isa values
33850         that cannot trigger builtin inclusion.
33851
33852 2015-03-22  Martin Liska  <mliska@suse.cz>
33853
33854         * ipa-icf.c (sem_item::update_hash_by_addr_refs): New function.
33855         (sem_item::update_hash_by_local_refs): Likewise.
33856         (sem_variable::get_hash): Empty line is fixed.
33857         (sem_item_optimizer::execute): Include adding of hash references.
33858         (sem_item_optimizer::update_hash_by_addr_refs): New function.
33859         (sem_item_optimizer::build_hash_based_classes): Use local hash.
33860         * ipa-icf.h (sem_item::update_hash_by_addr_refs): New function.
33861         (sem_item::update_hash_by_local_refs): Likewise.
33862
33863 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
33864
33865         PR ipa/65502
33866         * ipa-comdats.c (enqueue_references): Walk through thunks.
33867         (ipa_comdats): Likewise.
33868         (set_comdat_group_1): New function.
33869
33870 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
33871
33872         PR ipa/65475
33873         * ipa-devirt.c (add_type_duplicate): Prevail polymorphic type over
33874         non-polymorphic
33875
33876 2015-03-22  Dave Korn  <dave.korn.cygwin@gmail.com>
33877             Gerald Pfeifer  <gerald@pfeifer.com>
33878
33879         * doc/contrib.texi (Contributors): Update entry for Danny Smith.
33880
33881 2015-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
33882             Sandra Loosemore  <sandra@codesourcery.com>
33883
33884         * config/nios2/nios2-protos.h (nios2_adjust_call_address): Adjust
33885         function parameter declaration.
33886         * config/nios2/nios2.md (call,call_value,sibcall,sibcall_value):
33887         Update arguments to nios2_adjust_call_address().
33888         (sibcall_internal): Rename from *sibcall.
33889         (sibcall_value_internal): Rename from *sibcall_value.
33890         * config/nios2/nios2.c (nios2_emit_add_constant): New function.
33891         (nios2_large_got_address): Add target temp reg parameter.
33892         (nios2_got_address): Adjust call to nios2_large_got_address, add
33893         force_reg around it.
33894         (nios2_load_pic_address): Add target temp reg parameter, replace call
33895         to nios2_got_address with corresponding code.
33896         (nios2_legitimize_constant_address): Update call to
33897         nios2_load_pic_address.
33898         (nios2_adjust_call_address): Add temp reg parameter, update PIC case
33899         to use temp reg for PIC loading purposes.
33900         (nios2_asm_output_mi_thunk): Implement TARGET_ASM_OUTPUT_MI_THUNK.
33901         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
33902         (TARGET_ASM_OUTPUT_MI_THUNK): Likewise.
33903
33904 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
33905
33906         * doc/invoke.texi (-fno-diagnostics-show-caret): Fix
33907         usage of "the @option{...}".
33908         (-Wopenmp-simd): Likewise.
33909         (-fsanitize-recover): Likewise.
33910         (-fsanitize-undefined-trap-on-error): Likewise.
33911         (-flto): Likewise.
33912         (tracer-dynamic-coverage-feedback): Likewise.
33913         (reorder-block-duplicate-feedback): Likewise.
33914         (loop-unroll-jam-size): Likewise.
33915         (-B): Likewise.
33916         (-I-): Likewise.
33917         (-mabs=legacy): Likewise.
33918         (-mupper-regs-df): Likewise.
33919         (-mupper-regs-sf): Likewise.
33920         (-mpointers-to-nested-functions): Likewise.
33921
33922 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
33923
33924         * doc/extend.texi (Cilk Plus Builtins): Add markup.
33925
33926 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
33927
33928         * doc/invoke.texi (-fcheck-pointer-bounds): Copy-edit, add
33929         additional index entries and cross-references.
33930         (-fchkp-check-incomplete-type): Likewise.
33931         (-fchkp-first-field-has-own-bounds): Likewise.
33932         (-fchkp-narrow-to-innermost-array): Likewise.
33933         (-fchkp-use-fast-string-functions): Likewise.
33934         (-fchkp-use-nochk-string-functions): Likewise.
33935         (-fchkp-use-static-const-bounds): Likewise.
33936         (-fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
33937         (-fchkp-instrument-marked-only): Likewise.
33938         (-fchkp-use-wrappers): Likewise.
33939         (-static-libmpx): Likewise.
33940         (-static-libmpxwrappers): Likewise.
33941         * doc/extend.texi (bnd_legacy): Likewise.
33942         (bnd_instrument): Likewise.
33943         (bnd_variable_size): Likewise.
33944         (Pointer Bounds Checker builtins): Likewise.
33945
33946 2015-03-21  Tom de Vries  <tom@codesourcery.com>
33947
33948         PR tree-optimization/65458
33949         * cgraph.c (cgraph_node::dump): Handle parallelized_function field.
33950         * cgraph.h (cgraph_node): Add parallelized_function field.
33951         * lto-cgraph.c (lto_output_node): Write parallelized_function field.
33952         (input_overwrite_node): Read parallelized_function field.
33953         * omp-low.c (expand_omp_taskreg, finalize_task_copyfn): Set
33954         parallelized_function on cgraph_node for child_fn.
33955         * tree-parloops.c: Add include of plugin-api.h, ipa-ref.h and cgraph.h.
33956         Remove include of gt-tree-parloops.h.
33957         (parallelized_functions): Remove static variable.
33958         (parallelized_function_p): Rewrite using parallelized_function field of
33959         cgraph_node.
33960         (create_loop_fn): Remove adding to parallelized_functions.
33961         * Makefile.in (GTFILES): Remove tree-parloops.c
33962
33963 2015-03-20  Vladimir Makarov  <vmakarov@redhat.com>
33964
33965         PR rtl-optimization/64366
33966         * lra.c (lra_update_insn_regno_info): Consider regs in
33967         CALL_INSN_FUNCTION_USAGE memory.
33968
33969 2015-03-20  Richard Biener  <rguenther@suse.de>
33970
33971         PR middle-end/64715
33972         * tree-chrec.c (chrec_fold_poly_cst): Use useless_type_conversion_p
33973         for type comparison and gcc_checking_assert.
33974         (chrec_fold_plus_poly_poly): Likewise.
33975         (chrec_fold_multiply_poly_poly): Likewise.
33976         (chrec_convert_1): Likewise.
33977         * gimplify.c (gimplify_expr): Remove premature folding of
33978         &X + CST to &MEM[&X, CST].
33979
33980 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
33981
33982         * ipa-inline.c (can_inline_edge_p): Short circuit if inline_failed
33983         already is final.
33984         (ipa_inline): Recompute inline_failed codes.
33985         * cif-code.def (FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
33986         USES_COMDAT_LOCAL, ATTRIBUTE_MISMATCH, UNREACHABLE): Declare as
33987         CIF_FINAL_ERROR.
33988
33989 2015-03-20  Uros Bizjak  <ubizjak@gmail.com>
33990
33991         PR rtl-optimization/60851
33992         * recog.c (constrain_operands): Accept a pseudo register before reload
33993         for LRA enabled targets.
33994
33995 2015-03-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
33996
33997         PR target/65240
33998         * config/rs6000/predicates.md (easy_fp_constant): Remove special
33999         -ffast-math handling that kept non-0 constants live in the RTL
34000         until reload.  Remove logic testing the number of instructions it
34001         took to create a constant in a GPR that was never used, due to a
34002         test for soft-float earlier.
34003         (memory_fp_constant): Delete, no longer used.
34004
34005         * config/rs6000/rs6000.md (mov<MODE>_hardfloat): Remove
34006         alternatives for loading non-0 constants into GPRs for hard
34007         floating point that is no longer needed due to changes in
34008         easy_fp_constant.  Add support for loading 0.0 into GPRs.
34009         (mov<mode>_hardfloat32): Likewise.
34010         (mov<mode>_hardfloat64): Likewise.
34011         (mov<mode>_64bit_dm): Likewise.
34012         (movtd_64bit_nodm): Likewise.
34013         (pre-reload move FP constant define_split): Delete define_split,
34014         since it is no longer used.
34015         (extenddftf2_internal): Remove GHF constraints that are not valid
34016         for extenddftf2.
34017
34018 2015-03-19  Vladimir Makarov  <vmakarov@redhat.com>
34019
34020         PR rtl-optimization/63491
34021         * lra-constraints.c (check_and_process_move): Use src instead of
34022         sreg.  Remove some dead code.
34023
34024 2015-03-19  Jan Hubicka  <hubicka@ucw.cz>
34025
34026         PR ipa/65380
34027         * ipa-icf.c (sem_function::merge): Do not merge DECL_EXTERNAL symbols.
34028         (sem_variable::merge): Likewise.
34029
34030 2015-03-19  Martin Liska  <mliska@suse.cz>
34031
34032         PR ipa/65465
34033         * cgraphunit.c (cgraph_node::create_wrapper): Correctly reset
34034         all fields of cgraph_thunk_info.
34035
34036 2015-03-19  Ilya Enkovich  <ilya.enkovich@intel.com>
34037
34038         * ipa-chkp.c (chkp_maybe_create_clone): Don't try to
34039         clone instrumented thunks.
34040
34041 2015-03-19  Richard Biener  <rguenther@suse.de>
34042
34043         Revert
34044         2015-03-10  Richard Biener  <rguenther@suse.de>
34045
34046         PR middle-end/63155
34047         * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
34048         * tree-ssa-coalesce.c: Include timevar.h.
34049         (attempt_coalesce): Handle graph being NULL.
34050         (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
34051         Split out abnormal coalescing to ...
34052         (perform_abnormal_coalescing): ... this function.
34053         (coalesce_ssa_name): Perform abnormal coalescing without computing
34054         live/conflict.
34055         (verify_ssa_coalescing_worker): New function.
34056         (verify_ssa_coalescing): Likewise.
34057
34058 2015-03-19  Bernd Edlinger  <bernd.edlinger@hotmail.de>
34059             Jakub Jelinek  <jakub@redhat.com>
34060
34061         PR sanitizer/65400
34062         * tsan.c (instrument_gimple): Clear tail call flag on
34063         calls.
34064
34065 2015-03-19  Jakub Jelinek  <jakub@redhat.com>
34066
34067         PR sanitizer/65400
34068         * ipa-split.c (find_return_bb): Allow TSAN_FUNC_EXIT internal
34069         call in the return bb.
34070         (find_split_points): Add RETURN_BB argument, don't call
34071         find_return_bb.
34072         (split_function): Likewise.  Add ADD_TSAN_FUNC_EXIT argument,
34073         if true append TSAN_FUNC_EXIT internal call after the call to
34074         the split off function.
34075         (execute_split_functions): Call find_return_bb here.
34076         Don't optimize if TSAN_FUNC_EXIT is found in unexpected places.
34077         Adjust find_split_points and split_function calls.
34078
34079 2015-03-18  DJ Delorie  <dj@redhat.com>
34080
34081         * config/rl78/rl78-virt.md (andqi3_virt): Allow far operands.
34082         (iorqi3_virt): Likewise.
34083
34084 2015-03-18  Tom de Vries  <tom@codesourcery.com>
34085
34086         * tree-parloops.c (parallelize_loops): Make static.
34087         * tree-parloops.h (parallelize_loops): Remove extern declaration.
34088
34089 2015-03-18  Andrew Stubbs  <ams@codesourcery.com>
34090
34091         PR middle-end/64491
34092         Revert:
34093         2014-11-20  Andrew Stubbs  <ams@codesourcery.com>
34094
34095         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Warn if a loop
34096         condition would be removed due to undefined behaviour.
34097
34098 2015-03-18  Martin Liska  <mliska@suse.cz>
34099
34100         PR ipa/65432
34101         * cgraph.c (cgraph_node::get_create): Remove unnecessary
34102         xstrdup_for_dump wrapper.
34103         * ipa-icf.c (sem_item::dump): Use symtab_node::name instead of
34104         sem_item::name.
34105         (sem_function::equals): Wrap symtab_node::name and symtab_node::asm_name
34106         with xstrdup_for_dump.
34107         (sem_variable::equals): Likewise.
34108         (sem_item_optimizer::read_section): Use symtab_node::name instead of
34109         sem_item::name.
34110         (sem_item_optimizer::parse_funcs_and_vars): Likewise.
34111         (sem_item_optimizer::merge_classes): Wrap symtab_node::name and
34112         symtab_node::asm_name with xstrdup_for_dump.
34113         (congruence_class::dump): Use symtab_node::name instead of
34114         sem_item::name.
34115         * ipa-icf.h (symtab_node::name): Remove.
34116         (symtab_node::asm_name): Likewise.
34117
34118 2015-03-18  Jakub Jelinek  <jakub@redhat.com>
34119
34120         PR tree-optimization/65450
34121         * tree-vect-data-refs.c (vect_duplicate_ssa_name_ptr_info): New
34122         function.
34123         (vect_create_addr_base_for_vector_ref, vect_create_data_ref_ptr): Use
34124         it instead of duplicate_ssa_name_ptr_info.
34125
34126         PR target/65222
34127         * doc/invoke.texi: Add knl as x86 -march=/-mtune= CPU type.
34128
34129 2015-03-18  Richard Biener  <rguenther@suse.de>
34130
34131         * tree-data-ref.h (struct access_matrix): Remove.
34132         (AM_LOOP_NEST, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
34133         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
34134         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT): Likewise.
34135         (am_vector_index_for_loop): Likewise.
34136         (struct data_reference): Remove access_matrix member.
34137         (DR_ACCESS_MATRIX): Remove.
34138         (lambda_vector_new): Add comment.
34139         (lambda_matrix_new): Use XOBNEWVEC.
34140
34141 2015-03-18  Richard Biener  <rguenther@suse.de>
34142
34143         * tree-ssa-loop-ch.c (pass_data_ch): Remove TODO_cleanup_cfg.
34144         (pass_ch::execute): Cleanup the CFG only if we did sth.
34145         * tree-vect-generic.c (pass_data_lower_vector): Remove TODO_cleanup_cfg.
34146
34147 2015-03-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34148
34149         * expmed.c (synth_mult): Use std::swap instead of manually
34150         swapping algorithms.
34151
34152 2015-03-18  Jakub Jelinek  <jakub@redhat.com>
34153
34154         PR target/65078
34155         * config/i386/sse.md (movsi/movdi -> vec_extract_*_0 splitter): New.
34156
34157 2015-03-16  Georg-Johann Lay  <avr@gjlay.de>
34158
34159         PR target/65296
34160         * config/avr/avr.opt (-nodevicelib): New option.
34161         * doc/invoke.texi (AVR Options): Document it.
34162         * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC) [avr1]: Don't link
34163         libgcc.a, libc.a, libm.a.
34164         * config/avr/specs.h: Same.
34165         * config/avr/gen-avr-mmcu-specs.c (print_mcu): Don't print specs
34166         which don't (directly) depend on the device.  Print more help.
34167         (*avrlibc_devicelib) [-nodevicelib]: Don't link libdev.a.
34168         (*cpp): Don't define __AVR_DEV_LIB_NAME__.
34169         * config/avr/driver-avr.c: Remove -nodevicelib from option list in
34170         case of an error.
34171         (avr_devicespecs_file): Use suffix "%s" instead of absolute path
34172         for specs file name.
34173         * config/avr/avr-arch.h (avr_mcu_t) [.library_name]: Remove.
34174         * config/avr/avr-mcus.def: Adjust initializers and comments.
34175
34176 2015-03-16  Jan Hubicka  <hubicka@ucw.cz>
34177
34178         * tree-sra.c (ipa_sra_preliminary_function_checks): Use
34179         DECL_ONE_ONLY to check if decl is one only.
34180         * ipa-split.c (consider_split): Limit splitt of one only functions.
34181
34182 2015-03-16  Jakub Jelinek  <jakub@redhat.com>
34183
34184         PR tree-optimization/65427
34185         * tree-vect-generic.c (do_cond, expand_vector_scalar_condition): New
34186         functions.
34187         (expand_vector_operations_1): Handle BLKmode vector COND_EXPR.
34188
34189 2015-03-16  Marek Polacek  <polacek@redhat.com>
34190
34191         * cgraph.h (add_new_static_var): Remove declaration.
34192         * varpool.c (add_new_static_var): Remove function.
34193
34194 2015-03-16  Jakub Jelinek  <jakub@redhat.com>
34195
34196         * omp-low.c (expand_omp_target): Use auto_vec<tree, 11>
34197         instead of vec<tree> * with vec_alloc and release for args.
34198         Adjust all users.
34199
34200         PR middle-end/65431
34201         * omp-low.c (delete_omp_context): Only splay_tree_delete
34202         reduction_map in GIMPLE_OMP_TARGET is_gimple_omp_offloaded
34203         is_gimple_omp_oacc contexts.  Don't look at ctx->outer.
34204
34205 2015-03-16  Max Ostapenko  <m.ostapenko@partner.samsung.com>
34206
34207         PR sanitizer/64820
34208         * cfgexpand.c (align_base): New function.
34209         (alloc_stack_frame_space): Call it.
34210         (expand_stack_vars): Align prev_frame to be sure
34211         data->asan_vec elements aligned properly.
34212
34213 2015-03-16  Eric Botcazou  <ebotcazou@adacore.com>
34214
34215         PR middle-end/65409
34216         * expr.c (store_field): Do not do a direct block copy if the source is
34217         a PARALLEL with BLKmode.
34218
34219 2015-03-16  Tom de Vries  <tom@codesourcery.com>
34220
34221         PR middle-end/65414
34222         Revert:
34223         2015-03-12  Tom de Vries  <tom@codesourcery.com>
34224
34225         PR rtl-optimization/64895
34226         * lra-lives.c (check_pseudos_live_through_calls): Use
34227         actual_call_used_reg_set instead of call_used_reg_set, if available.
34228
34229 2015-03-16  Alan Modra  <amodra@gmail.com>
34230
34231         PR target/63150
34232         * config/rs6000/rs6000.md (bswapdi2): Remove one scratch reg.
34233         Modify Z->r bswapdi splitter to use dest in place of scratch.
34234         In r->Z and Z->r bswapdi splitter rename word_high, word_low
34235         to word1, word2 and rearrange logic to suit.
34236         (bswapdi2_64bit): Remove early clobber on Z->r alternative.
34237         (bswapdi2_ldbrx): Likewise.  Remove '??' on r->r.
34238         (bswapdi2_32bit): Remove early clobber on Z->r alternative.
34239         Add one '?' on r->r.  Modify Z->r splitter to avoid need for
34240         early clobber.
34241
34242 2015-03-14  Jakub Jelinek  <jakub@redhat.com>
34243
34244         PR tree-optimization/65369
34245         * tree-vect-stmts.c (vectorizable_load) <case dr_explicit_realign>:
34246         Set bump to vs * TYPE_SIZE_UNIT (elem_type) - 1 instead of
34247         (vs - 1) * TYPE_SIZE_UNIT (elem_type).
34248
34249         PR tree-optimization/65418
34250         * tree-ssa-reassoc.c (extract_bit_test_mask): If there
34251         are casts in the first PLUS_EXPR operand, ensure tbias and
34252         *totallowp are in the inner type.
34253
34254         PR rtl-optimization/65401
34255         * combine.c (rtx_equal_for_field_assignment_p): Add widen_x
34256         argument.  If true, adjust_address_nv of x with big-endian
34257         correction for the mode widening to GET_MODE (y).
34258         (make_field_assignment): Don't do MEM mode widening here.
34259         Use MEM_P instead of GET_CODE == MEM.
34260
34261 2015-03-13  Ilya Verbin  <ilya.verbin@intel.com>
34262
34263         * varpool.c (varpool_node::get_create): Don't set 'offloadable' flag for
34264         the external decls.
34265
34266 2015-03-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34267
34268         PR target/64600
34269         * config/arm/arm.c (arm_gen_constant, AND case): Use
34270         ARM_SIGN_EXTEND when constructing AND mask.
34271
34272 2015-03-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
34273
34274         * graph.c (print_graph_cfg): Make function names visible and append
34275         parenthesis to it.  Also make groups of basic blocks belonging to the
34276         same function visible.
34277
34278 2015-03-12  Richard Biener  <rguenther@suse.de>
34279
34280         PR middle-end/44563
34281         * tree-inline.c (gimple_expand_calls_inline): Walk BB backwards
34282         to avoid quadratic behavior with inline expansion splitting blocks.
34283         * tree-cfgcleanup.c (cleanup_tree_cfg_bb): Do not merge block
34284         with the successor if the predecessor will be merged with it.
34285         * tree-cfg.c (gimple_can_merge_blocks_p): We can't merge the
34286         entry block with its successor.
34287
34288 2015-03-13  Richard Biener  <rguenther@suse.de>
34289
34290         PR middle-end/44563
34291         * tree-cfgcleanup.c (split_bb_on_noreturn_calls): Remove.
34292         (cleanup_tree_cfg_1): Do not call it.
34293         (execute_cleanup_cfg_post_optimizing): Fixup the CFG here.
34294         (fixup_noreturn_call): Mark the stmt as control altering.
34295         * tree-cfg.c (execute_fixup_cfg): Do not dump the function
34296         here.
34297         (pass_data_fixup_cfg): Produce a dump file.
34298         * tree-ssa-dom.c: Include tree-cfgcleanup.h.
34299         (need_noreturn_fixup): New global.
34300         (pass_dominator::execute): Fixup queued noreturn calls.
34301         (optimize_stmt): Queue calls that became noreturn for fixup.
34302         * tree-ssa-forwprop.c (pass_forwprop::execute): Likewise.
34303         * tree-ssa-pre.c: Include tree-cfgcleanup.h.
34304         (el_to_fixup): New global.
34305         (eliminate_dom_walker::before_dom_childre): Queue calls that
34306         became noreturn for fixup.
34307         (eliminate): Fixup queued noreturn calls.
34308         * tree-ssa-propagate.c: Include tree-cfgcleanup.h.
34309         (substitute_and_fold_dom_walker): New member stmts_to_fixup.
34310         (substitute_and_fold_dom_walker::before_dom_children): Queue
34311         alls that became noreturn for fixup.
34312         (substitute_and_fold): Fixup queued noreturn calls.
34313
34314 2015-03-12  Jan Hubicka  <hubicka@ucw.cz>
34315
34316         * ipa-icf.c (sem_function::equals_wpa): Match CXX_CONSTRUCTOR_P
34317         and CXX_DESTURCTOR_P. For consutrctors match ODR type of class they
34318         are building; for methods check ODR type of class they belong to if
34319         they may lead to a polymorphic call.
34320         (sem_function::compare_polymorphic_p): Be bit smarter about testing
34321         when function may lead to a polymorphic call.
34322         (sem_function::compare_type_list): Remove.
34323         (sem_variable::equals): Update use of compatible_types_p.
34324         (sem_variable::parse_tree_refs): Remove.
34325         (sem_item_optimizer::filter_removed_items): Do not filter out CXX
34326         cdtor.
34327         * ipa-icf-gimple.c (func_checker::compare_decl): Do polymorphic
34328         matching here.
34329         (func_checker::compatible_polymorphic_types_p): Break out from ...
34330         (unc_checker::compatible_types_p): ... here.
34331         * ipa-icf-gimple.h (func_checker::compatible_polymorphic_types_p):
34332         Declare.
34333         (unc_checker::compatible_types_p): Update.
34334         * ipa-icf.h (compare_type_list, parse_tree_refs, compare_sections):
34335         Remove.
34336
34337 2015-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34338
34339         PR rtl-optimization/65235
34340         * simplify-rtx.c (simplify_binary_operation_1, VEC_SELECT case):
34341         When first element of vec_concat is const_int, calculate its size
34342         using second element.
34343
34344 2015-03-12  Richard Biener  <rguenther@suse.de>
34345
34346         PR middle-end/65270
34347         * fold-const.c (operand_equal_p): Fix ordering of resetting
34348         OEP_ADDRESS_OF and checking for it in the [TARGET_]MEM_REF case.
34349
34350 2015-03-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>
34351
34352         * config/s390/s390.c (s390_reorg): Move code to output nops after label
34353         to s390_reorg ().
34354         (s390_asm_output_function_label): Likewise.
34355         * config/s390/s390.c (s390_asm_output_function_label):
34356         Fix function label alignment with -mhtopatch.
34357         * config/s390/s390.md ("unspecv"): New values UNSPECV_NOP_2_BYTE,
34358         UNSPECV_NOP_4_BYTE and UNSPECV_NOP_6_BYTE
34359         ("nop_2_byte"): New define_insn.
34360         ("nop_4_byte"): Likewise.
34361         ("nop_6_byte"): Likewise.
34362         * doc/extend.texi (hotpatch): hotpatch attribute doc fixes.
34363         * doc/invoke.texi (-mhotpatch): -mhotpatch doc fixes.
34364
34365 2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>
34366
34367         PR target/65103
34368         * config/i386/i386.c (ix86_address_cost): Fix cost of a PIC
34369         register.
34370
34371 2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>
34372
34373         PR target/65044
34374         * toplev.c (process_options): Restrict Pointer Bounds Checker
34375         usage with Address Sanitizer.
34376
34377 2015-03-12  Richard Biener  <rguenther@suse.de>
34378
34379         * tree-cfg.c (gimple_split_block): Remove loop finding stmt
34380         to split on.
34381         * omp-low.c (expand_omp_taskreg): Split block before removing
34382         the stmt.
34383         (expand_omp_target): Likewise.
34384         * ubsan.c (ubsan_expand_null_ifn): Adjust stmt if we replaced it.
34385         * tree-parloops.c (create_call_for_reduction_1): Pass a proper
34386         stmt to split_block.
34387
34388 2015-03-12  Tom de Vries  <tom@codesourcery.com>
34389
34390         PR rtl-optimization/64895
34391         * lra-lives.c (check_pseudos_live_through_calls): Use
34392         actual_call_used_reg_set instead of call_used_reg_set, if available.
34393
34394 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
34395
34396         * cgraph.c (cgraph_node::release_body): Free function_in_decl_state.
34397         (cgraph_node::remove): Likewise.
34398         (cgraph_node::get_untransformed_body): Likewise.
34399         * varpool.c (varpool_node::remove): Likewise.
34400         (varpool_node::get_constructor): Add sanity check.
34401
34402 2015-03-11  Sandra Loosemore  <sandra@codesourcery.com>
34403
34404         * doc/invoke.texi (-fgnu89-inline): Remove discussion about
34405         old GCC versions.
34406         (-fabi-compat-version): Likewise.
34407         (-ffriend-injection): Likewise.
34408         (-Wdeclaration-after-statement): Likewise.
34409         (-fomit-frame-pointer): Likewise.
34410         (-ftree-coalesce-inlined-vars): Likewise.
34411         (-fvisibility=): Likewise.
34412         * doc/extend.texi (Typeof): Likewise.
34413         (Zero Length): Likewise.
34414         (Escaped Newlines): Likewise.
34415         (Compound Literals): Likewise.
34416         (Function Attributes): Likewise.
34417         (Label Attributes): Likewise.
34418         (Type Attributes): Likewise.
34419         (Function Names): Likewise.
34420         (Other Builtins): Likewise.
34421         (Function Specific Option Pragmas): Likewise.
34422         (C++ Interface): Likewise.
34423
34424 2015-03-11  Thomas Schwinge  <thomas@codesourcery.com>
34425
34426         * config/nvptx/nvptx.h (LIBSTDCXX): Define to "gcc".
34427
34428 2015-03-11  Marek Polacek  <polacek@redhat.com>
34429
34430         PR tree-optimization/65388
34431         * tree-ssa-tail-merge.c (same_succ_def::equal): Fix typo in comparison.
34432
34433 2015-03-10  Georg-Johann Lay  <avr@gjlay.de>
34434
34435         PR target/65296
34436         * configure.ac [avr]: Check as for options -mrmw, --mlink-relax.
34437         * configure: Regenerate.
34438         * config.in: Regenerate.
34439         * doc/invoke.texi (AVR Options) [-mrmw]: Document it.
34440         [-mn-flash]: Document it.
34441         [__AVR_ARCH__]: Document avrtiny.
34442
34443         * config/avr/gen-avr-mmcu-specs.c (config.h): Include it.
34444         (*asm_relax): Only define spec if HAVE_AS_AVR_MLINK_RELAX_OPTION.
34445         (*asm_rmw): Only define spec if HAVE_AS_AVR_MRMW_OPTION.
34446
34447 2015-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34448
34449         * doc/invoke.texi: Add missing cpu values (z196, zEC12).
34450
34451 2015-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
34452
34453         PR target/65242
34454         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Do not
34455         allow reloads of PLUS in floating point/VSX registers.
34456
34457 2015-03-11  Junmo Park  <junmoz.park@samsung.com>
34458
34459         * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Add
34460         crypto_sha256_fast.
34461         (cortex_a57_crypto_complex): Add crypto_sha256_slow.
34462
34463 2015-03-11  Richard Biener  <rguenther@suse.de>
34464
34465         PR tree-optimization/65310
34466         * tree-sra.c (build_ref_for_offset): Also preserve larger
34467         alignment.
34468
34469 2015-03-11  Marat Zakirov  <m.zakirov@samsung.com>
34470
34471         * asan.c (instrument_derefs): Disable instrumentation on asan-globals=0.
34472
34473 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
34474
34475         PR target/65368
34476         * config/i386/i386.md (bmi2_bzhi_<mode>3): Removed define_insn,
34477         new define_expand.
34478         (*bmi2_bzhi_<mode>3, *bmi2_bzhi_<mode>3_1): New define_insns.
34479
34480 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
34481
34482         * ipa-icf.c (sem_function::equals_wpa): Move here some checks from ...
34483         (sem_function::equals_wpa): ... here.
34484
34485 2015-03-10  Marek Polacek  <polacek@redhat.com>
34486             Jakub Jelinek  <jakub@redhat.com>
34487
34488         PR sanitizer/65367
34489         * ubsan.c (ubsan_expand_objsize_ifn): Update GSI instead of GSI_ORIG
34490         when only removing the statement.  Handle expanding UBSAN_OBJECT_SIZE
34491         separately.
34492
34493 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
34494
34495         PR target/65286
34496         * config/rs6000/t-linux: For powerpc64* target set
34497         MULTILIB_OSDIRNAMES instead of MULTIARCH_DIRNAME.
34498
34499 2015-03-10  Richard Biener  <rguenther@suse.de>
34500
34501         PR middle-end/44563
34502         * tree-inline.c (copy_cfg_body): Skip block mapped to entry/exit
34503         for redirect_all_calls.
34504
34505 2015-03-10  Marek Polacek  <polacek@redhat.com>
34506
34507         * gdbinit.in (pcfun): Define and document.
34508
34509 2015-03-10  Ilya Verbin  <ilya.verbin@intel.com>
34510
34511         * config/i386/intelmic-mkoffload.c: Include intelmic-offload.h instead
34512         of libgomp-plugin.h.
34513         (find_target_compiler): Support a case when the path to gcc is
34514         specified in the PATH env var, so COLLECT_GCC doesn't contain a path.
34515         (generate_host_descr_file): Use GOMP_DEVICE_INTEL_MIC from
34516         intelmic-offload.h instead of OFFLOAD_TARGET_TYPE_INTEL_MIC from
34517         libgomp-plugin.h.
34518         (main): Use GCC_INSTALL_NAME as target_driver_name.
34519         * config/i386/t-intelmic (CFLAGS-mkoffload.o): Add GCC_INSTALL_NAME
34520         define.
34521         (mkoffload.o): Remove obsolete include path and defines.
34522         (mkoffload$(exeext)): Use $(LINKER) instead of $(COMPILER).
34523
34524 2015-03-10  Richard Biener  <rguenther@suse.de>
34525
34526         PR middle-end/63155
34527         * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
34528         * tree-ssa-coalesce.c: Include timevar.h.
34529         (attempt_coalesce): Handle graph being NULL.
34530         (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
34531         Split out abnormal coalescing to ...
34532         (perform_abnormal_coalescing): ... this function.
34533         (coalesce_ssa_name): Perform abnormal coalescing without computing
34534         live/conflict.
34535         (verify_ssa_coalescing_worker): New function.
34536         (verify_ssa_coalescing): Likewise.
34537
34538 2015-03-10  Georg-Johann Lay  <avr@gjlay.de>
34539
34540         PR target/65296
34541         * config.gcc (extra_options) [avr]: Remove.
34542         (extra_gcc_objs) [avr]: Use driver-avr.o, avr-devices.o.
34543         (tm_file) [avr]: Add avr/specs.h after avr/avr.h.
34544         (tm_defines) [avr-*-rtems*]: Add WITH_RTEMS.
34545
34546         * config/avr/avr.opt (config/avr/avr-arch.h): Remove include.
34547         (-mmcu=): Add Var and MissingArgError properties.
34548         (-march=): Remove.
34549         * config/avr/genmultilib.awk: Use -mmcu= instead of -march=.
34550         * config/avr/t-multilib: Regenerate.
34551         * config/avr/specs.h: New file.
34552         * config/avr/driver-avr.c: New file.
34553         * config/avr/genopt.sh: Remove file.
34554         * config/avr/avr-tables.opt: Remove file.
34555         * config/avr/predicates.md (avr_current_arch): Rename to avr_arch.
34556         * config/avr/avr-c.c: Same.
34557         * avr-arch.h: Same.
34558         (avr_current_device): Remove proto.
34559         * config/avr/avr.h (avr_current_arch): Rename to avr_arch.
34560         (AVR_HAVE_8BIT_SP): Don't depend on avr_current_device.
34561         (EXTRA_SPEC_FUNCTIONS): Define.
34562         (avr_devicespecs_file): New specs function proto.
34563         (DRIVER_SELF_SPECS): Use device-specs-file spec function.
34564         * config/avr/avr.c (avr_current_arch): Rename to avr_arch.
34565         (avr_current_device): Remove definition and usage.
34566         (avr_set_core_architecture): New static function.
34567         (avr_option_override): Use it.
34568         * config/avr/avr-devices.c (diagnostic.h, avr-arch.h): Include them.
34569         (mcu_name): New static array.
34570         (comparator, avr_archs_str, avr_mcus_str): New static functions.
34571         (avr_inform_devices, avr_inform_core_architectures): New functions.
34572         * config/avr/gen-avr-mmcu-specs.c (avr-arch.h, specs.h): Include.
34573         (avrlibc.h) [WITH_AVRLIBC]: Include.
34574         (../rtems.h, rtems.h) [WITH_RTEMS]: Include.
34575         (print_mcu): Rewrite from scratch.
34576         * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC, STARTFILE_SPEC):
34577         Forward to avr-specific specs defined in device-specs file.
34578         * config/avr/t-avr (driver-avr.o): New rule.
34579         (avr-devices.o): Depend on avr-arch.h.
34580         (avr-mcus): No more depend on avr-tables.opt.
34581         (avr-tables.opt): Remove rule.
34582         (install-device-specs): Use INSTALL_DATA, not INSTALL_PROGRAM.
34583
34584 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
34585
34586         * c-family/c.opt (fchkp-use-wrappers): New.
34587         * ipa-chkp.c (CHKP_WRAPPER_SYMBOL_PREFIX): New.
34588         (chkp_wrap_function): New.
34589         (chkp_build_instrumented_fndecl): Support wrapped
34590         functions.
34591         * doc/invoke.texi (-fcheck-pointer-bounds): New.
34592         (-fchkp-check-incomplete-type): New.
34593         (-fchkp-first-field-has-own-bounds): New.
34594         (-fchkp-narrow-bounds): New.
34595         (-fchkp-narrow-to-innermost-array): New.
34596         (-fchkp-optimize): New.
34597         (-fchkp-use-fast-string-functions): New.
34598         (-fchkp-use-nochk-string-functions): New.
34599         (-fchkp-use-static-bounds): New.
34600         (-fchkp-use-static-const-bounds): New.
34601         (-fchkp-treat-zero-dynamic-size-as-infinite): New.
34602         (-fchkp-check-read): New.
34603         (-fchkp-check-write): New.
34604         (-fchkp-store-bounds): New.
34605         (-fchkp-instrument-calls): New.
34606         (-fchkp-instrument-marked-only): New.
34607         (-fchkp-use-wrappers): New.
34608         (-static-libmpx): New.
34609         (-static-libmpxwrappers): New.
34610
34611 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
34612
34613         * config/i386/linux-common.h (LIBMPX_WRAPPERSSPEC): New.
34614         (CHKP_SPEC): Add wrappers library.
34615         * c-family/c.opt (static-libmpxwrappers): New.
34616
34617 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
34618
34619         * config/i386/linux-common.h (LIBMPX_LIBS): New.
34620         (LIBMPX_SPEC): New.
34621         (CHKP_SPEC): New.
34622         * gcc.c (CHKP_SPEC): New.
34623         (LINK_COMMAND_SPEC): Add CHKP_SPEC.
34624         * c-family/c.opt (static-libmpx): New.
34625
34626 2015-03-10  Richard Biener  <rguenther@suse.de>
34627
34628         PR middle-end/44563
34629         * cgraph.h (struct cgraph_edge_hasher): Add hash overload
34630         for compare_type.
34631         * cgraph.c (cgraph_edge_hasher::hash): Inline htab_hash_pointer.
34632         (cgraph_update_edge_in_call_site_hash): Use cgraph_edge_hasher::hash.
34633         (cgraph_add_edge_to_call_site_hash): Likewise.
34634         (cgraph_node::get_edge): Likewise.
34635         (cgraph_edge::set_call_stmt): Likewise.
34636         (cgraph_edge::remove_caller): Likewise.
34637
34638 2015-03-10  Chung-Ju Wu  <jasonwucj@gmail.com>
34639
34640         * config/nds32/nds32.h (callee_saved_regs_size): Rename to ...
34641         (callee_saved_gpr_regs_size): ... this.
34642         (callee_saved_regs_first_regno): Rename to ...
34643         (callee_saved_first_gpr_regno): ... this.
34644         (callee_saved_regs_last_regno) Rename to ...
34645         (callee_saved_last_gpr_regno): ... this.
34646         * config/nds32/nds32.c (nds32_compute_stack_frame): Adjust renamed
34647         variables.
34648         (nds32_initial_elimination_offset): Likewise.
34649         (nds32_expand_prologue): Likewise.
34650         (nds32_expand_epilogue): Likewise.
34651         (nds32_expand_prologue_v3push): Likewise.
34652         (nds32_expand_epilogue_v3pop): Likewise.
34653         * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
34654         Adjust renamed variables.
34655         (nds32_output_stack_pop): Likewise.
34656
34657 2015-03-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>
34658
34659         * dominance.c (nearest_common_dominator_for_set): Fix A_Dominated_by_B
34660         code in comment.
34661
34662 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
34663
34664         PR rtl-optimization/65321
34665         * cfgexpand.c (expand_debug_expr): Ensure shift amount isn't wider
34666         than shift mode.
34667         * var-tracking.c (use_narrower_mode): Likewise.
34668
34669 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
34670
34671         PR tree-optimization/65355
34672         * varasm.c (notice_global_symbol): Do not produce RTL.
34673         * symtab.c (symtab_node::can_increase_alignment_p): Check for section
34674         anchor.
34675         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Do not
34676         check for section anchors.
34677
34678 2015-03-10  Alan Modra  <amodra@gmail.com>
34679
34680         PR target/65286
34681         * config.gcc (powerpc*-*-linux*): Arrange for powerpc64le-linux
34682         to be single-arch by default.  Set cpu_is_64bit for powerpc64
34683         given --with-cpu=native.
34684         * config/rs6000/t-fprules: Do not set default MULTILIB vars.
34685         * config/rs6000/t-linux (MULTIARCH_DIRNAME): Support powerpc64
34686         and powerpc64le.
34687         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Test
34688         rs6000_isa_flags rather than TARGET_64BIT.
34689
34690 2015-03-09  Yoshinori Sato  <ysato@users.sourceforge.jp>
34691             Kaz Kojima  <kkojima@gcc.gnu.org>
34692
34693         * config/sh/t-linux (MULTILIB_EXCEPTIONS): Define for m2a cases.
34694
34695 2015-03-09  Jakub Jelinek  <jakub@redhat.com>
34696
34697         PR lto/65361
34698         * ipa-devirt.c (add_type_duplicate): Don't use DECL_CONTEXT
34699         on a TREE_BINFO, instead use BINFO_TYPE.
34700
34701 2015-03-09  Richard Biener  <rguenther@suse.de>
34702
34703         PR middle-end/65270
34704         * tree-core.h (enum operand_equal_flag): Add OEP_ADDRESS_OF.
34705         * fold-const.c (operand_equal_p): When recursing for ADDR_EXPRs
34706         operand set OEP_ADDRESS_OF.  Clear it when recursing to non-bases
34707         of that.  When comparing dereferences compare alignment.
34708         When comparing MEM_REFs or TARGET_MEM_REFs compare dependence info.
34709
34710 2015-03-08  Jan Hubicka  <hubicka@ucw.cz>
34711
34712         * ipa-inline-analysis.c (check_callers): Check
34713         node->can_remove_if_no_direct_calls_and_refs_p.
34714         (growth_likely_positive): Reorganize to call
34715         can_remove_if_no_direct_calls_p later.
34716         * cgraph.h (will_be_removed_from_program_if_no_direct_calls_p,
34717         will_be_removed_from_program_if_no_direct_calls_p): Add
34718         will_inline parameter.
34719         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p,
34720         cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
34721         Handle inliner case correctly.
34722
34723 2015-03-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
34724
34725         PR tree-optimization/63743
34726         * cfgexpand.c (reorder_operands): Also reorder if only second operand
34727         had its definition forwarded by TER.
34728
34729 2015-03-08  Jan Hubicka  <hubicka@ucw.cz>
34730
34731         PR lto/65316
34732         * ipa-utils.h (types_odr_comparable): Add strict argument.
34733         * ipa-devirt.c: Fix whitespace;
34734         (odr_hasher): Remove.
34735         (odr_name_hasher, odr_vtable_hasher): New hashers.
34736         (can_be_name_hashed_p): New predicate.
34737         (hash_type_name): remove.
34738         (hash_odr_name): New.
34739         (odr_name_hasher::hash): new.
34740         (can_be_vtable_hashed_p): New.
34741         (hash_odr_vtable): New.
34742         (odr_vtable_hasher::hash): New.
34743         (types_same_for_odr): Add strict parameter.
34744         (types_odr_comparable): Likewise.
34745         (odr_name_hasher::equal): New.
34746         (odr_vtable_hasher::equal): New.
34747         (odr_name_hasher::remove): New.
34748         (odr_hash_type): Change to hash_table<odr_name_hasher>.
34749         (odr_vtable_hash_type): New.
34750         (odr_vtable_hash): New.
34751         (odr_subtypes_equivalent_p): Do strict comparsion.
34752         (add_type_duplicate): Merge type names; cleanup; avoid type
34753         duplicates.
34754         (register_odr_type): Initialize vtable hash.
34755         (build_type_inheritance_graph): Likewise
34756         (get_odr_type): Reorg to use two hashes.
34757         (dump_possible_polymorphic_call_targets): Move sanity check after debug
34758         output.
34759         (ipa_devirt): Dump type_inheritance_graph.
34760         (types_same_for_odr): Add strict mode.
34761
34762 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
34763
34764         PR ipa/65334
34765         * cgraph.h (symtab_node): Add definition_alignment,
34766         can_increase_alignment_p and increase_alignment.
34767         * symtab.c (symtab_node::can_increase_alignment_p,
34768         increase_alignment_1, symtab_node::increase_alignment,
34769         symtab_node::definition_alignment): New.
34770         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Use
34771         can_increase_alignment_p.
34772         * tree-vectorizer.c (increase_alignment): Use increase_alignment.
34773         * tree-vect-stmts.c (ensure_base_align): Likewise.
34774         * varasm.c (function_section_1): Use definition_alignment.
34775         (assemble_start_function): Likewise.
34776         (emit_local): likewise.
34777         (build_constant_desc): Likewsie.
34778         (output_constant_def_contents): Likewise.
34779         (place_block_symbol): Likewise.
34780         (output_object_block): Likewise.
34781
34782 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
34783
34784         PR ipa/65316
34785         * tree.c (free_lang_data_in_type): Be sure to keep BINFO_VTABLE
34786         when outputting debug.
34787
34788 2015-03-07  Marek Polacek  <polacek@redhat.com>
34789             Martin Uecker  <uecker@eecs.berkeley.edu>
34790
34791         PR sanitizer/65280
34792         * doc/invoke.texi: Update description of -fsanitize=bounds.
34793
34794 2015-03-06  Wilco Dijkstra  <wilco.dijkstra@arm.com>
34795
34796         * tree-ssa-phiopt.c (neg_replacement): Remove.
34797         (tree_ssa_phiopt_worker): Remove negate optimization.
34798
34799 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
34800
34801         PR ipa/65302
34802         * value-prof.c (gimple_ic): Pure dead eh edges when needed.
34803
34804 2015-03-06  Richard Biener  <rguenther@suse.de>
34805
34806         PR middle-end/64928
34807         * tree-ssa-live.h (struct tree_live_info_d): Add livein_obstack
34808         and liveout_obstack members.
34809         (calculate_live_on_exit): Remove.
34810         (calculate_live_ranges): Change declaration.
34811         * tree-ssa-live.c (liveness_bitmap_obstack): Remove global var.
34812         (new_tree_live_info): Adjust.
34813         (calculate_live_ranges): Delete livein when not wanted.
34814         (calculate_live_ranges): Do not initialize liveness_bitmap_obstack.
34815         Deal with partly deleted live info.
34816         (loe_visit_block): Remove temporary bitmap by using
34817         bitmap_ior_and_compl_into.
34818         (live_worklist): Adjust accordingly.
34819         (calculate_live_on_exit): Make static.
34820         * tree-ssa-coalesce.c (coalesce_ssa_name): Tell calculate_live_ranges
34821         we do not need livein.
34822
34823 2015-03-06  Jonathan Wakely  <jwakely@redhat.com>
34824
34825         * real.c (real_from_string): Fix typo in assertion.
34826
34827 2015-03-06  Alex Velenko  <alex.velenko@arm.com>
34828
34829         * ChangeLog (2015-03-05): Reflect Richard Henderson as actual author of
34830         the patch.
34831
34832 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
34833
34834         * ipa-icf.c (sem_variable::equals_wpa): Check FINAL flags.
34835
34836 2015-03-05  Vladimir Makarov  <vmakarov@redhat.com>
34837
34838         PR target/64342
34839         * lra-assigns.c (find_hard_regno_for): Rename to
34840         find_hard_regno_for_1.  Add a new parameter.
34841         (find_hard_regno_for): New function using find_hard_regno_for_1.
34842
34843 2015-03-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
34844
34845         PR rtl-optimization/65067
34846         * expmed.c (store_bit_field, extract_bit_field): Reworked the
34847         strict volatile bitfield handling.
34848
34849 2015-03-05  Martin Liska  <mliska@suse.cz>
34850
34851         PR ipa/65318
34852         * ipa-icf.c (sem_variable::equals): Compare variables types.
34853
34854 2015-03-05  Richard Henderson  <rth@redhat.com>
34855
34856         PR target/65121
34857         * config/arm/arm.c (arm_function_in_section_p): Fix predicate to
34858         correctly check weak symbol binding.
34859
34860 2015-03-05  Steve Ellcey  <sellcey@imgtec.com>
34861
34862         PR middle-end/65315
34863         * cfgexpand.c (expand_stack_vars): Update large_align to maximum
34864         needed alignment.
34865
34866 2015-03-05  Martin Liska  <mliska@suse.cz>
34867
34868         * ipa-inline.c (inline_small_functions): Set default value to
34869         prevent warning during bootstrap.
34870         * tree.h: Add pragma guard that ignores false positives during
34871         bootstrap.
34872
34873 2015-03-05  Richard Biener  <rguenther@suse.de>
34874
34875         PR tree-optimization/65310
34876         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
34877         Properly preserve alignment of the base of the access.
34878
34879 2015-03-05  Richard Biener  <rguenther@suse.de>
34880
34881         PR ipa/65270
34882         * ipa-icf-gimple.c (func_checker::compare_memory_operand):
34883         Compare dependence info.
34884
34885 2015-03-05  Richard Biener  <rguenther@suse.de>
34886
34887         PR middle-end/65233
34888         * ipa-polymorphic-call.c: Include tree-ssa-operands.h and
34889         tree-into-ssa.h.
34890         (walk_ssa_copies): Revert last chage.  Instead do not walk
34891         SSA names registered for SSA update.
34892
34893 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
34894
34895         PR ipa/65270
34896         * ipa-icf.c (sem_item::compare_cgraph_references): Compare
34897         vtable references for their containing type.
34898         (sem_function::equals_wpa): Compare TYPE_RESTRICT
34899         and type attributes.
34900
34901 2015-03-04  Eric Botcazou  <ebotcazou@adacore.com>
34902
34903         * fold-const.c (round_up_loc): Cast divisor to signed on all paths
34904         before negating it.
34905         * stor-layout.c (finalize_record_size): Revert latest change.
34906
34907 2015-03-04  Andreas Tobler  <andreast@gcc.gnu.org>
34908
34909         * config/rs6000/t-freebsd64: Remove 32-bit soft-float multilibs.
34910
34911 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
34912
34913         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p): Rewrite
34914         for correct comdat handling.
34915         (cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
34916         Likewise.
34917         * cgraph.h (call_for_symbol_and_aliases): Fix formating.
34918         (used_from_object_file_p_worker): Remove.
34919         (cgraph_node::only_called_directly_or_alised): Add
34920         used_from_object_file_p.
34921         * ipa-inline-analysis.c (growth_likely_positive): Optimie.
34922         * ipa-inline-transform.c (can_remove_node_now_p_1): Use
34923         can_remove_if_no_direct_calls_and_refs_p.
34924
34925 2015-03-04  Nick Clifton  <nickc@redhat.com>
34926
34927         * config/rl78/rl78.h (enum reg_class): Remove real registers from
34928         General register class.
34929         * config/rl78/rl78-real.md: Replace general register constraints
34930         with real+virtual register constraints.
34931
34932 2015-03-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34933
34934         * config/s390/s390.c (s390_expand_builtin): Exlude non-htm builtins
34935         from checking for -mhtm option.
34936
34937 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
34938
34939         * tree-sra.c (convert_callers): Use call_for_symbol_and_aliases.
34940         (struct ipa_sra_check_caller_data): Add has_thunk field.
34941         (ipa_sra_check_caller): Check for thunk.
34942         (ipa_sra_preliminary_function_checks): Give up on function with
34943         thunks.
34944         (ipa_early_sra): Use call_for_symbol_and_aliases.
34945
34946 2015-03-03  Kaz Kojima  <kkojima@gcc.gnu.org>
34947
34948         PR target/65249
34949         * config/sh/sh.md (symGOT_load): Use R0 reg for operands[2] when
34950         called for __stack_chk_guard symbol.
34951
34952 2015-03-03  DJ Delorie  <dj@redhat.com>
34953
34954         * config/rl78/rl78-real.md (*addqi_real): Allow SADDR types for
34955         inc/dec.
34956         (*addhi3_real): Likewise.
34957         * config/rl78/rl78-virt.md (*inc<mode>3_virt): Additional
34958         pattern to match incrementing memory.
34959         * config/rl78/predicates.md (rl78_1_2_operand): New.
34960         * config/rl78/rl78.c (rl78_force_nonfar_3): Allow far mem-mem if
34961         it's the same and only mem.
34962         (rl78_alloc_physical_registers_op2): If there's effectively only
34963         one MEM, transcode it into HL.
34964         (rl78_far_p): Reject addresses that aren't legitimate.
34965
34966 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
34967
34968         * fold-const.c (round_up_loc): Cast divisor to HOST_WIDE_INT before
34969         negating it.
34970
34971         * tree-sra.c (pa_sra_preliminary_function_checks): Fix typo in message.
34972
34973 2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
34974
34975         Implement call0 ABI for xtensa
34976         * config/xtensa/constraints.md ("a" constraint): Include stack
34977         pointer in case of call0 ABI.
34978         ("q" constraint): Make empty in case of call0 ABI.
34979         ("D" constraint): Include stack pointer in case of call0 ABI.
34980         * config/xtensa/xtensa-protos.h (xtensa_set_return_address,
34981         xtensa_expand_epilogue, xtensa_regno_to_class): Add new function
34982         prototypes.
34983         * config/xtensa/xtensa.c (xtensa_callee_save_size): New
34984         variable.
34985         (xtensa_regno_to_class): Make it a local variable in the
34986         function xtensa_regno_to_class.
34987         (xtensa_function_epilogue, TARGET_ASM_FUNCTION_EPILOGUE): Remove
34988         macro, function prototype and implementation.
34989         (reg_nonleaf_alloc_order): Make it a local variable in the
34990         function order_regs_for_local_alloc.
34991         (xtensa_conditional_register_usage): New function.
34992         (TARGET_CONDITIONAL_REGISTER_USAGE): Define macro.
34993         (xtensa_valid_move): Allow direct moves to stack pointer
34994         register in call0 ABI.
34995         (xtensa_setup_frame_addresses): Only spill register windows in
34996         windowed ABI.
34997         (xtensa_emit_call): Emit call(x)8 or call(x)0 in windowed and
34998         call0 ABI respectively.
34999         (xtensa_function_arg_1): Only mark a7 register for copying in
35000         windowed ABI.
35001         (xtensa_call_save_reg): New function.
35002         (compute_frame_size): Add space for callee saved register
35003         storage to the frame size in call0 ABI.
35004         (xtensa_expand_prologue): Generate code to set up stack frame
35005         and save callee-saved registers in call0 ABI.
35006         (xtensa_expand_epilogue): New function.
35007         (xtensa_set_return_address): New function.
35008         (xtensa_return_addr): Calculate return address in call0 ABI.
35009         (xtensa_builtin_saveregs): Only mark a7 register for copying and
35010         emit copying code in windowed ABI.
35011         (order_regs_for_local_alloc): Add preferred register allocation
35012         order for non-leaf function in call0 ABI.
35013         (xtensa_static_chain): Add atatic chain passing for call0 ABI.
35014         (xtensa_asm_trampoline_template): Add trampoline generation for
35015         call0 ABI.
35016         (xtensa_trampoline_init): Add trampoline initialization for
35017         call0 ABI.
35018         (xtensa_conditional_register_usage, xtensa_regno_to_class): New
35019         functions.
35020         * config/xtensa/xtensa.h (TARGET_WINDOWED_ABI): New macro.
35021         (TARGET_CPU_CPP_BUILTINS): Add built-in define for call0 ABI.
35022         (CALL_USED_REGISTERS): Modify to encode both windowed and call0
35023         ABI call-used registers.
35024         (HARD_FRAME_POINTER_REGNUM): Add frame pointer for call0 ABI.
35025         (INCOMING_REGNO, OUTGOING_REGNO): Use argument unchanged in
35026         call0 ABI.
35027         (REG_CLASS_CONTENTS): Include all registers into the preferred
35028         reload registers set, adjust the set in the
35029         xtensa_conditional_register_usage.
35030         (xtensa_regno_to_class): Drop variable declaration.
35031         (REGNO_REG_CLASS): Redefine to use xtensa_regno_to_class
35032         function.
35033         (WINDOW_SIZE): Define as 8 or 0 for windowed and call0 ABI
35034         respectively.
35035         (FUNCTION_PROFILER): Add _mcount call for call0 ABI.
35036         (TRAMPOLINE_SIZE): Define trampoline size for call0 ABI.
35037         (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 in call0 ABI.
35038         (ASM_OUTPUT_POOL_PROLOGUE): Always generate literal pool
35039         location in call0 ABI.
35040         (EH_RETURN_STACKADJ_RTX): New definition, use a10 for passing
35041         stack adjustment size when handling exception.
35042         (CRT_CALL_STATIC_FUNCTION): Add definition for call0 ABI.
35043         * config/xtensa/xtensa.md (A9_REG, UNSPECV_BLOCKAGE): New
35044         definitions.
35045         ("return" pattern): Generate ret.n/ret in call0 ABI.
35046         ("epilogue" pattern): Expand epilogue.
35047         ("nonlocal_goto" pattern): Use default in call0 ABI.
35048         ("eh_return" pattern): Move implementation to eh_set_a0_windowed,
35049         emit eh_set_a0_* depending on ABI.
35050         ("eh_set_a0_windowed" pattern): Former eh_return pattern.
35051         ("eh_set_a0_call0", "blockage"): New patterns.
35052
35053 2015-03-03  Martin Liska  <mliska@suse.cz>
35054
35055         PR ipa/65287
35056         * ipa-icf.c (sem_variable::parse): Skip all alias variables.
35057
35058 2015-03-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
35059
35060         PR 65138/target
35061         * config/rs6000/rs6000-tables.opt: Regenerate table.
35062
35063 2015-03-03  Renlin Li  <renlin.li@arm.com>
35064
35065         * doc/md.texi (@item ^): Change ? into ^.
35066
35067 2015-03-03  H.J. Lu  <hongjiu.lu@intel.com>
35068
35069         * doc/tm.texi: Regenerated.
35070
35071 2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
35072
35073         * builtins.c (expand_builtin_return_addr): Add
35074         RETURN_ADDR_IN_PREVIOUS_FRAME to 'if' condition, remove
35075         surrounding #ifdef.
35076         * config/sparc/sparc.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Change
35077         definition to 1.
35078         * config/xtensa/xtensa.h (RETURN_ADDR_IN_PREVIOUS_FRAME):
35079         Likewise.
35080         * defaults.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 if
35081         undefined.
35082         * doc/tm.texi.in (RETURN_ADDR_IN_PREVIOUS_FRAME): Update
35083         paragraph.
35084
35085 2015-03-03  Martin Jambor  <mjambor@suse.cz>
35086             Eric Botcazou  <ebotcazou@adacore.com>
35087
35088         * tree-sra.c (ipa_sra_check_caller_data): New type.
35089         (has_caller_p): Removed.
35090         (ipa_sra_check_caller): New function.
35091         (ipa_sra_preliminary_function_checks): Use it.
35092
35093 2015-03-03  Martin Liska  <mliska@suse.cz>
35094
35095         * ipa-icf.c (sem_item_optimizer::merge_classes): Use bit or
35096         instead of if branch.
35097
35098 2015-03-03  Martin Liska  <mliska@suse.cz>
35099
35100         PR ipa/65282
35101         * ipa-icf.c (sem_variable::equals): Fix wrong condition.
35102
35103 2015-03-23  Jeff Law  <law@redhat.com>
35104
35105         PR tree-optimization/65241
35106         * tree-ssa-dom.c (lookup_avail_expr): Only modify the avail_expr
35107         hash table if INSERT is true.
35108
35109 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
35110
35111         PR target/65296
35112         * config.gcc (extra_gcc_objs) [avr-*-rtems*]: Remove.
35113
35114 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
35115
35116         PR target/64331
35117         * config/avr/avr.c (context.h, tree-pass.h): Include them.
35118         (avr_pass_data_recompute_notes): New static variable.
35119         (avr_pass_recompute_notes): New class.
35120         (avr_register_passes): New static function.
35121         (avr_option_override): Call it.
35122
35123 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
35124
35125         Fix various problems with specs file generation.
35126
35127         PR target/65296
35128         * config.gcc (extra_gcc_objs) [avr]: Remove.
35129         * config/avr/driver-avr.c: Remove file.
35130         * config/avr/t-avr (driver-avr.o): Remove rule.
35131         (gen-avr-mmcu-specs): Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD and
35132         INCLUDES to build.  Depend on TM_H.
35133         * config/avr/gen-avr-mmcu-specs.c: Tidy up code.  Fix various
35134         build warnings.  Fix non-matching types and non-existing %-codes.
35135         (tm.h): Include.
35136         (*lib) [!WITH_AVRLIBC]: Don't link libdev.a.
35137         (*libgcc) [WITH_AVRLIBC]: Add "-lm".
35138         * config/avr/avrlibc.h (LIBGCC_SPEC): Remove definition.
35139         * config/avr/avr.h (DRIVER_SELF_SPECS): Fix handling of -march=.
35140         (CPP_SPEC, CC1PLUS_SPEC, ASM_SPEC, LINK_SPEC, LIB_SPEC)
35141         (LIBGCC_SPEC): Remove definitions.
35142
35143 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
35144
35145         * config/ia64/ia64.c (expand_vec_perm_interleave_2): Use gen_raw_REG
35146         to create a register in testing mode.
35147
35148 2015-03-03  Martin Liska  <mliska@suse.cz>
35149             Jan Hubicka  <hubicka@ucw.cz>
35150
35151         PR ipa/65263
35152         * cgraph.c (cgraph_node::has_thunk_p): New function.
35153         * cgraph.h (cgraph_node::has_thunk_p: Likewise.
35154         * ipa-icf.c (redirect_all_callers): Do not redirect thunks.
35155         (sem_function::merge): Assert is changed.
35156
35157 2015-03-03  Martin Liska  <mliska@suse.cz>
35158             Martin Jambor  <mjambor@suse.cz>
35159
35160         PR ipa/65087
35161         * ipa-icf.c (sem_item_optimizer::execute): Change function
35162         return value to boolean.
35163         (sem_item_optimizer::merge_classes): Likewise.
35164         (ipa_icf_driver): Return TODO_remove_functions in case there's
35165         a merge operation processed.
35166         * ipa-icf.h: Change function return value to boolean.
35167
35168 2015-03-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
35169
35170         PR 65138/target
35171         * config/rs6000/rs6000-cpus.def (powerpc64le): Add new generic
35172         processor type for 64-bit little endian PowerPC.
35173
35174         * config/rs6000/rs6000.c (rs6000_option_override_internal): If
35175         -mdebug=reg, print TARGET_DEFAULT.  Fix logic to use
35176         TARGET_DEFAULT if there is no default cpu.  Fix -mdebug=reg
35177         printing built-in mask so it does not pass NULL pointers.
35178
35179         * doc/invoke.texi (IBM RS/6000 and PowerPC options): Document
35180         -mcpu=powerpc64le.
35181
35182 2015-03-02  Steve Ellcey  <sellcey@imgtec.com>
35183
35184         PR target/58158
35185         * config/mips/mips.md (mov<mode>cc): Change ISA_HAS_SEL check to
35186         !ISA_HAS_FP_CONDMOVE.
35187
35188 2015-03-02  Aldy Hernandez  <aldyh@redhat.com>
35189
35190         * config/i386/i386.md (*udivmod<mode>4_pow2): Remove
35191         reload_completed.
35192
35193 2015-03-02  Ulrich Drepper  <drepper@gmail.com>
35194
35195         * doc/invoke.texi (Options for Code Generation Conventions):
35196         Fix URL of DSO paper.
35197
35198 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
35199
35200         PR ipa/65130
35201         * ipa-inline.c (check_callers): Looks for recursion.
35202         (inline_to_all_callers): Give up on uninlinable or recursive edges.
35203         * ipa-inline-analysis.c (inline_summary_t::duplicate): Do not update
35204         summary of inline clones.
35205         (do_estimate_growth_1): Fix recursion check.
35206
35207 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
35208
35209         PR ipa/64988
35210         * ipa-inline-transform.c (clone_inlined_nodes): Do not dissolve
35211         comdat groups.
35212
35213 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
35214             Aldy Hernandez  <aldyh@redhat.com>
35215
35216         PR lto/65276
35217         * ipa-devirt.c (add_type_duplicate): Remove odr_violated assert
35218         when checking TYPE_BINFO.
35219
35220 2015-03-02  Richard Biener  <rguenther@suse.de>
35221
35222         PR ipa/65270
35223         * ipa-icf-gimple.c: Include builtins.h.
35224         (func_checker::compare_memory_operand): Compare base alignment.
35225
35226 2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>
35227
35228         PR target/65184
35229         * config/i386/i386.c (ix86_pass_by_reference): Bounds are never
35230         passed by reference.
35231
35232 2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>
35233
35234         PR target/65183
35235         * tree-chkp.c (chkp_check_lower): Don't check against
35236         zero bounds for already instrumented functions.
35237         (chkp_check_upper): Likewise.
35238         (chkp_fini): Clean pass local data to avoid wrong reusage.
35239
35240 2015-02-28  Martin Liska  <mliska@suse.cz>
35241             Jan Hubicka  <hubicka@ucw.cz>
35242
35243         * ipa-icf.c (sem_variable::equals): Improve debug output;
35244         get variable constructor.
35245         (sem_variable::parse): Do not filter out too early; give up on
35246         volatile and register vars.
35247         (sem_item_optimizer::filter_removed_items): Filter out nonreadonly
35248         variables.
35249         * ipa-icf.h (sem_variable::init): Do not set ctor.
35250         (sem_variable::ctor): Remove.
35251
35252 2015-03-01  Aldy Hernandez  <aldyh@redhat.com>
35253
35254         PR middle-end/65233
35255         * ipa-polymorphic-call.c (walk_ssa_copies): Handle empty PHIs.
35256
35257 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
35258
35259         * ipa-icf.c: Include stor-layout.h
35260         (sem_function::compare_cgraph_references): Rename to ...
35261         (sem_item::compare_cgraph_references): ... this one.
35262         (sem_variable::equals_wpa): New function
35263         (sem_variable::equals): Do not check stuff already verified by
35264         equals_wpa.
35265         (sem_variable::equals): Reorg based on varasm.c:compare_constant.
35266         * ipa-icf.h (sem_item): Add compare_cgraph_references.
35267         (sem_function): Remove compare_cgraph_references.
35268         (sem_variable): Turns equals_wpa into non-inline.
35269
35270 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
35271
35272         * ipa-icf.c (sem_function::init): Fix formating; skip GIMPLE_PREDICT.
35273         (sem_item::add_expr): New function.
35274         (sem_function::hash_stmt): Handle operands of most statements.
35275         (sem_variable::get_hash): Hash the actual constructor.
35276         * ipa-icf.h (sem_item): Add add_expr.
35277         (sem_function): Update prototype of hash_stmt
35278
35279 2015-02-28  Martin Liska  <mliska@suse.cz>
35280             Jan Hubicka  <hubicka@ucw.cz>
35281
35282         PR ipa/65245
35283         * ipa-icf-gimple.c (func_checker::compare_function_decl):
35284         Remove.
35285         (func_checker::compare_variable_decl): Skip symtab vars.
35286         (func_checker::compare_cst_or_decl): Update.
35287         * ipa-icf.c (sem_function::parse): Do not consider aliases.
35288         (sem_function::compare_cgraph_references): Add ADDRESS parameter;
35289         use correct symtab predicates.
35290         (sem_function::equals_wpa): Update uses of compare_cgraph_references.
35291         (sem_variable::parse):  Update comment.
35292         (sem_item_optimizer::build_graph): Consider ultimate aliases
35293         for references.
35294
35295 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
35296
35297         * ipa-icf-gimple.c (func_checker::compare_operand): Fix handling
35298         of OBJ_TYPE_REF.
35299
35300 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
35301
35302         * ipa-icf.c (sem_function::merge): Fix handling of COMDAT.
35303         (sem_variable::merge) Likewise.
35304
35305 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
35306
35307         * ipa-inline.c (can_inline_edge_p): Match opt_for_fn on inline
35308         target; also match flag_ipa_devirt.
35309
35310 2015-03-01  Martin Liska  <mliska@suse.cz>
35311             Jan Hubicka  <hubicka@ucw.cz>
35312
35313         * ipa-icf-gimple.c (func_checker::compare_variable_decl):
35314         Validate variable alignment.
35315         * ipa-icf.c (sem_function::equals_private): Be more precise
35316         about non-common function attributes.
35317         (sem_variable::equals): Likewise.
35318
35319 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
35320
35321         PR ipa/65237
35322         * ipa-icf.c (sem_function::merge): Do not attempt to produce alias
35323         across COMDAT group boundary.
35324
35325 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
35326
35327         PR ipa/65232
35328         * ipa-icf.c (clear_decl_rtl): New function.
35329         (sem_function::merge): Clear RTL before forming alias.
35330         (sem_variable::merge): Clear RTL before forming alias.
35331
35332 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
35333
35334         PR ipa/65236
35335         * cgraphunit.c (cgraph_node::expand_thunk): Enable return slot opt.
35336
35337 2015-02-28  Xingxing Pan  <xxingpan@marvell.com>
35338
35339         * config/aarch64/aarch64.md: (mov<mode>_aarch64): Change type
35340         to neon_to_gp<q>.
35341
35342 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
35343
35344         * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): Fix
35345         a typo in the description.
35346
35347 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
35348
35349         PR target/64317
35350         * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
35351         * params.h (LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
35352         * lra-constraints.c: Include "params.h".
35353         (EBB_PROBABILITY_CUTOFF): Use
35354         LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF.
35355         (lra_inheritance): Use '<' instead of '<=' for
35356         EBB_PROBABILITY_CUTOFF.
35357         * doc/invoke.texi (lra-inheritance-ebb-probability-cutoff):
35358         Document change.
35359
35360 2015-02-27  Martin Liska  <mliska@suse.cz>
35361
35362         * ipa-icf.h (struct symbol_compare_hashmap_traits): Add missing
35363         vector length condition.
35364
35365 2015-02-27  Sandra Loosemore  <sandra@codesourcery.com>
35366
35367         * doc/extend.texi (x86 transactional memory intrinsics):
35368         Reorganize discussion of _xbegin.  Clarify that the return
35369         value is a bit mask.  Expand example and move to end of section.
35370
35371 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
35372             Aldy Hernandez  <aldyh@redhat.com>
35373
35374         PR rtl-optimization/65220
35375         * config/i386/i386.md (*udivmod<mode>4_pow2): New.
35376
35377 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
35378
35379         PR target/65032
35380         * lra-remat.c (update_scratch_ops): New.
35381         (do_remat): Call it.
35382         * lra.c (lra_register_new_scratch_op): New. Take code from ...
35383         (remove_scratches): ... here.
35384         * lra-int.h (lra_register_new_scratch_op): New prototype.
35385
35386 2015-02-27  Marek Polacek  <polacek@redhat.com>
35387
35388         PR c/65040
35389         * doc/invoke.texi: Update to reflect that -Wformat=2 doesn't enable
35390         -Wformat-signedness anymore.
35391
35392 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
35393
35394         * config/s390/s390.c: (s390_atomic_assign_expand_fenv): New
35395         function.
35396         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define macro.
35397
35398 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
35399
35400         * config/s390/s390.c (enum s390_builtin):
35401         Add S390_BUILTIN_S390_SFPC and S390_BUILTIN_S390_EFPC.
35402         (code_for_builtin): Add CODE_FOR_s390_sfpc and CODE_FOR_s390_efpc.
35403         (s390_init_builtins): Generate new builtin functions.
35404         * config/s390/s390.md (UNSPECV_SFPC, UNSPECV_EFPC): New constants.
35405         (s390_sfpc, s390_efpc): New pattern definitions.
35406
35407 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
35408
35409         * config/s390/s390.c: (enum s390_builtin, s390_expand_builtin):
35410         Rename S390_BUILTIN_max to S390_BUILTIN_MAX.
35411         (s390_builtin_decls): New array.
35412         (s390_init_builtins): Put builtin decls into s390_builtin_decls.
35413         (s390_builtin_decl): New function.
35414         (TARGET_BUILTIN_DECL): Define macro.
35415
35416 2015-02-27  Richard Biener  <rguenther@suse.de>
35417
35418         PR middle-end/63175
35419         * builtins.c (get_object_alignment_2): Make sure to re-apply
35420         the ANDed mask after recursing to its operand gets us a new
35421         misalignment bit position.
35422
35423 2015-02-26  Jan Hubicka  <hubicka@ucw.cz>
35424             Martin Liska  <mliska@suse.cz>
35425
35426         PR bootstrap/65150
35427         * ipa-icf.c (symbol_compare_collection::symbol_compare_colleciton):
35428         Use address_matters_p.
35429         (redirect_all_callers, set_addressable): New functions.
35430         (sem_function::merge): Reorganize and fix merging issues.
35431         (sem_variable::merge): Likewise.
35432         (sem_variable::compare_sections): Remove.
35433         * common.opt (fmerge-all-constants, fmerge-constants): Remove
35434         Optimization flag.
35435         * symtab.c (symtab_node::resolve_alias): When alias has aliases,
35436         redirect them.
35437         (symtab_node::make_decl_local): Set ADDRESSABLE bit when
35438         decl is used.
35439         (address_matters_1): New function.
35440         (symtab_node::address_matters_p): New function.
35441         * cgraph.c (cgraph_edge::verify_corresponds_to_fndecl): Fix
35442         check for merged flag.
35443         * cgraph.h (address_matters_p): Declare.
35444         (symtab_node::address_taken_from_non_vtable_p): Remove.
35445         (symtab_node::address_can_be_compared_p): New method.
35446         (ipa_ref::address_matters_p): Move here from ipa-ref.c; simplify.
35447         * ipa-visibility.c (symtab_node::address_taken_from_non_vtable_p):
35448         Remove.
35449         (comdat_can_be_unshared_p_1) Use address_matters_p.
35450         (update_vtable_references): Fix formating.
35451         * ipa-ref.c (ipa_ref::address_matters_p): Move inline.
35452         * cgraphunit.c (cgraph_node::create_wrapper): Drop UNINLINABLE flag.
35453         * cgraphclones.c: Preserve merged and icf_merged flags.
35454
35455 2015-02-26  Sandra Loosemore  <sandra@codesourcery.com>
35456
35457         * doc/extend.texi (Function Attributes): Fix spelling and typos.
35458         (Label Attributes): Likewise.
35459         (Cilk Plus Builtins): Likewise.
35460         (ARC SIMD Built-in Functions): Likewise.
35461         (ARM C Language Extensions (ACLE)): Likewise.
35462         (PowerPC Built-in Functions): Likewise.
35463         (PowerPC Hardware Transactional Memory Built-in Functions):
35464         Likewise.
35465
35466 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
35467
35468         PR tree-optimization/65216
35469         * tree-ssa-reassoc.c (rewrite_expr_tree): Force creation of
35470         new stmt and new SSA_NAME for lhs whenever the arguments have
35471         changed and weren't just swapped.  Fix comment typo.
35472
35473         PR tree-optimization/65215
35474         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Return false
35475         for PDP endian targets.
35476         (perform_symbolic_merge, find_bswap_or_nop_1, find_bswap_or_nop):
35477         Fix up formatting issues.
35478         (bswap_replace): Likewise.  For BYTES_BIG_ENDIAN, if the final access
35479         size is smaller than the original, adjust MEM_REF offset by the
35480         difference of sizes.  Use is_gimple_mem_ref_addr instead of
35481         is_gimple_min_invariant test to avoid adding address temporaries.
35482
35483 2015-02-26  Martin Liska  <mliska@suse.cz>
35484             Jan Hubicka  <hubicka@ucw.cz>
35485
35486         PR ipa/64693
35487         * ipa-icf.c (symbol_compare_collection::symbol_compare_collection): New.
35488         (sem_item_optimizer::subdivide_classes_by_sensitive_refs): New function.
35489         (sem_item_optimizer::process_cong_reduction): Include division by
35490         sensitive references.
35491         * ipa-icf.h (struct symbol_compare_hashmap_traits): New class.
35492         * ipa-ref.c (ipa_ref::address_matters_p): New function.
35493         * ipa-ref.h (ipa_ref::address_matters_p): Likewise.
35494
35495 2015-02-26  Georg-Johann Lay  <avr@gjlay.de>
35496
35497         PR target/65192
35498         * config/avr/avr-protos.h (tiny_valid_direct_memory_access_range):
35499         Remove.
35500         * config/avr/avr.c: Same.
35501         (avr_legitimate_address_p) <AVR_TINY, CONSTANT_ADDRESS_P>:
35502         Refuse any constant address not in 0..0xbf.
35503         * config/avr/avr.md (*mov<mode>, *movsf): Remove
35504         tiny_valid_direct_memory_access_range from insn conditions.
35505         (mov<mode>): Don't special-case expansion of avrtiny addresses.
35506
35507 2015-02-26  Oleg Endo  <olegendo@gcc.gnu.org>
35508
35509         PR target/61142
35510         * config/sh/sh.c (sh_check_add_incdec_notes): New function.
35511         * config/sh/sh-protos.h (sh_check_add_incdec_notes): Declare it.
35512         * config/sh/predicates.md (const_logical_operand): New predicate.
35513         * config/sh/sh.md: Add new peephole2 patterns.
35514
35515 2015-02-26  Marek Polacek  <polacek@redhat.com>
35516
35517         PR ipa/65008
35518         * ipa-inline.c (early_inliner): Recompute inline parameters.
35519
35520 2015-02-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
35521
35522         PR target/65171
35523         * config/rs6000/rs6000.c (rs6000_analyze_swaps): Ensure
35524         instructions with TImode operands are included in the analysis.
35525
35526 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
35527
35528         * tree-ssa-threadupdate.c (dump_jump_thread_path): Print all edges
35529         of an EDGE_FSM_THREAD.
35530
35531 2015-02-25  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
35532
35533         * config/rs6000/htm.md (tcheck): Fix assembly encoding.
35534
35535 2015-02-25  Aldy Hernandez  <aldyh@redhat.com>
35536
35537         PR debug/46102
35538         * dwarf2out.c (dwarf2out_init): Disable -feliminate-dwarf2-dups.
35539
35540 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
35541
35542         PR tree-optimization/65048
35543         * tree-ssa-threadupdate.c (valid_jump_thread_path): New.
35544         (thread_through_all_blocks): Call valid_jump_thread_path.
35545         Remove invalid FSM jump-thread paths.
35546
35547 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
35548
35549         * passes.c (ipa_write_summaries_1): Call lto_output_init_mode_table.
35550         (ipa_write_optimization_summaries): Likewise.
35551         * tree-streamer.h: Include data-streamer.h.
35552         (streamer_mode_table): Declare extern variable.
35553         (bp_pack_machine_mode, bp_unpack_machine_mode): New inline functions.
35554         * lto-streamer-out.c (lto_output_init_mode_table,
35555         lto_write_mode_table): New functions.
35556         (produce_asm_for_decls): Call lto_write_mode_table when streaming
35557         offloading LTO.
35558         * lto-section-in.c (lto_section_name): Add "mode_table" entry.
35559         (lto_create_simple_input_block): Add mode_table argument to the
35560         lto_input_block constructors.
35561         * ipa-prop.c (ipa_prop_read_section, read_replacements_section):
35562         Likewise.
35563         * data-streamer-in.c (string_for_index): Likewise.
35564         * ipa-inline-analysis.c (inline_read_section): Likewise.
35565         * ipa-icf.c (sem_item_optimizer::read_section): Likewise.
35566         * lto-cgraph.c (input_cgraph_opt_section): Likewise.
35567         * lto-streamer-in.c (lto_read_body_or_constructor,
35568         lto_input_toplevel_asms): Likewise.
35569         (lto_input_mode_table): New function.
35570         * tree-streamer-out.c (pack_ts_fixed_cst_value_fields,
35571         pack_ts_decl_common_value_fields, pack_ts_type_common_value_fields):
35572         Use bp_pack_machine_mode.
35573         * real.h (struct real_format): Add name field.
35574         * lto-streamer.h (enum lto_section_type): Add LTO_section_mode_table.
35575         (class lto_input_block): Add mode_table member.
35576         (lto_input_block::lto_input_block): Add mode_table_ argument,
35577         initialize mode_table.
35578         (struct lto_file_decl_data): Add mode_table field.
35579         (lto_input_mode_table, lto_output_init_mode_table): New prototypes.
35580         * tree-streamer-in.c (unpack_ts_fixed_cst_value_fields,
35581         unpack_ts_decl_common_value_fields,
35582         unpack_ts_type_common_value_fields): Call bp_unpack_machine_mode.
35583         * tree-streamer.c (streamer_mode_table): New variable.
35584         * real.c (ieee_single_format, mips_single_format,
35585         motorola_single_format, spu_single_format, ieee_double_format,
35586         mips_double_format, motorola_double_format,
35587         ieee_extended_motorola_format, ieee_extended_intel_96_format,
35588         ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format,
35589         ibm_extended_format, mips_extended_format, ieee_quad_format,
35590         mips_quad_format, vax_f_format, vax_d_format, vax_g_format,
35591         decimal_single_format, decimal_double_format, decimal_quad_format,
35592         ieee_half_format, arm_half_format, real_internal_format): Add name
35593         field.
35594         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
35595
35596 2015-02-26  Yuri Rumyantsev  <ysrumyan@gmail.com>
35597
35598         PR target/65161
35599         * config/i386/i386.c (ix86_sched_reorder): Skip instruction
35600         reordering for selective scheduling.
35601
35602 2015-02-26  Terry Guo  <terry.guo@arm.com>
35603
35604         * config/arm/arm-cores.def (cortex-m7): Add flag FL_NO_VOLATILE_CE.
35605         * config/arm/arm-protos.h (FL_NO_VOLATILE_CE): New flag.
35606         (arm_arch_no_volatile_ce): Declare new global variable.
35607         * config/arm/arm.c (arm_arch_no_volatile_ce): New global variable.
35608         (arm_option_override): Assign value to arm_arch_no_volatile_ce.
35609         * config/arm/arm.h (arm_arch_no_volatile_ce): Declare it.
35610         (TARGET_NO_VOLATILE_CE): New macro.
35611         * config/arm/arm.md (arm_comparison_operator): Disabled if not allow
35612         volatile memory access in IT block
35613
35614 2015-02-25  Kai Tietz  <ktietz@redhat.com>
35615
35616         PR tree-optimization/61917
35617         * tree-vect-loop.c (vectorizable_reduction): Handle obvious case
35618         that reduc_def_stmt is null.
35619
35620 2015-02-25  Martin Liska  <mliska@suse.cz>
35621
35622         * ipa-icf-gimple.c (func_checker::compare_variable_decl): Compare
35623         hard register variables.
35624
35625 2015-02-25  Kai Tietz  <ktietz@redhat.com>
35626
35627         PR target/64212
35628         * symtab.c (symtab::make_decl_local): Set DECL_IMPORT_P explicit to 0.
35629         (symtab::noninterposable_alias): Likewise.
35630
35631 2015-02-25  Ilya Enkovich  <ilya.enkovich@intel.com>
35632
35633         PR target/65167
35634         * config/i386/i386.c (ix86_function_arg_regno_p): Support
35635         bounds registers.
35636         (avoid_func_arg_motion): Add dependencies for BNDSTX insns.
35637
35638 2015-02-25  Alan Lawrence  <alan.lawrence@arm.com>
35639
35640         PR target/64997
35641         * config/aarch64/aarch64.md (*xor_one_cmpl<mode>3): Use FP_REGNUM_P
35642         as split condition; force split via '#' in output pattern.
35643
35644 2015-02-25  Richard Biener  <rguenther@suse.de>
35645             Kai Tietz  <ktietz@redhat.com>
35646
35647         PR tree-optimization/61917
35648         * tree-vect-loop.c (vectorizable_reduction): Allow
35649         vect_internal_def without reduction to exit graceful.
35650
35651 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
35652
35653         PR target/65196
35654         * config/avr/avr.c (avr_adjust_insn_length): Call recog_memoized
35655         only with NONDEBUG_INSN_P.
35656
35657 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
35658
35659         Use variadic macros with avr-log.c.
35660
35661         * config/avr/avr-protos.h (avr_vdump): New prototype.
35662         (avr_log_set_caller_e, avr_log_set_caller_f): Remove protos.
35663         (avr_edump, avr_fdump, avr_dump): (Re)define to use avr_vdump.
35664         * config/avr/avr-log.c: Adjust comments.
35665         (avr_vdump): New function.
35666         (avr_vadump): Pass caller as 2nd argument instead of format string.
35667         (avr_log_caller, avr_log_fdump_e, avr_log_fdump_f)
35668         (avr_log_set_caller_e, avr_log_set_caller_f): Remove.
35669
35670 2015-02-25  Jakub Jelinek  <jakub@redhat.com>
35671
35672         PR lto/64374
35673         * target.def (target_option_stream_in): New target hook.
35674         * tree-streamer-in.c (streamer_read_tree_bitfields): Invoke
35675         targetm.target_option.post_stream_in if non-NULL.
35676         * doc/tm.texi.in: Add @hook TARGET_OPTION_POST_STREAM_IN.
35677         * doc/tm.texi: Updated.
35678         * config/i386/i386.c (ix86_function_specific_post_stream_in): New
35679         function.
35680         (TARGET_OPTION_POST_STREAM_IN): Redefine.
35681
35682 2015-02-24  Jeff Law  <law@redhat.com>
35683
35684         PR target/65117
35685         * config/xtensa/xtensa.md (zero_cost_loop_start): Reverse numbering
35686         of operand 0 and operand 2.
35687         (zero_cost_loop_end, loop_end): Similarly.
35688
35689 2015-02-24  Aldy Hernandez  <aldyh@redhat.com>
35690
35691         * gimple.h (gimple_build_assign): Rename CXX_MEM_STAT_DECL to
35692         CXX_MEM_STAT_INFO.
35693
35694 2015-02-24  DJ Delorie  <dj@redhat.com>
35695
35696         * config/rl78/rl78-protos.h (rl78_split_movsi): Accept a mode as well.
35697         * config/rl78/rl78-expand.md (movsf): New, same as movsi.
35698         * config/rl78/rl78.c (rl78_split_movsi): Accept a mode, use it
35699         instead of hardcoding SImode.
35700
35701 2015-02-24  Bernd Schmidt  <bernds@codesourcery.com>
35702
35703         * omp-low.c (create_omp_child_function): Tag entrypoint
35704         functions with a special attribute.
35705
35706 2015-02-24  Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
35707
35708         PR target/65058
35709         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Drop unused variable.
35710
35711 2015-02-24  Vladimir Makarov  <vmakarov@redhat.com>
35712
35713         PR rtl-optimization/65123
35714         * lra-remat.c (operand_to_remat): Check hard regs in insn
35715         definition too.
35716
35717 2015-02-24  Nick Clifton  <nickc@redhat.com>
35718
35719         * config/v850/v850.h (ASM_SPEC): Pass -msoft-float/-mhard-float on
35720         to the assembler.
35721
35722 2015-02-24  Thomas Schwinge  <thomas@codesourcery.com>
35723
35724         PR libgomp/64625
35725         * omp-builtins.def (BUILT_IN_GOACC_DATA_START): Specify as
35726         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR, not
35727         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR.
35728         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_UPDATE): Specify as
35729         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR, not
35730         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR.
35731         (BUILT_IN_GOACC_PARALLEL): Specify as
35732         BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR, not
35733         BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR.
35734         * builtin-types.def
35735         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
35736         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
35737         Remove function types.
35738         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR)
35739         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR)
35740         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
35741         New function types.
35742
35743 2015-02-24  Georg-Johann Lay  <avr@gjlay.de>
35744
35745         * config/avr/stdfix.h [__WITH_AVRLIBC__]: Include <stdfix-avrlibc.h>.
35746
35747 2015-02-24  Jakub Jelinek  <jakub@redhat.com>
35748
35749         PR tree-optimization/65170
35750         * wide-int.cc (wi::mul_internal): For the umul_ppmm optimization,
35751         if val[1] < 0, clear also val[2] and return 3.
35752
35753 2015-02-24  Alan Modra  <amodra@gmail.com>
35754
35755         PR target/65172
35756         * config/rs6000/rs6000.c (get_memref_parts): Only return true
35757         when *base is a reg.  Handle nested plus addresses.  Simplify
35758         pre_modify test.
35759
35760 2015-02-22  Max Filippov  <jcmvbkbc@gmail.com>
35761
35762         * config/xtensa/xtensa.h (CONSTANT_ALIGNMENT, DATA_ALIGNMENT):
35763         use natural alignment when optimizing for size.
35764
35765 2015-02-23  Kaz Kojima  <kkojima@gcc.gnu.org>
35766
35767         PR target/65153
35768         * config/sh/sh.md (movsicc_true+3): Remove peephole.
35769         * config/sh/sh-protos.h (replace_n_hard_rtx): Don't declare.
35770         * config/sh/sh.c (replace_n_hard_rtx): Remove.
35771
35772 2015-02-23  Richard Sandiford  <richard.sandiford@arm.com>
35773
35774         PR fortran/63427
35775         * wide-int.cc (wi::from_mpz): Cope with unwrapped values that are
35776         too big for a wide_int.  Implement missing wrapping operation.
35777
35778 2015-02-23  Oleg Endo  <olegendo@gcc.gnu.org>
35779
35780         PR target/65163
35781         * config/sh/sh.md (swapbsi2, related peephole2): Use const_int -65536
35782         instead of const_int 4294901760.
35783
35784 2015-02-23  Georg-Johann Lay  <avr@gjlay.de>
35785
35786         * config/avr/t-avr: Fix typo in comment.
35787
35788 2015-02-21  Richard Sandiford  <richard.sandiford@arm.com>
35789
35790         * doc/rtl.texi (fma): Clarify documentation.
35791
35792 2015-02-20  Aldy Hernandez  <aldyh@redhat.com>
35793
35794         PR debug/58123
35795         * gimplify.c (gimplify_expr): Prefer location of TRY_FINALLY_EXPR
35796         over input_location.
35797
35798 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
35799
35800         * tree-streamer-in.c (unpack_ts_decl_common_value_fields,
35801         unpack_ts_type_common_value_fields): If ACCEL_COMPILER,
35802         restrict alignments to absolute_biggest_alignment.
35803         * config/i386/i386.c (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT):
35804         Define.
35805         * doc/tm.texi.in (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT): Add.
35806         * doc/tm.texi: Regenerate.
35807         * target.def (absolute_biggest_alignment): New DEFHOOKPOD.
35808
35809 2015-02-20  Vladimir Makarov  <vmakarov@redhat.com>
35810
35811         PR target/64172
35812         * ira-color.c (color_pass): Prevent splitting multi-register pseudos.
35813
35814 2015-02-20  Richard Biener  <rguenther@suse.de>
35815
35816         PR tree-optimization/65136
35817         * tree-ssa-propagate.c: Include cfgloop.h.
35818         (replace_phi_args_in): Avoid replacing loop latch edge PHI
35819         arguments with constants.
35820
35821 2015-02-20  Jakub Jelinek  <jakub@redhat.com>
35822             Martin Liska  <mliska@suse.cz>
35823
35824         PR target/63892
35825         * ipa-icf.c (sem_function::merge): If DECL_COMDAT_GROUP (alias->decl),
35826         don't try to create_thunk if stdarg_p.  If
35827         !sem_item::target_supports_symbol_aliases_p (), similarly, and try to
35828         redirect_callers if possible.
35829         (sem_item_optimizer::execute): Call unregister_hooks here...
35830         (ipa_icf_driver): ... instead of here.
35831
35832 2015-02-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35833
35834         * config/aarch64/aarch64.md (*aarch64_lshr_sisd_or_int_<mode>3):
35835         Mark operand 0 as earlyclobber in 2nd alternative.
35836         (1st define_split below *aarch64_lshr_sisd_or_int_<mode>3):
35837         Write negated shift amount into QI lowpart operand 0 and use it
35838         in the shift step.
35839         (2nd define_split below *aarch64_lshr_sisd_or_int_<mode>3): Likewise.
35840
35841 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
35842
35843         * cgraph.h (clone_function_name_1): Declare.
35844         * cgraphclones.c (clone_function_name_1): New function.
35845         (clone_function_name): Use it.
35846         * lto-partition.c: Include "stringpool.h".
35847         (must_not_rename, maybe_rewrite_identifier)
35848         (validize_symbol_for_target): New static functions.
35849         (privatize_symbol_name): Use must_not_rename.
35850         (promote_symbol): Call validize_symbol_for_target.
35851         (lto_promote_cross_file_statics): Likewise.
35852         (lto_promote_statics_nonwpa): Likewise.
35853
35854 2015-02-20  Georg-Johann Lay  <avr@gjlay.de>
35855
35856         PR target/64452
35857         * config/avr/avr.md (pushhi_insn): New insn.
35858         (push<mode>1): Push virtual regs in one chunk using pushhi1_insn.
35859
35860 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
35861             Jakub Jelinek  <jakub@redhat.com>
35862
35863         * tree-streamer.c (preload_common_nodes): Don't preload
35864         TI_VA_LIST* for offloading.
35865         * tree-stdarg.c (pass_stdarg::gate): Disable for ACCEL_COMPILER
35866         in_lto_p.
35867
35868 2015-02-19  John David Anglin  <danlgin@gcc.gnu.org>
35869
35870         * config/pa/pa.c (pa_emit_move_sequence): Always force
35871         (const (plus (symbol) (const_int))) to const mem.  Put REG_EQUAL
35872         note on insn.
35873
35874         * config/pa/pa.c (pa_reloc_rw_mask): New function.
35875         (TARGET_ASM_RELOC_RW_MASK): Define.
35876         (pa_cannot_force_const_mem): Revert previous change.
35877
35878 2015-02-19  Martin Jambor  <mjmabor@suse.cz>
35879             Jan Hubicka  <hubicka@ucw.cz>
35880
35881         PR ipa/65028
35882         * ipa-cp.c (propagate_alignment_accross_jump_function): Fix propagation
35883         across jump functions.
35884
35885 2015-02-19  Uros Bizjak  <ubizjak@gmail.com>
35886
35887         * config/alpha/alpha.c (alpha_in_small_data_p): Reject common symbols.
35888
35889 2015-02-19  Sandra Loosemore  <sandra@codesourcery.com>
35890
35891         * doc/extend.texi (x86 transactional memory intrinsics): Copy-edit.
35892
35893 2015-02-19  Richard Henderson  <rth@redhat.com>
35894
35895         PR middle-end/65074
35896         * varasm.c (default_binds_local_p_2): Don't test node->definition;
35897         test DECL_EXTERNAL independent of symtab_node.
35898
35899 2015-02-19  Jakub Jelinek  <jakub@redhat.com>
35900
35901         PR lto/65012
35902         * varpool.c (varpool_node::get_constructor): Return early
35903         if this->lto_file_data is NULL.
35904
35905 2015-02-19  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
35906
35907         * haifa-sched.c (enum rfs_decision, rfs_str): Remove RFS_DEBUG.
35908         (rank_for_schedule_debug): Update.
35909         (ready_sort): Make static.  Move sorting logic to ...
35910         (ready_sort_debug, ready_sort_real): New static functions.
35911         (schedule_block): Sort both debug insns and real insns in preparation
35912         for ready list trimming.  Improve debug output.
35913         * sched-int.h (ready_sort): Remove global declaration.
35914
35915 2015-02-18  Trevor Saunders  <tsaunders@mozilla.com>
35916
35917         * ipa-icf.c (sem_function::equals_private): Adjust.
35918         (sem_function::bb_dict_test): Take a vec<int> * instead of
35919         auto_vec<int>.
35920         * ipa-icf.h (bb_dict_test): Likewise.
35921
35922 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
35923
35924         PR gcov-profile/64634
35925         * tree-eh.c (frob_into_branch_around): Fix up typos
35926         in function comment.
35927         (lower_catch): Put eh_seq resulting from EH lowering of
35928         the cleanup sequence after the cleanup rather than before it.
35929
35930 2015-02-18  Tom de Vries  <tom@codesourcery.com>
35931
35932         * common.opt (fstdarg-opt): New option.
35933         * tree-stdarg.c (pass_stdarg::gate): Use flag_stdarg_opt.
35934         * doc/invoke.texi (@item Optimization Options): Add -fstdarg-opt.
35935         (@item -fstdarg-opt): New item.
35936
35937 2015-02-18  H.J. Lu  <hongjiu.lu@intel.com>
35938
35939         PR target/65064
35940         * config/ia64/predicates.md (sdata_symbolic_operand): Return false
35941         for common symbols.
35942
35943 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
35944
35945         * config/i386/t-intelmic (mkoffload.o): Remove dependency on
35946         insn-modes.h.
35947         (ALL_HOST_OBJS): Add mkoffload.o.
35948         * config/nvptx/t-nvptx (ALL_HOST_OBJS): Likewise.
35949
35950 2015-02-18  Jan Hubicka  <hubicka@ucw.cz>
35951
35952         * ipa-devirt.c (odr_subtypes_equivalent_p): Fix formating.
35953         (compare_virtual_tables): Be smarter about skipping typeinfos;
35954         do sane output on virtual table table mismatch.
35955         (warn_odr): Be ready for forward declarations of enums;
35956         output sane info on base mismatch and virtual table mismatch.
35957         (add_type_duplicate): Fix code choosing prevailing type; do not ICE
35958         when only one type is polymorphic.
35959         (get_odr_type): Fix hashtable corruption.
35960         (dump_odr_type): Dump mangled names.
35961
35962 2015-02-18  Richard Biener  <rguenther@suse.de>
35963
35964         PR tree-optimization/65063
35965         * tree-predcom.c (determine_unroll_factor): Return 1 if we
35966         have replaced looparound PHIs.
35967
35968 2015-02-18  Martin Liska  <mliska@suse.cz>
35969
35970         * lto-streamer.c (lto_streamer_init): Encapsulate
35971         streamer_check_handled_ts_structures with checking macro.
35972
35973 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
35974
35975         PR ipa/65087
35976         * cgraphclones.c (cgraph_node::create_virtual_clone): Only copy
35977         section if !implicit_section.
35978         (cgraph_node::create_version_clone_with_body): Likewise.
35979         * trans-mem.c (ipa_tm_create_version): Likewise.
35980
35981 2015-02-18  Richard Biener  <rguenther@suse.de>
35982
35983         PR tree-optimization/62217
35984         * tree-ssa-dom.c (cprop_operand): Avoid propagating copies
35985         into BIVs.
35986
35987 2015-02-18  Marek Polacek  <polacek@redhat.com>
35988
35989         PR sanitizer/65081
35990         * ubsan.c (OBJSZ_MAX_OFFSET): Define.
35991         (ubsan_expand_objsize_ifn): Don't emit run-time check if the offset
35992         is in range [-16K, -1].  Don't issue run-time error if
35993         (ptr > ptr + offset).
35994
35995 2015-02-18  Thomas Schwinge  <thomas@codesourcery.com>
35996
35997         * doc/install.texi (nvptx-*-none): New section.
35998         * doc/invoke.texi (Nvidia PTX Options): Likewise.
35999         * config/nvptx/nvptx.opt: Update.
36000
36001         * config/nvptx/mkoffload.c (parse_env_var, free_array_of_ptrs)
36002         (access_check): New functions, copied from
36003         config/i386/intelmic-mkoffload.c.
36004         (main): For non-installed testing, look in all COMPILER_PATHs for
36005         GCC_INSTALL_NAME.
36006
36007         * config/nvptx/nvptx.h (GOMP_SELF_SPECS): Define macro.
36008
36009 2015-02-18  Andrew Pinski  <apinski@cavium.com>
36010             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
36011
36012         * config/aarch64/aarch64.c (*aarch64_load_symref_appropriately):
36013         Check whether the destination of SYMBOL_SMALL_TPREL is Pmode.
36014
36015 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
36016
36017         * ipa-visibility.c (function_and_variable_visibility): Only
36018         check locality if node is not already local.
36019         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
36020         call_for_symbol_and_aliases instead of
36021         call_for_symbol_thunks_and_aliases.
36022         (ipa_inline): Likewise.
36023         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
36024         first walk aliases.
36025         * ipa.c (symbol_table::remove_unreachable_nodes): Use
36026         call_for_symbol_and_aliases.
36027         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
36028         (ipa_propagate_frequency_1): Use it; use opt_for_fn
36029         (ipa_propagate_frequency): Update.
36030         (ipa_profile): Add opt_for_fn gueards.
36031
36032 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
36033
36034         * config/sh/sh.opt (mcbranch-force-delay-slot): New option.
36035         * doc/invoke.texi (SH options): Document it.
36036         * config/sh/sh.c (sh_insn_length_adjustment): Check
36037         TARGET_CBRANCH_FORCE_DELAY_SLOT instead of sh_cpu_attr == CPU_SH2E.
36038
36039 2015-02-17  H.J. Lu  <hongjiu.lu@intel.com>
36040
36041         * common.opt (fipa-cp-alignment): New.
36042         * ipa-cp.c (ipcp_store_alignment_results): Check
36043         flag_ipa_cp_alignment.
36044         * opts.c (default_options_table): Enable -fipa-cp-alignment for
36045         -O2.
36046         (enable_fdo_optimizations): Set x_flag_ipa_cp_alignment.
36047         * doc/invoke.texi: Document -fipa-cp-alignment.
36048
36049 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
36050
36051         PR target/64793
36052         * config/sh/sh.md (cbranch define_delay): Set annulled true branch insn
36053         to nil.  Adjust comments.
36054
36055 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
36056
36057         * ipa-visibility.c (function_and_variable_visibility): Only
36058         check locality if node is not already local.
36059         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
36060         call_for_symbol_and_aliases instead of
36061         call_for_symbol_thunks_and_aliases.
36062         (ipa_inline): Likewise.
36063         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
36064         first walk aliases.
36065         * ipa.c (symbol_table::remove_unreachable_nodes): Use
36066         call_for_symbol_and_aliases.
36067         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
36068         (ipa_propagate_frequency_1): Use it; use opt_for_fn
36069         (ipa_propagate_frequency): Update.
36070         (ipa_profile): Add opt_for_fn guards.
36071
36072 2015-02-17  Thomas Schwinge  <thomas@codesourcery.com>
36073
36074         * config/nvptx/mkoffload.c (parse_file): Fix logic error in
36075         skipping of "strange" tokens.
36076
36077 2015-02-17  Jeff Law  <law@redhat.com>
36078
36079         * tree-vrp.c (identify_jump_threads): Use last_stmt.  Remove
36080         obsolete comment.
36081
36082 2015-02-17  James Greenhalgh  <james.greenhalgh@arm.com>
36083
36084         * haifa-sched.c (recompute_todo_spec): Treat SCHED_GROUP_P
36085         as forcing a HARD_DEP between instructions, thereby
36086         disallowing rewriting to break dependencies.
36087
36088 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
36089
36090         * symtab.c (symtab_node::verify_base): Verify body_removed->!definiton
36091         * lto-cgraph.c (lto_output_varpool_node): Do not keep definition of
36092         variables in boundary that have no inlitalizer encoded and are
36093         not aliases.
36094         * varasm.c (default_binds_local_p_2): External definitions do not
36095         count as definitions here.
36096
36097 2015-02-16  Jeff Law  <law@redhat.com>
36098
36099         PR tree-optimization/64823
36100         * tree-vrp.c (identify_jump_threads): Handle blocks with no real
36101         statements.
36102         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
36103         threading through blocks with PHIs, but no statements.
36104         (thread_through_normal_block): Distinguish between blocks where
36105         we did not process all the statements and blocks with no statements.
36106
36107 2015-02-16  Jakub Jelinek  <jakub@redhat.com>
36108             James Greenhalgh  <james.greenhalgh@arm.com>
36109
36110         PR ipa/64963
36111         * cgraphclones.c (cgraph_node::create_virtual_clone): Copy
36112         section if not linkonce.  Fix up formatting.
36113         (cgraph_node::create_version_clone_with_body): Copy section.
36114         * trans-mem.c (ipa_tm_create_version): Likewise.
36115
36116 2015-02-16  Richard Biener  <rguenther@suse.de>
36117
36118         PR tree-optimization/65077
36119         * tree-ssa-structalias.c (get_constraint_for_1): Handle
36120         IMAGPART_EXPR, REALPART_EXPR and BIT_FIELD_REF.
36121         (find_func_aliases): Allow float values to carry pointers again.
36122
36123 2015-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
36124
36125         * doc/install.texi (Specific): Reorder targets list to put
36126         aarch64 in alphabetical order.  Add a link to aarch64*-*-*
36127         from the top menu.
36128
36129 2015-02-16  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
36130             David Edelsohn  <dje.gcc@gmail.com>
36131
36132         PR target/65058
36133         * config/rs6000/rs6000.c (rs6000_output_symbol_ref): Append storage
36134         mapping class to external variable or function reference.
36135         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Do not append storage
36136         mapping class.
36137
36138 2015-02-16  David Eelsohn  <dje.gcc@gmail.com>
36139
36140         PR target/53348
36141         * config/rs6000/rs6000.c (rs6000_declare_alias): Only use
36142         ASM_WEAKEN_DECL if defined.
36143
36144 2015-02-16  Richard Biener  <rguenther@suse.de>
36145
36146         PR lto/65015
36147         * varasm.c (default_file_start): For LTO produced units
36148         emit <artificial> as file directive.
36149
36150 2015-02-16  Richard Biener  <rguenther@suse.de>
36151
36152         PR tree-optimization/63593
36153         * tree-predcom.c (execute_pred_commoning_chain): Delay removing
36154         stmts and releasing SSA names until...
36155         (execute_pred_commoning): ... after processing all chains.
36156
36157 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
36158
36159         PR ipa/65059
36160         * ipa-comdats.c (ipa_comdats): Do not categorize thunks to
36161         external functions.
36162
36163 2015-02-15  Sandra Loosemore  <sandra@codesourcery.com>
36164
36165         * doc/bugreport.texi: Adjust section titles throughout the file
36166         to use "Title Case".
36167         * doc/extend.texi: Likewise.
36168         * doc/gcov.texi: Likewise.
36169         * doc/implement-c.texi: Likewise.
36170         * doc/implement-cxx.texi: Likewise.
36171         * doc/invoke.texi: Likewise.
36172         * doc/objc.texi: Likewise.
36173         * doc/standards.texi: Likewise.
36174         * doc/trouble.texi: Likewise.
36175
36176 2015-02-15  Jan Hubicka  <hubicka@ucw.cz>
36177
36178         * cgraph.h (symtab_node::has_aliases_p): Simplify.
36179         (symtab_node::call_for_symbol_and_aliases): Use has_aliases_p
36180         * tree.c (lookup_binfo_at_offset): Make static.
36181         (get_binfo_at_offset): Do not shadow offset; add explanatory
36182         comment.
36183
36184 2015-02-15  John David Anglin  <danglin@gcc.gnu.org>
36185
36186         * config/pa/pa.c (pa_secondary_reload): Request a secondary reload
36187         for all floading point loads and stores except those using a register
36188         index address.
36189         * config/pa/pa.md: Add new patterns to load a lo_sum DLT operand
36190         to a register.
36191
36192 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
36193
36194         * ipa-inline-analysis.c (growth_data): Add uninlinable field.
36195         (do_estimate_growth_1): Record if any uninlinable edge was seen.
36196         (estimate_growth): Handle uninlinable edges correctly.
36197         (check_callers): New.
36198         (growth_likely_positive): Handle aliases correctly.
36199
36200 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
36201
36202         * ipa-chkp.c: Use iterate_direct_aliases.
36203         * symtab.c (resolution_used_from_other_file_p): Move inline.
36204         (symtab_node::create_reference): Fix formating.
36205         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
36206         (symtab_node::iterate_reference): Move inline.
36207         (symtab_node::iterate_referring): Move inline.
36208         (symtab_node::iterate_direct_aliases): Move inline.
36209         (symtab_node::used_from_object_file_p_worker): Inline into ...
36210         (symtab_node::used_from_object_file_p): ... this one; move inline.
36211         (symtab_node::call_for_symbol_and_aliases): Move inline;
36212         use iterate_direct_aliases.
36213         (symtab_node::call_for_symbol_and_aliases_1): New method.
36214         (cgraph_node::call_for_symbol_and_aliases): Move inline;
36215         use iterate_direct_aliases.
36216         (cgraph_node::call_for_symbol_and_aliases_1): New method.
36217         (varpool_node::call_for_node_and_aliases): Rename to ...
36218         (varpool_node::call_for_symbol_and_aliases): ... this one; Move inline;
36219         use iterate_direct_aliases.
36220         (varpool_node::call_for_symbol_and_aliases_1): New method.
36221         * ipa.c (ipa_single_use): Use iterate_direct_aliases.
36222         (ipa_discover_readonly_nonaddressable_var): Update.
36223         * ipa-devirt.c: Fix formating.
36224         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_and_refs_p):
36225         Move inline.
36226         (cgraph_node::call_for_symbol_and_aliases): Move inline.
36227         (cgraph_node::call_for_symbol_and_aliases_1): New function..
36228         * cgraph.h (used_from_object_file_p_worker): Remove.
36229         (resolution_used_from_other_file_p): Move inline.
36230         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
36231         (symtab_node::iterate_reference): Move inline.
36232         (symtab_node::iterate_referring): Move inline.
36233         (symtab_node::iterate_direct_aliases): Move inline.
36234         (symtab_node::used_from_object_file_p_worker): Inline into ...
36235         (symtab_node::used_from_object_file_p): Move inline.
36236         * tree-emutls.c (ipa_lower_emutls): Update.
36237         * varpool.c (varpool_node::call_for_symbol_and_aliases_1): New method.
36238         (varpool_node::call_for_node_and_aliases): Remove.
36239
36240 2015-02-14  Jakub Jelinek  <jakub@redhat.com>
36241
36242         PR tree-optimization/62209
36243         * tree-ssa-reassoc.c (update_range_test): If stmt is a PHI and
36244         op == range->exp, insert seq and gimplified code after labels
36245         instead of after the phi.
36246
36247 2015-02-13  Jeff Law  <law@redhat.com>
36248
36249         PR bootstrap/65060
36250         Revert my change for tree-optimization/64823.
36251
36252 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
36253
36254         PR tree-optimization/65053
36255         * tree-ssa-phiopt.c (value_replacement): When moving assign before
36256         cond, either reset VR on lhs or set it to phi result VR.
36257
36258 2015-02-13  Jeff Law  <law@redhat.com>
36259
36260         PR tree-optimization/64823
36261         * tree-vrp.c (identify_jump_threads): Handle blocks with no statements.
36262         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
36263         threading through blocks with PHIs, but no statements.
36264         (thread_through_normal_block): Distinguish between blocks where
36265         we did not process all the statements and blocks with no statements.
36266
36267         PR rtl-optimization/47477
36268         * match.pd (convert (plus/minus (convert @0) (convert @1): New
36269         simplifier to narrow arithmetic.
36270
36271 2015-02-13  Jan Hubicka  <hubicka@ucw.cz>
36272
36273         PR ipa/65028
36274         * ipa-prop.c (update_indirect_edges_after_inlining): Do not drop
36275         polymorphic call info when type is not known to be preserved.
36276
36277 2015-02-13  Maritn Jambor  <mjambor@suse.cz>
36278
36279         PR ipa/65028
36280         * ipa-inline-transform.c (mark_all_inlined_calls_cdtor): New function.
36281         (inline_call): Use it.
36282
36283 2015-02-13  Thomas Schwinge  <thomas@codesourcery.com>
36284
36285         * config/nvptx/offload.h (ACCEL_COMPILER_acc_device): Define to
36286         GOMP_DEVICE_NVIDIA_PTX.
36287
36288 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
36289
36290         PR ipa/65034
36291         * stmt.c (emit_case_nodes): Use void_type_node instead of
36292         NULL_TREE as LABEL_DECL type.
36293
36294 2015-02-13  John David Anglin  <danglin@gcc.gnu.org>
36295
36296         * config/pa/constraints.md: Change "Q" and "T" constraints to memory
36297         constraints.
36298         * config/pa/pa.c (pa_cannot_force_const_mem): Don't allow constant
36299         symbolic references to data to be forced to constant memory on the
36300         SOM target.
36301
36302 2015-02-13  Ilya Enkovich  <ilya.enkovich@intel.com>
36303
36304         PR tree-optimization/65002
36305         * tree-cfg.c (pass_data_fixup_cfg): Don't update
36306         SSA on start.
36307         * tree-sra.c (some_callers_have_no_vuse_p): New.
36308         (ipa_early_sra): Reject functions whose callers
36309         assume function is read only.
36310
36311 2015-02-13  Richard Biener  <rguenther@suse.de>
36312
36313         PR lto/65015
36314         * dwarf2out.c (dwarf2out_finish): Use <artificial> as DW_AT_name
36315         for LTO produced CUs.
36316
36317 2015-02-13  Bin Cheng  <bin.cheng@arm.com>
36318
36319         PR tree-optimization/64705
36320         * tree-ssa-loop-niter.h (expand_simple_operations): New parameter.
36321         * tree-ssa-loop-niter.c (expand_simple_operations): New parameter.
36322         * tree-ssa-loop-ivopts.c (extract_single_var_from_expr): New.
36323         (find_bivs, find_givs_in_stmt_scev): Pass new argument to
36324         expand_simple_operations.
36325
36326 2015-02-13  H.J. Lu  <hongjiu.lu@intel.com>
36327             Richard Henderson  <rth@redhat.com>
36328
36329         PR rtl/32219
36330         * cgraphunit.c (cgraph_node::finalize_function): Set definition
36331         before notice_global_symbol.
36332         (varpool_node::finalize_decl): Likewise.
36333         * varasm.c (default_binds_local_p_2): Rename from
36334         default_binds_local_p_1, add weak_dominate argument.  Use direct
36335         returns instead of assigning to local variable.  Unify varpool and
36336         cgraph paths via symtab_node.  Reject undef weak variables before
36337         testing visibility.  Reorder tests for simplicity.
36338         (default_binds_local_p): Use default_binds_local_p_2.
36339         (default_binds_local_p_1): Likewise.
36340         (decl_binds_to_current_def_p): Unify varpool and cgraph paths
36341         via symtab_node.
36342         (default_elf_asm_output_external): Emit visibility when specified.
36343
36344 2015-02-13  Alan Modra  <amodra@gmail.com>
36345
36346         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Fix typo in
36347         code setting up r11 for out-of-line fp restore.
36348
36349 2015-02-13  Eric Botcazou  <ebotcazou@adacore.com>
36350
36351         * config/visium/visium.opt (msv-mode): Add RejectNegative and Report.
36352         (muser-mode): Likewise.
36353
36354 2015-02-13  Alan Modra  <amodra@gmail.com>
36355
36356         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Use addsi3_carry
36357         or adddi3_carry when restoring frame_reg_rtx from r0 after restvr.
36358
36359 2015-02-12  David Howells  <dhowells@redhat.com>
36360
36361         * tree-sra.c (dump_dereferences_table): Avoid -Wformat-security
36362         warning.
36363         * tree-ssa-uninit.c (dump_predicates): Likewise.
36364         * opts.c (print_filtered_help): Likewise.
36365
36366 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
36367
36368         * dwarf2out.c (output_die): Use "%s", name instead of name to
36369         avoid -Wformat-security warning.
36370
36371         * dwarf2asm.c (dw2_asm_output_vms_delta): Only define
36372         if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
36373         * dwarf2out.c (output_die): Use dw2_asm_output_vms_delta
36374         only if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
36375
36376 2015-02-12  Jason Merrill  <jason@redhat.com>
36377
36378         * common.opt (-flifetime-dse): New.
36379
36380 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
36381
36382         PR sanitizer/65019
36383         * ubsan.c (ubsan_expand_objsize_ifn): Always return true.
36384
36385         PR tree-optimization/65014
36386         * fold-const.c (fold_binary_loc): When creating {L,R}ROTATE_EXPR,
36387         use original second operand of arg0 or arg1 instead of
36388         that adjusted by STRIP_NOPS.
36389
36390 2015-02-11  Jeff Law  <law@redhat.com>
36391
36392         PR target/63347
36393         * haifa-sched.c (prune_ready_list): If we have a SCHED_GROUP_P insn
36394         that needs to be queued, just queue it for a single cycle.
36395
36396 2015-02-11  Jan Hubicka  <hubicka@ucw.cz>
36397
36398         * ipa.c (symbol_table::remove_unreachable_nodes): Avoid releasing
36399         bodies of thunks; comment on why.
36400         * symtab.c (symtab_node::get_partitioning_class): Aliases of extern
36401         symbols are extern.
36402
36403 2015-02-11  Richard Henderson  <rth@redhat.com>
36404
36405         PR sanitize/65000
36406         * tree-eh.c (mark_reachable_handlers): Mark source and destination
36407         regions of __builtin_eh_copy_values.
36408
36409 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
36410
36411         PR middle-end/65003
36412         * varasm.c (place_block_symbol): Assert that DECL_RTL of the
36413         ultimate alias is MEM with SYMBOL_REF satisfying
36414         SYMBOL_REF_HAS_BLOCK_INFO_P as its operand.  Don't pass the MEM
36415         to place_block_symbol, but instead pass the SYMBOL_REF operand of it.
36416
36417 2015-02-11  Thomas Schwinge  <thomas@codesourcery.com>
36418
36419         * config/nvptx/mkoffload.c: Include "diagnostic.h" instead of
36420         "diagnostic-core.h".
36421         (main): Initialize progname, and call diagnostic_initialize.
36422
36423         * config/nvptx/mkoffload.c (process): Refer to __OFFLOAD_TABLE__
36424         instead of __OPENMP_TARGET__.
36425
36426         * config/nvptx/mkoffload.c: Include "gomp-constants.h".
36427         (process): Use its GOMP_DEVICE_NVIDIA_PTX instead of (wrongly)
36428         hard-coding PTX_ID.
36429
36430 2015-02-11  H.J. Lu  <hongjiu.lu@intel.com>
36431
36432         * doc/sourcebuild.texi (pie_enabled): Document.
36433
36434 2015-02-11  Martin Liska  <mliska@suse.cz>
36435
36436         PR ipa/64813
36437         * cgraphunit.c (cgraph_node::expand_thunk): Do not create
36438         a return value for call to a function that is noreturn.
36439
36440 2015-02-11  Richard Biener  <rguenther@suse.de>
36441
36442         PR lto/65015
36443         * dwarf2out.c (gen_producer_string): Drop -fltrans-output-list
36444         and -fresolution.
36445
36446 2015-02-11  Andrew Pinski  <apinski@cavium.com>
36447
36448         PR target/64893
36449         * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
36450         Change the first argument type to size_type_node and add another
36451         size_type_node.
36452         (aarch64_simd_expand_builtin): Handle the new argument to
36453         AARCH64_SIMD_BUILTIN_LANE_CHECK and don't ICE but rather
36454         print an out when the first two arguments are not
36455         nonzero integer constants.
36456         * config/aarch64/arm_neon.h (__AARCH64_LANE_CHECK):
36457         Pass the sizeof directly to __builtin_aarch64_im_lane_boundsi.
36458
36459 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
36460
36461         PR target/61925
36462         * config/i386/i386.c (ix86_reset_to_default_globals): Removed.
36463         (ix86_reset_previous_fndecl): Restore it here, unconditionally.
36464         (ix86_set_current_function): Rewritten.
36465         (ix86_add_new_builtins): Temporarily clear current_target_pragma
36466         when creating builtin fndecls.
36467
36468 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
36469
36470         PR ipa/65005
36471         * ipa-visibility.c (cgraph_node::non_local_p): Turn into static
36472         function.
36473         * symtab.c (symtab_node::verify_base): Remove check that non-definitions
36474         have no comdat group.
36475         * lto-cgraph.c (lto_output_node): Always output thunk and alias info.
36476         (lto_output_varpool_node): Always output alias info.
36477         (output_refs): Output refs of boundary aliases, too.
36478         (compute_ltrans_boundary): Add alias and thunk target into boundaries.
36479         (output_symtab): Output call eges in thunks in boundary.
36480         (get_alias_symbol): Remove.
36481         (input_node, input_varpool_node): Do not special case weakrefs.
36482         * ipa.c (symbol_table::remove_unreachable_nodes): Do not remove
36483         alias and thunks targets in the boundary; do not take removed symbols
36484         from their comdat groups.
36485         * cgraph.c (cgraph_node::local_info): Look through aliases and thunks.
36486         (cgraph_node::global_info): Remove.
36487         (cgraph_node::rtl_info): Look through aliases and thunks.
36488         * cgrpah.h (global_info): Remove.
36489         (non_local_p): Remove.
36490
36491 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
36492             Sandra Loosemore  <sandra@codesourcery.com>
36493
36494         * doc/invoke.texi (x86 Options [-masm=dialect]): Add cross-references
36495         to inline asm.  List dialects in proper order.
36496
36497 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
36498             Sandra Loosemore  <sandra@codesourcery.com>
36499
36500         * doc/extend.texi (Loop-Specific Pragmas): Fix grammar error.
36501
36502 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
36503
36504         * doc/extend.texi (Symbol-Renaming Pragmas): Restore (slightly
36505         modified) reference to Solaris.
36506
36507 2015-02-10  Sandra Loosemore  <sandra@codesourcery.com>
36508
36509         * doc/extend.texi (Extended Asm): Fix typos.
36510
36511 2015-02-10  Jakub Jelinek  <jakub@redhat.com>
36512
36513         PR sanitizer/65004
36514         * ubsan.c (ubsan_expand_vptr_ifn): Always return true.
36515
36516 2015-02-10  Oleg Endo  <olegendo@gcc.gnu.org>
36517
36518         PR target/64661
36519         * config/sh/sh-protos.h (TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
36520         TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
36521         TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): Add parentheses.
36522         * config/sh/constraints.md (Ara, Add): New constraints.
36523         * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1): New
36524         predicates.
36525         (atomic_compare_and_swap<mode>, atomic_exchange<mode>): Use
36526         atomic_mem_operand_0.  Don't use force_reg on the memory address.
36527         (atomic_compare_and_swapsi_hard): Use atomic_mem_operand_0 predicate and
36528         Sra constraint.  Convert to insn_and_split.  Add workaround for
36529         PR 64974.
36530         (atomic_compare_and_swap<mode>_hard): Copy to
36531         atomic_compare_and_swap<mode>_hard_1.  Convert to insn_and_split.
36532         Use atomic_mem_operand_0 predicate.
36533         (atomic_compare_and_swap<mode>_soft_gusa,
36534         atomic_exchange<mode>_soft_gusa): Use atomic_mem_operand_0 predicate and
36535         AraAdd constraints.
36536         (atomic_compare_and_swap<mode>_soft_tcb,
36537         atomic_compare_and_swap<mode>_soft_imask,
36538         atomic_exchange<mode>_soft_tcb, atomic_exchange<mode>_soft_imask): Use
36539         atomic_mem_operand_0 predicate and SraSdd constraints.
36540         (atomic_exchangesi_hard) Use atomic_mem_operand_0 predicate and Sra
36541         constraint.
36542         (atomic_exchange<mode>_hard): Copy to atomic_exchange<mode>_hard_1.
36543         Convert to insn_and_split.  Use atomic_mem_operand_0 predicate.
36544         (atomic_fetch_<fetchop_name><mode>, atomic_fetch_nand<mode>,
36545         atomic_<fetchop_name>_fetch<mode>): Use atomic_mem_operand_1.  Don't use
36546         force_reg on the memory address.
36547         (atomic_fetch_<fetchop_name>si_hard, atomic_fetch_notsi_hard,
36548         atomic_fetch_nandsi_hard, atomic_<fetchop_name>_fetchsi_hard,
36549         atomic_not_fetchsi_hard, atomic_nand_fetchsi_hard): Use
36550         atomic_mem_operand_1 predicate and Sra constraint.
36551         (atomic_fetch_<fetchop_name><mode>_hard): Copy to
36552         atomic_fetch_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
36553         Use atomic_mem_operand_1 predicate.
36554         (atomic_<fetchop_name><mode>_hard): Copy to
36555         atomic_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
36556         Use atomic_mem_operand_1 predicate.
36557         (atomic_fetch_nand<mode>_hard): Copy to atomic_fetch_nand<mode>_hard_1.
36558         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
36559         (atomic_nand<mode>_hard): Copy to atomic_nand<mode>_hard_1.  Convert to
36560         insn_and_split.  Use atomic_mem_operand_1 predicate.
36561         (atomic_<fetchop_name>_fetch<mode>_hard): Copy to
36562         atomic_<fetchop_name>_fetch<mode>_hard_1.  Convert to insn_and_split.
36563         Use atomic_mem_operand_1 predicate.
36564         (atomic_nand_fetch<mode>_hard): Copy to atomic_nand_fetch<mode>_hard_1.
36565         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
36566         (atomic_fetch_not<mode>_hard, atomic_not_fetch<mode>_hard): Replace mems
36567         in generated insn with original mem operand before emitting the insn.
36568         (atomic_fetch_<fetchop_name><mode>_soft_gusa,
36569         atomic_fetch_not<mode>_soft_gusa, atomic_fetch_nand<mode>_soft_gusa,
36570         atomic_<fetchop_name>_fetch<mode>_soft_gusa,
36571         atomic_not_fetch<mode>_soft_gusa, atomic_nand_fetch<mode>_soft_gusa):
36572         Use atomic_mem_operand_1 predicate and AraAdd constraints.
36573         (atomic_fetch_<fetchop_name><mode>_soft_tcb,
36574         atomic_<fetchop_name><mode>_soft_tcb, atomic_fetch_not<mode>_soft_tcb,
36575         atomic_not<mode>_soft_tcb, atomic_fetch_<fetchop_name><mode>_soft_imask,
36576         atomic_fetch_not<mode>_soft_imask, atomic_fetch_nand<mode>_soft_tcb,
36577         atomic_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask,
36578         atomic_<fetchop_name>_fetch<mode>_soft_tcb,
36579         atomic_not_fetch<mode>_soft_tcb,
36580         atomic_<fetchop_name>_fetch<mode>_soft_imask,
36581         atomic_not_fetch<mode>_soft_imask, atomic_nand_fetch<mode>,
36582         atomic_nand_fetch<mode>_soft_tcb, atomic_nand_fetch<mode>_soft_imask):
36583         Use atomic_mem_operand_1 predicate and SraSdd constraints.
36584
36585 2015-02-10  Uros Bizjak  <ubizjak@gmail.com>
36586
36587         * config/alpha/alpha.md (reload_out<mode>_aligned): Make operands 2
36588         and 3 earlyclobber operands.
36589
36590 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
36591
36592         * common.opt (fstack-reuse): Mark as optimization.
36593
36594 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
36595
36596         PR ipa/64982
36597         * cgraphunit.c (cgraph_node::expand_thunk): Look for stdarg thunks.
36598
36599 2015-02-10  Trevor Saunders  <tsaunders@mozilla.com>
36600
36601         PR tree-optimization/64326
36602         * cfghooks.c (make_forwarder_block): Cap frequency of created block.
36603
36604 2015-02-10  Rainer Emrich  <rainer@emrich-ebersheim.de>
36605
36606         PR gcov-profile/61889
36607         * gcov-tool.c: Remove wrong #if !defined(_WIN32)
36608
36609 2015-02-10  Richard Biener  <rguenther@suse.de>
36610
36611         PR tree-optimization/64995
36612         * tree-ssa-sccvn.c (set_ssa_val_to): Assert that the
36613         value we use is final.
36614         (visit_reference_op_store): Always valueize op.
36615         (visit_use): Properly valueize vuses.
36616
36617 2015-02-10  Richard Biener  <rguenther@suse.de>
36618
36619         PR tree-optimization/64909
36620         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Properly
36621         pass a scalar-stmt count estimate to the cost model.
36622         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Likewise.
36623
36624 2015-02-10  Alexander Monakov  <amonakov@ispras.ru>
36625
36626         * doc/invoke.texi (-fvar-tracking-assignments): Clarify that VTA is
36627         enabled by default together with var-tracking.
36628
36629 2015-02-10  Nick Clifton  <nickc@redhat.com>
36630
36631         * config/rl78/rl78.c: Remove DIV attribute code accidentally
36632         included in previous rl78 commit.
36633
36634 2015-02-10  Richard Biener  <rguenther@suse.de>
36635
36636         * tree-streamer.h (streamer_read_tree_bitfields): Adjust.
36637         * tree-streamer-in.c (streamer_read_tree_bitfields): Do not
36638         return the bitpack.
36639
36640 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
36641
36642         PR gcov-profile/61889
36643         * config.in: regenerate.
36644         * configure.in: Likewise.
36645         * configure.ac: Check for ftw.h.
36646         * gcov-tool.c: Check for ftw.h before using nftw.
36647
36648 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
36649
36650         PR lto/64076
36651         * ipa-visibility.c (update_visibility_by_resolution_info): Only
36652         assert when not in lto mode.
36653
36654 2015-02-09  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
36655
36656         * ira-color.c (setup_left_conflict_sizes_p): Simplify
36657         initialization/assignment of conflict_size.
36658
36659 2015-02-09  Jan Hubicka  <hubicka@ucw.cz>
36660
36661         PR ipa/64978
36662         * ipa-cp.c (gather_caller_stats): Skip thunks.
36663         (propagate_constants_topo): Skip aliases.
36664
36665 2015-02-09  Kaz Kojima  <kkojima@gcc.gnu.org>
36666
36667         PR target/64761
36668         * config/sh/sh.c (sh_option_override): Don't change
36669         -freorder-blocks-and-partition to -freorder-blocks even when
36670         unwinding is enabled.
36671         (sh_can_follow_jump): Return false if the followee jump is
36672         a crossing jump when -freorder-blocks-and-partition is specified.
36673         * config/sh/sh.md (*jump_compact_crossing): New insn.
36674
36675 2015-02-09  Joern Rennecke  <joern.rennecke@embecosm.com>
36676             Kaz Kojima  <kkojima@gcc.gnu.org>
36677
36678         PR target/64761
36679         * config/sh/sh-protos.h (sh_can_redirect_branch): Don't declare.
36680         * config/sh/sh.c (TARGET_CAN_FOLLOW_JUMP): Redefine.
36681         (sh_can_redirect_branch): Rename to ...
36682         (sh_can_follow_jump): ... this.  Constify argument types.
36683         * config/sh/sh.h (MD_CAN_REDIRECT_BRANCH): Don't define.
36684         * doc/tm.texi.in (MD_CAN_REDIRECT_BRANCH): Remove documentation.
36685         * reorg.c (steal_delay_list_from_target): Use targetm.can_follow_jump.
36686         * doc/tm.texi: Regenerate.
36687
36688 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
36689
36690         PR sanitizer/64981
36691         * builtins.c (expand_builtin): Call targetm.expand_builtin
36692         for BUILT_IN_MD builtins regardless of asan_intercepted_p.
36693
36694 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
36695
36696         PR ipa/61548
36697         * tree-emutls.c (ipa_lower_emutls): Avoid duplicates in TLS_VARS.
36698
36699 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
36700
36701         PR ipa/63566
36702         * ipa-icf.c (set_local): New function.
36703         (sem_function::merge): Use it.
36704
36705 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
36706
36707         * ipa-devirt.c (odr_types_equivalent_p): Fix formating.
36708         (add_type_duplicate): Fix comparison of BINFOs.
36709
36710 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
36711
36712         * ipa-polymorphic-call.c (ipa_polymorphic_call_context): Avoid ICE
36713         on getting VOID pointer.
36714
36715 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
36716
36717         PR target/64979
36718         * tree-stdarg.c (pass_stdarg::execute): Scan phi node args for
36719         va_list escapes.
36720
36721 2015-02-09  Richard Biener  <rguenther@suse.de>
36722
36723         * genmatch.c (replace_id): Copy expr_type.
36724
36725 2015-02-09  Richard Biener  <rguenther@suse.de>
36726
36727         * tree-streamer.h (streamer_pack_tree_bitfields): Remove.
36728         (streamer_write_tree_bitfields): Declare.
36729         * tree-streamer-in.c (unpack_ts_base_value_fields): Inline,
36730         properly unpack padding.
36731         (unpack_value_fields): Inline ...
36732         (streamer_read_tree_bitfields): ... here.
36733         * tree-streamer-out.c (pack_ts_base_value_fields): Inline
36734         and properly add padding bits.
36735         (streamer_pack_tree_bitfields): Fold into ...
36736         (streamer_write_tree_bitfields): ... this new function,
36737         exposing the bitpack object.
36738         * lto-streamer-out.c (lto_write_tree_1): Call
36739         streamer_write_tree_bitfields.
36740
36741 2015-02-09  Richard Biener  <rguenther@suse.de>
36742
36743         PR tree-optimization/54000
36744         * tree-ssa-looo-ivopts.c: Include tree-vectorizer.h.
36745         (struct ivopts_data): Add loop_loc member.
36746         (tree_ssa_iv_optimize_loop): Dump loop location.
36747         (create_new_ivs): Likewise, also dump number of IVs generated.
36748
36749 2015-02-09  Martin Liska  <mliska@suse.cz>
36750
36751         * ipa-icf.c (sem_item_optimizer::register_hooks): Register hooks
36752         just if not yet registered.
36753         (ipa_icf_generate_summary): Register callgraph hooks.
36754
36755 2015-02-08  Andrew Pinski  <apinski@cavium.com>
36756
36757         * config/aarch64/aarch64.c (gty_dummy): Delete.
36758
36759 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
36760
36761         PR ipa/63566
36762         * ipa-visibility.c (cgraph_node::non_local_p): Accept aliases.
36763         (cgraph_node::local_p): Remove thunk related FIXME.
36764
36765 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
36766
36767         PR ipa/63566
36768         * i386.c (ix86_function_regparm): Look through aliases to see if callee
36769         is local and optimized.
36770         (ix86_function_sseregparm): Likewise; also use target's SSE math
36771         settings; error out instead of silently generating wrong code
36772         on mismatches.
36773         (init_cumulative_args): Look through aliases.
36774
36775 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
36776
36777         PR ipa/63566
36778         * ipa-split.c (execute_split_functions): Split if function has aliases.
36779
36780 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
36781
36782         PR ipa/63566
36783         * cgraphunit.c (cgraph_node::analyze): Be sure target of thunk is
36784         aliases before trying to expand it.
36785         (cgraph_node::expand_thunk): Fix formating.
36786
36787 2015-02-07  Sandra Loosemore  <sandra@codesourcery.com>
36788
36789         * doc/extend.texi (Function Attributes [naked]): Copy-edit.
36790         (Using Assembly Language with C): Expand introduction.
36791         (Basic Asm): Copy-edit.  Add more information about uses of
36792         basic asm.
36793         (Extended Asm): Copy-edit.  Document new escape syntax and
36794         %l[label] syntax.
36795         (Global Reg Vars): Copy-edit.
36796         (Local Reg Vars): Likewise.
36797
36798 2015-02-06  David Edelsohn  <dje.gcc@gmail.com>
36799
36800         PR debug/2714
36801         PR bootstrap/64256
36802         * xcoffout.h (DBX_CONTIN_LENGTH): Define as 16384.
36803         (DBX_CONTIN_CHAR): Define.
36804
36805 2015-02-06  Sebastian Pop  <s.pop@samsung.com>
36806             Brian Rzycki  <b.rzycki@samsung.com>
36807
36808         PR tree-optimization/64878
36809         * tree-ssa-threadedge.c: Include tree-ssa-loop.h.
36810         (fsm_find_control_statement_thread_paths): Add parameter seen_loop_phi.
36811         Stop recursion at loop phi nodes after having visited a loop phi node.
36812
36813 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
36814
36815         * toplev.c (process_options): Change flag_ipa_ra before creating
36816         optimization_{default,current}_node.
36817
36818         PR ipa/64896
36819         * cgraphunit.c (cgraph_node::expand_thunk): If
36820         restype is not is_gimple_reg_type nor the thunk_fndecl
36821         returns aggregate_value_p, set restmp to a temporary variable
36822         instead of resdecl.
36823
36824 2015-02-06  Vladimir Makarov  <vmakarov@redhat.com>
36825
36826         * lra.c (lra_emit_add): Fix a typo in using disp instead of base.
36827
36828 2015-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
36829
36830         PR target/64205
36831         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
36832         add a general secondary reload handler for SDmode, unless we have
36833         both read/write support for SDmode.
36834
36835 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
36836
36837         PR middle-end/64937
36838         * dwarf2out.c (set_block_abstract_flags, set_decl_abstract_flags):
36839         Replace setting argument with abstract_vec, always set BLOCK_ABSTRACT
36840         or DECL_ABSTRACT_P flags to 1 rather than to setting, and if it wasn't
36841         1 before, push it to abstract_vec.
36842         (dwarf2out_abstract_function): Adjust caller.  Don't call
36843         set_decl_abstract_flags second time, instead clear BLOCK_ABSTRACT or
36844         DECL_ABSTRACT_P flags for all abstract_vec elts.
36845
36846 2015-02-06  Renlin Li  <renlin.li@arm.com>
36847
36848         * tree-ssa-forwprop.c (execute): Keep location info while rewrite
36849         complex gimple.
36850         * tree-ssa.c (execute_update_addresses_taken): Likewise.
36851
36852 2015-02-06  Jeff Law  <law@redhat.com>
36853
36854         PR target/64889
36855         * config/h8300/h8300.c (push): New argument "in_prologue".
36856         Pass "in_prologue" along to "F".
36857         (h8300_push_pop): Corresponding changes.
36858         (h8300_expand_prologue): Likewise.
36859         (h8300_swap_into_er6): Likewise.  Do not set RTX_FRAME_RELATED_P.
36860
36861 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
36862
36863         PR rtl-optimization/64957
36864         PR debug/64817
36865         * simplify-rtx.c (simplify_binary_operation_1): Use ~cval for
36866         IOR rather than for AND.
36867
36868 2015-02-06  Eric Botcazou  <ebotcazou@adacore.com>
36869
36870         PR target/62631
36871         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Use the mininum of costs
36872         of shift-add and (add + shift) operations.  Rename local variable.
36873
36874 2015-02-05  Jeff Law  <law@redhat.com>
36875
36876         PR target/17306
36877         * config/h8300/constraints.md (U): Correctly dectect
36878         "eightbit_data" memory addresses.
36879         * config/h8300/h8300.c (eightbit_constant_address_p): Also
36880         handle (const (plus (symbol_ref (x)))) where x is declared
36881         as an 8-bit data memory address.
36882         * config/h8300/h8300.md (call, call_value): Correctly detect
36883         "funcvec" functions.
36884
36885         PR target/43264
36886         * config/h8300/h8300.c (get_shift_alg): Fix ASHIFTRT by
36887         24 to 28 bits for the H8/300.
36888
36889 2015-02-06  Alan Modra  <amodra@gmail.com>
36890
36891         PR target/64876
36892         * config/rs6000/rs6000.c (chain_already_loaded): New function.
36893         (rs6000_call_aix): Use it.
36894
36895 2015-02-05  Jan Hubicka <hubicka@ucw.cz>
36896
36897         * ipa-cp.c (ipa_value_from_jfunc, ipa_context_from_jfunc): Add bounds
36898         check.
36899
36900 2015-02-05  Joern Rennecke  <joern.rennecke@embecosm.com>
36901
36902         * config/h8300/constraints.md ("U" constraint): Use strict
36903         variant of REG_OK_FOR_BASE_P after reload has started.
36904
36905 2015-02-04  Mantas Mikaitis  <mantas.mikaitis@arm.com>
36906
36907         * config/arm/arm.h (TARGET_NEON_FP): Removed conditional definition,
36908         define to zero if !TARGET_NEON.
36909         (TARGET_ARM_FP): Added !TARGET_SOFT_FLOAT into conditional definition.
36910
36911 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
36912             Trevor Saunders  <tsaunders@mozilla.com>
36913
36914         PR ipa/61548
36915         * tree-emultls.c (new_emutls_decl): Resolve alias after creating it.
36916
36917 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
36918
36919         PR ipa/61548
36920         * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering issue
36921         when removing varpool nodes.
36922
36923 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
36924
36925         PR ipa/61548
36926         * varpool.c (varpool_node::remove): Fix order of variables.
36927
36928 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
36929
36930         PR ipa/64686
36931         * ipa-inline.c (inline_small_functions): Fix ordering issue between
36932         speculation resolution and key updates.
36933
36934 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
36935
36936         * ipa-prop.c (update_indirect_edges_after_inlining): By more careful
36937         about not letting any speculative edges unupdated.
36938
36939 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
36940
36941         PR gcov/64123
36942         * gcov-io.c (gcov_var): Export.
36943
36944 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
36945
36946         PR middle-end/64922
36947         * ipa-prop.c (update_indirect_edges_after_inlining): Correctly update
36948         edges that become speculative.
36949
36950 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
36951
36952         * dwarf2out.c (is_fortran): Also return true for DW_LANG_Fortran03
36953         or DW_LANG_Fortran08.
36954         (lower_bound_default): Return 1 for DW_LANG_Fortran03 or
36955         DW_LANG_Fortran08.
36956         (gen_compile_unit_die): Handle "GNU Fortran2003" and
36957         "GNU Fortran2008" language strings.
36958         * dbxout.c (get_lang_number): Use lang_GNU_Fortran.
36959         * langhooks.h (lang_GNU_Fortran): New prototype.
36960         * langhooks.c (lang_GNU_Fortran): New function.
36961         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
36962         lang_GNU_Fortran.
36963
36964 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
36965
36966         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P): Fix off-by-one error.
36967         (RTX_OK_FOR_OLO10_P): Likewise.
36968
36969 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
36970
36971         * tree-ssa-loop-ivopts.c (get_address_cost): Use right mode for offset.
36972
36973 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
36974
36975         PR middle-end/64922
36976         * gimple.c: Include gimple-ssa.h.
36977         (maybe_remove_unused_call_args): New function.
36978         * gimple.h (maybe_remove_unused_call_args): Declare.
36979         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
36980         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
36981         * gimple-fold.c (gimple_fold_call): Likewise.
36982
36983 2015-02-04  H.J. Lu  <hongjiu.lu@intel.com>
36984
36985         PR rtl-optimization/64905
36986         * lra-eliminations.c (setup_can_eliminate): Clear hard frame
36987         pointer alignment if it isn't needed.
36988
36989 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
36990
36991         * config/aarch64/aarch64-cores.def: Add cortex-a72 and
36992         cortex-a72.cortex-a53.
36993         * config/aarch64/aarch64-tune.md: Regenerate.
36994         * doc/invoke.texi (AArch64 Options/-mtune): Add "cortex-a72".
36995
36996 2015-02-04  Nick Clifton  <nickc@redhat.com>
36997
36998         * config/rl78/rl78.c (rl78_note_reg_set): Note the use of REGs
36999         inside a MEM.
37000
37001 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
37002
37003         * builtins.def (DEF_BUILTIN_CHKP): Define if not defined.
37004         (DEF_LIB_BUILTIN_CHKP, DEF_EXT_LIB_BUILTIN_CHKP): Redefine.
37005         (DEF_CHKP_BUILTIN): Define using DEF_BUILTIN_CHKP instead
37006         of DEF_BUILTIN.
37007         (BUILT_IN_MEMCPY, BUILT_IN_MEMMOVE, BUILT_IN_MEMSET, BUILT_IN_STRCAT,
37008         BUILT_IN_STRCHR, BUILT_IN_STRCPY, BUILT_IN_STRLEN): Use
37009         DEF_LIB_BUILTIN_CHKP macro instead of DEF_LIB_BUILTIN.
37010         (BUILT_IN_MEMCPY_CHK, BUILT_IN_MEMMOVE_CHK, BUILT_IN_MEMPCPY_CHK,
37011         BUILT_IN_MEMPCPY, BUILT_IN_MEMSET_CHK, BUILT_IN_STPCPY_CHK,
37012         BUILT_IN_STPCPY, BUILT_IN_STRCAT_CHK, BUILT_IN_STRCPY_CHK): Use
37013         DEF_EXT_LIB_BUILTIN_CHKP macro instead of DEF_EXT_LIB_BUILTIN.
37014         * tree-core.h (enum built_in_function): In between
37015         BEGIN_CHKP_BUILTINS and END_CHKP_BUILTINS only define enum values
37016         for builtins that use DEF_BUILTIN_CHKP macro.
37017
37018 2015-02-04  Alexandre Oliva  <aoliva@redhat.com>
37019
37020         PR debug/64817
37021         * cfgexpand.c (expand_debug_expr): Compute unsignedp from
37022         operands for tcc_comparison exprs.  Fix typos.
37023
37024         PR debug/64817
37025         * simplify-rtx.c (simplify_binary_operation_1): Simplify one
37026         of two XORs that have an intervening AND or IOR.
37027
37028         PR debug/64817
37029         * simplify-rtx.c (simplify_binary_operation_1): Rewrite
37030         simplification of XOR of AND to not allocate new rtx before
37031         committing to a simplification.
37032
37033 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37034
37035         * config/aarch64/aarch64-ldpstp.md: Use std::swap instead of
37036         manual swaps in all peepholes.
37037
37038 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37039
37040         * config/aarch64/aarch64.c (aarch64_evpc_ext): Use std::swap instead
37041         of manual swapping implementation.
37042         (aarch64_expand_vec_perm_const_1): Likewise.
37043
37044 2015-02-04  James Greenhalgh <james.greenhalgh@arm.com>
37045
37046         * config/aarch64/aarch64.c (NAMED_PARAM): Delete it.
37047         (generic_addrcost_table): Remove NAMED_PARAM.
37048         (cortexa57_addrcost_table): Likewise.
37049         (xgene1_addrcost_table): Likewise.
37050         (generic_regmove_table): Likewise.
37051         (cortexa53_regmove_table): Likewise.
37052         (xgene1_regmove_table): Likewise.
37053         (generic_vector_table): Likewise.
37054         (cortexa57_vector_table): Likewise.
37055         (xgene1_vector_table): Likewise.
37056         (generic_tunings): Likewise.
37057         (cortexa53_tunings): Likewise.
37058         (cortexa57_tunings): Likewise.
37059         (xgene1_tunings): Likewise.
37060
37061 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
37062
37063         * config/arm/arm-cores.def: Add cortex-a72 and
37064         cortex-a72.cortex-a53.
37065         * config/arm/bpabi.h (BE8_LINK_SPEC): Likewise.
37066         * config/arm/t-aprofile (MULTILIB_MATCHES): Likewise.
37067         * config/arm/arm-tune.md: Regenerate.
37068         * config/arm/arm-tables.opt: Add entries for "cortex-a72" and
37069         "cortex-a72.cortex-a53".
37070         * doc/invoke.texi (ARM Options/-mtune): Likewise.
37071
37072 2015-02-04  Nick Clifton  <nickc@redhat.com>
37073
37074         PR target/64408
37075         * config/fr30/predicates.md (di_operand): Add SUBREG to the list
37076         of accepted codes.
37077         (nonimmediate_di_operand): Likewise.
37078
37079         * config/msp430/msp430.c (msp430_use_f5_series_hwmult): Add more
37080         prefixes of known F5 using MSP430 MCUs.
37081
37082 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37083
37084         * config/aarch64/aarch64-simd-builtins.def (sqrt): Use BUILTIN_VDQF_DF.
37085         * config/aarch64/arm_neon.h (vsqrt_f64): Use __builtin_aarch64_sqrtdf
37086         instead of __builtin_sqrt.
37087
37088 2015-02-04  Ilya Enkovich  <ilya.enkovich@intel.com>
37089
37090         * varasm.c (do_assemble_alias): Follow transparent alias
37091         chain for target.
37092         (default_assemble_visibility): Follow transparent alias
37093         chain for decl name.
37094
37095 2015-02-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
37096
37097         PR middle-end/62103
37098         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use TYPE_PRECISION
37099         to compute size of referenced value in the constant case.
37100
37101 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
37102
37103         PR rtl-optimization/64756
37104         * cse.c (invalidate_dest): New function.
37105         (cse_insn): Use it.  If dest != SET_DEST (sets[i].rtl) and
37106         HASH (SET_DEST (sets[i].rtl), mode) computation sets do_not_record,
37107         invalidate and do not record it.
37108
37109 2015-02-03  Oleg Endo  <olegendo@gcc.gnu.org>
37110
37111         PR target/64660
37112         * config/sh/sync.md (atomic_<fetchop_name><mode>_hard,
37113         atomic_not<mode>_hard, atomic_<fetchop_name><mode>_soft_tcb,
37114         atomic_not<mode>_soft_tcb, atomic_nand<mode>_hard,
37115         atomic_nand<mode>_soft_tcb): New insns.
37116         (atomic_fetch_<fetchop_name>si_hard): Convert to insn_and_split.
37117         Split into atomic_<fetchop_name>_fetchsi_hard if operands[0] is unused.
37118         (define_insn "atomic_fetch_notsi_hard): Convert to insn_and_split.
37119         Split into atomic_not_fetchsi_hard if operands[0] is unused.
37120         (atomic_fetch_<fetchop_name><mode>_hard): Convert to insn_and_split.
37121         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
37122         (atomic_fetch_not<mode>_hard): Convert to insn_and_split.  Split into
37123         atomic_not<mode>_hard if operands[0] is unused.
37124         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Convert to
37125         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_gusa
37126         if operands[0] is unused.
37127         (atomic_fetch_not<mode>_soft_gusa): Convert to insn_and_split.  Split
37128         into atomic_not_fetch<mode>_soft_gusa if operands[0] is unused.
37129         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Convert to insn_and_split.
37130         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
37131         unused.
37132         (atomic_fetch_not<mode>_soft_tcb): Convert to insn_and_split.  Split
37133         into atomic_not<mode>_soft_tcb if operands[0] is unused.
37134         (atomic_fetch_<fetchop_name><mode>_soft_imask): Convert to
37135         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_imask
37136         if operands[0] is unused.
37137         (atomic_fetch_not<mode>_soft_imask): Convert to insn_and_split.  Split
37138         into atomic_not_fetch<mode>_soft_imask is operands[0] is unused.
37139         (atomic_fetch_nandsi_hard): Convert to insn_and_split.  Split into
37140         atomic_nand_fetchsi_hard if operands[0] is unused.
37141         (atomic_fetch_nand<mode>_hard): Convert to insn_and_split.  Split into
37142         atomic_nand<mode>_hard if operands[0] is unused.
37143         (atomic_fetch_nand<mode>_soft_gusa): Convert to insn_and_split.  Split
37144         into atomic_nand_fetch<mode>_soft_gusa if operands[0] is unused.
37145         (atomic_fetch_nand<mode>_soft_tcb): Convert to insn_and_split.  Split
37146         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
37147         (atomic_fetch_nand<mode>_soft_imask): Convert to insn_and_split.  Split
37148         into atomic_nand_fetch<mode>_soft_imask if operands[0] is unused.
37149         (atomic_<fetchop_name>_fetch<mode>_hard): Convert to insn_and_split.
37150         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
37151         (atomic_not_fetch<mode>_hard): Convert to insn_and_split.  Split into
37152         atomic_not<mode>_hard if operands[0] is unused.
37153         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Convert to insn_and_split.
37154         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
37155         unused.
37156         (atomic_not_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
37157         into atomic_not<mode>_soft_tcb if operands[0] is unused.
37158         (atomic_nand_fetch<mode>_hard): Convert to insn_and_split.  Split into
37159         atomic_nand<mode>_hard if operands[0] is unused.
37160         (atomic_nand_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
37161         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
37162
37163 2015-02-03  David Malcolm  <dmalcolm@redhat.com>
37164
37165         PR jit/64810
37166         * Makefile.in (GCC_OBJS): Add gcc-main.o.
37167         * gcc-main.c: New file, containing "main" taken from gcc.c.
37168         * gcc.c (do_self_spec): Free decoded_options.
37169         (class driver): Move declaration to gcc.h.
37170         (main): Move declaration and implementation to new file
37171         gcc-main.c.
37172         (driver_get_configure_time_options): New function.
37173         * gcc.h (class driver): Move this declaration here, from
37174         gcc.c.
37175         (driver_get_configure_time_options): New declaration.
37176
37177 2015-02-03  Jan Hubicka  <hubicka@ucw.cz>
37178
37179         * ipa-inline-analysis.c (simple_edge_hints): Fix check for
37180         cross-module inlining.
37181         * cgraph.h (cgraph_node): Add flag merged.
37182         * ipa-icf.c (sem_function::merge): Maintain it.
37183
37184 2015-02-03  Richard Sandiford  <richard.sandiford@arm.com>
37185
37186         * config/arm/arm.c (thumb2_reorg): Test UNARY_P and BINARY_P
37187         instead of OBJECT_P.
37188
37189 2015-02-03  Eric Botcazou  <ebotcazou@adacore.com>
37190
37191         PR target/62631
37192         * config/sparc/sparc.h (TARGET_HARD_MUL): Remove TARGET_V8PLUS.
37193         (TARGET_HARD_MUL32): Rewrite based on TARGET_HARD_MUL.
37194         * config/sparc/sparc.c (sparc_rtx_costs) <MULT>: Return costs based on
37195         int_mulX for integers in 64-bit mode if TARGET_HARD_MUL is not set.
37196
37197 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
37198
37199         PR other/63504
37200         * combine.c (reg_n_sets_max): New variable.
37201         (can_change_dest_mode, reg_nonzero_bits_for_combine,
37202         reg_num_sign_bit_copies_for_combine, get_last_value_validate,
37203         get_last_value): Use REG_N_SETS only on pseudos < reg_n_sets_max.
37204         (try_combine): Use INC_REG_N_SETS only on pseudos < reg_n_sets_max.
37205         (rest_of_handle_combine): Initialize reg_n_sets_max.
37206
37207 2015-02-02  Jan Hubicka  <hubicka@ucw.cz>
37208
37209         * ipa-inline.c (early_inliner): Skip inlining only in always_inlined;
37210         if some always_inline was inlined, apply changes before inlining
37211         heuristically.
37212
37213 2015-02-02  David Malcolm  <dmalcolm@redhat.com>
37214
37215         PR jit/64810
37216         * config/arm/arm.c (arm_option_override): Set
37217         arm_selected_arch/cpu/tune to NULL on entry.
37218
37219 2015-02-02  Tejas Belagod  <tejas.belagod@arm.com>
37220             Andrew Pinski  <pinskia@gcc.gnu.org>
37221             Jakub Jelinek  <jakub@gcc.gnu.org>
37222
37223         PR target/64231
37224         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix large
37225         integer typing for small model. Use IN_RANGE.
37226
37227 2015-02-02  Richard Biener  <rguenther@suse.de>
37228
37229         * tree-ssa-ccp.c (valueize_op_1): Always allow valueizing default-defs.
37230         * tree-vrp.c (vrp_valueize_1): Likewise.
37231
37232 2015-02-02  Alan Modra  <amodra@gmail.com>
37233
37234         * config/rs6000/rs6000.c (rs6000_call_aix): Use unspec rather
37235         than mem for toc_restore.
37236         * config/rs6000/rs6000.md (UNSPEC_TOCSLOT): Define.
37237         (call_indirect_aix, call_value_indirect_aix): Adjust to suit.
37238         (call_indirect_elfv2, call_value_indirect_elfv2): Likewise.
37239
37240 2015-02-01  David Edelsohn  <dje.gcc@gmail.com>
37241
37242         PR target/64047
37243         * config/rs6000/rs6000.c (rs6000_set_current_function): Handle
37244         explicit default options.
37245
37246 2015-02-01  Jan Hubicka  <hubicka@ucw.cz>
37247
37248         PR ipa/64872
37249         * ipa-utils.c (ipa_merge_profiles): Add release argument.
37250         * ipa-icf.c (sem_function::merge): Do not release body when merging.
37251         * ipa-utils.h (ipa_merge_profiles): Update prototype.
37252
37253 2015-02-01  Jakub Jelinek  <jakub@redhat.com>
37254
37255         PR debug/64817
37256         * cfgexpand.c (deep_ter_debug_map): New variable.
37257         (avoid_deep_ter_for_debug): New function.
37258         (expand_debug_expr): If TERed SSA_NAME is in
37259         deep_ter_debug_map, use the corresponding DEBUG_EXPR_DECL
37260         instead of trying to expand SSA_NAME's def stmt.
37261         (expand_debug_locations): When expanding debug bind
37262         of a DEBUG_EXPR_DECL to corresponding SSA_NAME,
37263         temporarily remove the DEBUG_EXPR_DECL from deep_ter_debug_map's
37264         value.
37265         (pass_expand::execute): Call avoid_deep_ter_for_debug on
37266         all debug bind stmts.  Delete deep_ter_debug_map after
37267         expand_debug_location if non-NULL and clear it.
37268
37269 2015-02-01  Oleg Endo  <olegendo@gcc.gnu.org>
37270
37271         PR target/64851
37272         * config/sh/sync.md (atomic_fetch_notsi_hard,
37273         atomic_fetch_not<mode>_hard, atomic_fetch_not<mode>_soft_gusa,
37274         atomic_fetch_not<mode>_soft_tcb, atomic_fetch_not<mode>_soft_imask,
37275         atomic_not_fetchsi_hard, atomic_not_fetch<mode>_hard,
37276         atomic_not_fetch<mode>_soft_gusa, atomic_not_fetch<mode>_soft_tcb,
37277         atomic_not_fetch<mode>_soft_imask): New insns.
37278
37279 2015-02-01  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
37280
37281         * haifa-sched.c (INSN_RFS_DEBUG_ORIG_ORDER): New access macro.
37282         (rank_for_schedule_debug): Split from ...
37283         (rank_for_schedule): ... this.
37284         (ready_sort): Sort DEBUG_INSNs separately from normal INSNs.
37285         * sched-int.h (struct _haifa_insn_data): New field rfs_debug_orig_order.
37286
37287 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
37288
37289         * doc/md.texi (Machine Constraints): Alphabetize table by target.
37290         * doc/extend.texi (x86 Variable Attributes): Move section to
37291         correct alphabetization after renaming.
37292         (x86 Type Attributes): Likewise.
37293         (Target Builtins): Re-alphabetize menu.
37294         (x86 Built-in Functions): Move section to correct alphabetization
37295         after renaming.
37296         (x86 transactional memory intrinsics): Likewise.
37297         * doc/invoke.texi (Option Summary): Re-alphabetize x86 Options
37298         and x86 Windows Options in table and menu.
37299         (x86 Options): Move section to correct alphabetization after
37300         renaming.
37301         (x86 Windows Options): Likewise.
37302
37303 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
37304
37305         * doc/extend.texi: Use "x86", "x86-32", and "x86-64" as the
37306         preferred names of the architecture and its 32- and 64-bit
37307         variants.
37308         * doc/invoke.texi: Likewise.
37309         * doc/md.texi: Likewise.
37310
37311 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
37312
37313         PR target/64882
37314         * config/i386/predicates.md (address_no_seg_operand): Reject
37315         non-CONST_INT_P operands in invalid mode.
37316
37317 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
37318
37319         * config/i386/i386.md (*prefetch_prefetchw1): Remove mode of
37320         address_operand 0.  Rename from *prefetch_prefetchwt1_<mode>.
37321         * config/i386/predicates.md (address_no_seg_operand): Call
37322         address_operand with VOIDmode.
37323         (vsib_address_operand): Ditto.
37324         (address_mpx_no_base_operand): Ditto.
37325         (address_mpx_no_index_operand): Ditto.
37326
37327 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
37328
37329         PR target/64688
37330         * lra-constraints.c (original_subreg_reg_mode): New.
37331         (simplify_operand_subreg): Try to simplify subreg of const.  Use
37332         original_subreg_reg_mode for it.
37333         (swap_operands): Update original_subreg_reg_mode.
37334         (curr_insn_transform): Set up original_subreg_reg_mode.
37335
37336 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
37337
37338         PR target/64617
37339         * lra-constraints.c (prohibited_class_reg_set_mode_p): New
37340         function.
37341         (process_alt_operands): Use it.
37342         (curr_insn_transform): Check the optional reload pseudo class is
37343         ok for the mode.
37344
37345 2015-01-30  Joseph Myers  <joseph@codesourcery.com>
37346
37347         * diagnostic.c (fatal_error (const char *, ...)): Remove function.
37348         * diagnostic-core.h (fatal_error (const char *, ...)): Remove
37349         prototype.
37350         * toplev.h (init_asm_output): Update comment on use of
37351         UNKNOWN_LOCATION with fatal_error.
37352         * cgraph.c, collect-utils.c, collect2.c, config/arc/arc.c,
37353         config/arc/arc.md, config/avr/avr.c, config/c6x/c6x.h,
37354         config/darwin.c, config/host-darwin.c, config/i386/host-cygwin.c,
37355         config/i386/intelmic-mkoffload.c, config/nios2/nios2.c,
37356         config/nvptx/mkoffload.c, config/nvptx/nvptx.h,
37357         config/rs6000/host-darwin.c, config/rs6000/rs6000.c,
37358         config/s390/s390.c, gcc.c, gcov-io.h, gcov-tool.c, ggc-common.c,
37359         ggc-page.c, graph.c, ipa-inline-analysis.c, ipa-reference.c,
37360         lto-cgraph.c, lto-section-in.c, lto-streamer-in.c, lto-streamer.c,
37361         lto-wrapper.c, objc/objc-act.c, opts.c, passes.c, plugin.c,
37362         tlink.c, toplev.c, tree-streamer-in.c, varpool.c: All callers of
37363         fatal_error changed to pass input_location as first argument.
37364
37365 2015-01-30  Martin Liska  <mliska@suse.cz>
37366
37367         * tree.h: Change GCC_VERSION >= 4004 to GCC_VERSION >= 4006
37368         in #pragma GCC diagnostic guards.
37369
37370 2015-01-30  Richard Biener  <rguenther@suse.de>
37371
37372         PR tree-optimization/64829
37373         * tree-vect-patterns.c (vect_handle_widen_op_by_const): Do
37374         not add a widening conversion pattern but hand off extra
37375         widenings to callers.
37376         (vect_recog_widen_mult_pattern): Handle extra widening produced
37377         by vect_handle_widen_op_by_const.
37378         (vect_recog_widen_shift_pattern): Likewise.
37379         (vect_pattern_recog_1): Remove excess vertical space in dumping.
37380         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
37381         (vect_init_vector_1): Likewise.
37382         (vect_get_vec_def_for_operand): Likewise.
37383         (vect_finish_stmt_generation): Likewise.
37384         (vectorizable_load): Likewise.
37385         (vect_analyze_stmt): Likewise.
37386         (vect_is_simple_use): Likewise.
37387
37388 2015-01-29  Jeff Law  <law@redhat.com>
37389
37390         * combine.c (try_combine): Fix typo in comment.
37391
37392 2015-01-29  Segher Boessenkool  <segher@kernel.crashing.org>
37393
37394         PR target/64580
37395         * config.rs6000/rs6000.c (compute_vrsave_mask): Reverse loop order.
37396         (rs6000_stack_info): Add assert.
37397         (rs6000_output_savres_externs): New function, split off from...
37398         (rs6000_output_function_prologue): ... here.  Do not call it for
37399         thunks.
37400
37401 2015-01-29  Jeff Law  <law@redhat.com>
37402
37403         PR target/15184
37404         * combine.c (try_combine): If I0 is a memory load and I3 a store
37405         to a related address, increase the "goodness" of doing a 4-insn
37406         combination with I0-I3.
37407         (make_field_assignment): Handle SUBREGs in the ior+and case.
37408
37409 2015-01-29  Yuri Rumyantsev  <ysrumyan@gmail.com>
37410
37411         PR tree-optimization/64746
37412         * tree-if-conv.c (mask_exists): New function.
37413         (predicate_mem_writes): Save created mask with given size for further
37414         use.
37415         (stmt_is_root_of_bool_pattern): Remove argument VAR and store to it.
37416         (ifcvt_repair_bool_pattern): Collect all statements that are root
37417         of bool pattern and use iterative algorithm to remove multiple uses
37418         of predicates, display number of required iterations.
37419
37420 2015-01-29  Richard Biener  <rguenther@suse.de>
37421
37422         PR tree-optimization/64853
37423         * tree-vrp.c (vrp_valueize_1): Do not return anything if the
37424         stmt will get simulated again.
37425         * tree-ssa-ccp.c (valueize_op_1): Likewise.
37426
37427 2015-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37428
37429         * config/arm/arm.c (arm_emit_multi_reg_pop): Simplify definition of
37430         return_in_pc.  Remove redundant assignments.
37431         (thumb2_emit_ldrd_pop): Simplify definition of return_in_pc.
37432         (arm_expand_epilogue): Don't compare boolean with true in if condition.
37433
37434 2015-01-29  Uros Bizjak  <ubizjak@gmail.com>
37435
37436         * config/i386/i386.c (ix86_mode_after): Make static.
37437
37438 2015-01-29  Richard Biener  <rguenther@suse.de>
37439
37440         PR tree-optimization/64844
37441         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Always
37442         dump cost model analysis.
37443         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
37444         Do not register adjusted load/store costs here.
37445
37446 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
37447             Uros Bizjak  <ubizjak@gmail.com>
37448
37449         * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): New.
37450         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Simplify by
37451         using x86_use_pseudo_pic_reg.
37452         * config/i386/i386.c (ix86_conditional_register_usage): Remove
37453         support for fixed PIC register.
37454         (ix86_use_pseudo_pic_reg): Not static any more.
37455
37456 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
37457
37458         PR middle-end/64805
37459         * ipa-inline.c (early_inliner): Rebuild IPA_REF_CHKP reference
37460         to avoid error in cgraph node verification.
37461
37462 2015-01-29  Marek Polacek  <polacek@redhat.com>
37463
37464         * doc/standards.texi: Reflect that the default for C is gnu11.
37465
37466 2015-01-29  Kaz Kojima  <kkojima@gcc.gnu.org>
37467
37468         PR target/64761
37469         * reorg.c (switch_text_sections_between_p): New function.
37470         (relax_delay_slots): Call it when testing if the jump insn
37471         is removable.  Use targetm.can_follow_jump when testing if
37472         the conditional branch can follow an unconditional jump.
37473
37474 2015-01-27  Caroline Tice  <cmtice@google.com>
37475
37476         Committing VTV Cywin/Ming patch for Patrick Wollgast
37477         * config/i386/cygwin.h (STARTFILE_SPEC): Add vtv_start.o,
37478         if -fvtable-verify=preinit/std is used.
37479         * config/i386/mingw-w64.h (STARTFILE_SPEC): Likewise.
37480         * config/i386/mingw32.h (STARTFILE_SPEC): Likewise.
37481         * config/i386/cygwin.h (ENDFILE_SPEC): Add vtv_end.o,
37482         if -fvtable-verify=preinit/std is used.
37483         * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
37484         * config/i386/cygwin.h (LIB_SPEC): Pass -lvtv and -lpsapi,
37485         if -fvtable-verify=preinit/std is used.
37486         * config/i386/mingw-w64.h (LIB_SPEC): Likewise.
37487         * config/i386/mingw32.h (LIB_SPEC): Likewise.
37488         * varasm.c (assemble_variable): Add code to properly set the comdat
37489         section and name for the .vtable_map_vars section in case the
37490         target is PE or COFF.
37491
37492 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
37493
37494         PR ipa/64801
37495         * cgraphunit.c (init_lowered_empty_function): Add CoUNT parameter;
37496         make sane BB profile.
37497         (cgraph_node::expand_thunk): Make sane BB profile.
37498         (cgraph_node::create_wrapper): Do not set call_stmt_cannot_inline_p.
37499         * cgraph.h (init_lowered_empty_function): Update prototype.
37500         * config/i386/i386.c (make_resolver_func): Update call.
37501         * predict.c (gate): Disable branch prediction pass if
37502         profile is already there.
37503
37504 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
37505
37506         * optc-save-gen.awk: flag_fp_contract_mode is no longer speical.
37507         * opth-gen.awk: Likewise.
37508         * common.opt: Mark flag_fp_contract_mode as Optimization.
37509
37510 2015-01-29  Bernd Edlinger  <bernd.edlinger@hotmail.de>
37511
37512         * config/i386/cygwin.h (LIBGCJ_SONAME): Set libgcj version to -16.
37513         * config/i386/mingw32.h (LIBGCJ_SONAME): Set libgcj version to -16.
37514
37515 2015-01-28  Oleg Endo  <olegendo@gcc.gnu.org>
37516
37517         PR target/64659
37518         * config/sh/predicates.md (atomic_arith_operand,
37519         atomic_logical_operand): Remove.
37520         * config/sh/sync.md (fetchop_predicate, fetchop_constraint): Remove.
37521         (atomic_arith_operand_0): New predicate.
37522         (atomic_compare_and_swap<mode>): Use arith_reg_dest for output values.
37523         Use atomic_arith_operand_0 for input values.
37524         (atomic_compare_and_swapsi_hard, atomic_compare_and_swap<mode>_hard,
37525         atomic_compare_and_swap<mode>_soft_gusa,
37526         atomic_compare_and_swap<mode>_soft_tcb,
37527         atomic_compare_and_swap<mode>_soft_imask): Use arith_reg_dest and
37528         arith_reg_operand instead of register_operand.
37529         (atomic_exchange<mode>): Use arith_reg_dest for output value.  Use
37530         atomic_arith_operand_0 for newval input.
37531         (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
37532         atomic_exchange<mode>_soft_gusa, atomic_exchange<mode>_soft_tcb,
37533         atomic_exchange<mode>_soft_imask): Use arith_reg_dest and
37534         arith_reg_operand instead of register_operand.
37535         (atomic_arith_operand_1, atomic_logical_operand_1): New predicates.
37536         fetchop_predicate_1, fetchop_constraint_1_llcs,
37537         fetchop_constraint_1_gusa, fetchop_constraint_1_tcb,
37538         fetchop_constraint_1_imask): New code iterator attributes.
37539         (atomic_fetch_<fetchop_name><mode>): Use arith_reg_dest instead of
37540         register_operand.  Use fetchop_predicate_1.
37541         (atomic_fetch_<fetchop_name>si_hard,
37542         atomic_fetch_<fetchop_name><mode>_hard): Use arith_reg_dest instead of
37543         register_operand.  Use fetchop_predicate_1, fetchop_constraint_1_llcs.
37544         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Use arith_reg_dest
37545         and arith_reg_operand instead of register_operand.  Use
37546         fetchop_predicate_1, fetchop_constraint_1_gusa.
37547         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Use arith_reg_dest
37548         and arith_reg_operand instead of register_operand.  Use
37549         fetchop_predicate_1, fetchop_constraint_1_tcb.  Adjust asm sequence
37550         to allow R0 usage.
37551         (atomic_fetch_<fetchop_name><mode>_soft_imask): Use arith_reg_dest
37552         and arith_reg_operand instead of register_operand.  Use
37553         fetchop_predicate_1, fetchop_constraint_1_imask.  Adjust asm sequence
37554         to allow R0 usage.
37555         (atomic_fetch_nand<mode>): Use arith_reg_dest instead of
37556         register_operand.  Use atomic_logical_operand_1.
37557         (atomic_fetch_nandsi_hard, atomic_fetch_nand<mode>_hard,
37558         atomic_fetch_nand<mode>_soft_gusa): Use arith_reg_dest and
37559         arith_reg_operand instead of register_operand.
37560         (atomic_fetch_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask):
37561         Use arith_reg_dest and arith_reg_operand instead of register_operand.
37562         Use logical_operand and rK08.  Adjust asm sequence to allow R0 usage.
37563         (atomic_<fetchop_name>_fetch<mode>): Use arith_reg_dest instead of
37564         register_operand.  Use fetchop_predicate_1.
37565         (atomic_<fetchop_name>_fetchsi_hard,
37566         atomic_<fetchop_name>_fetch<mode>_hard): Use arith_reg_dest and
37567         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
37568         fetchop_constraint_1_llcs.
37569         (atomic_<fetchop_name>_fetch<mode>_soft_gusa): Use arith_reg_dest and
37570         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
37571         fetchop_constraint_1_gusa.
37572         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Use arith_reg_dest and
37573         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
37574         fetchop_constraint_1_tcb.  Adjust asm sequence to allow R0 usage.
37575         (atomic_<fetchop_name>_fetch<mode>_soft_imask): Use arith_reg_dest and
37576         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
37577         fetchop_constraint_1_imask.  Adjust asm sequence to allow R0 usage.
37578         (atomic_nand_fetch<mode>): Use arith_reg_dest instead of
37579         register_operand.  Use atomic_logical_operand_1.
37580         (atomic_nand_fetchsi_hard, atomic_nand_fetch<mode>_hard,
37581         atomic_nand_fetch<mode>_soft_gusa): Use arith_reg_dest and
37582         arith_reg_operand instead of register_operand.
37583         (atomic_nand_fetch<mode>_soft_tcb): Use arith_reg_dest and
37584         arith_reg_operand instead of register_operand.  Use logical_operand
37585         and K08.  Adjust asm sequence to allow R0 usage.
37586         (atomic_nand_fetch<mode>_soft_imask): Use arith_reg_dest and
37587         arith_reg_operand instead of register_operand.  Use logical_operand
37588         and K08.
37589
37590 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
37591
37592         PR other/63504
37593         * dwarf2out.c (add_AT_wide, mem_loc_descriptor, loc_descriptor):
37594         Use ggc_alloc<wide_int> instead of ggc_cleared_alloc<wide_int>.
37595         (attr_checksum, attr_checksum_ordered, hash_loc_operands): Checksum
37596         only get_full_len HOST_WIDE_INTs from get_val () array rather than
37597         all bits in *val_wide.
37598
37599 2015-01-28  Jan Hubicka  <hubicka@ucw.cz>
37600
37601         * varpool.c (tls_model_names): Fix names.
37602         (varpool_node::dump): Dump tls- prefix for tls models.
37603
37604 2015-01-28  Thomas Schwinge  <thomas@codesourcery.com>
37605             Bernd Schmidt  <bernds@codesourcery.com>
37606             Nathan Sidwell  <nathan@codesourcery.com>
37607
37608         * config/nvptx/mkoffload.c: New file.
37609         * config/nvptx/t-nvptx: Add build rules for it.
37610         * config.gcc <nvptx-*> [$enable_as_accelerator = yes]
37611         (extra_programs): Add mkoffload.
37612         * config/nvptx/nvptx.c (nvptx_record_offload_symbol): New
37613         function.
37614         (TARGET_RECORD_OFFLOAD_SYMBOL): Define macro to use it.
37615
37616 2015-01-28  Yuri Rumyantsev  <ysrumyan@gmail.com>
37617
37618         PR middle-end/64809
37619         * cfgexpand.c (reorder_operands): Skip debug gimples.
37620
37621 2015-01-28  Ilya Enkovich  <ilya.enkovich@intel.com>
37622
37623         PR tree-optimization/64277
37624         * tree-ssa-loop-niter.c (record_nonwrapping_iv): Use base
37625         range info when possible to refine estimation.
37626
37627 2015-01-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
37628
37629         PR tree-optimization/64718
37630         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Make bswap_type
37631         be a 16bit unsigned integer when n->range is 16.
37632         (bswap_replace): Convert src to that type if necessary for all bswap
37633         sizes.  Fix rotation right notation in nearby comment.  Use bswap_type
37634         set in pass_optimize_bswap::execute ().
37635
37636 2015-01-28  James Greenhalgh  <james.greenhalgh@arm.com>
37637
37638         * config/aarch64/aarch64-simd.md (aarch64_abs<mode>): New.
37639         * config/aarch64/aarch64-simd-builtins.def (abs): Split by
37640         integer and floating point variants.
37641         * config/aarch64/iterators.md (unspec): Add UNSPEC_ABS.
37642
37643 2015-01-28  Robert Suchanek  <robert.suchanek@imgtec.com>
37644
37645         * config/mips/mips.c (mips_hard_regno_mode_ok_p): Prohibit accumulators
37646         for all vector modes.
37647
37648 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
37649
37650         PR bootstrap/64612
37651         * doc/sourcebuild.texi (comdat_group): Document.
37652
37653 2015-01-28  Terry Guo  <terry.guo@arm.com>
37654
37655         * config/arm/thumb1.md (*thumb1_movpc_insn): New insn pattern.
37656
37657 2015-01-27  David Malcolm  <dmalcolm@redhat.com>
37658
37659         * toplev.c (print_version): Add param "show_global_state", and
37660         only print GGC and plugin information if it is true.
37661         (init_asm_output): Pass in "true" for the new param when calling
37662         print_version.
37663         (process_options): Likewise.
37664         (toplev::main): Likewise.
37665         * toplev.h (print_version): Add new param to decl.
37666
37667 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
37668
37669         PR ipa/60871
37670         PR ipa/64139
37671         * tree.c (lookup_binfo_at_offset): New function.
37672         (get_binfo_at_offset): Use it.
37673
37674 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
37675
37676         PR ipa/64282
37677         * gimple-fold.c (gimple_get_virt_method_for_vtable): Remove assert
37678         on vtable being vtable.
37679
37680 2015-01-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
37681
37682         * doc/extend.texi: s/390: Update documentation of hotpatch attribute.
37683         * doc/invoke.texi (-mhotpatch): s/390: Update documentation of
37684         -mhotpatch= option.
37685         * config/s390/s390.opt (mhotpatch): s/390: Remove -mhotpatch and
37686         -mno-hotpatch options.  Change syntax of -mhotpatch= option.
37687         * config/s390/s390.c (s390_hotpatch_trampoline_halfwords_default):
37688         Renamed.
37689         (s390_hotpatch_trampoline_halfwords_max): Renamed.
37690         (s390_hotpatch_hw_max): New name.
37691         (s390_hotpatch_trampoline_halfwords): Renamed.
37692         (s390_hotpatch_hw_before_label): New name.
37693         (get_hotpatch_attribute): Removed.
37694         (s390_hotpatch_hw_after_label): New name.
37695         (s390_handle_hotpatch_attribute): Add second parameter to hotpatch
37696         attribute.
37697         (s390_attribute_table): Ditto.
37698         (s390_function_num_hotpatch_trampoline_halfwords): Renamed.
37699         (s390_function_num_hotpatch_hw): New name.
37700         Remove special handling of inline functions and hotpatching.
37701         Return number of nops before and after the function label.
37702         (s390_can_inline_p): Removed.
37703         (s390_asm_output_function_label): Emit a configurable number of nops
37704         after the function label.
37705         (s390_option_override): Update -mhotpatch= syntax and remove -mhotpatch.
37706         (TARGET_CAN_INLINE_P) Removed.
37707         (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): New.
37708
37709 2015-01-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
37710             Jiong Wang  <jiong.wang@arm.com>
37711
37712         * config/aarch64/aarch64.md (tb<optab><mode>1): Clobber CC reg instead
37713         of scratch reg.
37714         (cb<optab><mode>1): Likewise.
37715         * config/aarch64/iterators.md (bcond): New define_code_attr.
37716
37717 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
37718
37719         * config/s390/s390.c (s390_memory_move_cost): Increase costs for
37720         memory accesses.
37721
37722 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
37723
37724         * config/s390/s390.c (s390_register_move_cost): Increase costs for
37725         FPR->GPR moves.
37726
37727 2015-01-27  Richard Biener  <rguenther@suse.de>
37728
37729         * tree-vrp.c (update_value_range): Intersect the range with
37730         old recorded SSA name range information.
37731
37732 2015-01-27  Nick Clifton  <nickc@redhat.com>
37733
37734         * config/rl78/rl78.c (rl78_expand_prologue): In G10 mode push the
37735         BC, DE and HL registers directly, not via AX.
37736         When decrementing the stack pointer by a large amount, transfer SP
37737         into AX and perform the subtraction there.
37738         (rl78_expand_epilogue): Perform the inverse of the above
37739         enhancements.
37740
37741 2015-01-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37742
37743         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Remove.
37744
37745 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
37746             Yury Gribov  <y.gribov@samsung.com>
37747
37748         PR ubsan/64741
37749         * ubsan.c (ubsan_source_location): Refactor code.
37750         (ubsan_type_descriptor): Update type size. Refactor code.
37751
37752 2015-01-27  Richard Biener  <rguenther@suse.de>
37753
37754         PR tree-optimization/56273
37755         PR tree-optimization/59124
37756         PR tree-optimization/64277
37757         * tree-vrp.c (vrp_finalize): Emit array-bound warnings only
37758         from the first VRP pass.
37759
37760 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
37761
37762         PR ipa/64776
37763         * cgraphunit.c (cgraph_node::expand_thunk): If not this_adjusting,
37764         handle the first argument in the same loop as all the other arguments.
37765
37766         PR rtl-optimization/61058
37767         * jump.c (cleanup_barriers): Update basic block boundaries
37768         if BLOCK_FOR_INSN is non-NULL on PREV.
37769
37770 2015-01-27  Ilya Enkovich  <ilya.enkovich@intel.com>
37771
37772         * tree-chkp.c (chkp_call_returns_bounds_p): Fix handling of
37773         bounds narrowing, already instrumented calls and calls to
37774         not instrumentable functions.
37775
37776 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
37777
37778         PR tree-optimization/64807
37779         * wide-int.cc (wi::divmod_internal): Clear
37780         b_dividend[dividend_blocks_needed].
37781
37782 2015-01-26  DJ Delorie  <dj@redhat.com>
37783
37784         * config/rl78/rl78.c (move_elim_pass): Don't optimize away
37785         volatile memory references.
37786
37787 2015-01-26  Oleg Endo  <olegendo@gcc.gnu.org>
37788
37789         PR target/49263
37790         * config/sh/sh.c (sh_split_treg_set_expr): Invoke emit_insn before
37791         remove_insn.
37792         * config/sh/sh.md (tstsi_t): Don't try to optimize constant with right
37793         shifts if it already fits into K08.
37794
37795 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
37796
37797         PR ipa/64730
37798         * ipa-inline.c (inline_small_functions): Print "unknown" even
37799         if edge->call_stmt is non-NULL, but has builtins or unknown
37800         location.
37801
37802         PR middle-end/64421
37803         * omp-low.c (simd_clone_mangle): If DECL_ASSEMBLER_NAME starts
37804         with asterisk, skip the first character.
37805
37806 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
37807
37808         PR target/64806
37809         * config/i386/i386 (feature_priority): Revert the last P_POPCNT
37810         order change.
37811
37812 2015-01-26  Uros Bizjak  <ubizjak@gmail.com>
37813
37814         PR target/64795
37815         * config/i386/i386.md (*movdi_internal): Also check operand 0
37816         to determine TYPE_LEA operand.
37817         (*movsi_internal): Ditto.
37818
37819 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
37820
37821         * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add
37822         OPTION_MASK_QUAD_MEMORY_ATOMIC.
37823
37824 2015-01-26  Renlin Li  <renlin.li@arm.com>
37825
37826         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Correct
37827         the comment.
37828         * config/aarch64/aarch64.md (tlsle_small_<mode>): Add left shift 12-bit
37829         for higher part.
37830
37831 2015-01-26  Richard Biener  <rguenther@suse.de>
37832
37833         PR middle-end/64764
37834         * tree-ssa-uninit.c (is_pred_expr_subset_of): Handle
37835         combining two BIT_AND_EXPR predicates.
37836
37837 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
37838
37839         PR bootstrap/64754
37840         * tree-ssa-structalias.c (new_var_info): Initialize ruid.
37841
37842 2015-01-26  Terry Guo  <terry.guo@arm.com>
37843
37844         * config/arm/arm.c (arm_file_start): Update the assignment of
37845         Tag_ABI_HardFP_use.
37846
37847 2015-01-25  James Greenhalgh  <james.greenhalgh@arm.com>
37848
37849         * config/arm/arm-cores.def (cortex-a57): Use the new Cortex-A57
37850         pipeline model.
37851         config/arm/arm.md: Include the new Cortex-A57 model.
37852         (generic_sched): Don't use generic_sched when tuning for
37853         Cortex-A57.
37854
37855 2015-01-25  Allan Sandfeld Jensen  <sandfeld@kde.org>
37856             Uros Bizjak  <ubizjak@gmail.com>
37857
37858         * config/i386/i386.c (get_builtin_code_for_version): Add
37859         support for BMI and BMI2 multiversion functions.
37860
37861 2015-01-25  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
37862
37863         * emit-rtl.h (store_bit_field): Move prototype to expmed.h.
37864         (extract_bit_field): Likewise.
37865         (extract_low_bits): Likewise.
37866         (expand_mult): Likewise.
37867         (expand_mult_highpart_adjust): Likewise.
37868
37869 2015-01-24  H.J. Lu  <hongjiu.lu@intel.com>
37870
37871         * config/i386/driver-i386.c (host_detect_local_cpu): Check new
37872         Silvermont, Haswell, Broadwell and Knights Landing model numbers.
37873         * config/i386/i386.c (processor_model): Add
37874         M_INTEL_COREI7_BROADWELL.
37875         (arch_names_table): Add "broadwell".
37876
37877 2015-01-24  Oleg Endo  <olegendo@gcc.gnu.org>
37878
37879         PR target/49263
37880         PR target/53987
37881         PR target/64345
37882         PR target/59533
37883         PR target/52933
37884         PR target/54236
37885         PR target/51244
37886         * config/sh/sh-protos.h
37887         (sh_extending_set_of_reg::can_use_as_unextended_reg,
37888         sh_extending_set_of_reg::use_as_unextended_reg,
37889         sh_is_nott_insn, sh_movt_set_dest, sh_movrt_set_dest, sh_is_movt_insn,
37890         sh_is_movrt_insn, sh_insn_operands_modified_between_p,
37891         sh_reg_dead_or_unused_after_insn, sh_in_recog_treg_set_expr,
37892         sh_recog_treg_set_expr, sh_split_treg_set_expr): New functions.
37893         (sh_treg_insns): New class.
37894         * config/sh/sh.c (TARGET_LEGITIMATE_COMBINED_INSN): Define target hook.
37895         (scope_counter): New class.
37896         (sh_legitimate_combined_insn, sh_is_nott_insn, sh_movt_set_dest,
37897         sh_movrt_set_dest, sh_reg_dead_or_unused_after_insn,
37898         sh_extending_set_of_reg::can_use_as_unextended_reg,
37899         sh_extending_set_of_reg::use_as_unextended_reg, sh_recog_treg_set_expr,
37900         sh_in_recog_treg_set_expr, sh_try_split_insn_simple,
37901         sh_split_treg_set_expr): New functions.
37902         (addsubcosts): Handle treg_set_expr.
37903         (sh_rtx_costs): Handle IF_THEN_ELSE and ZERO_EXTRACT.
37904         (sh_rtx_costs): Use arith_reg_operand in SIGN_EXTEND and ZERO_EXTEND.
37905         (sh_rtx_costs): Handle additional bit test patterns in EQ and AND cases.
37906         (sh_insn_operands_modified_between_p): Make non-static.
37907         * config/sh/predicates.md (zero_extend_movu_operand): Allow
37908         simple_mem_operand in addition to displacement_mem_operand.
37909         (zero_extend_operand): Don't allow zero_extend_movu_operand.
37910         (treg_set_expr, treg_set_expr_not_const01,
37911         arith_reg_or_treg_set_expr): New predicates.
37912         * config/sh/sh.md (tstsi_t): Use arith_reg_operand and
37913         arith_or_int_operand instead of logical_operand.  Convert to
37914         insn_and_split.  Try to optimize constant operand in splitter.
37915         (tsthi_t, tstqi_t): Fold into *tst<mode>_t.  Convert to insn_and_split.
37916         (*tstqi_t_zero): Delete.
37917         (*tst<mode>_t_subregs): Add !sh_in_recog_treg_set_expr split condition.
37918         (tstsi_t_and_not): Delete.
37919         (tst<mode>_t_zero_extract_eq): Rename to *tst<mode>_t_zero_extract.
37920         Convert to insn_and_split.
37921         (unnamed split, tstsi_t_zero_extract_xor,
37922         tstsi_t_zero_extract_subreg_xor_little,
37923         tstsi_t_zero_extract_subreg_xor_big): Delete.
37924         (*tstsi_t_shift_mask): New insn_and_split.
37925         (cmpeqsi_t, cmpgesi_t): Add new split for const_int 0 operands and try
37926         to recombine with surrounding insns when splitting.
37927         (*negtstsi): Add !sh_in_recog_treg_set_expr condition.
37928         (cmp_div0s_0, cmp_div0s_1, *cmp_div0s_0, *cmp_div0s_1): Rewrite as ...
37929         (cmp_div0s, *cmp_div0s_1, *cmp_div0s_2, *cmp_div0s_3, *cmp_div0s_4,
37930         *cmp_div0s_5, *cmp_div0s_6): ... these new insn_and_split patterns.
37931         (*cbranch_div0s: Delete.
37932         (*addc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
37933         Try to recombine with surrounding insns when splitting.  Add operand
37934         order variants.
37935         (*addc_t_r, *addc_r_t): Use treg_set_expr_not_const01.
37936         (*addc_r_r_1, *addc_r_lsb, *addc_r_r_lsb, *addc_r_lsb_r, *addc_r_msb,
37937         *addc_r_r_msb, *addc_2r_msb): Delete.
37938         (*addc_2r_lsb): Rename to *addc_2r_t.  Use treg_set_expr.  Add operand
37939         order variant.
37940         (*addc_negreg_t): New insn_and_split.
37941         (*subc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
37942         Try to recombine with surrounding insns when splitting.
37943         Add operand order variants.
37944         (*subc_negt_reg, *subc_negreg_t, *reg_lsb_t, *reg_msb_t): New
37945         insn_and_split patterns.
37946         (*rotcr): Use arith_reg_or_treg_set_expr.  Try to recombine with
37947         surrounding insns when splitting.
37948         (unnamed rotcr split): Use arith_reg_or_treg_set_expr.
37949         (*rotcl): Likewise.  Add zero_extract variant.
37950         (*ashrsi2_31): New insn_and_split.
37951         (*negc): Convert to insn_and_split.  Use treg_set_expr.
37952         (*zero_extend<mode>si2_disp_mem): Update comment.
37953         (movrt_negc, *movrt_negc, nott): Add !sh_in_recog_treg_set_expr split
37954         condition.
37955         (*mov_t_msb_neg, mov_neg_si_t): Use treg_set_expr.  Try to recombine
37956         with surrounding insns when splitting.
37957         (any_treg_expr_to_reg): New insn_and_split.
37958         (*neg_zero_extract_0, *neg_zero_extract_1, *neg_zero_extract_2,
37959         *neg_zero_extract_3, *neg_zero_extract_4, *neg_zero_extract_5,
37960         *neg_zero_extract_6, *zero_extract_0, *zero_extract_1,
37961         *zero_extract_2): New single bit zero extract patterns.
37962         (bld_reg, *bld_regqi): Fold into bld<mode>_reg.
37963         (*get_thread_pointersi, store_gbr, *mov<mode>_gbr_load,
37964         *mov<mode>_gbr_load, *mov<mode>_gbr_load, *mov<mode>_gbr_load,
37965         *movdi_gbr_load): Use arith_reg_dest instead of register_operand for
37966         set destination.
37967         (set_thread_pointersi, load_gbr): Use arith_reg_operand instead of
37968         register_operand for set source.
37969
37970 2015-01-23  Jan Hubicka  <hubicka@ucw.cz>
37971
37972         * i386.opt (prefetch_sse): New targetsave.
37973         * i386.c (ix86_function_specific_save): Save prefetch_sse.
37974         (ix86_function_specific_restore): Restore prefetch_sse and initialize
37975         ix86_cost/ix86_tune_cost.
37976
37977 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
37978
37979         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
37980         Support the JIT by using 0 as the language type.
37981
37982 2015-01-23  Vladimir Makarov  <vmakarov@redhat.com>
37983
37984         PR target/64317
37985         * lra-lives.c (make_hard_regno_born): Add parameter.  Don't make
37986         REAL_PIC_OFFSET_TABLE_REGNUM conflicting with pic offset pseudo.
37987         (mark_regno_live, process_bb_lives): Pass new parameter value to
37988         make_hard_regno_born.
37989
37990 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
37991
37992         PR rtl-optimization/63637
37993         PR rtl-optimization/60663
37994         * cse.c (merge_equiv_classes): Set new_elt->cost to MAX_COST
37995         if elt->cost is MAX_COST for ASM_OPERANDS.
37996         (find_sets_in_insn): Fix up comment typo.
37997         (cse_insn): Don't set src_volatile for all non-volatile
37998         ASM_OPERANDS in PARALLELs, but just those with multiple outputs
37999         or with "memory" clobber.  Set elt->cost to MAX_COST
38000         for ASM_OPERANDS in PARALLEL.  Set src_elt->cost to MAX_COST
38001         if new_src is ASM_OPERANDS and elt->cost is MAX_COST.
38002
38003 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
38004
38005         * config/i386/sse.md (sse2_loadld): Set attribute isa to sse2 for
38006         alternative 1.
38007
38008 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
38009
38010         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Move definition to
38011         libgcc/config/i386/elf-lib.h.
38012
38013 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
38014
38015         PR driver/64737
38016         * gcc.c (print_configuration): Don't print a blank line at the end
38017         here...
38018         (run_attempt): ... but here unstead.
38019
38020         PR middle-end/64734
38021         * omp-low.c (scan_sharing_clauses): Don't ignore
38022         OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION GOMP_MAP_POINTER clauses
38023         on target data/update constructs.
38024
38025 2015-01-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
38026
38027         PR target/50928
38028         * config/m32c/m32c.c (encode_pattern_1): Removed gcc_unreachable here.
38029         (DEBUG_RELOAD): Removed define.
38030         (m32c_limit_reload_class): Enable traces with if DEBUG0.
38031         (m32c_function_arg): Added a type cast.
38032         (m32c_legitimize_reload_address): Push A_REGS reload with PSImode.
38033         * config/m32c/addsub.md (addsi3_1): Specify the mode of all arguments.
38034         * config/m32c/bitops.md (andqi3_16): Likewise.
38035         * config/m32c/mov.md (m32c_immd_dbl_mov): Likewise.
38036         (push_a01_l): Likewise.
38037
38038 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
38039
38040         PR jit/64721
38041         * main.c (main): Construct toplev instances with init_signals=true.
38042         * toplev.c (general_init): Add param "init_signals", and use it to
38043         conditionalize the calls to signal and host_hooks.extra_signals.
38044         (toplev::toplev): Add param "init_signals".
38045         (toplev::main): When invoking general_init, pass m_init_signals
38046         to control whether signal-handlers are installed.
38047         * toplev.h (toplev::toplev): Add param "init_signals".
38048         (toplev::m_init_signals): New field.
38049
38050 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
38051
38052         PR jit/64722
38053         * emit-rtl.c (init_emit_regs): Set pic_offset_table_rtx to
38054         NULL_RTX before testing PIC_OFFSET_TABLE_REGNUM, since the
38055         latter may be affected by the former (e.g. on i686).
38056
38057 2015-01-23  Martin Liska  <mliska@suse.cz>
38058
38059         * tree.h (tree_vec_elt_check): Workaround -Wstrict-overflow
38060         false positive during profiledbootstrap.
38061
38062 2015-01-23  Tom de Vries  <tom@codesourcery.com>
38063
38064         PR libgomp/64672
38065         * lto-opts.c (lto_write_options): Output non-explicit conservative
38066         -fno-openacc.
38067         * lto-wrapper.c (merge_and_complain): Handle merging -fopenacc.
38068         (append_compiler_options): Pass -fopenacc through.
38069
38070 2015-01-23  Tom de Vries  <tom@codesourcery.com>
38071
38072         PR libgomp/64707
38073         * lto-opts.c (lto_write_options): Output non-explicit conservative
38074         -fno-openmp.
38075         * lto-wrapper.c (merge_and_complain): Handle merging -fopenmp.
38076         (append_compiler_options): Pass -fopenmp through.
38077
38078 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
38079
38080         PR debug/64511
38081         * dwarf2out.c (struct dw_loc_descr_node): Add chain_next
38082         GTY markup.
38083
38084         * diagnostic-core.h (internal_error_no_backtrace): New prototype.
38085         * diagnostic.def (DK_ICE_NOBT): New kind.
38086         * diagnostic.c (diagnostic_action_after_output): Handle DK_ICE_NOBT
38087         like DK_ICE, but never print backtrace.
38088         (diagnostic_report_diagnostic): Handle DK_ICE_NOBT like DK_ICE.
38089         (internal_error_no_backtrace): New function.
38090         * gcc.c (execute): Use internal_error_no_backtrace instead of
38091         internal_error.
38092
38093 2015-01-22  Jeff Law  <law@redhat.com>
38094
38095         PR target/52076
38096         * config/m68k/m68k.md (xorsi3_internal): Twiddle constraints to
38097         improve code density for small immediate to memory case.
38098         (insv): Better handle bitfield assignments when the field is
38099         being set to all ones.
38100         * config/m68k/predicates.md (reg_or_pow2_m1_operand): New
38101         operand predicate.
38102
38103 2015-01-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38104             Jakub Jelinek  <jakub@redhat.com>
38105
38106         PR middle-end/64729
38107         * gcc.c (LINK_SSP_SPEC): Handle -fstack-protector-explicit
38108         for !TARGET_LIBC_PROVIDES_SSP version and
38109         -fstack-protector-{all,strong,explicit} otherwise.
38110         * config/freebsd.h (LINK_SSP_SPEC): Handle
38111         -fstack-protector-{strong,explicit}.
38112
38113 2015-01-22  Jan Hubicka  <hubicka@ucw.cz>
38114             H.J. Lu  <hongjiu.lu@intel.com>
38115
38116         PR ipa/64694
38117         * ipa-inline.c (inline_small_functions): Fix thinko in maintenance of
38118         heap.
38119
38120 2015-01-22  Wei Mi  <wmi@google.com>
38121
38122         PR rtl-optimization/64557
38123         * dse.c (record_store): Call get_addr for mem_addr.
38124         (check_mem_read_rtx): Likewise.
38125
38126 2015-01-22  Eric Botcazou  <ebotcazou@adacore.com>
38127
38128         * fold-const.c (const_binop): Add early return for non-tcc_binary.
38129
38130 2015-01-22  Chen Gang  <gang.chen.5i5j@gmail.com>
38131
38132         * toplev.c (init_local_tick): Process the failure when read
38133         fails for random_seed.
38134
38135         * ubsan.c (ubsan_type_descriptor): Use 'pretty_print' for
38136         'pretty_name' to avoid memory overflow.
38137
38138 2015-01-22  Richard Biener  <rguenther@suse.de>
38139
38140         PR middle-end/64728
38141         * tree-ssa-coalesce.c (coalesce_partitions): Do not perform
38142         abnormal coalescing on undefined SSA names.
38143
38144 2015-22-01  Uros Bizjak  <ubizjak@gmail.com>
38145
38146         PR target/64688
38147         PR target/64477
38148         * config/i386/sse.md (vec_set<mode>_0): Use (Yi/r/C) constraints
38149         for alternative 3.
38150         (*vec_dup<mode>): Use (Yi/$r) constraints for alternative 1.
38151
38152 2015-01-22  Trevor Saunders  <tsaunders@mozilla.com>
38153
38154         PR middle-end/63325
38155         * fold-const.c (fold_checksum_tree): Don't include value of
38156         expr->decl_with_vis.symtab_node in the checksum.
38157
38158 2015-01-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
38159
38160         * config/s390/s390.md (atomic code attribute): Fix typo "ior" -> "or".
38161
38162 2015-01-22  Max Ostapenko  <m.ostapenko@partner.samsung.com>
38163
38164         PR driver/64690
38165         * gcc.c (insert_comments): New function.
38166         (try_generate_repro): Call it.
38167         (append_text): Removed.
38168
38169 2015-01-22  Richard Biener  <rguenther@suse.de>
38170
38171         * ipa-inline.c (can_inline_edge_p): Disable inlining of edges
38172         with IL incompatible options.  Properly honor user optimize
38173         attributes.
38174
38175 2015-01-21  Segher Boessenkool  <segher@kernel.crashing.org>
38176
38177         PR rtl-optimization/64682
38178         * combine.c (distribute_notes): When moving a death note for
38179         a register that is set in the new I2, make sure to put it
38180         before that new I2.
38181
38182 2015-01-21  David Edelsohn  <dje.gcc@gmail.com>
38183
38184         * config/rs6000/rs6000.c (rs6000_file_start): Use rs6000_isa_flags
38185         not TARGET_DEFAULT.
38186
38187 2015-01-21  Jakub Jelinek  <jakub@redhat.com>
38188
38189         PR debug/64511
38190         * simplify-rtx.c (simplify_relational_operation_1): Don't try to
38191         optimize (eq/ne (and (side_effects) (const_int 0)) (const_int 0))
38192         into (eq/ne (and (not (side_effects)) (const_int 0)) (const_int 0)).
38193
38194         PR sanitizer/64706
38195         * doc/invoke.texi (-fsanitize=vptr): Document.
38196
38197         PR rtl-optimization/62078
38198         * dse.c: Include cfgcleanup.h.
38199         (rest_of_handle_dse): For -fnon-call-exceptions, if DSE removed
38200         anything call purge_all_dead_edges and cleanup_cfg at the end
38201         of the pass.
38202
38203 2015-01-21  Jan Hubicka  <hubicka@ucw.cz>
38204
38205         * ipa-utils.c (ipa_merge_profiles): Avoid ICE on mismatch in indirect
38206         edges.
38207
38208 2015-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
38209
38210         * gimplify.c (gimplify_function_tree): Check the no_sanitize_thread
38211         decl attribute.
38212
38213 2015-01-21  David Sherwood  <david.sherwood@arm.com>
38214             Tejas Belagod <Tejas.Belagod@arm.com>
38215
38216         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Removed.
38217         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class): Removed.
38218         * config/aarch64/aarch64-protos.h (aarch64_cannot_change_mode_class):
38219         Removed.
38220
38221 2015-01-21  David Sherwood  <david.sherwood@arm.com>
38222             Tejas Belagod <Tejas.Belagod@arm.com>
38223
38224         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist)
38225         (aarch64_reverse_mask): New decls.
38226         * config/aarch64/iterators.md (UNSPEC_REV_REGLIST): New enum.
38227         (insn_count): New mode_attr.
38228         * config/aarch64/aarch64-simd.md (vec_store_lanesoi, vec_store_lanesci)
38229         (vec_store_lanesxi, vec_load_lanesoi, vec_load_lanesci)
38230         (vec_load_lanesxi): Made ABI compliant for Big Endian targets.
38231         (aarch64_rev_reglist, aarch64_simd_ld2, aarch64_simd_ld3)
38232         (aarch64_simd_ld4, aarch64_simd_st2, aarch64_simd_st3)
38233         (aarch64_simd_st4): New patterns.
38234         * config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist)
38235         (aarch64_reverse_mask): New functions.
38236
38237 2015-01-21  Alan Hayward  <alan.hayward@arm.com>
38238
38239         * config/aarch64/aarch64-protos.h (aarch64_simd_disambiguate_copy):
38240         Declare.
38241         * config/aarch64/aarch64.c (aarch64_classify_address): Allow extra
38242         addressing modes for BE.
38243         (aarch64_print_operand): Add 'R' specifier.
38244         (aarch64_simd_disambiguate_copy): Delete.
38245         (aarch64_simd_emit_reg_reg_move): New function.
38246         * config/aarch64/aarch64-simd.md: Use aarch64_simd_emit_reg_reg_move
38247         in define_splits for structural moves.
38248         (mov<mode>): Use less restrictive predicates.
38249         (*aarch64_mov<mode>): Simplify and only allow for LE.
38250         (*aarch64_be_movoi, *aarch64_be_movci, *aarch64_be_movxi): New.
38251
38252 2015-01-21  Alan Hayward  <alan.hayward@arm.com>
38253
38254         * rtlanal.c (subreg_get_info): Exit early for simple and common cases.
38255
38256 2015-01-21  Richard Henderson  <rth@redhat.com>
38257
38258         PR target/64669
38259         * ccmp.c (used_in_cond_stmt_p): Remove.
38260         (expand_ccmp_expr): Don't use it.
38261
38262 2015-01-21  Nick Clifton  <nickc@redhat.com>
38263
38264         * config/rl78/rl78.c (rl78_calculate_death_notes): Look inside
38265         PARALLELs.
38266
38267 2015-01-21  Richard Biener  <rguenther@suse.de>
38268
38269         PR middle-end/64313
38270         * tree-core.h (builtin_info, builtin_info_type): Turn from
38271         an object with two arrays into an array of an object with
38272         decl and two flags, implicit_p and declared_p.
38273         * tree.h (builtin_decl_explicit, builtin_decl_implicit,
38274         set_builtin_decl, set_builtin_decl_implicit_p,
38275         builtin_decl_explicit_p, builtin_decl_implicit_p): Adjust.
38276         (set_builtin_decl_declared_p, builtin_decl_declared_p): New functions.
38277         * builtins.c (builtin_info): Adjust.
38278         * gimplify.c (gimplify_addr_expr): References to builtins
38279         that have been declared by the user makes them eligible for
38280         use by the compiler.  Call set_builtin_decl_implicit_p on them.
38281
38282 2015-01-20  Jeff Law  <law@redhat.com>
38283
38284         PR target/59946
38285         * config/m68k/m68k.md (Comparison expanders and patterns): Do not
38286         allow pc-relative addresses in operand predicates or constraints.
38287
38288 2015-01-21  Bin Cheng  <bin.cheng@arm.com>
38289
38290         * config/arm/arm.c (arm_cortex_a53_tune, arm_cortex_a57_tune): Prefer
38291         neon on aarch32 processors for stringops.
38292
38293 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
38294
38295         PR ipa/63576
38296         * ipa-utils.c (ipa_merge_profiles): Merge speculative edges.
38297
38298 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
38299
38300         PR lto/45375
38301         * ipa-inline.c: Include lto-streamer.h
38302         (report_inline_failed_reason): Output source file differences and
38303         flags on optimization/target node mismatch.
38304         (can_inline_edge_p): Consider caller to be the outer inline function;
38305         be less restrictive about matching opimize and optimize_size attributes.
38306         (inline_account_function_p): Break out from ...
38307         (inline_small_functions): ... here.
38308         * ipa-inline-transform.c (clone_inlined_nodes): Use
38309         inline_account_function_p.
38310         (inline_call): Use optimize attribution; use inline_account_function_p.
38311         (inline_transform): Use opt_for_fn.
38312         * ipa-inline.h (inline_account_function_p): Declare.
38313
38314 2015-01-20  Jakub Jelinek  <jakub@redhat.com>
38315
38316         PR debug/64663
38317         * dwarf2out.c (decl_piece_node): Don't put bitsize into
38318         mode if bitsize <= 0.
38319         (decl_piece_bitsize, adjust_piece_list, add_var_loc_to_decl,
38320         dw_sra_loc_expr): Use HOST_WIDE_INT instead of int for bit
38321         sizes and positions.
38322
38323 2015-01-20  Chung-Lin Tang  <cltang@codesourcery.com>
38324
38325         * config/nios2/nios2.c (nios2_asm_file_end): Implement
38326         TARGET_ASM_FILE_END hook for adding .note.GNU-stack section when
38327         needed.
38328         (TARGET_ASM_FILE_END): Define.
38329
38330 2015-01-20  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
38331
38332         * config/arm/arm-protos.h (enum arm_sched_autopref): New constants.
38333         (struct tune_params): Use the enum.
38334         * arm.c (arm_*_tune): Update.
38335         (arm_option_override): Update.
38336
38337 2015-01-20  Richard Biener  <rguenther@suse.de>
38338
38339         PR ipa/64684
38340         * ipa-reference.c (add_static_var): Inline ...
38341         (analyze_function): ... here after splitting out from ...
38342         (is_proper_for_analysis): ... this.
38343
38344 2015-01-20  Matthew Wahab  <matthew.wahab@arm.com>
38345
38346         PR target/64149
38347         * config/arm/arm.opt: Remove lra option and arm_lra_flag variablesle.
38348         * config/arm/arm.h (MODE_BASE_REG_CLASS): Remove use of arm_lra_flagag,
38349         replace the conditional with it's true branch.
38350         * config/arm/arm.config (TARGET_LRA_P): Set to hook_bool_void_true.
38351         (arm_lra_p): Remove.
38352
38353 2015-01-20  Eric Botcazou  <ebotcazou@adacore.com>
38354
38355         * config/visium/visium.h (LIB_SPEC): Adjust in default case.
38356
38357 2015-01-20  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
38358
38359         * config/tilegx/mul-tables.c: Move symtab.h include after
38360         coretypes.h include.
38361         * config/tilepro/mul-tables.c: Add includes hashtab.h, hash-set.h,
38362         vec.h, machmode.h, tm.h, hard-reg-set.h, input.h, function.h, rtl.h,
38363         flags.h, statistics.h, double-int.h, real.h, fixed-value.h, alias.h,
38364         wide-int.h, inchash.h, tree.h, insn-config.h, expmed.h, dojump.h,
38365         explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
38366
38367 2015-01-20  Igor Zamyatin  <igor.zamyatin@intel.com>
38368
38369         PR bootstrap/64676
38370         Revert:
38371         2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
38372
38373         PR rtl-optimization/64081
38374         * loop-iv.c (def_pred_latch_p): New function.
38375         (latch_dominating_def): Allow specific cases with non-single
38376         definitions.
38377         (iv_get_reaching_def): Likewise.
38378         (check_complex_exit_p): New function.
38379         (check_simple_exit): Use check_complex_exit_p to allow certain cases
38380         with exits not executing on any iteration.
38381
38382 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
38383
38384         PR lto/45375
38385         * i386.c (ix86_option_override_internal): Use ix86_tune_cost
38386         to set branch cost.
38387
38388 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
38389
38390         PR lto/45375
38391         * i386.c (gate): Check flag_expensive_optimizations and
38392         optimize_size.
38393         (ix86_option_override_internal): Drop optimize_size condition
38394         on MASK_ACCUMULATE_OUTGOING_ARGS, MASK_VZEROUPPER,
38395         MASK_AVX256_SPLIT_UNALIGNED_LOAD, MASK_AVX256_SPLIT_UNALIGNED_STORE,
38396         MASK_PREFER_AVX128.
38397         (ix86_avx256_split_vector_move_misalign,
38398         ix86_avx256_split_vector_move_misalign): Check optimize_insn_for_speed.
38399         * sse.md (all uses of TARGET_PREFER_AVX128): Add
38400         optimize_insn_for_speed_p check.
38401
38402 2015-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
38403
38404         * config/mips/mips.h (FP_ASM_SPEC): New define.
38405         (ASM_SPEC): Remove floating-point options and use FP_ASM_SPEC
38406         instead.
38407
38408 2015-01-19  Oleg Endo  <olegendo@gcc.gnu.org>
38409
38410         PR target/53988
38411         * config/sh/sh-protos.h (sh_find_set_of_reg): Make sure not to return
38412         nullptr for insn when reaching the first insn.
38413         * config/sh/sh.c (sh_unspec_insn_p): Rewrite using subrtx_iterator.
38414         (sh_insn_operands_modified_between_p): Add nullptr check.
38415         (sh_find_extending_set_of_reg): Fix log message.  Don't accept
38416         sign extending mem load if the insn contains any UNSPEC or
38417         UNSPEC_VOLATILE.
38418
38419 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
38420
38421         * params.def (inline-unit-growth): Drop to 15%.
38422         * invoke.texi (inline-unit-growth): Document change.
38423
38424 2015-01-19  Martin Liska  <mliska@suse.cz>
38425
38426         PR ipa/64668
38427         * ipa-icf-gimple.c (func_checker::compare_operand): Call proper
38428         function for second argument of OBJ_TYPE_REF.
38429
38430 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
38431
38432         PR ipa/64218
38433         * ipa-inline.c (want_inline_function_to_all_callers_p): Fix check
38434         whether function is an alias.
38435
38436 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
38437
38438         * ipa-devirt.c (ipa_devirt): Drop polymorphic call info in hopeless
38439         cases.
38440
38441 2015-01-19  Vladimir Makarov  <vmakarov@redhat.com>
38442
38443         PR rtl-optimization/64671
38444         * lra-remat.c (operand_to_remat): Don't consider jump and call
38445         insns.
38446
38447 2015-01-19  David Edelsohn  <dje.gcc@gmail.com>
38448
38449         PR target/59828
38450         * config/rs6000/default64.h: Include rs6000-cpus.def.
38451         (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use ISA 2.7 (POWER8).
38452         (TARGET_DEFAULT) [BIG_ENDIAN]: Use POWER4.
38453         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add POWER7
38454         and POWER8.
38455         * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Always default to
38456         POWER8.
38457         * config/rs6000/rs6000.c (rs6000_file_start): Emit .machine
38458         pseudo-op to specify assembler dialect.
38459
38460 2015-01-19  Martin Liska  <mliska@suse.cz>
38461
38462         PR ipa/64664
38463         * ipa-icf.c (sem_item_optimizer::filter_removed_items):
38464         Handle safe potentially removed nodes during filtering.
38465
38466 2015-01-19  Martin Liska  <mliska@suse.cz>
38467
38468         * doc/extend.texi (no_icf): Add new attribute description.
38469         * ipa-icf.c (sem_item_optimizer::merge_classes): Handle cases
38470         where the pass attempts to merge a function with no_icf attribute.
38471
38472 2015-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
38473
38474         PR target/64532
38475         * doc/md.texi (ARM Options): Document register constraints.
38476
38477 2015-01-19  Jiong Wang  <jiong.wang@arm.com>
38478             Andrew Pinski  <apinski@cavium.com>
38479
38480         PR target/64304
38481         * config/aarch64/aarch64.md (define_insn "*ashl<mode>3_insn"): Deleted.
38482         (ashl<mode>3): Don't expand if operands[2] is not constant.
38483
38484 2015-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
38485
38486         PR target/64448
38487         * config/aarch64/aarch64-simd.md (aarch64_simd_bsl<mode>_internal):
38488         Match xor-and-xor RTL pattern.
38489
38490 2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
38491
38492         PR rtl-optimization/64081
38493         * loop-iv.c (def_pred_latch_p): New function.
38494         (latch_dominating_def): Allow specific cases with non-single
38495         definitions.
38496         (iv_get_reaching_def): Likewise.
38497         (check_complex_exit_p): New function.
38498         (check_simple_exit): Use check_complex_exit_p to allow certain cases
38499         with exits not executing on any iteration.
38500
38501 2015-01-19  Jakub Jelinek  <jakub@redhat.com>
38502
38503         * common.opt (fgraphite): Fix a typo.
38504
38505 2015-01-19  Felix Yang  <felix.yang@huawei.com>
38506
38507         * config/aarch64/aarch64-simd.md (aarch64_<maxmin_uns>p<mode>): New
38508         pattern.
38509         * config/aarch64/aarch64-simd-builtins.def (smaxp, sminp, umaxp,
38510         uminp, smax_nanp, smin_nanp): New builtins.
38511         * config/aarch64/arm_neon.h (vpmax_s8, vpmax_s16, vpmax_s32,
38512         vpmax_u8, vpmax_u16, vpmax_u32, vpmaxq_s8, vpmaxq_s16, vpmaxq_s32,
38513         vpmaxq_u8, vpmaxq_u16, vpmaxq_u32, vpmax_f32, vpmaxq_f32, vpmaxq_f64,
38514         vpmaxqd_f64, vpmaxs_f32, vpmaxnm_f32, vpmaxnmq_f32, vpmaxnmq_f64,
38515         vpmaxnmqd_f64, vpmaxnms_f32, vpmin_s8, vpmin_s16, vpmin_s32, vpmin_u8,
38516         vpmin_u16, vpmin_u32, vpminq_s8, vpminq_s16, vpminq_s32, vpminq_u8,
38517         vpminq_u16, vpminq_u32, vpmin_f32, vpminq_f32, vpminq_f64, vpminqd_f64,
38518         vpmins_f32, vpminnm_f32, vpminnmq_f32, vpminnmq_f64, vpminnmqd_f64,
38519         vpminnms_f32): Rewrite using builtin functions.
38520
38521 2015-01-19  Thomas Schwinge  <thomas@codesourcery.com>
38522
38523         PR libgomp/64625
38524         * omp-low.c (offload_symbol_decl): Remove variable.
38525         (get_offload_symbol_decl): Remove function.
38526         (expand_omp_target): For BUILT_IN_GOMP_TARGET,
38527         BUILT_IN_GOMP_TARGET_DATA, BUILT_IN_GOMP_TARGET_UPDATE pass NULL
38528         instead of &__OFFLOAD_TABLE__, for BUILT_IN_GOACC_DATA_START,
38529         BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL,
38530         BUILT_IN_GOACC_UPDATE don't pass it at all.
38531
38532 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
38533
38534         * tree-sra.c (some_callers_have_mismatched_arguments_p): Allow thunk
38535         callers.
38536
38537 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
38538
38539         * ipa-chkp.c (chkp_produce_thunks): Add early param
38540         to split thunks production into two passes.  Keep
38541         'always_inline' function bodies after the first pass.
38542         (pass_data_ipa_chkp_early_produce_thunks): New.
38543         (pass_ipa_chkp_early_produce_thunks): New.
38544         (pass_ipa_chkp_produce_thunks::execute): Adjust to new
38545         chkp_produce_thunks signature.
38546         (make_pass_ipa_chkp_early_produce_thunks): New.
38547         * passes.def (pass_ipa_chkp_early_produce_thunks): New.
38548         (pass_ipa_chkp_produce_thunks): Move after local optimizations.
38549         * tree-pass.h (make_pass_ipa_chkp_early_produce_thunks): New.
38550
38551 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
38552
38553         * cgraph.c (cgraph_node::dump): Dump profile flags.
38554
38555 2015-01-18  Oleg Endo  <olegendo@gcc.gnu.org>
38556
38557         PR target/64652
38558         * config/sh/sh.md (udivsi3_i4, divsi3_i4): Make use of sfunc address
38559         reg appear first in the parallel.
38560
38561 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
38562
38563         * ipa-reference.c (set_reference_optimization_summary,
38564         ipa_reference_get_not_written_global): Do nothing if ipa-reference is
38565         disabled.
38566         (ignore_module_statics): New static var.
38567         (propagate_bits): If ipa-reference is disabled, do not look into local
38568         properties.
38569         (analyze_function): Disable analysis when ipa_reference is disabled.
38570         (generate_summary): Do not dump when reference is disabled;
38571         collect vars accessed from functions with ipa-reference disabled.
38572         (get_read_write_all_from_node): When ipa-reference is disabled, use the
38573         node flags.
38574         (gate): Enable for LTO.
38575         (ignore_edge_p): New function.
38576         (propagate): Skip functions w/o ipa-reference analysis.
38577         * optc-save-gen.awk: Handle optimize_debug correctly.
38578         * opth-gen.awk: Likewise.
38579         * common.opt (fauto-inc-dec, fdelete-dead-exceptions, ffunction-cse,
38580         fgraphite, fstrict-volatile-bitfields, fira-algorithm, fira-region,
38581         fira-share-save-slots, fira-share-spill-slots,
38582         fmodulo-sched-allow-regmoves, fpartial-inlining,
38583         sched-stalled-insns, fsched-stalled-insns-dep, fstrict-overflow,
38584         ftracer, ftree-parallelize-loops, fassociative-math,
38585         freciprocal-math, fvect-cost-model, fsimd-cost-model): Mark as
38586         Optimization
38587         (fauto-profile, fcommon, fdata-sections, fipa-icf-variables,
38588         ftoplevel-reorder, funit-at-a-time, fwhole-program): Do not mark as
38589         Optimization.
38590         * ipa-icf.c (gate, sem_item_optimizer::filter_removed_items):
38591         Fix for IPA.
38592
38593 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
38594
38595         PR ipa/64378
38596         * ipa-prop.c (try_make_edge_direct_virtual_call): Clear speculative
38597         flag correctly.
38598         * ipa-cp.c (ipa_get_indirect_edge_target_1): Handle speculation.
38599
38600 2015-01-18  Sandra Loosemore  <sandra@codesourcery.com>
38601
38602         * doc/invoke.texi ([-funroll-loops], [-funroll-all-loops]):
38603         Remove duplicate option listings.
38604
38605 2015-01-18  Felix Yang  <felix.yang@huawei.com>
38606
38607         * auto-profile.c (afdo_find_equiv_class): Remove unnecessary test.
38608         (autofdo_source_profile::get_callsite_total_count,
38609         function_instance::get_function_instance_by_decl,
38610         string_table::get_index, string_table::get_index_by_decl,
38611         afdo_vpt_for_early_inline, afdo_callsite_hot_enough_for_early_inline):
38612         Fix comment typos. Reformatting and minor code rearrangement.
38613
38614 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
38615
38616         * config/rs6000/rs6000.md (probe_stack): Delete.
38617         (probe_stack_address): New.
38618
38619 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
38620
38621         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use TARGET_32BIT
38622         to test for 32-bit ABIs, not !TARGET_POWERPC64.
38623
38624 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
38625
38626         * config/rs6000/rs6000.c (rs6000_parallel_return): New function.
38627         (rs6000_function_value): Use it.  Handle SCmode and TCmode as well,
38628         for TARGET_32BIT && TARGET_POWERPC64.  Fix another BITS_PER_WORD
38629         snafu.
38630         (rs6000_libcall_value): Use the new function.
38631
38632 2015-01-17  Sandra Loosemore  <sandra@codesourcery.com>
38633
38634         * doc/invoke.texi ([-ftracer]): Remove duplicate option listing.
38635
38636 2015-01-17  Eric Botcazou  <ebotcazou@adacore.com>
38637
38638         * reorg.c (fill_simple_delay_slots): If TARGET_FLAGS_REGNUM is valid,
38639         implement a more precise life analysis for it during backward scan.
38640
38641 2015-01-17  Jan Kratochvil  <jan.kratochvil@redhat.com>
38642
38643         * dwarf2out.c (gen_producer_string): Ignore also OPT_fpreprocessed.
38644
38645 2015-01-17  Bernd Schmidt  <bernds@codesourcery.com>
38646
38647         PR rtl-optimization/52773
38648         * calls.c (emit_library_call_value): When pushing arguments use
38649         stack_pointer_rtx rather than virtual_outgoing_args_rtx in
38650         CALL_INSN_FUNCTION_USAGE.  Only emit one of use of the magic
38651         stack pointer reference into CALL_INSN_FUNCTION_USAGE.
38652
38653 2015-01-17  Jeff Law  <law@redhat.com>
38654
38655         PR rtl-optimization/32790
38656         * reginfo.c (reg_scan_mark_refs): Look for ZERO_EXTRACT,
38657         not ZERO_EXTEND in SET_DESTs.
38658
38659 2015-01-17  Alan Modra  <amodra@gmail.com>
38660
38661         * cprop.c (do_local_cprop): Revert last change.
38662
38663 2015-01-16  DJ Delorie  <dj@redhat.com>
38664             Nick Clifton  <nickc@redhat.com>
38665
38666         * config/rl78/rl78-real.md (addqi3_real): Allow volatiles.
38667         (addhi3_real): Likewise.  Fix [HL+0] syntax.
38668         (subqi3_real): Likewise.
38669         (subhi3_real): Likewise.
38670         (cbranchqi4_real): Likewise.  Allow saddr,#imm.
38671         (cbranchhi4_real): Likewise.
38672         (cbranchhi4_real_inverted): Likewise.
38673         (cbranchsi4_real_lt): Likewise.
38674         (cbranchsi4_real_ge): Likewise.
38675         (cbranchsi4_real_ge): Likewise.
38676         * config/rl78/rl78-virt.md (add<mode>3_virt): Likewise.
38677         (sub<mode>3_virt): Likewise.
38678         (cbranchqi4_virt): Likewise.
38679         (cbranchhi4_virt): Likewise.
38680         * config/rl78/rl78.c (rl78_print_operand_1): 'p' modifier means
38681         always use '[reg+imm]' even when imm is zero.
38682         * config/rl78/predicates.md (rl78_volatile_memory_operand): New.
38683         (rl78_general_operand): New.
38684         (rl78_nonimmediate_operand): New.
38685         (rl78_nonfar_operand): Use them.
38686         (rl78_nonfar_nonimm_operand): Likewise.
38687         (rl78_stack_based_mem): Fix.
38688         * config/rl78/constraints.md (Ibqi): New.
38689         (IBqi): New.
38690         (Wsa): New.
38691         (Wsf): New.
38692         (Cs1): Fix.
38693         * config/rl78/rl78-expand.md (andqi3): Accept volatiles.
38694         (iorqi3): Likewise.
38695         (xorqi3): Likewise.
38696         * config/rl78/rl78-protos.h (rl78_sfr_p): New.
38697
38698         * config/rl78/constrains (Qs8): New constraint.
38699         * config/rl78/rl78.c (rl78_flags_already_set): New function.
38700         * config/rl78/rl78-protos.h (rl78_flags_already_set): New prototype.
38701         * config/rl78/rl78-real.md (update_Z): New attribute.
38702         Update patterns to set it.
38703         (cbranchqi4_real): Call rl78_flags_already_set() to determine if a
38704         shorter compare and branch sequence can be used.
38705         (cbranchhi4_real): Likewise.
38706         (cbranchhi4_real_inverted): Likewise.
38707
38708         * config/rl78/predicates.md (uword_operand): Allow symbol_refs.
38709         * config/rl78/rl78-c.c (rl78_register_pragmas): Register __near
38710         address space.
38711         * config/rl78/rl78.c (rl78_get_name_encoding): New.
38712         (rl78_option_override): Allow -mes0 only if C.
38713         (characterize_address): Support subregs of symbol_refs.
38714         (rl78_addr_space_address_mode): Move.  Add __near.
38715         (rl78_far_p): Likewise.
38716         (rl78_addr_space_pointer_mode): Likewise.
38717         (rl78_as_legitimate_address): Likewise.
38718         (rl78_addr_space_subset_p): Likewise.
38719         (rl78_addr_space_convert): Likewise.
38720         (rl78_print_operand_1): Support 16-bit addressing of 32-bit
38721         symbols with -mes0.
38722         (transcode_memory_rtx): Don't copy ES if -mes0.  Allow symbol[BC]
38723         addressing.
38724         (rl78_alloc_physical_registers_op1): Change logic to prefer
38725         symbol[BC] addressing.
38726         (frodata_section): New.
38727         (rl78_asm_init_sections): Initialize it.
38728         (rl78_select_section): Put __far readonly symbols in .frodata.
38729         (rl78_make_type_far): New.
38730         (rl78_insert_attributes): Force all readonly symbols to be
38731         __far when -mes0.
38732         (rl78_asm_out_integer): New.
38733         * config/rl78/rl78.h (ADDR_SPACE_NEAR): New.
38734         * config/rl78/rl78.opt (-mes0): New.
38735
38736         * config/rl78/rl78.h (ASM_OUTPUT_LABELREF): New.
38737         (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
38738         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
38739         * config/rl78/rl78-protos.h (rl78_output_labelref): New.
38740         (rl78_saddr_p): New.
38741         (rl78_output_aligned_common): New.
38742         * config/rl78/rl78.c (rl78_output_symbol_ref): Strip encodings.
38743         (rl78_handle_saddr_attribute): New.
38744         (rl78_handle_naked_attribute): New.
38745         (rl78_attribute_table): Add saddr.
38746         (rl78_print_operand_1): Don't print '!' on saddr operands.
38747         (rl78_print_operand_1): Strip encodings.
38748         (rl78_sfr_p): New.
38749         (rl78_strip_name_encoding): New.
38750         (rl78_attrlist_to_encoding): New.
38751         (rl78_encode_section_info): New.
38752         (rl78_asm_init_sections): New.
38753         (rl78_select_section): New.
38754         (rl78_output_labelref): New.
38755         (rl78_output_aligned_common): New.
38756         (rl78_asm_out_integer): New.
38757         (rl78_asm_ctor_dtor): New.
38758         (rl78_asm_constructor): New.
38759         (rl78_asm_destructor): New.
38760
38761         * config/rl78/rl78-real.md (movqi_es): Rename to movqi_to_es.
38762         * config/rl78/rl78.c (rl78_expand_epilogue): Update.
38763         (transcode_memory_rtx): Update.
38764         (rl78_expand_epilogue): Use A_REG instead of 0.
38765
38766 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
38767
38768         * config/arm/arm-protos.h (struct tune_params): New field
38769         sched_autopref_queue_depth.
38770         * config/arm/arm.c (sched-int.h): Include header.
38771         (arm_first_cycle_multipass_dfa_lookahead_guard,)
38772         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define hook.
38773         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,)
38774         (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,)
38775         (arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,)
38776         (arm_cortex_a53_tune, arm_cortex_a57_tune, arm_xgene1_tune,)
38777         (arm_cortex_a5_tune, arm_cortex_a9_tune, arm_cortex_a12_tune,)
38778         (arm_v7m_tune, arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune):
38779         Specify sched_autopref_queue_depth value.  Enabled for A15 and A57.
38780         * config/arm/t-arm (arm.o): Update.
38781         * haifa-sched.c (update_insn_after_change): Update.
38782         (rank_for_schedule): Use auto-prefetcher model, if requested.
38783         (autopref_multipass_init): New static function.
38784         (autopref_rank_for_schedule): New rank_for_schedule heuristic.
38785         (autopref_multipass_dfa_lookahead_guard_started_dump_p): New static
38786         variable for debug dumps.
38787         (autopref_multipass_dfa_lookahead_guard_1): New static helper function.
38788         (autopref_multipass_dfa_lookahead_guard): New global function that
38789         implements TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD hook.
38790         (init_h_i_d): Update.
38791         * params.def (PARAM_SCHED_AUTOPREF_QUEUE_DEPTH): New tuning knob.
38792         * sched-int.h (enum autopref_multipass_data_status): New const enum.
38793         (autopref_multipass_data_): Structure for auto-prefetcher data.
38794         (autopref_multipass_data_def, autopref_multipass_data_t): New typedefs.
38795         (struct _haifa_insn_data:autopref_multipass_data): New field.
38796         (INSN_AUTOPREF_MULTIPASS_DATA): New access macro.
38797         (autopref_multipass_dfa_lookahead_guard): Declare.
38798
38799 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
38800
38801         * rtlanal.c (get_base_term): Handle SCRATCH.
38802
38803 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
38804
38805         * config/aarch64/aarch64.c
38806         (aarch64_sched_first_cycle_multipass_dfa_lookahead): Implement hook.
38807         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
38808         * config/arm/arm.c
38809         (arm_first_cycle_multipass_dfa_lookahead): Implement hook.
38810         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
38811
38812 2015-01-17  Alan Modra  <amodra@gmail.com>
38813
38814         * cprop.c (do_local_cprop): Disallow replacement of fixed
38815         hard registers.
38816
38817 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
38818
38819         PR target/62066
38820         * config/arm/arm-builtins.c (arm_expand_neon_args): Call va_end before
38821         early return 0.
38822
38823 2015-01-16  Bernd Edlinger  <bernd.edlinger@hotmail.de>
38824
38825         * sanitizer.def (BUILT_IN_TSAN_VPTR_UPDATE): Fixed parameters.
38826         * tsan.c (instrument_expr): Fixed parameters of __tsan_vptr_update.
38827
38828 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
38829
38830         * config/arm/arm.md: Move comment about splitting Thumb1 patterns to...
38831         * config/arm/thumb1.md: ... Here.
38832
38833 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
38834
38835         * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Disallow
38836         TImode for TARGET_32BIT.
38837
38838 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
38839
38840         * config/rs6000/rs6000.c (TARGET_LIBGCC_CMP_RETURN_MODE,
38841         TARGET_LIBGCC_SHIFT_COUNT_MODE, TARGET_UNWIND_WORD_MODE): Implement
38842         as ...
38843         (rs6000_abi_word_mode): New function.
38844
38845 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
38846
38847         * config/rs6000/rs6000.c (rs6000_va_start): Use MIN_UNITS_PER_WORD
38848         instead of UNITS_PER_WORD to describe the size of stack slots.
38849
38850 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
38851
38852         * config/rs6000/rs6000.c (TARGET_PROMOTE_FUNCTION_MODE): Implement
38853         as rs6000_promote_function_mode.  Move comment to there.
38854         (rs6000_promote_function_mode): New function.
38855
38856 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
38857
38858         * config/rs6000/rs6000.h (PROMOTE_MODE): Correct test for when -m32
38859         -mpowerpc64 is active.
38860
38861 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
38862
38863         PR middle-end/64353
38864         * tree-cfg.c (pass_data_fixup_cfg): Update SSA for
38865         virtuals on start.
38866
38867 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
38868
38869         * config/arm/cortex-a57.md: Remove duplicate of file accidentally
38870         introduced in revision 219724.
38871
38872 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
38873             Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
38874
38875         PR target/64263
38876         * config/aarch64/aarch64.md (*movsi_aarch64): Don't split if the
38877         destination is not a GP reg.
38878         (*movdi_aarch64): Likewise.
38879
38880 2015-01-16  David Edelsohn  <dje.gcc@gmail.com>
38881
38882         PR target/64623
38883         * config/rs6000/default64.h: Revert ISA change.
38884
38885 2015-01-16  Richard Biener  <rguenther@suse.de>
38886
38887         PR middle-end/64614
38888         * tree-ssa-uninit.c: Include tree-cfg.h.
38889         (MAX_SWITCH_CASES): New define.
38890         (convert_control_dep_chain_into_preds): Handle switch statements.
38891         (is_pred_expr_subset_of): Handle x == CST vs. (x & CST) != 0.
38892         (normalize_one_pred_1): Do not split bit-manipulations.
38893         Record (x & CST).
38894
38895 2015-01-16  Richard Biener  <rguenther@suse.de>
38896
38897         PR tree-optimization/64568
38898         * tree-ssa-forwprop.c (pass_forwprop::execute): Guard
38899         complex load rewriting for TARGET_MEM_REFs.
38900
38901 2015-01-16  Uros Bizjak  <ubizjak@gmail.com>
38902
38903         * builtins.c (expand_builtin_acc_on_device): Check target for NULL.
38904
38905 2015-01-16  Matthew Wahab  <matthew.wahab@arm.com>
38906
38907         PR target/64149
38908         * config/aarch64/aarch64.opt: Remove lra option and aarch64_lra_flag
38909         variable.
38910         * config/aarch64/aarch64.c (TARGET_LRA_P): Set to hook_bool_void_true.
38911         (aarch64_lra_p): Remove.
38912
38913 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
38914
38915         PR target/64363
38916         * ipa-chkp.h (chkp_instrumentable_p): New.
38917         * ipa-chkp.c: Include tree-inline.h.
38918         (chkp_instrumentable_p): New.
38919         (chkp_maybe_create_clone): Use chkp_instrumentable_p.
38920         Fix processing of not instrumentable functions.
38921         (chkp_versioning): Use chkp_instrumentable_p. Warn about
38922         not instrumentable functions.
38923         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Use
38924         chkp_instrumentable_p.
38925         * tree-inline.h (copy_forbidden): New.
38926         * tree-inline.c (copy_forbidden): Not static anymore.
38927
38928 2015-01-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38929
38930         * optc-save-gen.awk (cl_target_option_print_diff): Mark indent,
38931         ptr1, ptr2 unused.
38932
38933 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
38934
38935         * lra-constraints.c (curr_insn_transform): Change a reload pseudo of
38936         type OP_OUT to OP_INOUT.
38937
38938 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
38939
38940         * simplify-rtx.c (simplify_replace_fn_rtx): Simplify (lo_sum
38941         (high x) y) to y if x and y have the same base.
38942
38943 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
38944
38945         * config/arm/cortex-a57.md: New.
38946         * config/aarch64/aarch64.md: Include it.
38947         * config/aarch64/aarch64-cores.def (cortex-a57): Tune for it.
38948         * config/aarch64/aarch64-tune.md: Regenerate.
38949
38950 2015-01-16  Zhenqiang Chen  <zhenqiang.chen@arm.com>
38951
38952         PR target/64015
38953         * ccmp.c (expand_ccmp_next): New function.
38954         (expand_ccmp_expr_1, expand_ccmp_expr): Handle operand insn sequence
38955         and compare insn sequence.
38956         * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
38957         aarch64_gen_ccmp_first, aarch64_gen_ccmp_next): New functions.
38958         (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New MICRO.
38959         * config/aarch64/aarch64.md (*ccmp_and): Changed to ccmp_and<mode>.
38960         (*ccmp_ior): Changed to ccmp_ior<mode>.
38961         (cmp<mode>): New pattern.
38962         * doc/tm.texi (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Update
38963         parameters.
38964         * target.def (gen_ccmp_first, gen_ccmp_next): Update parameters.
38965
38966 2015-01-16  Ilya Tocar  <ilya.tocar@intel.com>
38967
38968         * config/i386/avx2intrin.h (_mm256_bslli_epi128,
38969         _mm256_bsrli_epi128): New.
38970         * config/i386/emmintrin.h (_mm_bsrli_si128, _mm_bslli_si128): Ditto.
38971
38972 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
38973
38974         * expmed.c (store_bit_field_using_insv): Improve warning message.
38975         Use %wu instead of HOST_WIDE_INT_PRINT_UNSIGNED.
38976
38977 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
38978
38979         PR rtl-optimization/64011
38980         * expmed.c (store_bit_field_using_insv): Warn and truncate bitsize when
38981         there is partial overflow.
38982
38983 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
38984
38985         * config/nds32/nds32-protos.h (nds32_expand_epilogue): Change
38986         prototype.
38987         (nds32_expand_epilogue_v3pop): Likewise.
38988         * config/nds32/nds32.md (sibcall): Define this for sibling call
38989         optimization.
38990         (sibcall_register): Likewise.
38991         (sibcall_immediate): Likewise.
38992         (sibcall_value): Likewise.
38993         (sibcall_value_register): Likewise.
38994         (sibcall_value_immediate): Likewise.
38995         (sibcall_epilogue): Likewise.
38996         (epilogue): Pass false to indicate this is not a sibcall epilogue.
38997         * config/nds32/nds32.c (nds32_expand_epilogue): Consider sibcall case.
38998         (nds32_expand_epilogue_v3pop): Likewise.
38999
39000 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
39001
39002         * config/nds32/nds32-protos.h (nds32_can_use_return_insn): New.
39003         * config/nds32/nds32.md (unspec_volatile_func_return): Remove.
39004         (return_internal): New.
39005         (return): Define this named pattern.
39006         (simple_return): Define this named pattern.
39007         * config/nds32/nds32.c (nds32_expand_epilogue): Emit return_internal
39008         pattern instead of unspec_volatile_func_return.
39009         (nds32_expand_epilogue_v3pop): Likewise.
39010         (nds32_can_use_return_insn): New function.
39011
39012 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
39013
39014         * config/nds32/constants.md (UNSPEC_VOLATILE_POP25_RETURN): New.
39015         * config/nds32/nds32.md (pop25return): New.
39016         * config/nds32/nds32.c (nds32_expand_epilogue_v3pop): Emit
39017         pop25return pattern.
39018
39019 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
39020
39021         * doc/invoke.texi (NDS32 Options): Remove -mforce-fp-as-gp,
39022         -mforbid-fp-as-gp, and -mex9 options.
39023
39024 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
39025
39026         * doc/invoke.texi (NDS32 Options): Add -mcmodel= option and
39027         remove -mgp-direct option.
39028
39029 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
39030
39031         * doc/invoke.texi (--param early-inlining-insns): Update default value.
39032         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 14.
39033
39034 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
39035
39036         * ipa-inline.c (inline_small_functions): Work around hints
39037         cache issue.
39038
39039 2015-01-15  Sandra Loosemore  <sandra@codesourcery.com>
39040
39041         PR target/59710
39042         * doc/invoke.texi (Option Summary): Document new Nios II
39043         -mgpopt= syntax.
39044         (Nios II Options): Likewise.
39045         * config/nios2/nios2.opt: Add -mgpopt= option support.
39046         Modify existing -mgpopt and -mno-gpopt options to be aliases.
39047         * config/nios2/nios2-opts.h (enum nios2_gpopt_type): New.
39048         * config/nios2/nios2.c (nios2_option_override): Adjust
39049         -mgpopt defaulting.
39050         (nios2_in_small_data_p): Return true for explicit small data
39051         sections even with -G0.
39052         (nios2_symbol_ref_in_small_data_p): Adjust to handle new -mgpopt=
39053         option choices.
39054
39055 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
39056
39057         PR ipa/64612
39058         * ipa-inline-transform.c (can_remove_node_now_p): Fix handling
39059         of comdat locals.
39060         (inline_call): Fix removal of aliases.
39061
39062 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
39063
39064         * flag-types.h (enum sanitize_code): Add SANITIZE_VPTR,
39065         include SANITIZE_VPTR in SANITIZE_UNDEFINED.
39066         * opts.c (common_handle_option): Add -fsanitize=vptr.
39067         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS,
39068         BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS_ABORT): New.
39069         * ubsan.h (enum ubsan_null_ckind): Add UBSAN_DOWNCAST_POINTER,
39070         UBSAN_DOWNCAST_REFERENCE, UBSAN_UPCAST and UBSAN_CAST_TO_VBASE.
39071         (ubsan_expand_vptr_ifn): New prototype.
39072         * internal-fn.c (expand_ANNOTATE, expand_GOMP_SIMD_LANE,
39073         expand_GOMP_SIMD_VF, expand_GOMP_SIMD_LAST_LANE, expand_UBSAN_NULL,
39074         expand_UBSAN_BOUNDS, expand_UBSAN_OBJECT_SIZE, expand_ASAN_CHECK,
39075         expand_LOOP_VECTORIZED): Make argument nameless, remove
39076         ATTRIBUTE_UNUSED.
39077         (expand_UBSAN_VPTR): New function.
39078         * internal-fn.def (UBSAN_NULL, ASAN_CHECK): Use R instead of W
39079         in fn spec.
39080         (UBSAN_VPTR): New internal function.
39081         * sanopt.c (tree_map_traits): Renamed to ...
39082         (sanopt_tree_map_traits): ... this.
39083         (sanopt_tree_triplet, sanopt_tree_triplet_map_traits): New classes.
39084         (sanopt_ctx): Adjust asan_check_map type for tree_map_traits
39085         to sanopt_tree_map_traits renaming.  Add vptr_check_map field.
39086         (maybe_optimize_ubsan_vptr_ifn): New function.
39087         (sanopt_optimize_walker): Handle IFN_UBSAN_VPTR.
39088         (pass_sanopt::execute): Likewise.  Call sanopt_optimize even for
39089         -fsanitize=vptr.
39090         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Handle certain
39091         internal calls like pure functions for aliasing, even when they
39092         have other side-effects that prevent making them ECF_PURE.
39093         * ubsan.c (ubsan_vptr_type_cache_decl): New variable.
39094         (ubsan_expand_vptr_ifn): New function.
39095
39096 2015-01-15  Vladimir Makarov  <vmakarov@redhat.com>
39097
39098         PR rtl-optimization/64110
39099         * stmt.c (parse_output_constraint): Process '^' and '$'.
39100         (parse_input_constraint): Ditto.
39101         * lra-constraints.c (process_alt_operands): Process the new
39102         constraints.
39103         * ira-costs.c (record_reg_classes): Process the new constraint
39104         '^'.
39105         * genoutput.c (indep_constraints): Add '^' and '$'.
39106         * config/i386/sse.md (*vec_dup<mode>): Use '$' instead of '!'.
39107         * doc/md.texi: Add description of the new constraints.
39108
39109 2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
39110             Bernd Schmidt  <bernds@codesourcery.com>
39111             Cesar Philippidis  <cesar@codesourcery.com>
39112             James Norris  <jnorris@codesourcery.com>
39113             Tom de Vries  <tom@codesourcery.com>
39114             Ilmir Usmanov  <i.usmanov@samsung.com>
39115             Dmitry Bocharnikov  <dmitry.b@samsung.com>
39116             Evgeny Gavrin  <e.gavrin@samsung.com>
39117             Jakub Jelinek  <jakub@redhat.com>
39118
39119         * builtin-types.def (BT_FN_VOID_INT_INT_VAR)
39120         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
39121         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
39122         New function types.
39123         * builtins.c: Include "gomp-constants.h".
39124         (expand_builtin_acc_on_device): New function.
39125         (expand_builtin, is_inexpensive_builtin): Handle
39126         BUILT_IN_ACC_ON_DEVICE.
39127         * builtins.def (DEF_GOACC_BUILTIN, DEF_GOACC_BUILTIN_COMPILER):
39128         New macros.
39129         * cgraph.c (cgraph_node::create): Consider flag_openacc next to
39130         flag_openmp.
39131         * config.gcc <nvptx-*> (tm_file): Add nvptx/offload.h.
39132         <*-intelmic-* | *-intelmicemul-*> (tm_file): Add
39133         i386/intelmic-offload.h.
39134         * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): For -fopenacc, link
39135         to libgomp and its dependencies.
39136         * config/arc/arc.h (LINK_COMMAND_SPEC): Likewise.
39137         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
39138         * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
39139         * config/ia64/hpux.h (LIB_SPEC): Likewise.
39140         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
39141         * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
39142         * doc/generic.texi: Update for OpenACC changes.
39143         * doc/gimple.texi: Likewise.
39144         * doc/invoke.texi: Likewise.
39145         * doc/sourcebuild.texi: Likewise.
39146         * gimple-pretty-print.c (dump_gimple_omp_for): Handle
39147         GF_OMP_FOR_KIND_OACC_LOOP.
39148         (dump_gimple_omp_target): Handle GF_OMP_TARGET_KIND_OACC_KERNELS,
39149         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_DATA,
39150         GF_OMP_TARGET_KIND_OACC_UPDATE,
39151         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
39152         Dump more data.
39153         * gimple.c: Update comments for OpenACC changes.
39154         * gimple.def: Likewise.
39155         * gimple.h: Likewise.
39156         (enum gf_mask): Add GF_OMP_FOR_KIND_OACC_LOOP,
39157         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
39158         GF_OMP_TARGET_KIND_OACC_DATA, GF_OMP_TARGET_KIND_OACC_UPDATE,
39159         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
39160         (gimple_omp_for_cond, gimple_omp_for_set_cond): Sort in the
39161         appropriate place.
39162         (is_gimple_omp_oacc, is_gimple_omp_offloaded): New functions.
39163         * gimplify.c: Include "gomp-constants.h".
39164         Update comments for OpenACC changes.
39165         (is_gimple_stmt): Handle OACC_PARALLEL, OACC_KERNELS, OACC_DATA,
39166         OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE, OACC_ENTER_DATA,
39167         OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
39168         (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
39169         OMP_CLAUSE__CACHE_, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
39170         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
39171         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER,
39172         OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
39173         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
39174         OMP_CLAUSE_SEQ.
39175         (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Use
39176         GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
39177         OMP_CLAUSE_SET_MAP_KIND.
39178         (gimplify_oacc_cache): New function.
39179         (gimplify_omp_for): Handle OACC_LOOP.
39180         (gimplify_omp_workshare): Handle OACC_KERNELS, OACC_PARALLEL,
39181         OACC_DATA.
39182         (gimplify_omp_target_update): Handle OACC_ENTER_DATA,
39183         OACC_EXIT_DATA, OACC_UPDATE.
39184         (gimplify_expr): Handle OACC_LOOP, OACC_CACHE, OACC_HOST_DATA,
39185         OACC_DECLARE, OACC_KERNELS, OACC_PARALLEL, OACC_DATA,
39186         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE.
39187         (gimplify_body): Consider flag_openacc next to flag_openmp.
39188         * lto-streamer-out.c: Include "gomp-constants.h".
39189         * omp-builtins.def (BUILT_IN_ACC_GET_DEVICE_TYPE)
39190         (BUILT_IN_GOACC_DATA_START, BUILT_IN_GOACC_DATA_END)
39191         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL)
39192         (BUILT_IN_GOACC_UPDATE, BUILT_IN_GOACC_WAIT)
39193         (BUILT_IN_GOACC_GET_THREAD_NUM, BUILT_IN_GOACC_GET_NUM_THREADS)
39194         (BUILT_IN_ACC_ON_DEVICE): New builtins.
39195         * omp-low.c: Include "gomp-constants.h".
39196         Update comments for OpenACC changes.
39197         (struct omp_context): Add reduction_map, gwv_below, gwv_this
39198         members.
39199         (extract_omp_for_data, use_pointer_for_field, install_var_field)
39200         (new_omp_context, delete_omp_context, scan_sharing_clauses)
39201         (create_omp_child_function, scan_omp_for, scan_omp_target)
39202         (check_omp_nesting_restrictions, lower_reduction_clauses)
39203         (build_omp_regions_1, diagnose_sb_0, make_gimple_omp_edges):
39204         Update for OpenACC changes.
39205         (scan_sharing_clauses): Handle OMP_CLAUSE_NUM_GANGS:
39206         OMP_CLAUSE_NUM_WORKERS: OMP_CLAUSE_VECTOR_LENGTH,
39207         OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT, OMP_CLAUSE_GANG,
39208         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
39209         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_INDEPENDENT,
39210         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ.  Use GOMP_MAP_* instead of
39211         OMP_CLAUSE_MAP_*.
39212         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
39213         Handle GF_OMP_FOR_KIND_OACC_LOOP.
39214         (expand_omp_target, lower_omp_target): Handle
39215         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
39216         GF_OMP_TARGET_KIND_OACC_UPDATE,
39217         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA,
39218         GF_OMP_TARGET_KIND_OACC_DATA.
39219         (pass_expand_omp::execute, execute_lower_omp)
39220         (pass_diagnose_omp_blocks::gate): Consider flag_openacc next to
39221         flag_openmp.
39222         (offload_symbol_decl): New variable.
39223         (oacc_get_reduction_array_id, oacc_max_threads)
39224         (get_offload_symbol_decl, get_base_type, lookup_oacc_reduction)
39225         (maybe_lookup_oacc_reduction, enclosing_target_ctx)
39226         (oacc_loop_or_target_p, oacc_lower_reduction_var_helper)
39227         (oacc_gimple_assign, oacc_initialize_reduction_data)
39228         (oacc_finalize_reduction_data, oacc_process_reduction_data): New
39229         functions.
39230         (is_targetreg_ctx): Remove function.
39231         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CACHE_,
39232         OMP_CLAUSE_DEVICE_RESIDENT, OMP_CLAUSE_USE_DEVICE,
39233         OMP_CLAUSE_GANG, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
39234         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT,
39235         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_NUM_GANGS,
39236         OMP_CLAUSE_NUM_WORKERS, OMP_CLAUSE_VECTOR_LENGTH.
39237         * tree.c (omp_clause_code_name, walk_tree_1): Update accordingly.
39238         * tree.h (OMP_CLAUSE_GANG_EXPR, OMP_CLAUSE_GANG_STATIC_EXPR)
39239         (OMP_CLAUSE_ASYNC_EXPR, OMP_CLAUSE_WAIT_EXPR)
39240         (OMP_CLAUSE_VECTOR_EXPR, OMP_CLAUSE_WORKER_EXPR)
39241         (OMP_CLAUSE_NUM_GANGS_EXPR, OMP_CLAUSE_NUM_WORKERS_EXPR)
39242         (OMP_CLAUSE_VECTOR_LENGTH_EXPR): New macros.
39243         * tree-core.h: Update comments for OpenACC changes.
39244         (enum omp_clause_map_kind): Remove.
39245         (struct tree_omp_clause): Change type of map_kind member from enum
39246         omp_clause_map_kind to unsigned char.
39247         * tree-inline.c: Update comments for OpenACC changes.
39248         * tree-nested.c: Likewise.  Include "gomp-constants.h".
39249         (convert_nonlocal_reference_stmt, convert_local_reference_stmt)
39250         (convert_tramp_reference_stmt, convert_gimple_call): Update for
39251         OpenACC changes.  Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
39252         OMP_CLAUSE_SET_MAP_KIND.
39253         * tree-pretty-print.c: Include "gomp-constants.h".
39254         (dump_omp_clause): Handle OMP_CLAUSE_DEVICE_RESIDENT,
39255         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_GANG,
39256         OMP_CLAUSE_ASYNC, OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ,
39257         OMP_CLAUSE_WAIT, OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR,
39258         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
39259         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_INDEPENDENT.  Use GOMP_MAP_*
39260         instead of OMP_CLAUSE_MAP_*.
39261         (dump_generic_node): Handle OACC_PARALLEL, OACC_KERNELS,
39262         OACC_DATA, OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE,
39263         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
39264         * tree-streamer-in.c: Include "gomp-constants.h".
39265         (unpack_ts_omp_clause_value_fields) Use GOMP_MAP_* instead of
39266         OMP_CLAUSE_MAP_*.  Use OMP_CLAUSE_SET_MAP_KIND.
39267         * tree-streamer-out.c: Include "gomp-constants.h".
39268         (pack_ts_omp_clause_value_fields): Use GOMP_MAP_* instead of
39269         OMP_CLAUSE_MAP_*.
39270         * tree.def (OACC_PARALLEL, OACC_KERNELS, OACC_DATA)
39271         (OACC_HOST_DATA, OACC_LOOP, OACC_CACHE, OACC_DECLARE)
39272         (OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE): New tree codes.
39273         * tree.c (omp_clause_num_ops): Update accordingly.
39274         * tree.h (OMP_BODY, OMP_CLAUSES, OMP_LOOP_CHECK, OMP_CLAUSE_SIZE):
39275         Likewise.
39276         (OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES, OACC_KERNELS_BODY)
39277         (OACC_KERNELS_CLAUSES, OACC_DATA_BODY, OACC_DATA_CLAUSES)
39278         (OACC_HOST_DATA_BODY, OACC_HOST_DATA_CLAUSES, OACC_CACHE_CLAUSES)
39279         (OACC_DECLARE_CLAUSES, OACC_ENTER_DATA_CLAUSES)
39280         (OACC_EXIT_DATA_CLAUSES, OACC_UPDATE_CLAUSES)
39281         (OACC_KERNELS_COMBINED, OACC_PARALLEL_COMBINED): New macros.
39282         * tree.h (OMP_CLAUSE_MAP_KIND): Cast it to enum gomp_map_kind.
39283         (OMP_CLAUSE_SET_MAP_KIND): New macro.
39284         * varpool.c (varpool_node::get_create): Consider flag_openacc next
39285         to flag_openmp.
39286         * config/i386/intelmic-offload.h: New file.
39287         * config/nvptx/offload.h: Likewise.
39288
39289 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
39290
39291         * explow.h: Remove duplicate contents.
39292         * dojump.h: Likewise.
39293
39294 2015-01-15  Richard Earnshaw  <rearnsha@arm.com>
39295
39296         * arm.c (arm_xgene_tune): Add default initializer for instruction
39297         fusion.
39298
39299 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
39300
39301         PR ipa/64068
39302         PR ipa/64559
39303         * ipa.c (symbol_table::remove_unreachable_nodes):
39304         Do not put abstract origins into boundary.
39305
39306 2015-01-15  Evgeny Stupachenko  <evstupac@gmail.com>
39307
39308         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Remove EBX register usage.
39309         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Ditto.
39310
39311 2015-01-15  Steve Ellcey  <sellcey@mips.com>
39312
39313         * Makefile.in (PLUGIN_HEADERS): Add dominance.h, cfg.h, cfgrtl.h,
39314         cfganal.h, cfgbuild.h, cfgcleanup.h, lcm.h, cfgloopmanip.h,
39315         builtins.def, and chkp-builtins.def.
39316
39317 2015-01-15  David Edelsohn  <dje.gcc@gmail.com>
39318
39319         * config/rs6000/default64.h (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use
39320         ISA 2.7 (POWER8).
39321
39322 2015-01-15  Richard Biener  <rguenther@suse.de>
39323
39324         PR tree-optimization/61743
39325         * tree-ssa-pre.c (insert_into_preds_of_block): Preserve range
39326         information on PHIs for some simple cases.
39327
39328 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
39329
39330         * config/arm/arm.md (generic_sched): Specify xgene1 in 'no' list.
39331         Include xgene1.md.
39332         * config/arm/arm.c (arm_issue_rate): Specify 4 for xgene1.
39333         * config/arm/arm-cores.def (xgene1): New entry.
39334         * config/arm/arm-tables.opt: Regenerate.
39335         * config/arm/arm-tune.md: Regenerate.
39336         * config/arm/bpabi.h (BE8_LINK_SPEC): Specify mcpu=xgene1.
39337
39338 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
39339
39340         * tree-if-conv.c: Include hash-map.h.
39341         (aggressive_if_conv): New variable.
39342         (fold_build_cond_expr): Add simplification of non-zero condition.
39343         (add_to_dst_predicate_list): Invoke add_to_predicate_list if edge
39344         destination block is not always executed.
39345         (if_convertible_phi_p): Fix commentary, allow phi nodes have more
39346         than two predecessors if AGGRESSIVE_IF_CONV is true.
39347         (if_convertible_stmt_p): Fix commentary.
39348         (all_preds_critical_p): New function.
39349         (has_pred_critical_p): New function.
39350         (if_convertible_bb_p): Fix commentary, if AGGRESSIVE_IF_CONV is true
39351         BB can have more than two predecessors and all incoming edges can be
39352         critical.
39353         (predicate_bbs): Skip predication for loop exit block, use build2_loc
39354         to compute predicate for true edge.
39355         (find_phi_replacement_condition): Delete this function.
39356         (is_cond_scalar_reduction): Add arguments ARG_0, ARG_1 and EXTENDED.
39357         Allow interchange PHI arguments if EXTENDED is false.
39358         Change check that block containing reduction statement candidate
39359         is predecessor of phi-block since phi may have more than two arguments.
39360         (phi_args_hash_traits): New helper structure.
39361         (struct phi_args_hash_traits): New type.
39362         (phi_args_hash_traits::hash): New function.
39363         (phi_args_hash_traits::equal_keys): New function.
39364         (gen_phi_arg_condition): New function.
39365         (predicate_scalar_phi): Add handling of phi nodes with more than two
39366         arguments, delete COND and TRUE_BB arguments, insert body of
39367         find_phi_replacement_condition to predicate ordinary phi nodes.
39368         (predicate_all_scalar_phis): Skip blocks with the only predecessor,
39369         delete call of find_phi_replacement_condition and invoke
39370         predicate_scalar_phi with two arguments.
39371         (insert_gimplified_predicates): Add assert that non-predicated block
39372         don't have statements to insert.
39373         (ifcvt_split_critical_edges): New function.
39374         (ifcvt_split_def_stmt): Likewise.
39375         (ifcvt_walk_pattern_tree): Likewise.
39376         (stmt_is_root_of_bool_pattern): Likewise.
39377         (ifcvt_repair_bool_pattern): Likewise.
39378         (ifcvt_local_dce): Likewise.
39379         (tree_if_conversion): Add initialization of AGGRESSIVE_IF_CONV which
39380         is copy of inner or outer loop force_vectorize field, invoke
39381         ifcvt_split_critical_edges, ifcvt_local_dce and
39382         ifcvt_repair_bool_pattern for aggressive if-conversion.
39383
39384 2015-01-15  Philipp Tomsich  <ptomsich@theobroma-systems.com>
39385
39386         * config/aarch64/aarch64.md: Include xgene1.md.
39387         * config/aarch64/xgene1.md: New file.
39388
39389 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
39390
39391         * config/aarch64/aarch64-cores.def (xgene1): Update/add the
39392         xgene1 (APM XGene-1) core definition.
39393         * config/aarch64/aarch64.c: Add cost tables for APM XGene-1
39394         * config/arm/aarch-cost-tables.h: Add cost tables for APM XGene-1
39395         * doc/invoke.texi: Document -mcpu=xgene1.
39396
39397 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
39398
39399         * dojump.h: New header file.
39400         * explow.h: Likewise.
39401         * expr.h: Remove includes.
39402         Move expmed.c prototypes to expmed.h.
39403         Move dojump.c prototypes to dojump.h.
39404         Move alias.c prototypes to alias.h.
39405         Move explow.c prototypes to explow.h.
39406         Move calls.c prototypes to calls.h.
39407         Move emit-rtl.c prototypes to emit-rtl.h.
39408         Move varasm.c prototypes to varasm.h.
39409         Move stmt.c prototypes to stmt.h.
39410         (saved_pending_stack_adjust): Move to dojump.h.
39411         (adjust_address): Move to explow.h.
39412         (adjust_address_nv): Move to emit-rtl.h.
39413         (adjust_bitfield_address): Likewise.
39414         (adjust_bitfield_address_size): Likewise.
39415         (adjust_bitfield_address_nv): Likewise.
39416         (adjust_automodify_address_nv): Likewise.
39417         * explow.c (expr_size): Move to expr.c.
39418         (int_expr_size): Likewise.
39419         (tree_expr_size): Likewise.
39420         Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39421         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
39422         * genemit.c (main): Generate includes statistics.h, real.h,
39423         fixed-value.h, insn-config.h, expmed.h, dojump.h, explow.h, emit-rtl.h,
39424         stmt.h.
39425         * genopinit.c (main): Generate includes hashtab.h, hard-reg-set.h,
39426         function.h, statistics.h, real.h, fixed-value.h, expmed.h, dojump.h,
39427         explow.h, emit-rtl.h, stmt.h.
39428         * genoutput.c (main): Generate includes hashtab.h, statistics.h, real.h,
39429         fixed-value.h, expmed.h, dojump.h, explow.h, emit-rtl.h, stmt.h.
39430         * genemit.c (open_base_files): Generate includes flags.h, statistics.h,
39431         real.h, fixed-value.h, tree.h, expmed.h, dojump.h, explow.h, calls.h,
39432         emit-rtl.h, varasm.h, stmt.h.
39433         * config/tilepro/gen-mul-tables.cc: Generate includes hashtab.h,
39434         hash-set.h, vec.h, machmode.h, tm.h, hard-reg-set.h, input.h,
39435         function.h, rtl.h, flags.h, statistics.h, double-int.h, real.h,
39436         fixed-value.h, alias.h, wide-int.h, inchash.h, tree.h, insn-config.h,
39437         expmed.h, dojump.h, explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
39438         * config/tilegx/mul-tables.c: Include alias.h calls.h dojump.h
39439         double-int.h emit-rtl.h explow.h expmed.h fixed-value.h flags.h
39440         function.h hard-reg-set.h hash-set.h hashtab.h inchash.h input.h
39441         insn-config.h machmode.h real.h rtl.h statistics.h stmt.h symtab.h
39442         tm.h tree.h varasm.h vec.h wide-int.h.
39443         * rtlhooks.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
39444         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
39445         hash-set.h hashtab.h inchash.h input.h insn-config.h machmode.h
39446         real.h statistics.h stmt.h tree.h varasm.h vec.h wide-int.h.
39447         * cfgloopanal.c: Include alias.h calls.h dojump.h double-int.h
39448         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h
39449         insn-config.h real.h statistics.h stmt.h tree.h varasm.h wide-int.h.
39450         * loop-iv.c: Likewise.
39451         * lra-assigns.c: Include alias.h calls.h dojump.h double-int.h
39452         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h real.h
39453         statistics.h stmt.h tree.h varasm.h wide-int.h.
39454         * lra-constraints.c: Likewise.
39455         * lra-eliminations.c: Likewise.
39456         * lra-lives.c: Likewise.
39457         * lra-remat.c: Likewise.
39458         * bt-load.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
39459         explow.h expmed.h fixed-value.h inchash.h insn-config.h real.h
39460         statistics.h stmt.h tree.h varasm.h wide-int.h.
39461         * hw-doloop.c: Likewise.
39462         * ira-color.c: Likewise.
39463         * ira-emit.c: Likewise.
39464         * loop-doloop.c: Likewise.
39465         * loop-invariant.c: Likewise.
39466         * reload.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
39467         explow.h expmed.h fixed-value.h inchash.h real.h rtl.h
39468         statistics.h stmt.h tree.h varasm.h wide-int.h.
39469         * caller-save.c: Include alias.h calls.h dojump.h double-int.h
39470         emit-rtl.h explow.h expmed.h fixed-value.h inchash.h real.h
39471         statistics.h stmt.h tree.h varasm.h wide-int.h.
39472         * combine-stack-adj.c: Likewise.
39473         * cse.c: Likewise.
39474         * ddg.c: Likewise.
39475         * ifcvt.c: Likewise.
39476         * ira-costs.c: Likewise.
39477         * jump.c: Likewise.
39478         * lra-coalesce.c: Likewise.
39479         * lra-spills.c: Likewise.
39480         * profile.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
39481         explow.h expmed.h fixed-value.h insn-config.h real.h statistics.h
39482         stmt.h varasm.h wide-int.h.
39483         * lra.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
39484         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
39485         varasm.h.
39486         * config/sh/sh_treg_combine.cc: Include alias.h calls.h dojump.h
39487         double-int.h explow.h expmed.h fixed-value.h flags.h real.h
39488         statistics.h stmt.h varasm.h wide-int.h.
39489         * reorg.c: Include alias.h calls.h dojump.h double-int.h explow.h
39490         expmed.h fixed-value.h inchash.h real.h statistics.h stmt.h tree.h
39491         varasm.h wide-int.h.
39492         * reload1.c: Include alias.h calls.h dojump.h double-int.h explow.h
39493         expmed.h fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
39494         * config/tilegx/tilegx.c: Include alias.h dojump.h double-int.h
39495         emit-rtl.h explow.h expmed.h fixed-value.h flags.h real.h
39496         statistics.h stmt.h.
39497         * config/tilepro/tilepro.c: Likewise.
39498         * config/mmix/mmix.c: Include alias.h dojump.h double-int.h emit-rtl.h
39499         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h.
39500         * config/pdp11/pdp11.c: Likewise.
39501         * config/xtensa/xtensa.c: Likewise.
39502         * config/lm32/lm32.c: Include alias.h dojump.h double-int.h emit-rtl.h
39503         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
39504         varasm.h.
39505         * tree-chkp.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39506         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
39507         insn-config.h real.h rtl.h statistics.h stmt.h tm.h.
39508         * cilk-common.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39509         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
39510         insn-config.h real.h rtl.h statistics.h stmt.h tm.h varasm.h.
39511         * rtl-chkp.c: Likewise.
39512         * tree-chkp-opt.c: Likewise.
39513         * config/arm/arm-builtins.c: Include calls.h dojump.h emit-rtl.h
39514         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
39515         hashtab.h insn-config.h real.h statistics.h stmt.h varasm.h.
39516         * ipa-icf.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39517         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
39518         statistics.h stmt.h.
39519         * tree-vect-data-refs.c: Likewise.
39520         * graphite-sese-to-poly.c: Include calls.h dojump.h emit-rtl.h explow.h
39521         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
39522         rtl.h statistics.h stmt.h varasm.h.
39523         * internal-fn.c: Likewise.
39524         * ipa-icf-gimple.c: Likewise.
39525         * lto-section-out.c: Likewise.
39526         * tree-data-ref.c: Likewise.
39527         * tree-nested.c: Likewise.
39528         * tree-outof-ssa.c: Likewise.
39529         * tree-predcom.c: Likewise.
39530         * tree-pretty-print.c: Likewise.
39531         * tree-scalar-evolution.c: Likewise.
39532         * tree-ssa-strlen.c: Likewise.
39533         * tree-vect-loop.c: Likewise.
39534         * tree-vect-patterns.c: Likewise.
39535         * tree-vect-slp.c: Likewise.
39536         * tree-vect-stmts.c: Likewise.
39537         * tsan.c: Likewise.
39538         * targhooks.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39539         fixed-value.h flags.h hashtab.h insn-config.h real.h statistics.h
39540         stmt.h.
39541         * config/sh/sh-mem.cc: Include calls.h dojump.h emit-rtl.h explow.h
39542         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
39543         statistics.h stmt.h varasm.h.
39544         * loop-unroll.c: Likewise.
39545         * ubsan.c: Likewise.
39546         * tree-ssa-loop-prefetch.c: Include calls.h dojump.h emit-rtl.h explow.h
39547         expmed.h fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h
39548         stmt.h varasm.h.
39549         * dse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39550         fixed-value.h function.h hashtab.h statistics.h stmt.h varasm.h.
39551         * tree-switch-conversion.c: Include calls.h dojump.h emit-rtl.h explow.h
39552         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
39553         statistics.h stmt.h.
39554         * generic-match-head.c: Include calls.h dojump.h emit-rtl.h explow.h
39555         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
39556         statistics.h stmt.h varasm.h.
39557         * gimple-match-head.c: Likewise.
39558         * lto-cgraph.c: Likewise.
39559         * lto-section-in.c: Likewise.
39560         * lto-streamer-in.c: Likewise.
39561         * lto-streamer-out.c: Likewise.
39562         * tree-affine.c: Likewise.
39563         * tree-cfg.c: Likewise.
39564         * tree-cfgcleanup.c: Likewise.
39565         * tree-if-conv.c: Likewise.
39566         * tree-into-ssa.c: Likewise.
39567         * tree-ssa-alias.c: Likewise.
39568         * tree-ssa-copyrename.c: Likewise.
39569         * tree-ssa-dse.c: Likewise.
39570         * tree-ssa-forwprop.c: Likewise.
39571         * tree-ssa-live.c: Likewise.
39572         * tree-ssa-math-opts.c: Likewise.
39573         * tree-ssa-pre.c: Likewise.
39574         * tree-ssa-sccvn.c: Likewise.
39575         * tree-tailcall.c: Likewise.
39576         * tree-vect-generic.c: Likewise.
39577         * tree-sra.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39578         fixed-value.h hashtab.h insn-config.h real.h rtl.h stmt.h varasm.h.
39579         * stor-layout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39580         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h.
39581         * varasm.c: Likewise.
39582         * coverage.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39583         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h
39584         varasm.h.
39585         * init-regs.c: Likewise.
39586         * ira.c: Likewise.
39587         * omp-low.c: Likewise.
39588         * stack-ptr-mod.c: Likewise.
39589         * tree-ssa-reassoc.c: Likewise.
39590         * tree-complex.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39591         fixed-value.h hashtab.h insn-config.h rtl.h statistics.h stmt.h
39592         varasm.h.
39593         * dwarf2cfi.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39594         fixed-value.h hashtab.h insn-config.h statistics.h stmt.h varasm.h.
39595         * shrink-wrap.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39596         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h.
39597         * recog.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39598         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h varasm.h.
39599         * tree-ssa-phiopt.c: Likewise.
39600         * config/darwin.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39601         fixed-value.h hashtab.h real.h statistics.h stmt.h.
39602         * config/fr30/fr30.c: Likewise.
39603         * config/frv/frv.c: Likewise.
39604         * expr.c: Likewise.
39605         * final.c: Likewise.
39606         * optabs.c: Likewise.
39607         * passes.c: Likewise.
39608         * simplify-rtx.c: Likewise.
39609         * stmt.c: Likewise.
39610         * toplev.c: Likewise.
39611         * var-tracking.c: Likewise.
39612         * gcse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39613         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
39614         * lower-subreg.c: Likewise.
39615         * postreload-gcse.c: Likewise.
39616         * ree.c: Likewise.
39617         * reginfo.c: Likewise.
39618         * store-motion.c: Likewise.
39619         * combine.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39620         fixed-value.h hashtab.h real.h stmt.h varasm.h.
39621         * emit-rtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39622         fixed-value.h hashtab.h statistics.h stmt.h.
39623         * dojump.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39624         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
39625         * except.c: Likewise.
39626         * explow.c: Likewise.
39627         * tree-dfa.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39628         fixed-value.h insn-config.h real.h rtl.h statistics.h stmt.h
39629         varasm.h.
39630         * gimple-fold.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39631         fixed-value.h insn-config.h real.h rtl.h statistics.h varasm.h.
39632         * tree-ssa-structalias.c: Likewise.
39633         * cfgexpand.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39634         fixed-value.h insn-config.h real.h statistics.h.
39635         * calls.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39636         fixed-value.h insn-config.h real.h statistics.h stmt.h.
39637         * bb-reorder.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39638         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
39639         * cfgbuild.c: Likewise.
39640         * function.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39641         fixed-value.h real.h rtl.h statistics.h stmt.h.
39642         * cfgrtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39643         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
39644         * dbxout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39645         fixed-value.h real.h statistics.h stmt.h.
39646         * auto-inc-dec.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39647         fixed-value.h real.h statistics.h stmt.h varasm.h.
39648         * cprop.c: Likewise.
39649         * modulo-sched.c: Likewise.
39650         * postreload.c: Likewise.
39651         * ccmp.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
39652         flags.h function.h hard-reg-set.h hashtab.h insn-config.h real.h
39653         statistics.h stmt.h varasm.h.
39654         * gimple-ssa-strength-reduction.c: Include calls.h dojump.h emit-rtl.h
39655         explow.h fixed-value.h flags.h hashtab.h insn-config.h real.h
39656         rtl.h statistics.h stmt.h varasm.h.
39657         * tree-ssa-loop-ivopts.c: Include calls.h dojump.h emit-rtl.h explow.h
39658         fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h stmt.h
39659         varasm.h.
39660         * expmed.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
39661         function.h hard-reg-set.h hashtab.h real.h statistics.h stmt.h
39662         varasm.h.
39663         * target-globals.c: Include calls.h dojump.h emit-rtl.h explow.h
39664         fixed-value.h function.h hashtab.h real.h statistics.h stmt.h
39665         varasm.h.
39666         * tree-ssa-address.c: Include calls.h dojump.h emit-rtl.h explow.h
39667         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
39668         * cfgcleanup.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
39669         function.h real.h statistics.h stmt.h varasm.h.
39670         * alias.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
39671         insn-config.h real.h statistics.h stmt.h.
39672         * dwarf2out.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
39673         statistics.h stmt.h.
39674         * config/nvptx/nvptx.c: Include dojump.h emit-rtl.h explow.h expmed.h
39675         fixed-value.h flags.h hard-reg-set.h insn-config.h real.h
39676         statistics.h stmt.h varasm.h.
39677         * gimplify.c: Include dojump.h emit-rtl.h explow.h expmed.h
39678         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h statistics.h.
39679         * asan.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
39680         flags.h hashtab.h insn-config.h real.h rtl.h statistics.h stmt.h.
39681         * ipa-devirt.c: Include dojump.h emit-rtl.h explow.h expmed.h
39682         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
39683         statistics.h stmt.h varasm.h.
39684         * ipa-polymorphic-call.c: Likewise.
39685         * config/aarch64/aarch64.c: Include dojump.h emit-rtl.h explow.h
39686         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
39687         statistics.h stmt.h.
39688         * config/c6x/c6x.c: Likewise.
39689         * config/aarch64/aarch64-builtins.c: Include dojump.h emit-rtl.h
39690         explow.h expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
39691         statistics.h stmt.h varasm.h.
39692         * ipa-prop.c: Include dojump.h emit-rtl.h explow.h expmed.h
39693         fixed-value.h hashtab.h insn-config.h real.h rtl.h statistics.h
39694         stmt.h varasm.h.
39695         * ipa-split.c: Likewise.
39696         * tree-eh.c: Likewise.
39697         * tree-ssa-dce.c: Likewise.
39698         * tree-ssa-loop-niter.c: Likewise.
39699         * tree-vrp.c: Likewise.
39700         * config/nds32/nds32-cost.c: Include dojump.h emit-rtl.h explow.h
39701         expmed.h fixed-value.h hashtab.h insn-config.h real.h statistics.h
39702         stmt.h.
39703         * config/nds32/nds32-fp-as-gp.c: Likewise.
39704         * config/nds32/nds32-intrinsic.c: Likewise.
39705         * config/nds32/nds32-isr.c: Likewise.
39706         * config/nds32/nds32-md-auxiliary.c: Likewise.
39707         * config/nds32/nds32-memory-manipulation.c: Likewise.
39708         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
39709         * config/nds32/nds32-predicates.c: Likewise.
39710         * config/nds32/nds32.c: Likewise.
39711         * config/cris/cris.c: Include dojump.h emit-rtl.h explow.h expmed.h
39712         fixed-value.h hashtab.h real.h statistics.h.
39713         * config/alpha/alpha.c: Include dojump.h emit-rtl.h explow.h expmed.h
39714         fixed-value.h hashtab.h real.h statistics.h stmt.h.
39715         * config/arm/arm.c: Likewise.
39716         * config/avr/avr.c: Likewise.
39717         * config/bfin/bfin.c: Likewise.
39718         * config/h8300/h8300.c: Likewise.
39719         * config/i386/i386.c: Likewise.
39720         * config/ia64/ia64.c: Likewise.
39721         * config/iq2000/iq2000.c: Likewise.
39722         * config/m32c/m32c.c: Likewise.
39723         * config/m32r/m32r.c: Likewise.
39724         * config/m68k/m68k.c: Likewise.
39725         * config/mcore/mcore.c: Likewise.
39726         * config/mep/mep.c: Likewise.
39727         * config/mips/mips.c: Likewise.
39728         * config/mn10300/mn10300.c: Likewise.
39729         * config/moxie/moxie.c: Likewise.
39730         * config/pa/pa.c: Likewise.
39731         * config/rl78/rl78.c: Likewise.
39732         * config/rx/rx.c: Likewise.
39733         * config/s390/s390.c: Likewise.
39734         * config/sh/sh.c: Likewise.
39735         * config/sparc/sparc.c: Likewise.
39736         * config/spu/spu.c: Likewise.
39737         * config/stormy16/stormy16.c: Likewise.
39738         * config/v850/v850.c: Likewise.
39739         * config/vax/vax.c: Likewise.
39740         * config/cr16/cr16.c: Include dojump.h emit-rtl.h explow.h expmed.h
39741         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
39742         * config/msp430/msp430.c: Likewise.
39743         * predict.c: Likewise.
39744         * value-prof.c: Likewise.
39745         * config/epiphany/epiphany.c: Include dojump.h emit-rtl.h explow.h
39746         expmed.h fixed-value.h hashtab.h statistics.h stmt.h.
39747         * config/microblaze/microblaze.c: Likewise.
39748         * config/nios2/nios2.c: Likewise.
39749         * config/rs6000/rs6000.c: Likewise.
39750         * tree.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
39751         insn-config.h real.h rtl.h statistics.h stmt.h.
39752         * cgraph.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
39753         insn-config.h real.h statistics.h stmt.h.
39754         * fold-const.c: Include dojump.h emit-rtl.h explow.h expmed.h
39755         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
39756         * tree-inline.c: Include dojump.h emit-rtl.h explow.h expmed.h
39757         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
39758         * builtins.c: Include dojump.h emit-rtl.h explow.h expmed.h
39759         fixed-value.h real.h statistics.h stmt.h.
39760         * config/arc/arc.c: Include dojump.h emit-rtl.h explow.h expmed.h
39761         fixed-value.h statistics.h stmt.h.
39762         * config/visium/visium.c: Include dojump.h emit-rtl.h explow.h expmed.h
39763         stmt.h.
39764
39765 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
39766
39767         * gengtype.c (create_user_defined_type): Workaround
39768         -Wmaybe-uninitialized false positives.
39769         * cse.c (fold_rtx): Likewise.
39770         * loop-invariant.c (gain_for_invariant): Likewise.
39771
39772 2015-01-15  Eric Botcazou  <ebotcazou@adacore.com>
39773
39774         * expr.c (expand_expr_real_1) <normal_inner_ref>: Use the expression to
39775         set the memory attributes in all cases but clear MEM_EXPR if need be.
39776
39777 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
39778
39779         PR tree-optimization/64434
39780         * cfgexpand.c (reorder_operands): New function.
39781         (expand_gimple_basic_block): Insert call of reorder_operands if
39782         optimized is true.
39783
39784 2015-01-15  Matthew Fortune  <matthew.fortune@imgtec.com>
39785
39786         * config/mips/micromips.md (*swp): Remove explicit parallel.
39787         (jraddiusp, *movep<MOVEP1:mode><MOVEP2:mode>): Likewise.
39788         * config/mips/mips-dsp.md (add<DSPV:mode>3): Likewise.
39789         (mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>, sub<DSPV:mode>3): Likewise.
39790         (mips_sub<DSP:dspfmt1>_s_<DSP:dspfmt2>, mips_addsc): Likewise.
39791         (mips_addwc, mips_absq_s_<DSPQ:dspfmt2>): Likewise.
39792         (mips_precrq_rs_ph_w, mips_precrqu_s_qb_ph): Likewise.
39793         (mips_shll_<DSPV:dspfmt2>, mips_shll_s_<DSPQ:dspfmt2>): Likewise.
39794         (mips_muleu_s_ph_qbl, mips_muleu_s_ph_qbr): Likewise.
39795         (mips_mulq_rs_ph, mips_muleq_s_w_phl, mips_muleq_s_w_phr): Likewise.
39796         (mips_dpaq_s_w_ph, mips_dpsq_s_w_ph, mips_mulsaq_s_w_ph): Likewise.
39797         (mips_dpaq_sa_l_w, mips_dpsq_sa_l_w, mips_maq_s_w_phl): Likewise.
39798         (mips_maq_s_w_phr, mips_maq_sa_w_phl, mips_maq_sa_w_phr): Likewise.
39799         (mips_extr_w, mips_extr_r_w, mips_extr_rs_w): Likewise.
39800         (mips_extr_s_h, mips_extp, mips_extpdp, mips_mthlip): Likewise.
39801         (mips_wrdsp): Likewise.
39802         * config/mips/mips-dspr2.md (mips_absq_s_qb): Remove explicit
39803         parallel.
39804         (mips_addu_ph, mips_addu_s_ph, mips_cmpgdu_eq_qb): Likewise.
39805         (mips_cmpgdu_lt_qb, mips_cmpgdu_le_qb, mulv2hi3): Likewise.
39806         (mips_mul_s_ph, mips_mulq_rs_w, mips_mulq_s_ph): Likewise.
39807         (mips_mulq_s_w, mips_subu_ph, mips_subu_s_ph): Likewise.
39808         (mips_dpaqx_s_w_ph, mips_dpaqx_sa_w_ph): Likewise.
39809         (mips_dpsqx_s_w_ph, mips_dpsqx_sa_w_ph): Likewise.
39810         * config/mips/mips-fixed.md (usadd<mode>3): Remove explicit parallel.
39811         (ssadd<mode>3, ussub<mode>3, sssub<mode>3, ssmul<mode>3): Likewise.
39812         (ssmaddsqdq4, ssmsubsqdq4): Likewise.
39813
39814 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
39815
39816         * config/mips/mips.c (mips_rtx_costs): Set costs for LSA/DLSA.
39817         (mips_print_operand): Support 'y' to print exact log2 in decimal
39818         of a const_int.
39819         * config/mips/mips.h (ISA_HAS_LSA): New define.
39820         (ISA_HAS_DLSA): Likewise.
39821         * config/mips/mips.md (<GPR:d>lsa): New define_insn.
39822         * config/mips/predicates.md (const_immlsa_operand): New predicate.
39823
39824 2015-01-15  Martin Liska  <mliska@suse.cz>
39825
39826         PR target/64377
39827         * optc-save-gen.awk: Add support for array types.
39828
39829 2015-01-15  Richard Biener  <rguenther@suse.de>
39830
39831         PR middle-end/64365
39832         * tree-data-ref.c (dr_analyze_indices): Make sure that accesses
39833         for MEM_REF access functions with the same base can never partially
39834         overlap.
39835
39836 2015-01-14  Marcos Diaz <marcos.diaz@tallertechnologies.com>
39837
39838         * common.opt: New option -fstack-protector-explicit.
39839         * cfgexpand.c (SPCT_FLAG_EXPLICIT): New enum.
39840         (stack_protect_decl_phase): Handle stack_protect attribute for
39841         explicit stack protection requests.
39842         (expand_used_vars): Similarly.
39843         * doc/cpp.texi (__SSP_EXPLICIT__): Document predefined macro.
39844         * doc/extend.texi: Add documentation for "stack_protect" attribute.
39845         * doc/invoke.texi: Add documentation for -fstack-protector-explicit.
39846
39847 2015-01-14  Oleg Endo  <olegendo@gcc.gnu.org>
39848
39849         PR target/53988
39850         * config/sh/sh-protos.h (sh_find_set_of_reg): Add option to ignore
39851         reg-reg copies.
39852         (sh_extending_set_of_reg): New struct.
39853         (sh_find_extending_set_of_reg, sh_split_tst_subregs,
39854         sh_remove_reg_dead_or_unused_notes): New Declarations.
39855         * config/sh/sh.c (sh_remove_reg_dead_or_unused_notes,
39856         sh_find_extending_set_of_reg, sh_split_tst_subregs,
39857         sh_extending_set_of_reg::use_as_extended_reg): New functions.
39858         * config/sh/sh.md (*tst<mode>_t_zero): Rename to *tst<mode>_t_subregs,
39859         convert to insn_and_split and use new function sh_split_tst_subregs.
39860
39861 2015-01-14  Sandra Loosemore  <sandra@codesourcery.com>
39862
39863         * doc/invoke.texi (Option Summary): Reclassify -fuse-ld as a linker
39864         option.
39865         (Optimization Options): Move -fuse-ld documentation to...
39866         (Link Options): ...here.
39867
39868 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
39869
39870         * config/mips/constraints.md (ZC): Add support for R6 LL/SC
39871         offsets.
39872         (ZD): Update to use ISA_HAS_9BIT_DISPLACEMENT.
39873         * config/mips/mips.h (ISA_HAS_PREFETCH_9BIT): Rename to...
39874         (ISA_HAS_9BIT_DISPLACEMENT): ... this. New macro.
39875         * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZC
39876         instead of ZR for the memory operand of LL/SC.
39877         (compare_and_swap_12, sync_add<mode>): Likewise.
39878         (sync_<optab>_12, sync_old_<optab>_12): Likewise.
39879         (sync_new_<optab>_12, sync_nand_12): Likewise.
39880         (sync_old_nand_12, sync_new_nand_12): Likewise.
39881         (sync_sub<mode>, sync_old_add<mode>): Likewise.
39882         (sync_old_sub<mode>, sync_new_add<mode>): Likewise.
39883         (sync_new_sub<mode>, sync_<optab><mode>): Likewise.
39884         (sync_old_<optab><mode>, sync_new_<optab><mode>"): Likewise.
39885         (sync_nand<mode>, sync_old_nand<mode>): Likewise.
39886         (sync_new_nand<mode>, sync_lock_test_and_set<mode>): Likewise.
39887         (test_and_set_12, atomic_compare_and_swap<mode>): Likewise.
39888         (atomic_exchange<mode>_llsc, atomic_fetch_add<mode>_llsc): Likewise.
39889         * doc/md.texi (ZC): Update description.
39890
39891 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
39892
39893         * builtins.c (expand_builtin_atomic_exchange): Remove error when
39894         memory model is CONSUME.
39895         (expand_builtin_atomic_compare_exchange, expand_builtin_atomic_load,
39896         expand_builtin_atomic_store): Change invalid memory model errors to
39897         warnings.
39898         (expand_builtin_atomic_clear): Change invalid model errors to warnings
39899         and issue warning for CONSUME.
39900
39901 2015-01-14  Aldy Hernandez  <aldyh@redhat.com>
39902
39903         * lto-cgraph: Update function comments for
39904         lto_symtab_encoder_encode_*.
39905
39906 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
39907
39908         * Makefile.in (site.exp): Do not set ENABLE_LTO.
39909
39910 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
39911
39912         * cgraphunit.c (ipa_passes): Remove argument from ipa_write_summaries.
39913         * lto-cgraph.c (select_what_to_stream): Remove argument, use
39914         lto_stream_offload_p instead.
39915         * lto-streamer.h (select_what_to_stream): Remove argument.
39916         * passes.c (ipa_write_summaries): Likewise.
39917         * tree-pass.h (ipa_write_summaries): Likewise.
39918
39919 2015-01-14  Richard Biener  <rguenther@suse.de>
39920
39921         PR tree-optimization/59354
39922         * tree-vect-slp.c (vect_build_slp_tree_1): Treat loads from
39923         groups larger than the slp group size as having gaps.
39924
39925 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
39926
39927         PR middle-end/59448
39928         * builtins.c (get_memmodel): Promote consume to acquire always.
39929
39930 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
39931
39932         PR target/64386
39933         * config/i386/i386.c (ix86_expand_sse_cmp): Handle V64QImode,
39934         V32HImode.
39935
39936 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
39937
39938         PR target/64393
39939         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET):
39940         Enable AVX512BW.
39941         (OPTION_MASK_ISA_AVX512BW_UNSET): Disable AVX512VBMI.
39942         * config/i386/i386.c (ix86_hard_regno_mode_ok): Don't check
39943         AVX512VBMI, as it implies AVX512BW.
39944
39945 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
39946
39947         PR target/64387
39948         * config/i386/sse.md (vec_unpacks_hi_v8sf): Fix predicate.
39949         (vec_unpacks_hi_v16sf): Ditto.
39950
39951 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
39952
39953         * config/aarch64/arm_neon.h: Error out if AdvancedSIMD
39954         is not available.
39955
39956 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
39957
39958         * doc/invoke.texi (mapcs): Mention deprecation.
39959         (mapcs-frame): Likewise.
39960
39961 2015-01-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
39962
39963         PR target/64453
39964         * config/arm/arm.c (callee_saved_reg_p): Define.
39965         (arm_compute_save_reg0_reg12_mask): Use callee_saved_reg_p to check if
39966         register is callee saved instead of !call_used_regs[reg].
39967         (thumb1_compute_save_reg_mask): Likewise.
39968
39969 2015-01-14  Hale Wang  <hale.wang@arm.com>
39970
39971         * config/arm/arm.c: Tune the max_cond_insns/branch_cost for
39972         Cortex-M7.
39973
39974 2015-01-14  Richard Biener  <rguenther@suse.de>
39975
39976         PR lto/64415
39977         * tree-inline.c (insert_debug_decl_map): Check destination
39978         function MAY_HAVE_DEBUG_STMTS.
39979         (insert_init_debug_bind): Likewise.
39980         (insert_init_stmt): Remove redundant check.
39981         (remap_gimple_stmt): Drop debug stmts if the destination
39982         function has var-tracking assignments disabled.
39983
39984 2015-01-14  Martin Liska  <mliska@suse.cz>
39985
39986         * ipa-icf-gimple.c (func_checker::compare_operand): Add support for
39987         IMAGPART_EXPR and REALPART_EXPR and fix BIT_FIELD_REF comparison.
39988
39989 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
39990
39991         PR target/64460
39992         * config/arm/arm.md (*<arith_shift_insn>_multsi): Set 'shift' to 2.
39993         (*<arith_shift_insn>_shiftsi): Set 'shift' attr to 3.
39994
39995 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
39996
39997         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Only infer an ISA
39998         level from an ARCH; do not inject the default.
39999         (MIPS_DEFAULT_ISA_LEVEL_SPEC): New macro split out from
40000         MIPS_ISA_LEVEL_SPEC.
40001         (MIPS_ISA_NAN2008_SPEC): Update comment.
40002         (BASE_DRIVER_SELF_SPECS): Likewise.
40003         * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Add
40004         MIPS_DEFAULT_ISA_LEVEL_SPEC.
40005         * config/mips/mti-elf.h (DRIVER_SELF_SPECS): Likewise.
40006         * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Likewise.
40007         * config/mips/sde.h (DRIVER_SELF_SPECS): Likewise.
40008
40009 2015-01-14  Richard Biener  <rguenther@suse.de>
40010
40011         PR tree-optimization/64493
40012         PR tree-optimization/64495
40013         * tree-vect-loop.c (vect_finalize_reduction): For double-reductions
40014         assign the proper vectorized PHI to the inner loop exit PHIs.
40015
40016 2015-01-14  Joey Ye  <joey.ye@arm.com>
40017
40018         * config/arm/arm.c (arm_compute_save_reg_mask):
40019         Do not save lr in case of tail call.
40020         * config/arm/thumb2.md (*thumb2_pop_single): New pattern.
40021
40022 2015-01-14  Martin Uecker <uecker@eecs.berkeley.edu>
40023
40024         * tree-vrp.c (check_array_ref): Emit more warnings
40025         for warn_array_bounds >= 2.
40026         * common.opt: New option -Warray-bounds=.
40027         * doc/invoke.texi: Document -Warray-bounds=.
40028
40029 2015-01-14  Chung-Ju Wu  <jasonwucj@gmail.com>
40030
40031         * config/nds32/nds32.opt (mforce-fp-as-gp): Remove.
40032         (mforbid-fp-as-gp): Remove.
40033         (mex9): Remove.
40034         * config/nds32/nds32-fp-as-gp.c (nds32_have_prologue_p): Remove.
40035         (nds32_symbol_load_store_p): Remove.
40036         (nds32_fp_as_gp_check_available): Clean up implementation.
40037         * config/nds32/nds32.h (LINK_SPEC): Remove -mforce-as-gp and -mex9
40038         cases.
40039         * config/nds32/nds32.c (nds32_asm_file_start): No need to consider
40040         fp-as-gp and ex9 cases.
40041
40042 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
40043
40044         * tree-profile.c (init_ic_make_global_vars): Drop workaround
40045         for bintuils bug 14342.
40046         (init_ic_make_global_vars): Likewise.
40047         (gimple_init_edge_profiler): Likewise.
40048         (gimple_gen_ic_func_profiler): Likewise.
40049
40050 2015-01-13  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
40051
40052         * ipa-inline.c (inline_small_functions): Swap the operands in
40053         enum.
40054
40055 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
40056
40057         PR ipa/64481
40058         * ipa-inline-analysis.c (node_growth_cache): Remove.
40059         (initialize_growth_caches): Do not initialize it.
40060         (free_growth_caches): Do not free it.
40061         (do_estimate_growth): Rename to ...
40062         (estimate_growth): ... this one; drop growth cache code.
40063         (growth_likely_positive): Always go the heuristics way.
40064         * ipa-inline.c (can_inline_edge_p): Walk through aliases.
40065         (reset_edge_caches): Do not reset node growth.
40066         (heap_edge_removal_hook): Do not maintain cache.
40067         (inline_small_functions): Likewise; strenghten sanity check.
40068         (ipa_inline): Do not maintain caches.
40069         * ipa-inline.h (node_growth_cache): Remove.
40070         (do_estimate_growth): Remove to ...
40071         (estimate_growth): this one; remove inline version.
40072         (reset_node_growth_cache): Remove.
40073
40074 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
40075
40076         PR ipa/64565
40077         * ipa-inline.c (inline_small_functions): Update callee keys after
40078         resolving speculation
40079         (inline_small_functions): Always check monotonicity of the queue.
40080
40081 2015-01-13  Marek Polacek  <polacek@redhat.com>
40082
40083         PR middle-end/64391
40084         * trans-mem.c (get_attrs_for): Return NULL_TREE if X is NULL_TREE.
40085
40086 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
40087
40088         PR rtl-optimization/64286
40089         * ree.c (combine_reaching_defs): Move part of comment earlier,
40090         remove !SCALAR_INT_MODE_P check.
40091         (add_removable_extension): Don't add vector mode
40092         extensions if all uses of the source register aren't the same
40093         vector extensions.
40094
40095 2015-01-13  Renlin Li  <renlin.li@arm.com>
40096
40097         * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO): Return 2.
40098         (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
40099
40100 2015-01-13  Martin Liska  <mliska@suse.cz>
40101
40102         * ipa-icf.c (sem_function::equals_private): Call new functions
40103         cl_target_option_print_diff and cl_optimization_print_diff.
40104         * optc-save-gen.awk (cl_target_option_print_diff): New function.
40105         (cl_optimization_print_diff): Likewise.
40106         * opth-gen.awk: Likewise.
40107
40108 2015-01-13  Richard Sandiford  <richard.sandiford@arm.com>
40109
40110         * config/aarch64/aarch64.md (subsi3, *subsi3_uxtw, subdi3)
40111         (*sub_<optab><ALLX:mode>_<GPI:mode>, *sub_<optab><SHORT:mode>_si_uxtw)
40112         (*sub_<optab><ALLX:mode>_shft_<GPI:mode>)
40113         (*sub_<optab><SHORT:mode>_shft_si_uxtw, *sub_<optab><mode>_multp2)
40114         (*sub_<optab>si_multp2_uxtw, *sub_uxt<mode>_multp2)
40115         (*sub_uxtsi_multp2_uxtw): Add stack pointer sources.
40116
40117 2015-01-13  Andrew Pinski  <apinski@cavium.com>
40118
40119         * config/aarch64/aarch64.c (fusion_load_store): Check dest mode
40120         instead of src mode.
40121
40122 2015-01-13  Richard Biener  <rguenther@suse.de>
40123
40124         PR lto/64373
40125         * lto-streamer-out.c (tree_is_indexable): Guard for NULL
40126         DECL_CONTEXT.
40127
40128 2015-01-13  Andrew Pinski  <apinski@cavium.com>
40129
40130         * config/aarch64/aarch64.c (aarch64_operands_ok_for_ldpstp): Reject
40131         volatile mems.
40132         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
40133
40134 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
40135
40136         PR middle-end/63974
40137         * cfgexpand.c (expand_computed_goto): Don't call
40138         convert_memory_address here.
40139
40140 2015-01-13  Richard Biener  <rguenther@suse.de>
40141
40142         PR tree-optimization/64406
40143         * tree-loop-distibution.c (pass_loop_distribution::execute):
40144         Reset the SCEV hashtable if we distributed anything.
40145
40146 2015-01-13  Richard Biener  <rguenther@suse.de>
40147
40148         PR tree-optimization/64404
40149         * tree-vect-stmts.c (vectorizable_load): Reject conflicting
40150         SLP types for CSEd loads.
40151
40152 2015-01-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
40153
40154         PR tree-optimization/64436
40155         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Move code performing the
40156         merge of two symbolic numbers for a bitwise OR to ...
40157         (perform_symbolic_merge): This. Also fix computation of the range and
40158         end of the symbolic number corresponding to the result of a bitwise OR.
40159
40160 2015-01-13  Richard Biener  <rguenther@suse.de>
40161
40162         PR tree-optimization/64568
40163         * tree-ssa-forwprop.c (pass_forwprop::execute): Properly
40164         release defs of removed stmts, avoid splitting TARGET_MEM_REFs.
40165
40166 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
40167
40168         * config/nds32/nds32.c (nds32_legitimate_address_p): Consider
40169         TARGET_CMODEL_LARGE and TARGET_CMODEL_MEDIUM cases.
40170
40171 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
40172
40173         * config/nds32/nds32.h (NDS32_SYMBOL_FLAG_RODATA): Define our own
40174         target-specific symbol_ref flag.
40175         (NDS32_SYMBOL_REF_RODATA_P): Define it to check if the symbol_ref
40176         resides in rodata section.
40177         * config/nds32/nds32.c (TARGET_ENCODE_SECTION_INFO): Define.
40178         (nds32_encode_section_info): New function.
40179
40180 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
40181
40182         * config/nds32/nds32.md (call): Use pseudo instruction bal which
40183         clobbers TA_REGNUM if large code model is specified.
40184         (call_register): Likewise.
40185         (call_immediate): Likewise.
40186         (call_value): Likewise.
40187         (call_value_register): Likewise.
40188         (call_value_immediate): Likewise.
40189
40190 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
40191
40192         * config/nds32/nds32.h (TARGET_CMODEL_SMALL): New macro.
40193         (TARGET_CMODEL_MEDIUM): New macro.
40194         (TARGET_CMODEL_LARGE): New macro.
40195         * config/nds32/nds32.c (nds32_asm_file_start): Display corresponding
40196         code model setting in assembly code.
40197
40198 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
40199
40200         * common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS):
40201         Remove MASK_GP_DIRECT flag.
40202         * config/nds32/nds32.h (MULTILIB_DEFAULTS): Have -mcmodel=medium as
40203         one of the multilib default options.
40204         * config/nds32/nds32.opt (mgp-direct): Remove.
40205         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Use -mcmodel instead of
40206         -mgp-direct.  We also remove unnecessary -mlittle-endian/-mbig-endian.
40207
40208 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
40209
40210         * config/nds32/nds32.opt (mcmodel): Add new option.
40211         * config/nds32/nds32-opts.h (nds32_cmodel_type): Add new enum type
40212         to describe code model.
40213
40214 2015-01-13  Oleg Endo  <olegendo@gcc.gnu.org>
40215
40216         PR target/64479
40217         * rtlanal.c (set_reg_p): Handle SEQUENCE constructs.
40218
40219 2015-01-12  Kaz Kojima  <kkojima@gcc.gnu.org>
40220
40221         * config/sh/sh.c (sh_atomic_assign_expand_fenv): New function.
40222         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
40223         (sh_builtin_get_fpscr, sh_builtin_set_fpscr): New variables.
40224         (sh_init_builtins): Record decls for __builtin_sh_get_fpscr and
40225         __builtin_sh_set_fpscr.
40226
40227 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
40228
40229         * doc/invoke.texi ([-Wsuggest-attribute=]): Don't use parentheses
40230         after a funtion name just to indicate it is a function.
40231         ([-fsanitize-undefined-trap-on-error]): Likewise.
40232         ([-fdbg-cnt=]): Likewise.
40233         ([-mmemcpy]): Likewise.
40234         ([-mflush-func]): Likewise.
40235         ([-msynci]): Likewise.
40236
40237 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
40238
40239         * doc/invoke.texi ([-Wbad-function-cast]): Rewrite to avoid confusing
40240         example.
40241
40242 2015-01-12  Jakub Jelinek  <jakub@redhat.com>
40243
40244         PR tree-optimization/64563
40245         * tree-vrp.c (vrp_evaluate_conditional): Check for VR_RANGE
40246         instead of != VR_VARYING.
40247
40248         PR target/64513
40249         * config/i386/i386.c (ix86_expand_prologue): Add
40250         REG_FRAME_RELATED_EXPR to %rax and %r10 pushes.
40251
40252         PR tree-optimization/64454
40253         * tree-vrp.c (simplify_div_or_mod_using_ranges): Optimize
40254         op0 % op1 into op0 if op0 is in range [-op1 + 1, op1 - 1]
40255         for signed or [0, op1 - 1] for unsigned modulo.
40256         (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
40257         even if op1 does not satisfy integer_pow2p.
40258
40259         PR other/64370
40260         * sreal.c (sreal::to_double): Use ldexp instead of scalbnl.
40261
40262 2015-01-12  Jeff Law  <law@redhat.com>
40263
40264         PR target/64461
40265         * config/m68k/m68k.md (truncsiqi2): Disable for TARGET_COLDFIRE.
40266         (trunchiqi2, truncsihi2): Similarly.
40267
40268         * config/h8300/h8300.c (Fpa): Use RTX_FRAME_RELATED_P directly
40269         rather than calling F.
40270
40271 2015-01-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>
40272
40273         * tsan.c (instrument_expr): Use force_gimple_operand.
40274         Use may_be_nonaddressable_p instead of is_gimple_addressable.
40275
40276 2015-01-12  Richard Biener  <rguenther@suse.de>
40277
40278         PR tree-optimization/64530
40279         * tree-loop-distribution.c (pg_add_dependence_edges): Shuffle
40280         back dr1.
40281
40282 2015-01-12  Richard Biener  <rguenther@suse.de>
40283
40284         PR middle-end/64357
40285         * tree-cfg.c (gimple_can_merge_blocks_p): Protect simple
40286         latches properly.
40287
40288 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40289
40290         * config/arm/arm.c (arm_cortex_a12_tune): Update entries to match
40291         Cortex-A17 tuning parameters.
40292         * config/arm/arm-cores.def (cortex-a12): Schedule for cortex-a17.
40293
40294 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40295
40296         * config/arm/arm-protos.h (tune_params): Add fuseable_ops field.
40297         * config/arm/arm.c (arm_macro_fusion_p): New function.
40298         (arm_macro_fusion_pair_p): Likewise.
40299         (TARGET_SCHED_MACRO_FUSION_P): Define.
40300         (TARGET_SCHED_MACRO_FUSION_PAIR_P): Likewise.
40301         (ARM_FUSE_NOTHING): Likewise.
40302         (ARM_FUSE_MOVW_MOVT): Likewise.
40303         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,
40304         arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,
40305         arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,
40306         arm_cortex_a53_tune, arm_cortex_a57_tune, arm_cortex_a9_tune,
40307         arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune
40308         arm_cortex_a5_tune): Specify fuseable_ops value.
40309
40310 2015-01-12  H.J. Lu  <hongjiu.lu@intel.com>
40311
40312         PR bootstrap/64561
40313         * configure.ac (HAVE_LD_PIE_COPYRELOC): Update Linux/x86-64 linker
40314         test for PIE with copy reloc.
40315         * configure: Regenerated.
40316
40317 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40318
40319         * config/arm/arm.c (arm_load_tp): Use R0_REGNUM instead of constant 0
40320         in gen_rtx_REG.
40321         (arm_tls_descseq_addr): Likewise.
40322         (arm_gen_movmemqi): Likewise.
40323         (arm_expand_epilogue_apcs_frame): Likewise.
40324         (arm_expand_epilogue): Likewise.
40325         (arm_expand_prologue): Likewise.  Use R1_REGNUM instead of constant 1
40326         in gen_rtx_REG.
40327
40328 2015-01-12  Martin Liska  <mliska@suse.cz>
40329
40330         PR ipa/64550
40331         * ipa-icf-gimple.c (func_checker::compare_memory_operand): Compare
40332         volatility for correct operands.
40333
40334 2015-01-12  Martin Liska  <mliska@suse.cz>
40335
40336         * ipa-icf.c (sem_function::equals_wpa): Add indirect_calls as
40337         indication that a function is not leaf.
40338         (sem_function::compare_polymorphic_p): Likewise.
40339
40340 2015-01-12  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
40341
40342         * config/visium/visium.c: Add includes hashtab.h, hash-set.h,
40343         machmode.h, input.h, statistics.h, vec.h, double-int.h, real.h,
40344         fixed-value.h, alias.h, symtab.h, tree-core.h, wide-int.h, inchash.h,
40345         fold-const.h, tree-check.h.
40346
40347 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
40348
40349         PR ipa/63967
40350         PR ipa/64425
40351         * ipa-inline.c (compute_uninlined_call_time,
40352         compute_inlined_call_time): Use counts for extra precision when
40353         needed possible.
40354         (big_speedup_p): Fix formating.
40355         (RELATIVE_TIME_BENEFIT_RANGE): Remove.
40356         (relative_time_benefit): Remove.
40357         (edge_badness): Turn DECL_DISREGARD_INLINE_LIMITS into hint;
40358         merge guessed and read profile paths.
40359         (inline_small_functions): Count only !optimize_size functions into
40360         initial size; be more lax about sanity check when profile is used;
40361         be sure to update inlined function profile when profile is read.
40362
40363 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
40364
40365         PR ipa/63470
40366         * ipa-inline-analysis.c (inline_edge_duplication_hook): Adjust
40367         cost when edge becomes direct.
40368         * ipa-prop.c (make_edge_direct): Do not adjust when speculation
40369         is resolved or when introducing new speculation.
40370
40371 2015-01-12  Chen Gang  <gang.chen.5i5j@gmail.com>
40372
40373         PR ipa/64551
40374         PR ipa/64552
40375         * ipa-icf.c (sem_function::equals_private): Use '&&' instead of
40376         '||' to fix typo issue.
40377
40378         * tree.h (target_opts_for_fn): Check NULL_TREE since it can
40379         accept and return NULL.
40380
40381 2015-01-12  Martin Liska  <mliska@suse.cz>
40382
40383         * cgraph.c (cgraph_edge::remove_callee): Move function to header
40384         file for being inlined.
40385         (cgraph_set_edge_callee): Delete.
40386         (cgraph_edge::redirect_callee): Move function to header file
40387         for being inlined.
40388         (cgraph_edge::make_direct): Use new function.
40389         (cgraph_edge::dump_edge_flags): New function created from
40390         static dump_edge_flags function.
40391         (cgraph_node::dump): Use new function.
40392         (cgraph_edge::verify_count_and_frequency): New function created
40393         from verify_edge_count_and_frequency.
40394         (cgraph_edge::verify_corresponds_to_fndecl): New function created
40395         from verify_edge_corresponds_to_fndecl.
40396         (verify_edge_corresponds_to_fndecl): Delete.
40397         (cgraph_node::verify_node): Use new function.
40398         * cgraph.h (cgraph_edge::set_callee): New function.
40399         (cgraph_edge::dump_edge_flags): Likewise.
40400         (cgraph_edge::verify_corresponds_to_fndecl): Likewise.
40401
40402 2015-01-11  Jan Hubicka  <hubicka@ucw.cz>
40403
40404         * ipa-utils.c (estimate_function_body_sizes): Do not
40405         free node params when called late with early=true.
40406
40407 2015-01-11  James Greenhalgh  <james.greenhalgh@arm.com>
40408
40409         * doc/md.texi (Instruction Patterns): Rewrite text for
40410         clarity.
40411         (Example): Likewise.
40412
40413 2015-01-10  Sandra Loosemore  <sandra@codesourcery.com>
40414
40415         * doc/invoke.texi (Option Summary): Break long lines.
40416         [(-fdiagnostics-color)]: Put long literal in @smallexample
40417         instead of inline.
40418         [(-fsanitize-recover)]: Likewise.
40419         [(-fdump-rtl-split*)]: Rewrite to fix over-full hbox.
40420         [(-ffast-math)]: Likewise.
40421         [(--param max-inline-insns-recursive)]: Likewise.
40422         [(--param max-inline-recursive-depth)]: Likewise.
40423         [(-mno-text-section-literals)]: Likewise.
40424
40425 2015-01-10  Thomas Schwinge  <thomas@codesourcery.com>
40426
40427         * doc/install.texi: Update for libgomp being renamed from "GNU
40428         OpenMP Runtime Library" to "GNU Offloading and Multi Processing
40429         Runtime Library".
40430         * doc/sourcebuild.texi: Likewise.
40431
40432 2015-01-10  Anthony Green  <green@moxielogic.com>
40433
40434         * config/moxie/moxie.c (moxie_option_override): Fix forcing of
40435         mul.x availability for moxiebox configuration.
40436
40437 2015-01-09  Anthony Green  <green@moxielogic.com>
40438
40439         * config/moxie/moxie.md: Tabify assembly output.
40440
40441 2015-01-09  Anthony Green  <green@moxielogic.com>
40442
40443         * config/moxie/moxie.md (CC_REG): Correct register definition.
40444
40445 2015-01-09  Sandra Loosemore  <sandra@codesourcery.com>
40446
40447         * doc/invoke.texi ([-fvtable-verify]): Copy-edit and fix markup.
40448         ([-fvtv-debug], [-fvtv-counts]): Likewise.  Correct location
40449         of log files.
40450
40451 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
40452
40453         * config/arm/arm.h (MAX_SYNC_LIBFUNC_SIZE): Delete semicolon.
40454
40455 2015-01-09  Bernd Schmidt  <bernds@codesourcery.com>
40456             Jakub Jelinek  <jakub@redhat.com>
40457
40458         PR middle-end/64412
40459         * lto-streamer.h (lto_stream_offload_p): New declaration.
40460         * lto-streamer.c (lto_stream_offload_p): New variable.
40461         * cgraphunit.c (ipa_passes): Set lto_stream_offload_p
40462         at the same time as section_name_prefix.
40463         * lto-streamer-out.c (hash_tree): Don't hash TREE_TARGET_OPTION
40464         if lto_stream_offload_p.
40465         * tree-streamer-out.c (streamer_pack_tree_bitfields): Don't
40466         stream TREE_TARGET_OPTION if lto_stream_offload_p.
40467         (write_ts_function_decl_tree_pointers): Don't
40468         stream DECL_FUNCTION_SPECIFIC_TARGET if lto_stream_offload_p.
40469         * tree-streamer-in.c (unpack_value_fields): Don't stream
40470         TREE_TARGET_OPTION in if ACCEL_COMPILER.
40471         (lto_input_ts_function_decl_tree_pointers): Don't stream
40472         DECL_FUNCTION_SPECIFIC_TARGET in if ACCEL_COMPILER.
40473         * lto-opts.c (lto_write_options): Use lto_stream_offload_p
40474         instead of section_name_prefix string comparisons.
40475
40476 2015-01-09  Jakub Jelinek  <jakub@redhat.com>
40477
40478         PR rtl-optimization/64536
40479         * cfgrtl.c (rtl_tidy_fallthru_edge): Handle removal of degenerate
40480         tablejumps.
40481
40482 2015-01-09  Michael Collison  <michael.collison@linaro.org>
40483
40484         PR tree-optimization/64322
40485         * tree-vrp.c (extract_range_from_binary_expr_1): Attempt to derive
40486         range for RSHIFT_EXPR even if vr0 range is not VR_RANGE or is symbolic.
40487
40488 2015-01-09  Tom de Vries  <tom@codesourcery.com>
40489
40490         PR rtl-optimization/64539
40491         * regcprop.c (kill_clobbered_values): Factor out of ...
40492         (copyprop_hardreg_forward_1): ... here.  Use kill_clobbered_values
40493         instead of note_stores with kill_clobbered_value.
40494
40495 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
40496
40497          * ginclude/unwind-arm-common.h: Revert previous commit.
40498
40499 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
40500
40501         * config.gcc (arm*-*-freebsd*): New configuration.
40502         * config/arm/freebsd.h: New file.
40503         * config.host: Add extra components for arm*-*-freebsd*.
40504         * config/arm/arm.h: Introduce MAX_SYNC_LIBFUNC_SIZE.
40505         * config/arm/arm.c (arm_init_libfuncs): Use MAX_SYNC_LIBFUNC_SIZE.
40506
40507 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
40508
40509         * config/rs6000/rtems.h (CPP_OS_RTEMS_SPEC): Define __PPC_CPU_E6500__
40510         for -mcpu=e6500.
40511         * config/rs6000/t-rtems: Add e6500 multilibs.
40512
40513 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
40514
40515         * config/rs6000/t-rtems: Add -mno-spe to soft-float multilib for
40516         MPC8540.
40517
40518 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
40519
40520         * config/rs6000/t-rtems: Use MULTILIB_REQUIRED instead of
40521         MULTILIB_EXCEPTIONS.
40522
40523 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
40524
40525         * config/arm/t-rtems: Use MULTILIB_REQUIRED instead of
40526         MULTILIB_EXCEPTIONS.
40527
40528 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
40529
40530         * config/arm/t-rtems-eabi: Rename to...
40531         * config/arm/t-rtems: ...this.
40532         * config/arm/rtems-eabi.h: Rename to...
40533         * config/arm/rtems.h: ...this.
40534         * config.gcc (arm*-*-rtems*): Reflect changes above.
40535
40536 2015-01-09  Richard Biener  <rguenther@suse.de>
40537
40538         PR tree-optimization/64410
40539         * tree-ssa.c (non_rewritable_lvalue_p): Allow REALPART/IMAGPART_EXPR
40540         on the LHS.
40541         (execute_update_addresses_taken): Deal with that.
40542         * tree-ssa-forwprop.c (pass_forwprop::execute): Use component-wise
40543         loads/stores for complex variables.
40544
40545 2015-01-09  Martin Liska  <mliska@suse.cz>
40546
40547         * ipa-icf-gimple.c (func_checker::compare_ssa_name): Enhance SSA
40548         name comparison.
40549         (func_checker::compare_memory_operand): New function.
40550         (func_checker::compare_operand): Split case to newly
40551         added functions.
40552         (func_checker::compare_cst_or_decl): New function.
40553         (func_checker::compare_gimple_call): Identify
40554         memory operands.
40555         (func_checker::compare_gimple_assign): Likewise.
40556         * ipa-icf-gimple.h: New function.
40557
40558 2015-01-09  Martin Liska  <mliska@suse.cz>
40559
40560         PR ipa/64503
40561         * sreal.c (sreal::dump): Change unsigned format to signed for
40562         m_exp value.
40563         (sreal::to_double): Replace exp2 with scalbln.
40564
40565 2015-01-09  Martin Liska  <mliska@suse.cz>
40566
40567         * cgraphunit.c (cgraph_node::create_wrapper): Fix level of indentation.
40568         * ipa-icf.c (sem_function::equals_private): Add support for target and
40569         (sem_item_optimizer::merge_classes): Remove redundant function
40570         optimization flags comparison.
40571         * tree.h (target_opts_for_fn): New function.
40572
40573 2015-01-09  Tom de Vries  <tom@codesourcery.com>
40574
40575         * omp-low.c (expand_omp_for_static_chunk): Fix assert.
40576
40577 2015-01-09  Kito Cheng  <kito@0xlab.org>
40578
40579         PR rtl-optimization/64348
40580         * lra-constraints.c (split_reg): Fix caller-save store/restore
40581         instruction generation.
40582
40583 2015-01-08  John David Anglin  <danglin@gcc.gnu.org>
40584
40585         PR gcov-profile/61790
40586         * gcov-tool.c (do_rewrite): Use strtoll instead of atoll if host has
40587         long long.  Fallback to int64_t if host doesn't have long long and
40588         use strtol if int64_t is long.  Otherwise, use sscanf for conversion.
40589
40590 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
40591
40592         PR tree-optimization/63989
40593         * params.def (PARAM_MAX_TRACKED_STRLENS): Increment default
40594         from 1000 to 10000.
40595         * tree-ssa-strlen.c (get_strinfo): Moved earlier.
40596         (get_stridx): If we don't have a record for certain SSA_NAME,
40597         but it is POINTER_PLUS_EXPR of some SSA_NAME we do with
40598         constant offset, call get_stridx_plus_constant.
40599         (get_stridx_plus_constant): New function.
40600         (zero_length_string): Don't use get_stridx here.
40601
40602         PR target/55023
40603         PR middle-end/64388
40604         * dse.c (struct insn_info): Mention frame_read set also
40605         before reload for tail calls on some targets.
40606         (scan_insn): Revert 2014-12-22 change.  Set frame_read
40607         also before reload for tail calls if
40608         HARD_FRAME_POINTER_IS_ARG_POINTER.  Call add_wild_read
40609         instead of add_non_frame_wild_read for non-const/memset
40610         tail calls after reload.
40611
40612 2015-01-08  Jason Merrill  <jason@redhat.com>
40613
40614         * ubsan.c (do_ubsan_in_current_function): New.
40615         (pass_ubsan::gate): Use it.
40616         * ubsan.h: Declare it.
40617         * convert.c (convert_to_integer): Use it.
40618
40619 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
40620
40621         PR target/64338
40622         * config/i386/i386.c (ix86_expand_int_movcc): Don't reverse
40623         compare_code when it is unconditionally overwritten afterwards.
40624         Use ix86_reverse_condition instead of reverse_condition.  Don't
40625         change code if *reverse_condition* returned UNKNOWN and don't
40626         swap ct/cf and negate diff in that case.
40627
40628 2015-01-08  Mike Stump  <mikestump@comcast.net>
40629
40630         * tsan.c (pass_tsan::gate): Add no_sanitize_thread support.
40631         (pass_tsan_O0::gate): Likewise.
40632         * extend.texi (Function Attributes): Add no_sanitize_thread
40633         documentation.
40634
40635 2015-01-08  Thomas Schwinge  <thomas@codesourcery.com>
40636
40637         * builtins.def (DEF_GOMP_BUILTIN): Also consider flag_offload_abi
40638         for registering builtins.
40639         * config/i386/intelmic-mkoffload.c (prepare_target_image): Don't
40640         add -fopenmp to the argv_obstack used when invoking
40641         compile_for_target.
40642
40643         * config/i386/intelmic-mkoffload.c (compile_for_target): Always
40644         add "-m32" or "-m64" to argv_obstack.
40645         (generate_host_descr_file): Likewise, when invoking host_compiler.
40646         (main): Always add "-m elf_i386" or "-m elf_x86_64" when invoking
40647         ld.
40648
40649 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
40650
40651         * config/sh/sh-mem.cc: Use constant as second operand when emitting
40652         tstsi_t insns.
40653
40654 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
40655
40656         PR target/55212
40657         * config/sh/sh.md (*addsi3_compact): Emit reg-reg copy instead of
40658         constant load if constant operand fits into I08.
40659
40660 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
40661
40662         PR sanitizer/64336
40663         * tree.c (build2_stat): Fix up initialization of TREE_READONLY
40664         and TREE_THIS_VOLATILE for MEM_REFs.
40665         (build5_stat): Fix up initialization of TREE_READONLY and
40666         TREE_THIS_VOLATILE for TARGET_MEM_REFs.
40667
40668 2015-01-08  Kaz Kojima  <kkojima@gcc.gnu.org>
40669
40670         PR target/64533
40671         * config/sh/sh.md (*addsi3_compact): Use u constraint instead
40672         of r for the second alternative of the destination operand.
40673
40674 2015-01-07  Segher Boessenkool  <segher@kernel.crashing.org>
40675
40676         PR target/36557
40677         * config/rs6000/rs6000.md (*eqsi3_ext<mode>, *nesi3_ext<mode>): New.
40678
40679 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
40680
40681         * doc/invoke.texi ([-fvtable-verify]): Fix markup on option
40682         keywords.
40683         ([-fivar-visibility], [-fvisibility]): Likewise.
40684
40685 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
40686
40687         * doc/invoke.texi: Fix incorrect uses of @samp markup throughout
40688         the file where @code, @command, etc is more appropriate.
40689
40690 2015-01-06  Sandra Loosemore  <sandra@codesourcery.com>
40691
40692         * doc/invoke.texi (RS/6000 and PowerPC Options): Tidy formatting
40693         of -mrecip= documentation.
40694
40695 2015-01-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
40696
40697         PR target/64505
40698         * config/rs6000/rs6000.c (rs6000_secondary_reload): Return the
40699         correct reload handler if -m32 -mpowerpc64 is used.
40700
40701 2015-01-06  Tom de Vries  <tom@codesourcery.com>
40702
40703         * tree-ssa-tail-merge.c: Fix typo in struct same_succ_def comment.
40704
40705 2015-01-08  Christian Bruel  <christian.bruel@st.com>
40706
40707         PR target/64507
40708         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Check 0 length.
40709
40710 2015-01-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
40711
40712         PR tree-optimization/63259
40713         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Stop checking
40714         if optab exists for 16bit byteswap.
40715
40716 2015-01-06  Jakub Jelinek  <jakub@redhat.com>
40717
40718         * opts.c (common_handle_option): Add support for
40719         -fno-sanitize=all and -f{,no-}sanitize-recover=all.
40720         * doc/invoke.texi: Document -fno-sanitize=all,
40721         -f{,no-}sanitize-recover=all.  Document that
40722         -fsanitize=float-cast-overflow is not enabled
40723         by -fsanitize=undefined.  Fix up documentation
40724         of -f{,no-}sanitize-recover.
40725
40726 2015-01-06  Eric Botcazou  <ebotcazou@adacore.com>
40727
40728         * config.gcc: Add Visium support.
40729         * configure.ac: Likewise.
40730         * configure: Regenerate.
40731         * doc/extend.texi (interrupt attribute): Add Visium.
40732         * doc/invoke.texi: Document Visium options.
40733         * doc/install.texi: Document Visium target.
40734         * doc/md.texi: Document Visium constraints.
40735         * common/config/visium: New directory.
40736         * config/visium: Likewise.
40737
40738 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
40739
40740         * simplify-rtx.c (simplify_binary_operation_1): Handle more cases
40741         for the "(and X (ior (not X) Y) -> (and X Y)" transform.
40742
40743 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
40744
40745         * combine.c (combine_validate_cost): Do not count the cost of a
40746         split I2 twice.  Do not display it twice in the dump, either.
40747
40748 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
40749
40750         Revert parts of r219199.
40751         * doc/invoke.texi ([-Wliteral-suffix]): Restore markup on
40752         <inttypes.h>.
40753         ([-Wtraditional]): Restore markup on <limits.h>.
40754
40755 2015-01-05  Trevor Saunders  <tsaunders@mozilla.com>
40756
40757         PR c++/31397
40758         * doc/invoke.texi: Document -Wsuggest-override.
40759
40760 2015-01-05  Radovan Obradovic  <radovan.obradovic@imgtec.com>
40761
40762         PR rtl-optimization/64287
40763         * toplev.c (HAVE_epilogue, HAVE_prologue): Provide default.
40764         (process_options): Disable flag_ipa_ra if profiling.
40765
40766 2015-01-05  Eric Botcazou  <ebotcazou@adacore.com>
40767
40768         * config/nds32/nds32-peephole2.md: Do not mention define_peephole.
40769
40770 2015-01-05  Max Filippov  <jcmvbkbc@gmail.com>
40771
40772         * config/xtensa/xtensa.c (hwloop_optimize, hwloop_fail,
40773         hwloop_pattern_reg, xtensa_doloop_hooks, xtensa_reorg_loops):
40774         put under #if TARGET_LOOPS guard.
40775
40776 2015-01-05  Uros Bizjak  <ubizjak@gmail.com>
40777
40778         * config/i386/i386.c (output_387_binary_op): Use std::swap.
40779
40780 2015-01-05  Oleg Endo  <olegendo@gcc.gnu.org>
40781
40782         * rtlanal.c (refers_to_regno_p): Change return value from int to bool.
40783         * rtl.h (refers_to_regno_p): Add overload.
40784         * cse.c: Use it.
40785         * bt-load.c: Likewise.
40786         * combine.c: Likewise.
40787         * df-scan.c: Likewise.
40788         * sched-deps.c: Likewise.
40789         * config/s390/s390.c: Likewise.
40790         * config/m32r/m32r.c: Likewise.
40791         * config/rs6000/spe.md: Likewise.
40792         * config/rs6000/rs6000.c: Likewise.
40793         * config/pa/pa.c: Likewise.
40794         * config/stormy16/stormy16.c: Likewise.
40795         * config/cris/cris.c: Likewise.
40796         * config/arc/arc.md: Likewise.
40797         * config/arc/arc.c: Likewise.
40798         * config/sh/sh.md: Likewise.
40799         * config/sh/sh.c: Likewise.
40800         * config/frv/frv.c: Likewise.
40801
40802 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
40803
40804         PR sanitizer/64265
40805         * gimplify.c (gimplify_function_tree): Add TSAN_FUNC_EXIT internal
40806         call as cleanup of the whole body.
40807         * internal-fn.def (TSAN_FUNC_EXIT): New internal call.
40808         * tsan.c (replace_func_exit): New function.
40809         (instrument_func_exit): Moved earlier.
40810         (instrument_memory_accesses): Adjust TSAN_FUNC_EXIT internal calls.
40811         Call instrument_func_exit if no TSAN_FUNC_EXIT internal calls have
40812         been found.
40813         (tsan_pass): Don't call instrument_func_exit.
40814         * internal-fn.c (expand_TSAN_FUNC_EXIT): New function.
40815         * tree-inline.c (copy_bb): Drop TSAN_FUNC_EXIT internal calls during
40816         inlining.
40817
40818         PR sanitizer/64344
40819         * ubsan.h (ubsan_instrument_float_cast): Add ARG argument.
40820         * ubsan.c (ubsan_instrument_float_cast): Add ARG argument, pass
40821         it to libubsan handler instead of EXPR.  Fold comparisons earlier,
40822         if the result is integer_zerop, return NULL_TREE.
40823         * convert.c (convert_to_integer): Pass expr as ARG.
40824
40825         PR tree-optimization/64465
40826         * tree-inline.c (redirect_all_calls): During inlining
40827         clean up EH stmts and EH edges if redirect_call_stmt_to_callee
40828         changed the stmt to a non-throwing call.
40829
40830 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
40831
40832         * doc/invoke.texi: Fix incorrect uses of @code, @option, @samp,
40833         etc markup throughout the file.
40834
40835 2015-01-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
40836
40837         Enable experimental TSAN support for Ada.
40838         * tsan.c (instrument_expr): Handle VIEW_CONVERT_EXPR.
40839
40840 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
40841
40842         PR tree-optimization/64494
40843         * tree-ssa-loop-im.c (move_computations_dom_walker::before_dom): Also
40844         clear SSA_NAME_ANTI_RANGE_P flag.
40845
40846 2015-01-05  Marek Polacek  <polacek@redhat.com>
40847
40848         * doc/extend.texi (Arrays of Length Zero): Add missing comma.
40849
40850 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
40851
40852         Update copyright years.
40853
40854         * gcc.c (process_command): Update copyright notice dates.
40855         * gcov-dump.c: Ditto.
40856         * gcov.c: Ditto.
40857         * doc/cpp.texi: Bump @copying's copyright year.
40858         * doc/cppinternals.texi: Ditto.
40859         * doc/gcc.texi: Ditto.
40860         * doc/gccint.texi: Ditto.
40861         * doc/gcov.texi: Ditto.
40862         * doc/install.texi: Ditto.
40863         * doc/invoke.texi: Ditto.
40864
40865         * auto-profile.c, auto-profile.h: Fix up Copyright line.
40866
40867 2015-01-04  Sandra Loosemore  <sandra@codesourcery.com>
40868
40869         * doc/invoke.texi ([-fsized-deallocation]): Copy-edit to fix
40870         verb tense, etc.
40871         ([-fvtable-verify], [-fvtv-debug]): Likewise.
40872         ([-Wabi]): Likewise.
40873         ([-fmessage-length]): Likewise.
40874         ([-Wsuggest-final-types], [-Wsuggest-final-methods]): Likewise.
40875         ([-Wno-discarded-qualifiers]): Likewise.
40876         ([-Wnodiscarded-array-qualifiers]): Likewise.
40877         ([-Wno-virtual-move-assign]): Likewise.
40878         ([-fsanitize=address], [-fsanitize=thread]): Likewise.
40879         ([-fsanitize=leak], [-fsanitize=undefined]): Likewise.
40880         ([-fsanitize=unreachable], [-fsanitize-recover]): Likewise.
40881         ([-fsanitize-undefined-trap-on-error]): Likewise.
40882         ([-floop-interchange]): Likewise.
40883         ([-ftree-coalesce-inlined-vars]): Likewise.
40884         ([-fvect-cost-model]): Likewise.
40885         ([-flto]): Likewise.
40886         ([--param]): Likewise.
40887         (Spec Files): Likewise.
40888         ([-mstrict-align]): Likewise.
40889         ([-mfix-cortex-a53-835769]): Likewise.
40890         ([-march], [-mtune]): Likewise.
40891         ([-mpic-register]): Likewise.
40892         ([-munaligned-access]): Likewise.
40893         ([-msp8]): Likewise.
40894         (EIND and Devices with more than 128 Ki Bytes of Flash): Likewise.
40895         (AVR Built-in Macros): Likewise.
40896         ([-mpreferred-stack-boundary]): Likewise.
40897         ([-mtune-crtl]): Likewise.
40898         ([-mashf]): Likewise.
40899         ([-mmcu=]): Likewise.
40900         ([-minrt]): Likewise.
40901         ([-maltivec], [-maltivec=be], [-maltivec=le]): Likewise.
40902         ([-mupper-regs]): Likewise.
40903         ([-matomic-model]): Likewise.
40904         ([-mdiv]): Likewise.
40905         ([-mzdcbranch]): Likewise.
40906         ([-mdisable-callt]): Likewise.
40907         ([-msoft-float]): Likewise.
40908         ([-m8byte-align]): Likewise.
40909         ([-fstack-reuse]): Likewise.
40910
40911 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
40912
40913         * doc/invoke.texi ([-fprofile-generate], [-fprofile-use]):
40914         Fix markup, light copy-editing.
40915         ([-fauto-profile]): Rewrite to fix formatting and content
40916         problems.
40917
40918 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
40919
40920         * doc/invoke.texi ([-fisolate-erroneous-paths-dereference]):
40921         Copy-edit description.
40922         ([-fisolate-erroneous-paths-attribute]): Likewise.
40923         * common.opt (fisolate-erroneous-paths-dereference):
40924         Copy-edit description.
40925         (fisolate-erroneous-paths-attribute): Likewise.
40926
40927 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
40928
40929         * doc/invoke.texi ([-fsemantic-interposition]): Fix typos and
40930         tidy grammar.
40931
40932 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
40933
40934         * doc/invoke.texi ([-fplan9-extensions]): Add/fix @opindex.
40935         ([-fvtv-debug]): Likewise.
40936         ([-Wc++-compat]): Likewise.
40937         ([-Wc++11-compat]): Likewise.
40938         ([-Wc++14-compat]): Likewise.
40939         ([-Wno-sized-deallocation]): Likewise.
40940         ([-femit-class-debug-always]): Likewise.
40941         ([-femit-struct-debug-detailed]): Likewise.
40942         ([-fno-keep-inline-dllexport]): Likewise.
40943         ([-fira-algorithm]): Likewise.
40944         ([-fira-region]): Likewise.
40945         ([-flra-remat]): Likewise.
40946         ([-fipa-ra]): Likewise.
40947         ([-fhoist-adjacent-loads]): Likewise.
40948         ([-fisolate-erroneous-paths-dereference]): Likewise.
40949         ([-fisolate-erroneous-paths-attribute]): Likewise.
40950         ([-ftree-switch-conversion]): Likewise.
40951         ([-ftree-tail-merge]): Likewise.
40952         ([-ftree-loop-if-convert]): Likewise.
40953         ([-ftree-loop-if-convert-stores]): Likewise.
40954         ([-ftree-loop-distribution]): Likewise.
40955         ([-ftree-loop-distribute-patterns]): Likewise.
40956         ([-flto-compression-level]): Likewise.
40957         ([-flto-report]): Likewise.
40958         ([-flto-report-wpa]): Likewise.
40959         ([-fuse-linker-plugin]): Likewise.
40960         ([-mfix-cortex-a53-835769]): Likewise.
40961         ([-mno-fix-cortex-a53-835769]): Likewise.
40962         ([-mmmx]...[-mno-3dnow]): Remove the -mno- forms from the
40963         explicit listing; add a note to the discussion indicating they
40964         exist.  Reorder table to group similar options.  Add missing
40965         @opindex entries.  Add @need commands throughout the table to
40966         allow it to be split across multiple pages.
40967         ([-m8bit-idiv]): Fix @opindex.
40968         ([-mavx256-split-unaligned-load]): Likewise.
40969         ([-mavx256-split-unaligned-store]): Likewise.
40970         ([-mstack-protector-guard]): Likewise.
40971         ([-mcpu=]): Likewise.
40972         ([-mcpu]): Likewise.
40973         ([-mpointer-size=]): Likewise.
40974
40975 2015-01-03  John David Anglin  <danglin@gcc.gnu.org>
40976
40977         * config/pa/pa.md (decrement_and_branch_until_zero): Use `Q' constraint
40978         instead of `m' constraint.  Likewise for unnamed movb comparison
40979         patterns using reg_before_reload_operand predicate.
40980         * config/pa/predicates.md (reg_before_reload_operand): Tighten
40981         predicate to reject register index and LO_SUM DLT memory forms
40982         after reload.
40983
40984 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
40985
40986         * doc/invoke.texi (Option Summary): Fix spelling of
40987         -fdevirtualize-at-ltrans.
40988         ([-fdevirtualize]): Fix markup.
40989         ([-fdevirtualize-speculatively]): Fix typo.
40990         ([-fdevirtualize-at-ltrans]): Likewise.  Make description less
40991         implementor-speaky.
40992         * common.opt (fdevirtualize-at-ltrans): Likewise.
40993         * ipa-devirt.c: Fix typos in comments throughout the file.
40994         (ipa_devirt): Fix typos in format strings for dump output.
40995
40996 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
40997
40998         * doc/invoke.texi ([-fopt-info]): Fix markup, consolidate
40999         discussion of defaults, light copy-editing.
41000
41001 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
41002
41003         * tsan.c (instrument_expr): corrected previous checkin.
41004
41005 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
41006
41007         Instrument bit field and unaligned accesses for TSAN.
41008         * sanitizer.def (BUILT_IN_TSAN_READ_RANGE): New built-in function.
41009         (BUILT_IN_TSAN_WRITE_RANGE): New built-in function.
41010         * tsan.c (instrument_expr): Handle COMPONENT_REF and BIT_FIELD_REF.
41011         Use BUILT_IN_TSAN_READ_RANGE and BUILT_IN_TSAN_WRITE_RANGE for
41012         unaligned memory regions.
41013
41014 2015-01-01  Anthony Green  <green@moxielogic.com>
41015
41016         * config/moxie/predicates.md (moxie_general_movsrc_operand):
41017         Restrict move source register offsets to 16 bits.
41018 \f
41019 Copyright (C) 2015 Free Software Foundation, Inc.
41020
41021 Copying and distribution of this file, with or without modification,
41022 are permitted in any medium without royalty provided the copyright
41023 notice and this notice are preserved.