i386.c (ix86_build_builtin_va_list_64): Rename from ix86_build_builtin_va_list_abi.
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2015-07-23  Uros Bizjak  <ubizjak@gmail.com>
2
3         * config/i386/i386.c (ix86_build_builtin_va_list_64): Rename
4         from ix86_build_builtin_va_list_abi.  Handle only 64bit non-MS_ABI
5         targets here.
6         (ix86_build_builtin_va_list): Rewrite sysv_va_list_type_node and
7         ms_va_list_type_node initialization.
8
9 2015-07-23  Jeff Law  <law@redhat.com>
10
11         PR lto/66752
12         * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
13         unable to find X NE 0 in the tables, return X as the simplified
14         condition.
15         (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
16         in VISISTED_BBS, then return failure.  Else add nodes from NEXT_PATH
17         to VISISTED_BBS.  */
18         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
19         after removing the control flow statement and unnecessary edges.
20
21 2015-07-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
22
23         * tree-pass.h (get_current_pass_name): Removed.
24
25 2015-07-23  Alexandre Oliva <aoliva@redhat.com>
26
27         PR rtl-optimization/64164
28         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
29         * tree-ssa-copyrename.c: Removed.
30         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
31         -ftree-coalesce-vars.
32         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
33         * common.opt (ftree-copyrename): Ignore.
34         (ftree-coalesce-inlined-vars): Likewise.
35         * doc/invoke.texi: Remove the ignored options above.
36         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
37         * tree-ssa-coalesce.h: ... here.
38         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
39         headers required by it.
40         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
41         across variables when flag_tree_coalesce_vars.  Check register
42         use and promoted modes to allow coalescing.  Moved to
43         tree-ssa-coalesce.c.
44         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
45         with its member functions to tree-ssa-coalesce.c.
46         (var_map_base_init): Likewise.  Renamed to
47         compute_samebase_partition_bases.
48         (partition_view_normal): Drop want_bases parameter.
49         (partition_view_bitmap): Likewise.
50         * tree-ssa-live.h: Adjust declarations.
51         * tree-ssa-coalesce.c: Include explow.h.
52         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
53         default defs at the entry point.
54         (dump_part_var_map): New.
55         (compute_optimized_partition_bases): New, called by...
56         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
57         of compute_samebase_partition_bases.  Adjust.
58         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
59         * cfgexpand.c (leader_merge): New.
60         (get_rtl_for_parm_ssa_default_def): New.
61         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
62         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
63         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
64         redundant MEM attr setting.
65         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
66         from...
67         (expand_one_stack_var): ... this.  New wrapper to check and
68         skip already expanded SSA partitions.
69         (record_alignment_for_reg_var): New, factored out of...
70         (expand_one_var): ... this.
71         (expand_one_ssa_partition): New.
72         (adjust_one_expanded_partition_var): New.
73         (expand_one_register_var): Check and skip already expanded SSA
74         partitions.
75         (expand_used_vars): Don't create DECLs for anonymous SSA
76         names.  Expand all SSA partitions, then adjust all SSA names.
77         (pass::execute): Replace the loops that set
78         SA.partition_to_pseudo from partition leaders and cleared
79         DECL_RTL for multi-location variables, and that which used to
80         rename vars and set attrs, with one that clears DECL_RTL and
81         checks that PARMs and RESULTs default_defs match DECL_RTL.
82         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
83         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
84         * explow.c (promote_ssa_mode): New.
85         * explow.h (promote_ssa_mode): Declare.
86         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
87         * function.c: Include cfgexpand.h.
88         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
89         (use_register_for_parm_decl): Wrapper for the above to
90         special-case the result_ptr.
91         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
92         (split_complex_args): Take assign_parm_data_all argument.
93         Pass it to rtl_for_parm.  Set up rtl and context for split
94         args.
95         (assign_parms_augmented_arg_list): Adjust.
96         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
97         multiple locations.  Recognize split complex args.
98         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
99         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
100         (assign_parm_setup_block): Prefer SSA-assigned location.
101         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
102         if stack_parm is NULL.
103         (assign_parm_setup_stack): Prefer SSA-assigned location.
104         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
105         rtl before testing for pointer bounds.  Special-case result_ptr.
106         (expand_function_start): Maybe reset DECL_RTL of result.
107         Prefer SSA-assigned location for result and static chain.
108         Factor out DECL_RESULT and SET_DECL_RTL.
109         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
110         anonymous SSA names.  Use promote_ssa_mode.
111         (get_temp_reg): Likewise.
112         (remove_ssa_form): Adjust.
113         * stor-layout.c (layout_decl): Don't set mem attributes of
114         non-MEMs.
115         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
116         and get its reg_usage for reg invalidation.
117         (compute_bb_dataflow): Pass it insn.
118         (emit_notes_in_bb): Likewise.
119
120 2015-07-23  Segher Boessenkool  <segher@kernel.crashing.org>
121
122         PR target/66217
123         * config/rs6000/rs6000-protos.h (rs6000_emit_2insn_and): Change
124         prototype.
125         * config/rs6000/rs6000.c (rs6000_emit_dot_insn): New function.
126         (rs6000_emit_2insn_and): Handle dot forms.
127         * config/rs6000/rs6000.md (and<mode>3): Adjust.
128         (*and<mode>3_2insn): Remove TODO.  Adjust.  Add "type" attr.
129         (*and<mode>3_2insn_dot, *and<mode>3_2insn_dot2): New.
130
131 2015-07-23  Richard Biener  <rguenther@suse.de>
132
133         * generic-match-head.c: Include cgraph.h.
134         * gimple-match-head.c: Likewise.
135         * tree-ssa-sccvn.c (free_scc_vn): Guard against newly created
136         SSA names.
137         * fold-const.c (fold_binary_loc): Move &A ==/!= &B simplification...
138         * match.pd: ...to a pattern here.  Add &A ==/!= 0 simplification
139         pattern.
140
141 2015-07-23  Richard Biener  <rguenther@suse.de>
142
143         * gimple-fold.c (fold_gimple_cond): Do not require folding
144         results to pass valid_gimple_rhs_p.
145         * tree-cfg.h (fold_cond_expr_cond): Remove.
146         * tree-cfg.c (fold_cond_expr_cond): Likewise.
147         (make_edges): Do not call it.
148         * tree-inline.c (tree_function_versioning): Likewise.
149
150 2015-07-23  Tom de Vries  <tom@codesourcery.com>
151
152         * tree-parloops.c (gather_scalar_reductions): Add arg to call to
153         vect_force_simple_reduction.
154         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Same.
155         (vect_is_simple_reduction_1): Add and handle
156         need_wrapping_integral_overflow parameter.
157         (vect_is_simple_reduction, vect_force_simple_reduction): Add and pass
158         need_wrapping_integral_overflow parameter.
159         (vectorizable_reduction): Add arg to call to vect_is_simple_reduction.
160         * tree-vectorizer.h (vect_force_simple_reduction): Add parameter to
161         decl.
162
163 2015-07-23  Yuri Rumyantsev  <ysrumyan@gmail.com>
164
165         PR tree-optimization/66926,66951
166         * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Delete
167         INNER_LOOP and fix up condition for renaming virtual operands.
168
169 2015-07-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
170
171         * combine.c (try_combine): Use std::swap instead of manually
172         swapping.
173
174 2015-07-23  Prachi Godbole  <prachi.godbole@imgtec.com>
175
176         * config/mips/i6400.md: New file.
177         * config/mips/mips-cpus.def (mips32r6): Change to PROCESSOR_I6400.
178         (mips64r6): Likewise.
179         (i6400): Define.
180         * config/mips/mips-tables.opt: Regenerate.
181         * config/mips/mips.c (mips_rtx_cost_data): Add I6400 processor.
182         (mips_issue_rate): Add support for i6400.
183         (mips_multipass_dfa_lookahead): Likewise.
184         * config/mips/mips.h (TUNE_I6400): Define.
185         * config/mips/mips.md: Include i6400.md.
186         (processor): Add i6400.
187         * doc/invoke.texi (-march=@var{arch}): Add i6400.
188
189 2015-07-23  Richard Biener  <rguenther@suse.de>
190
191         PR middle-end/66916
192         * match.pd: Guard widen and sign-change comparison simplification
193         with single_use.
194
195 2015-07-23  Richard Biener  <rguenther@suse.de>
196
197         PR tree-optimization/66945
198         * tree-ssa-propagate.c (substitute_and_fold_dom_walker
199         ::before_dom_children): Force the propagators idea of
200         non-executable edges to materialize, not what the folder
201         chooses.
202
203 2015-07-23  Richard Biener  <rguenther@suse.de>
204
205         * gimple.h (gimple_cond_make_false): Use 0 != 0.
206         (gimple_cond_make_true): Use 1 != 0.
207
208 2015-07-22  DJ Delorie  <dj@redhat.com>
209
210         * config/msp430/t-msp430 (MULTILIB_DIRNAMES): Remove trailing
211         slashes.
212
213         * config/msp430/msp430.md (ashlhi3): Optimize shifts of subregs.
214         (ashrhi3): Likewise.
215         (lshrhi3): Likewise.
216         (movhi): Take advantage of zero-extend to load small constants.
217         (movpsi): Likewise.
218         (and<mode>3): Likewise.
219         (zero_extendqihi2): Likewise.
220         (zero_extendqisi2): New.
221         * config/msp430/constraints.md (N,O): New.
222         * config/msp430/msp430.h (WORD_REGISTER_OPERATIONS): Define.
223
224 2015-07-22  Uros Bizjak  <ubizjak@gmail.com>
225
226         PR target/66954
227         * config/i386/i386.c (get_builtin_code_for_version): Add P_AES
228         to enum feature_priority and feature_list.
229         (fold_builtin_cpu): Add F_AES to enum processor_features
230         and isa_names_table.
231
232 2015-07-22  Ilya Enkovich  <enkovich.gnu@gmail.com>
233
234         PR driver/66737
235         * config/i386/linux-common.h (MPX_SPEC): Use linker option
236         for 64bit target only.
237
238 2015-07-22  Bernd Schmidt  <bernds@codesourcery.com>
239
240         * config/nvptx/nvptx.c: Expand some comments.
241
242 2015-07-22  James Greenhalgh  <james.greenhalgh@arm.com>
243
244         * config/arm/cortex-a53 (cortex_53_advsimd): Rename to...
245         (cortex_a53_advsimd): ...This.
246
247 2015-07-22  Richard Biener  <rguenther@suse.de>
248
249         * genmatch.c (expr::gen_transform): Clarify error message
250         and display location.
251
252 2015-07-22  Richard Biener  <rguenther@suse.de>
253
254         * genmatch.c (struct operand): Add location member.
255         (predicate, expr, c_expr, capture, if_expr, with_expr): Adjust
256         constructors.
257         (struct simplify): Remove match_location and result_location
258         members.
259         (elsehwere): Adjust.
260
261 2015-07-22  Prachi Godbole  <prachi.godbole@imgtec.com>
262
263         * config/mips/m5100.md: New file.
264         * config/mips/mips-cpus.def (m5100, m5101): Define.
265         * config/mips/mips-tables.opt: Regenerate.
266         * config/mips/mips.c (mips_rtx_cost_data): Add costs for m5100.
267         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=m5100 and
268         -march=m5101 to -mips32r5.
269         (MIPS_ARCH_FLOAT_SPEC): Map -m5101 to -msoft-float.
270         (MIPS_ISA_NAN2008_SPEC): Map -march=m51* to -mnan=2008 if
271         !-msoft-float.
272         * config/mips/mips.md: Include m5100.md.
273         (processor): Add m5100.
274         * doc/invoke.texi (-march=@var{arch}): Add m5100, m5101.
275
276 2015-07-22  Robert Suchanek  <robert.suchanek@imgtec.com>
277
278         * config/mips/mips-cpus.def (interaptiv): Define.
279         * config/mips/mips-tables.opt: Regenerate.
280         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=interaptiv to
281         -mips32r2.
282         (BASE_DRIVER_SELF_SPECS): Likewise but map to -mdsp.
283         * doc/invoke.texi (-march=@var{arch}): Add interaptiv.
284
285 2015-07-22  Jiong Wang  <jiong.wang@arm.com>
286
287         PR target/63521
288         * config/aarch64/aarch64.h (REG_ALLOC_ORDER): Define.
289         (HONOR_REG_ALLOC_ORDER): Define.
290
291 2015-07-22  Richard Biener  <rguenther@suse.de>
292
293         PR tree-optimization/66952
294         * tree-ssa-ifcombine.c (pass_tree_ifcombine::execute): For
295         blocks we end up executing unconditionally reset all SSA
296         info such as range and alignment.
297         * tree-ssanames.h (reset_flow_sensitive_info): Declare.
298         * tree-ssanames.c (reset_flow_sensitive_info): New function.
299
300 2015-07-22  Charles Baylis  <charles.baylis@linaro.org>
301
302         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): Fix
303         typo in attribute.
304
305 2015-07-22  Richard Biener  <rguenther@suse.de>
306
307         * genmatch.c (parser::parse_result): Properly handle
308         match with result operands and conditions.
309
310 2015-07-22  Charles Baylis  <charles.baylis@linaro.org>
311
312         PR target/63870
313         * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
314         Add qualifier_struct_load_store_lane_index.
315         (aarch64_types_loadstruct_lane_qualifiers): Use
316         qualifier_struct_load_store_lane_index for lane index argument for
317         last argument.
318         (aarch64_types_storestruct_lane_qualifiers): Ditto.
319         (builtin_simd_arg): Add SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
320         (aarch64_simd_expand_args): Add new argument describing mode of
321         builtin. Check lane bounds for arguments with
322         SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
323         (aarch64_simd_expand_builtin): Emit error for incorrect lane indices
324         if marked with SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
325         (aarch64_simd_expand_builtin): Handle arguments with
326         qualifier_struct_load_store_lane_index. Pass machine mode of builtin to
327         aarch64_simd_expand_args.
328         * config/aarch64/aarch64-simd-builtins.def: Declare ld[234]_lane and
329         vst[234]_lane with BUILTIN_VALLDIF.
330         * config/aarch64/aarch64-simd.md:
331         (aarch64_vec_load_lanesoi_lane<mode>): Use VALLDIF iterator. Perform
332         endianness reversal on lane index.
333         (aarch64_vec_load_lanesci_lane<mode>): Ditto.
334         (aarch64_vec_load_lanesxi_lane<mode>): Ditto.
335         (vec_store_lanesoi_lane<mode>): Use VALLDIF iterator.
336         (vec_store_lanesci_lane<mode>): Ditto.
337         (vec_store_lanesxi_lane<mode>): Ditto.
338         (aarch64_ld2_lane<mode>): Use VALLDIF iterator. Remove endianness
339         reversal of lane index.
340         (aarch64_ld3_lane<mode>): Ditto.
341         (aarch64_ld4_lane<mode>): Ditto.
342         (aarch64_st2_lane<mode>): Ditto.
343         (aarch64_st3_lane<mode>): Ditto.
344         (aarch64_st4_lane<mode>): Ditto.
345         * config/aarch64/arm_neon.h (__LD2_LANE_FUNC): Rename mode parameter
346         to qmode. Add new mode parameter. Update uses.
347         (__LD3_LANE_FUNC): Ditto.
348         (__LD4_LANE_FUNC): Ditto.
349         (__ST2_LANE_FUNC): Ditto.
350         (__ST3_LANE_FUNC): Ditto.
351         (__ST4_LANE_FUNC): Ditto.
352
353 2015-07-22  Jonathan Wakely  <jwakely@redhat.com>
354
355         * doc/invoke.texi (Language Independent Options): Rename node to
356         Diagnostic Message Formatting Options.
357
358 2015-07-21  Vladimir Makarov  <vmakarov@redhat.com>
359
360         PR ipa/66424.
361         * lra-remat.c (operand_to_remat): Prevent using insns with input
362         subregs processed separately by IRA.
363
364 2015-07-21  Andrew MacLeod  <amacleod@redhat.com>
365
366         * ssa-iterators.h (has_zero_uses, has_single_use): Implement as
367         straight loops.
368         (single_imm_use): Check for iterator node.
369         (num_imm_uses): Likewise.
370         * tree-ssa-operands.c (has_zero_uses_1): Delete.
371         (single_imm_use_1): Check for iterator node.
372
373 2015-07-21  Mike Frysinger  <vapier@gentoo.org>
374             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
375
376         * configure.ac: Add check for new options in isl-0.15.
377         * config.in, configure: Rebuilt.
378         * graphite-blocking.c: Include <isl/constraint.h>
379         * graphite-interchange.c,  graphite-poly.c: Likewise.
380         * graphhite-scop-detection.c, graphite-sese-to-poly.c: Likewise.
381         * graphite.c: Likewise.
382         * graphite-isl-ast-to-gimple.c: Include <isl/constraint.h> and
383         <isl/union_set.h>.
384         * graphite-dependences.c: Include <isl/constraint.h>.
385         (max_number_of_out_dimensions): Returns isl_stat.
386         (extend_schedule_1): Likewise
387         (extend_schedule): Corresponding changes.
388         * graphite-optimize-isl.c: Include <isl/constraint.h> and
389         <isl/union_set.h>.
390         (getSingleMap): Change return type of isl_stat.
391         (optimize_isl): Conditionally use
392         isl_options_set_schedule_serialize_sccs.
393         * graphite-poly.h (isl_stat, isl_stat_ok): Define fallbacks
394         if not HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS.
395
396 2015-07-21  Georg-Johann Lay  <avr@gjlay.de>
397
398         PR target/66956
399         * config/avr/avr-dimode.md (<extend_u>mulsidi3_insn)
400         (<extend_u>mulsidi3): Don't use if !AVR_HAVE_MUL.
401
402 2015-07-21  Richard Biener  <rguenther@suse.de>
403
404         PR tree-optimization/66948
405         * genmatch.c (capture_info::walk_match): Also recurse to
406         captures.  Properly compute expr state from captures of
407         captures.
408         * match.pd: Add single-use guards to
409         (X & C2) >> C1 into (X >> C1) & (C2 >> C1) transform.
410
411 2015-07-21  Nathan Sidwell  <nathan@codesourcery.com>
412
413         * config/nvptx/mkoffload.c (process): Add static destructor call.
414
415 2015-07-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
416
417         PR middle-end/66915
418         * match.pd (A - B -> A + (-B)): Don't allow folding
419         when type if a fixed-point type.
420
421 2015-07-20  DJ Delorie  <dj@redhat.com>
422
423         * config/rl78/rl78-real.md (andqi3_real): Expand operands for clr1.
424         (iorqi3_real): Likewise for set1.
425
426 2015-07-20  Uros Bizjak  <ubizjak@gmail.com>
427
428         * config/i386/i386.c (ix86_md_asm_adjust): Handle DImode dest_mode
429         for !TARGET_64BIT.
430
431 2015-07-20  Aditya Kumar  <hiraditya@msn.com>
432
433         * graphite-isl-ast-to-gimple.c:
434         Refactor so that each function can access 'region'. This will help
435         maintain a parameter rename_map within a region.
436
437 2015-07-20  Segher Boessenkool  <segher@kernel.crashing.org>
438
439         * config/rs6000/rs6000.md (*lt0_disi): New.
440
441 2015-07-20  Segher Boessenkool  <segher@kernel.crashing.org>
442
443         PR target/66217
444         * config/rs6000/constraints.md ("S", "T", "t"): Delete.  Update
445         "available letters" comment.
446         * config/rs6000/predicates.md (mask_operand, mask_operand_wrap,
447         mask64_operand, mask64_2_operand, any_mask_operand, and64_2_operand,
448         and_2rld_operand):  Delete.
449         (and_operand): Adjust.
450         (rotate_mask_operator): New.
451         * config/rs6000/rs6000-protos.h (build_mask64_2_operands,
452         includes_lshift_p, includes_rshift_p, includes_rldic_lshift_p,
453         includes_rldicr_lshift_p, insvdi_rshift_rlwimi_p, extract_MB,
454         extract_ME): Delete.
455         (rs6000_is_valid_mask, rs6000_is_valid_and_mask,
456         rs6000_is_valid_shift_mask, rs6000_is_valid_insert_mask,
457         rs6000_insn_for_and_mask, rs6000_insn_for_shift_mask,
458         rs6000_insn_for_insert_mask, rs6000_is_valid_2insn_and,
459         rs6000_emit_2insn_and): New.
460         * config/rs6000/rs6000.c (num_insns_constant): Adjust.
461         (build_mask64_2_operands, includes_lshift_p, includes_rshift_p,
462         includes_rldic_lshift_p, includes_rldicr_lshift_p,
463         insvdi_rshift_rlwimi_p, extract_MB, extract_ME): Delete.
464         (rs6000_is_valid_mask, rs6000_is_valid_and_mask,
465         rs6000_insn_for_and_mask, rs6000_is_valid_shift_mask,
466         s6000_insn_for_shift_mask, rs6000_is_valid_insert_mask,
467         rs6000_insn_for_insert_mask, rs6000_is_valid_2insn_and,
468         rs6000_emit_2insn_and): New.
469         (print_operand) <'b', 'B', 'm', 'M', 's', 'S', 'W'>: Delete.
470         (rs6000_rtx_costs) <CONST_INT>: Delete mask_operand and mask64_operand
471         handling.
472         <NOT>: Don't fall through to next case.
473         <AND>: Handle the various rotate-and-mask cases directly.
474         <IOR>: Always cost as one insn.
475         * config/rs6000/rs6000.md (splitter for bswap:SI): Adjust.
476         (and<mode>3): Adjust expander for the new patterns.
477         (and<mode>3_imm, and<mode>3_imm_dot, and<mode>3_imm_dot2,
478         and<mode>3_imm_mask_dot, and<mode>3_imm_mask_dot2): Adjust condition.
479         (*and<mode>3_imm_dot_shifted): New.
480         (*and<mode>3_mask): Delete, rewrite as ...
481         (and<mode>3_mask): ... New.
482         (*and<mode>3_mask_dot, *and<mode>3_mask_dot): Rewrite.
483         (andsi3_internal0_nomc): Delete.
484         (*andsi3_internal6): Delete.
485         (*and<mode>3_2insn): New.
486         (insv, insvsi_internal, *insvsi_internal1, *insvsi_internal2,
487         *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
488         *insvsi_internal6, insvdi_internal, *insvdi_internal2,
489         *insvdi_internal3): Delete.
490         (*rotl<mode>3_mask, *rotl<mode>3_mask_dot, *rotl<mode>3_mask_dot2,
491         *rotl<mode>3_insert, *rotl<mode>3_insert_2, *rotl<mode>3_insert_3,
492         *rotl<mode>3_insert_4, two splitters for multi-precision shifts,
493         *ior<mode>_mask): New.
494         (extzv, extzvdi_internal, *extzvdi_internal1, *extzvdi_internal2,
495         *rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
496         *ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
497         *lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
498         Delete.
499         (ashr<mode>3): Delete expander.
500         (*ashr<mode>3): Rename to ...
501         (ashr<mode>3): ... This.
502         (ashrdi3_no_power, *ashrdisi3_noppc64be): Delete.
503         (*rotldi3_internal4, *rotldi3_internal5 and split,
504         *rotldi3_internal6 and split, *ashldi3_internal4, ashldi3_internal5
505         and split, *ashldi3_internal6 and split, *ashldi3_internal7,
506         ashldi3_internal8 and split, *ashldi3_internal9 and split): Delete.
507         (*anddi3_2rld, *anddi3_2rld_dot, *anddi3_2rld_dot2): Delete.
508         (splitter for loading a mask): Adjust.
509         * doc/md.texi (Machine Constraints): Remove q, S, T, t constraints.
510
511 2015-07-20  Marek Polacek  <polacek@redhat.com>
512
513         * genemit.c (print_code, gen_exp, gen_insn, gen_expand, gen_split,
514         output_add_clobbers, output_added_clobbers_hard_reg_p,
515         gen_rtx_scratch): Remove declarations.
516
517 2015-07-20  Marek Polacek  <polacek@redhat.com>
518
519         PR c++/55095
520         * doc/invoke.texi: Document -Wshift-overflow and -Wshift-overflow=.
521
522 2015-07-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
523
524         * simplify-rtx.c (simplify_unary_operation_1, NEG case):
525         (neg (x ? (neg y) : y)) -> !x ? (neg y) : y.
526
527 2015-07-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
528
529         * combine.c (combine_simplify_rtx): Move simplification step
530         before various transformations/substitutions.
531
532 2015-07-20  Mikhail Maltsev  <maltsevm@gmail.com>
533
534         * wide-int.h (struct binary_traits): Fix partial specialization syntax.
535         (struct int_traits): Likewise.
536
537 2015-07-18  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
538
539         * vmsdbgout.c (vmsdbgout_decl): Change name of prototyped
540         function to vmsdbgout_function_decl.
541
542 2015-07-18  Uros Bizjak  <ubizjak@gmail.com>
543
544         PR target/66922
545         * config/i386/i386.c (ix86_expand_pextr): Reject extractions
546         from misaligned positions.
547         (ix86_expand_pinsr): Reject insertions to misaligned positions.
548
549 2015-07-18  Sebastian Pop  <s.pop@samsung.com>
550
551         PR middle-end/46851
552         PR middle-end/60340
553         * Makefile.in: Removed omega.o.
554         * common.opt: Document flag fcheck-data-deps as deprecated.
555         * doc/invoke.texi: Remove documentation for fcheck-data-deps and
556         its associated params: omega-max-vars, omega-max-geqs,
557         omega-max-eqs, omega-max-wild-cards, omega-hash-table-size,
558         omega-max-keys, omega-eliminate-redundant-constraints.
559         * doc/loop.texi: Remove all the section on Omega.
560         * graphite-blocking.c: Include missing params.h: it used to be
561         included through tree-data-ref.h and omega.h.
562         * graphite-isl-ast-to-gimple.c: Same.
563         * graphite-optimize-isl.c: Same.
564         * graphite-sese-to-poly.c: Same.
565         * graphite.c: Same.
566         * omega.c: Remove.
567         * omega.h: Remove.
568         * params.def: Removed PARAM_OMEGA_MAX_VARS, PARAM_OMEGA_MAX_GEQS,
569         PARAM_OMEGA_MAX_EQS, PARAM_OMEGA_MAX_WILD_CARDS,
570         PARAM_OMEGA_HASH_TABLE_SIZE, PARAM_OMEGA_MAX_KEYS, and
571         PARAM_OMEGA_ELIMINATE_REDUNDANT_CONSTRAINTS.
572         * passes.def: Remove pass_check_data_deps.
573         * tree-data-ref.c (dump_affine_function): Declare DEBUG_FUNCTION.
574         (dump_conflict_function): Same.
575         (dump_subscript): Same.
576         (print_direction_vector): Same.
577         (print_dir_vectors): Same.
578         (print_lambda_vector): Same.
579         (print_dist_vectors): Same.
580         (dump_data_dependence_relation): Same.
581         (dump_data_dependence_relations): Same.
582         (dump_dist_dir_vectors): Same.
583         (dump_ddrs): Same.
584         (init_omega_eq_with_af): Removed.
585         (omega_extract_distance_vectors): Removed.
586         (omega_setup_subscript): Removed.
587         (init_omega_for_ddr_1): Removed.
588         (init_omega_for_ddr): Removed.
589         (ddr_consistent_p): Removed.
590         (compute_affine_dependence): Do not use omega to check data
591         dependences.
592         (compute_data_dependences_for_bb): Removed.
593         (analyze_all_data_dependences): Removed.
594         (tree_check_data_deps): Removed.
595         * tree-data-ref.h: Do not include omega.h.
596         (compute_data_dependences_for_bb): Removed.
597         (tree_check_data_deps): Removed.
598         * tree-ssa-loop.c (pass_check_data_deps): Removed.
599         (make_pass_check_data_deps): Removed.
600         * tree-ssa-phiopt.c: Include params.h.
601         * tree-vect-data-refs.c: Same.
602         * tree-vect-slp.c: Same.
603
604 2015-07-18  Uros Bizjak  <ubizjak@gmail.com>
605
606         * config/i386/i386.md (pushsf splitter): Pass curr_insn to
607         find_constant_src.  FAIL if find_constant_src returns NULL_RTX.
608         (mem->fpreg splitters): Ditto.
609         (general_operand->nonimmediate_operand splitter): Use explicit modes.
610         Disable DFmode for TARGET_64BIT.
611
612 2015-07-17  H.J. Lu  <hongjiu.lu@intel.com>
613
614         PR target/66906
615         * config/i386/i386.c (ix86_expand_prologue): Replicate static
616         chain on the stack.
617
618 2015-07-17  Nathan Sidwell  <nathan@codesourcery.com>
619
620         * config/nvptx/mkoffload.c (process): Constify host data.
621         * config/i386/intelmic-mkoffload.c (generate_target_descr_file):
622         Constify host data.
623         (generate_host_descr_file): Likewise.
624
625 2015-07-17  Aditya Kumar  <aditya.k7@samsung.com>
626             Sebastian Pop  <s.pop@samsung.com>
627
628         PR middle-end/61929
629         * graphite-dependences.c (add_pdr_constraints): Renamed
630         pdr->extent to pdr->subscript_sizes.
631         * graphite-interchange.c (build_linearized_memory_access): Add
632         back all gcc_assert's that the "isl_int to isl_val conversion"
633         patch has removed.  Refactored.
634         (pdr_stride_in_loop): Renamed pdr->extent to pdr->subscript_sizes.
635         * graphite-poly.c (new_poly_dr): Same.
636         (free_poly_dr): Same.
637         * graphite-poly.h (struct poly_dr): Same.
638         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Ignore
639         all data references other than ARRAY_REF, MEM_REF, and COMPONENT_REF.
640         * graphite-scop-detection.h: Fix space.
641         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Add
642         back all gcc_assert's removed by a previous patch.
643         (wrap): Remove the_isl_ctx global variable that the same patch has
644         added.
645         (build_loop_iteration_domains): Same.
646         (add_param_constraints): Same.
647         (pdr_add_data_dimensions): Same.  Refactored.
648         (build_poly_dr): Renamed extent to subscript_sizes.
649
650 2015-07-17  Marek Polacek  <polacek@redhat.com>
651
652         * fold-const.c (fold_binary_loc): Move A - (A & B) into ~B & A ...
653         * match.pd: ... here.
654
655 2015-07-17  Nathan Sidwell  <nathan@codesourcery.com>
656
657         * config/nvptx/mkoffload.c (process): Constify target data.
658         * config/i386/intelmic-mkoffload.c (generate_target_descr_file):
659         Constify target data.
660         (generate_target_offloadend_file): Likewise.
661
662 2015-07-17  Yuri Rumyantsev  <ysrumyan@gmail.com>
663
664         * tree-vect-loop-manip.c (rename_variables_in_bb): Add argument
665         to allow renaming of PHI arguments on edges incoming from outer
666         loop header, add corresponding check before start PHI iterator.
667         (slpeel_tree_duplicate_loop_to_edge_cfg): Introduce new bool
668         variable DUPLICATE_OUTER_LOOP and set it to true for outer loops
669         with true force_vectorize.  Set-up dominator for outer loop too.
670         Pass DUPLICATE_OUTER_LOOP as argument to rename_variables_in_bb.
671         (slpeel_can_duplicate_loop_p): Allow duplicate of outer loop if it
672         was marked with force_vectorize and has restricted cfg.
673         (slpeel_tree_peel_loop_to_edge): Do not rename exit PHI uses in
674         inner loop.
675         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
676         do peeling for outer loops.
677
678 2015-07-17  Yvan Roux  <yvan.roux@linaro.org>
679             Matthias Klose  <doko@ubuntu.com>
680
681         * configure.ac: Move AC_ARG_WITH checks for native-system-header-dir,
682         build-sysroot, sysroot from the `Miscenalleous configure options' to
683         the `Directories' section and strip trailing `/' from with_sysroot.
684         (gcc_gxx_include_dir): Don't strip a `/' sysroot value.
685         * configure: Regenerated.
686
687 2015-07-17  Uros Bizjak  <ubizjak@gmail.com>
688
689         PR target/66824
690         * config/i386/i386.h (TARGET_HARD_SF_REGS): New define.
691         (TARGET_HARD_DF_REGS): Ditto.
692         (TARGET_HARD_XF_REGS): Ditto.
693         * config/i386/i386.md (*movxf_internal): Add alternatives 9 and 10.
694         Enable alternatives 9 and 10 only for !TARGET_HARD_XF_REG target.
695         (*movdf_internal): Add alternatives 22, 23, 24 and 25. Enable
696         alternatives 22, 23, 24 and 25 only for !TARGET_HARD_DF_REG target.
697         (*movsf_internal): Add alternatives 16 and 17. Enable
698         alternatives 16 and 17 only for !TARGET_HARD_SF_REG target.
699
700 2015-07-17  Uros Bizjak  <ubizjak@gmail.com>
701
702         PR rtl-optimization/66891
703         * calls.c (expand_call): Wrap precompute_register_parameters with
704         NO_DEFER_POP/OK_DEFER_POP to prevent deferred pops.
705
706 2015-07-16  Nathan Sidwell  <nathan@codesourcery.com>
707
708         * config/nvptx/mkoffload.c (process): Constify mapping variables.
709         Define target data struct and initialize it.
710
711 2015-07-16  Vladimir Makarov  <vmakarov@redhat.com>
712
713         PR rtl-optimization/66626
714         * ira.h (emit-rtl.h): Include.
715         (non_spilled_static_chain_regno_p): New.
716         * ira-color.c (setup_profitable_hard_regs): Clear profitable regs
717         unless it is non spilled static chain pseudo.
718         (assign_hard_rego): Spill memory profitable allocno unless it is
719         non spilled static chain pseudo.
720         (allocno_spill_priority_compare): Put non spilled static chain
721         pseudo at the end of sorted array.
722         (improve_allocation): Do nothing if we have static chain and
723         non-local goto.
724         (allocno__priority_compare_func): Put non spilled static chain
725         pseudo at the beginning of sorted array.
726         (move_spill_restore): Ignore non spilled static chain pseudo.
727         * ira-costs.c (find_costs_and_classes): Don't assign class NO_REGS
728         to non spilled static chain pseudo.
729         * lra-assigns.c (pseudo_compare_func): Put non spilled static chain
730         pseudo at the beginning of sorted array.
731         (spill_for): Spill non spilled static chain pseudo last.
732         * lra-constraints.c (lra_constraints): Remove static chain pseudo
733         check for equivalence.
734
735 2015-07-16  Martin Liska  <mliska@suse.cz>
736
737         PR ipa/66896.
738         * ipa-prop.c (update_jump_functions_after_inlining): Create properly
739         dst_ctx if it does not exist.
740
741 2015-07-16  Martin Liska  <mliska@suse.cz>
742
743         * hash-set.h (remove): New function.
744         (iterator): New iteration class for hash_set.
745
746 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
747
748         * genattrtab.c (make_canonical): Add a file_location parameter.
749         Use fatal_at rather than fatal.
750         (get_attr_value): Likewise.  Update call to make_canonical.
751         (fill_attr, make_length_attrs, optimize_attrs, gen_attr)
752         (make_internal_attr): Update calls accordingly.
753
754 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
755
756         * read-md.h (message_with_line, error_with_line): Delete.
757         * read-md.c (message_with_line, error_with_line): Delete.
758         * gensupport.h: Include read-md.h.
759         (md_rtx_info): New structure.
760         (read_md_rtx): Use it.  Return a bool success value.
761         * gensupport.c (read_md_rtx): Likewise.
762         * genattr-common.c (gen_attr): Take an md_rtx_info rather than an rtx.
763         (main): Update after interface changes.
764         * genattr.c (gen_attr): Take an md_rtx_info rather than an rtx.
765         (main): Update after interface changes.
766         * genattrtab.c (insn_code_number): Delete.
767         (optimize_attrs): Add a max_insn_code parameter and use it instead
768         of insn_code_number.
769         (gen_attr): Take an md_rtx_info rather than an rtx and lineno.
770         Use *_at rather than *_with_line functions.
771         (gen_insn): Likewise.
772         (gen_delay): Likewise.
773         (gen_insn_reserv): Likewise.
774         (gen_bypass): Take an md_rtx_info rather than an rtx.
775         (main): Update after interface changes.  Use a local max_insn_code
776         variable instead of insn_code_number.
777         * genautomata.c (gen_cpu_unit): Take an md_rtx_info rather than
778         an rtx.  Use fatal_at rather than fatal.
779         (gen_query_cpu_unit, gen_bypass, gen_excl_set)
780         (gen_presence_absence_set, gen_presence_set, gen_final_presence_set)
781         (gen_absence_set, gen_final_absence_set, gen_automaton)
782         (gen_automata_option, gen_reserv, gen_insn_reserv): Likewise.
783         (main): Update after interface changes.
784         * gencodes.c (gen_insn): Take an md_rtx_info rather than an rtx
785         and code number.
786         (main): Update after interface changes.
787         * genconditions.c (main): Use new read_md_rtx interface.
788         * genconfig.c (gen_insn): Take an md_rtx_info rather than an rtx.
789         (gen_expand, gen_split, gen_peephole, gen_peephole2): Likewise.
790         (main): Update after interface changes.
791         * genemit.c (insn_code_number, insn_index_number): Delete.
792         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
793         Use fatal_at rather than fatal.
794         (gen_expand): Take an md_rtx_info rather than an rtx.  Use fatal_at
795         rather than fatal.
796         (gen_split): Likewise.
797         (main): Update after interface changes.
798         * genextract.c (line_no): Delete.
799         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
800         Update call to walk_rtx.
801         (VEC_safe_set_locstr): Add an md_rtx_info argument.  Use message_at
802         rather than message_with_line.
803         (walk_rtx): Add an md_rtx_info argument.  Update call to
804         VEC_safe_set_locstr.
805         (main): Update after interface changes.
806         * genflags.c (gen_insn): Take an md_rtx_info rather than an rtx
807         and lineno.  Use error_at rather than separate message_with_line
808         calls and have_error assignments.
809         (main): Update after interface changes.
810         * genmddump.c (main): Use new read_md_rtx interface.
811         * genopinit.c (insn): Take an md_rtx_info rather than an rtx.
812         (main): Update after interface changes.
813         * genoutput.c (next_code_number): Delete.
814         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
815         (gen_peephole, gen_expand, gen_split): Likewise.
816         (note_constraint): Likewise.  Use *_at rather than *_with_line
817         functions.
818         (main): Update after interface changes.
819         * genpeep.c (gen_peephole): Take an md_rtx_info rather than an
820         rtx and lineno.
821         (main): Update after interface changes.
822         * genpreds.c (process_define_predicate): Take an md_rtx_info rather
823         than an rtx and lineno.
824         (process_define_constraint): Likewise.
825         (process_define_register_constraint): Likewise.
826         (main): Update after interface changes.
827         * genrecog.c (next_insn_code, pattern_lineno): Delete.
828         (validate_pattern): Replace top-level rtx with an md_rtx_info.
829         Use *_at rather than *_with_line functions.
830         (match_pattern_2): Likewise.
831         (match_pattern_1, match_pattern): Add an md_rtx_info parameter.
832         (get_peephole2_pattern): Take an md_rtx_info rather than an rtvec.
833         Use *_at rather than *_with_line functions.
834         * gentarget-def.c (add_insn): New function.
835         (main): Use it.  Use new read_md_rtx interface.
836
837 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
838
839         * gensupport.h (compute_test_codes): Take a file_location rather
840         than a line number.
841         * gensupport.c (compute_test_codes): Likewise.  Use *_at functions
842         rather than *_with_line functions.
843         (process_define_predicate): Update call to compute_test_codes.
844         * genpreds.c (validate_exp): Take a file_location rather than a
845         line number.  Use *_at functions rather than *_with_line functions.
846         (process_define_predicate): Update call to validate_exp.
847         (constraint_data): Replace lineno field with a file_location.
848         (add_constraint): Take a file_location rather than a line number.
849         Use *_at functions rather than *_with_line functions.  Fix error
850         message for address constraints.  Update after changes to
851         validate_exp, constraint_data and compute_test_codes.
852         (process_define_constraint): Update accordingly.
853         (process_define_register_constraint): Likewise.
854
855 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
856
857         * genoutput.c (data): Use a file_location to record the source
858         position.
859         (nothing): Delete.
860         (idata, idata_end): Remove initialization.
861         (constraint_data): Replace lineno with a file_location.
862         (output_insn_data): Update after changes to data.
863         (gen_insn, gen_peephole, gen_expand, gen_split): Likewise.
864         (scan_operands): Likewise, using *_at rather than *_with_line
865         functions.
866         (process_template): Likewise.
867         (validate_insn_alternatives): Likewise.
868         (validate_insn_operands): Likewise.
869         (validate_optab_operands): Likewise.
870         (init_insn_for_nothing): Initialize idata and idata_end.
871         (note_constraint): Update after changes to constraint_data,
872         using at rather than with_line functions.
873         (mdep_constraint_len): Take a file_location rather than a
874         line number.  Use at rather than with_line functions.
875
876 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
877
878         * read-md.h (fatal_at): Declare.
879         * read-md.c (fatal_at): New function.
880         * genattrtab.c (insn_def, attr_desc, delay_desc): Use a file_location
881         to record the source position.
882         (check_attr_test): Take a file_location instead of a line number.
883         Use fatal_at instead of fatal.
884         (check_attr_value): Update after above changes, using "at"
885         rather than "with_line" reporting functions.
886         (convert_set_attr_alternative): Likewise.
887         (gen_attr): Likewise.
888         (check_defs): Likewise.  Don't assign to read_md_filename.
889         (gen_insn): Update initialization after above changes.
890         (gen_delay): Likewise.
891         (write_insn_cases): Print the filename for a define_peephole.
892         (gen_insn_reserv): Take a line number as argument and update
893         the call to check_attr_test.
894         (main): Pass a line number to gen_insn_reserv.
895
896 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
897
898         * read-md.h (file_location): New structure.
899         (directive_handler_t): Take a file_location rather than a line number.
900         (message_at, error_at): Declare.
901         (read_skip_construct): Delete.
902         * read-md.c (message_with_line_1): Replace with...
903         (message_at_1): ...this new function.
904         (message_at, error_at): New functions.
905         (message_with_line, error_with_line): Update to use message_at_1.
906         (handle_enum): Take a file_location rather than a line number
907         and use error_at for error reporting.
908         (handle_include): Likewise.
909         (read_skip_construct): Likewise.  Make static.
910         (handle_file): Update after above changes.  Pass a file_location
911         rather than a line number to handle_directive.
912         * gensupport.c (queue_elem): Replace separate filename and lineno
913         with a file_location.
914         (queue_pattern): Replace filename and lineno arguments with a
915         file_location.  Update after change to queue_elem.
916         (process_define_predicate): Replace lineno argument with a
917         file_location and use error_at for error reporting.  Update
918         after above changes.
919         (process_rtx): Likewise.
920         (subst_pattern_match): Likewise.
921         (get_alternatives_number): Likewise.
922         (alter_predicate_for_insn): Likewise.
923         (rtx_handle_directive): Likewise.
924         (is_predicable): Update after above changes, using error_at rather
925         than error_with_line.
926         (has_subst_attribute): Likewise.
927         (identify_predicable_attribute): Likewise.
928         (alter_attrs_for_subst_insn): Likewise.
929         (process_one_cond_exec): Likewise.
930         (process_substs_on_one_elem): Likewise.
931         (process_define_subst): Likewise.
932         (check_define_attr_duplicates): Likewise.
933         (read_md_rtx): Update after change to queue_elem.
934
935 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
936
937         * genoutput.c (next_index_number): Delete.
938         (data): Remove index_number.
939         (gen_insn, gen_peephole, gen_expand, gen_split): Update accordingly.
940         (main): Remove manipulation of next_index_number.
941
942 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
943
944         * genattrtab.c (check_attr_value): Remove handling of null attrs.
945         (make_canonical): Likewise.
946
947 2015-07-16  Eric Botcazou  <ebotcazou@adacore.com>
948
949         * config/sparc/sparc.md (save_stack_nonlocal): Use adjust_address
950         instead of adjust_address_nv.
951         (restore_stack_nonlocal): Likewise.
952         (nonlocal_goto): Likewise.
953
954 2015-07-16  Tom de Vries  <tom@codesourcery.com>
955
956         * tree-parloops.c (create_parallel_loop): Handle case that exit phi does
957         not have a corresponding loop header phi.
958
959 2015-07-16  Tom de Vries  <tom@codesourcery.com>
960
961         * tree-parloops.c (create_loads_for_reductions): Handle case that
962         reduction is unused.
963
964 2015-07-16  Richard Biener  <rguenther@suse.de>
965
966         PR tree-optimization/66894
967         * tree-vrp.c (register_edge_assert_for_2): Fix bad assumption
968         about deriving NE_EXPR from truncated values.
969
970 2015-07-16  Martin Liska  <mliska@suse.cz>
971
972         * alloc-pool.h
973         (object_allocator): Add new class.
974         (pool_allocator::initialize): Use the underlying class.
975         (pool_allocator::allocate): Likewise.
976         (pool_allocator::remove): Likewise.
977         (operator new): A new generic allocator.
978         * asan.c (struct asan_mem_ref): Remove unused members.
979         (asan_mem_ref_new): Replace new operator with
980         object_allocator::allocate.
981         (free_mem_ref_resources): Change deallocation.
982         * cfg.c (initialize_original_copy_tables): Replace pool_allocator
983         with object_allocator.
984         * config/sh/sh.c (add_constant): Replace new operator with
985         object_allocator::allocate.
986         (sh_reorg): Change call to a release method.
987         * cselib.c (struct elt_list): Remove unused members.
988         (new_elt_list): Replace new operator with
989         object_allocator::allocate.
990         (new_elt_loc_list): Likewise.
991         (new_cselib_val): Likewise.
992         (unchain_one_elt_list): Change delete operator with remove method.
993         (unchain_one_elt_loc_list): Likewise.
994         (unchain_one_value): Likewise.
995         (cselib_finish): Release newly added static allocators.
996         * cselib.h (struct cselib_val): Remove unused members.
997         (struct elt_loc_list): Likewise.
998         * df-problems.c (df_chain_alloc): Replace pool_allocator with
999         object_allocator.
1000         * df-scan.c (struct df_scan_problem_data): Likewise.
1001         (df_scan_alloc): Likewise.
1002         * df.h (struct dataflow): Likewise.
1003         * dse.c (struct read_info_type): Likewise.
1004         (struct insn_info_type): Likewise.
1005         (struct dse_bb_info_type): Likewise.
1006         (struct group_info): Likewise.
1007         (struct deferred_change): Likewise.
1008         (get_group_info): Likewise.
1009         (delete_dead_store_insn): Likewise.
1010         (free_read_records): Likewise.
1011         (replace_read): Likewise.
1012         (check_mem_read_rtx): Likewise.
1013         (scan_insn): Likewise.
1014         (dse_step1): Likewise.
1015         (dse_step7): Likewise.
1016         * et-forest.c (struct et_occ): Remove unused members.
1017         (et_new_occ): Use allocate instead of new operator.
1018         (et_new_tree): Likewise.
1019         (et_free_tree): Call release method explicitly.
1020         (et_free_tree_force): Likewise.
1021         (et_free_pools): Likewise.
1022         (et_split): Use remove instead of delete operator.
1023         * et-forest.h (struct et_node): Remove unused members.
1024         * ipa-cp.c: Change pool_allocator to object_allocator.
1025         * ipa-inline-analysis.c: Likewise.
1026         * ipa-profile.c: Likewise.
1027         * ipa-prop.c: Likewise.
1028         * ipa-prop.h: Likewise.
1029         * ira-build.c (initiate_cost_vectors): Cast return value.
1030         (ira_allocate_cost_vector): Likewise.
1031         * ira-color.c (struct update_cost_record): Remove unused members.
1032         * lra-int.h (struct lra_live_range): Likewise.
1033         (struct lra_copy): Likewise.
1034         (struct lra_insn_reg): Likewise.
1035         * lra-lives.c (lra_live_ranges_finish): Release new static allocator.
1036         * lra.c (new_insn_reg): Replace new operator with allocate method.
1037         (free_insn_regs): Same for operator delete.
1038         (finish_insn_regs): Release new static allocator.
1039         (finish_insn_recog_data): Likewise.
1040         (lra_free_copies): Replace delete operator with remove method.
1041         (lra_create_copy): Replace operator new with allocate method.
1042         (invalidate_insn_data_regno_info): Same for remove method.
1043         * regcprop.c (struct queued_debug_insn_change): Remove unused members.
1044         (free_debug_insn_changes): Replace delete operator with remove method.
1045         (replace_oldest_value_reg): Replace operator new with allocate method.
1046         (pass_cprop_hardreg::execute): Release new static variable.
1047         * sched-deps.c (sched_deps_init): Change pool_allocator to
1048         object_allocator.
1049         * sel-sched-ir.c: Likewise.
1050         * sel-sched-ir.h: Likewise.
1051         * stmt.c (expand_case): Likewise.
1052         (expand_sjlj_dispatch_table): Likewise.
1053         * tree-sra.c (struct access): Remove unused members.
1054         (struct assign_link): Likewise.
1055         (sra_deinitialize): Release newly added static pools.
1056         (create_access_1):Replace operator new with allocate method.
1057         (build_accesses_from_assign): Likewise.
1058         (create_artificial_child_access): Likewise.
1059         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Change
1060         pool_allocator to object_allocator.
1061         * tree-ssa-pre.c: Likewise.
1062         * tree-ssa-reassoc.c: Likewise.
1063         * tree-ssa-sccvn.c (allocate_vn_table): Likewise.
1064         * tree-ssa-strlen.c: Likewise.
1065         * tree-ssa-structalias.c: Likewise.
1066         * var-tracking.c (onepart_pool_allocate): New function.
1067         (unshare_variable): Use the newly added function.
1068         (variable_merge_over_cur): Likewise.
1069         (variable_from_dropped): Likewise.
1070         (variable_was_changed): Likewise.
1071         (set_slot_part): Likewise.
1072         (emit_notes_for_differences_1): Likewise.
1073         (vt_finalize): Release newly added static pools.
1074
1075 2015-07-16  Martin Jambor  <mjambor@suse.cz>
1076
1077         * ipa-prop.h (param_aa_status): Rename to ipa_param_aa_status.  Adjust
1078         all uses.  Fix two typos in its general comment.
1079         (func_body_info): Rename to ipa_func_body_info.  Adjust all uses.
1080
1081 2015-07-16  Ilya Enkovich  <enkovich.gnu@gmail.com>
1082
1083         * config/i386/linux-common.h (LINK_MPX): New.
1084         (MPX_SPEC): Use LINK_MPX instead of %(link_mpx).
1085         * configure.ac: Add HAVE_LD_BNDPLT_SUPPORT macro
1086         indicating '-z bndplt' support by linker.
1087         * configure: Regenerate.
1088         * config.in: Regenerate.
1089
1090 2015-07-16  Richard Biener  <rguenther@suse.de>
1091
1092         * fold-const.c (fold_widened_comparison): Remove.
1093         (fold_sign_changed_comparison): Likewise.
1094         (fold_comparison): Move widened and sign-changed comparison
1095         simplification ...
1096         * match.pd: ... to patterns here.
1097         * generic-match-head.c: Include target.h.
1098         * gimple-match-head.c: Likewise.
1099
1100 2015-07-16  Richard Biener  <rguenther@suse.de>
1101
1102         * tree-ssa-dom.c (dom_valueize): New function.
1103         (record_temporary_equivalences): Also record equivalences
1104         for dominating stmts that have uses of equivalences we are
1105         about to record.
1106
1107 2015-07-16  Bin Cheng  <bin.cheng@arm.com>
1108
1109         * tree-ssa-loop-ivopts.c (add_candidate): Remove call to
1110         add_autoinc_candidates.
1111         (add_iv_candidate_for_biv): Rename to add_iv_candidate_for_biv.
1112         (add_iv_candidate_for_biv): Rename from add_iv_candidate_for_biv.
1113         (add_old_ivs_candidates): Rename to add_iv_candidate_for_bivs.
1114         (add_iv_candidate_for_bivs): Rename from add_old_ivs_candidates.
1115         Call new function.
1116         (add_iv_value_candidates): Rename to add_iv_candidate_for_use.
1117         (add_iv_candidate_for_use): Rename from add_iv_value_candidates.
1118         Remove parameter struct iv*.  Call add_autoinc_candidates here.
1119         (add_derived_ivs_candidates): Rename to add_iv_candidate_for_uses.
1120         (add_iv_candidate_for_uses): Rename from add_derived_ivs_candidates.
1121         Call new function.
1122         (find_iv_candidates): Call new functions.
1123
1124 2015-07-16  Sandra Loosemore  <sandra@codesourcery.com>
1125
1126         * config/nios2/nios2.c (nios2_emit_stack_limit_check): Fix
1127         uninitialized-variable warning.
1128
1129 2015-07-16  Kaz Kojima  <kkojima@gcc.gnu.org>
1130
1131         PR target/65249
1132         * config/sh/sh.md (movdi): Split simple reg move to two movsi
1133         when the destination is R0.
1134
1135 2015-07-16  Uros Bizjak  <ubizjak@gmail.com>
1136
1137         PR target/66866
1138         * config/i386/i386-protos.h (ix86_expand_pextr): New prototype.
1139         * config/i386/i386.c (ix86_expand_pextr): New function.
1140         (ix86_expand_pinsr): Handle V1TI and TI modes.  Call ix86_expand_pextr
1141         for non-lowpart subregs.
1142         * config/i386/i386.md (extzv<mode>): Expand with ix86_expand_pextr.
1143         (insv<mode>): Use SWI248 mode iterator.
1144         (insv<mode>_1): Ditto.
1145
1146 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
1147             Sebastian Pop  <s.pop@samsung.com>
1148
1149         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Point
1150         iterator to use_stmt.
1151
1152 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
1153             Sebastian Pop <s.pop@samsung.com>
1154
1155         * graphite-scop-detection.c (build_scops_1): Discard scops for
1156         which entry==exit.
1157
1158 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
1159             Sebastian Pop <s.pop@samsung.com>
1160
1161         * graphite-scop-detection.c (stmt_simple_for_scop_p): Bail out in
1162         case of a return statement in scop.
1163
1164 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
1165             Sebastian Pop <s.pop@samsung.com>
1166
1167         * graphite-sese-to-poly.c (parameter_index_in_region): Only handle
1168         INTEGER_TYPE parameters.
1169         (scan_tree_for_params): Handle REAL_CST, COMPLEX_CST, and
1170         VECTOR_CST in scan_tree_for_params.
1171         (add_conditions_to_domain): Only constrain on INTEGER_TYPE.
1172
1173 2015-07-15  Andrew MacLeod  <amacleod@redhat.com>
1174
1175         * gimple-pretty-print.h: Don't include pretty-print.h.
1176         * tree-streamer.h: Don't include lto-streamer.h.
1177         * gimple-streamer.h: Include tree-streamer.h rather than lto-streamer.h.
1178         * gimple-streamer-in.c: Remove redundant includes.
1179         * gimple-streamer-out.c: Likewise.
1180         * ipa-devirt.c: Likewise.
1181         * ipa-icf.c: Likewise.
1182         * ipa-inline-analysis.c: Likewise.
1183         * ipa-polymorphic-call.c: Likewise.
1184         * ipa-profile.c: Likewise.
1185         * ipa-prop.c: Likewise.
1186         * ipa-pure-const.c: Likewise.
1187         * lto-cgraph.c: Likewise.
1188         * lto-streamer-in.c: Likewise.
1189         * lto-streamer-out.c: Likewise.
1190         * lto-streamer.c: Likewise.
1191         * tree-streamer-in.c: Likewise.
1192         * tree-streamer-out.c: Likewise.
1193         * tree-streamer.c: Likewise.
1194
1195 2015-07-15  Andrew MacLeod  <amacleod@redhat.com>
1196
1197         * opth-gen.awk: Check for UNKNOWN_LOCATION rather than GCC_TM_H, don't
1198         include input.h.
1199         * opts.c: Remove multiline #include comment.
1200
1201 2015-07-15  Nathan Sidwell  <nathan@codesourcery.com>
1202
1203         * config/nvptx/mkoffload.c (process): Add C++ protection to
1204         emitted code.
1205
1206 2015-07-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
1207
1208         PR target/66854
1209         * config/rs6000/rs6000.c (rs6000_pass_by_reference): Move test for
1210         null before IEEE 128-bit floating point support patch.
1211
1212 2015-07-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1213
1214         * simplify-rtx.c (simplify_ternary_operation): Add simplification
1215         for (!c) != {0,...,0} ? a : b for vector modes.
1216
1217 2015-07-15  Paolo Bonzini  <bonzini@gnu.org>
1218             Martin Jambor  <mjambor@suse.cz>
1219
1220         * ipa-inline-analysis.c (unmodified_parm_or_parm_agg_item): Accept
1221         struct func_body_info* instead of struct ipa_node_params*, expecting
1222         fbi->info to be filled in.  Replace throughout.  Adjust call to
1223         ipa_load_from_parm_agg.
1224         (set_cond_stmt_execution_predicate): Accept struct func_body_info*
1225         instead of struct ipa_node_params*.  Adjust calls to other functions
1226         so that they pass either fbi or fbi->info.
1227         (set_switch_stmt_execution_predicate): Likewise.
1228         (will_be_nonconstant_predicate): Likewise.
1229         (compute_bb_predicates): Likewise.
1230         (estimate_function_body_sizes): Move asserts earlier.  Fill in
1231         struct func_body_info, replace parms_info with fbi.info.  Adjust
1232         calls to functions that now accept struct func_body_info.
1233         * ipa-prop.c (param_aa_status, struct ipa_bb_info): Move to ipa-prop.h.
1234         (struct func_body_info): Likewise.
1235         (ipa_load_from_parm_agg_1): Rename to ipa_load_from_parm_agg,
1236         remove static.  Adjust callers.
1237         (ipa_load_from_parm_agg): Remove.
1238         * ipa-prop.h (param_aa_status, ipa_bb_info): Move from ipa-prop.c.
1239         (func_body_info): Likewise.
1240         (ipa_load_from_parm_agg): Adjust prototype.
1241
1242 2015-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1243
1244         * gensupport.c (rtx_handle_directive): Adjust.
1245         * read-rtl.c (apply_iterators): Take vector to add rtxs to
1246         instead of expr list rtx.
1247         (add_define_attr_for_define_subst): Likewise.
1248         (add_define_subst_attr): Likewise.
1249         (read_subst_mapping): Likewise.
1250         (read_rtx): Likewise.
1251         * rtl.h (read_rtx): Adjust.
1252
1253 2015-07-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1254
1255         * config/aarch64/aarch64.md (*csinc2<mode>_insn): Use cinc mnemonic.
1256
1257 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
1258
1259         PR target/58066
1260         * config/i386/i386.md (*tls_global_dynamic_64_<mode>): Depend on SP_REG.
1261         (*tls_local_dynamic_base_64_<mode>): Ditto.
1262         (*tls_local_dynamic_base_64_largepic): Ditto.
1263         (tls_global_dynamic_64_<mode>): Update expander pattern.
1264         (tls_local_dynamic_base_64_<mode>): Ditto.
1265
1266 2015-07-15  Richard Biener  <rguenther@suse.de>
1267
1268         * fold-const.c (fold_binary_loc): Move bool_var != 0 -> bool_var
1269         and bool_var == 1 -> bool_var simplifications ...
1270         * match.pd: ... to patterns here.  Factor out negate_expr_p
1271         cases from the A - B -> A + (-B) patterns as negate_expr_p
1272         predicate and add a -(A + B) -> (-B) - A pattern.
1273
1274 2015-07-15  Robert Suchanek  <robert.suchanek@imgtec.com>
1275
1276         * config/mips/mips.c (mips_emit_save_slot_move): Fix typo.
1277
1278 2015-07-15  Matthew Fortune  <matthew.fortune@imgtec.com>
1279             Robert Suchanek  <robert.suchanek@imgtec.com>
1280
1281         * config/mips/mips.c (mips_int_mask): New enum.
1282         (mips_shadow_set): Likewise.
1283         (int_mask): New variable.
1284         (use_shadow_register_set_p): Change type to enum mips_shadow_set.
1285         (machine_function): Add int_mask and use_shadow_register_set.
1286         (mips_attribute_table): Add attribute handlers for interrupt and
1287         use_shadow_register_set.
1288         (mips_interrupt_mask): New static function.
1289         (mips_handle_interrupt_attr): Likewise.
1290         (mips_handle_use_shadow_register_set_attr): Likewise.
1291         (mips_use_shadow_register_set): Change return type to enum
1292         mips_shadow_set.  Add argument handling for use_shadow_register_set
1293         attribute.
1294         (mips_interrupt_extra_called_saved_reg_p): Update the conditional to
1295         compare with mips_shadow_set enum.
1296         (mips_compute_frame_info): Add interrupt mask and
1297         use_shadow_register_set to per-function information structure.
1298         Add a stack slot for EPC unconditionally.
1299         (mips_expand_prologue): Compare use_shadow_register_set value
1300         with mips_shadow_set enum.  Save EPC always in K1, clobber only K1 for
1301         masked interrupt register but in EIC mode use K0 and save Cause in K0.
1302         EPC saved and restored unconditionally.  Use PMODE_INSN macro when
1303         copying the stack pointer from the shadow register set.
1304         * config/mips/mips.h (SR_IM0): New define.
1305         * config/mips/mips.md (mips_rdpgpr): Rename to...
1306         (mips_rdpgpr_<mode>): ...this.  Use the Pmode iterator.
1307         * doc/extend.texi (Declaring Attributes of Functions): Document
1308         optional arguments for interrupt and use_shadow_register_set
1309         attributes.
1310
1311 2015-07-15  Robert Suchanek  <robert.suchanek@imgtec.com>
1312
1313         * config/mips/mips.c (mips_compute_frame_info): Allow -mhard-float in
1314         interrupt attribute.
1315         (mips_expand_prologue): Disable the floating point unit in an ISR.
1316         * config/mips/mips.h (SR_COP1): New define.
1317
1318 2015-07-15  Richard Biener  <rguenther@suse.de>
1319
1320         * genmatch.c (parser::peek, parser::peek_ident): Add argument
1321         to tell how many tokens to peek ahead (default 1).
1322         (parser::eat_token, parser::eat_ident): Return token consumed.
1323         (parser::parse_result): Parse new switch statement.
1324         * match.pd: Use case statements where appropriate.
1325
1326 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
1327
1328         PR rtl-optimization/58066
1329         * calls.c (expand_call): Precompute register parameters before stack
1330         alignment is performed.
1331
1332 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
1333
1334         PR rtl-optimization/66838
1335         * postreload.c (reload_cse_move2add): Also process
1336         CALL_INSN_FUNCTION_USAGE when resetting information of
1337         call-clobbered registers.
1338
1339 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
1340             Cesar Philippidis  <cesar@codesourcery.com>
1341             Chung-Lin Tang  <cltang@codesourcery.com>
1342
1343         * config/nios2/constraints.md (U, v): New constraints.
1344         * config/nios2/predicates.md (rdprs_dcache_operand): New.
1345         (ldstex_memory_operand): New.
1346         * config/nios2/sync.md: New file.
1347         * config/nios2/nios2.md (unspecv): Add new builtin function
1348         UNSPECV codes.
1349         (rdprs, flushd, flushda, wrpie, eni): New patterns.
1350         (top-level): Include sync.md.
1351         * config/nios2/nios2.c (N2_FTYPES): Add function types for
1352         new builtins.
1353         (N2_BUILTINS): Add arch field setting, add new builtins.
1354         (enum nios2_builtin_code,nios2_builtins): Update N2_BUILTIN_DEF
1355         for arch field.
1356         (nios2_expand_ldst_builtin): Rename from nios2_expand_ldstio_builtin.
1357         Also handle ldex/stex/ldsex/stsex builtins.
1358         (nios2_expand_rdprs_builtin): New function.
1359         (nios2_expand_cache_builtin): New function.
1360         (nios2_expand_wrpie_builtin): New function.
1361         (nios2_expand_eni_builtin): New function.
1362         (nios2_expand_builtin): Add arch field handling and new builtin
1363         cases.
1364         * doc/extend.texi (Altera Nios II Built-in Functions): Document
1365         new builtins.
1366         * doc/md.texi (Machine Constraints): Document U and v constraints.
1367
1368 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
1369             Cesar Philippidis  <cesar@codesourcery.com>
1370             Chung-Lin Tang  <cltang@codesourcery.com>
1371
1372         * config/nios2/nios2-protos.h (nios2_expand_return): Declare.
1373         * config/nios2/nios2.c (struct GTY (()) machine_function): Add
1374         callee_save_reg_size and uses_anonymous_args fields.
1375         (nios2_compute_frame_layout): Update for CDX push.n/pop.n usage.
1376         (nios2_create_cfa_notes): New function.
1377         (nios2_adjust_stack): New function for adjusting stack.
1378         (nios2_expand_prologue): Update for CDX push.n/pop.n usage.
1379         Use nios2_adjust_stack.
1380         (nios2_expand_epilogue): Likewise.
1381         (nios2_expand_return): New function.
1382         (nios2_can_use_return_insn): Update for CDX pop.n usage.
1383         (nios2_setup_incoming_varargs): Set uses_anonymous_args flag.
1384         If TARGET_HAS_CDX, defer pushing regs to nios2_expand_prologue.
1385         * config/nios2/nios2.md (return): Use nios2_expand_return.
1386
1387 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
1388             Cesar Philippidis  <cesar@codesourcery.com>
1389             Chung-Lin Tang  <cltang@codesourcery.com>
1390
1391         * config/nios2/predicates.md (pop_operation): New.
1392         (ldwm_operation, stwm_operation): New.
1393         (nios2_hard_register_operand): New.
1394         * config/nios2/nios2-protos.h (pop_operation_p): Declare.
1395         (ldstwm_operation_p): Declare.
1396         (gen_ldstwm_peep): Declare.
1397         * config/nios2/nios2.c: (nios2_ldst_parallel): Declare.
1398         (base_reg_adjustment_p): New.
1399         (pop_operation_p): New.
1400         (CDX_LDSTWM_VALID_REGS_0, CDX_LDSTWM_VALID_REGS_1): Define.
1401         (nios2_ldstwm_regset_p): New.
1402         (ldstwm_operation_p): New.
1403         (gen_ldst): New.
1404         (nios2_ldst_parallel): New.
1405         (struct ldswm_operand): Declare.
1406         (compare_ldstwm_operands): New.
1407         (can_use_cdx_ldstw): New.
1408         (gen_ldstwm_peep): New.
1409         * config/nios2/nios2-ldstwm.sml: New.
1410         * config/nios2/nios2.md: Include ldstwm.md.
1411         * config/nios2/ldstwm.md: Generated.
1412
1413 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
1414             Cesar Philippidis  <cesar@codesourcery.com>
1415             Chung-Lin Tang  <cltang@codesourcery.com>
1416
1417         * config/nios2/nios2.h (LABEL_ALIGN): Define.
1418         (REG_ALLOC_ORDER): Define.
1419         (ADJUST_REG_ALLOC_ORDER): Define.
1420         (HONOR_REG_ALLOC_ORDER): Define.
1421         (CDX_REG_P): Define.
1422         (ANDCLEAR_INT): Define.
1423         * config/nios2/nios2-protos.h (nios2_add_insn_asm): Declare.
1424         (nios2_label_align): Declare.
1425         (nios2_cdx_narrow_form_p): Declare.
1426         (nios2_adjust_reg_alloc_order): Declare.
1427         * config/nios2/nios2.c (nios2_rtx_costs): Adjust for BMX zero-extract
1428         operation.
1429         (nios2_large_unspec_reloc_p): New function, split from...
1430         (nios2_legitimate_pic_operand_p): ...here.
1431         (nios2_emit_move_sequence): Add *high/*lo_sum constant expand code.
1432         (nios2_print_operand_punct_valid_p): New.
1433         (nios2_print_operand): Add %., %!, %x, %y, %A.  Remove %U.
1434         (split_mem_address): New.
1435         (split_alu_insn): New.
1436         (cdxreg): New.
1437         (cdx_add_immed, cdx_and_immed, cdx_mov_immed, cdx_shift_immed): New.
1438         (enum nios2_add_insn_kind): New.
1439         (nios2_add_insn_names, nios2_add_insn_narrow): New.
1440         (nios2_add_insn_classify): New.
1441         (nios2_add_insn_asm): New.
1442         (nios2_cdx_narrow_form_p): New.
1443         (label_align, min_labelno, max_labelno): New.
1444         (nios2_reorg): New.
1445         (nios2_label_align): New.
1446         (nios2_adjust_reg_alloc_order): New.
1447         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
1448         (TARGET_MACHINE_DEPENDENT_REORG): Define.
1449         * config/nios2/constraints.md (P): New constraint.
1450         * config/nios2/predicates.md (const_and_operand): New.
1451         (and_operand): New.
1452         (stack_memory_operand): New.
1453         * config/nios2/nios2.md (SP_REGNO): Define stack pointer regno.
1454         (length): Update to use nios2_cdx_narrow_form_p().
1455         (type): Add new insn type values.
1456         (control, alu, st, ld, shift): Update insn reservations with
1457         new insn type values.
1458         (*high, *lo_sum): Define new insn patterns for constant generation.
1459         (movqi_internal, movhi_internal, movsi_internal): Reduce
1460         alternatives, update asm template to handle CDX variants, update
1461         type attributes.
1462         (zero_extendhisi2, zero_extendqi<mode>2): Add CDX variants to asm
1463         template, update type attributes.
1464         (extendhisi2, extendqi<mode>2): Likewise.
1465         (addsi3): Change to use function for asm string.
1466         (subsi3): Add CDX notation to asm template, update type attributes.
1467         (negsi3, one_cmplsi3): Likewise.
1468         (andsi3): New pattern, specialized from logical patterns.
1469         (<code>si3): Remove and case, combine alternatives, update asm
1470         template.
1471         (<shift_op>si3): Add CDX notation, update type attributes.
1472         (rotrsi3): Update type attribute.
1473         (*merge, extzv, insv): New insn patterns.
1474         (return): Change to define_expand.
1475         (simple_return): Add CDX notation, update type attributes.
1476         (indirect_jump): Add CDX notation.
1477         (jump): Update asm cases, update length attribute expression.
1478         (*call, *call_value, *sibcall, *sibcall_value): Add CDX variant.
1479         (nios2_cbranch): Update asm cases and length attribute expression
1480         to handle CDX variants.
1481         (nios2_cmp<code>): Update asm template.
1482         (nop): Add CDX notation, update type attributes.
1483         (trap): Add CDX notation.
1484         (ctrapsi4): Update asm cases and length attribute expression to
1485         handle CDX variant.
1486         * doc/md.texi (Machine Constraints): Document P constraint.
1487
1488 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
1489             Cesar Philippidis  <cesar@codesourcery.com>
1490             Chung-Lin Tang  <cltang@codesourcery.com>
1491
1492         * config/nios2/nios2.h (SMALL_INT12): New macro.
1493         * config/nios2/nios2.c (nios2_valid_addr_offset_p): New function.
1494         (nios2_valid_addr_expr_p): Use it.
1495         (nios2_symbol_ref_in_small_data_p): Disallow GP-relative addressing
1496         with implicit "io" instructions on R2.
1497         * config/nios2/constraints.md (w): New constraint.
1498         * config/nios2/predicates.md (ldstio_memory_operand): New.
1499         * config/nios2/nios2.md (ld<bhw_uns>io, ld<bh>io): Update memory
1500         operand predicate and constraint.
1501         (ld<bh>io_signed, st<bhw>io>): Likewise.
1502         * doc/md.texi (Machine Constraints): Document w constraint.
1503
1504 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
1505             Cesar Philippidis  <cesar@codesourcery.com>
1506             Chung-Lin Tang  <cltang@codesourcery.com>
1507
1508         * config/nios2/nios2.opt (march, mbmx, mcdx): New options.
1509         * config/nios2/nios2-opts.h (enum nios2_arch_type): New enum for
1510         Nios II architecture level.
1511         * config/nios2/nios2.h (TARGET_ARCH_R2): New define.
1512         (TARGET_CPU_CPP_BUILTINS): Add definition of __nios2_arch__ symbol.
1513         (OPTION_DEFAULT_SPECS): Define.
1514         (ASM_SPEC): Add -march= spec strings.
1515         * config/nios2/nios2.c (nios2_option_override): Check for
1516         conflicts involving new options.
1517         * config.gcc (nios2*-*-*): Support --with-arch=.
1518         * doc/invoke.texi (Option Summary, Nios II Options): Document
1519         -march=, -mbmx, and -mcdx.
1520
1521 2015-07-14  Vladimir Makarov  <vmakarov@redhat.com>
1522
1523         PR rtl-optimization/66626
1524         * lra-constraints.c (lra_constraints): Prevent equivalence
1525         substitution for static chain pseudo in functions with nonlocal
1526         goto.
1527
1528 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
1529
1530         * config/nios2/nios2.c (TEMP_REG_NUM): Move define up in file.
1531         (nios2_emit_stack_limit_check): Add size parameter.  Handle
1532         -fstack-limit-symbol as well as -fstack-limit-register.
1533         (nios2_expand_prologue): Emit only a single stack limit check,
1534         even if multiple stack adjustments are required.
1535         (nios2_option_override): Diagnose unsupported combination of -fpic
1536         and -stack-limit-symbol.
1537
1538 2015-07-14  H.J. Lu  <hongjiu.lu@intel.com>
1539
1540         * Makefile.in (top_srcdir): New.
1541         * configure.ac: Use AM_ZLIB.
1542         * configure: Regeneated.
1543
1544 2015-07-14  Matthias Klose  <doko@ubuntu.com>
1545
1546         PR target/66840
1547         * config/rs6000/t-rs6000 (TM_H): Add rs6000-cpus.def.
1548
1549 2015-07-14  Richard Biener  <rguenther@suse.de>
1550
1551         PR tree-optimization/66863
1552         * tree-vrp.c (register_edge_assert_for_2): Properly restrict
1553         what we record for conversion use stmt lhs inequalities.
1554
1555 2015-07-14  Richard Biener  <rguenther@suse.de>
1556
1557         * genmatch.c (dt_node::gen_kids_1): Fix case label indenting.
1558         (decision_tree::gen_gimple): Likewise.
1559
1560 2015-07-14  Tom de Vries  <tom@codesourcery.com>
1561
1562         * gcc.c (greater_than_spec_func): Declare forward.
1563         (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use gt to ignore
1564         -ftree-parallelize-loops={0,1}.
1565         (static_spec_functions): Add greater_than_spec_func function with name
1566         "gt".
1567         (greater_than_spec_func): New function.
1568
1569 2015-07-14  Richard Biener  <rguenther@suse.de>
1570
1571         * tree-ssa-dom.c (record_temporary_equivalences): Merge
1572         wideing type conversion case from record_equivalences_from_incoming_edge
1573         and use record_equality to record equivalences.
1574         (record_equivalences_from_incoming_edge): Call
1575         record_temporary_equivalences.
1576
1577 2015-07-14  Richard Biener  <rguenther@suse.de>
1578
1579         * genmatch.c (struct operand): Add OP_IF and OP_WITH op_types.
1580         (struct if_expr): New.
1581         (struct with_expr): Likewise.
1582         (is_a_helper): Add helpers for if_expr and with_expr.
1583         (struct simplify): Add simplify_kind enum and member.  Remove
1584         ifexpr_vec member.
1585         (simplify::simplify): Adjust.
1586         (lower_commutative): Adjust.
1587         (lower_opt_convert): Likewise.
1588         (lower_cond): Likewise.
1589         (replace_id): Handle with_expr and if_expr.
1590         (lower_for): Adjust.
1591         (dt_simplify::gen_1): New recursive worker, split out from ...
1592         (dt_simplify::gen): ... here.  Deal with if and with expansion
1593         recursively.
1594         (capture_info::capture_info): Take context argument
1595         (capture_info::walk_result): Only analyze specific result.
1596         (parser::parse_result): New function.
1597         (parser::parse_simplify): Adjust to parse ifs with then end
1598         else case.
1599         (parser::parse_if): Simplify.
1600         (parser::parse_pattern): Pass down simplify kind.
1601         * match.pd: Convert if structure to new syntax.
1602
1603 2015-07-13  Marek Polacek  <polacek@redhat.com>
1604
1605         * rtl.c (rtx_equal_p_cb): Fix typo.
1606
1607 2015-07-13  Andrew MacLeod  <amacleod@redhat.com>
1608
1609         * omega.h: Don't include config.h, don't include params.h again if
1610         omega.h has already been included.
1611         * graphite-poly.h: Include sese.h.
1612         * graphite.c: Don't include sese.h, remove needless includes and
1613         minimize includes outside #ifdef HAVE_isl block.
1614         * graphite-blocking.c: Don't include sese.h, remove needless includes,
1615         and wrap entire file in #ifdef HAVE_isl
1616         * graphite-dependences.c: Likewise.
1617         * graphite-interchange.c: Likewise.
1618         * graphite-isl-ast-to-gimple.c: Likewise.
1619         * graphite-optimize-isl.c: Likewise.
1620         * graphite-poly.c: Likewise.
1621         * graphite-scop-detection.c: Likewise.
1622         * graphite-sese-to-poly.c: Likewise.
1623
1624 2015-07-13  Tom de Vries  <tom@codesourcery.com>
1625
1626         * omp-low.c (build_receiver_ref): Mark *.omp_data_i as non-trapping.
1627
1628 2015-07-13  Renlin Li  <renlin.li@arm.com>
1629
1630         PR rtl/66556
1631         * simplify-rtx.c (simplify_const_relational_operation): Add
1632         side_effects_p checks.
1633
1634 2015-07-12  Aldy Hernandez  <aldyh@redhat.com>
1635
1636         * bitmap.h: Fix double word typos.
1637         * builtins.c: Same.
1638         * calls.c: Same.
1639         * cfgloopmanip.c: Same.
1640         * cgraph.c: Same.
1641         * cgraph.h: Same.
1642         * cgraphclones.c: Same.
1643         * combine.c: Same.
1644         * config/aarch64/aarch64-protos.h: Same.
1645         * config/aarch64/aarch64.c: Same.
1646         * config/aarch64/aarch64.md: Same.
1647         * config/arm/arm.md: Same.
1648         * config/arm/arm1020e.md: Same.
1649         * config/arm/arm1026ejs.md: Same.
1650         * config/arm/arm926ejs.md: Same.
1651         * config/arm/fa526.md: Same.
1652         * config/arm/fa606te.md: Same.
1653         * config/arm/fa626te.md: Same.
1654         * config/arm/fa726te.md: Same.
1655         * config/arm/fmp626.md: Same.
1656         * config/darwin.c: Same.
1657         * config/epiphany/epiphany.c: Same.
1658         * config/frv/frv.c: Same.
1659         * config/ft32/ft32.c: Same.
1660         * config/gnu-user.h: Same.
1661         * config/h8300/constraints.md: Same.
1662         * config/i386/i386.c: Same.
1663         * config/i386/i386.md: Same.
1664         * config/iq2000/iq2000.md: Same.
1665         * config/mips/mips.c: Same.
1666         * config/mmix/mmix.md: Same.
1667         * config/moxie/moxie.c: Same.
1668         * config/nds32/nds32.md: Same.
1669         * config/pa/pa.h: Same.
1670         * config/rs6000/aix.h: Same.
1671         * config/rs6000/rs6000.h: Same.
1672         * config/sh/sh.c: Same.
1673         * config/tilegx/tilegx.md: Same.
1674         * config/tilepro/gen-mul-tables.cc: Same.
1675         * cse.c: Same.
1676         * dbxout.c: Same.
1677         * doc/invoke.texi: Same.
1678         * dse.c: Same.
1679         * dwarf2out.c: Same.
1680         * final.c: Same.
1681         * gcc.c: Same.
1682         * genmatch.c: Same.
1683         * gimplify.c: Same.
1684         * hash-table.h: Same.
1685         * internal-fn.c: Same.
1686         * ipa-cp.c: Same.
1687         * ipa-devirt.c: Same.
1688         * ipa-icf.c: Same.
1689         * ipa-icf.h: Same.
1690         * ipa-profile.c: Same.
1691         * ipa-prop.c: Same.
1692         * ipa-prop.h: Same.
1693         * ira.c: Same.
1694         * omp-low.c: Same.
1695         * reg-stack.c: Same.
1696         * regcprop.c: Same.
1697         * reorg.c: Same.
1698         * rtl.h: Same.
1699         * sbitmap.h: Same.
1700         * tree-eh.c: Same.
1701         * tree-inline.c: Same.
1702         * tree-sra.c: Same.
1703         * tree-ssa-dom.c: Same.
1704         * tree-ssa-loop-ivopts.c: Same.
1705         * tree-ssa-structalias.c: Same.
1706         * tree-ssa-tail-merge.c: Same.
1707         * tree-ssa-ter.c: Same.
1708         * tree-ssa-threadupdate.c: Same.
1709         * tree-ssa-uninit.c: Same.
1710         * tree-ssanames.c: Same.
1711         * tree-vect-loop-manip.c: Same.
1712         * tree-vrp.c: Same.
1713         * tree.c: Same.
1714         * valtrack.c: Same.
1715         * vec.h: Same.
1716
1717 2015-07-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
1718
1719         PR middle-end/66726
1720         * tree-ssa-phiopt.c(factor_out_conditional_conversion): New function.
1721         tree_ssa_phiopt_worker): Call it.
1722
1723 2015-07-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
1724
1725         * cse.c (cse_insn): Calculate src_eqv for ZERO_EXTRACT.
1726         * emit-rtl.c (set_for_reg_notes): Allow ZERO_EXTRACT to set
1727         REG_EQUAL note.
1728
1729 2015-07-11  Marek Polacek  <polacek@redhat.com>
1730
1731         PR middle-end/66353
1732         * basic-block.h (has_abnormal_call_or_eh_pred_edge_p): New function.
1733         * ira-lives.c (bb_has_abnormal_call_pred): Remove function.
1734         (process_bb_node_lives): Call has_abnormal_call_or_eh_pred_edge_p
1735         rather than bb_has_abnormal_call_pred.
1736         * lra-lives.c (bb_has_abnormal_call_pred): Remove function.
1737         (process_bb_lives): Call has_abnormal_call_or_eh_pred_edge_p
1738         rather than bb_has_abnormal_call_pred.
1739
1740 2015-07-10  Anatoly Sokolov  <aesok@post.ru>
1741
1742         * config/v850/v850.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
1743         REG_OK_FOR_BASE_P_STRICT, REG_OK_FOR_INDEX_P_STRICT, STRICT,
1744         RTX_OK_FOR_BASE_P, GO_IF_LEGITIMATE_ADDRESS): Remove macros.
1745         * config/v850/v850.c (v850_reg_ok_for_base_, v850_rtx_ok_for_base_p,
1746         v850_legitimate_address_p): New functions.
1747         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
1748
1749 2015-07-10  H.J. Lu  <hongjiu.lu@intel.com>
1750
1751         PR target/66819
1752         * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow
1753         indirect sibcall with register arguments if register available
1754         for argument passing.
1755         (init_cumulative_args): Set cfun->machine->arg_reg_available
1756         to (cum->nregs > 0) or to true if function has a variable
1757         argument list.
1758         (function_arg_advance_32): Set cfun->machine->arg_reg_available
1759         to false if cum->nregs <= 0.
1760         * config/i386/i386.h (machine_function): Add arg_reg_available.
1761
1762 2015-07-10  Uros Bizjak  <ubizjak@gmail.com>
1763
1764         * config/i386/sse.md (movdi_to_sse): Use gen_lowpart
1765         and gen_higpart instead of gen_rtx_SUBREG.
1766         * config/i386/i386.md
1767         (floatdi<X87MODEF:mode>2_i387_with_xmm splitter): Ditto.
1768         (read-modify peephole2): Use gen_lowpart instead of
1769         gen_rtx_SUBREG for operand 5.
1770
1771 2015-07-10  Andrew MacLeod  <amacleod@redhat.com>
1772
1773         * config/tilepro/gen-mul-tables.cc (main): Change include list for
1774         generated files.
1775         * config/tilepro/mul-tables.c: Regenerate.
1776         * config/tilegx/mul-tables.c: Regenerate.
1777
1778 2015-07-10  Richard Biener  <rguenther@suse.de>
1779
1780         * fold-const.c (distribute_bit_expr): Remove.
1781         (fold_binary_loc): Move simplifying (A & C1) + (B & C2)
1782         to (A & C1) | (B & C2), distributing (A & B) | (A & C)
1783         to A & (B | C) and simplifying A << C1 << C2 to ...
1784         * match.pd: ... patterns here.
1785
1786 2015-07-10  Jiong Wang  <jiong.wang@arm.com>
1787
1788         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
1789         Mark mem as READONLY and NOTRAP for PIC symbol.
1790
1791 2015-07-10  Andrew MacLeod  <amacleod@redhat.com>
1792
1793         * gimple-predict.h: New file.
1794         (gimple_predict_predictor, gimple_predict_set_predictor,
1795         gimple_predict_outcome, gimple_predict_set_outcome,
1796         gimple_build_predict): Relocate here.
1797         * gimple.h (gimple_predict_predictor, gimple_predict_set_predictor,
1798         gimple_predict_outcome, gimple_predict_set_outcome): Move to
1799         gimple-predict.h.
1800         * gimple.c (gimple_build_predict): Move to gimple-predict.h
1801         * basic-block.h: Don't include cfghooks.h.
1802         * backend.h: Don't include predict.h.
1803         * cfghooks.h: Include predict.h.
1804         * gimple-pretty-print.c: Include gimple-predict.h.
1805         * gimplify.c: Likwise.
1806         * predict.c: Adjust includes.
1807         * tree-inline.c: Likewise.
1808         * asan.c: Likewise.
1809         * auto-inc-dec.c: Likewise.
1810         * auto-profile.c: Likewise.
1811         * bb-reorder.c: Likewise.
1812         * builtins.c: Likewise.
1813         * caller-save.c: Likewise.
1814         * calls.c: Likewise.
1815         * cfganal.c: Likewise.
1816         * cfgbuild.c: Likewise.
1817         * cfg.c: Likewise.
1818         * cfgcleanup.c: Likewise.
1819         * cfgexpand.c: Likewise.
1820         * cfghooks.c: Likewise.
1821         * cfgloopanal.c: Likewise.
1822         * cfgloop.c: Likewise.
1823         * cfgloopmanip.c: Likewise.
1824         * cfgrtl.c: Likewise.
1825         * cgraph.c: Likewise.
1826         * cgraphunit.c: Likewise.
1827         * combine.c: Likewise.
1828         * cprop.c: Likewise.
1829         * cse.c: Likewise.
1830         * dce.c: Likewise.
1831         * dojump.c: Likewise.
1832         * dse.c: Likewise.
1833         * except.c: Likewise.
1834         * expmed.c: Likewise.
1835         * expr.c: Likewise.
1836         * final.c: Likewise.
1837         * fold-const.c: Likewise.
1838         * function.c: Likewise.
1839         * fwprop.c: Likewise.
1840         * gcc-plugin.h: Likewise.
1841         * gcse.c: Likewise.
1842         * genattrtab.c: Likewise.
1843         * genemit.c: Likewise.
1844         * gengtype.c: Likewise.
1845         * genopinit.c: Likewise.
1846         * genoutput.c: Likewise.
1847         * genpreds.c: Likewise.
1848         * genrecog.c: Likewise.
1849         * gimple-fold.c: Likewise.
1850         * gimple-iterator.c: Likewise.
1851         * gimple-ssa-isolate-paths.c: Likewise.
1852         * gimple-ssa-strength-reduction.c: Likewise.
1853         * graph.c: Likewise.
1854         * graphite-blocking.c: Likewise.
1855         * graphite.c: Likewise.
1856         * graphite-dependences.c: Likewise.
1857         * graphite-interchange.c: Likewise.
1858         * graphite-isl-ast-to-gimple.c: Likewise.
1859         * graphite-optimize-isl.c: Likewise.
1860         * graphite-poly.c: Likewise.
1861         * graphite-scop-detection.c: Likewise.
1862         * graphite-sese-to-poly.c: Likewise.
1863         * haifa-sched.c: Likewise.
1864         * ifcvt.c: Likewise.
1865         * internal-fn.c: Likewise.
1866         * ipa-cp.c: Likewise.
1867         * ipa-profile.c: Likewise.
1868         * ipa-split.c: Likewise.
1869         * ipa-utils.c: Likewise.
1870         * ira-build.c: Likewise.
1871         * ira-color.c: Likewise.
1872         * ira-conflicts.c: Likewise.
1873         * ira-costs.c: Likewise.
1874         * ira-emit.c: Likewise.
1875         * ira-lives.c: Likewise.
1876         * jump.c: Likewise.
1877         * loop-doloop.c: Likewise.
1878         * loop-init.c: Likewise.
1879         * loop-invariant.c: Likewise.
1880         * loop-unroll.c: Likewise.
1881         * lower-subreg.c: Likewise.
1882         * lra-assigns.c: Likewise.
1883         * lra.c: Likewise.
1884         * lra-coalesce.c: Likewise.
1885         * lra-constraints.c: Likewise.
1886         * lra-lives.c: Likewise.
1887         * lto-cgraph.c: Likewise.
1888         * lto-streamer-in.c: Likewise.
1889         * mode-switching.c: Likewise.
1890         * modulo-sched.c: Likewise.
1891         * omp-low.c: Likewise.
1892         * optabs.c: Likewise.
1893         * passes.c: Likewise.
1894         * postreload.c: Likewise.
1895         * postreload-gcse.c: Likewise.
1896         * profile.c: Likewise.
1897         * recog.c: Likewise.
1898         * regstat.c: Likewise.
1899         * reload1.c: Likewise.
1900         * reorg.c: Likewise.
1901         * rtlanal.c: Likewise.
1902         * sched-ebb.c: Likewise.
1903         * sel-sched-ir.c: Likewise.
1904         * sese.c: Likewise.
1905         * shrink-wrap.c: Likewise.
1906         * simplify-rtx.c: Likewise.
1907         * stmt.c: Likewise.
1908         * store-motion.c: Likewise.
1909         * tracer.c: Likewise.
1910         * trans-mem.c: Likewise.
1911         * tree-call-cdce.c: Likewise.
1912         * tree-cfg.c: Likewise.
1913         * tree-cfgcleanup.c: Likewise.
1914         * tree-chkp.c: Likewise.
1915         * tree-complex.c: Likewise.
1916         * tree-eh.c: Likewise.
1917         * tree-if-conv.c: Likewise.
1918         * tree-loop-distribution.c: Likewise.
1919         * tree-outof-ssa.c: Likewise.
1920         * tree-parloops.c: Likewise.
1921         * tree-predcom.c: Likewise.
1922         * tree-pretty-print.c: Likewise.
1923         * tree-profile.c: Likewise.
1924         * tree-sra.c: Likewise.
1925         * tree-ssa.c: Likewise.
1926         * tree-ssa-coalesce.c: Likewise.
1927         * tree-ssa-dce.c: Likewise.
1928         * tree-ssa-dom.c: Likewise.
1929         * tree-ssa-forwprop.c: Likewise.
1930         * tree-ssa-ifcombine.c: Likewise.
1931         * tree-ssa-loop-ch.c: Likewise.
1932         * tree-ssa-loop-im.c: Likewise.
1933         * tree-ssa-loop-ivcanon.c: Likewise.
1934         * tree-ssa-loop-ivopts.c: Likewise.
1935         * tree-ssa-loop-manip.c: Likewise.
1936         * tree-ssa-loop-prefetch.c: Likewise.
1937         * tree-ssa-loop-unswitch.c: Likewise.
1938         * tree-ssa-math-opts.c: Likewise.
1939         * tree-ssa-phiopt.c: Likewise.
1940         * tree-ssa-pre.c: Likewise.
1941         * tree-ssa-reassoc.c: Likewise.
1942         * tree-ssa-sink.c: Likewise.
1943         * tree-ssa-tail-merge.c: Likewise.
1944         * tree-ssa-threadedge.c: Likewise.
1945         * tree-ssa-threadupdate.c: Likewise.
1946         * tree-switch-conversion.c: Likewise.
1947         * tree-tailcall.c: Likewise.
1948         * tree-vect-data-refs.c: Likewise.
1949         * tree-vect-loop.c: Likewise.
1950         * tree-vect-loop-manip.c: Likewise.
1951         * tree-vectorizer.c: Likewise.
1952         * tree-vrp.c: Likewise.
1953         * ubsan.c: Likewise.
1954         * value-prof.c: Likewise.
1955         * varasm.c: Likewise.
1956         * var-tracking.c: Likewise.
1957         * config/aarch64/aarch64-builtins.c: Likewise.
1958         * config/aarch64/aarch64.c: Likewise.
1959         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
1960         * config/alpha/alpha.c: Likewise.
1961         * config/arc/arc.c: Likewise.
1962         * config/arm/arm.c: Likewise.
1963         * config/avr/avr.c: Likewise.
1964         * config/bfin/bfin.c: Likewise.
1965         * config/c6x/c6x.c: Likewise.
1966         * config/cr16/cr16.c: Likewise.
1967         * config/cris/cris.c: Likewise.
1968         * config/darwin.c: Likewise.
1969         * config/darwin-c.c: Likewise.
1970         * config/epiphany/epiphany.c: Likewise.
1971         * config/epiphany/mode-switch-use.c: Likewise.
1972         * config/epiphany/resolve-sw-modes.c: Likewise.
1973         * config/fr30/fr30.c: Likewise.
1974         * config/frv/frv.c: Likewise.
1975         * config/ft32/ft32.c: Likewise.
1976         * config/h8300/h8300.c: Likewise.
1977         * config/i386/i386.c: Likewise.
1978         * config/i386/winnt.c: Likewise.
1979         * config/ia64/ia64.c: Likewise.
1980         * config/iq2000/iq2000.c: Likewise.
1981         * config/lm32/lm32.c: Likewise.
1982         * config/m32c/m32c.c: Likewise.
1983         * config/m32r/m32r.c: Likewise.
1984         * config/m68k/m68k.c: Likewise.
1985         * config/mcore/mcore.c: Likewise.
1986         * config/mep/mep.c: Likewise.
1987         * config/microblaze/microblaze.c: Likewise.
1988         * config/mips/mips.c: Likewise.
1989         * config/mmix/mmix.c: Likewise.
1990         * config/mn10300/mn10300.c: Likewise.
1991         * config/moxie/moxie.c: Likewise.
1992         * config/msp430/msp430.c: Likewise.
1993         * config/nds32/nds32.c: Likewise.
1994         * config/nds32/nds32-cost.c: Likewise.
1995         * config/nds32/nds32-fp-as-gp.c: Likewise.
1996         * config/nds32/nds32-intrinsic.c: Likewise.
1997         * config/nds32/nds32-isr.c: Likewise.
1998         * config/nds32/nds32-md-auxiliary.c: Likewise.
1999         * config/nds32/nds32-memory-manipulation.c: Likewise.
2000         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
2001         * config/nds32/nds32-predicates.c: Likewise.
2002         * config/nios2/nios2.c: Likewise.
2003         * config/nvptx/nvptx.c: Likewise.
2004         * config/pa/pa.c: Likewise.
2005         * config/pdp11/pdp11.c: Likewise.
2006         * config/rl78/rl78.c: Likewise.
2007         * config/rs6000/rs6000.c: Likewise.
2008         * config/rx/rx.c: Likewise.
2009         * config/s390/s390.c: Likewise.
2010         * config/sh/sh.c: Likewise.
2011         * config/sh/sh-mem.cc: Likewise.
2012         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
2013         * config/sh/sh_treg_combine.cc: Likewise.
2014         * config/sparc/sparc.c: Likewise.
2015         * config/spu/spu.c: Likewise.
2016         * config/stormy16/stormy16.c: Likewise.
2017         * config/tilegx/tilegx.c: Likewise.
2018         * config/tilepro/tilepro.c: Likewise.
2019         * config/v850/v850.c: Likewise.
2020         * config/vax/vax.c: Likewise.
2021         * config/visium/visium.c: Likewise.
2022         * config/xtensa/xtensa.c: Likewise.
2023
2024 2015-07-10  Richard Biener  <rguenther@suse.de>
2025
2026         * genmatch.c (dt_node::gen_kids_1): Fix indenting of case labels.
2027         (decision_tree::gen_gimple): Likewise.
2028         (decision_tree::gen_generic): Likewise.
2029
2030 2015-07-10  Uros Bizjak  <ubizjak@gmail.com>
2031
2032         PR target/66813
2033         * config/i386/i386.c (ix86_md_asm_adjust): Emit movstrictqi
2034         sequence for TARGET_ZERO_EXTEND_WITH_AND targets.
2035
2036 2015-07-10  Jakub Jelinek  <jakub@redhat.com>
2037
2038         PR middle-end/66820
2039         * gimplify.c (maybe_fold_stmt): Don't fold in ORT_PARALLEL
2040         or ORT_TASK contexts.
2041         * omp-low.c (lower_omp): Call fold_stmt even if taskreg_nesting_level
2042         is non-zero.
2043
2044 2015-07-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2045
2046         * expr.c (expand_cond_expr_using_cmove): Fix typos in comment
2047         above function.
2048
2049 2015-07-10  Tom de Vries  <tom@codesourcery.com>
2050
2051         * tree-parloops.c (try_transform_to_exit_first_loop_alt): If not found,
2052         insert nit + 1 bound.
2053
2054 2015-07-10  Richard Biener  <rguenther@suse.de>
2055
2056         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p):
2057         Use ifcvt_could_trap_p also when not flag_tree_loop_if_convert_stores.
2058         (if_convertible_loop_p_1): For this always compute bb predicates.
2059         (if_convertible_loop_p): And free them.
2060
2061 2015-07-10  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2062
2063         * ipa-icf.c (sem_item_optimizer::do_congruence_step): Fix typo
2064         in dump message.
2065
2066 2015-07-10  Richard Biener  <rguenther@suse.de>
2067
2068         PR tree-optimization/66823
2069         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Fix
2070         inverted predicate.
2071
2072 2015-07-09  Steve Ellcey  <sellcey@imgtec.com>
2073
2074         * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): Update
2075         to handle mips[32|64]r3 and mips[32|64]r5.
2076
2077 2015-07-09  Jakub Jelinek  <jakub@redhat.com>
2078
2079         PR middle-end/66633
2080         * tree-nested.c (get_static_chain): Or in a flag into
2081         info->static_chain_added.
2082         (get_frame_field, get_nonlocal_debug_decl): Likewise.
2083         (convert_nonlocal_omp_clauses, convert_local_omp_clauses): Revert
2084         2015-07-01 changes.
2085         (convert_tramp_reference_stmt): If a frame_decl or chain_decl
2086         is needed newly inside of GIMPLE_OMP_{PARALLEL,TASK,TARGET} body,
2087         add it to clauses.
2088
2089         PR tree-optimization/66718
2090         * tree-vect-stmts.c (struct simd_call_arg_info): Add simd_lane_linear
2091         field.
2092         (vect_simd_lane_linear): New function.
2093         (vectorizable_simd_clone_call): Support using linear arguments for
2094         addresses of arrays elements indexed by GOMP_SIMD_LANE result.
2095
2096 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
2097
2098         PR target/66821
2099         * config/i386/i386.c (iamcu_cost): Adjust variable shift costs.
2100
2101 2015-07-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
2102
2103         * config/rs6000/rs6000-protos.h (rs6000_secondary_reload_memory):
2104         Use machine mode, not enum machine_mode in the prototype.
2105
2106         * config/rs6000/rs6000.h (FLOAT128_IEEE_P): New helper macros to
2107         classify 128-bit floating point support.
2108         (FLOAT128_IBM_P): Likewise.
2109         (FLOAT128_VECTOR_P): Likewise.
2110         (FLOAT128_2REG_P): Likewise.
2111         (SCALAR_FLOAT_MODE_NOT_VECTOR_P): Likewise.
2112         (SLOW_UNALIGNED_ACCESS): Add IEEE 128-bit floating point support.
2113         (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
2114         (HARD_REGNO_CALL_PART_CLOBBERED): Likewise.
2115
2116         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Drop
2117         tests against TFmode/TDmode, since those modes do not use VSX
2118         addresses.
2119         (rs6000_hard_regno_mode_ok): Add IEEE 128-bit floating point
2120         support.
2121         (rs6000_init_hard_regno_mode_ok): Use new helper macros instead of
2122         tests against TFmode, etc.
2123         (invalid_e500_subreg): Add tests against IFmode/KFmode.
2124         (reg_offset_addressing_ok_p): Likewise.
2125         (rs6000_legitimate_offset_address_p): Likewise.
2126         (rs6000_legitimize_address): Likewise.
2127         (rs6000_legitimize_reload_address): Likewise.
2128         (rs6000_legitimate_address_p): Clean up tests against TFmode and
2129         TDmode to use the new helper macros, which will include IFmode and
2130         KFmode.
2131         (rs6000_emit_move): Likewise.
2132         (rs6000_darwin64_record_arg_recurse): Likewise.
2133         (print_operand): Likewise.
2134         (rs6000_member_type_forces_blk): Treat IEEE 128-bit floating point
2135         that uses a single vector register as a vector and not as a
2136         floating point register in terms of the calling sequence.
2137         (rs6000_discover_homogeneous_aggregate): Likewise.
2138         (rs6000_return_in_memory): Likewise.
2139         (init_cumulative_args): Likewise.
2140         (rs6000_function_arg_boundary): Likewise.
2141         (rs6000_function_arg_advance_1): Likewise.
2142         (rs6000_function_arg): Likewise.
2143         (rs6000_pass_by_reference): Likewise.
2144         (rs6000_gimplify_va_arg): Likewise.
2145         (rs6000_secondary_reload_memory): Use machine_mode not enum
2146         machine mode.
2147         (rs6000_split_multireg_move): Use new helper macros.
2148         (spe_func_has_64bit_regs_p): Likewise.
2149         (rs6000_output_function_epilogue): Add IFmode/KFmode support.
2150         (output_toc): Use new helper macros.
2151         (rs6000_register_move_cost): Likewise.
2152         (rs6000_function_value): Add IEEE 128-bit floating point calling
2153         sequence support.
2154         (rs6000_libcall_value): Likewise.
2155         (rs6000_scalar_mode_supported_p): Add support for IEEE 128-bit
2156         floating point support.
2157         (rs6000_vector_mode_supported_p): Likewise.
2158
2159 2015-07-09  Vladimir Makarov  <vmakarov@redhat.com>
2160
2161         PR rtl-optimization/66782
2162         * lra-int.h (struct lra_insn_recog_data): Add comment about
2163         clobbered hard regs for arg_hard_regs.
2164         * lra.c (lra_set_insn_recog_data): Add clobbered hard regs.
2165         * lra-lives.c (process_bb_lives): Process clobbered hard regs.
2166         Add condition for processing used hard regs.
2167         * lra-constraints.c (update_ebb_live_info, inherit_in_ebb):
2168         Process clobbered hard regs.
2169
2170 2015-07-09  Michael Matz  <matz@suse.de>
2171
2172         * genmatch.c (fprintf_indent): New function.
2173         (operand::gen_transform): Add indent parameter.
2174         (expr::gen_transform, c_expr::gen_transform,
2175         capture::gen_transform): Ditto and use fprintf_indent.
2176         (dt_node::gen, dt_node::gen_kids, dt_node::gen_kids_1): Ditto.
2177         (dt_operand::gen, dt_operand::gen_predicate,
2178         dt_operand::gen_match_op, dt_operand::gen_gimple_expr,
2179         dt_operand::gen_generic_expr, dt_simplify::gen): Ditto.
2180         (decision_tree::gen_gimple): Adjust calls and indent generated
2181         code.
2182         (decision_tree::gen_generic): Ditto.
2183         (write_predicate): Ditto.
2184
2185 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
2186
2187         PR target/66814
2188         * config/i386/predicates.md (nonimmediate_gr_operand): New predicate.
2189         * config/i386/i386.md (not peephole2): Use nonimmediate_gr_operand.
2190         (varous peephole2s): Use {GENERAL,SSE,MMX}_REGNO_P instead of
2191         {GENERAL,SSE,MMX}_REG_P where appropriate.
2192
2193 2015-07-09  Andrew MacLeod  <amacleod@redhat.com>
2194
2195         * lto-streamer.h: Don't include target.h and alloc-pool.h.
2196         * builtins.c: Adjust includes.
2197         * gimple.c: Likewise.
2198         * ipa-icf.c: Likewise.
2199         * lto-opts.c: Likewise.
2200         * ipa-reference.c: Likewise.
2201         * lto-section-out.c: Likewise.
2202         * lto-streamer-in.c: Likewise.
2203         * lto-streamer-out.c: Likewise.
2204         * opts-global.c: Likewise.
2205         * symtab.c: Likewise.
2206         * tree-chkp.c: Likewise.
2207         * tree-ssa-live.c: Likewise.
2208         * tree-streamer-in.c: Likewise.
2209         * tree-streamer-out.c: Likewise.
2210         * config/darwin.c: Likewise.
2211         * config/i386/winnt.c: Likewise.
2212
2213 2015-07-09  Richard Biener  <rguenther@suse.de>
2214
2215         * genmatch.c (struct expr): Add force_single_use flag.
2216         (expr::expr): Add copy constructor.
2217         (capture_info::walk_match): Gather force_single_use captures.
2218         (expr::gen_transform): Use possibly NULLified sequence.
2219         (dt_simplify::gen): Apply single-use restrictions by NULLifying
2220         seq if any constrained expr is not single-use.
2221         (parser::parse_expr): Refactor to allow multiple flags.  Handle
2222         's' flag to force an expression have a single-use if the pattern
2223         simplifies to more than one statement.
2224         * match.pd: Convert most single_use conditionals to :s flags.
2225
2226 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
2227
2228         * config/i386/iamcu.h (ASM_OUTPUT_ALIGNED_BSS): New.
2229         (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
2230         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
2231
2232 2015-07-09  Andrew MacLeod  <amacleod@redhat.com>
2233
2234         * flags.h: Don't include flag-types.h or options.h.
2235         * opts-common.c: Adjust includes.
2236         * opts-global.c: Likewise.
2237         * common/config/epiphany/epiphany-common.c: Likewise.
2238
2239 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
2240
2241         PR target/66818
2242         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Defined to 32
2243         for IA MCU.
2244
2245 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
2246
2247         PR target/66817
2248         * config/i386/i386.c (ix86_return_in_memory): Return true
2249         if int_size_in_bytes returns negative for IA MCU.
2250
2251 2015-07-09  Marek Polacek  <polacek@redhat.com>
2252
2253         PR tree-optimization/66718
2254         * Makefile.in (OBJS): Add gimple-laddress.o.
2255         * passes.def: Schedule pass_laddress.
2256         * timevar.def (DEFTIMEVAR): Add TV_GIMPLE_LADDRESS.
2257         * tree-pass.h (make_pass_laddress): Declare.
2258         * gimple-laddress.c: New file.
2259
2260 2015-07-09  Richard Biener  <rguenther@suse.de>
2261
2262         * toplev.c (compile_file): Reset maximum_field_alignment after parsing.
2263
2264 2015-07-09  Richard Biener  <rguenther@suse.de>
2265
2266         PR tree-optimization/66807
2267         * tree-chkp-opt.c (chkp_opt_fini): Free post dominator info.
2268
2269 2015-07-08  Kito Cheng  <kito.cheng@gmail.com>
2270
2271         * function.c (stack_protect_epilogue): Use if rather than switch for
2272         check targetm.have_stack_protect_test.
2273
2274 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2275
2276         * defaults.h: Provide default for WORD_REGISTER_OPERATIONS.
2277         * config/alpha/alpha.h: Define WORD_REGISTER_OPERATIONS to 1.
2278         * config/arc/arc.h: Likewise.
2279         * config/arm/arm.h: Likewise.
2280         * config/bfin/bfin.h: Likewise.
2281         * config/epiphany/epiphany.h: Likewise.
2282         * config/frv/frv.h: Likewise.
2283         * config/ia64/ia64.h: Likewise.
2284         * config/iq2000/iq2000.h: Likewise.
2285         * config/lm32/lm32.h: Likewise.
2286         * config/m32r/m32r.h: Likewise.
2287         * config/mcore/mcore.h: Likewise.
2288         * config/mep/mep.h: Likewise.
2289         * config/microblaze/microblaze.h: Likewise.
2290         * config/mips/mips.h: Likewise.
2291         * config/mmix/mmix.h: Likewise.
2292         * config/mn10300/mn10300.h: Likewise.
2293         * config/nds32/nds32.h: Likewise.
2294         * config/nios2/nios2.h: Likewise.
2295         * config/pa/pa.h: Likewise.
2296         * config/rl78/rl78.h: Likewise.
2297         * config/sh/sh.h: Likewise.
2298         * config/sparc/sparc.h: Likewise.
2299         * config/stormy16/stormy16.h: Likewise.
2300         * config/tilegx/tilegx.h: Likewise.
2301         * config/tilepro/tilepro.h: Likewise.
2302         * config/v850/v850.h: Likewise.
2303         * config/xtensa/xtensa.h: Likewise.
2304         * doc/tm.texi: Regenerate.
2305         * doc/tm.texi.in: Adjust.
2306         * combine.c (simplify_set): Likewise.
2307         (simplify_comparison): Likewise.
2308         * expr.c (store_constructor): Likewise.
2309         * internal-fn.c (expand_arith_overflow): Likewise.
2310         * reload.c (push_reload): Likewise.
2311         (find_reloads): Likewise.
2312         (find_reloads_subreg_address): Likewise.
2313         * reload1.c (eliminate_regs_1): Likewise.
2314         * rtlanal.c (nonzero_bits1): Likewise.
2315         (num_sign_bit_copies1): Likewise.
2316         * simplify-rtx.c (simplify_truncation): Likewise.
2317
2318 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2319
2320         * auto-inc-dec.c (pass_inc_dec::execute): Don't check the value
2321         of AUTO_INC_DEC with the preprocessor.
2322         * combine.c (combine_instructions): Likewise.
2323         (can_combine_p): Likewise.
2324         (try_combine): Likewise.
2325         * emit-rtl.c (try_split): Likewise.
2326         * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
2327         * lower-subreg.c (resolve_simple_move): Likewise.
2328         * lra.c (update_inc_notes): Likewise.
2329         * recog.c (asm_operand_ok): Likewise.
2330         (constrain_operands): Likewise.
2331         * regrename.c (scan_rtx_address): Likewise.
2332         * reload.c (update_auto_inc_notes): Likewise.
2333         (reg_inc_found_and_valid_p): Likewise.
2334         * reload1.c (reload): Likewise.
2335         (emit_input_reload_insns): Likewise.
2336         (delete_output_reload): Likewise.
2337         * sched-deps.c (init_insn_reg_pressure_info): Likewise.
2338         * valtrack.c (cleanup_auto_inc_dec): Likewise.
2339
2340 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2341
2342         * rtl.h: Always define AUTO_INC_DEC.
2343         * auto-inc-dec.c (pass_inc_dec::execute): Adjust.
2344         * combine.c (combine_instructions): Likewise.
2345         (can_combine_p): Likewise.
2346         (try_combine): Likewise.
2347         * emit-rtl.c (try_split): Likewise.
2348         * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
2349         * lower-subreg.c (resolve_simple_move): Likewise.
2350         * lra.c (update_inc_notes): Likewise.
2351         * recog.c (asm_operand_ok): Likewise.
2352         (constrain_operands): Likewise.
2353         * regrename.c (scan_rtx_address): Likewise.
2354         * reload.c (update_auto_inc_notes): Likewise.
2355         (find_equiv_reg): Likewise.
2356         * reload1.c (reload): Likewise.
2357         (reload_as_needed): Likewise.
2358         (choose_reload_regs): Likewise.
2359         (emit_input_reload_insns): Likewise.
2360         (delete_output_reload): Likewise.
2361         * sched-deps.c (init_insn_reg_pressure_info): Likewise.
2362         * valtrack.c (cleanup_auto_inc_dec): Likewise.
2363
2364 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2365
2366         * combine.c (can_combine_def_p): Don't check the value of
2367         HARD_FRAME_POINTER_IS_FRAME_POINTER with the preprocessor.
2368         (combinable_i3pat): Likewise.
2369         (mark_used_regs_combine): Likewise.
2370         * regrename.c (rename_chains): Likewise.
2371         * reload.c (find_reloads_address): Likewise.
2372         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
2373
2374 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2375
2376         * combine.c (update_rsp_from_reg_equal): Don't check if
2377         SHORT_IMMEDIATES_SIGN_EXTEND is defined.
2378         (reg_nonzero_bits_for_combine): Likewise.
2379         * config/alpha/alpha.h: Define SHORT_IMMEDIATES_SIGN_EXTEND to
2380         1.
2381         * config/frv/frv.h: Likewise.
2382         * config/lm32/lm32.h: Likewise.
2383         * config/mep/mep.h: Likewise.
2384         * config/mips/mips.h: Likewise.
2385         * config/rs6000/rs6000.h: Likewise.
2386         * config/sh/sh.h: Likewise.
2387         * config/tilegx/tilegx.h (enum reg_class): Likewise.
2388         * config/tilepro/tilepro.h: Likewise.
2389         * defaults.h: Add default for SHORT_IMMEDIATES_SIGN_EXTEND.
2390         * doc/tm.texi: Regenerate.
2391         * doc/tm.texi.in: Adjust.
2392         * rtlanal.c (nonzero_bits1): Likewise.
2393
2394 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2395
2396         * combine.c (do_SUBST_MODE): Don't check the value of HAVE_cc0
2397         with the preprocessor.
2398         (combine_instructions): Likewise.
2399         (try_combine): Likewise.
2400         (subst): Likewise.
2401         (distribute_notes): Likewise.
2402
2403 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2404
2405         * combine.c (try_combine): Don't check if LOAD_EXTEND_OP is
2406         defined.
2407         (simplify_set): Likewise.
2408         * cse.c (cse_insn): Likewise.
2409         * fold-const.c (fold_single_bit_test): Likewise.
2410         (fold_unary_loc): Likewise.
2411         * postreload.c (reload_cse_simplify_set): Likewise.
2412         (reload_cse_simplify_operands): Likewise.
2413
2414 2015-07-08  Jiong Wang  <jiong.wang@arm.com>
2415
2416         * config/aarch64/aarch64.c (aarch64_unspec_may_trap_p): New function.
2417         (TARGET_UNSPEC_MAY_TRAP_P): Define as aarch64_unspec_may_trap_p.
2418
2419 2015-07-08  H.J. Lu  <hongjiu.lu@intel.com>
2420
2421         PR target/66746
2422         * config/i386/x86intrin.h: Include <adxintrin.h> even if
2423         __iamcu__ is defined.
2424
2425 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
2426
2427         * config/i386/predicates.md (general_reg_operand): Use GENERAL_REGNO_P.
2428
2429 2015-07-08  Iain Sandoe  <iain@codesourcery.com>
2430
2431         PR target/66523
2432         * config/darwin.c (darwin_mark_decl_preserved): Exclude 'L' label
2433         names from preservation.
2434
2435 2015-07-08  H.J. Lu  <hongjiu.lu@intel.com>
2436
2437         PR target/66806
2438         * config/i386/i386.c (type_natural_mode): Don't warn vector ABI
2439         change for IAMCU.
2440         (function_arg_advance_32): Don't pass vectors in registers for
2441         IAMCU.
2442         (function_arg_32): Likewise.
2443         (ix86_return_in_memory): Don't return vectors in registers for
2444         IAMCU.
2445
2446 2015-07-08  Vladimir Makarov  <vmakarov@redhat.com>
2447
2448         PR middle-end/66334
2449         * ira-lives.c (process_bb_node_lives): Make conflicts with PIC
2450         hard regno live at the start of BB with incoming abnormal edges.
2451         * lra-lives.c (process_bb_lives): Ditto.
2452
2453 2015-07-08  Thomas Schwinge  <thomas@codesourcery.com>
2454
2455         PR libgomp/65099
2456         * config/nvptx/mkoffload.c (main): Create an offload image only in
2457         64-bit configurations.
2458
2459 2015-07-08  Martin Liska  <mliska@suse.cz>
2460
2461         PR bootstrap/66744
2462         * tree-sra.c (create_access_1): Call ctor without brackets.
2463         (create_artificial_child_access): Likewise.
2464
2465 2015-07-08  Richard Biener  <rguenther@suse.de>
2466
2467         PR tree-optimization/66793
2468         * gimple-ssa-isolate-paths.c (insert_trap_and_remove_trailing_statemen):
2469         Properly split the block after stmts ending it.
2470
2471 2015-07-08  Richard Biener  <rguenther@suse.de>
2472
2473         PR tree-optimization/66794
2474         * passes.c (execute_function_todo): Assert that post-dominators
2475         are not computed.
2476         * gimple-ssa-isolate-paths.c (gimple_ssa_isolate_erroneous_paths):
2477         Free post-dominators.
2478
2479 2015-07-08  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2480
2481         * config/s390/s390.c (s390_init_frame_layout): Replace assertion
2482         with early exit.
2483
2484 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
2485
2486         * config/i386/i386.md (*jcc_bt<mode>): Only allow const_int values
2487         more than or equal 8 and less than 32 when optimizing for size.
2488
2489 2015-07-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2490
2491         * config/arm/arm.c (arm_new_rtx_costs): Initialise cost to
2492         COSTS_N_INSNS (1) and increment it appropriately throughout the
2493         function.
2494
2495 2015-07-08  Richard Biener  <rguenther@suse.de>
2496
2497         * fold-const.c (fold_widened_comparison): Fix inverted comparison.
2498
2499 2015-07-08  Alan Modra  <amodra@gmail.com>
2500
2501         * target.def (rtx_costs): Remove "code" param, add "mode".
2502         * rtl.h (rtx_cost, get_full_rtx_cost): Update prototype.
2503         (set_src_cost, get_full_set_src_cost): Likewise.  Move later in file.
2504         (set_rtx_cost, get_full_set_rtx_cost): Move later in file.
2505         * rtlanal.c (rtx_cost): Add "mode" parameter.  Update targetm.rtx_costs
2506         call.  Track mode when given in rtx.
2507         (get_full_rtx_cost): Add "mode" parameter.  Update rtx_cost calls.
2508         (default_address_cost): Pass Pmode to rtx_cost.
2509         (insn_rtx_cost): Pass dest mode of set to set_src_cost.
2510         * cprop.c (try_replace_reg): Ensure set_rtx_cost is not called
2511         with NULL set.
2512         * cse.c (COST, COST_IN): Add MODE param.  Update all uses.
2513         (notreg_cost): Add mode param.  Use it.
2514         * gcse.c (want_to_gcse_p): Delete forward declaration.  Add
2515         mode param and pass to set_src_cost.  Update all calls.
2516         (hash_scan_set): Formatting.
2517         * hooks.c (hook_bool_rtx_int_int_int_intp_bool_false): Delete.
2518         (hook_bool_rtx_mode_int_int_intp_bool_false): New function.
2519         * hooks.h: Ditto.
2520         * expmed.c (init_expmed_one_conv, init_expmed_one_mode,
2521         init_expmed, expand_mult, mult_by_coeff_cost, expand_smod_pow2,
2522         emit_store_flag): Update set_src_cost and rtx_cost calls.
2523         * auto-inc-dec.c (attempt_change): Likewise.
2524         * calls.c (precompute_register_parameters): Likewise.
2525         * combine.c (expand_compound_operation, make_extraction,
2526         force_to_mode, distribute_and_simplify_rtx): Likewise.
2527         * dojump.c (prefer_and_bit_test): Likewise.
2528         * dse.c (find_shift_sequence): Likewise.
2529         * expr.c (compress_float_constant): Likewise.
2530         * fwprop.c (should_replace_address, try_fwprop_subst): Likewise.
2531         * ifcvt.c (noce_try_sign_mask): Likewise.
2532         * loop-doloop.c (doloop_optimize): Likewise.
2533         * loop-invariant.c (create_new_invariant): Likewise.
2534         * lower-subreg.c (shift_cost, compute_costs): Likewise.
2535         * optabs.c (avoid_expensive_constant, prepare_cmp_insn,
2536         lshift_cheap_p): Likewise.
2537         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
2538         try_replace_in_use, reload_cse_move2add): Likewise.
2539         * reload1.c (calculate_elim_costs_all_insns, note_reg_elim_costly):
2540         Likewise.
2541         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
2542         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
2543         * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Likewise.
2544         * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
2545         * config/aarch64/aarch64.c (aarch64_rtx_costs): Delete "code" param,
2546         add "mode" param.  Use "mode: in place of GET_MODE (x).  Pass mode
2547         to rtx_cost calls.
2548         * config/alpha/alpha.c (alpha_rtx_costs): Likewise.
2549         * config/arc/arc.c (arc_rtx_costs): Likewise.
2550         * config/arm/arm.c (arm_rtx_costs): Likewise.
2551         * config/avr/avr.c (avr_rtx_costs, avr_rtx_costs_1): Likewise.
2552         * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
2553         * config/c6x/c6x.c (c6x_rtx_costs): Likewise.
2554         * config/cris/cris.c (cris_rtx_costs): Likewise.
2555         * config/epiphany/epiphany.c (epiphany_rtx_costs): Likewise.
2556         * config/frv/frv.c (frv_rtx_costs): Likewise.
2557         * config/h8300/h8300.c (h8300_rtx_costs): Likewise.
2558         * config/i386/i386.c (ix86_rtx_costs): Likewise.
2559         * config/ia64/ia64.c (ia64_rtx_costs): Likewise.
2560         * config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
2561         * config/lm32/lm32.c (lm32_rtx_costs): Likewise.
2562         * config/m32c/m32c.c (m32c_rtx_costs): Likewise.
2563         * config/m32r/m32r.c (m32r_rtx_costs): Likewise.
2564         * config/m68k/m68k.c (m68k_rtx_costs): Likewise.
2565         * config/mcore/mcore.c (mcore_rtx_costs): Likewise.
2566         * config/mep/mep.c (mep_rtx_cost): Likewise.
2567         * config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
2568         * config/mips/mips.c (mips_rtx_costs): Likewise.
2569         * config/mmix/mmix.c (mmix_rtx_costs): Likewise.
2570         * config/mn10300/mn10300.c (mn10300_rtx_costs): Likewise.
2571         * config/msp430/msp430.c (msp430_rtx_costs): Likewise.
2572         * config/nds32/nds32-cost.c (nds32_rtx_costs_impl): Likewise.
2573         * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Likewise.
2574         * config/nds32/nds32.c (nds32_rtx_costs): Likewise.
2575         * config/nios2/nios2.c (nios2_rtx_costs): Likewise.
2576         * config/pa/pa.c (hppa_rtx_costs): Likewise.
2577         * config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
2578         * config/rl78/rl78.c (rl78_rtx_costs): Likewise.
2579         * config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
2580         * config/s390/s390.c (s390_rtx_costs): Likewise.
2581         * config/sh/sh.c (sh_rtx_costs): Likewise.
2582         * config/sparc/sparc.c (sparc_rtx_costs): Likewise.
2583         * config/spu/spu.c (spu_rtx_costs): Likewise.
2584         * config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
2585         * config/tilegx/tilegx.c (tilegx_rtx_costs): Likewise.
2586         * config/tilepro/tilepro.c (tilepro_rtx_costs): Likewise.
2587         * config/v850/v850.c (v850_rtx_costs): Likewise.
2588         * config/vax/vax.c (vax_rtx_costs): Likewise.
2589         * config/visium/visium.c (visium_rtx_costs): Likewise.
2590         * config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.
2591         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Change type of
2592         "code" param, and pass as outer_code to first rtx_cost call.  Pass
2593         mode to rtx_cost calls.
2594         (aarch64_address_cost, aarch64_if_then_else_costs): Update rtx_cost
2595         calls.
2596         (aarch64_rtx_costs_wrapper): Update.
2597         * config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs,
2598         arm_unspec_cost, arm_new_rtx_costs, arm_slowmul_rtx_costs): Update
2599         rtx_cost calls.
2600         * config/avr/avr.c (avr_final_prescan_insn): Update set_src_cost
2601         and rtx_cost calls.
2602         (avr_operand_rtx_cost): Similarly.
2603         (avr_rtx_costs_1): Correct mode passed to avr_operand_rtx_cost
2604         for subexpressions of ZERO_EXTEND, SIGN_EXTEND and COMPARE.
2605         * config/mips/mips.c (mips_stack_address_p): Comment typo.
2606         (mips_binary_cost): Update rtx_cost and set_src_cost calls.
2607         (mips_rtx_costs): Use GET_MODE (x) to detect const_int.
2608         * config/mn10300/mn10300.c (mn10300_address_cost): Pass Pmode to
2609         rtx_cost.
2610         (mn10300_rtx_costs): Correct mode passed to mn10300_address_cost.
2611         * config/rs6000/rs6000.c (rs6000_debug_rtx_costs): Update.
2612         * config/sh/sh.c (and_xor_ior_costs): Update rtx_cost call.
2613         * doc/tm.texi: Regenerate.
2614
2615 2015-07-07  Andrew MacLeod  <amacleod@redhat.com>
2616
2617         * tree-core.h: Include symtab.h.
2618         * rtl.h: Include hard-reg-set.h but not flags.h.
2619         (HARD_CONST): Remove condition compilation involving HARD_CONST since
2620         hard-reg-set.h is always included.
2621         * regs.h: Don't include hard-reg-set.h or rtl.h.
2622         * cfg.h: Include dominance.h.
2623         * gimple.h: Include tree-ssa-alias.h and gimple-expr.h.
2624         * backend.h: New.  Aggregate commonly used backend header files.
2625         * gimple-ssa.h: Don't include tree-hasher.h.
2626         * ssa.h: New.  Aggregate commonly used SSA header files.
2627         * regset.h: Remove bitmap.h and hard-reg-set.h #includes.
2628         * sel-sched-ir.h: Flatten includes.
2629         * lra-int.h: Flatten completely.
2630         * sel-sched-dump.h: Flatten includes.
2631         * ira-int.h: Flatten includes.
2632         * gimple-streamer.h: Remove all includes.
2633         * cfgloop.h: Remove all #includes except cfgloopmanip.h.
2634         * resource.h: Flatten hard-reg-set.h and df.h.
2635         * sched-int.h: Flatten insn-arrt.h and df.h.
2636         * valtrack.h: flatten bitmap.h, df.h, and rtl.h
2637         * df.h: Flatten includes, leaving regset.h, alloc-pool.h and timevar.h.
2638         * genattrtab.c (write_header): Adjust generated includes.
2639         * genautomata.c (main): Likewise.
2640         * genconditions.c (write-header): Likewise.
2641         * genemit.c (main): Likewise.
2642         * gengtype.c (open_base_files): Likewise.
2643         * genopinit.c (main): Likewise.
2644         * genoutput.c (output_prologue): Likewise.
2645         * genpeep.c (main): Likewise.
2646         * genpreds.c (write_insn_preds_c): Likewise.
2647         * genrecog.c (write_header): Likewise.
2648         * alias.c: Adjust includes.
2649         * asan.c: Likewise.
2650         * attribs.c: Likewise.
2651         * auto-inc-dec.c: Likewise.
2652         * auto-profile.c: Likewise.
2653         * bb-reorder.c: Likewise.
2654         * bt-load.c: Likewise.
2655         * builtins.c: Likewise.
2656         * caller-save.c: Likewise.
2657         * calls.c: Likewise.
2658         * ccmp.c: Likewise.
2659         * cfg.c: Likewise.
2660         * cfganal.c: Likewise.
2661         * cfgbuild.c: Likewise.
2662         * cfgcleanup.c: Likewise.
2663         * cfgexpand.c: Likewise.
2664         * cfghooks.c: Likewise.
2665         * cfgloop.c: Likewise.
2666         * cfgloopanal.c: Likewise.
2667         * cfgloopmanip.c: Likewise.
2668         * cfgrtl.c: Likewise.
2669         * cgraph.c: Likewise.
2670         * cgraphbuild.c: Likewise.
2671         * cgraphclones.c: Likewise.
2672         * cgraphunit.c: Likewise.
2673         * cilk-common.c: Likewise.
2674         * combine-stack-adj.c: Likewise.
2675         * combine.c: Likewise.
2676         * compare-elim.c: Likewise.
2677         * convert.c: Likewise.
2678         * coverage.c: Likewise.
2679         * cppbuiltin.c: Likewise.
2680         * cprop.c: Likewise.
2681         * cse.c: Likewise.
2682         * cselib.c: Likewise.
2683         * data-streamer-in.c: Likewise.
2684         * data-streamer-out.c: Likewise.
2685         * data-streamer.c: Likewise.
2686         * dbxout.c: Likewise.
2687         * dce.c: Likewise.
2688         * ddg.c: Likewise.
2689         * debug.c: Likewise.
2690         * df-core.c: Likewise.
2691         * df-problems.c: Likewise.
2692         * df-scan.c: Likewise.
2693         * dfp.c: Likewise.
2694         * dojump.c: Likewise.
2695         * dominance.c: Likewise.
2696         * domwalk.c: Likewise.
2697         * double-int.c: Likewise.
2698         * dse.c: Likewise.
2699         * dumpfile.c: Likewise.
2700         * dwarf2asm.c: Likewise.
2701         * dwarf2cfi.c: Likewise.
2702         * dwarf2out.c: Likewise.
2703         * emit-rtl.c: Likewise.
2704         * et-forest.c: Likewise.
2705         * except.c: Likewise.
2706         * explow.c: Likewise.
2707         * expmed.c: Likewise.
2708         * expr.c: Likewise.
2709         * final.c: Likewise.
2710         * fixed-value.c: Likewise.
2711         * fold-const.c: Likewise.
2712         * function.c: Likewise.
2713         * fwprop.c: Likewise.
2714         * gcc-plugin.h: Likewise.
2715         * gcse-common.c: Likewise.
2716         * gcse.c: Likewise.
2717         * generic-match-head.c: Likewise.
2718         * ggc-page.c: Likewise.
2719         * gimple-builder.c: Likewise.
2720         * gimple-expr.c: Likewise.
2721         * gimple-fold.c: Likewise.
2722         * gimple-iterator.c: Likewise.
2723         * gimple-low.c: Likewise.
2724         * gimple-match-head.c: Likewise.
2725         * gimple-pretty-print.c: Likewise.
2726         * gimple-ssa-isolate-paths.c: Likewise.
2727         * gimple-ssa-strength-reduction.c: Likewise.
2728         * gimple-streamer-in.c: Likewise.
2729         * gimple-streamer-out.c: Likewise.
2730         * gimple-walk.c: Likewise.
2731         * gimple.c: Likewise.
2732         * gimplify-me.c: Likewise.
2733         * gimplify.c: Likewise.
2734         * godump.c: Likewise.
2735         * graph.c: Likewise.
2736         * graphite-blocking.c: Likewise.
2737         * graphite-dependences.c: Likewise.
2738         * graphite-interchange.c: Likewise.
2739         * graphite-isl-ast-to-gimple.c: Likewise.
2740         * graphite-optimize-isl.c: Likewise.
2741         * graphite-poly.c: Likewise.
2742         * graphite-scop-detection.c: Likewise.
2743         * graphite-sese-to-poly.c: Likewise.
2744         * graphite.c: Likewise.
2745         * haifa-sched.c: Likewise.
2746         * hw-doloop.c: Likewise.
2747         * ifcvt.c: Likewise.
2748         * init-regs.c: Likewise.
2749         * internal-fn.c: Likewise.
2750         * ipa-chkp.c: Likewise.
2751         * ipa-comdats.c: Likewise.
2752         * ipa-cp.c: Likewise.
2753         * ipa-devirt.c: Likewise.
2754         * ipa-icf-gimple.c: Likewise.
2755         * ipa-icf.c: Likewise.
2756         * ipa-inline-analysis.c: Likewise.
2757         * ipa-inline-transform.c: Likewise.
2758         * ipa-inline.c: Likewise.
2759         * ipa-polymorphic-call.c: Likewise.
2760         * ipa-profile.c: Likewise.
2761         * ipa-prop.c: Likewise.
2762         * ipa-pure-const.c: Likewise.
2763         * ipa-ref.c: Likewise.
2764         * ipa-reference.c: Likewise.
2765         * ipa-split.c: Likewise.
2766         * ipa-utils.c: Likewise.
2767         * ipa-visibility.c: Likewise.
2768         * ipa.c: Likewise.
2769         * ira-build.c: Likewise.
2770         * ira-color.c: Likewise.
2771         * ira-conflicts.c: Likewise.
2772         * ira-costs.c: Likewise.
2773         * ira-emit.c: Likewise.
2774         * ira-lives.c: Likewise.
2775         * ira.c: Likewise.
2776         * jump.c: Likewise.
2777         * langhooks.c: Likewise.
2778         * lcm.c: Likewise.
2779         * loop-doloop.c: Likewise.
2780         * loop-init.c: Likewise.
2781         * loop-invariant.c: Likewise.
2782         * loop-iv.c: Likewise.
2783         * loop-unroll.c: Likewise.
2784         * lower-subreg.c: Likewise.
2785         * lra-assigns.c: Likewise.
2786         * lra-coalesce.c: Likewise.
2787         * lra-constraints.c: Likewise.
2788         * lra-eliminations.c: Likewise.
2789         * lra-lives.c: Likewise.
2790         * lra-remat.c: Likewise.
2791         * lra-spills.c: Likewise.
2792         * lra.c: Likewise.
2793         * lto-cgraph.c: Likewise.
2794         * lto-compress.c: Likewise.
2795         * lto-opts.c: Likewise.
2796         * lto-section-in.c: Likewise.
2797         * lto-section-out.c: Likewise.
2798         * lto-streamer-in.c: Likewise.
2799         * lto-streamer-out.c: Likewise.
2800         * lto-streamer.c: Likewise.
2801         * mcf.c: Likewise.
2802         * mode-switching.c: Likewise.
2803         * modulo-sched.c: Likewise.
2804         * omega.c: Likewise.
2805         * omp-low.c: Likewise.
2806         * optabs.c: Likewise.
2807         * opts-global.c: Likewise.
2808         * passes.c: Likewise.
2809         * plugin.c: Likewise.
2810         * postreload-gcse.c: Likewise.
2811         * postreload.c: Likewise.
2812         * predict.c: Likewise.
2813         * print-rtl.c: Likewise.
2814         * print-tree.c: Likewise.
2815         * profile.c: Likewise.
2816         * real.c: Likewise.
2817         * realmpfr.c: Likewise.
2818         * recog.c: Likewise.
2819         * ree.c: Likewise.
2820         * reg-stack.c: Likewise.
2821         * regcprop.c: Likewise.
2822         * reginfo.c: Likewise.
2823         * regrename.c: Likewise.
2824         * regstat.c: Likewise.
2825         * reload.c: Likewise.
2826         * reload1.c: Likewise.
2827         * reorg.c: Likewise.
2828         * resource.c: Likewise.
2829         * rtl-chkp.c: Likewise.
2830         * rtlanal.c: Likewise.
2831         * rtlhooks.c: Likewise.
2832         * sanopt.c: Likewise.
2833         * sched-deps.c: Likewise.
2834         * sched-ebb.c: Likewise.
2835         * sched-rgn.c: Likewise.
2836         * sched-vis.c: Likewise.
2837         * sdbout.c: Likewise.
2838         * sel-sched-dump.c: Likewise.
2839         * sel-sched-ir.c: Likewise.
2840         * sel-sched.c: Likewise.
2841         * sese.c: Likewise.
2842         * shrink-wrap.c: Likewise.
2843         * simplify-rtx.c: Likewise.
2844         * stack-ptr-mod.c: Likewise.
2845         * stmt.c: Likewise.
2846         * stor-layout.c: Likewise.
2847         * store-motion.c: Likewise.
2848         * stringpool.c: Likewise.
2849         * symtab.c: Likewise.
2850         * target-globals.c: Likewise.
2851         * targhooks.c: Likewise.
2852         * toplev.c: Likewise.
2853         * tracer.c: Likewise.
2854         * trans-mem.c: Likewise.
2855         * tree-affine.c: Likewise.
2856         * tree-browser.c: Likewise.
2857         * tree-call-cdce.c: Likewise.
2858         * tree-cfg.c: Likewise.
2859         * tree-cfgcleanup.c: Likewise.
2860         * tree-chkp-opt.c: Likewise.
2861         * tree-chkp.c: Likewise.
2862         * tree-chrec.c: Likewise.
2863         * tree-complex.c: Likewise.
2864         * tree-data-ref.c: Likewise.
2865         * tree-dfa.c: Likewise.
2866         * tree-diagnostic.c: Likewise.
2867         * tree-dump.c: Likewise.
2868         * tree-eh.c: Likewise.
2869         * tree-emutls.c: Likewise.
2870         * tree-if-conv.c: Likewise.
2871         * tree-inline.c: Likewise.
2872         * tree-into-ssa.c: Likewise.
2873         * tree-iterator.c: Likewise.
2874         * tree-loop-distribution.c: Likewise.
2875         * tree-nested.c: Likewise.
2876         * tree-nrv.c: Likewise.
2877         * tree-object-size.c: Likewise.
2878         * tree-outof-ssa.c: Likewise.
2879         * tree-parloops.c: Likewise.
2880         * tree-phinodes.c: Likewise.
2881         * tree-predcom.c: Likewise.
2882         * tree-pretty-print.c: Likewise.
2883         * tree-profile.c: Likewise.
2884         * tree-scalar-evolution.c: Likewise.
2885         * tree-sra.c: Likewise.
2886         * tree-ssa-address.c: Likewise.
2887         * tree-ssa-alias.c: Likewise.
2888         * tree-ssa-ccp.c: Likewise.
2889         * tree-ssa-coalesce.c: Likewise.
2890         * tree-ssa-copy.c: Likewise.
2891         * tree-ssa-copyrename.c: Likewise.
2892         * tree-ssa-dce.c: Likewise.
2893         * tree-ssa-dom.c: Likewise.
2894         * tree-ssa-dse.c: Likewise.
2895         * tree-ssa-forwprop.c: Likewise.
2896         * tree-ssa-ifcombine.c: Likewise.
2897         * tree-ssa-live.c: Likewise.
2898         * tree-ssa-loop-ch.c: Likewise.
2899         * tree-ssa-loop-im.c: Likewise.
2900         * tree-ssa-loop-ivcanon.c: Likewise.
2901         * tree-ssa-loop-ivopts.c: Likewise.
2902         * tree-ssa-loop-manip.c: Likewise.
2903         * tree-ssa-loop-niter.c: Likewise.
2904         * tree-ssa-loop-prefetch.c: Likewise.
2905         * tree-ssa-loop-unswitch.c: Likewise.
2906         * tree-ssa-loop.c: Likewise.
2907         * tree-ssa-math-opts.c: Likewise.
2908         * tree-ssa-operands.c: Likewise.
2909         * tree-ssa-phiopt.c: Likewise.
2910         * tree-ssa-phiprop.c: Likewise.
2911         * tree-ssa-pre.c: Likewise.
2912         * tree-ssa-propagate.c: Likewise.
2913         * tree-ssa-reassoc.c: Likewise.
2914         * tree-ssa-sccvn.c: Likewise.
2915         * tree-ssa-scopedtables.c: Likewise.
2916         * tree-ssa-sink.c: Likewise.
2917         * tree-ssa-strlen.c: Likewise.
2918         * tree-ssa-structalias.c: Likewise.
2919         * tree-ssa-tail-merge.c: Likewise.
2920         * tree-ssa-ter.c: Likewise.
2921         * tree-ssa-threadedge.c: Likewise.
2922         * tree-ssa-threadupdate.c: Likewise.
2923         * tree-ssa-uncprop.c: Likewise.
2924         * tree-ssa-uninit.c: Likewise.
2925         * tree-ssa.c: Likewise.
2926         * tree-ssanames.c: Likewise.
2927         * tree-stdarg.c: Likewise.
2928         * tree-streamer-in.c: Likewise.
2929         * tree-streamer-out.c: Likewise.
2930         * tree-streamer.c: Likewise.
2931         * tree-switch-conversion.c: Likewise.
2932         * tree-tailcall.c: Likewise.
2933         * tree-vect-data-refs.c: Likewise.
2934         * tree-vect-generic.c: Likewise.
2935         * tree-vect-loop-manip.c: Likewise.
2936         * tree-vect-loop.c: Likewise.
2937         * tree-vect-patterns.c: Likewise.
2938         * tree-vect-slp.c: Likewise.
2939         * tree-vect-stmts.c: Likewise.
2940         * tree-vectorizer.c: Likewise.
2941         * tree-vrp.c: Likewise.
2942         * tree.c: Likewise.
2943         * tsan.c: Likewise.
2944         * ubsan.c: Likewise.
2945         * valtrack.c: Likewise.
2946         * value-prof.c: Likewise.
2947         * var-tracking.c: Likewise.
2948         * varasm.c: Likewise.
2949         * varpool.c: Likewise.
2950         * vmsdbgout.c: Likewise.
2951         * vtable-verify.c: Likewise.
2952         * web.c: Likewise.
2953         * wide-int.cc: Likewise.
2954         * xcoffout.c: Likewise.
2955         * config/aarch64/aarch64-builtins.c: Likewise.
2956         * config/aarch64/aarch64.c: Likewise.
2957         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
2958         * config/alpha/alpha.c: Likewise.
2959         * config/arc/arc.c: Likewise.
2960         * config/arm/aarch-common.c: Likewise.
2961         * config/arm/arm-builtins.c: Likewise.
2962         * config/arm/arm-c.c: Likewise.
2963         * config/arm/arm.c: Likewise.
2964         * config/avr/avr-c.c: Likewise.
2965         * config/avr/avr-log.c: Likewise.
2966         * config/avr/avr.c: Likewise.
2967         * config/bfin/bfin.c: Likewise.
2968         * config/c6x/c6x.c: Likewise.
2969         * config/cr16/cr16.c: Likewise.
2970         * config/cris/cris.c: Likewise.
2971         * config/darwin-c.c: Likewise.
2972         * config/darwin.c: Likewise.
2973         * config/epiphany/epiphany.c: Likewise.
2974         * config/epiphany/mode-switch-use.c: Likewise.
2975         * config/epiphany/resolve-sw-modes.c: Likewise.
2976         * config/fr30/fr30.c: Likewise.
2977         * config/frv/frv.c: Likewise.
2978         * config/ft32/ft32.c: Likewise.
2979         * config/h8300/h8300.c: Likewise.
2980         * config/i386/i386-c.c: Likewise.
2981         * config/i386/i386.c: Likewise.
2982         * config/i386/msformat-c.c: Likewise.
2983         * config/i386/winnt-cxx.c: Likewise.
2984         * config/i386/winnt-stubs.c: Likewise.
2985         * config/i386/winnt.c: Likewise.
2986         * config/ia64/ia64-c.c: Likewise.
2987         * config/ia64/ia64.c: Likewise.
2988         * config/iq2000/iq2000.c: Likewise.
2989         * config/lm32/lm32.c: Likewise.
2990         * config/m32c/m32c-pragma.c: Likewise.
2991         * config/m32c/m32c.c: Likewise.
2992         * config/m32r/m32r.c: Likewise.
2993         * config/m68k/m68k.c: Likewise.
2994         * config/mcore/mcore.c: Likewise.
2995         * config/mep/mep-pragma.c: Likewise.
2996         * config/mep/mep.c: Likewise.
2997         * config/microblaze/microblaze-c.c: Likewise.
2998         * config/microblaze/microblaze.c: Likewise.
2999         * config/mips/mips.c: Likewise.
3000         * config/mmix/mmix.c: Likewise.
3001         * config/mn10300/mn10300.c: Likewise.
3002         * config/moxie/moxie.c: Likewise.
3003         * config/msp430/msp430-c.c: Likewise.
3004         * config/msp430/msp430.c: Likewise.
3005         * config/nds32/nds32-cost.c: Likewise.
3006         * config/nds32/nds32-fp-as-gp.c: Likewise.
3007         * config/nds32/nds32-intrinsic.c: Likewise.
3008         * config/nds32/nds32-isr.c: Likewise.
3009         * config/nds32/nds32-md-auxiliary.c: Likewise.
3010         * config/nds32/nds32-memory-manipulation.c: Likewise.
3011         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
3012         * config/nds32/nds32-predicates.c: Likewise.
3013         * config/nds32/nds32.c: Likewise.
3014         * config/nios2/nios2.c: Likewise.
3015         * config/nvptx/nvptx.c: Likewise.
3016         * config/pa/pa.c: Likewise.
3017         * config/pdp11/pdp11.c: Likewise.
3018         * config/rl78/rl78-c.c: Likewise.
3019         * config/rl78/rl78.c: Likewise.
3020         * config/rs6000/rs6000-c.c: Likewise.
3021         * config/rs6000/rs6000.c: Likewise.
3022         * config/rx/rx.c: Likewise.
3023         * config/s390/s390-c.c: Likewise.
3024         * config/s390/s390.c: Likewise.
3025         * config/sh/sh-c.c: Likewise.
3026         * config/sh/sh-mem.cc: Likewise.
3027         * config/sh/sh.c: Likewise.
3028         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
3029         * config/sh/sh_treg_combine.cc: Likewise.
3030         * config/sol2-c.c: Likewise.
3031         * config/sol2-cxx.c: Likewise.
3032         * config/sol2-stubs.c: Likewise.
3033         * config/sol2.c: Likewise.
3034         * config/sparc/sparc-c.c: Likewise.
3035         * config/sparc/sparc.c: Likewise.
3036         * config/spu/spu-c.c: Likewise.
3037         * config/spu/spu.c: Likewise.
3038         * config/stormy16/stormy16.c: Likewise.
3039         * config/tilegx/mul-tables.c: Likewise.
3040         * config/tilegx/tilegx-c.c: Likewise.
3041         * config/tilegx/tilegx.c: Likewise.
3042         * config/tilepro/mul-tables.c: Likewise.
3043         * config/tilepro/tilepro-c.c: Likewise.
3044         * config/tilepro/tilepro.c: Likewise.
3045         * config/v850/v850-c.c: Likewise.
3046         * config/v850/v850.c: Likewise.
3047         * config/vax/vax.c: Likewise.
3048         * config/visium/visium.c: Likewise.
3049         * config/vms/vms-c.c: Likewise.
3050         * config/vms/vms.c: Likewise.
3051         * config/vxworks.c: Likewise.
3052         * config/xtensa/xtensa.c: Likewise.
3053
3054 2015-07-07  Uros Bizjak  <ubizjak@gmail.com>
3055
3056         * config/i386/i386.md (*jcc_bt<mode>): Only split before reload.
3057         Remove operand constraints.  Change operand 2 predicate to
3058         nonmemory operand.  Limit const_int values to mode bitsize.  Only
3059         allow const_int values less than 32 when optimizing for size.
3060         (*jcc_bt<mode>_1, *jcc_bt<mode>_mask): Only split before reload.
3061         Remove operand constraints.
3062         (*bt<mode>): Use SImode for const_int values less than 32.
3063         (regmode): Remove mode attribute.
3064
3065 2015-07-07  Anatoly Sokolov  <aesok@post.ru>
3066
3067         * config/moxie/moxie.h (GO_IF_LEGITIMATE_ADDRESS): Remove macros.
3068         * config/moxie/moxie.c (moxie_reg_ok_for_base_p,
3069           moxie_legitimate_address_p): New functions.
3070           (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
3071
3072 2015-07-07  Tom de Vries  <tom@codesourcery.com>
3073
3074         PR tree-optimization/66642
3075         * tree-parloops.c (transform_to_exit_first_loop_alt): Update function
3076         header comment.  Rename split_edge variable to edge_at_split.  Split
3077         exit edge to create new loop exit bb.  Insert loop exit phis in new
3078         loop exit bb.
3079
3080 2015-07-07  Tom de Vries  <tom@codesourcery.com>
3081
3082         * tree-cfg.c (get_virtual_phi): New function.
3083         * tree-cfg.h (get_virtual_phi): Declare.
3084         * tree-ssa-loop-manip.c (replace_uses_in_dominated_bbs)
3085         (rewrite_virtuals_into_loop_closed_ssa): New function.
3086         * tree-ssa-loop-manip.h (rewrite_virtuals_into_loop_closed_ssa):
3087         Declare.
3088         * tree-parloops.c (replace_uses_in_bbs_by): Remove.
3089         (transform_to_exit_first_loop_alt): Use
3090         rewrite_virtuals_into_loop_closed_ssa.
3091
3092 2015-07-07  Richard Biener  <rguenther@suse.de>
3093
3094         * fold-const.c (fold_binary_loc): Move
3095         (X & C2) << C1 -> (X << C1) & (C2 << C1) simplification ...
3096         * match.pd: ... here.
3097         Add (X * C1) % C2 -> 0 simplification pattern derived from
3098         extract_muldiv_1.
3099
3100 2015-07-07  Kaz Kojima  <kkojima@gcc.gnu.org>
3101
3102         PR target/66780
3103         * config/sh/sh.md (symGOT_load): Revert a part of 2015-03-03
3104         change for target/65249.
3105
3106 2015-07-07  Paulo Matos  <pmatos@broadcom.com>
3107
3108         * symtab.c (address_matters_1): Fix typo in comment above.
3109         (can_increase_alignment_p): Likewise.
3110
3111 2015-07-07  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
3112
3113         * function.c (free_after_compilation): Clear PROP_cfg in
3114         f->curr_properties.
3115
3116 2015-07-07  Richard Biener  <rguenther@suse.de>
3117
3118         * tree-ssa-propagate.c (add_ssa_edge): Dump what edge list we
3119         add which use to.
3120         (add_control_edge): Remove excessive vertical space in dumping.
3121         (process_ssa_edge_worklist): Simulate at most one statement and
3122         return whether we did.  Do not simulate PHIs if they are in a
3123         BB not yet simulated.
3124         (ssa_propagate): Adjust to always drain the BB worklist whenever
3125         a BB is available there, likewise the VARYING edges list before
3126         the interesting edge list.
3127
3128 2015-07-07  Christian Bruel  <christian.bruel@st.com>
3129
3130         PR target/52144
3131         * config/arm/elf.h (TARGET_ASM_FILE_START_APP_OFF): Delete.
3132
3133 2015-07-07  Richard Biener  <rguenther@suse.de>
3134
3135         PR middle-end/66739
3136         * match.pd: Condition A - B ==/!= 0 -> A ==/!= B on single-use
3137         A - B.
3138
3139 2015-07-06  Uros Bizjak  <ubizjak@gmail.com>
3140
3141         * config/i386/i386.md (insv<mode>): Rename from insv.  Use SWI48
3142         modes for operands 0 and 3.  Use SImode for operands 2 and 3.
3143         Copy operand 0 to a temporary if !ext_register_operand.  Remove
3144         ancient extract_bit_field workaround.
3145         (insv<mode>_1): Rename from mov<mode>_insv_1.
3146         (*insvqi): Rename from *movqi_insv_2.
3147         * config/i386/i386.c (emit_i386_cw_initialization): Update calls
3148         for renamed insvsi_1.
3149         (promote_duplicated_reg): Ditto for renamed insv<mode>_1.
3150
3151 2015-07-06  Nathan Sidwell  <nathan@codesourcery.com>
3152
3153         * config/nvptx/nvptx.c (nvptx_reorg): Remove unused vars.  Fix
3154         call to nvptx_reorg_subreg.
3155
3156 2015-07-06  Jim Wilson  <jim.wilson@linaro.org>
3157
3158         * graphite-blocking.c (HAVE_isl): Include <stddef.h>.
3159         * graphite-dependencies.c, graphite-interchange.c,
3160         graphite-isl-ast-to-gimple.c, graphite-optimize-isl.c, graphite-poly.c,
3161         graphite-scop-detection.c, graphite-sese-to-poly.c, graphite.c:
3162         Likewise.
3163
3164 2015-07-06  Marc Glisse  <marc.glisse@inria.fr>
3165
3166         * match.pd: Remove element_mode inside HONOR_*.
3167         (~ (-A) -> A - 1, ~ (A - 1) -> -A): Handle complex types.
3168         (~X | X -> -1, ~X ^ X -> -1): Merge.
3169         * tree.c (build_each_one_cst): New function.
3170         * tree.h (build_each_one_cst): Likewise.
3171
3172 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
3173
3174         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
3175         PROCESSOR_IAMCU.
3176
3177 2015-07-06  Steve Ellcey  <sellcey@imgtec.com>
3178
3179         * config.gcc <mips*-*-*>: Add fused-madd.opt.
3180         * config/mips/mips.opt (mfused-madd): Remove.
3181         * config/mips/mips.c (mips_rtx_costs): Update cost calculations.
3182         * config/mips/mips.h (TARGET_MIPS8000): New.
3183         (ISA_HAS_FP_MADD4_MSUB4): Remove.
3184         (ISA_HAS_FP_MADDF_MSUBF): Remove.
3185         (ISA_HAS_FP_MADD3_MSUB3): Remove.
3186         (ISA_HAS_NMADD4_NMSUB4): Remove.
3187         (ISA_HAS_NMADD3_NMSUB3): Remove.
3188         (ISA_HAS_FUSED_MADD4): New.
3189         (ISA_HAS_UNFUSED_MADD4): New.
3190         (ISA_HAS_FUSED_MADDF): New.
3191         (ISA_HAS_FUSED_MADD3): New.
3192         * config/mips/mips.md: (fma<mode>4) Change from insn to expand.
3193         (*fma<mode>4_madd3) New.
3194         (*fma<mode>4_madd4) New.
3195         (*fma<mode>4_maddf) New.
3196         (fms<mode>4) New.
3197         (*fms<mode>4_msub3) New.
3198         (*fms<mode>4_msub4) New.
3199         (fnma<mode>4) New.
3200         (*fnma<mode>4_nmadd3) New.
3201         (*fnma<mode>4_nmadd4) New.
3202         (fnms<mode>4) New.
3203         (*fnms<mode>4_nmsub3) New.
3204         (*fnms<mode>4_nmsub4) New.
3205         (*madd4<mode>) Modify to be unfused only.
3206         (*msub4<mode>) Modify to be unfused only.
3207         (*nmadd4<mode>) Modify to be unfused only.
3208         (*nmsub4<mode>) Modify to be unfused only.
3209         (*madd3<mode>) Remove.
3210         (*msub3<mode>) Remove.
3211         (*nmadd3<mode>) Remove.
3212         (*nmsub3<mode>) Remove.
3213         (*nmadd3<mode>_fastmath) Remove.
3214         (*nmsub3<mode>_fastmath) Remove.
3215         (*nmadd4<mode>_fastmath) Update condition.
3216         (*nmsub4<mode>_fastmath) Update condition.
3217
3218 2015-07-06  Alan Lawrence  <alan.lawrence@arm.com>
3219
3220         PR target/65956
3221         * config/arm/arm.c (arm_needs_doubleword_align): Drop any outer
3222         alignment attribute, exploring one level down for records and arrays.
3223
3224 2015-07-06  Uros Bizjak  <ubizjak@gmail.com>
3225
3226         * config/i386/i386.md (extv<mode>): Rename from extv.  Use SWI24
3227         modes for operands 0 and 1.  Use SImode for operands 2 and 3.
3228         Copy operand 1 to a temporary if !ext_register_operand.  Remove
3229         ancient extract_bit_field workaround.
3230         (*extv<mode>): Rename from *mov<mode>_extv_1.
3231         (*extvqi): Rename from *movqi_extv_1.
3232         (extzv<mode>): Rename from extzv.  Use SWI248 modes for
3233         operands 0 and 1.  Use SImode for operands 2 and 3. Copy operand 1
3234         to a temporary if !ext_register_operand.  Remove ancient
3235         extract_bit_field workaround.
3236         (*extzv<mode>): Rename from *mov<mode>_extzv_1.
3237         (*extzvqi): Rename from *movqi_extzv_2.
3238         (*testqi_ext_3): Remove modes from const_int_operand predicated
3239         operands.  Add "n" constraint.
3240         (*btsq, *btrq, *btcq): Remove mode from const_0_to_63 predicated
3241         operand.  Add "J" constraint.
3242         (*btsq, *btrq, *btcq peephole2s): Remove mode from
3243         const_0_to_63 predicated operand.
3244         (regmode): New insn attribute.
3245         (*bt<mode>): Use SImode for operand 1.  Change operand 1 predicate
3246         to nonmemory_operand.  Use regmode insn attribute.
3247         (*jcc_bt<mode>_1): Convert operand 2 to SImode.
3248         (*jcc_bt<mode>_mask): Remove mode from operand 3.
3249         (*jcc_btsi_1, *jcc_btsi_mask_1): Remove patterns.
3250         (tbm_bextri_<mode>): Remove modes from const_0_to_255 predicated
3251         operands.  Use "N" constraint instead of "n".
3252
3253 2015-07-06  Alan Lawrence  <alan.lawrence@arm.com>
3254
3255         * config/arm/arm.md (movdi): Avoid odd-number ldrd/strd in ARM state.
3256
3257 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
3258
3259         PR target/66749
3260         * config/i386/i386.c (iamcu_cost): New.
3261         (m_IAMCU): Likewise.
3262         (initial_ix86_arch_features): Disable X86_ARCH_CMOV for m_IAMCU.
3263         (processor_target_table): Add an entry for "iamcu".
3264         (processor_alias_table): Likewise.
3265         (ix86_issue_rate): Handle PROCESSOR_IAMCU.
3266         (ix86_adjust_cost): Likewise.
3267         (ia32_multipass_dfa_lookahead): Likewise.
3268         * config/i386/i386.h (processor_type): Add PROCESSOR_IAMCU.
3269         * config/i386/x86-tune.def: Updated for m_IAMCU.
3270
3271 2015-07-06  Richard Biener  <rguenther@suse.de>
3272
3273         PR tree-optimization/66772
3274         * tree-ssa-ccp.c (ccp_visit_phi_node): Make sure that copy
3275         values are available in the PHI node BB when there are
3276         still unexecutable edges.
3277
3278 2015-07-06  Richard Biener  <rguenther@suse.de>
3279
3280         PR tree-optimization/66767
3281         * tree-vect-loop-manip.c (vect_create_cond_for_align_checks):
3282         Make sure to build the alignment test on a SSA name without
3283         final alignment info valid only if the alignment test
3284         evaluates to true.
3285
3286 2015-07-06  Bernd Schmidt  <bernds@codesourcery.com>
3287
3288         PR target/66620
3289         * config/bfin/bfin.c (hwloop_optimize): Create new bb between jump and
3290         loop start when inserting LSETUP.
3291
3292 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
3293
3294         PR target/53383
3295         * config/i386/i386.c (ix86_option_override_internal): Allow
3296         -mincoming-stack-boundary=3 for 64-bit if SSE is disabled.
3297
3298 2015-07-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3299
3300         * read-md.c (decimal_string): Rename to ...
3301         (md_decimal_string): ... this.
3302         (handle_enum): Reflect this.
3303
3304 2015-07-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>
3305
3306         PR target/66731
3307         * config/aarch64/aarch64.md (fnmul<mode>3): Handle -frounding-math.
3308
3309 2015-07-06  Richard Biener  <rguenther@suse.de>
3310
3311         PR middle-end/66759
3312         * match.pd: Add missing constraint of y to REAL_CST in
3313         REAL_CST - x CMP y to y - CST CMP x simplification.
3314
3315 2015-07-06  Eric Botcazou  <ebotcazou@adacore.com>
3316
3317         PR tree-optimization/66757
3318         * match.pd: Add missing condition to ~X ^ C -> X ^ ~C.
3319
3320 2015-07-05  Chung-Lin Tang  <cltang@codesourcery.com>
3321             Sandra Loosemore <sandra@codesourcery.com>
3322
3323         * config/nios2/nios2-protos.h (nios2_symbol_ref_in_small_data_p):
3324         Delete extern declaration.
3325         (gprel_constant_p): Add extern declaration.
3326         * config/nios2/constraints.md ("S"): Use gprel_constant_p
3327         instead of nios2_symbol_ref_in_small_data_p.
3328         * config/nios2/nios2.c (nios2_legitimate_address_p): Likewise.
3329         (nios2_symbol_ref_in_small_data_p): Make static.
3330         (gprel_constant_p): Make non-static.
3331
3332 2015-07-05  Gerald Pfeifer  <gerald@pfeifer.com>
3333
3334         * doc/fragments.texi (Target Fragment): Convert debian.org
3335         link to use https.
3336         * doc/install.texi (Configuration): Ditto.
3337
3338 2015-07-05  Jakub Jelinek  <jakub@redhat.com>
3339
3340         PR tree-optimization/66718
3341         * tree-vect-stmts.c (vectorizable_call): Replace uses of
3342         GOMP_SIMD_LANE outside of loop with vf - 1 rather than 0.
3343
3344         PR tree-optimization/66718
3345         * tree-vect-stmts.c (vectorizable_assignment, vectorizable_store,
3346         vectorizable_load, vectorizable_condition): Move vectype,
3347         nunits, ncopies computation after checking what kind of statement
3348         stmt is.
3349
3350 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3351
3352         * target-insns.def (extv, extzv, insv): New targetm instruction
3353         patterns.
3354         * optabs.c (get_extraction_insn): Use them instead of HAVE_*/gen_*
3355         interface.
3356         * recog.c (simplify_while_replacing): Likewise.
3357
3358 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3359
3360         * target-insns.def (doloop_begin, doloop_end): New targetm
3361         instruction patterns.
3362         * loop-init.c: Include target.h.
3363         (pass_loop2::gate): Use the new targetm patterns instead of
3364         HAVE_*/gen_* interface.
3365         (pass_rtl_doloop::gate): Likewise.
3366         (pass_rtl_doloop::execute): Remove preprocessor condition.
3367         * hw-doloop.c: Build unconditionally.
3368         * loop-doloop.c: Likewise.
3369         (doloop_optimize): Use the new targetm patterns instead of
3370         HAVE_*/gen_* interface.
3371         (doloop_modify): Likewise. Change type of doloop_seq to rtx_insn *.
3372         * modulo-sched.c (doloop_register_get): Likewise.
3373
3374 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3375
3376         * target-insns.def (clear_cache): New targetm instruction pattern.
3377         * builtins.c (expand_builtin___clear_cache): Use it instead of
3378         HAVE_*/gen_* interface.
3379
3380 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3381
3382         * target-insns.def (allocate_stack, check_stack, probe_stack)
3383         (probe_stack_address, split_stack_prologue, split_stack_space_check):
3384         New targetm instruction patterns.
3385         * explow.c (allocate_dynamic_stack_space): Use them instead of
3386         HAVE_*/gen_* interface.
3387         (emit_stack_probe): Likewise.
3388         (probe_stack_range): Likewise.
3389         * function.c (thread_prologue_and_epilogue_insns): Likewise.
3390
3391 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3392
3393         * target-insns.def (stack_protect_set, stack_protect_test): New
3394         targetm instruction patterns.
3395         * cfgexpand.c (stack_protect_prologue): Use them instead of
3396         HAVE_*/gen_* interface.
3397         * function.c (stack_protect_epilogue): Likewise.
3398
3399 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3400
3401         * expr.h (gen_move_insn_uncast): Delete.
3402         * expr.c (gen_move_insn_uncast): Delete.
3403
3404 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3405
3406         * target-insns.def (restore_stack_block, restore_stack_function)
3407         (restore_stack_nonlocal, save_stack_block, save_stack_function)
3408         (save_stack_nonlocal): New targetm instruction patterns.
3409         * builtins.c (expand_builtin_apply): Use them instead of
3410         HAVE_*/gen_* interface.
3411         * explow.c (emit_stack_save, emit_stack_restore): Likewise.
3412
3413 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3414
3415         * target-insns.def (trap): New targetm instruction pattern.
3416         * builtins.c (expand_builtin_trap): Use it instead of HAVE_*/gen_*
3417         interface.
3418         * explow.c (allocate_dynamic_stack_space): Likewise.
3419         * ifcvt.c (find_if_header): Likewise.
3420
3421 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3422
3423         * target-insns.def (prefetch): New targetm instruction pattern.
3424         * tree-ssa-loop-prefetch.c: Include targeth.
3425         (tree_ssa_prefetch_arrays): Use prefetch targetm pattern instead
3426         of HAVE_*/gen_* interface.
3427         * builtins.c (expand_builtin_prefetch): Likewise.
3428         * toplev.c (process_options): Likewise.
3429
3430 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3431
3432         * target-insns.def (untyped_call, untyped_return): New targetm
3433         instruction patterns.
3434         * builtins.c (expand_builtin_apply): Use them instead of
3435         HAVE_*/gen_* interface.
3436         (result_vector): Define unconditionally.
3437
3438 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3439
3440         * target-insns.def (builtin_longjmp, builtin_setjmp_receiver)
3441         (builtin_setjmp_setup, exception_receiver, nonlocal_goto)
3442         (nonlocal_goto_receiver): New targetm instruction patterns.
3443         * builtins.c (expand_builtin_setjmp_setup): Use them instead
3444         of HAVE_*/gen_* interface.
3445         (expand_builtin_setjmp_receiver): Likewise.
3446         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
3447         * except.c (expand_dw2_landing_pad_for_region): Likewise.
3448
3449 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3450
3451         * target.def: Add code_for_* hooks.
3452         * gentarget-def.c (def_target_insn): Add TARGET_CODE_FOR_* macros.
3453         * defaults.h (HAVE_tablejump, gen_tablejump): Delete.
3454         * target-insns.def (casesi, tablejump): New targetm instruction
3455         patterns.
3456         * expr.c (try_casesi): Use them instead of HAVE_*/gen_* interface.
3457         (do_tablejump): Likewise.
3458         * stmt.c (expand_switch_as_decision_tree_p): Likewise.
3459         (expand_sjlj_dispatch_table): Likewise.
3460         * targhooks.c (default_case_values_threshold): Likewise.
3461
3462 2015-07-04  Sandra Loosemore  <sandra@codesourcery.com>
3463
3464         * config/nios2/nios2.c (save_reg, restore_reg): Use plus_constant.
3465         Use rtx_insn * instead of rtx.
3466         (nios2_emit_add_constant): Use rtx_insn * instead of rtx.
3467         (nios2_expand_prologue, nios2_expand_epilogue): Likewise.
3468         (nios2_call_tls_get_addr): Likewise.
3469         (nios2_emit_expensive_div): Likewise.
3470         (nios2_emit_move_sequence): Change return type to bool.
3471         * config/nios2/nios2-protos.h (nios2_emit_move_sequence):
3472         Change return type to bool.
3473
3474 2015-07-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3475
3476         PR target/66747
3477         * config/mips/mips.c (mips_find_gp_ref): Handle instruction sequences.
3478
3479 2015-07-04  John David Anglin  <danglin@gcc.gnu.org>
3480
3481         PR target/66114
3482         * config/pa/pa.md (indirect_jump): Use pmode_register_operand instead
3483         of register_operand.  Remove constraint.
3484
3485 2015-07-04  Marc Glisse  <marc.glisse@inria.fr>
3486
3487         * tree-cfg.c (verify_gimple_assign_ternary) <VEC_COND_EXPR>: Check
3488         the first argument.
3489
3490 2015-07-03  Paolo Carlini  <paolo.carlini@oracle.com>
3491
3492         * attribs.c (decl_attributes): Guard inform with the return value
3493         of the preceding warning.
3494
3495 2015-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
3496
3497         * doc/invoke.texi (moverride): Move to correct section.
3498
3499 2015-07-03  Richard Biener  <rguenther@suse.de>
3500
3501         * genmatch.c (commutative_tree_code, commutative_ternary_tree_code):
3502         Copy from tree.c
3503         (dt_operand::gen_gimple_expr): After valueizing operands
3504         re-canonicalize operand order for commutative tree codes.
3505
3506 2015-07-03  H.J. Lu  <hongjiu.lu@intel.com>
3507
3508         PR target/66746.
3509         * config/i386/ia32intrin.h (__crc32b): Don't define if __iamcu__
3510         is defined.
3511         (__crc32w): Likewise.
3512         (__crc32d): Likewise.
3513         (__rdpmc): Likewise.
3514         (__rdtscp): Likewise.
3515         (_rdpmc): Likewise.
3516         (_rdtscp): Likewise.
3517         * config/i386/x86intrin.h: Only include ia32intrin.h if __iamcu__
3518         is defined.
3519
3520 2015-07-03  Richard Biener  <rguenther@suse.de>
3521
3522         * fold-const.c (fold_mathfn_compare): Remove.
3523         (fold_inf_compare): Likewise.
3524         (fold_comparison): Move floating point comparison simplifications...
3525         * match.pd: ... to patterns here.  Introduce simple_comparisons
3526         operator list and use it for patterns formerly in fold_comparison.
3527
3528 2015-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
3529
3530         PR tree-optimization/66119
3531         * toplev.c (process_options): Don't set up default values for
3532         the sra_max_scalarization_size_{speed,size} parameters.
3533         * tree-sra (analyze_all_variable_accesses): If no values
3534         have been set for the sra_max_scalarization_size_{speed,size}
3535         parameters, call get_move_ratio to get target defaults.
3536
3537 2015-07-03  Richard Biener  <rguenther@suse.de>
3538
3539         * fold-const.c (fold_binary_loc): Move (T)ptr & CST folding...
3540         * match.pd: ... here.
3541
3542 2015-07-03  Gerald Pfeifer  <gerald@pfeifer.com>
3543
3544         PR target/37072
3545         * doc/invoke.texi (i386 and x86-64 Options): -mno-fancy-math-387
3546         is not actually the default on FreeBSD.
3547
3548 2015-07-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3549
3550         * config/rs6000/rs6000-builtin.def (CMPGE_16QI): New built-in
3551         definition.
3552         (CMPGE_8HI): Likewise.
3553         (CMPGE_4SI): Likewise.
3554         (CMPGE_2DI): Likewise.
3555         (CMPGE_U16QI): Likewise.
3556         (CMPGE_U8HI): Likewise.
3557         (CMPGE_U4SI): Likewise.
3558         (CMPGE_U2DI): Likewise.
3559         (CMPLE_16QI): Likewise.
3560         (CMPLE_8HI): Likewise.
3561         (CMPLE_4SI): Likewise.
3562         (CMPLE_2DI): Likewise.
3563         (CMPLE_U16QI): Likewise.
3564         (CMPLE_U8HI): Likewise.
3565         (CMPLE_U4SI): Likewise.
3566         (CMPLE_U2DI): Likewise.
3567         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
3568         overloads for ALTIVEC_BUILTIN_VEC_CMPGE and
3569         ALTIVEC_BUILTIN_VEC_CMPLE.
3570         * config/rs6000/vector.md (vector_ge<mode>): Restrict to
3571         floating-point vector modes.
3572         (vector_nlt<mode>): New define_expand.
3573         (vector_nltu<mode>): Likewise.
3574         (vector_ngt<mode>): Likewise.
3575         (vector_ngtu<mode>): Likewise.
3576
3577 2015-07-02  Segher Boessenkool  <segher@kernel.crashing.org>
3578
3579         PR rtl-optimization/66706
3580         * combine.c (make_compound_operation): If an AND of SUBREG of
3581         LSHIFTRT does not simplify, see if just the AND of SUBREG does.
3582
3583 2015-07-02  Alan Lawrence  <alan.lawrence@arm.com>
3584
3585         * tree-pass.h (make_pass_ch_vect): New.
3586         * passes.def: Add pass_ch_vect just before pass_if_conversion.
3587
3588         * tree-ssa-loop-ch.c (ch_base, pass_ch_vect, pass_data_ch_vect,
3589         pass_ch::process_loop_p, pass_ch_vect::process_loop_p,
3590         make_pass_ch_vect): New.
3591         (pass_ch): Extend ch_base.
3592
3593         (pass_ch::execute): Move all but loop_optimizer_init/finalize to...
3594         (ch_base::copy_headers): ...here.
3595
3596 2015-07-02  Richard Biener  <rguenther@suse.de>
3597
3598         * builtins.c (get_pointer_alignment_1): Handle POINTER_PLUS_EXPR.
3599         * fold-const.c (get_pointer_modulus_and_residue): Remove.
3600         (fold_binary_loc): Implement (T)ptr & CST in terms of
3601         get_pointer_alignment_1.
3602         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop):
3603         Make sure to build the alignment test on a SSA name without
3604         final alignment info valid only after the prologue.
3605
3606 2015-07-02  Hans-Peter Nilsson  <hp@axis.com>
3607
3608         * config/cris/cris.md ("epilogue"): Remove condition.
3609         ("prologue"): Ditto.
3610
3611 2015-07-02  Richard Biener  <rguenther@suse.de>
3612
3613         * tree-ssa-dom.c (build_and_record_new_cond): Add optional
3614         parameter to record a condition that is false.
3615         (record_conditions): When recording an extra NE_EXPR that is
3616         true also record a EQ_EXPR that is false.
3617
3618 2015-07-02  Bin Cheng  <bin.cheng@arm.com>
3619
3620         * tree-ssa-loop-ivopts.c (struct ivopts_data): New field iv_obstack.
3621         (tree_ssa_iv_optimize_init): Initialize iv_obstack.
3622         (alloc_iv): New parameter.  Allocate struct iv using obstack_alloc.
3623         (set_iv, find_interesting_uses_address, add_candidate_1): New
3624         argument to alloc_iv.
3625         (find_interesting_uses_op, find_interesting_uses_cond): Don't
3626         duplicate struct iv.
3627         (free_loop_data): Don't free struct iv explicitly.
3628         (tree_ssa_iv_optimize_finalize): Free iv_obstack.
3629
3630 2015-07-01  DJ Delorie  <dj@redhat.com>
3631
3632         * config/s390/tpf.h (LIBSTDCXX): Change to CPP1.
3633         (LIB_SPEC): Add.
3634         (SUPPORTS_DISCRIMINATOR): Define.
3635
3636 2015-07-01  Richard Sandiford  <richard.sandiford@arm.com>
3637
3638         PR bootstrap/66685
3639         * rtl.c (classify_insn): Only return JUMP_INSN for parallel returns if
3640         there are no CALLs in the same pattern.
3641
3642 2015-07-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3643
3644         PR rtl-optimization/61047
3645         * rtlanal.c (get_initial_register_offset): New function.
3646         (rtx_addr_can_trap_p_1): Check offsets of stack references.
3647
3648 2015-07-01  Richard Biener  <rguenther@suse.de>
3649
3650         * fold-const.c (fold_comparison): Move X - Y CMP 0 -> X CMP Y,
3651         X * C1 CMP 0 -> X CMP 0, X CMP X, ~X CMP ~Y -> Y CMP X and
3652         ~X CMP C -> X CMP' ~C to ...
3653         * match.pd: ... patterns here.
3654
3655 2015-07-01  Nick Clifton  <nickc@redhat.com>
3656
3657         * config/msp430/msp430.md (zero_extendhipsi2): Use MOVX.A to store
3658         a 16-bit value into a 20-bit memory slot.
3659
3660 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
3661
3662         * doc/sourcebuild.texi (AArch64-specific attributes): Document
3663         "aarch64_tiny", "aarch64_small", "aarch64_large",
3664         "aarch64_little_endian", "aarch64_big_endian".
3665
3666 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
3667
3668         * doc/sourcebuild.texi (AArch64-specific attributes): New subsection.
3669         Document "aarch64_small_fpic".
3670
3671 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
3672
3673         * configure.ac: Add check for aarch64 assembler -fpic relocation
3674         modifier support.
3675         * configure: Regenerate.
3676         * config.in: Regenerate.
3677         * config/aarch64/aarch64.c (initialize_aarch64_code_model): Fall back
3678         to -fPIC if not support of -fpic relocation modifier in assembler.
3679
3680 2015-07-01  Richard Sandiford  <richard.sandiford@arm.com>
3681
3682         PR bootstrap/66685
3683         * rtl.c (classify_insn): Handle returns in PARALLELs.
3684
3685 2015-07-01  Eric Botcazou  <ebotcazou@adacore.com>
3686
3687         PR middle-end/66633
3688         * tree-nested.c (convert_nonlocal_omp_clauses): Initialize need_chain
3689         to true if the function is nested and if not optimizing.
3690         (convert_local_omp_clauses): Initialize need_frame to true if the
3691         function contains nested functions and if not optimizing.
3692
3693 2015-07-01  Richard Biener  <rguenther@suse.de>
3694
3695         * fold-const.c (fold_binary_loc): Move ~X ^ X -> -1 and
3696         (X & Y) ^ Y -> ~X & Y transforms to ...
3697         * match.pd: ... here.
3698
3699 2015-07-01  Richard Biener <rguenther@suse.de>
3700
3701         * genmatch.c (expr::gen_transform): Shortcut re-simplifying
3702         of converts to avoid uninteresting noise from the conversion
3703         simplifying patterns.
3704
3705 2015-06-30  Sandra Loosemore <sandra@codesourcery.com>
3706
3707         * config/c6x/c6x.c (try_rename_operands): Do not depend on
3708         gcc_assert evaluating its argument for side-effect.
3709
3710 2015-06-30  Kaz Kojima  <kkojima@gcc.gnu.org>
3711
3712         PR target/64833
3713         * config/sh/sh.md (casesi_worker_1): Set length to 8 when
3714         flag_pic is set.
3715
3716 2015-06-30  Eric Botcazou  <ebotcazou@adacore.com>
3717
3718         * lto-streamer-out.c (class DFS): Adjust hash_scc method.
3719         (DFS::DFS): Pass this_ref_p and ref_p to hash_scc.
3720         (hash_scc): Add this_ref_p and ref_p parameters and pass them
3721         to the inner DFS walk.
3722
3723 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
3724
3725         * target-insns.def (jump): New targetm instruction pattern.
3726         * bb-reorder.c (get_uncond_jump_length): Use targetm.gen_jump
3727         instead of gen_jump.
3728         (fix_up_crossing_landing_pad): Likewise.
3729         (add_labels_and_missing_jumps): Likewise.
3730         (fix_crossing_conditional_branches): Likewise.
3731         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
3732         (force_nonfallthru_and_redirect): Likewise.
3733         * cse.c (cse_insn): Likewise.
3734         * expmed.c (expand_divmod): Likewise.
3735         * expr.c (store_expr_with_bounds, expand_expr_real_2): Likewise.
3736         * haifa-sched.c (init_before_recovery): Likewise.
3737         (sched_create_recovery_edges): Likewise.
3738         * ifcvt.c (find_cond_trap): Likewise.
3739         * optabs.c (expand_doubleword_shift, expand_doubleword_clz): Likewise.
3740         (expand_float, expand_fix): Likewise.
3741         * stmt.c (emit_jump): Likewise.
3742
3743 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
3744
3745         * defaults.h (HAVE_load_multiple, gen_load_multiple)
3746         (HAVE_store_multiple, gen_store_multiple): Delete.
3747         * target-insns.def (load_multiple, store_multiple): New targetm
3748         instruction patterns.
3749         * expr.c (move_block_to_reg, move_block_from_reg): Use them instead
3750         of HAVE_*/gen_* interface.
3751
3752 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
3753
3754         * defaults.h (HAVE_mem_thread_fence, gen_mem_thread_fence)
3755         (HAVE_memory_barrier, gen_memory_barrier, HAVE_mem_signal_fence)
3756         (gen_mem_signal_fence): Delete.
3757         * target-insns.def (mem_signal_fence, mem_thread_fence)
3758         (memory_barrier): New targetm instruction patterns.
3759         * optabs.c (expand_mem_thread_fence): Use them instead of HAVE_*/gen_*
3760         interface.
3761         (expand_mem_signal_fence): Likewise.
3762
3763 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
3764
3765         * defaults.h (HAVE_epilogue, gen_epilogue): Delete.
3766         * target-insns.def (epilogue, prologue, sibcall_prologue): New
3767         targetm instruction patterns.
3768         * alias.c (init_alias_analysis): Use them instead of HAVE_*/gen_*
3769         interface.
3770         * calls.c (expand_call): Likewise.
3771         * cfgrtl.c (cfg_layout_finalize): Likewise.
3772         * df-scan.c (df_get_entry_block_def_set): Likewise.
3773         (df_get_exit_block_use_set): Likewise.
3774         * dwarf2cfi.c (pass_dwarf2_frame::gate): Likewise.
3775         * final.c (final_start_function): Likewise.
3776         * function.c (thread_prologue_and_epilogue_insns): Likewise.
3777         (reposition_prologue_and_epilogue_notes): Likewise.
3778         * reorg.c (find_end_label): Likewise.
3779         * toplev.c (process_options): Likewise.
3780
3781 2015-06-30  David Malcolm  <dmalcolm@redhat.com>
3782
3783         * typed-splay-tree.h: New file.
3784
3785 2015-06-30  Vladimir Makarov  <vmakarov@redhat.com>
3786
3787         PR debug/66691
3788         * lra-int.h (lra_substitute_pseudo): Add a parameter.
3789         (lra_substitute_pseudo_within_insn): Ditto.
3790         * lra.c (lra_substitute_pseudo): Add a parameter.  Simplify subreg
3791         of constant.
3792         (lra_substitute_pseudo_within_insn): Add a parameter.  Transfer it
3793         to lra_substitute_pseudo.
3794         * lra-lives.c (process_bb_lives): Add an argument to
3795         lra_substitute_pseudo_within_insn call.
3796         * lra-constraints.c (inherit_reload_reg, split_reg): Add an
3797         argument to lra_substitute_pseudo and
3798         lra_substitute_pseudo_within_insn calls.
3799         (remove_inheritance_pseudos, undo_optional_reloads): Ditto.
3800
3801 2015-06-30  H.J. Lu  <hongjiu.lu@intel.com>
3802
3803         * configure: Regenerated.
3804
3805 2015-06-30  H.J. Lu  <hongjiu.lu@intel.com>
3806
3807         * config.gcc: Support i[34567]86-*-elfiamcu target.
3808         * config/i386/iamcu.h: New.
3809         * config/i386/i386.opt: Add -miamcu.
3810         * doc/invoke.texi: Document -miamcu.
3811         * common/config/i386/i386-common.c  (ix86_handle_option): Turn
3812         off x87/MMX/SSE/AVX codegen for -miamcu.
3813         * config/i386/i386-c.c (ix86_target_macros_internal): Define
3814         __iamcu/__iamcu__ for -miamcu.
3815         * config/i386/i386.h (PREFERRED_STACK_BOUNDARY_DEFAULT): Set
3816         to MIN_STACK_BOUNDARY if TARGET_IAMCU is true.
3817         (BIGGEST_ALIGNMENT): Set to 32 if TARGET_IAMCU is true.
3818         * config/i386/i386.c (ix86_option_override_internal): Ignore and
3819         warn -mregparm for Intel MCU.  Turn on -mregparm=3 for Intel
3820         MCU by default.  Default long double to 64-bit for Intel MCU.
3821         Turn on -freg-struct-return for Intel MCU.  Issue an error when
3822         -miamcu is used in 64-bit or x32 mode or if x87, MMX, SSE or
3823         AVX is turned on.
3824         (function_arg_advance_32): Pass value whose size is no larger
3825         than 8 bytes in registers for Intel MCU.
3826         (function_arg_32): Likewise.
3827         (ix86_return_in_memory): Return value whose size is no larger
3828         than 8 bytes in registers for Intel MCU.
3829         (iamcu_alignment): New function.
3830         (ix86_data_alignment): Call iamcu_alignment if TARGET_IAMCU is
3831         true.
3832         (ix86_local_alignment): Don't increase alignment for Intel MCU.
3833         (x86_field_alignment): Return iamcu_alignment if TARGET_IAMCU is
3834         true.
3835
3836 2015-06-30  Marek Polacek  <polacek@redhat.com>
3837
3838         * match.pd (X - (X / Y) * Y): Use convert1 and convert2.  Convert
3839         both operands of the resulting expression.
3840
3841         * match.pd (~x | x): Don't use tree_nop_conversion_p.  Build
3842         the final expression with the operand's type and then convert
3843         it to the type of the expression.
3844
3845 2015-06-30  Richard Biener  <rguenther@suse.de>
3846
3847         * fold-const.c (fold_binary_loc): Move ~x & ~y -> ~(x | y) and
3848         ~x | ~y -> ~(x & y), (x & CST) ^ (x & CST2) -> (x & CST) | (x & CST2),
3849         (X | Y) ^ X -> Y & ~ X, ~X ^ ~Y to X ^ Y and ~X ^ C to X ^ ~C ...
3850         * match.pd: ... to patterns here.
3851
3852 2015-06-30  Richard Biener  <rguenther@suse.de>
3853
3854         PR tree-optimization/66704
3855         * tree-vect-data-refs.c (vect_setup_realignment): Use
3856         make_ssa_name for non-SSA name source.
3857
3858 2015-06-30  Jakub Jelinek  <jakub@redhat.com>
3859
3860         PR middle-end/66702
3861         * omp-low.c (simd_clone_adjust): Handle addressable linear
3862         or uniform parameters or non-gimple type uniform parameters.
3863
3864 2015-06-30  Richard Biener  <rguenther@suse.de>
3865
3866         * fold-const.c (fold_unary_loc): Move abs(abs(x)) -> abs(x),
3867         ~ (-A) to A - 1, ~ (A - 1) or ~ (A + -1) to -A and some cases of
3868         ~(X ^ Y) to ~X ^ Y or X ^ ~Y if ~X or ~Y simplify to ...
3869         * match.pd: ... here.
3870         Add a few cases of A - B -> A + (-B) when B "easily" negates.
3871         Move (x & y) | x -> x and friends before
3872         (x | CST1) & CST2 -> (x & CST2) | (CST1 & CST2).
3873
3874 2015-06-30  Eric Botcazou  <ebotcazou@adacore.com>
3875
3876         * config/sparc/leon.md (leon_load): Enable for all LEON variants if
3877         -mfix-ut699 is not specified.
3878         (leon3_load): Rename into...
3879         (ut699_load): ...this.  Enable for all LEON variants if -mfix-ut699
3880         is specified.
3881
3882 2015-06-30  Marek Polacek  <polacek@redhat.com>
3883
3884         * fold-const.c (fold_binary_loc): Move ~X | X folding ...
3885         * match.pd: ... here.
3886
3887 2015-06-30  Richard Biener  <rguenther@suse.de>
3888
3889         * target-insns.def (canonicalize_funcptr_for_compare): Add.
3890         * fold-const.c (build_range_check): Replace uses of
3891         HAVE_canonicalize_funcptr_for_compare.
3892         (fold_widened_comparison): Likewise.
3893         (fold_sign_changed_comparison): Likewise.
3894         * dojump.c: Include "target.h".
3895         (do_compare_and_jump): Replace uses of
3896         HAVE_canonicalize_funcptr_for_compare and
3897         gen_canonicalize_funcptr_for_compare.
3898         * expr.c (do_store_flag): Likewise.
3899
3900 2015-06-30  Tom de Vries  <tom@codesourcery.com>
3901
3902         PR tree-optimization/66652
3903         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
3904         max_loop_iterations to determine if nit + 1 overflows.
3905
3906 2015-06-30  Richard Biener  <rguenther@suse.de>
3907
3908         * tree-vrp.c (register_edge_assert_for_2): Also register
3909         asserts for dominating conversion results.
3910
3911 2015-06-30  Bin Cheng  <bin.cheng@arm.com>
3912
3913         * tree-ssa-loop-ivopts.c (record_sub_use): Don't reset ssa_name
3914         field in struct iv.
3915
3916 2015-06-29  Jack Howarth  <howarth.at.gcc@gmail.com>
3917
3918         PR target/66509
3919         * configure.ac: Fix filds and fildq test for 64-bit.
3920         * configure: Regenerated.
3921
3922 2015-06-29  Nathan Sidwell  <nathan@codesourcery.com>
3923
3924         * config/nvptx/nvptx.md (nvptx_reorg_subreg): New fn, broken out of ...
3925         (nvptx_reorg): Here.  Keep the non-subreg pieces.
3926
3927 2015-06-29  H.J. Lu  <hongjiu.lu@intel.com>
3928
3929         * config/gnu-user.h (GNU_USER_TARGET_ENDFILE_SPEC): Use
3930         PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
3931
3932 2015-06-29  Uros Bizjak  <ubizjak@gmail.com>
3933
3934         * config/i386/i386.md (*jcc_1): Use %! in asm template.
3935         Set attribute "length_nobnd" instead of "length".
3936         (*jcc_2): Ditto.
3937         (jump): Ditto.
3938         (*jcc_1_bnd, *jcc_2_bnd, jump_bnd): Remove insn patterns.
3939
3940 2015-06-29  Sandra Loosemore  <sandra@codesourcery.com>
3941
3942         * config/nios2/nios2.c (nios2_delegitimize_address): Make
3943         assert less restrictive.
3944
3945 2015-06-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3946
3947         PR fortran/66605
3948         * cgraphunit.c (cgraph_node::finalize_function): Do not call
3949         do_warn_unused_parameter.
3950         * function.c (do_warn_unused_parameter): Move from here.
3951         * function.h (do_warn_unused_parameter): Do not declare.
3952
3953 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
3954
3955         PR target/65697
3956         * gcc.target/arm/armv-sync-comp-swap.c: New.
3957         * gcc.target/arm/armv-sync-op-acquire.c: New.
3958         * gcc.target/arm/armv-sync-op-full.c: New.
3959         * gcc.target/arm/armv-sync-op-release.c: New.
3960
3961 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
3962
3963         PR target/65697
3964         * config/armc/arm.c (arm_split_compare_and_swap): For ARMv8, replace an
3965         initial acquire barrier with final barrier.
3966
3967 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
3968
3969         PR target/65697
3970         * config/armc/arm.c (arm_split_atomic_op): For ARMv8, replace an
3971         initial acquire barrier with final barrier.
3972
3973 2015-06-29  Richard Henderson  <rth@redhat.com>
3974
3975         * config/i386/constraints.md (Bf): New constraint.
3976         * config/i386/i386-c.c (ix86_target_macros): Define
3977         __GCC_ASM_FLAG_OUTPUTS__.
3978         * config/i386/i386.c (ix86_md_asm_adjust): Handle =@cc* constraints
3979         as flags outputs.
3980         * doc/extend.texi (FlagOutputOperands): Document them.
3981
3982 2015-06-29  Jiong Wang  <jiong.wang@arm.com>
3983
3984         * config/arch64/aarch64.md (UNSPEC_TLSLE): New enumeration.
3985         * config/arch64/aarch64.md (tlsle_small): Rename to tlsle and use new
3986         unspec name.
3987         (tlsle_small_<mode>): Rename to tlsle_<mode> and use new unspec name.
3988         * config/arch64/aarch64-protos.h (arch64_symbol_type): Rename
3989         SYMBOL_SMALL_TPREL to SYMBOL_TLSLE.
3990         (aarch64_symbol_context): Ditto.
3991         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto
3992         and use new pattern name.
3993         (aarch64_expand_mov_immediate): Ditto.
3994         (aarch64_print_operand): Ditto.
3995         (aarch64_classify_tls_symbol): Ditto.
3996
3997 2015-06-29  Marek Polacek  <polacek@redhat.com>
3998             Marc Glisse  <marc.glisse@inria.fr>
3999
4000         * fold-const.c (fold_binary_loc): Move X - (X / Y) * Y -> X % Y to ...
4001         * match.pd: ... pattern here.
4002
4003 2015-06-29  Tom de Vries  <tom@codesourcery.com>
4004
4005         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Simplify
4006         function structure.
4007
4008 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
4009
4010         * doc/invoke.texi (Aarch64 Options, -march): Split out arch and
4011         feature description, split out the native option, add a link to
4012         the feature documentation, rearrange and slightly rewrite text.
4013         (Aarch64 options, -mcpu): Likewise.
4014         (Aarch64 options, Feature Modifiers): Add an anchor.  Mention
4015         +rdma implies Adv. SIMD.
4016
4017 2015-06-29  Marek Polacek  <polacek@redhat.com>
4018
4019         PR c/66322
4020         * function.c (stack_protect_epilogue): Remove a cast to int.
4021         * doc/invoke.texi: Update -Wswitch-bool description.
4022
4023 2015-06-29  Richard Biener  <rguenther@suse.de>
4024
4025         * genmatch.c (add_operator): Treat ADDR_EXPR as atom.
4026         * fold-const.c (fold_binary_loc): Move &A - &B simplification
4027         via ptr_difference_const ...
4028         * match.pd: ... here.
4029         When matching (X ^ Y) == Y also match with swapped operands.
4030
4031 2015-06-29  Richard Biener  <rguenther@suse.de>
4032
4033         * lto-streamer.h (LTO_major_version): Bump to 5.
4034
4035 2015-06-29  Richard Biener  <rguenther@suse.de>
4036
4037         PR tree-optimization/66677
4038         * tree-vect-stmts.c (vect_transform_stmt): Make assert about
4039         STMT_VINFO_VEC_STMT clobbering less strict.
4040
4041 2015-06-29  Kugan Vivekanandarajah  <kuganv@linaro.org>
4042
4043         PR middle-end/64130
4044         * tree-vrp.c (extract_range_from_binary_expr_1): For unsigned
4045         division, compute max and min when value ranges for dividend and
4046         divisor are available.
4047
4048 2015-06-28  Chung-Lin Tang <cltang@codesourcery.com>
4049             Sandra Loosemore <sandra@codesourcery.com>
4050
4051         * regrename.h (regrename_do_replace): Change to return bool.
4052         * regrename.c (rename_chains): Check return value of
4053         regname_do_replace.
4054         (regrename_do_replace): Re-validate the modified insns and
4055         return bool status.
4056         * config/aarch64/cortex-a57-fma-steering.c (rename_single_chain):
4057         Update to match rename_chains changes.
4058         * config/c6x/c6x.c (try_rename_operands): Assert that
4059         regrename_do_replace returns true.
4060
4061 2015-06-28  Uros Bizjak  <ubizjak@gmail.com>
4062
4063         * config/i386/i386.md (<mode>_ldx): Do not zero-extend non-Pmode
4064         operand 2 here.  Use copy_addr_to_reg to copy non-index
4065         register operand 2 to a temporary.
4066         (<mode>_stx): Ditto for operand 1.
4067         (*<mode>_ldx, *<mode>_stx): Remove enclosing parallel.
4068         * config/i386/i386.c (ix86_load_bounds): Zero-extend non-Pmode ptr here.
4069         (ix86_store_bounds): Ditto.
4070
4071 2015-06-27  Patrick Palka  <ppalka@gcc.gnu.org>
4072
4073         * print-tree.c (print_node) [TREE_VEC]: Print its length.
4074
4075 2015-06-26  Andrew MacLeod  <amacleod@redhat.com>
4076
4077         * gimple.c (gimple_call_set_fndecl): Remove.
4078         * gimple.h (gimple_call_set_fndecl): Relocate to gimple.h and call
4079         build1_loc directly instead of build_fold_addr_expr_loc.
4080
4081 2015-06-26  Richard Sandiford  <richard.sandiford@arm.com>
4082
4083         * hash-map.h (hash_map::traverse): Use the definition of the
4084         Key typedef rather than the typedef itself.
4085
4086 2015-06-26  Martin Jambor  <mjambor@suse.cz>
4087
4088         PR debug/66301
4089         * tree-ssa-pre.c (before_dom_children): Check that dump_file is not
4090         NULL instead of calling dump_enabled_p.
4091
4092 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
4093
4094         * config/aarch64/aarch64.opt: (override): New.
4095         * doc/invoke.texi (override): Document.
4096         * config/aarch64/aarch64.c (aarch64_flag_desc): New
4097         (aarch64_fusible_pairs): Likewise.
4098         (aarch64_tuning_flags): Likewise.
4099         (aarch64_tuning_override_function): Likewise.
4100         (aarch64_tuning_override_functions): Likewise.
4101         (aarch64_parse_one_option_token): Likewise.
4102         (aarch64_parse_boolean_options): Likewise.
4103         (aarch64_parse_fuse_string): Likewise.
4104         (aarch64_parse_tune_string): Likewise.
4105         (aarch64_parse_one_override_token): Likewise.
4106         (aarch64_parse_override_string): Likewise.
4107         (aarch64_override_options): Parse the -override string if it
4108         is present.
4109
4110 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
4111
4112         * config/aarch64/aarch64-protos.h (tune_params): Remove
4113         const from members.
4114         (aarch64_tune_params): Remove const, change to no longer be
4115         a pointer.
4116         * config/aarch64/aarch64.c (aarch64_tune_params): Remove const,
4117         change to no longer be a pointer, initialize to generic_tunings.
4118         (aarch64_min_divisions_for_recip_mul): Change dereference of
4119         aarch64_tune_params to member access.
4120         (aarch64_reassociation_width): Likewise.
4121         (aarch64_rtx_mult_cost): Likewise.
4122         (aarch64_address_cost): Likewise.
4123         (aarch64_branch_cost): Likewise.
4124         (aarch64_rtx_costs): Likewise.
4125         (aarch64_register_move_cost): Likewise.
4126         (aarch64_memory_move_cost): Likewise.
4127         (aarch64_sched_issue_rate): Likewise.
4128         (aarch64_builtin_vectorization_cost): Likewise.
4129         (aarch64_override_options): Take a copy of the selected tuning
4130         struct in to aarch64_tune_params, rather than just setting
4131         a pointer, change dereferences of aarch64_tune_params to member
4132         accesses.
4133         (aarch64_override_options_after_change): Change dereferences of
4134         aarch64_tune_params to member access.
4135         (aarch64_macro_fusion_p): Likewise.
4136         (aarch_macro_fusion_pair_p): Likewise.
4137         * config/aarch64/cortex-a57-fma-steering.c (gate): Likewise.
4138
4139 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
4140
4141         * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Delete.
4142         (aarch64_tune_flags): Likewise.
4143         (AARCH64_TUNE_FMA_STEERING): Likewise.
4144         * config/aarch64/aarch64-cores.def (cortex-a57): Remove reference
4145         to AARCH64_FL_USE_FMA_STEERING_PASS.
4146         (cortex-a57.cortex-a53): Likewise.
4147         (cortex-a72): Use cortexa72_tunings.
4148         (cortex-a72.cortex-a53): Likewise.
4149         (exynos-m1): Likewise.
4150         * config/aarch64/aarch64-protos.h (tune_params): Add
4151         a field: extra_tuning_flags.
4152         * config/aarch64/aarch64-tuning-flags.def: New.
4153         * config/aarch64/aarch64-protos.h (AARCH64_EXTRA_TUNING_OPTION): New.
4154         (aarch64_extra_tuning_flags): Likewise.
4155         (aarch64_tune_params): Declare here.
4156         * config/aarch64/aarch64.c (generic_tunings): Set extra_tuning_flags.
4157         (cortexa53_tunings): Likewise.
4158         (cortexa57_tunings): Likewise.
4159         (thunderx_tunings): Likewise.
4160         (xgene1_tunings): Likewise.
4161         (cortexa72_tunings): New.
4162         * config/aarch64/cortex-a57-fma-steering.c: Include aarch64-protos.h.
4163          (gate): Check against aarch64_tune_params.
4164         * config/aarch64/t-aarch64 (cortex-a57-fma-steering.o): Depend on
4165         aarch64-protos.h.
4166
4167 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
4168
4169         * config/aarch64/aarch64-fusion-pairs.def: New.
4170         * config/aarch64/aarch64-protos.h (aarch64_fusion_pairs): New.
4171         * config/aarch64/aarch64.c (AARCH64_FUSE_NOTHING): Move to
4172         aarch64_fusion_pairs.
4173         (AARCH64_FUSE_MOV_MOVK): Likewise.
4174         (AARCH64_FUSE_ADRP_ADD): Likewise.
4175         (AARCH64_FUSE_MOVK_MOVK): Likewise.
4176         (AARCH64_FUSE_ADRP_LDR): Likewise.
4177         (AARCH64_FUSE_CMP_BRANCH): Likewise.
4178
4179 2015-06-26  Jiong Wang  <jiong.wang@arm.com>
4180
4181         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): New type
4182         SYMBOL_SMALL_GOT_28K.
4183         * config/aarch64/aarch64.md: (ldr_got_small_<mode>): Support new GOT
4184         relocation modifiers.
4185         (unspec): New enum "UNSPEC_GOTMALLPIC28K.
4186         (ldr_got_small_28k_<mode>): New.
4187         (ldr_got_small_28k_sidi): New.
4188         * config/aarch64/iterators.md (got_modifier): New mode iterator.
4189         * config/aarch64/aarch64-otps.h (aarch64_code_model): New model.
4190         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Support
4191         SYMBOL_SMALL_GOT_28K.
4192         (aarch64_rtx_costs): Add costs for new instruction sequences.
4193         (initialize_aarch64_code_model): Initialize new model.
4194         (aarch64_classify_symbol): Recognize new model and new symbol classification.
4195         (aarch64_asm_preferred_eh_data_format): Support new model.
4196         (aarch64_load_symref_appropriately): Generate new instruction
4197         sequences for -fpic.
4198         (TARGET_USE_PSEUDO_PIC_REG): New definition.
4199         (aarch64_use_pseudo_pic_reg): New function.
4200
4201 2015-06-26  Jiong Wang  <jiong.wang@arm.com>
4202
4203         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Rename
4204         SYMBOL_SMALL_GOT to SYMBOL_SMALL_GOT_4G.
4205         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto.
4206         (aarch64_expand_mov_immediate): Ditto.
4207         (aarch64_print_operand): Ditto.
4208         (aarch64_classify_symbol): Ditto.
4209
4210 2015-06-26  Nathan Sidwell  <nathan@codesourcery.com>
4211
4212         * config/nvptx/nvptx.md (call_operation): Remove unused variables.
4213
4214 2015-06-26  Bin Cheng  <bin.cheng@arm.com>
4215
4216         PR bootstrap/66638
4217         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Skip if
4218         assertion failed.  Remove assertion itself.
4219
4220 2015-06-26  Richard Biener  <rguenther@suse.de>
4221
4222         * fold-const.c (fold_binary_loc): Remove -A CMP -B -> A CMP B
4223         and -A CMP CST -> A CMP -CST which is redundant with a pattern
4224         in match.pd.
4225         Move (A | C) == D where C & ~D != 0 -> 0, (X ^ Y) ==/!= 0 -> X ==/!= Y,
4226         (X ^ Y) ==/!= {Y,X} -> {X,Y} ==/!= 0 and
4227         (X ^ C1) op C2 -> X op (C1 ^ C2) to ...
4228         * match.pd: ... patterns here.
4229
4230 2015-06-26  Marek Polacek  <polacek@redhat.com>
4231
4232         * match.pd ((x | y) & ~(x & y) -> x ^ y,
4233         (x | y) & (~x ^ y) -> x & y): New patterns.
4234
4235 2015-06-26  Richard Sandiford  <richard.sandiford@arm.com>
4236
4237         * rtl.h (emit): Add an optional boolean parameter to control
4238         whether barriers are emitted.
4239         * emit-rtl.c (emit): Likewise.
4240         * gensupport.c (get_emit_function): Return null rather than "emit".
4241         * genemit.c (gen_emit_seq): Handle the null return value.
4242         Don't emit barriers after the final instruction in the sequence.
4243         * gentarget-def.c (main): Don't emit barriers after the instruction.
4244
4245 2015-06-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4246
4247         * config/arm/arm.c (arm_output_multireg_pop): Fix use of
4248         TARGET_UNIFIED_ASM.
4249
4250 2015-06-26  Richard Biener  <rguenther@suse.de>
4251
4252         * match.pd: Allow associating FLOAT_TYPE_P when flag_associative_math.
4253
4254 2015-06-26  Richard Biener  <rguenther@suse.de>
4255
4256         * match.pd: Allow (p +p off1) +p off2 to (p +p (off1 + off2))
4257         irrespective on whether the inner operation has a single use
4258         of both off are constant.
4259
4260 2015-06-26  Uros Bizjak  <ubizjak@gmail.com>
4261             Segher Boessenkool  <segher@kernel.crashing.org>
4262
4263         PR target/66412
4264         * config/i386/i386.md (various splitters): Use shallow_copy_rtx
4265         before doing PUT_MODE or PUT_CODE on operands to avoid
4266         in-place RTX modification.
4267
4268 2015-06-25  H.J. Lu  <hongjiu.lu@intel.com>
4269
4270         * gentarget-def.c (def_target_insn): Cast return of strtol to
4271         unsigned int.
4272
4273 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
4274
4275         * gimple.h (gimple_call_set_fn): Move inline function.
4276         * gimple.c (gimple_call_set_fn): Relocate here.
4277
4278 2015-06-25  Oleg Endo  <olegendo@gcc.gnu.org>
4279
4280         PR target/65979
4281         PR target/66611
4282         * config/sh/sh.md (tstsi_t peephole2): Use insn_invalid_p to check if
4283         the replacement insn will work.
4284
4285 2015-06-25  H.J. Lu  <hongjiu.lu@intel.com>
4286
4287         * gcc.c (driver_handle_option): Validate -pie if PIE is enabled
4288         by default.
4289
4290 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
4291
4292         * function.h (ipa_opt_pass, ipa_opt_pass_d): Move forward declarations.
4293         * cgraph.h: Include ipa-ref.h and plugin-api.h.
4294         (ipa_opt_pass, ipa_opt_pass_d)): Relocate forward declarations here.
4295         (symtab_node::address_can_be_compared_p): Move function.
4296         * cgraph.c (symtab_node::address_can_be_compared_p): Relocate function
4297         definition here.
4298         * asan.c: Remove ipa-ref.h and plugin-api.h from include list.
4299         * auto-profile.c: Likewise.
4300         * bb-reorder.c: Likewise.
4301         * builtins.c: Likewise.
4302         * calls.c: Likewise.
4303         * cfgexpand.c: Likewise.
4304         * cgraphbuild.c: Likewise.
4305         * cgraphclones.c: Likewise.
4306         * cgraphunit.c: Likewise.
4307         * combine.c: Likewise.
4308         * coverage.c: Likewise.
4309         * data-streamer-in.c: Likewise.
4310         * data-streamer-out.c: Likewise.
4311         * data-streamer.c: Likewise.
4312         * dbxout.c: Likewise.
4313         * dwarf2out.c: Likewise.
4314         * except.c: Likewise.
4315         * expr.c: Likewise.
4316         * final.c: Likewise.
4317         * fold-const.c: Likewise.
4318         * ggc-page.c: Likewise.
4319         * gimple-fold.c: Likewise.
4320         * gimple-iterator.c: Likewise.
4321         * gimple-pretty-print.c: Likewise.
4322         * gimple-streamer-in.c: Likewise.
4323         * gimple-streamer-out.c: Likewise.
4324         * gimple.c: Likewise.
4325         * gimplify.c: Likewise.
4326         * ipa-chkp.c: Likewise.
4327         * ipa-comdats.c: Likewise.
4328         * ipa-cp.c: Likewise.
4329         * ipa-devirt.c: Likewise.
4330         * ipa-icf-gimple.c: Likewise.
4331         * ipa-icf.c: Likewise.
4332         * ipa-inline-analysis.c: Likewise.
4333         * ipa-inline-transform.c: Likewise.
4334         * ipa-inline.c: Likewise.
4335         * ipa-polymorphic-call.c: Likewise.
4336         * ipa-profile.c: Likewise.
4337         * ipa-prop.c: Likewise.
4338         * ipa-pure-const.c: Likewise.
4339         * ipa-ref.c: Likewise.
4340         * ipa-reference.c: Likewise.
4341         * ipa-split.c: Likewise.
4342         * ipa-utils.c: Likewise.
4343         * ipa-visibility.c: Likewise.
4344         * ipa.c: Likewise.
4345         * langhooks.c: Likewise.
4346         * lto-cgraph.c: Likewise.
4347         * lto-compress.c: Likewise.
4348         * lto-opts.c: Likewise.
4349         * lto-section-in.c: Likewise.
4350         * lto-section-out.c: Likewise.
4351         * lto-streamer-in.c: Likewise.
4352         * lto-streamer-out.c: Likewise.
4353         * lto-streamer.c: Likewise.
4354         * omp-low.c: Likewise.
4355         * opts-global.c: Likewise.
4356         * passes.c: Likewise.
4357         * predict.c: Likewise.
4358         * print-tree.c: Likewise.
4359         * profile.c: Likewise.
4360         * ree.c: Likewise.
4361         * sanopt.c: Likewise.
4362         * stor-layout.c: Likewise.
4363         * symtab.c: Likewise.
4364         * toplev.c: Likewise.
4365         * trans-mem.c: Likewise.
4366         * tree-cfg.c: Likewise.
4367         * tree-chkp.c: Likewise.
4368         * tree-eh.c: Likewise.
4369         * tree-emutls.c: Likewise.
4370         * tree-inline.c: Likewise.
4371         * tree-nested.c: Likewise.
4372         * tree-parloops.c: Likewise.
4373         * tree-pretty-print.c: Likewise.
4374         * tree-profile.c: Likewise.
4375         * tree-sra.c: Likewise.
4376         * tree-ssa-alias.c: Likewise.
4377         * tree-ssa-live.c: Likewise.
4378         * tree-ssa-loop-ivcanon.c: Likewise.
4379         * tree-ssa-loop-ivopts.c: Likewise.
4380         * tree-ssa-pre.c: Likewise.
4381         * tree-ssa-sccvn.c: Likewise.
4382         * tree-ssa-strlen.c: Likewise.
4383         * tree-ssa-structalias.c: Likewise.
4384         * tree-streamer-in.c: Likewise.
4385         * tree-streamer-out.c: Likewise.
4386         * tree-streamer.c: Likewise.
4387         * tree-switch-conversion.c: Likewise.
4388         * tree-tailcall.c: Likewise.
4389         * tree-vect-data-refs.c: Likewise.
4390         * tree-vect-stmts.c: Likewise.
4391         * tree-vectorizer.c: Likewise.
4392         * tree.c: Likewise.
4393         * tsan.c: Likewise.
4394         * ubsan.c: Likewise.
4395         * value-prof.c: Likewise.
4396         * varasm.c: Likewise.
4397         * varpool.c: Likewise.
4398         * config/arm/arm.c: Likewise.
4399         * config/bfin/bfin.c: Likewise.
4400         * config/c6x/c6x.c: Likewise.
4401         * config/cris/cris.c: Likewise.
4402         * config/darwin-c.c: Likewise.
4403         * config/darwin.c: Likewise.
4404         * config/i386/i386.c: Likewise.
4405         * config/i386/winnt.c: Likewise.
4406         * config/microblaze/microblaze.c: Likewise.
4407         * config/mips/mips.c: Likewise.
4408         * config/rs6000/rs6000.c: Likewise.
4409         * config/rx/rx.c: Likewise.
4410         * config/s390/s390.c: Likewise.
4411         * config/tilegx/mul-tables.c: Likewise.
4412
4413 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4414
4415         * config/aarch64/aarch64.c, config/alpha/alpha.c,
4416         config/arm/arm.c, config/avr/avr.c, config/bfin/bfin.c,
4417         config/c6x/c6x.c, config/cr16/cr16.c, config/cris/cris.c,
4418         config/fr30/fr30.c, config/frv/frv.c, config/h8300/h8300.c,
4419         config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
4420         config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
4421         config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
4422         config/microblaze/microblaze.c, config/mips/mips.c,
4423         config/mmix/mmix.c, config/mn10300/mn10300.c,
4424         config/moxie/moxie.c, config/msp430/msp430.c,
4425         config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
4426         config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
4427         config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
4428         config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
4429         config/stormy16/stormy16.c, config/tilegx/tilegx.c,
4430         config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
4431         config/visium/visium.c, config/xtensa/xtensa.c: Add comment above
4432         target-def.h include.
4433         * config/ft32/ft32.c: Likewise.  Fix misapplied hunk.
4434
4435 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4436
4437         * Makefile.in (TARGET_DEF): Add target-insns.def.
4438         (.PRECIOUS, simple_rtl_generated_h): Add insn-target-def.h.
4439         (build/gentarget-def.o): New rule.
4440         (genprogrtl): Add target-def.
4441         * target-insns.def, gentarget-def.c: New files.
4442         * target.def: Add targetm.have_* and targetm.gen_* hooks,
4443         based on the contents of target-insns.def.
4444         * defaults.h (HAVE_simple_return, gen_simple_return): Delete.
4445         (HAVE_return, gen_return): Delete.
4446         * target-def.h: Include insn-target-def.h.
4447         * cfgrtl.c (force_nonfallthru_and_redirect): Use targetm interface
4448         instead of direct calls.  Rely on them to do the appropriate assertions.
4449         * function.c (gen_return_pattern): Likewise.  Return an rtx_insn *.
4450         (convert_jumps_to_returns): Use targetm interface instead of
4451         direct calls.
4452         (thread_prologue_and_epilogue_insns): Likewise.
4453         * reorg.c (find_end_label, dbr_schedule): Likewise.
4454         * shrink-wrap.h (SHRINK_WRAPPING_ENABLED): Likewise.
4455         * shrink-wrap.c (convert_to_simple_return): Likewise.
4456         (try_shrink_wrapping): Use SHRINK_WRAPPING_ENABLED.
4457
4458 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4459
4460         * config/aarch64/aarch64.c, config/alpha/alpha.c, config/arm/arm.c,
4461         config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
4462         config/cr16/cr16.c, config/cris/cris.c, config/fr30/fr30.c,
4463         config/frv/frv.c, config/ft32/ft32.c, config/h8300/h8300.c,
4464         config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
4465         config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
4466         config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
4467         config/microblaze/microblaze.c, config/mips/mips.c, config/mmix/mmix.c,
4468         config/mn10300/mn10300.c, config/moxie/moxie.c, config/msp430/msp430.c,
4469         config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
4470         config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
4471         config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
4472         config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
4473         config/stormy16/stormy16.c, config/tilegx/tilegx.c,
4474         config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
4475         config/visium/visium.c, config/xtensa/xtensa.c: Move target-def.h
4476         includes to end.
4477
4478 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4479
4480         * hash-map-traits.h (simple_hashmap_traits::key_type): New typedef.
4481         (unbounded_int_hashmap_traits::key_type): Likewise.
4482         * hash-map.h (hash_map): Get the key type from the traits.
4483         * hash-traits.h (default_hash_traits): By default, inherit from the
4484         template parameter.
4485         * alias.c (alias_set_traits): Delete.
4486         (alias_set_entry_d::children): Use alias_set_hash as the first
4487         template parameter.
4488         (record_alias_subset): Update accordingly.
4489         * except.c (tree_hash_traits): Delete.
4490         (type_to_runtime_map): Use tree_hash as the first template parameter.
4491         (init_eh): Update accordingly.
4492         * genmatch.c (capture_id_map_hasher): Delete.
4493         (cid_map_t): Use nofree_string_hash as first template parameter.
4494         * ipa-icf.h (symbol_compare_hashmap_traits): Delete.
4495         * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
4496         Use symbol_compare_hash as the first template parameter in
4497         subdivide_hash_map.
4498         * mem-stats.h (mem_usage_pair::mem_alloc_hashmap_traits): Delete.
4499         (mem_usage_pair::mem_map_t): Use mem_location_hash as the first
4500         template parameter.
4501         * passes.c (pass_registry_hasher): Delete.
4502         (name_to_pass_map): Use nofree_string_hash as the first template
4503         parameter.
4504         (register_pass_name): Update accordingly.
4505         * sanopt.c (sanopt_tree_map_traits): Delete.
4506         (sanopt_tree_triplet_map_traits): Delete.
4507         (sanopt_ctx::asan_check_map): Use tree_operand_hash as the first
4508         template parameter.
4509         (sanopt_ctx::vptr_check_map): Use sanopt_tree_triplet_hash as
4510         the first template parameter.
4511         * sese.c (rename_map_hasher): Delete.
4512         (rename_map_type): Use tree_ssa_name_hash as the first template
4513         parameter.
4514         * symbol-summary.h (function_summary::summary_hashmap_traits): Delete.
4515         (function_summary::m_map): Use map_hash as the first template
4516         parameter.
4517         (function_summary::release): Update accordingly.
4518         * tree-if-conv.c (phi_args_hash_traits): Delete.
4519         (predicate_scalar_phi): Use tree_operand_hash as the first template
4520         parameter to phi_arg_map.
4521         * tree-inline.h (dependence_hasher): Delete.
4522         (copy_body_data::dependence_map): Use dependence_hash as the first
4523         template parameter.
4524         * tree-inline.c (remap_dependence_clique): Update accordingly.
4525         * tree-ssa-strlen.c (stridxlist_hash_traits): Delete.
4526         (decl_to_stridxlist_htab): Use tree_decl_hash as the first template
4527         parameter.
4528         (addr_stridxptr): Update accordingly.
4529         * value-prof.c (profile_id_traits): Delete.
4530         (cgraph_node_map): Use profile_id_hash as the first template
4531         parameter.
4532         (init_node_map): Update accordingly.
4533         * config/alpha/alpha.c (string_traits): Delete.
4534         (machine_function::links): Use nofree_string_hash as the first
4535         template parameter.
4536         (alpha_use_linkage, alpha_write_linkage): Update accordingly.
4537         * config/m32c/m32c.c (pragma_traits): Delete.
4538         (pragma_htab): Use nofree_string_hash as the first template parameter.
4539         (m32c_note_pragma_address): Update accordingly.
4540         * config/mep/mep.c (pragma_traits): Delete.
4541         (pragma_htab): Use nofree_string_hash as the first template parameter.
4542         (mep_note_pragma_flag): Update accordingly.
4543         * config/mips/mips.c (mips16_flip_traits): Delete.
4544         (mflip_mips16_htab): Use nofree_string_hash as the first template
4545         parameter.
4546         (mflip_mips16_use_mips16_p): Update accordingly.
4547         (local_alias_traits): Delete.
4548         (mips16_local_aliases): Use nofree_string_hash as the first template
4549         parameter.
4550         (mips16_local_alias): Update accordingly.
4551
4552 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4553
4554         * hash-map-traits.h (default_hashmap_traits): Delete.
4555
4556 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4557
4558         * hash-map-traits.h (unbounded_hashmap_traits): New class.
4559         (unbounded_int_hashmap_traits): Likewise.
4560         * cfgexpand.c (part_traits): Use unbounded_int_hashmap_traits.
4561
4562 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4563
4564         * ipa-icf.h (symbol_compare_hash): New class.
4565         (symbol_compare_hashmap_traits): Use it.
4566         * mem-stats.h (mem_alloc_description::mem_location_hash): New class.
4567         (mem_alloc_description::mem_alloc_hashmap_traits): Use it.
4568         (mem_alloc_description::reverse_mem_map_t): Remove redundant
4569         default_hashmap_traits.
4570         * sanopt.c (sanopt_tree_triplet_hash): New class.
4571         (sanopt_tree_triplet_map_traits): Use it.
4572
4573 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4574
4575         * gengtype-parse.c (require_template_declaration): Allow '+' in
4576         template parameters.  Consolidate cases.
4577         * hash-traits.h (int_hash): New class.
4578         * alias.c (alias_set_hash): New structure.
4579         (alias_set_traits): Use it.
4580         * symbol-summary.h (function_summary::map_hash): New class.
4581         (function_summary::summary_hashmap_traits): Use it.
4582         * tree-inline.h (dependence_hash): New class.
4583         (dependence_hasher): Use it.
4584         * tree-ssa-reassoc.c (oecount_hasher): Use int_hash.
4585         * value-prof.c (profile_id_hash): New class.
4586         (profile_id_traits): Use it.
4587
4588 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4589
4590         * config/mips/mips.c (mips16_flip_traits): Use it.
4591         (local_alias_traits, mips16_local_aliases): Convert from a map of
4592         rtxes to a map of symbol names.
4593         (mips16_local_alias): Update accordingly.
4594
4595 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4596
4597         * hash-traits.h (string_hash, nofree_string_hash): New classes.
4598         * genmatch.c (capture_id_map_hasher): Use nofree_string_hash.
4599         * passes.c (pass_registry_hasher): Likewise.
4600         * config/alpha/alpha.c (string_traits): Likewise.
4601         * config/i386/winnt.c (i386_find_on_wrapper_list): Likewise.
4602         * config/m32c/m32c.c (pragma_traits): Likewise.
4603         * config/mep/mep.c (pragma_traits): Likewise.
4604
4605 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4606
4607         * tree-hash-traits.h (tree_hash): New class.
4608         * except.c: Include tree-hash-traits.h.
4609         (tree_hash_traits): Use tree_hash.
4610
4611 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4612
4613         * tree-hash-traits.h (tree_ssa_name_hasher): New class.
4614         * sese.c: Include tree-hash-traits.h.
4615         (rename_map_hasher): Use tree_ssa_name_hasher.
4616
4617 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4618
4619         * tree-hash-traits.h (tree_decl_hash): New class.
4620         * tree-ssa-strlen.c: Include tree-hash-traits.h.
4621         (stridxlist_hash_traits): Use tree_decl_hash.
4622
4623 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4624
4625         * tree-hash-traits.h: New file.
4626         (tree_operand_hash): New class.
4627         * sanopt.c: Include tree-hash-traits.h.
4628         (sanopt_tree_map_traits): Use tree_operand_hash.
4629         * tree-if-conv.c: Include tree-hash-traits.h.
4630         (phi_args_hash_traits): Use tree_operand_hash.
4631         * tree-ssa-uncprop.c: Include tree-hash-traits.h.
4632         (val_ssa_equiv_hash_traits): Use tree_operand_hash.
4633
4634 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4635
4636         * hash-map-traits.h: Include hash-traits.h.
4637         (simple_hashmap_traits): New class.
4638         * mem-stats.h (hash_map): Change the default traits to
4639         simple_hashmap_traits<default_hash_traits<Key> >.
4640
4641 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4642
4643         * hash-table.h: Update comments.
4644
4645 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4646
4647         * hash-traits.h (default_hash_traits): New structure.
4648         * hash-set.h (default_hashset_traits): Delete.
4649         (hash_set): Use default_hash_traits<Key> instead of
4650         default_hashset_traits.  Delete hash_entry type and use Key directly.
4651         * ipa-devirt.c (pair_traits): Delete.
4652         (default_hash_traits <type_pair>): Override.
4653         (odr_subtypes_equivalent_p): Remove pair_types template parameter.
4654         (odr_types_equivalent_p, add_type_duplicate): Likewise.
4655
4656 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4657
4658         * hash-traits.h (typed_noop_remove): Don't require a pointer type.
4659
4660 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4661
4662         * hash-table.h (has_is_deleted, is_deleted_helper): Delete.
4663         (has_is_empty, is_empty_helper): Delete.
4664         (has_mark_deleted, mark_deleted_helper): Delete.
4665         (has_mark_empty, mark_empty_helper): Delete.
4666         (hash_table::is_deleted): Call the Descriptor unconditionally.
4667         (hash_table::is_empty): Likewise.
4668         (hash_table::mark_deleted): Likewise.
4669         (hash_table::mark_empty): Likewise.
4670
4671 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4672
4673         * cgraph.h (asmname_hasher): Inherit from ggc_ptr_hash.  Remove
4674         redundant typedefs and members.
4675         * coverage.c (counts_entry): Inherit from pointer_hash.  Remove
4676         redundant typedefs.
4677         * dwarf2out.c (cu_hash_table_entry_hasher): Likewise.
4678         * ipa-devirt.c (odr_name_hasher): Likewise.
4679         (polymorphic_call_target_hasher): Likewise.
4680         * ira-costs.c (cost_classes_hasher): Likewise.
4681         * statistics.c (stats_counter_hasher): Likewise.
4682         * trans-mem.c (log_entry_hasher): Likewise.
4683         * tree-ssa-dom.c (expr_elt_hasher): Likewise.
4684         * tree-ssa-sccvn.c (vn_phi_hasher, vn_reference_hasher): Likewise.
4685         * tree-ssa-tail-merge.c (same_succ_def): Likewise.
4686         * var-tracking.c (variable_hasher): Likewise.
4687         * valtrack.h (dead_debug_hash_descr): Inherit from free_ptr_hash.
4688         Remove redundant typedefs and members.
4689
4690 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4691
4692         * hash-traits.h (ggc_cache_hasher): Rename to...
4693         (ggc_cache_remove): ...this and remove typedefs.
4694         (ggc_cache_ptr_hash): New class.
4695         * hash-table.h: Update commentary.
4696         * emit-rtl.c (const_int_hasher): Inherit from ggc_cache_ptr_hash
4697         rather than ggc_cache_hasher.
4698         (const_wide_int_hasher, reg_attr_hasher): Likewise.
4699         (const_double_hasher, const_fixed_hasher): Likewise.
4700         * function.c (insn_cache_hasher): Likewise.
4701         * trans-mem.c (tm_wrapper_hasher): Likewise.
4702         * tree.h (tree_decl_map_cache_hasher): Likewise.
4703         * tree.c (type_cache_hasher, int_cst_hasher): Likewise.
4704         (cl_option_hasher, tree_vec_map_cache_hasher): Likewise.
4705         * ubsan.c (tree_type_map_cache_hasher): Likewise.
4706         * varasm.c (tm_clone_hasher): Likewise.
4707         * config/i386/i386.c (dllimport_hasher): Likewise.
4708         * config/nvptx/nvptx.c (declared_libfunc_hasher): Likewise.
4709         (tree_hasher): Likewise.
4710
4711 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4712
4713         * hash-traits.h (ggc_hasher): Rename to...
4714         (ggc_remover): ...this and remove typedefs.
4715         (ggc_cache_hasher): Update accordingly.  Add typedefs.
4716         (ggc_ptr_hash): New class.
4717         * hash-table.h: Update comment.
4718         * cfgloop.h (loop_exit_hasher): Inherit from ggc_ptr_hash rather than
4719         ggc_hasher.
4720         * cgraph.h (section_name_hasher, cgraph_edge_hasher): Likewise.
4721         (tree_descriptor_hasher): Likewise.
4722         * cgraph.c (function_version_hasher): Likewise.
4723         * dwarf2out.c (indirect_string_hasher, dwarf_file_hasher): Likewise.
4724         (decl_die_hasher, block_die_hasher, decl_loc_hasher): Likewise.
4725         (dw_loc_list_hasher, addr_hasher): Likewise.
4726         * function.h (used_type_hasher): Likewise.
4727         * function.c (temp_address_hasher): Likewise.
4728         * gimple-ssa.h (tm_restart_hasher, ssa_name_hasher): Likewise.
4729         * libfuncs.h (libfunc_hasher): Likewise.
4730         * lto-streamer.h (decl_state_hasher): Likewise.
4731         * optabs.c (libfunc_decl_hasher): Likewise.
4732         * tree-scalar-evolution.c (scev_info_hasher): Likewise.
4733         * varasm.c (section_hasher, object_block_hasher): Likewise.
4734         (const_rtx_desc_hasher): Likewise.
4735         * config/darwin.c (indirection_hasher, cfstring_hasher): Likewise.
4736         * config/rs6000/rs6000.c (toc_hasher, builtin_hasher): Likewise.
4737
4738 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4739
4740         * hash-traits.h (free_ptr_hash): New class.
4741         * dwarf2out.c (decl_table_entry_hasher): Inherit from free_ptr_hash
4742         rather than typed_free_remove.  Remove redudant typedefs.
4743         (external_ref_hasher): Likewise.
4744         * except.c (action_record_hasher, ttypes_filter_hasher): Likewise.
4745         (ehspec_hasher): Likewise.
4746         * ggc-common.c (saving_hasher): Likewise.
4747         * gimplify.c (gimplify_hasher): Likewise.
4748         * haifa-sched.c (delay_i2_hasher): Likewise.
4749         * loop-invariant.c (invariant_expr_hasher): Likewise.
4750         * loop-iv.c (biv_entry_hasher): Likewise.
4751         * loop-unroll.c (iv_split_hasher, var_expand_hasher): Likewise.
4752         * trans-mem.c (tm_mem_map_hasher, tm_memop_hasher): Likewise.
4753         * tree-cfg.c (locus_discrim_hasher): Likewise.
4754         * tree-eh.c (finally_tree_hasher): Likewise.
4755         * tree-into-ssa.c (var_info_hasher): Likewise.
4756         * tree-parloops.c (reduction_hasher, name_to_copy_hasher): Likewise.
4757         * tree-ssa-loop-ivopts.c (iv_inv_expr_hasher): Likewise.
4758         * tree-ssa-phiopt.c (ssa_names_hasher): Likewise.
4759         * tree-ssa-pre.c (expr_pred_trans_d): Likewise.
4760         * tree-ssa-sccvn.c (vn_constant_hasher): Likewise.
4761         * tree-ssa-structalias.c (equiv_class_hasher): Likewise.
4762         (shared_bitmap_hasher): Likewise.
4763         * tree-ssa-threadupdate.c (redirection_data): Likewise.
4764         * tree-vectorizer.h (peel_info_hasher): Likewise.
4765         * tree-vectorizer.c (simduid_to_vf, simd_array_to_simduid): Likewise.
4766         * config/mips/mips.c (mips_lo_sum_offset_hasher): Likewise.
4767
4768 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4769
4770         * hash-table.h: Update comments.
4771         * hash-traits.h (pointer_hash): Don't inherit from typed_noop_remove.
4772         (nofree_ptr_hash): New class.
4773         * asan.c (asan_mem_ref_hasher): Inherit from nofree_ptr_hash rather
4774         than typed_noop_remove.  Remove redudant typedefs.
4775         * attribs.c (attribute_hasher): Likewise.
4776         * cfg.c (bb_copy_hasher): Likewise.
4777         * cselib.c (cselib_hasher): Likewise.
4778         * dse.c (invariant_group_base_hasher): Likewise.
4779         * dwarf2cfi.c (trace_info_hasher): Likewise.
4780         * dwarf2out.c (macinfo_entry_hasher): Likewise.
4781         (comdat_type_hasher, loc_list_hasher): Likewise.
4782         * gcse.c (pre_ldst_expr_hasher): Likewise.
4783         * genmatch.c (id_base): Likewise.
4784         * genrecog.c (test_pattern_hasher): Likewise.
4785         * gimple-ssa-strength-reduction.c (cand_chain_hasher): Likewise.
4786         * haifa-sched.c (delay_i1_hasher): Likewise.
4787         * hard-reg-set.h (simplifiable_subregs_hasher): Likewise.
4788         * ipa-icf.h (congruence_class_group_hash): Likewise.
4789         * ipa-profile.c (histogram_hash): Likewise.
4790         * ira-color.c (allocno_hard_regs_hasher): Likewise.
4791         * lto-streamer.h (string_slot_hasher): Likewise.
4792         * lto-streamer.c (tree_entry_hasher): Likewise.
4793         * plugin.c (event_hasher): Likewise.
4794         * postreload-gcse.c (expr_hasher): Likewise.
4795         * store-motion.c (st_expr_hasher): Likewise.
4796         * tree-sra.c (uid_decl_hasher): Likewise.
4797         * tree-ssa-coalesce.c (coalesce_pair_hasher): Likewise.
4798         (ssa_name_var_hash): Likewise.
4799         * tree-ssa-live.c (tree_int_map_hasher): Likewise.
4800         * tree-ssa-loop-im.c (mem_ref_hasher): Likewise.
4801         * tree-ssa-pre.c (pre_expr_d): Likewise.
4802         * tree-ssa-sccvn.c (vn_nary_op_hasher): Likewise.
4803         * vtable-verify.h (registration_hasher): Likewise.
4804         * vtable-verify.c (vtbl_map_hasher): Likewise.
4805         * config/arm/arm.c (libcall_hasher): Likewise.
4806         * config/i386/winnt.c (wrapped_symbol_hasher): Likewise.
4807         * config/ia64/ia64.c (bundle_state_hasher): Likewise.
4808         * config/sol2.c (comdat_entry_hasher): Likewise.
4809         * fold-const.c (fold): Use nofree_ptr_hash instead of pointer_hash.
4810         (print_fold_checksum, fold_checksum_tree): Likewise.
4811         (debug_fold_checksum, fold_build1_stat_loc): Likewise.
4812         (fold_build2_stat_loc, fold_build3_stat_loc): Likewise.
4813         (fold_build_call_array_loc): Likewise.
4814         * tree-ssa-ccp.c (gimple_htab): Likewise.
4815         * tree-browser.c (tree_upper_hasher): Inherit from nofree_ptr_hash
4816         rather than pointer_type.
4817
4818 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4819
4820         * hash-traits.h (pointer_hash::mark_deleted, pointer_hash::mark_empty)
4821         (pointer_hash::is_deleted, pointer_hash::is_empty): New functions.
4822
4823 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4824
4825         * hash-traits.h (ggc_hasher::remove): Take a reference parameter.
4826         (ggc_hasher::ggc_mx): Likewise.
4827         (ggc_cache_hasher): Inherit from ggc_hasher.  Remove definitions
4828         that duplicate ggc_hasher ones.
4829
4830 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4831
4832         * hash-table.h (hash_table): Add gt_cleare_cache as a friend.
4833         (gt_cleare_cache): Check here for deleted and empty entries.
4834         Replace handle_cache_entry with a call to keep_cache_entry.
4835         * hash-traits.h (ggc_cache_hasher::handle_cache_entry): Delete.
4836         (ggc_cache_hasher::keep_cache_entry): New function.
4837         * trans-mem.c (tm_wrapper_hasher::handle_cache_entry): Delete.
4838         (tm_wrapper_hasher::keep_cache_entry): New function.
4839         * tree.h (tree_decl_map_cache_hasher::handle_cache_entry): Delete.
4840         (tree_vec_map_cache_hasher::keep_cache_entry): New function.
4841         * tree.c (type_cache_hasher::handle_cache_entry): Delete.
4842         (type_cache_hasher::keep_cache_entry): New function.
4843         (tree_vec_map_cache_hasher::handle_cache_entry): Delete.
4844         (tree_vec_map_cache_hasher::keep_cache_entry): New function.
4845         * ubsan.c (tree_type_map_cache_hasher::handle_cache_entry): Delete.
4846         (tree_type_map_cache_hasher::keep_cache_entry): New function.
4847         * varasm.c (tm_clone_hasher::handle_cache_entry): Delete.
4848         (tm_clone_hasher::keep_cache_entry): New function.
4849         * config/i386/i386.c (dllimport_hasher::handle_cache_entry): Delete.
4850         (dllimport_hasher::keep_cache_entry): New function.
4851
4852 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4853
4854         * hash-table.h: Include hash-traits.h.
4855         (typed_free_remove, typed_noop_remove, pointer_hash, ggc_hasher)
4856         (ggc_cache_hasher): Move to...
4857         * hash-traits.h: ...this new file.
4858
4859 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
4860
4861         * tree-core.h (struct tree_optimization_option): Make opts a pointer to
4862         struct cl_optimization.
4863         * tree.h (TREE_OPTIMIZATION): Return the pointer, not the address of it.
4864         * tree.c (make_node_stat): Allocate cl_optimization struct.
4865         (copy_node_stat): Allocate and copy cl_optimization struct.
4866
4867 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
4868
4869         * function.h (struct incoming_args): Move struct.
4870         (pass_by_reference, reference_callee_copied): Remove prototypes.
4871         * emit-rtl.h (struct incoming_args): Relocate struct here.
4872         * calls.h (pass_by_reference, reference_callee_copied): Relocate
4873         prototypes here.
4874         * function.c (pass_by_reference, reference_callee_copied): Move.
4875         * calls.c (pass_by_reference, reference_callee_copied): Relocate here.
4876         * cfgloop.h: Don't include tm.h or hard-reg-set.h.
4877         * ipa-chkp.c: Include calls.h.
4878
4879 2015-06-25  Andrew Macleod  <amacleod@redhat.com>
4880
4881         * alias.h (alias_set_type): Move typedef.
4882         * coretypes.h (alias_set_type): Relocate typedef here.
4883         * rtl.h: Don't include alias.h.
4884
4885 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
4886
4887         * cgraph.h (cgraph_rtl_info): Move to rtl.h
4888         (cgraph_node): Maintain pointer to struct cgraph_rtl_info instead of
4889         and instance.
4890         * rtl.h (struct cgraph_rtl_info): Define when HARD_REG_SET available.
4891         * cgraph.c (cgraph_node::rtl_info): Allocate cgraph_rtl_info if one
4892         doesn't exist.
4893         * calls.c: Include hard-reg-set.h before rtl.h.
4894         * ira.c: Likewise.
4895
4896 2015-06-25  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
4897             Vladimir Makarov  <vmakarov@redhat.com>
4898
4899         * ira-color.c (assign_hard_reg): Remove unecessary bitmap check.
4900         Add assert.
4901
4902 2015-06-25  Richard Biener  <rguenther@suse.de>
4903
4904         * fold-const.c (fold_binary_loc): Move simplification of
4905         (X <<>> C1) & C2 ...
4906         * match.pd: ... here.
4907
4908 2015-06-25  Eric Botcazou  <ebotcazou@adacore.com>
4909
4910         * lto-streamer-out.c (DFS::hash_scc): Fix typos & formatting glitches.
4911
4912 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4913
4914         * match.pd: Add patterns for vec_conds between 1 and 0.
4915
4916 2015-06-25  Richard Biener  <rguenther@suse.de>
4917
4918         * tree-vect-stmts.c (vectorizable_conversion): Do not set
4919         STMT_VINFO_VEC_STMT for SLP.
4920         (vectorizable_store): Likewise.
4921         (vectorizable_load): Likewise.
4922         (vect_transform_stmt): Catch SLP vectorization clobbering
4923         STMT_VINFO_VEC_STMT.
4924
4925 2015-06-25  Richard Biener  <rguenther@suse.de>
4926
4927         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Improve debug
4928         dumping.
4929         (vect_create_mask_and_perm): Do not set STMT_VINFO_VEC_STMT and
4930         cleanup resulting dead code and parameters.
4931         (vect_transform_slp_perm_load): Adjust.
4932
4933 2015-06-25  Nick Clifton  <nickc@redhat.com>
4934
4935         * config/bfin/bfin.c (bfin_expand_prologue): Set
4936         current_function_static_stack_size if flag_stack_usage_info is set.
4937         * config/ft32/ft32.c (ft32_expand_prologue): Likewise.
4938         * config/h8300/h8300.c (h8300_expand_prologue): Likewise.
4939         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
4940         * config/m32c/m32c.c (m32c_emit_prologue): Likewise.
4941
4942 2015-06-25  Tom de Vries  <tom@codesourcery.com>
4943
4944         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Don't claim in header
4945         comment that the generated IV is unsigned.
4946
4947 2015-06-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4948
4949         PR target/29693
4950         * config/arm/arm.c (arm_dbx_register_number): Return
4951         DWARF_FRAME_REGISTERS by default.
4952
4953 2015-06-25  Tom de Vries  <tom@codesourcery.com>
4954
4955         * dominance.c (calculate_dominance_info): Fix verify_dominators call
4956         argument.  Call verify_dominator when reusing dominator info.
4957
4958 2015-06-24  Kaz Kojima  <kkojima@gcc.gnu.org>
4959
4960         PR target/66563
4961         * config/sh/sh.md (GOTaddr2picreg): Add a new operand for
4962         an additional element of the unspec vector.  Modify indices
4963         of operands.
4964         (builtin_setjmp_receiver): Pass const0_rtx to gen_GOTaddr2picreg.
4965         * config/sh/sh.c (prepare_move_operands): Pass incremented
4966         const_int to gen_GOTaddr2picreg.
4967         (sh_expand_prologue): Pass const0_rtx to gen_GOTaddr2picreg.
4968
4969 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
4970
4971         * config/aarch64/aarch64.md (<optab><fcvt_target><GPF:mode>2):
4972         Condition on TARGET_FLOAT.
4973
4974 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
4975
4976         * doc/invoke.texi: Clarify AArch64 feature modifiers (no)fp, (no)simd
4977         and (no)crypto.
4978
4979 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
4980
4981         * config/aarch64/aarch64-protos.h (aarch64_err_no_fpadvsimd): New.
4982
4983         * config/aarch64/aarch64.md (mov<mode>/GPF, movtf): Use
4984         aarch64_err_no_fpadvsimd.
4985
4986         * config/aarch64/aarch64.c (aarch64_err_no_fpadvsimd): New.
4987         (aarch64_layout_arg, aarch64_init_cumulative_args): Use
4988         aarch64_err_no_fpadvsimd if !TARGET_FLOAT and we need FP regs.
4989         (aarch64_expand_builtin_va_start, aarch64_setup_incoming_varargs):
4990         Turn error into assert, test TARGET_FLOAT.
4991         (aarch64_gimplify_va_arg_expr): Use aarch64_err_no_fpadvsimd, test
4992         TARGET_FLOAT.
4993
4994 2015-06-24  Aldy Hernandez  <aldyh@redhat.com>
4995
4996         PR debug/66482
4997         * dwarf2out.c (gen_formal_parameter_die): Remove assert.
4998
4999 2015-06-24  Ilya Enkovich  <enkovich.gnu@gmail.com>
5000
5001         * tree-vect-slp.c (vect_build_slp_tree_1): Init vectype.
5002
5003 2015-06-24 Renlin Li <renlin.li@arm.com>
5004
5005         * config/aarch64/aarch64.h(TARGET_CPU_CPP_BUILTINS): Add
5006         __ARM_ALIGN_MAX_PWR, __ARM_ALIGN_MAX_STACK_PWR.
5007
5008 2015-06-24  Richard Biener  <rguenther@suse.de>
5009
5010         * genmatch.c (enum tree_code): Add VIEW_CONVERT[012].
5011         (main): Likewise.
5012         (lower_opt_convert): Support lowering of conditional view_convert.
5013         (parser::parse_operation): Likewise.
5014         (parser::parse_for): Likewise.
5015
5016 2015-06-24  Renlin Li  <renlin.li@arm.com>
5017
5018         * varasm.c (emit_local): Use unsigned int for align variable.
5019
5020 2015-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5021
5022         PR target/63408
5023         * config/arm/arm.c (vfp3_const_double_for_fract_bits): Disable
5024         for negative numbers.
5025
5026 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5027
5028         PR rtl-optimization/66306
5029         * reload.c (find_reloads): Swap the match_dup info for
5030         commutative operands.
5031
5032 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5033
5034         * config/s390/vx-builtins.md
5035         ("vec_scatter_element<mode>_<non_vec_int>")
5036         ("vec_scatter_element<V_HW_64:mode>_SI"): Replace gf mode
5037         attribute with bhfgq.
5038
5039 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5040
5041         * config/s390/s390-builtins.def: Fix vpopct instruction comments.
5042
5043 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5044
5045         * config/s390/s390-builtin-types.def: Add flag to indicate the
5046         options under which the function type is needed.
5047         * config/s390/s390-builtins.def: Add flag to indicate the options
5048         under which the builtin is enabled.
5049         * config/s390/s390-builtins.h: Add flags parameter to macro
5050         definitions.
5051         (bflags_for_builtin): New function.
5052         (flags_for_builtin): Renamed to ...
5053         (opflags_for_builtin): ... this.
5054         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Rename
5055         flags_for_builtin to bflags_for_builtin and
5056         flags_overloaded_builtin_var to opflags_overloaded_builtin_var.
5057         * config/s390/s390.c: Add initialization of bflags_builtin and
5058         opflags_builtin arrays.
5059         Remove code for flags_builtin.
5060         (s390_init_builtins): Only create builtin function types if one of
5061         their flags is active.
5062         Only create builtins if all of their flags are active.
5063         (s390_expand_builtin): Rename flags_for_builtin to
5064         opflags_for_builtin.
5065
5066 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5067
5068         * config/s390/vecintrin.h: Remove internal builtins.
5069
5070 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5071
5072         * config/s390/s390.c (s390_secondary_reload): Fix check for
5073         GENERAL_REGS register class.
5074
5075 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5076
5077         * config/s390/s390.c (s390_support_vector_misalignment): Call
5078         default implementation for !TARGET_VX.
5079
5080 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5081
5082         * config/s390/s390.c (s390_legitimate_constant_p): Add
5083         TARGET_VX check.
5084
5085 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5086
5087         * config/s390/s390.c (s390_vector_abi): New variable definition.
5088         (s390_check_type_for_vector_abi): New function.
5089         (TARGET_ASM_FILE_END): New macro definition.
5090         (s390_asm_file_end): New function.
5091         (s390_function_arg): Call s390_check_type_for_vector_abi.
5092         (s390_gimplify_va_arg): Likewise.
5093         * configure: Regenerate.
5094         * configure.ac: Check for .gnu_attribute Binutils feature.
5095
5096 2015-06-23  Chen Gang  <gang.chen.5i5j@gmail.com>
5097
5098         PR target/65803
5099         * config/bfin/bfin.c (hwloop_optimize): Initialize
5100         JUMP_LABEL for newly created jump.
5101
5102 2015-06-23  Tristan Gingold  <gingold@adacore.com>
5103
5104         * collect-utils.c (collect_wait): Unlink the response file here
5105         instead of...
5106         (do_wait): ...here.
5107         (utils_cleanup): ...and here.
5108
5109 2015-06-23  Richard Sandiford  <richard.sandiford@arm.com>
5110
5111         * df-scan.c: Don't include target-def.h.
5112         * targhooks.c: Likewise.
5113         * config/arm/arm-c.c: Likewise.
5114         * config/i386/i386-c.c: Likewise.
5115         * config/nds32/nds32-cost.c: Likewise.
5116         * config/nds32/nds32-fp-as-gp.c: Likewise.
5117         * config/nds32/nds32-intrinsic.c: Likewise.
5118         * config/nds32/nds32-isr.c: Likewise.
5119         * config/nds32/nds32-md-auxiliary.c: Likewise.
5120         * config/nds32/nds32-memory-manipulation.c: Likewise.
5121         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
5122         * config/nds32/nds32-predicates.c: Likewise.
5123
5124 2015-06-23  Richard Biener  <rguenther@suse.de>
5125
5126         PR tree-optimization/66636
5127         * tree-vect-stmts.c (vectorizable_store): Properly compute the
5128         def type for further defs for strided stores.
5129
5130 2015-06-23  Nathan Sidwell  <nathan@codesourcery.com>
5131
5132         * config/nvptx/nvptx.md (sel_true<mode>, sel_false<mode>): New
5133         conditional selects.
5134         (setcc_int<mode>, setcc_float<mode>): Reformat.
5135
5136 2015-06-23  Marek Polacek  <polacek@redhat.com>
5137
5138         * match.pd ((x + y) - (x | y) -> x & y,
5139         (x + y) - (x & y) -> x | y): New patterns.
5140
5141 2015-06-23  Ludovic Courtès  <ludo@gnu.org>
5142
5143         PR 65711
5144         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Move
5145         '-dynamic-linker' within %{!shared: ...}.
5146
5147 2015-06-23  Uros Bizjak  <ubizjak@gmail.com>
5148
5149         PR target/66560
5150         * config/i386/predicates.md (addsub_vm_operator): New predicate.
5151         (addsub_vs_operator): Ditto.
5152         (addsub_vs_parallel): Ditto.
5153         * config/i386/sse.md (ssedoublemode): Add V4SF and V2DF modes.
5154         (avx_addsubv4df3, avx_addsubv8sf3, sse3_addsubv2df3, sse3_addsubv4sf3):
5155         Put minus RTX before plus and adjust vec_merge selector.
5156         (*avx_addsubv4df3_1, *avx_addsubv4df3_1s, *sse3_addsubv2df3_1)
5157         (*sse_addsubv2df3_1s, *avx_addsubv8sf3_1, *avx_addsubv8sf3_1s)
5158         (*sse3_addsubv4sf3_1, *sse_addsubv4sf3_1s): Remove insn patterns.
5159         (addsub vec_merge splitters): New combiner splitters.
5160         (addsub vec_select/vec_concat splitters): Ditto.
5161
5162 2015-06-23  Bin Cheng  <bin.cheng@arm.com>
5163
5164         PR tree-optimization/66449
5165         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Use
5166         POINTER_PLUS_EXPR for pointers.
5167
5168 2015-06-23  Alan Modra  <amodra@gmail.com>
5169
5170         * rtlanal.c (commutative_operand_precedence): Correct comments.
5171         * simplify-rtx.c (simplify_plus_minus_op_data_cmp): Delete forward
5172         declaration.  Return an int.  Distinguish REG,REG return from
5173         others.
5174         (struct simplify_plus_minus_op_data): Make local to function.
5175         (simplify_plus_minus): Don't set canonicalized if merely sorting
5176         registers.  Avoid packing ops if nothing changes.  White space fixes.
5177
5178 2015-06-22  Pierre-Marie de Rodat  <derodat@adacore.com>
5179
5180         * gcc.c (default_compilers): Pass "-o %g.s" to cc1 for headers even if
5181         -fdump-ada-spec is passed but not if -fsyntax-only is.
5182
5183 2015-06-22  Vladimir Makarov  <vmakarov@redhat.com>
5184
5185         PR bootstrap/63740
5186         * lra-lives.c (process_bb_lives): Check insn copying the same
5187         reload pseudo and don't create a copy for it.
5188
5189 2015-06-22  Tom de Vries  <tom@codesourcery.com>
5190
5191         * tree-parloops.c (transform_to_exit_first_loop_alt): Add update_stmt
5192         for cond_stmt.
5193
5194 2015-06-22  Tom de Vries  <tom@codesourcery.com>
5195
5196         * builtins.def (DEF_GOMP_BUILTIN): Test
5197         'flag_tree_parallelize_loops > 1' instead of
5198         'flag_tree_parallelize_loops'.  Test flag_cilkplus.
5199
5200 2015-06-22  Tom de Vries  <tom@codesourcery.com>
5201
5202         * dominance.c (calculate_dominance_info): Verify dominators if
5203         early-out.
5204
5205 2015-06-22  Marek Polacek  <polacek@redhat.com>
5206
5207         * match.pd ((x ^ y) ^ (x | y) -> x & y,
5208         (x & y) + (x ^ y) -> x | y, (x & y) | (x ^ y) -> x | y,
5209         (x & y) ^ (x ^ y) -> x | y, (x & y) + (x | y) -> x + y,
5210         (x | y) - (x ^ y) -> x & y, (x | y) - (x & y) -> x ^ y): New patterns.
5211
5212 2015-06-22  Uros Bizjak  <ubizjak@gmail.com>
5213
5214         PR target/65871
5215         * config/i386/i386.c (ix86_rtx_costs) <case COMPARE>: Ignore the
5216         cost of embedded comparison.
5217
5218 2015-06-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5219
5220         PR target/65914
5221         * config/rs6000/predicates.md (altivec_register_operand): Permit
5222         virtual stack registers.
5223         (vsx_register_operand): Likewise.
5224         (vfloat_operand): Likewise.
5225         (vint_operand): Likewise.
5226         (vlogical_operand): Likewise.
5227
5228 2015-06-22  Richard Biener  <rguenther@suse.de>
5229
5230         * tree-vectorizer.h (_loop_vec_info): Add scalar_cost_vec
5231         and single_scalar_iteration_cost members.
5232         (LOOP_VINFO_SCALAR_ITERATION_COST): New.
5233         (LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST): Likewise.
5234         (vect_get_single_scalar_iteration_cost): Remove.
5235         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
5236         Use LOOP_VINFO_SCALAR_ITERATION_COST.
5237         * tree-vect-loop.c (destroy_loop_vec_info): Free
5238         scalar_cost_vec.
5239         (vect_get_single_scalar_iteration_cost): Compute result into
5240         LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST and
5241         LOOP_VINFO_SCALAR_ITERATION_COST.  Make static.
5242         (vect_analyze_loop_2): Call vect_get_single_scalar_iteration_cost.
5243         (vect_estimate_min_profitable_iters): Use them.
5244
5245 2015-06-22  Christian Bruel  <christian.bruel@st.com>
5246
5247         PR target/52144
5248         * config/arm/arm.c (add_attribute, arm_insert_attributes): New functions
5249         (TARGET_INSERT_ATTRIBUTES): Define.
5250         (thumb_flipper): New var.
5251         * config/arm/arm.opt (-mflip-thumb): New switch.
5252
5253 2015-06-22  Jan Hubicka  <hubicka@ucw.cz>
5254             Martin Liska  <mliska@suse.cz>
5255
5256         PR ipa/65908
5257         * ipa-icf.c (sem_item::target_supports_symbol_aliases): Remove
5258         construction of arg_types.
5259         (sem_function::sem_function): Likewise.
5260         (sem_function::~sem_function): Remove destruction of arg_types.
5261         (sem_function::compatible_parm_types_p): New function.
5262         (sem_function::equals_wpa): Reorg matching of return values
5263         and parameter types.
5264         (sem_function::equals_private): Reorg mathcing of argument types.
5265         (sem_function::parse_tree_args): Remove.
5266         * ipa-icf.h (init_wpa): Do not call it.
5267         (parse_tree_args): Remove.
5268         (compatible_parm_types_p): Declare.
5269         (result_type): Remove.
5270         (arg_types): Remove.
5271
5272 2015-06-22  Jan Hubicka  <hubicka@ucw.cz>
5273
5274         PR ipa/66351
5275         * ipa-polymorphic-call.c
5276         (ipa_polymorphic_call_context::get_dynamic_type): Fix thinko when
5277         initializing alias oracle; fix formating; set base_alias_set if it
5278         is known.
5279
5280 2015-06-22  Mikhail Maltsev  <maltsevm@gmail.com>
5281
5282         * auto-inc-dec.c (reverse_mem, reverse_inc): Remove.
5283         (parse_add_or_inc): Use std::swap instead of reverse_{mem,inc}.
5284         (find_inc): Likewise.
5285         * combine.c (combine_simplify_rtx): Use std::swap instead of manually
5286         swapping.
5287         * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
5288         * df-scan.c (df_swap_refs): Remove.
5289         (df_sort_and_compress_refs): Use std::swap instead of df_swap_refs.
5290         * dominance.c (link_roots): Use std::swap instead of manually swapping.
5291         * expr.c (expand_expr_real_2, do_store_flag): Likewise.
5292         * fold-const.c (fold_relational_const): Likewise.
5293         * genattrtab.c (simplify_test_exp): Likewise.
5294         * gimple-match-head.c (gimple_resimplify2, gimple_resimplify3,
5295         gimple_simplify): Likewise.
5296         * ifcvt.c (noce_try_abs, find_if_header): Likewise.
5297         * internal-fn.c (expand_addsub_overflow, expand_mul_overflow): Likewise.
5298         * ipa-devirt.c (add_type_duplicate): Likewise.
5299         * loop-iv.c (get_biv_step_1, iv_number_of_iterations): Likewise.
5300         * lra-lives.c (lra_setup_reload_pseudo_preferenced_hard_reg): Likewise.
5301         * lra.c (lra_create_copy): Likewise.
5302         * lto-streamer-out.c (DFS::DFS): Likewise.
5303         * modulo-sched.c (get_sched_window): Likewise.
5304         * omega.c (omega_pretty_print_problem): Likewise.
5305         * optabs.c (prepare_float_lib_cmp, expand_mult_highpart): Likewise.
5306         * reload1.c (reloads_unique_chain_p): Likewise.
5307         * sel-sched-ir.c (exchange_lv_sets, exchange_av_sets): Remove.
5308         (exchange_data_sets): Move logic from exchange_{av,lv}_sets here and
5309         use std::swap.
5310         * simplify-rtx.c (simplify_unary_operation_1): Use std::swap instead of
5311         manually swapping.
5312         * tree-if-conv.c (is_cond_scalar_reduction, predicate_scalar_phi,
5313         predicate_mem_writes): Likewise.
5314         * tree-loop-distribution.c (pg_add_dependence_edges): Likewise.
5315         * tree-predcom.c (combine_chains): Likewise.
5316         * tree-ssa-alias.c (nonoverlapping_component_refs_p,
5317         refs_may_alias_p_1): Likewise.
5318         * tree-ssa-ifcombine.c (recognize_if_then_else): Likewise.
5319         * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
5320         * tree-ssa-loop-niter.c (refine_bounds_using_guard,
5321         number_of_iterations_cond): Likewise.
5322         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
5323         * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
5324         * tree-vect-slp.c (vect_build_slp_tree): Likewise.
5325         * tree-vect-stmts.c (supportable_widening_operation): Likewise.
5326         * tree-vrp.c (extract_range_from_binary_expr_1,
5327         extract_range_from_unary_expr_1): Likewise.
5328
5329 2015-06-20  Marek Polacek  <polacek@redhat.com>
5330
5331         * common.opt (fsanitize-undefined-trap-on-error): Add Driver.
5332
5333 2015-06-19  Kaz Kojima  <kkojima@gcc.gnu.org>
5334
5335         PR target/66591
5336         * config/sh/sh.c (prepare_move_operands): Replace subreg
5337         index term with R0 for base and index addressing.
5338
5339 2015-06-19  Jim Wilson  <jim.wilson@linaro.org>
5340
5341         * config/aarch64/aarch64.md (mov<mode>:GPF): Don't call force_reg if
5342         op1 is an fp zero.
5343         (movsf_aarch64): Change condition from register_operand to
5344         aarch64_reg_or_fp_zero for op1.  Change type for alternative 6 to
5345         load1.  Change type for alternative 7 to store1.
5346         (movdf_aarch64): Likewise.
5347
5348 2015-06-19  James Greenhalgh  <james.greenhalgh@arm.com>
5349
5350         * config/vax/vax.md: Adjust sign/zero extend patterns to
5351         handle SUBREGs in operands[1].
5352
5353 2015-06-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5354
5355         * config/i386/i386.c (ix86_function_versions): Use std::swap instead
5356         of manually swapping.
5357         (expand_vec_perm_interleave2): Likewise.
5358
5359 2015-06-19  Ilya Enkovich  <enkovich.gnu@gmail.com>
5360
5361         * tree-chkp.c (chkp_compute_bounds_for_assignment): Don't
5362         reuse bounds created for abnormal ssa names.
5363
5364 2015-06-19  Jakub Jelinek  <jakub@redhat.com>
5365
5366         * config/nvptx/nvptx.md (allocate_stack): Rename to...
5367         (allocate_stack_<mode>): ... this, and add :P on both
5368         match_operand and unspec.
5369         (allocate_stack): New expander.
5370
5371 2015-06-19  Christian Bruel  <christian.bruel@st.com>
5372
5373         PR target/66541
5374         PR target/52144
5375         * config/arm/arm.c (arm_set_current_function): Handle
5376         explicit default options.
5377
5378 2015-06-18  Uros Bizjak  <ubizjak@gmail.com>
5379
5380         * config/i386/i386.md (*movsicc_noc_zext): New insn.
5381         (zero-extended cmove with mem peephole2): New pattern.
5382         (cmove with mem peephole2): Merge patterns.
5383
5384 2015-06-18  Segher Boessenkool  <segher@kernel.crashing.org>
5385
5386         * config/rs6000/rs6000.h (WORD_REGISTER_OPERATIONS): Delete.
5387
5388 2015-06-18  Steve Ellcey  <sellcey@imgtec.com>
5389
5390         * config/mips/mips.c (mips_rtx_costs): Remove HONOR_NAN check.
5391         * config/mips/mips.md (*madd4<mode>): Ditto.
5392         (*nmadd3<mode>) Ditto.
5393         (*nmadd4<mode>_fastmath): Ditto.
5394         (*nmadd3<mode>_fastmath): Ditto.
5395         (*nmsub4<mode>): Ditto.
5396         (*nmsub3<mode>): Ditto.
5397         (*nmsub4<mode>_fastmath): Ditto.
5398         (*nmsub3<mode>_fastmath): Ditto.
5399
5400 2015-06-18  Michael Matz  <matz@suse.de>
5401
5402         PR middle-end/66253
5403         * tree-vect-stmts.c (vectorizable_store): Implement non-SLP
5404         grouped strided stores.
5405         (vectorizable_load): Don't use the DR from first_stmt in
5406         the non-SLP grouped strided case.
5407
5408 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
5409
5410         PR target/66569
5411         * function.c (assign_bounds): Add arguments assign_regs,
5412         assign_special, assign_bt.
5413         (assign_parms): For vararg functions handle bounds in BT
5414         and special slots after incoming vararg bounds.
5415
5416 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
5417
5418         PR middle-end/66568
5419         * cfgexpand.c (expand_return): Handle missing bounds.
5420         (expand_gimple_stmt_1): Likewise.
5421         * tree-chkp.c (chkp_expand_zero_bounds): New.
5422         * tree-chkp.h (chkp_expand_zero_bounds): New.
5423
5424 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
5425
5426         PR middle-end/66567
5427         * ipa-chkp.c (chkp_maybe_create_clone): Require
5428         functions to be instrumentable.
5429         * tree-chkp.c (chkp_replace_function_pointer): Use
5430         chkp_instrumentable_p instead of attribute check.
5431
5432 2015-06-18  Richard Biener  <rguenther@suse.de>
5433
5434         PR tree-optimization/66510
5435         * tree-vect-stmts.c (vectorizable_load): Properly compute the
5436         number of vector loads for SLP permuted loads.
5437         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Also
5438         check the stride for loop vectorization.
5439         (vect_enhance_data_refs_alignment): Deal with SLP adjusted
5440         vectorization factor.
5441         (vect_analyze_group_access): If the group size is not a power
5442         of two require a epilogue loop.
5443         * tree-vect-loop.c (vect_analyze_loop_2): Move alignment
5444         compute and optimizing and alias test pruning after final
5445         vectorization factor computation.
5446         * tree-vect-slp.c (vect_build_slp_tree_1): Remove check on
5447         vector alignment.
5448         (vect_transform_slp_perm_load): Properly compute the original
5449         number of vector load stmts.
5450
5451 2015-06-18  Uros Bizjak  <ubizjak@gmail.com>
5452
5453         * doc/invoke.texi (-fsanitize-sections): Split @var to avoid
5454         "unlikely character , in @var" warning.
5455
5456 2015-06-17  Uros Bizjak  <ubizjak@gmail.com>
5457
5458         * config/i386/i386.c (ix86_function_arg): Nest TARGET_64BIT code.
5459         (ix86_function_arg_advance): Ditto.
5460         (ix86_pass_by_reference): Ditto.  Rewrite MS_ABI part.
5461
5462 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
5463
5464         * function.h (struct rtl_data): Remove struct and accessor macros.
5465         * emit-rtl.h (struct rtl_data): Relocate to here.
5466         * Makefile.in (GTFILES): Add emit-rtl.h.
5467         * df-core.c: Include emit-rtl.h.
5468         * genattrtab.c: Likewise.
5469         * genconditions.c: Likewise.
5470         * genpreds.c: Likewise.
5471         * genrecog.c: Likewise.
5472         * regcprop.c: Likewise.
5473         * resource.c: Likewise.
5474         * sched-rgn.c: Likewise.
5475         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
5476         * config/i386/winnt.c: Likewise.
5477
5478 2015-06-17  Jakub Jelinek  <jakub@redhat.com>
5479
5480         PR middle-end/66429
5481         * omp-low.c (expand_omp_taskreg, expand_omp_target): Use child_cfun
5482         instead of DECL_STRUCT_FUNCTION (child_fn).  Or in has_simduid_loops
5483         and has_force_vectorize_loops flags from cfun into
5484         child_cfun.
5485         (expand_omp_simd): For broken loop, set cfun->has_simduid_loops
5486         if simduid is non-NULL.
5487         * tree-pass.h (make_pass_simduid_cleanup): New prototype.
5488         * passes.def (pass_simduid_cleanup): Add new pass after loop
5489         passes.
5490         * tree-vectorizer.c (adjust_simduid_builtins): Remove one unnecessary
5491         indirection from htab argument's type.
5492         (shrink_simd_arrays): New function.
5493         (vectorize_loops): Use it.  Adjust adjust_simduid_builtins caller.
5494         Don't call adjust_simduid_builtins if there are no loops.
5495         (pass_data_simduid_cleanup, pass_simduid_cleanup): New variables.
5496         (pass_simduid_cleanup::execute): New method.
5497         (make_pass_simduid_cleanup): New function.
5498
5499 2017-06-17  Andrew MacLeod  <amacleod@redhat.com>
5500
5501         * tree-core.h (tree_target_option): Make opts field a pointer to a
5502         cl_target_option instead of an instance of the struct.
5503         * tree.h (TREE_TARGET_OPTION): Return the pointer, not an address of
5504         the structure.
5505         * tree.c (make_node_stat ): Allocate a cl_target_option struct for
5506         TARGET_OPTION_NODE.
5507         (copy_node_stat): Allocate and copy struct cl_target_option.
5508
5509 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
5510
5511         * tree.h (merge_dllimport_decl_attributes, handle_dll_attribute):
5512         Remove conditional exposure of prototypes.
5513         (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Delete.
5514         * tree.c (anon_aggrname_format, anon_aggrname_p): New.  Replace macro
5515         definitions in tree.h with functions.
5516         * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Use
5517         anon_aggrname_p.
5518         * tree-streamer-out.c (write_ts_decl_minimal_tree_pointers): Likewise.
5519
5520 2015-06-17  Segher Boessenkool  <segher@kernel.crashing.org>
5521
5522         * config/rs6000/rs6000.md (*cmp<mode>_internal1): Rename to...
5523         (*cmp<mode>_signed): ... this.
5524         (*cmpsi_internal2, *cmpdi_internal2): Merge, rename to...
5525         (*cmp<mode>_unsigned): ... this.  Remove %b.
5526
5527 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
5528
5529         * coretypes.h: Include input.h and as-a.h.
5530         * rtl.h: Include input.h and as-a.h for generator files.
5531         * hwint.c: Include coretypes.h, don't include diagnostic-core.h.
5532         * vec.c: Don't include diagnostic-core.h.
5533         * alias.c: Do not include input.h, line-map.h or is-a.h.
5534         * asan.c: Likewise.
5535         * attribs.c: Likewise.
5536         * auto-inc-dec.c: Likewise.
5537         * auto-profile.c: Likewise.
5538         * bb-reorder.c: Likewise.
5539         * bt-load.c: Likewise.
5540         * builtins.c: Likewise.
5541         * caller-save.c: Likewise.
5542         * calls.c: Likewise.
5543         * ccmp.c: Likewise.
5544         * cfg.c: Likewise.
5545         * cfganal.c: Likewise.
5546         * cfgbuild.c: Likewise.
5547         * cfgcleanup.c: Likewise.
5548         * cfgexpand.c: Likewise.
5549         * cfghooks.c: Likewise.
5550         * cfgloop.c: Likewise.
5551         * cfgloop.h: Likewise.
5552         * cfgloopanal.c: Likewise.
5553         * cfgloopmanip.c: Likewise.
5554         * cfgrtl.c: Likewise.
5555         * cgraph.c: Likewise.
5556         * cgraphbuild.c: Likewise.
5557         * cgraphclones.c: Likewise.
5558         * cgraphunit.c: Likewise.
5559         * cilk-common.c: Likewise.
5560         * combine-stack-adj.c: Likewise.
5561         * combine.c: Likewise.
5562         * compare-elim.c: Likewise.
5563         * convert.c: Likewise.
5564         * coverage.c: Likewise.
5565         * cppbuiltin.c: Likewise.
5566         * cprop.c: Likewise.
5567         * cse.c: Likewise.
5568         * cselib.c: Likewise.
5569         * data-streamer-in.c: Likewise.
5570         * data-streamer-out.c: Likewise.
5571         * data-streamer.c: Likewise.
5572         * dbxout.c: Likewise.
5573         * dce.c: Likewise.
5574         * ddg.c: Likewise.
5575         * debug.c: Likewise.
5576         * df-core.c: Likewise.
5577         * df-problems.c: Likewise.
5578         * df-scan.c: Likewise.
5579         * df.h: Likewise.
5580         * dfp.c: Likewise.
5581         * diagnostic-core.h: Likewise.
5582         * diagnostic.c: Likewise.
5583         * dojump.c: Likewise.
5584         * dominance.c: Likewise.
5585         * domwalk.c: Likewise.
5586         * double-int.c: Likewise.
5587         * dse.c: Likewise.
5588         * dumpfile.c: Likewise.
5589         * dumpfile.h: Likewise.
5590         * dwarf2asm.c: Likewise.
5591         * dwarf2cfi.c: Likewise.
5592         * dwarf2out.c: Likewise.
5593         * emit-rtl.c: Likewise.
5594         * et-forest.c: Likewise.
5595         * except.c: Likewise.
5596         * explow.c: Likewise.
5597         * expmed.c: Likewise.
5598         * expr.c: Likewise.
5599         * final.c: Likewise.
5600         * fixed-value.c: Likewise.
5601         * fold-const.c: Likewise.
5602         * function.c: Likewise.
5603         * fwprop.c: Likewise.
5604         * gcc-plugin.h: Likewise.
5605         * gcse.c: Likewise.
5606         * generic-match-head.c: Likewise.
5607         * ggc-page.c: Likewise.
5608         * gimple-builder.c: Likewise.
5609         * gimple-expr.c: Likewise.
5610         * gimple-fold.c: Likewise.
5611         * gimple-iterator.c: Likewise.
5612         * gimple-low.c: Likewise.
5613         * gimple-match-head.c: Likewise.
5614         * gimple-pretty-print.c: Likewise.
5615         * gimple-ssa-isolate-paths.c: Likewise.
5616         * gimple-ssa-strength-reduction.c: Likewise.
5617         * gimple-streamer-in.c: Likewise.
5618         * gimple-streamer-out.c: Likewise.
5619         * gimple-streamer.h: Likewise.
5620         * gimple-walk.c: Likewise.
5621         * gimple.c: Likewise.
5622         * gimplify-me.c: Likewise.
5623         * gimplify.c: Likewise.
5624         * godump.c: Likewise.
5625         * graph.c: Likewise.
5626         * graphite-blocking.c: Likewise.
5627         * graphite-dependences.c: Likewise.
5628         * graphite-interchange.c: Likewise.
5629         * graphite-isl-ast-to-gimple.c: Likewise.
5630         * graphite-optimize-isl.c: Likewise.
5631         * graphite-poly.c: Likewise.
5632         * graphite-scop-detection.c: Likewise.
5633         * graphite-sese-to-poly.c: Likewise.
5634         * graphite.c: Likewise.
5635         * haifa-sched.c: Likewise.
5636         * hw-doloop.c: Likewise.
5637         * ifcvt.c: Likewise.
5638         * init-regs.c: Likewise.
5639         * input.c: Likewise.
5640         * internal-fn.c: Likewise.
5641         * ipa-chkp.c: Likewise.
5642         * ipa-comdats.c: Likewise.
5643         * ipa-cp.c: Likewise.
5644         * ipa-devirt.c: Likewise.
5645         * ipa-icf-gimple.c: Likewise.
5646         * ipa-icf.c: Likewise.
5647         * ipa-inline-analysis.c: Likewise.
5648         * ipa-inline-transform.c: Likewise.
5649         * ipa-inline.c: Likewise.
5650         * ipa-polymorphic-call.c: Likewise.
5651         * ipa-profile.c: Likewise.
5652         * ipa-prop.c: Likewise.
5653         * ipa-pure-const.c: Likewise.
5654         * ipa-ref.c: Likewise.
5655         * ipa-reference.c: Likewise.
5656         * ipa-split.c: Likewise.
5657         * ipa-utils.c: Likewise.
5658         * ipa-visibility.c: Likewise.
5659         * ipa.c: Likewise.
5660         * ira-build.c: Likewise.
5661         * ira-color.c: Likewise.
5662         * ira-conflicts.c: Likewise.
5663         * ira-costs.c: Likewise.
5664         * ira-emit.c: Likewise.
5665         * ira-lives.c: Likewise.
5666         * ira.c: Likewise.
5667         * jump.c: Likewise.
5668         * langhooks.c: Likewise.
5669         * lcm.c: Likewise.
5670         * loop-doloop.c: Likewise.
5671         * loop-init.c: Likewise.
5672         * loop-invariant.c: Likewise.
5673         * loop-iv.c: Likewise.
5674         * loop-unroll.c: Likewise.
5675         * lower-subreg.c: Likewise.
5676         * lra-assigns.c: Likewise.
5677         * lra-coalesce.c: Likewise.
5678         * lra-constraints.c: Likewise.
5679         * lra-eliminations.c: Likewise.
5680         * lra-lives.c: Likewise.
5681         * lra-remat.c: Likewise.
5682         * lra-spills.c: Likewise.
5683         * lra.c: Likewise.
5684         * lto-cgraph.c: Likewise.
5685         * lto-compress.c: Likewise.
5686         * lto-opts.c: Likewise.
5687         * lto-section-in.c: Likewise.
5688         * lto-section-out.c: Likewise.
5689         * lto-streamer-in.c: Likewise.
5690         * lto-streamer-out.c: Likewise.
5691         * lto-streamer.c: Likewise.
5692         * mcf.c: Likewise.
5693         * mode-switching.c: Likewise.
5694         * modulo-sched.c: Likewise.
5695         * omega.c: Likewise.
5696         * omp-low.c: Likewise.
5697         * optabs.c: Likewise.
5698         * opts-global.c: Likewise.
5699         * opts.h: Likewise.
5700         * passes.c: Likewise.
5701         * plugin.c: Likewise.
5702         * postreload-gcse.c: Likewise.
5703         * postreload.c: Likewise.
5704         * predict.c: Likewise.
5705         * pretty-print.h: Likewise.
5706         * print-rtl.c: Likewise.
5707         * print-tree.c: Likewise.
5708         * profile.c: Likewise.
5709         * real.c: Likewise.
5710         * realmpfr.c: Likewise.
5711         * recog.c: Likewise.
5712         * ree.c: Likewise.
5713         * reg-stack.c: Likewise.
5714         * regcprop.c: Likewise.
5715         * reginfo.c: Likewise.
5716         * regrename.c: Likewise.
5717         * regstat.c: Likewise.
5718         * reload.c: Likewise.
5719         * reload1.c: Likewise.
5720         * reorg.c: Likewise.
5721         * resource.c: Likewise.
5722         * rtl-chkp.c: Likewise.
5723         * rtl-error.c: Likewise.
5724         * rtlanal.c: Likewise.
5725         * rtlhooks.c: Likewise.
5726         * sanopt.c: Likewise.
5727         * sched-deps.c: Likewise.
5728         * sched-ebb.c: Likewise.
5729         * sched-rgn.c: Likewise.
5730         * sched-vis.c: Likewise.
5731         * sdbout.c: Likewise.
5732         * sel-sched-dump.c: Likewise.
5733         * sel-sched-ir.c: Likewise.
5734         * sel-sched.c: Likewise.
5735         * sese.c: Likewise.
5736         * shrink-wrap.c: Likewise.
5737         * simplify-rtx.c: Likewise.
5738         * stack-ptr-mod.c: Likewise.
5739         * statistics.c: Likewise.
5740         * stmt.c: Likewise.
5741         * stor-layout.c: Likewise.
5742         * store-motion.c: Likewise.
5743         * streamer-hooks.c: Likewise.
5744         * stringpool.c: Likewise.
5745         * symtab.c: Likewise.
5746         * target-globals.c: Likewise.
5747         * targhooks.c: Likewise.
5748         * toplev.c: Likewise.
5749         * tracer.c: Likewise.
5750         * trans-mem.c: Likewise.
5751         * tree-affine.c: Likewise.
5752         * tree-browser.c: Likewise.
5753         * tree-call-cdce.c: Likewise.
5754         * tree-cfg.c: Likewise.
5755         * tree-cfgcleanup.c: Likewise.
5756         * tree-chkp-opt.c: Likewise.
5757         * tree-chkp.c: Likewise.
5758         * tree-chrec.c: Likewise.
5759         * tree-complex.c: Likewise.
5760         * tree-data-ref.c: Likewise.
5761         * tree-dfa.c: Likewise.
5762         * tree-diagnostic.c: Likewise.
5763         * tree-dump.c: Likewise.
5764         * tree-eh.c: Likewise.
5765         * tree-emutls.c: Likewise.
5766         * tree-if-conv.c: Likewise.
5767         * tree-inline.c: Likewise.
5768         * tree-into-ssa.c: Likewise.
5769         * tree-iterator.c: Likewise.
5770         * tree-loop-distribution.c: Likewise.
5771         * tree-nested.c: Likewise.
5772         * tree-nrv.c: Likewise.
5773         * tree-object-size.c: Likewise.
5774         * tree-outof-ssa.c: Likewise.
5775         * tree-parloops.c: Likewise.
5776         * tree-phinodes.c: Likewise.
5777         * tree-predcom.c: Likewise.
5778         * tree-pretty-print.c: Likewise.
5779         * tree-profile.c: Likewise.
5780         * tree-scalar-evolution.c: Likewise.
5781         * tree-sra.c: Likewise.
5782         * tree-ssa-address.c: Likewise.
5783         * tree-ssa-alias.c: Likewise.
5784         * tree-ssa-ccp.c: Likewise.
5785         * tree-ssa-coalesce.c: Likewise.
5786         * tree-ssa-copy.c: Likewise.
5787         * tree-ssa-copyrename.c: Likewise.
5788         * tree-ssa-dce.c: Likewise.
5789         * tree-ssa-dom.c: Likewise.
5790         * tree-ssa-dse.c: Likewise.
5791         * tree-ssa-forwprop.c: Likewise.
5792         * tree-ssa-ifcombine.c: Likewise.
5793         * tree-ssa-live.c: Likewise.
5794         * tree-ssa-loop-ch.c: Likewise.
5795         * tree-ssa-loop-im.c: Likewise.
5796         * tree-ssa-loop-ivcanon.c: Likewise.
5797         * tree-ssa-loop-ivopts.c: Likewise.
5798         * tree-ssa-loop-manip.c: Likewise.
5799         * tree-ssa-loop-niter.c: Likewise.
5800         * tree-ssa-loop-prefetch.c: Likewise.
5801         * tree-ssa-loop-unswitch.c: Likewise.
5802         * tree-ssa-loop.c: Likewise.
5803         * tree-ssa-math-opts.c: Likewise.
5804         * tree-ssa-operands.c: Likewise.
5805         * tree-ssa-phiopt.c: Likewise.
5806         * tree-ssa-phiprop.c: Likewise.
5807         * tree-ssa-pre.c: Likewise.
5808         * tree-ssa-propagate.c: Likewise.
5809         * tree-ssa-reassoc.c: Likewise.
5810         * tree-ssa-sccvn.c: Likewise.
5811         * tree-ssa-scopedtables.c: Likewise.
5812         * tree-ssa-sink.c: Likewise.
5813         * tree-ssa-strlen.c: Likewise.
5814         * tree-ssa-structalias.c: Likewise.
5815         * tree-ssa-tail-merge.c: Likewise.
5816         * tree-ssa-ter.c: Likewise.
5817         * tree-ssa-threadedge.c: Likewise.
5818         * tree-ssa-threadupdate.c: Likewise.
5819         * tree-ssa-uncprop.c: Likewise.
5820         * tree-ssa-uninit.c: Likewise.
5821         * tree-ssa.c: Likewise.
5822         * tree-ssanames.c: Likewise.
5823         * tree-stdarg.c: Likewise.
5824         * tree-streamer-in.c: Likewise.
5825         * tree-streamer-out.c: Likewise.
5826         * tree-streamer.c: Likewise.
5827         * tree-switch-conversion.c: Likewise.
5828         * tree-tailcall.c: Likewise.
5829         * tree-vect-data-refs.c: Likewise.
5830         * tree-vect-generic.c: Likewise.
5831         * tree-vect-loop-manip.c: Likewise.
5832         * tree-vect-loop.c: Likewise.
5833         * tree-vect-patterns.c: Likewise.
5834         * tree-vect-slp.c: Likewise.
5835         * tree-vect-stmts.c: Likewise.
5836         * tree-vectorizer.c: Likewise.
5837         * tree-vrp.c: Likewise.
5838         * tree.c: Likewise.
5839         * tsan.c: Likewise.
5840         * ubsan.c: Likewise.
5841         * valtrack.c: Likewise.
5842         * value-prof.c: Likewise.
5843         * var-tracking.c: Likewise.
5844         * varasm.c: Likewise.
5845         * varpool.c: Likewise.
5846         * vmsdbgout.c: Likewise.
5847         * vtable-verify.c: Likewise.
5848         * web.c: Likewise.
5849         * wide-int.cc: Likewise.
5850         * xcoffout.c: Likewise.
5851         * common/common-target.h: Do not include input.h, line-map.h or is-a.h.
5852         * common/common-targhooks.c: Likewise.
5853         * config/aarch64/aarch64-builtins.c: Likewise.
5854         * config/aarch64/aarch64.c: Likewise.
5855         * config/alpha/alpha.c: Likewise.
5856         * config/arc/arc.c: Likewise.
5857         * config/arm/aarch-common.c: Likewise.
5858         * config/arm/arm-builtins.c: Likewise.
5859         * config/arm/arm-c.c: Likewise.
5860         * config/arm/arm.c: Likewise.
5861         * config/avr/avr-c.c: Likewise.
5862         * config/avr/avr-log.c: Likewise.
5863         * config/avr/avr.c: Likewise.
5864         * config/bfin/bfin.c: Likewise.
5865         * config/c6x/c6x.c: Likewise.
5866         * config/cr16/cr16.c: Likewise.
5867         * config/cris/cris.c: Likewise.
5868         * config/darwin-c.c: Likewise.
5869         * config/darwin.c: Likewise.
5870         * config/default-c.c: Likewise.
5871         * config/epiphany/epiphany.c: Likewise.
5872         * config/epiphany/mode-switch-use.c: Likewise.
5873         * config/epiphany/resolve-sw-modes.c: Likewise.
5874         * config/fr30/fr30.c: Likewise.
5875         * config/frv/frv.c: Likewise.
5876         * config/ft32/ft32.c: Likewise.
5877         * config/glibc-c.c: Likewise.
5878         * config/h8300/h8300.c: Likewise.
5879         * config/i386/i386-c.c: Likewise.
5880         * config/i386/i386.c: Likewise.
5881         * config/i386/msformat-c.c: Likewise.
5882         * config/i386/winnt-cxx.c: Likewise.
5883         * config/i386/winnt-stubs.c: Likewise.
5884         * config/i386/winnt.c: Likewise.
5885         * config/ia64/ia64-c.c: Likewise.
5886         * config/ia64/ia64.c: Likewise.
5887         * config/iq2000/iq2000.c: Likewise.
5888         * config/lm32/lm32.c: Likewise.
5889         * config/m32c/m32c-pragma.c: Likewise.
5890         * config/m32c/m32c.c: Likewise.
5891         * config/m32r/m32r.c: Likewise.
5892         * config/m68k/m68k.c: Likewise.
5893         * config/mcore/mcore.c: Likewise.
5894         * config/mep/mep-pragma.c: Likewise.
5895         * config/mep/mep.c: Likewise.
5896         * config/microblaze/microblaze-c.c: Likewise.
5897         * config/microblaze/microblaze.c: Likewise.
5898         * config/mips/mips.c: Likewise.
5899         * config/mmix/mmix.c: Likewise.
5900         * config/mn10300/mn10300.c: Likewise.
5901         * config/moxie/moxie.c: Likewise.
5902         * config/msp430/msp430-c.c: Likewise.
5903         * config/msp430/msp430.c: Likewise.
5904         * config/nds32/nds32-cost.c: Likewise.
5905         * config/nds32/nds32-fp-as-gp.c: Likewise.
5906         * config/nds32/nds32-intrinsic.c: Likewise.
5907         * config/nds32/nds32-isr.c: Likewise.
5908         * config/nds32/nds32-md-auxiliary.c: Likewise.
5909         * config/nds32/nds32-memory-manipulation.c: Likewise.
5910         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
5911         * config/nds32/nds32-predicates.c: Likewise.
5912         * config/nds32/nds32.c: Likewise.
5913         * config/nios2/nios2.c: Likewise.
5914         * config/nvptx/nvptx.c: Likewise.
5915         * config/pa/pa.c: Likewise.
5916         * config/pdp11/pdp11.c: Likewise.
5917         * config/rl78/rl78-c.c: Likewise.
5918         * config/rl78/rl78.c: Likewise.
5919         * config/rs6000/rs6000-c.c: Likewise.
5920         * config/rs6000/rs6000.c: Likewise.
5921         * config/rx/rx.c: Likewise.
5922         * config/s390/s390-c.c: Likewise.
5923         * config/s390/s390.c: Likewise.
5924         * config/sh/sh-c.c: Likewise.
5925         * config/sh/sh-mem.cc: Likewise.
5926         * config/sh/sh.c: Likewise.
5927         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
5928         * config/sh/sh_treg_combine.cc: Likewise.
5929         * config/sol2-c.c: Likewise.
5930         * config/sol2-cxx.c: Likewise.
5931         * config/sol2-stubs.c: Likewise.
5932         * config/sol2.c: Likewise.
5933         * config/sparc/sparc-c.c: Likewise.
5934         * config/sparc/sparc.c: Likewise.
5935         * config/spu/spu-c.c: Likewise.
5936         * config/spu/spu.c: Likewise.
5937         * config/stormy16/stormy16.c: Likewise.
5938         * config/tilegx/mul-tables.c: Likewise.
5939         * config/tilegx/tilegx-c.c: Likewise.
5940         * config/tilegx/tilegx.c: Likewise.
5941         * config/tilepro/mul-tables.c: Likewise.
5942         * config/tilepro/tilepro-c.c: Likewise.
5943         * config/tilepro/tilepro.c: Likewise.
5944         * config/v850/v850-c.c: Likewise.
5945         * config/v850/v850.c: Likewise.
5946         * config/vax/vax.c: Likewise.
5947         * config/visium/visium.c: Likewise.
5948         * config/vms/vms-c.c: Likewise.
5949         * config/vms/vms.c: Likewise.
5950         * config/vxworks.c: Likewise.
5951         * config/winnt-c.c: Likewise.
5952         * config/xtensa/xtensa.c: Likewise.
5953
5954 2015-06-17  Robert Suchanek  <robert.suchanek@imgtec.com>
5955
5956         * config/mips/mips.c (mips_ira_change_pseudo_allocno_class): New
5957         function.
5958         (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define macro.
5959
5960 2015-06-17  Richard Biener  <rguenther@suse.de>
5961
5962         PR tree-optimization/66251
5963         * tree-vect-stmts.c (vectorizable_store): Fix gathering of vectorized
5964         stmts for SLP strided stores.
5965
5966         Revert
5967         2015-05-22  Richard Biener  <rguenther@suse.de>
5968
5969         PR tree-optimization/66251
5970         * tree-vect-stmts.c (vectorizable_conversion): Properly
5971         set STMT_VINFO_VEC_STMT even for the SLP case.
5972
5973         2015-05-26  Michael Matz  <matz@suse.de>
5974
5975         PR middle-end/66251
5976         * tree-vect-stmts.c (vect_create_vectorized_demotion_stmts): Always set
5977         STMT_VINFO_VEC_STMT, also with SLP.
5978
5979 2015-06-16  Uros Bizjak  <ubizjak@gmail.com>
5980
5981         PR target/56766
5982         * config/i386/sse.md (*avx_addsubv4df3_1): New insn pattern.
5983         (*avx_addsubv4df3_1s): Ditto.
5984         (*sse3_addsubv2df3_1): Ditto.
5985         (*sse3_addsubv2df3_1s): Ditto.
5986         (*avx_addsubv8sf3_1): Ditto.
5987         (*avx_addsubv8sf3_1s): Ditto.
5988         (*sse3_addsubv4sf3_1): Ditto.
5989         (*sse3_addsubv4sf3_1s): Ditto.
5990
5991 2015-06-16  Steve Ellcey  <sellcey@imgtec.com>
5992
5993         * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): New.
5994         (SYSROOT_SUFFIX_SPEC): Update.
5995         (SYSROOT_HEADERS_SUFFIX_SPEC): New.
5996         (STARTFILE_PREFIX_SPEC): Update.
5997         * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Remove.
5998         (MULTILIB_REQUIRED): New.
5999         (MULTILIB_OSDIRNAMES): New.
6000         * config/mips/t-img-linux (MULTILIB_EXCEPTIONS): Remove.
6001         (MULTILIB_REQUIRED): New.
6002         (MULTILIB_OSDIRNAMES): New.
6003
6004 2015-06-16  Matthew Wahab  <matthew.wahab@arm.com>
6005
6006         * config/aarch64/aarch64-arches.def: Add "armv8.1-a".
6007         * config/aarch64/aarch64-options-extensions.def: Update "fP",
6008         "simd" and "crypto".  Add "lse", "pan", "lor" and "rdma".
6009         * gcc/config/aarch64/aarch64.h (AARCH64_FL_LSE): New.
6010         (AARCH64_FL_PAN): New.
6011         (AARCH64_FL_LOR): New.
6012         (AARCH64_FL_RDMA): New.
6013         (AARCH64_FL_FOR_ARCH8_1): New.
6014         * doc/invoke.texi (AArch64 Options): Add "armv8.1-a" to
6015         -march. Add "lse", "pan", "lor", "rdma" to feature modifiers.
6016
6017 2015-06-16  Martin Liska  <mliska@suse.cz>
6018
6019         * bitmap.c (dump_bitmap_statistics): Fix GNU coding style.
6020         * hash-table.c (void dump_hash_table_loc_statistics): Add missing
6021         guard.
6022
6023 2015-06-16  Richard Biener  <rguenther@suse.de>
6024
6025         * tree-vect-stmts.c (vectorizable_store): Adjust.
6026         (vectorizable_load): Likewise.
6027         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
6028         Simplify.
6029         (vect_create_data_ref_ptr): Likewise.
6030         (bump_vector_ptr): Adjust.
6031
6032 2015-06-16  Richard Biener  <rguenther@suse.de>
6033
6034         * tree-vect-stmts.c (vectorizable_load): Properly start loads
6035         with the first element if this is grouped loads.
6036
6037 2015-06-16  James Greenhalgh  <james.greenhalgh@arm.com>
6038
6039         * config/arm/arm-protos.h (struct tune_params): Rename
6040         log_op_non_sc to log_op_non_short_circuit, and rename enum
6041         values to expand SC to SHORT_CIRCUIT.
6042         * config/arm/arm.c (arm_slowmul_tune): Expand LOG_OP_NON_SC
6043         to LOG_OP_NON_SHORT_CIRCUIT.
6044         (arm_fastmul_tune):Likewise
6045         (arm_strongarm_tune): Likewise.
6046         (arm_xscale_tune): Likewise.
6047         (arm_9e_tune): Likewise.
6048         (arm_marvell_pj4_tune): Likewise.
6049         (arm_v6t2_tune): Likewise.
6050         (arm_cortex_tune): Likewise.
6051         (arm_cortex_a8_tune): Likewise.
6052         (arm_cortex_a7_tune): Likewise.
6053         (arm_cortex_a15_tune): Likewise.
6054         (arm_cortex_a53_tune): Likewise.
6055         (arm_cortex_a57_tune): Likewise.
6056         (arm_xgene1_tune): Likewise.
6057         (arm_cortex_a5_tune): Likewise.
6058         (arm_cortex_a9_tune): Likewise.
6059         (arm_cortex_a12_tune): Likewise.
6060         (arm_v7m_tune): Likewise.
6061         (arm_cortex_m7_tune): Likewise.
6062         (arm_v6m_tune): Likewise.
6063         (arm_fa726te_tune): Likewise.
6064
6065 2015-06-15  David Edelsohn  <dje.gcc@gmail.com>
6066
6067         * altivec.md: Delete UNSPEC_VMLADDUHM.
6068         (mulv4si3_p8): New pattern.
6069         (mulv4si3): Use it for POWER8.
6070         (mulv8hi3): Use vmladduhm with zero addend.
6071         (altivec_vmladduhm): Descriptive RTL.
6072
6073 2015-06-15  Jim Wilson  <jim.wilson@linaro.org>
6074
6075         * config/aarch64/aarch64.md (mov<mode>_aarch64): Change alternative 2
6076         to use neon_move instead of mov_imm.
6077         (movdi_aarch64): Change alternative 14 to use neon_move not fmov.
6078         (movtf_aarch64): Change alternative 4 to use neon_move_q not fconstd.
6079
6080         * config/aarch64/aarch64.c (aarch64_valid_floating_const): Move
6081         aarch64_float_const_zero_rtx_p check before TFmode check.
6082         * config/aarch64/aarch64.md (movtf): Don't call force_reg if op1 is
6083         an fp zero.
6084         (movtf_aarch64): Separate ?rY alternative into two.  Adjust assembly
6085         code and attributes to match.  Change condition from register_operand
6086         to aarch64_reg_or_fp_zero for op1.  Change type for ldp from
6087         neon_load1_2reg to load2.  Change type for stp from neon_store1_2reg
6088         to store2.
6089
6090 2015-06-15  Aldy Hernandez  <aldyh@redhat.com>
6091
6092         PR debug/66535
6093         * dwarf2out.c (gen_subprogram_die): Do not check a parent's tag if
6094         there is no parent.
6095
6096 2015-06-14  Shiva Chen  <shiva0217@gmail.com>
6097
6098         * aarch64.c (aarch64_simd_lane_bounds): Change %ld to %wd for
6099         HOST_WIDE_INT parameter.
6100
6101 2015-06-14  Jan Hubicka  <hubicka@ucw.cz>
6102
6103         PR ipa/66181
6104         * lto-streamer-out.c (hash_tree): Do not hash TYPE_NO_FORCE_BLK.
6105         * tree-streamer-out.c (pack_ts_type_common_value_fields): Do not stream
6106         TYPE_NO_FORCE_BLK.
6107         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Likewise.
6108
6109 2015-06-14  Richard Sandiford  <richard.sandiford@arm.com>
6110
6111         * rtl.h (classify_insn): Declare.
6112         * emit-rtl.c (classify_insn): Move to...
6113         * rtl.c: ...here and add generator support.
6114         * gensupport.h (get_emit_function, needs_barrier_p): Declare.
6115         * gensupport.c (get_emit_function, needs_barrier_p): New functions.
6116         * genemit.c (gen_emit_seq): New function.
6117         (gen_expand, gen_split): Use it.
6118
6119 2015-06-13  Patrick Palka  <ppalka@gcc.gnu.org>
6120
6121         * tree.c (make_vector_stat): Fix comment to state that the
6122         function returns a VECTOR_CST.
6123
6124 2015-06-13  Richard Sandiford  <richard.sandiford@arm.com>
6125
6126         * gensupport.h (add_implicit_parallel): Declare.
6127         * genrecog.c (add_implicit_parallel): Move to...
6128         * gensupport.c (add_implicit_parallel): ...here.
6129         (process_one_cond_exec): Use it.
6130         * genemit.c (gen_insn): Likewise.
6131
6132 2015-06-13  Iain Sandoe  <iain@codesourcery.com>
6133
6134         PR bootstrap/66448
6135         * passes.c (rest_of_decl_compilation): Do not register globals for
6136         early debug if they are declared in built-ins.
6137
6138 2015-06-12  Aldy Hernandez  <aldyh@redhat.com>
6139
6140         * dwarf2out.c (check_die): Protect with ENABLE_CHECKING.
6141
6142 2015-06-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6143
6144         * ifcvt.c (noce_try_store_flag_constants): Use std::swap instead of
6145         manually swapping.
6146         (noce_try_cmove_arith): Likewise.
6147         (noce_get_alt_condition): Likewise.
6148
6149 2015-06-12  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
6150
6151         * common/config/i386/i386-common.c
6152         (OPTION_MASK_ISA_MWAITX_SET): New.
6153         (ix86_handle_option): Handle mwaitx.
6154         * config.gcc (i[34567]86-*-*): Add mwaitxintrin.h,
6155         (x86_64-*-*): Likewise.
6156         * config/i386/mwaitxintrin.h: New header.
6157         * config/i386/cpuid.h (bit_MWAITX):  Define.
6158         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
6159         MWAITX support.
6160         * config/i386/i386.opt (mwaitx): New.
6161         * config/i386/i386-builtin-types.def
6162         (VOID_FTYPE_UNSIGNED_ UNSIGNED_UNSIGNED): New function type.
6163         * config/i386/i386-c.c: Define __MWAITX__ if needed.
6164         * config/i386/i386.c (ix86_target_string): Define -mmwaitx option.
6165         (PTA_MWAITX): New.
6166         (ix86_option_override_internal): Handle new option.
6167         (processor_alias_table): Added PTA_MWAITX.
6168         (ix86_valid_target_attribute_inner_p): Add OPT_mmwaitx.
6169         (ix86_builtins): Add IX86_BUILTIN_MWAITX, IX86_BUILTIN_MONITORX.
6170         (ix86_expand_builtin): Handle IX86_BUILTIN_MWAITX and
6171         IX86_BUILTIN_MONITORX  built-ins.
6172         * config/i386/i386.h (TARGET_MWAITX): New.
6173         * config/i386/i386.md (unspecv): Add UNSPEC_MWAITX and
6174         UNSPEC_MONITORX.
6175         (mwaitx):  New pattern.
6176         (monitorx_<mode>): New pattern.
6177         * config/i386/x86intrin.h: Include mwaitxintrin.h.
6178         * doc/extend.texi: Document monitorx and mwaitx builtins.
6179         * doc/invoke.texi: Document -mmwaitx option.
6180
6181 2015-06-12  Uros Bizjak  <ubizjak@gmail.com>
6182
6183         * emit-rtl.c (need_atomic_barrier_p): Mask model with
6184         MEMMODEL_BASE_MASK.  Remove MEMMODEL_SYNC_* cases.
6185
6186 2015-06-11  David Edelsohn  <dje.gcc@gmail.com>
6187
6188         * dbxout.c (xcoff_debug_hooks): Provide a function for
6189         register_main_translation_unit hook.
6190
6191 2015-06-11  David Edelsohn  <dje.gcc@gmail.com>
6192
6193         * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier): Remove SYNC
6194         variants cases from switch.
6195         (rs6000_post_atomic_barrier): Same.
6196         (rs6000_expand_atomic_compare_and_swap): Use memmodel_base.
6197         (rs6000_expand_atomic_exchange): Same.
6198         (rs6000_expand_atomic_op): Same.
6199         * config/rs6000/sync.md (mem_thread_fence): Use memodel_base. Remove
6200         SYNC variants cases from switch.
6201         (atomic_load): Same.
6202         (atomic_store): Same.
6203
6204 2015-06-11  John David Anglin  <danglin@gcc.gnu.org>
6205
6206         * config/pa/pa.c (pa_output_global_address): Handle LABEL_REF plus
6207         CONST_INT for goto.
6208
6209 2015-06-11  Aldy Hernandez  <aldyh@redhat.com>
6210
6211         PR bootstrap/66448
6212         * dwarf2out.c (check_die): Check for common duplicate attributes.
6213         (add_location_or_const_value_attribute): Do not add duplicate
6214         attributes.
6215         (gen_formal_parameter_die): Do not add DW_AT_artificial the second
6216         time around.
6217         (gen_struct_or_union_type_die): Bail early if TREE_ASM_WRITTEN.
6218         (gen_type_die_with_usage): Call check_die.
6219         (dwarf2out_decl): Only call check_die() when ENABLE_CHECKING.
6220
6221 2015-06-11  Jason Merrill  <jason@redhat.com>
6222
6223         * dwarf2out.c (prune_unused_types): Handle unused top-level limbo
6224         dies.
6225
6226 2015-06-11  Marek Polacek  <polacek@redhat.com>
6227
6228         * match.pd ((x & y) ^ (x | y)): Don't check for single_use.
6229
6230 2015-06-11  Eric Botcazou  <ebotcazou@adacore.com>
6231
6232         PR bootstrap/66252
6233         * config/sparc/sparc.c (hard_regno_mode_classes): Add ??? comment.
6234         * config/sparc/sparc.md (zero_extendsidi2_insn_sp32): Use single order.
6235         (*addx_extend_sp32): Fix pasto.
6236         (*subx_extend): Rename into...
6237         (*subx_extend_sp32): ...this.
6238         (*adddi3_extend_sp32): Add earlyclobber.
6239         (*subdi3_insn_sp32): Likewise.
6240         (*subdi3_extend_sp32): Likewise.
6241         (*and_not_di_sp32): Likewise.
6242         (*or_not_di_sp32): Likewise.
6243         (*xor_not_di_sp32): Likewise.
6244         (*negdi2_sp32): Likewise.
6245         (*one_cmpldi2_sp32): Likewise.
6246
6247 2015-06-11  Pierre-Marie de Rodat  <derodat@adacore.com>
6248
6249         * debug.h (struct gcc_debug_hooks): Add a
6250         register_main_translation_unit hook.
6251         * debug.c (do_nothing_debug_hooks): Provide a function for this
6252         new hook.
6253         * dbxout.c (dbx_debug_hooks): Likewise.
6254         * sdbout.c (sdb_debug_hooks): Likewise.
6255         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
6256         * dwarf2out.c (main_translation_unit): New global variable.
6257         (dwarf2out_register_main_translation_unit): New function
6258         implementing the new hook.
6259         (dwarf2_debug_hooks): Assign
6260         dwarf2out_register_main_translation_unit to this new hook.
6261         (dwarf2out_init): Associate any main translation unit to
6262         comp_unit_die ().
6263
6264 2015-06-11  Marek Polacek  <polacek@redhat.com>
6265
6266         * match.pd ((x & y) ^ (x | y) -> x ^ y): New pattern.
6267
6268 2015-06-11  Marek Polacek  <polacek@redhat.com>
6269
6270         * match.pd: Use single_use throughout.
6271
6272 2015-06-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6273
6274         * config/arm/arm.c (arm_option_params_internal): When optimising
6275         for speed set max_insns_skipped when arm_restrict_it.
6276
6277 2015-06-11  Christian Bruel  <christian.bruel@st.com>
6278
6279         PR target/52144
6280         * config/arm/arm-c.c (arm_cpu_cpp_builtins): Conditionally define
6281          macros in ...
6282         (arm_cpu_builtins): New function.
6283         (arm_pragma_target_parse): Call arm_cpu_builtins.
6284         * config/arm/arm-protos.h (arm_cpu_builtins): Declare.
6285         (arm_register_target_pragmas): Likewise.
6286         * config/arm/arm.h (REGISTER_TARGET_PRAGMAS):
6287          Call arm_register_target_pragmas.
6288         * config/arm/arm-c.c (arm_register_target_pragmas): New function.
6289         (arm_pragma_target_parse): Likewise.
6290
6291 2015-06-10  Kaz Kojima  <kkojima@gcc.gnu.org>
6292
6293         * config/sh/sh.md (tstsi_t): Add '?' modifier to 'r' alternative
6294         of the second operand.
6295
6296 2015-06-10  Uros Bizjak  <ubizjak@gmail.com>
6297
6298         PR target/66473
6299         * config/i386/i386.c (ix86_expand_vector_set): Use gen_int_mode
6300         to prepare mask operand for AVX512 modes.
6301
6302 2015-06-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
6303
6304         PR target/66474
6305         * doc/md.texi (Machine Constraints): Document that on the PowerPC
6306         if you use a constraint that targets a VSX register, you must use
6307         %x<n> in the template.
6308
6309 2015-06-10  Max Filippov  <jcmvbkbc@gmail.com>
6310
6311         * config/xtensa/xtensa.h (TARGET_DEBUG): New definition.
6312         * config/xtensa/xtensa.md (define_attr "type"): New type "trap".
6313         (define_insn "trap"): New definition.
6314
6315 2015-06-10  Richard Biener  <rguenther@suse.de>
6316
6317         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Split
6318         out from ...
6319         (vect_supported_load_permutation_p): ... here.  Handle
6320         supportable permutations in reductions.
6321         * tree-vect-stmts.c (vectorizable_load): Handle SLP permutations
6322         for vectorizing strided group loads.
6323
6324 2015-06-10  Jakub Jelinek  <jakub@redhat.com>
6325
6326         PR target/66470
6327         * config/i386/i386.c (ix86_split_long_move): For collisions
6328         involving direct tls segment refs, move the UNSPEC_TP possibly
6329         wrapped in ZERO_EXTEND out of the address for lea, to each of
6330         the memory loads.
6331
6332 2015-06-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6333
6334         * config/arm/sync.md (*memory_barrier): Use dmb ish instead of
6335         dmb sy. Adjust tabs.
6336
6337 2015-06-10  Tom de Vries  <tom@codesourcery.com>
6338
6339         * omp-low.c (expand_omp_target): Remove duplicate declaration of node.
6340
6341 2015-06-10  Martin Liska  <mliska@suse.cz>
6342
6343         PR bootstrap/66471
6344         * mem-stats-traits.h (enum mem_alloc_origin): Add _ORIGIN suffix for
6345         all enum values in mem_alloc_origin.
6346         * alloc-pool.c (dump_alloc_pool_statistics): Use newly changed enum
6347         name.
6348         * alloc-pool.h (pool_allocator::pool_allocator): Likewise.
6349         * bitmap.c (bitmap_register): Likewise.
6350         (dump_bitmap_statistics): Likewise.
6351         * ggc-common.c (dump_ggc_loc_statistics): Likewise.
6352         (ggc_record_overhead): Likewise.
6353         * hash-map.h: Likewise.
6354         * hash-set.h: Likewise.
6355         * hash-table.c (void dump_hash_table_loc_statistics): Likewise.
6356         * hash-table.h: Likewise.
6357         * vec.c (vec_prefix::register_overhead): Likewise.
6358         (vec_prefix::release_overhead): Likewise.
6359         (dump_vec_loc_statistics): Likewise.
6360
6361 2015-06-09  Christian Bruel  <christian.bruel@st.com>
6362
6363         PR target/52144
6364         * config/arm/arm.opt (THUMB, arm_restrict_it, inline_asm_unified): Save.
6365         * config/arm/arm-protos.h (arm_valid_target_attribute_tree): Declare.
6366         (arm_reset_previous_fndecl, arm_change_mode_p): Likewise.
6367         * config/arm/arm.h (SWITCHABLE_TARGET): Define.
6368         * config/arm/arm.c (arm_reset_previous_fndecl): New functions.
6369         (arm_valid_target_attribute_tree, arm_change_mode_p): Likewise.
6370         (arm_valid_target_attribute_p): Likewise.
6371         (arm_set_current_function, arm_can_inline_p): Likewise.
6372         (arm_valid_target_attribute_rec): Likewise.
6373         (arm_previous_fndecl): New variable.
6374         (TARGET_SET_CURRENT_FUNCTION, TARGET_OPTION_VALID_ATTRIBUTE_P): Define.
6375         (TARGET_CAN_INLINE_P): Define.
6376         (arm_asm_trampoline_template): Emit mode.
6377         (arm_file_start): Don't set unified syntax.
6378         (arm_declare_function_name): Set unified syntax and mode.
6379         (arm_option_override): Init target_option_default_node.
6380         and target_option_current_node.
6381         * config/arm/arm.md (*call_value_symbol): Set mode when possible.
6382         (*call_symbol): Likewise.
6383         * doc/extend.texi: Document ARM/Thumb target attribute.
6384         * doc/invoke.texi: Likewise.
6385
6386 2015-06-09  Alexandre Oliva <aoliva@redhat.com>
6387
6388         Revert:
6389         2015-06-09  Alexandre Oliva <aoliva@redhat.com>
6390         PR rtl-optimization/64164
6391         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
6392         * tree-ssa-copyrename.c: Removed.
6393         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
6394         -ftree-coalesce-vars.
6395         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
6396         * common.opt (ftree-copyrename): Ignore.
6397         (ftree-coalesce-inlined-vars): Likewise.
6398         * doc/invoke.texi: Remove the ignored options above.
6399         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
6400         * tree-ssa-coalesce.h: ... here.
6401         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
6402         headers required by it.
6403         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
6404         across variables when flag_tree_coalesce_vars.  Check register
6405         use and promoted modes to allow coalescing.  Moved to
6406         tree-ssa-coalesce.c.
6407         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
6408         with its member functions to tree-ssa-coalesce.c.
6409         (var_map_base_init): Likewise.  Renamed to
6410         compute_samebase_partition_bases.
6411         (partition_view_normal): Drop want_bases parameter.
6412         (partition_view_bitmap): Likewise.
6413         * tree-ssa-live.h: Adjust declarations.
6414         * tree-ssa-coalesce.c: Include explow.h.
6415         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
6416         default defs at the entry point.
6417         (dump_part_var_map): New.
6418         (compute_optimized_partition_bases): New, called by...
6419         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
6420         of compute_samebase_partition_bases.  Adjust.
6421         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
6422         * cfgexpand.c (leader_merge): New.
6423         (get_rtl_for_parm_ssa_default_def): New.
6424         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
6425         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
6426         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
6427         redundant MEM attr setting.
6428         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
6429         from...
6430         (expand_one_stack_var): ... this.  New wrapper to check and
6431         skip already expanded SSA partitions.
6432         (record_alignment_for_reg_var): New, factored out of...
6433         (expand_one_var): ... this.
6434         (expand_one_ssa_partition): New.
6435         (adjust_one_expanded_partition_var): New.
6436         (expand_one_register_var): Check and skip already expanded SSA
6437         partitions.
6438         (expand_used_vars): Don't create DECLs for anonymous SSA
6439         names.  Expand all SSA partitions, then adjust all SSA names.
6440         (pass::execute): Replace the loops that set
6441         SA.partition_to_pseudo from partition leaders and cleared
6442         DECL_RTL for multi-location variables, and that which used to
6443         rename vars and set attrs, with one that clears DECL_RTL and
6444         checks that PARMs and RESULTs default_defs match DECL_RTL.
6445         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
6446         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
6447         * explow.c (promote_ssa_mode): New.
6448         * explow.h (promote_ssa_mode): Declare.
6449         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
6450         * function.c: Include cfgexpand.h.
6451         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
6452         (use_register_for_parm_decl): Wrapper for the above to
6453         special-case the result_ptr.
6454         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
6455         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
6456         multiple locations.
6457         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
6458         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
6459         (assign_parm_setup_block): Prefer SSA-assigned location.
6460         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
6461         if stack_parm is NULL.
6462         (assign_parm_setup_stack): Prefer SSA-assigned location.
6463         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
6464         rtl before testing for pointer bounds.  Special-case result_ptr.
6465         (expand_function_start): Maybe reset DECL_RTL of result.
6466         Prefer SSA-assigned location for result and static chain.
6467         Factor out DECL_RESULT and SET_DECL_RTL.
6468         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
6469         anonymous SSA names.  Use promote_ssa_mode.
6470         (get_temp_reg): Likewise.
6471         (remove_ssa_form): Adjust.
6472         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
6473         and get its reg_usage for reg invalidation.
6474         (compute_bb_dataflow): Pass it insn.
6475         (emit_notes_in_bb): Likewise.
6476         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
6477         fail assert on conversion between unsigned types.
6478
6479 2015-06-09  Tom de Vries  <tom@codesourcery.com>
6480
6481         PR tree-optimization/65460
6482         * omp-low.c (expand_omp_target): Set parallelized_function on
6483         cgraph_node for child_fn.
6484
6485 2015-06-09  Tom de Vries  <tom@codesourcery.com>
6486
6487         * omp-low.c (finalize_task_copyfn, expand_omp_taskreg): Mark function
6488         parallelized_function before add_new_function.
6489
6490 2015-06-09  Andrew MacLeod  <amacleod@redhat.com>
6491
6492         * gcc-plugin.h: Move decls to plugin.h and include it.
6493         * plugin.h: Relocate decls from gcc-plugin.h
6494         * ggc-page.c: Include required header files.
6495         * passes.c: Likewise.
6496         * cgraphunit.c: Likewise.
6497
6498 2015-06-09  Tom de Vries  <tom@codesourcery.com>
6499
6500         * tree-stdarg.c (expand_ifn_va_arg_1): Handle location.
6501
6502 2015-06-09  Jason Merrill  <jason@redhat.com>
6503
6504         PR bootstrap/66448
6505         * toplev.c (check_global_declaration): Don't warn about a clone.
6506
6507 2015-06-09  Marek Polacek  <polacek@redhat.com>
6508
6509         PR tree-optimization/66299
6510         * match.pd ((CST1 << A) == CST2 -> A == ctz (CST2) - ctz (CST1)
6511         ((CST1 << A) != CST2 -> A != ctz (CST2) - ctz (CST1)): New
6512         patterns.
6513
6514 2015-06-09  Richard Biener  <rguenther@suse.de>
6515
6516         * tree-vect-slp.c (vect_build_slp_tree_1): Remove bailout on gaps.
6517         (vect_analyze_slp_instance): Instead do not falsely drop
6518         load permutations.
6519
6520 2015-06-09  Richard Biener  <rguenther@suse.de>
6521
6522         PR middle-end/66423
6523         * match.pd: Handle A % (unsigned)(1 << B).
6524
6525 2015-06-09  Aldy Hernandez  <aldyh@redhat.com>
6526
6527         * varasm.c (output_object_block_htab): Remove.
6528         (output_object_block_compare): New.
6529         (output_object_blocks): Sort named object_blocks before outputting
6530         them.
6531
6532 2015-06-09  Richard Biener  <rguenther@suse.de>
6533
6534         PR tree-optimization/66419
6535         * tree-vect-slp.c (vect_supported_load_permutation_p): Properly
6536         consider GROUP_GAP when detecting a perfect subchain.
6537
6538 2015-06-09  Nick Clifton  <nickc@redhat.com>
6539
6540         * config/rl78/rl78.c (rl78_select_section): When -mes0 is active
6541         place read only data in the .frodata section.
6542
6543 2015-06-09  Shiva Chen  <shiva0217@gmail.com>
6544
6545         * sync.md (atomic_load<mode>): Add conditional code for lda/ldr
6546         (atomic_store<mode>): Likewise.
6547
6548 2015-06-09  Richard Biener  <rguenther@suse.de>
6549
6550         * cfgloop.c (get_loop_body_in_bfs_order): Fix assert.
6551
6552 2015-06-09  Richard Biener  <rguenther@suse.de>
6553
6554         PR middle-end/66413
6555         * tree-inline.c (insert_init_debug_bind): Unshare value.
6556
6557 2015-06-09  Richard Biener  <rguenther@suse.de>
6558
6559         PR tree-optimization/66396
6560         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
6561         Rename virtual operands.
6562
6563 2015-06-09  Tom de Vries  <tom@codesourcery.com>
6564
6565         * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Don't
6566         always return false.
6567
6568 2015-06-09  Alexandre Oliva <aoliva@redhat.com>
6569
6570         PR rtl-optimization/64164
6571         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
6572         * tree-ssa-copyrename.c: Removed.
6573         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
6574         -ftree-coalesce-vars.
6575         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
6576         * common.opt (ftree-copyrename): Ignore.
6577         (ftree-coalesce-inlined-vars): Likewise.
6578         * doc/invoke.texi: Remove the ignored options above.
6579         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
6580         * tree-ssa-coalesce.h: ... here.
6581         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
6582         headers required by it.
6583         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
6584         across variables when flag_tree_coalesce_vars.  Check register
6585         use and promoted modes to allow coalescing.  Moved to
6586         tree-ssa-coalesce.c.
6587         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
6588         with its member functions to tree-ssa-coalesce.c.
6589         (var_map_base_init): Likewise.  Renamed to
6590         compute_samebase_partition_bases.
6591         (partition_view_normal): Drop want_bases parameter.
6592         (partition_view_bitmap): Likewise.
6593         * tree-ssa-live.h: Adjust declarations.
6594         * tree-ssa-coalesce.c: Include explow.h.
6595         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
6596         default defs at the entry point.
6597         (dump_part_var_map): New.
6598         (compute_optimized_partition_bases): New, called by...
6599         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
6600         of compute_samebase_partition_bases.  Adjust.
6601         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
6602         * cfgexpand.c (leader_merge): New.
6603         (get_rtl_for_parm_ssa_default_def): New.
6604         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
6605         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
6606         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
6607         redundant MEM attr setting.
6608         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
6609         from...
6610         (expand_one_stack_var): ... this.  New wrapper to check and
6611         skip already expanded SSA partitions.
6612         (record_alignment_for_reg_var): New, factored out of...
6613         (expand_one_var): ... this.
6614         (expand_one_ssa_partition): New.
6615         (adjust_one_expanded_partition_var): New.
6616         (expand_one_register_var): Check and skip already expanded SSA
6617         partitions.
6618         (expand_used_vars): Don't create DECLs for anonymous SSA
6619         names.  Expand all SSA partitions, then adjust all SSA names.
6620         (pass::execute): Replace the loops that set
6621         SA.partition_to_pseudo from partition leaders and cleared
6622         DECL_RTL for multi-location variables, and that which used to
6623         rename vars and set attrs, with one that clears DECL_RTL and
6624         checks that PARMs and RESULTs default_defs match DECL_RTL.
6625         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
6626         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
6627         * explow.c (promote_ssa_mode): New.
6628         * explow.h (promote_ssa_mode): Declare.
6629         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
6630         * function.c: Include cfgexpand.h.
6631         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
6632         (use_register_for_parm_decl): Wrapper for the above to
6633         special-case the result_ptr.
6634         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
6635         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
6636         multiple locations.
6637         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
6638         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
6639         (assign_parm_setup_block): Prefer SSA-assigned location.
6640         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
6641         if stack_parm is NULL.
6642         (assign_parm_setup_stack): Prefer SSA-assigned location.
6643         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
6644         rtl before testing for pointer bounds.  Special-case result_ptr.
6645         (expand_function_start): Maybe reset DECL_RTL of result.
6646         Prefer SSA-assigned location for result and static chain.
6647         Factor out DECL_RESULT and SET_DECL_RTL.
6648         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
6649         anonymous SSA names.  Use promote_ssa_mode.
6650         (get_temp_reg): Likewise.
6651         (remove_ssa_form): Adjust.
6652         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
6653         and get its reg_usage for reg invalidation.
6654         (compute_bb_dataflow): Pass it insn.
6655         (emit_notes_in_bb): Likewise.
6656         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
6657         fail assert on conversion between unsigned types.
6658
6659 2015-06-09  Alexandre Oliva <aoliva@redhat.com>
6660
6661         PR debug/58315
6662         * tree-inline.c (reset_debug_binding): New.
6663         (reset_debug_bindings): Likewise.
6664         (expand_call_inline): Call it.
6665
6666 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
6667
6668         * tree.c (gimple_canonical_types_compatible_p): Drop comparsion of
6669         TYPE_STRING_FLAG.
6670
6671 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
6672
6673         * lto-streamer-out.c (lto_output_location): Stream
6674         reserved locations correctly.
6675         * lto-streamer-in.c (lto_output_location): Likewise.
6676
6677 2015-06-08  Andrew MacLeod  <amacleod@redhat.com>
6678
6679         * coretypes.h: Include hash-table.h and hash-set.h for host files.
6680         * ggc.h: Don't include statistics.h>
6681         * hash-map.h: Remove all includes.
6682         * hash-set.h: Likewise.
6683         * hash-table.h: Add statistics.h, inchash.h and hash-map-traits.h to
6684         the include list. Remove <new>.
6685         * inchash.h: Remove all includes.
6686         * mem-stats.h: Likewise.
6687         * vec.h: No special processing for generators or ggc.
6688         * alias.c : Adjust include files.
6689         * alloc-pool.c : Likewise.
6690         * alloc-pool.h : Likewise.
6691         * asan.c : Likewise.
6692         * attribs.c : Likewise.
6693         * auto-inc-dec.c : Likewise.
6694         * auto-profile.c : Likewise.
6695         * bb-reorder.c : Likewise.
6696         * bitmap.c : Likewise.
6697         * bitmap.h : Likewise.
6698         * bt-load.c : Likewise.
6699         * builtins.c : Likewise.
6700         * caller-save.c : Likewise.
6701         * calls.c : Likewise.
6702         * ccmp.c : Likewise.
6703         * cfg.c : Likewise.
6704         * cfganal.c : Likewise.
6705         * cfgbuild.c : Likewise.
6706         * cfgcleanup.c : Likewise.
6707         * cfgexpand.c : Likewise.
6708         * cfghooks.c : Likewise.
6709         * cfgloop.c : Likewise.
6710         * cfgloop.h : Likewise.
6711         * cfgloopanal.c : Likewise.
6712         * cfgloopmanip.c : Likewise.
6713         * cfgrtl.c : Likewise.
6714         * cgraph.c : Likewise.
6715         * cgraphbuild.c : Likewise.
6716         * cgraphclones.c : Likewise.
6717         * cgraphunit.c : Likewise.
6718         * cilk-common.c : Likewise.
6719         * combine-stack-adj.c : Likewise.
6720         * combine.c : Likewise.
6721         * compare-elim.c : Likewise.
6722         * context.c : Likewise.
6723         * convert.c : Likewise.
6724         * coverage.c : Likewise.
6725         * cppbuiltin.c : Likewise.
6726         * cprop.c : Likewise.
6727         * cse.c : Likewise.
6728         * cselib.c : Likewise.
6729         * data-streamer-in.c : Likewise.
6730         * data-streamer-out.c : Likewise.
6731         * data-streamer.c : Likewise.
6732         * data-streamer.h : Likewise.
6733         * dbxout.c : Likewise.
6734         * dce.c : Likewise.
6735         * ddg.c : Likewise.
6736         * debug.c : Likewise.
6737         * df-core.c : Likewise.
6738         * df-problems.c : Likewise.
6739         * df-scan.c : Likewise.
6740         * df.h : Likewise.
6741         * dfp.c : Likewise.
6742         * dojump.c : Likewise.
6743         * dominance.c : Likewise.
6744         * domwalk.c : Likewise.
6745         * double-int.c : Likewise.
6746         * dse.c : Likewise.
6747         * dumpfile.c : Likewise.
6748         * dwarf2asm.c : Likewise.
6749         * dwarf2cfi.c : Likewise.
6750         * dwarf2out.c : Likewise.
6751         * emit-rtl.c : Likewise.
6752         * et-forest.c : Likewise.
6753         * except.c : Likewise.
6754         * except.h : Likewise.
6755         * explow.c : Likewise.
6756         * expmed.c : Likewise.
6757         * expr.c : Likewise.
6758         * final.c : Likewise.
6759         * fixed-value.c : Likewise.
6760         * fold-const.c : Likewise.
6761         * function.c : Likewise.
6762         * fwprop.c : Likewise.
6763         * gcc-plugin.h : Likewise.
6764         * gcc.c : Likewise.
6765         * gcse-common.c : Likewise.
6766         * gcse.c : Likewise.
6767         * genattrtab.c : Likewise.
6768         * genautomata.c : Likewise.
6769         * genconditions.c : Likewise.
6770         * genemit.c : Likewise.
6771         * generic-match-head.c : Likewise.
6772         * genextract.c : Likewise.
6773         * gengtype-state.c : Likewise.
6774         * gengtype.c : Likewise.
6775         * genhooks.c : Likewise.
6776         * genmatch.c : Likewise.
6777         * genmodes.c : Likewise.
6778         * genrecog.c : Likewise.
6779         * gensupport.c : Likewise.
6780         * ggc-common.c : Likewise.
6781         * ggc-internal.h : Likewise.
6782         * ggc-none.c : Likewise.
6783         * ggc-page.c : Likewise.
6784         * gimple-builder.c : Likewise.
6785         * gimple-expr.c : Likewise.
6786         * gimple-fold.c : Likewise.
6787         * gimple-iterator.c : Likewise.
6788         * gimple-low.c : Likewise.
6789         * gimple-match-head.c : Likewise.
6790         * gimple-pretty-print.c : Likewise.
6791         * gimple-ssa-isolate-paths.c : Likewise.
6792         * gimple-ssa-strength-reduction.c : Likewise.
6793         * gimple-ssa.h : Likewise.
6794         * gimple-streamer-in.c : Likewise.
6795         * gimple-streamer-out.c : Likewise.
6796         * gimple-streamer.h : Likewise.
6797         * gimple-walk.c : Likewise.
6798         * gimple.c : Likewise.
6799         * gimplify-me.c : Likewise.
6800         * gimplify.c : Likewise.
6801         * godump.c : Likewise.
6802         * graph.c : Likewise.
6803         * graphds.c : Likewise.
6804         * graphite-blocking.c : Likewise.
6805         * graphite-dependences.c : Likewise.
6806         * graphite-interchange.c : Likewise.
6807         * graphite-isl-ast-to-gimple.c : Likewise.
6808         * graphite-optimize-isl.c : Likewise.
6809         * graphite-poly.c : Likewise.
6810         * graphite-scop-detection.c : Likewise.
6811         * graphite-sese-to-poly.c : Likewise.
6812         * graphite.c : Likewise.
6813         * haifa-sched.c : Likewise.
6814         * hard-reg-set.h : Likewise.
6815         * hw-doloop.c : Likewise.
6816         * ifcvt.c : Likewise.
6817         * inchash.c : Likewise.
6818         * incpath.c : Likewise.
6819         * init-regs.c : Likewise.
6820         * input.c : Likewise.
6821         * internal-fn.c : Likewise.
6822         * ipa-chkp.c : Likewise.
6823         * ipa-comdats.c : Likewise.
6824         * ipa-cp.c : Likewise.
6825         * ipa-devirt.c : Likewise.
6826         * ipa-icf-gimple.c : Likewise.
6827         * ipa-icf.c : Likewise.
6828         * ipa-inline-analysis.c : Likewise.
6829         * ipa-inline-transform.c : Likewise.
6830         * ipa-inline.c : Likewise.
6831         * ipa-polymorphic-call.c : Likewise.
6832         * ipa-profile.c : Likewise.
6833         * ipa-prop.c : Likewise.
6834         * ipa-pure-const.c : Likewise.
6835         * ipa-ref.c : Likewise.
6836         * ipa-reference.c : Likewise.
6837         * ipa-split.c : Likewise.
6838         * ipa-utils.c : Likewise.
6839         * ipa-visibility.c : Likewise.
6840         * ipa.c : Likewise.
6841         * ira-build.c : Likewise.
6842         * ira-color.c : Likewise.
6843         * ira-conflicts.c : Likewise.
6844         * ira-costs.c : Likewise.
6845         * ira-emit.c : Likewise.
6846         * ira-lives.c : Likewise.
6847         * ira.c : Likewise.
6848         * jump.c : Likewise.
6849         * langhooks.c : Likewise.
6850         * lcm.c : Likewise.
6851         * libfuncs.h : Likewise.
6852         * lists.c : Likewise.
6853         * loop-doloop.c : Likewise.
6854         * loop-init.c : Likewise.
6855         * loop-invariant.c : Likewise.
6856         * loop-iv.c : Likewise.
6857         * loop-unroll.c : Likewise.
6858         * lower-subreg.c : Likewise.
6859         * lra-assigns.c : Likewise.
6860         * lra-coalesce.c : Likewise.
6861         * lra-constraints.c : Likewise.
6862         * lra-eliminations.c : Likewise.
6863         * lra-lives.c : Likewise.
6864         * lra-remat.c : Likewise.
6865         * lra-spills.c : Likewise.
6866         * lra.c : Likewise.
6867         * lto-cgraph.c : Likewise.
6868         * lto-compress.c : Likewise.
6869         * lto-opts.c : Likewise.
6870         * lto-section-in.c : Likewise.
6871         * lto-section-out.c : Likewise.
6872         * lto-streamer-in.c : Likewise.
6873         * lto-streamer-out.c : Likewise.
6874         * lto-streamer.c : Likewise.
6875         * lto-streamer.h : Likewise.
6876         * mcf.c : Likewise.
6877         * mode-switching.c : Likewise.
6878         * modulo-sched.c : Likewise.
6879         * omega.c : Likewise.
6880         * omp-low.c : Likewise.
6881         * optabs.c : Likewise.
6882         * opts-global.c : Likewise.
6883         * opts.h : Likewise.
6884         * passes.c : Likewise.
6885         * plugin.c : Likewise.
6886         * postreload-gcse.c : Likewise.
6887         * postreload.c : Likewise.
6888         * predict.c : Likewise.
6889         * print-rtl.c : Likewise.
6890         * print-tree.c : Likewise.
6891         * profile.c : Likewise.
6892         * read-md.c : Likewise.
6893         * read-md.h : Likewise.
6894         * read-rtl.c : Likewise.
6895         * real.c : Likewise.
6896         * realmpfr.c : Likewise.
6897         * recog.c : Likewise.
6898         * ree.c : Likewise.
6899         * reg-stack.c : Likewise.
6900         * regcprop.c : Likewise.
6901         * reginfo.c : Likewise.
6902         * regrename.c : Likewise.
6903         * regstat.c : Likewise.
6904         * reload.c : Likewise.
6905         * reload1.c : Likewise.
6906         * reorg.c : Likewise.
6907         * resource.c : Likewise.
6908         * rtl-chkp.c : Likewise.
6909         * rtl.c : Likewise.
6910         * rtl.h : Likewise.
6911         * rtlanal.c : Likewise.
6912         * rtlhash.c : Likewise.
6913         * rtlhash.h : Likewise.
6914         * rtlhooks.c : Likewise.
6915         * sanopt.c : Likewise.
6916         * sched-deps.c : Likewise.
6917         * sched-ebb.c : Likewise.
6918         * sched-rgn.c : Likewise.
6919         * sched-vis.c : Likewise.
6920         * sdbout.c : Likewise.
6921         * sel-sched-dump.c : Likewise.
6922         * sel-sched-ir.c : Likewise.
6923         * sel-sched-ir.h : Likewise.
6924         * sel-sched.c : Likewise.
6925         * sese.c : Likewise.
6926         * shrink-wrap.c : Likewise.
6927         * shrink-wrap.h : Likewise.
6928         * simplify-rtx.c : Likewise.
6929         * stack-ptr-mod.c : Likewise.
6930         * statistics.c : Likewise.
6931         * stmt.c : Likewise.
6932         * stor-layout.c : Likewise.
6933         * store-motion.c : Likewise.
6934         * stringpool.c : Likewise.
6935         * symtab.c : Likewise.
6936         * target-globals.c : Likewise.
6937         * targhooks.c : Likewise.
6938         * tlink.c : Likewise.
6939         * toplev.c : Likewise.
6940         * tracer.c : Likewise.
6941         * trans-mem.c : Likewise.
6942         * tree-affine.c : Likewise.
6943         * tree-affine.h : Likewise.
6944         * tree-browser.c : Likewise.
6945         * tree-call-cdce.c : Likewise.
6946         * tree-cfg.c : Likewise.
6947         * tree-cfgcleanup.c : Likewise.
6948         * tree-chkp-opt.c : Likewise.
6949         * tree-chkp.c : Likewise.
6950         * tree-chrec.c : Likewise.
6951         * tree-complex.c : Likewise.
6952         * tree-data-ref.c : Likewise.
6953         * tree-dfa.c : Likewise.
6954         * tree-diagnostic.c : Likewise.
6955         * tree-dump.c : Likewise.
6956         * tree-eh.c : Likewise.
6957         * tree-eh.h : Likewise.
6958         * tree-emutls.c : Likewise.
6959         * tree-hasher.h : Likewise.
6960         * tree-if-conv.c : Likewise.
6961         * tree-inline.c : Likewise.
6962         * tree-inline.h : Likewise.
6963         * tree-into-ssa.c : Likewise.
6964         * tree-iterator.c : Likewise.
6965         * tree-loop-distribution.c : Likewise.
6966         * tree-nested.c : Likewise.
6967         * tree-nrv.c : Likewise.
6968         * tree-object-size.c : Likewise.
6969         * tree-outof-ssa.c : Likewise.
6970         * tree-parloops.c : Likewise.
6971         * tree-phinodes.c : Likewise.
6972         * tree-predcom.c : Likewise.
6973         * tree-pretty-print.c : Likewise.
6974         * tree-profile.c : Likewise.
6975         * tree-scalar-evolution.c : Likewise.
6976         * tree-sra.c : Likewise.
6977         * tree-ssa-address.c : Likewise.
6978         * tree-ssa-alias.c : Likewise.
6979         * tree-ssa-ccp.c : Likewise.
6980         * tree-ssa-coalesce.c : Likewise.
6981         * tree-ssa-copy.c : Likewise.
6982         * tree-ssa-copyrename.c : Likewise.
6983         * tree-ssa-dce.c : Likewise.
6984         * tree-ssa-dom.c : Likewise.
6985         * tree-ssa-dse.c : Likewise.
6986         * tree-ssa-forwprop.c : Likewise.
6987         * tree-ssa-ifcombine.c : Likewise.
6988         * tree-ssa-live.c : Likewise.
6989         * tree-ssa-loop-ch.c : Likewise.
6990         * tree-ssa-loop-im.c : Likewise.
6991         * tree-ssa-loop-ivcanon.c : Likewise.
6992         * tree-ssa-loop-ivopts.c : Likewise.
6993         * tree-ssa-loop-manip.c : Likewise.
6994         * tree-ssa-loop-niter.c : Likewise.
6995         * tree-ssa-loop-prefetch.c : Likewise.
6996         * tree-ssa-loop-unswitch.c : Likewise.
6997         * tree-ssa-loop.c : Likewise.
6998         * tree-ssa-math-opts.c : Likewise.
6999         * tree-ssa-operands.c : Likewise.
7000         * tree-ssa-phiopt.c : Likewise.
7001         * tree-ssa-phiprop.c : Likewise.
7002         * tree-ssa-pre.c : Likewise.
7003         * tree-ssa-propagate.c : Likewise.
7004         * tree-ssa-reassoc.c : Likewise.
7005         * tree-ssa-sccvn.c : Likewise.
7006         * tree-ssa-scopedtables.c : Likewise.
7007         * tree-ssa-sink.c : Likewise.
7008         * tree-ssa-strlen.c : Likewise.
7009         * tree-ssa-structalias.c : Likewise.
7010         * tree-ssa-tail-merge.c : Likewise.
7011         * tree-ssa-ter.c : Likewise.
7012         * tree-ssa-threadedge.c : Likewise.
7013         * tree-ssa-threadupdate.c : Likewise.
7014         * tree-ssa-uncprop.c : Likewise.
7015         * tree-ssa-uninit.c : Likewise.
7016         * tree-ssa.c : Likewise.
7017         * tree-ssanames.c : Likewise.
7018         * tree-stdarg.c : Likewise.
7019         * tree-streamer-in.c : Likewise.
7020         * tree-streamer-out.c : Likewise.
7021         * tree-streamer.c : Likewise.
7022         * tree-streamer.h : Likewise.
7023         * tree-switch-conversion.c : Likewise.
7024         * tree-tailcall.c : Likewise.
7025         * tree-vect-data-refs.c : Likewise.
7026         * tree-vect-generic.c : Likewise.
7027         * tree-vect-loop-manip.c : Likewise.
7028         * tree-vect-loop.c : Likewise.
7029         * tree-vect-patterns.c : Likewise.
7030         * tree-vect-slp.c : Likewise.
7031         * tree-vect-stmts.c : Likewise.
7032         * tree-vectorizer.c : Likewise.
7033         * tree-vectorizer.h : Likewise.
7034         * tree-vrp.c : Likewise.
7035         * tree.c : Likewise.
7036         * tsan.c : Likewise.
7037         * ubsan.c : Likewise.
7038         * valtrack.c : Likewise.
7039         * valtrack.h : Likewise.
7040         * value-prof.c : Likewise.
7041         * var-tracking.c : Likewise.
7042         * varasm.c : Likewise.
7043         * varpool.c : Likewise.
7044         * vec.c: Likewise.
7045         * vmsdbgout.c : Likewise.
7046         * vtable-verify.c : Likewise.
7047         * vtable-verify.h : Likewise.
7048         * web.c : Likewise.
7049         * wide-int.cc : Likewise.
7050         * xcoffout.c : Likewise.
7051         * config/aarch64/aarch64-builtins.c : Likewise.
7052         * config/aarch64/aarch64.c : Likewise.
7053         * config/aarch64/cortex-a57-fma-steering.c : Likewise.
7054         * config/alpha/alpha.c : Likewise.
7055         * config/arc/arc.c : Likewise.
7056         * config/arm/aarch-common.c : Likewise.
7057         * config/arm/arm-builtins.c : Likewise.
7058         * config/arm/arm-c.c : Likewise.
7059         * config/arm/arm.c : Likewise.
7060         * config/avr/avr-c.c : Likewise.
7061         * config/avr/avr-log.c : Likewise.
7062         * config/avr/avr.c : Likewise.
7063         * config/bfin/bfin.c : Likewise.
7064         * config/c6x/c6x.c : Likewise.
7065         * config/cr16/cr16.c : Likewise.
7066         * config/cris/cris.c : Likewise.
7067         * config/darwin-c.c : Likewise.
7068         * config/darwin.c : Likewise.
7069         * config/default-c.c : Likewise.
7070         * config/epiphany/epiphany.c : Likewise.
7071         * config/epiphany/mode-switch-use.c : Likewise.
7072         * config/epiphany/resolve-sw-modes.c : Likewise.
7073         * config/fr30/fr30.c : Likewise.
7074         * config/frv/frv.c : Likewise.
7075         * config/ft32/ft32.c : Likewise.
7076         * config/glibc-c.c : Likewise.
7077         * config/h8300/h8300.c : Likewise.
7078         * config/i386/i386-c.c : Likewise.
7079         * config/i386/i386.c : Likewise.
7080         * config/i386/msformat-c.c : Likewise.
7081         * config/i386/winnt-cxx.c : Likewise.
7082         * config/i386/winnt-stubs.c : Likewise.
7083         * config/i386/winnt.c : Likewise.
7084         * config/ia64/ia64-c.c : Likewise.
7085         * config/ia64/ia64.c : Likewise.
7086         * config/iq2000/iq2000.c : Likewise.
7087         * config/lm32/lm32.c : Likewise.
7088         * config/m32c/m32c-pragma.c : Likewise.
7089         * config/m32c/m32c.c : Likewise.
7090         * config/m32r/m32r.c : Likewise.
7091         * config/m68k/m68k.c : Likewise.
7092         * config/mcore/mcore.c : Likewise.
7093         * config/mep/mep-pragma.c : Likewise.
7094         * config/mep/mep.c : Likewise.
7095         * config/microblaze/microblaze-c.c : Likewise.
7096         * config/microblaze/microblaze.c : Likewise.
7097         * config/mips/mips.c : Likewise.
7098         * config/mmix/mmix.c : Likewise.
7099         * config/mn10300/mn10300.c : Likewise.
7100         * config/moxie/moxie.c : Likewise.
7101         * config/msp430/msp430-c.c : Likewise.
7102         * config/msp430/msp430.c : Likewise.
7103         * config/nds32/nds32-cost.c : Likewise.
7104         * config/nds32/nds32-fp-as-gp.c : Likewise.
7105         * config/nds32/nds32-intrinsic.c : Likewise.
7106         * config/nds32/nds32-isr.c : Likewise.
7107         * config/nds32/nds32-md-auxiliary.c : Likewise.
7108         * config/nds32/nds32-memory-manipulation.c : Likewise.
7109         * config/nds32/nds32-pipelines-auxiliary.c : Likewise.
7110         * config/nds32/nds32-predicates.c : Likewise.
7111         * config/nds32/nds32.c : Likewise.
7112         * config/nios2/nios2.c : Likewise.
7113         * config/nvptx/nvptx.c : Likewise.
7114         * config/pa/pa.c : Likewise.
7115         * config/pdp11/pdp11.c : Likewise.
7116         * config/rl78/rl78-c.c : Likewise.
7117         * config/rl78/rl78.c : Likewise.
7118         * config/rs6000/rs6000-c.c : Likewise.
7119         * config/rs6000/rs6000.c : Likewise.
7120         * config/rx/rx.c : Likewise.
7121         * config/s390/s390-c.c : Likewise.
7122         * config/s390/s390.c : Likewise.
7123         * config/sh/sh-c.c : Likewise.
7124         * config/sh/sh-mem.cc : Likewise.
7125         * config/sh/sh.c : Likewise.
7126         * config/sh/sh_optimize_sett_clrt.cc : Likewise.
7127         * config/sh/sh_treg_combine.cc : Likewise.
7128         * config/sol2-c.c : Likewise.
7129         * config/sol2-cxx.c : Likewise.
7130         * config/sol2-stubs.c : Likewise.
7131         * config/sol2.c : Likewise.
7132         * config/sparc/sparc-c.c : Likewise.
7133         * config/sparc/sparc.c : Likewise.
7134         * config/spu/spu-c.c : Likewise.
7135         * config/spu/spu.c : Likewise.
7136         * config/stormy16/stormy16.c : Likewise.
7137         * config/tilegx/mul-tables.c : Likewise.
7138         * config/tilegx/tilegx-c.c : Likewise.
7139         * config/tilegx/tilegx.c : Likewise.
7140         * config/tilepro/mul-tables.c : Likewise.
7141         * config/tilepro/tilepro-c.c : Likewise.
7142         * config/tilepro/tilepro.c : Likewise.
7143         * config/v850/v850-c.c : Likewise.
7144         * config/v850/v850.c : Likewise.
7145         * config/vax/vax.c : Likewise.
7146         * config/visium/visium.c : Likewise.
7147         * config/vms/vms-c.c : Likewise.
7148         * config/vms/vms.c : Likewise.
7149         * config/vxworks.c : Likewise.
7150         * config/winnt-c.c : Likewise.
7151         * config/xtensa/xtensa.c : Likewise.
7152
7153 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
7154
7155         PR lto/65378
7156         * ipa-utils.h (warn_types_mismatch): Update prototype.
7157         * ipa-devirt.c (odr_types_equivalent_p): Add loc1/loc2
7158         parameters.
7159         (type_mismatch_p): New function.
7160         (warn_types_mismatch): Reorg to work better on non-C++ types.
7161         (odr_types_equivalent_p): Add loc1/loc2 parameters.
7162         (add_type_duplicate): Update.
7163
7164 2015-06-08  Tom de Vries  <tom@codesourcery.com>
7165
7166         PR rtl-optimization/66444
7167         * postreload.c (reload_combine): Use get_call_reg_set_usage instead of
7168         call_used_regs.
7169
7170 2015-06-08  Richard Biener  <rguenther@suse.de>
7171
7172         PR tree-optimization/66422
7173         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Split
7174         block after inserted gcc_unreachable.
7175
7176 2015-06-08  Nick Clifton  <nickc@redhat.com>
7177
7178         * config/rx/rx.c (rx_function_value): Do not promote vector types.
7179         (rx_promote_function_mode): Likewise.
7180         * config/rx/rx.h (LIBCALL_VALUE): Likewise.
7181
7182 2015-06-08  Jakub Jelinek  <jakub@redhat.com>
7183
7184         * genattrtab.c (insn_alternatives): Change type from int *
7185         to uint64_t *.
7186         (check_attr_test): Shift ((uint64_t) 1) instead of 1 up.
7187         (get_attr_value): Change type of num_alt to uint64_t.
7188         (compute_alternative_mask): Change return type from
7189         int to uint64_t, shift ((uint64_t) 1) instead of 1 up.
7190         (make_alternative_compare, mk_attr_alt): Change argument type
7191         from int to uint64_t.
7192         (simplify_test_exp): Change type of i from int to uint64_t.
7193         Shift ((uint64_t) 1) instead of 1 up.
7194         (main): Adjust oballocvec first argument from int to uint64_t.
7195         Shift ((uint64_t) 1) instead of 1 up.
7196
7197 2015-06-08  Jan Kratochvil  <jan.kratochvil@redhat.com>
7198
7199         PR other/65366
7200         * gdbhooks.py: Import sys.
7201         (intptr): New function.  Replace int(...) by intptr(...).
7202
7203 2015-06-08  Richard Biener  <rguenther@suse.de>
7204
7205         * tree-vect-stmts.c (vectorizable_load): Compute the pointer
7206         adjustment for gaps at the end of a SLP load group properly.
7207         * tree-vect-slp.c (vect_supported_load_permutation_p): Allow
7208         all permutations we can generate.
7209         (vect_transform_slp_perm_load): Use the correct group-size.
7210
7211 2015-06-08  Marc Glisse  <marc.glisse@inria.fr>
7212
7213         * genmatch.c (expr::gen_transform): For conditions, guess the type
7214         from the second operand.
7215
7216 2015-06-08  Tom de Vries  <tom@codesourcery.com>
7217
7218         PR tree-optimization/66442
7219         * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Add function.
7220         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Return false
7221         if the loop latch is not a singleton.  Use
7222         gimple_seq_nondebug_singleton_p instead of gimple_seq_singleton_p.
7223
7224 2015-06-08  Marek Polacek  <polacek@redhat.com>
7225
7226         PR sanitizer/66452
7227         * toplev.c (check_global_declaration): Don't warn about artificial
7228         decls.
7229
7230 2015-06-08  Tom de Vries  <tom@codesourcery.com>
7231
7232         PR tree-optimization/66436
7233         * cgraphunit.c (cgraph_node::analyze): Don't dump function to gimple
7234         dump file.
7235         * gimplify.c: Add tree-dump.h include.
7236         (gimplify_function_tree): Dump function to gimple dump file.
7237         * stor-layout.c (finalize_size_functions): Don't dump function to gimple
7238         dump file.
7239
7240 2015-06-08  Tom de Vries  <tom@codesourcery.com>
7241
7242         PR tree-optimization/66435
7243         * cgraphunit.c (cgraph_node::add_new_function): Dump message on new
7244         function.
7245
7246 2015-06-06  Jan Hubicka  <hubicka@ucw.cz>
7247
7248         * alias.c (get_alias_set): Be ready for TYPE_CANONICAL
7249         of ptr_type_node to not be ptr_to_node.
7250         * tree.c (gimple_types_compatible_p): Do not match TREE_CODE of
7251         TREE_TYPE of pointers.
7252         * gimple-expr.c (useless_type_conversion): Reorder the check for
7253         function pointers and TYPE_CANONICAL.
7254
7255 2015-06-06  John David Anglin  <danglin@gcc.gnu.org>
7256
7257         PR bootstrap/66319
7258         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Rearrange builtin
7259         defines.  Define _LARGEFILE_SOURCE and _LARGEFILE64_SOURCE for c++.
7260         Define _XOPEN_UNIX and _XOPEN_SOURCE_EXTENDED for c++ if unix95 or
7261         later.
7262         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Likewise.
7263         Define _INCLUDE_STDC_SOURCE_PRE_199901, _INCLUDE_STDC_SOURCE_199901,
7264         _INCLUDE_XOPEN_SOURCE_PRE_500, _INCLUDE_XOPEN_SOURCE_520,
7265         _INCLUDE_XOPEN_SOURCE_PRE_600 and _INCLUDE_XOPEN_SOURCE_600 for c++
7266         and non iso if unix2003.
7267
7268 2015-06-06  Aldy Hernandez  <aldyh@redhat.com>
7269
7270         * dwarf2out.c (gen_lexical_block_die): Initialize stmt_die.
7271
7272 2015-06-06  Richard Sandiford  <richard.sandiford@arm.com>
7273
7274         * emit-rtl.c, expr.c, gcse.c, optabs.c, optabs.h, print-rtl.c,
7275         rtl.h, bb-reorder.c, builtins.c, calls.c, cfgbuild.c, cfgexpand.c,
7276         cfgrtl.c, cilk-common.c, config/i386/i386.md, cse.c, dwarf2cfi.c,
7277         except.c, final.c, function.c, gcse-common.c, genemit.c,
7278         haifa-sched.c, ifcvt.c, jump.c, loop-invariant.c, loop-iv.c,
7279         lra-constraints.c, lra.c, reload1.c, resource.c, rtlanal.c,
7280         sched-deps.c, sched-ebb.c, sel-sched-ir.c, sel-sched.c,
7281         shrink-wrap.c, stmt.c, store-motion.c: Replace rtx base types with
7282         more derived ones.
7283
7284 2015-06-06  Mikhail Maltsev  <maltsevm@gmail.com>
7285
7286         * combine.c (combine_split_insns): Remove cast.
7287         * config/bfin/bfin.c (hwloop_fail): Add cast in try_split call.
7288         * config/sh/sh.c (sh_try_split_insn_simple): Remove cast.
7289         * config/sh/sh_treg_combine.cc (sh_treg_combine::execute): Add cast.
7290         * emit-rtl.c (try_split): Promote type of trial argument to rtx_insn.
7291         * genemit.c (gen_split): Change return type of generated functions to
7292         rtx_insn.
7293         * genrecog.c (get_failure_return): Use NULL instead of NULL_RTX.
7294         (print_subroutine_start): Promote rtx to rtx_insn in gen_split_* and
7295         gen_peephole2_* functions.
7296         (print_subroutine, main): Likewise.
7297         * recog.c (peephole2_optimize): Remove cast.
7298         (peep2_next_insn): Promote return type to rtx_insn.
7299         * recog.h (peep2_next_insn): Fix prototype.
7300         * rtl.h (try_split, split_insns): Likewise.
7301
7302 2015-06-06  DJ Delorie  <dj@redhat.com>
7303
7304         * config/msp430/msp430.c (msp430_asm_integer): Support addition
7305         and subtraction too.
7306
7307 2015-06-05  Kaz Kojima  <kkojima@gcc.gnu.org>
7308
7309         PR target/66410
7310         * config/sh/constraints.md (Sid, Ssd): New memory constraints.
7311         * config/sh/sh.md (*mov<mode>): Use Sid and Ssd alternatives
7312         instead of Snd.  Disparage Sid/z alternative with '^'.
7313
7314 2015-06-05  Aldy Hernandez  <aldyh@redhat.com>
7315
7316         * dwarf2out.c: Remove deferred_locations*.
7317         (dwarf2_debug_hooks): Add early_finish hook.
7318         Remove global_decl hook.
7319         Add early_global_decl and late_global_decl hook.
7320         New global early_dwarf.
7321         New structure set_early_dwarf.
7322         (output_die): Indicate whether a DIE was generated early
7323         when generating assembly with -dA.
7324         (struct limbo_die_struct): Document created_for field.
7325         Remove file_table_last_lookup.
7326         (remove_AT): Return TRUE if successful.
7327         (remove_child_TAG): Clear die_parent.
7328         (reparent_child): New function abstracted from...
7329         (splice_child_die): ...here.
7330         (new_die): ICE if a DIE ends up in limbo too late.
7331         (check_die): New.
7332         (defer_location): Remove.
7333         (add_subscript_info): Reuse DW_TAG_subrange_type if available.
7334         (fill_variable_array_bounds): New.
7335         (decl_start_label): Call fill_variable_array_bounds.
7336         (gen_formal_parameter_die): Rewrite to reuse previously generated
7337         DIEs.
7338         (gen_subprogram_die): Same.
7339         (gen_variable_die): Same.
7340         (gen_const_die): Same.
7341         (gen_label_die): Same.
7342         (gen_lexical_block_die): Same.
7343         (decl_will_get_specification_p): New.
7344         (local_function_static): New.
7345         (gen_struct_or_union_type_die): Fill in variable-length fields.
7346         (gen_typedef_die): Fill in variable-length typedefs.
7347         (gen_tagged_type_die): Gracefully return on error_mark_node.
7348         Handle re-entrancy.
7349         (gen_type_die_with_usage): Handle variable-length types.
7350         Remove duplicate code for ARRAY_TYPE case.
7351         (process_scope_var): Only process imported modules during early
7352         dwarf.
7353         (dwarf2out_early_global_decl): New.
7354         (dwarf2out_late_global_decl): Rename from dwarf2out_global_decl.
7355         (dwarf2out_type_decl): Set early_dwarf while calling
7356         dwarf2out_decl.
7357         (dwarf2out_decl): Verify that we did not recreate a previously
7358         generated DIE.
7359         Do not return on DECL_EXTERNALs in VAR_DECLs.
7360         Abstract some code to local_function_static.
7361         (lookup_filename): Remove use of file_table_last_lookup.
7362         Gracefully exit on missing file_name.
7363         (dwarf2out_finish): Verify limbo list.
7364         Remove deferred_locations_list use.
7365         Move deferred_asm_name and limbo flushing to...
7366         (dwarf2out_early_finish): ...here.  New.
7367         (dwarf2out_c_finalize): Remove set of deferred_location_list,
7368         deferred_asm_name, and file_table_last_lookup.
7369         * cgraph.h (referred_to_p): Add default argument.
7370         * cgraphunit.c (referred_to_p): Add and handle include_self
7371         argument.
7372         (analyze_functions): Add first_time argument.
7373         Call check_global_declaration for all symbols.
7374         Call late_global_decl for nodes for moribund nodes.
7375         (finalize_compilation_unit): Add new argument to
7376         analyze_functions.
7377         Call early_global_decl for functions.
7378         Call early_finish debug hook.
7379         * dbxout.c (dbxout_early_global_decl): New.
7380         (dbxout_late_global_decl): New.  Adapted from dbxout_global_decl.
7381         (dbx_debug_hooks): Add new hooks.
7382         (xcoff_debug_hooks): Same.
7383         * debug.c (do_nothing_debug_hooks): Add early_finish field.
7384         Add early and late debug hooks.
7385         Remove global_decl hook.
7386         * debug.h (struct gcc_debug_hooks): Add early_finish,
7387         early_global_decl, and late_global_decl fields.
7388         Remove global_decl field.
7389         Document gcc_debug_hooks.
7390         * gengtype.c (output_typename): Remove.
7391         * godump.c (go_early_global_decl): New.
7392         (go_late_global_decl): New.
7393         (go_global_decl): Remove.
7394         (dump_go_spec_init): Remove global_decl.  Add
7395         {early,late}_global_decl.
7396         * langhooks-def.h (LANG_HOOKS_WRITE_GLOBALS): Remove.
7397         (LANG_HOOKS_POST_COMPILATION_PARSING_CLEANUPS): New.
7398         * langhooks.c (lhd_warn_unused_global_decl): Adjust comment.
7399         (write_global_declarations): Remove.
7400         (global_decl_processing): New.
7401         * langhooks.h (struct lang_hooks_for_decls): Remove
7402         final_write_globals field.
7403         Add post_compilation_parsing_cleanups field.
7404         * passes.c (rest_of_decl_compilation): Call early_global_decl.
7405         * sdbout.c: Add early and late_global_decl hooks.  Remove
7406         sdbout_global_decl hook.
7407         Add early_finish field for sdb_debug_hooks.
7408         (sdbout_global_decl): Remove.
7409         (sdbout_early_global_decl): New.
7410         (sdbout_late_global_decl): New.
7411         * timevar.def (TV_PHASE_LATE_PARSING_CLEANUPS): New.
7412         * toplev.c (check_global_declaration): Rename from
7413         check_global_declaration_1.
7414         Adapt to use symtab infrastructure.
7415         (check_global_declarations): Remove.
7416         (emit_debug_global_declarations): Remove.
7417         (compile_file): Remove call to final_write_globals langhook.
7418         Run the actual compilation process.
7419         Perform any post compilation parser cleanups.
7420         Generate late debug info.
7421         * toplev.h (check_global_declaration): New.
7422         (check_global_declaration_1): Remove.
7423         (check_global_declarations): Remove.
7424         (write_global_declarations): Remove.
7425         (emit_debug_global_declarations): Remove.
7426         (global_decl_processing): New.
7427         * tree-core.h (struct tree_block): Add DIE field.
7428         * tree.h (BLOCK_DIE): New.
7429         * vmsdbgout.c (vmsdbgout_global_decl): Remove function and its use
7430         throughout.
7431         (vmsdbgout_early_global_decl): New.
7432         (vmsdbgout_late_global_decl): New.
7433         Add early_finish debug hook field to vmsdbg_debug_hooks.
7434         Remove vmsdbgout_decl to vmsdbgout_function_decl.
7435         Add early and late_global_decl debug hooks.
7436
7437 2015-06-05  Julian Brown  <julian@codesourcery.com>
7438             Sandra Loosemore  <sandra@codesourcery.com>
7439
7440         * config/print-sysroot-suffix.sh: Handle MULTILIB_REUSE settings.
7441         * config/t-sysroot-suffix (sysroot-suffix.h): Pass MULTILIB_REUSE
7442         to print-sysroot-suffix.sh script.
7443
7444 2015-06-05  Tom de Vries  <tom@codesourcery.com>
7445
7446         merge from gomp4 branch:
7447         2015-05-28  Tom de Vries  <tom@codesourcery.com>
7448
7449         PR tree-optimization/65443
7450         * tree-parloops.c (replace_imm_uses, replace_uses_in_bb_by)
7451         (replace_uses_in_bbs_by, transform_to_exit_first_loop_alt)
7452         (try_transform_to_exit_first_loop_alt): New function.
7453         (transform_to_exit_first_loop): Use
7454         try_transform_to_exit_first_loop_alt.
7455
7456 2015-06-05  James Greenhalgh  <james.greenhalgh@arm.com>
7457
7458         * builtins.c (expand_builtin_atomic_compare_exchange): Call
7459         emit_cmp_and_jump_insns with the mode of target.
7460
7461 2015-06-05  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
7462
7463         * config/i386/sse.md (sse3_mwait): Swap the operand constriants.
7464
7465 2015-06-04  DJ Delorie  <dj@redhat.com>
7466
7467         * config/msp430/msp430.md (movsi_s): New.  Special case for
7468         storing a 20-bit symbol into a 32-bit register.
7469         * config/msp430/msp430.c (msp430_subreg): Add support for it.
7470         * config/msp430/predicates.md (msp430_symbol_operand): New.
7471
7472 2015-06-04  Sriraman Tallam  <tmsriram@google.com>
7473
7474         * c-family/c-common.c (noplt): New attribute.
7475         (handle_noplt_attribute): New handler.
7476         * calls.c (prepare_call_address): Check for noplt
7477         attribute.
7478         * config/i386/i386.c (ix86_expand_call): Check
7479         for noplt attribute.
7480         (ix86_nopic_noplt_attribute_p): New function.
7481         (ix86_output_call_insn): Output indirect call for non-pic
7482         no plt calls.
7483         * doc/extend.texi (noplt): Document new attribute.
7484         * doc/invoke.texi: Document new attribute.
7485
7486 2015-06-04  Andrew MacLeod  <amacleod@redhat.com>
7487
7488         * coretypes.h: Include machmode.h, signop.h, wide-int.h, double-int.h,
7489         real.h, and fixed-value.h when included in host source files.
7490         * double-int.h: Remove redundant #includes listed above.
7491         * fixed-value.h: Likewise.
7492         * real.h: Likewise.
7493         * wide-int.h: Likewise.
7494         * inchash.h: Likewise.
7495         * rtl.h: Add some include files When included from a generator file.
7496         * target.h: Remove wide-int.h and insn-modes.h from the include list.
7497         * internal-fn.h: Don't include coretypes.h.
7498         * alias.c: Adjust includes for restructured coretypes.h.
7499         * asan.c: Likewise.
7500         * attribs.c: Likewise.
7501         * auto-inc-dec.c: Likewise.
7502         * auto-profile.c: Likewise.
7503         * bb-reorder.c: Likewise.
7504         * bt-load.c: Likewise.
7505         * builtins.c: Likewise.
7506         * caller-save.c: Likewise.
7507         * calls.c: Likewise.
7508         * ccmp.c: Likewise.
7509         * cfg.c: Likewise.
7510         * cfganal.c: Likewise.
7511         * cfgbuild.c: Likewise.
7512         * cfgcleanup.c: Likewise.
7513         * cfgexpand.c: Likewise.
7514         * cfghooks.c: Likewise.
7515         * cfgloop.c: Likewise.
7516         * cfgloop.h: Likewise.
7517         * cfgloopanal.c: Likewise.
7518         * cfgloopmanip.c: Likewise.
7519         * cfgrtl.c: Likewise.
7520         * cgraph.c: Likewise.
7521         * cgraphbuild.c: Likewise.
7522         * cgraphclones.c: Likewise.
7523         * cgraphunit.c: Likewise.
7524         * cilk-common.c: Likewise.
7525         * combine-stack-adj.c: Likewise.
7526         * combine.c: Likewise.
7527         * compare-elim.c: Likewise.
7528         * convert.c: Likewise.
7529         * coverage.c: Likewise.
7530         * cppbuiltin.c: Likewise.
7531         * cprop.c: Likewise.
7532         * cse.c: Likewise.
7533         * cselib.c: Likewise.
7534         * data-streamer-in.c: Likewise.
7535         * data-streamer-out.c: Likewise.
7536         * data-streamer.c: Likewise.
7537         * dbxout.c: Likewise.
7538         * dce.c: Likewise.
7539         * ddg.c: Likewise.
7540         * debug.c: Likewise.
7541         * df-core.c: Likewise.
7542         * df-problems.c: Likewise.
7543         * df-scan.c: Likewise.
7544         * df.h: Likewise.
7545         * dfp.c: Likewise.
7546         * dojump.c: Likewise.
7547         * dominance.c: Likewise.
7548         * domwalk.c: Likewise.
7549         * double-int.c: Likewise.
7550         * dse.c: Likewise.
7551         * dumpfile.c: Likewise.
7552         * dwarf2asm.c: Likewise.
7553         * dwarf2cfi.c: Likewise.
7554         * dwarf2out.c: Likewise.
7555         * dwarf2out.h: Likewise.
7556         * emit-rtl.c: Likewise.
7557         * et-forest.c: Likewise.
7558         * except.c: Likewise.
7559         * explow.c: Likewise.
7560         * expmed.c: Likewise.
7561         * expr.c: Likewise.
7562         * final.c: Likewise.
7563         * fixed-value.c: Likewise.
7564         * fold-const.c: Likewise.
7565         * function.c: Likewise.
7566         * fwprop.c: Likewise.
7567         * gcc-plugin.h: Likewise.
7568         * gcse.c: Likewise.
7569         * generic-match-head.c: Likewise.
7570         * ggc-page.c: Likewise.
7571         * gimple-builder.c: Likewise.
7572         * gimple-expr.c: Likewise.
7573         * gimple-fold.c: Likewise.
7574         * gimple-iterator.c: Likewise.
7575         * gimple-low.c: Likewise.
7576         * gimple-match-head.c: Likewise.
7577         * gimple-pretty-print.c: Likewise.
7578         * gimple-ssa-isolate-paths.c: Likewise.
7579         * gimple-ssa-strength-reduction.c: Likewise.
7580         * gimple-streamer-in.c: Likewise.
7581         * gimple-streamer-out.c: Likewise.
7582         * gimple-streamer.h: Likewise.
7583         * gimple-walk.c: Likewise.
7584         * gimple.c: Likewise.
7585         * gimplify-me.c: Likewise.
7586         * gimplify.c: Likewise.
7587         * godump.c: Likewise.
7588         * graph.c: Likewise.
7589         * graphite-blocking.c: Likewise.
7590         * graphite-dependences.c: Likewise.
7591         * graphite-interchange.c: Likewise.
7592         * graphite-isl-ast-to-gimple.c: Likewise.
7593         * graphite-optimize-isl.c: Likewise.
7594         * graphite-poly.c: Likewise.
7595         * graphite-scop-detection.c: Likewise.
7596         * graphite-sese-to-poly.c: Likewise.
7597         * graphite.c: Likewise.
7598         * haifa-sched.c: Likewise.
7599         * hooks.h: Likewise.
7600         * hw-doloop.c: Likewise.
7601         * ifcvt.c: Likewise.
7602         * incpath.c: Likewise.
7603         * init-regs.c: Likewise.
7604         * internal-fn.c: Likewise.
7605         * ipa-chkp.c: Likewise.
7606         * ipa-comdats.c: Likewise.
7607         * ipa-cp.c: Likewise.
7608         * ipa-devirt.c: Likewise.
7609         * ipa-icf-gimple.c: Likewise.
7610         * ipa-icf.c: Likewise.
7611         * ipa-inline-analysis.c: Likewise.
7612         * ipa-inline-transform.c: Likewise.
7613         * ipa-inline.c: Likewise.
7614         * ipa-polymorphic-call.c: Likewise.
7615         * ipa-profile.c: Likewise.
7616         * ipa-prop.c: Likewise.
7617         * ipa-pure-const.c: Likewise.
7618         * ipa-ref.c: Likewise.
7619         * ipa-reference.c: Likewise.
7620         * ipa-split.c: Likewise.
7621         * ipa-utils.c: Likewise.
7622         * ipa-visibility.c: Likewise.
7623         * ipa.c: Likewise.
7624         * ira-build.c: Likewise.
7625         * ira-color.c: Likewise.
7626         * ira-conflicts.c: Likewise.
7627         * ira-costs.c: Likewise.
7628         * ira-emit.c: Likewise.
7629         * ira-lives.c: Likewise.
7630         * ira.c: Likewise.
7631         * jump.c: Likewise.
7632         * langhooks.c: Likewise.
7633         * lcm.c: Likewise.
7634         * loop-doloop.c: Likewise.
7635         * loop-init.c: Likewise.
7636         * loop-invariant.c: Likewise.
7637         * loop-iv.c: Likewise.
7638         * loop-unroll.c: Likewise.
7639         * lower-subreg.c: Likewise.
7640         * lra-assigns.c: Likewise.
7641         * lra-coalesce.c: Likewise.
7642         * lra-constraints.c: Likewise.
7643         * lra-eliminations.c: Likewise.
7644         * lra-lives.c: Likewise.
7645         * lra-remat.c: Likewise.
7646         * lra-spills.c: Likewise.
7647         * lra.c: Likewise.
7648         * lto-cgraph.c: Likewise.
7649         * lto-compress.c: Likewise.
7650         * lto-opts.c: Likewise.
7651         * lto-section-in.c: Likewise.
7652         * lto-section-out.c: Likewise.
7653         * lto-streamer-in.c: Likewise.
7654         * lto-streamer-out.c: Likewise.
7655         * lto-streamer.c: Likewise.
7656         * mcf.c: Likewise.
7657         * mode-switching.c: Likewise.
7658         * modulo-sched.c: Likewise.
7659         * omega.c: Likewise.
7660         * omp-low.c: Likewise.
7661         * optabs.c: Likewise.
7662         * opts-global.c: Likewise.
7663         * passes.c: Likewise.
7664         * plugin.c: Likewise.
7665         * postreload-gcse.c: Likewise.
7666         * postreload.c: Likewise.
7667         * predict.c: Likewise.
7668         * print-rtl.c: Likewise.
7669         * print-tree.c: Likewise.
7670         * profile.c: Likewise.
7671         * real.c: Likewise.
7672         * realmpfr.c: Likewise.
7673         * realmpfr.h: Likewise.
7674         * recog.c: Likewise.
7675         * ree.c: Likewise.
7676         * reg-stack.c: Likewise.
7677         * regcprop.c: Likewise.
7678         * reginfo.c: Likewise.
7679         * regrename.c: Likewise.
7680         * regs.h: Likewise.
7681         * regstat.c: Likewise.
7682         * reload.c: Likewise.
7683         * reload1.c: Likewise.
7684         * reorg.c: Likewise.
7685         * resource.c: Likewise.
7686         * rtl-chkp.c: Likewise.
7687         * rtlanal.c: Likewise.
7688         * rtlhooks.c: Likewise.
7689         * sanopt.c: Likewise.
7690         * sched-deps.c: Likewise.
7691         * sched-ebb.c: Likewise.
7692         * sched-rgn.c: Likewise.
7693         * sched-vis.c: Likewise.
7694         * sdbout.c: Likewise.
7695         * sel-sched-dump.c: Likewise.
7696         * sel-sched-ir.c: Likewise.
7697         * sel-sched.c: Likewise.
7698         * sese.c: Likewise.
7699         * shrink-wrap.c: Likewise.
7700         * shrink-wrap.h: Likewise.
7701         * simplify-rtx.c: Likewise.
7702         * stack-ptr-mod.c: Likewise.
7703         * statistics.c: Likewise.
7704         * stmt.c: Likewise.
7705         * stor-layout.c: Likewise.
7706         * store-motion.c: Likewise.
7707         * stringpool.c: Likewise.
7708         * symtab.c: Likewise.
7709         * target-globals.c: Likewise.
7710         * targhooks.c: Likewise.
7711         * toplev.c: Likewise.
7712         * tracer.c: Likewise.
7713         * trans-mem.c: Likewise.
7714         * tree-affine.c: Likewise.
7715         * tree-affine.h: Likewise.
7716         * tree-browser.c: Likewise.
7717         * tree-call-cdce.c: Likewise.
7718         * tree-cfg.c: Likewise.
7719         * tree-cfgcleanup.c: Likewise.
7720         * tree-chkp-opt.c: Likewise.
7721         * tree-chkp.c: Likewise.
7722         * tree-chrec.c: Likewise.
7723         * tree-complex.c: Likewise.
7724         * tree-data-ref.c: Likewise.
7725         * tree-dfa.c: Likewise.
7726         * tree-diagnostic.c: Likewise.
7727         * tree-dump.c: Likewise.
7728         * tree-eh.c: Likewise.
7729         * tree-emutls.c: Likewise.
7730         * tree-if-conv.c: Likewise.
7731         * tree-inline.c: Likewise.
7732         * tree-into-ssa.c: Likewise.
7733         * tree-iterator.c: Likewise.
7734         * tree-loop-distribution.c: Likewise.
7735         * tree-nested.c: Likewise.
7736         * tree-nrv.c: Likewise.
7737         * tree-object-size.c: Likewise.
7738         * tree-outof-ssa.c: Likewise.
7739         * tree-parloops.c: Likewise.
7740         * tree-phinodes.c: Likewise.
7741         * tree-predcom.c: Likewise.
7742         * tree-pretty-print.c: Likewise.
7743         * tree-pretty-print.h: Likewise.
7744         * tree-profile.c: Likewise.
7745         * tree-scalar-evolution.c: Likewise.
7746         * tree-sra.c: Likewise.
7747         * tree-ssa-address.c: Likewise.
7748         * tree-ssa-alias.c: Likewise.
7749         * tree-ssa-ccp.c: Likewise.
7750         * tree-ssa-coalesce.c: Likewise.
7751         * tree-ssa-copy.c: Likewise.
7752         * tree-ssa-copyrename.c: Likewise.
7753         * tree-ssa-dce.c: Likewise.
7754         * tree-ssa-dom.c: Likewise.
7755         * tree-ssa-dse.c: Likewise.
7756         * tree-ssa-forwprop.c: Likewise.
7757         * tree-ssa-ifcombine.c: Likewise.
7758         * tree-ssa-live.c: Likewise.
7759         * tree-ssa-loop-ch.c: Likewise.
7760         * tree-ssa-loop-im.c: Likewise.
7761         * tree-ssa-loop-ivcanon.c: Likewise.
7762         * tree-ssa-loop-ivopts.c: Likewise.
7763         * tree-ssa-loop-manip.c: Likewise.
7764         * tree-ssa-loop-niter.c: Likewise.
7765         * tree-ssa-loop-prefetch.c: Likewise.
7766         * tree-ssa-loop-unswitch.c: Likewise.
7767         * tree-ssa-loop.c: Likewise.
7768         * tree-ssa-loop.h: Likewise.
7769         * tree-ssa-math-opts.c: Likewise.
7770         * tree-ssa-operands.c: Likewise.
7771         * tree-ssa-phiopt.c: Likewise.
7772         * tree-ssa-phiprop.c: Likewise.
7773         * tree-ssa-pre.c: Likewise.
7774         * tree-ssa-propagate.c: Likewise.
7775         * tree-ssa-reassoc.c: Likewise.
7776         * tree-ssa-sccvn.c: Likewise.
7777         * tree-ssa-scopedtables.c: Likewise.
7778         * tree-ssa-sink.c: Likewise.
7779         * tree-ssa-strlen.c: Likewise.
7780         * tree-ssa-structalias.c: Likewise.
7781         * tree-ssa-tail-merge.c: Likewise.
7782         * tree-ssa-ter.c: Likewise.
7783         * tree-ssa-threadedge.c: Likewise.
7784         * tree-ssa-threadupdate.c: Likewise.
7785         * tree-ssa-uncprop.c: Likewise.
7786         * tree-ssa-uninit.c: Likewise.
7787         * tree-ssa.c: Likewise.
7788         * tree-ssanames.c: Likewise.
7789         * tree-stdarg.c: Likewise.
7790         * tree-streamer-in.c: Likewise.
7791         * tree-streamer-out.c: Likewise.
7792         * tree-streamer.c: Likewise.
7793         * tree-switch-conversion.c: Likewise.
7794         * tree-tailcall.c: Likewise.
7795         * tree-vect-data-refs.c: Likewise.
7796         * tree-vect-generic.c: Likewise.
7797         * tree-vect-loop-manip.c: Likewise.
7798         * tree-vect-loop.c: Likewise.
7799         * tree-vect-patterns.c: Likewise.
7800         * tree-vect-slp.c: Likewise.
7801         * tree-vect-stmts.c: Likewise.
7802         * tree-vectorizer.c: Likewise.
7803         * tree-vrp.c: Likewise.
7804         * tree.c: Likewise.
7805         * tsan.c: Likewise.
7806         * ubsan.c: Likewise.
7807         * valtrack.c: Likewise.
7808         * value-prof.c: Likewise.
7809         * var-tracking.c: Likewise.
7810         * varasm.c: Likewise.
7811         * varpool.c: Likewise.
7812         * vmsdbgout.c: Likewise.
7813         * vtable-verify.c: Likewise.
7814         * web.c: Likewise.
7815         * wide-int-print.cc: Likewise.
7816         * wide-int-print.h: Likewise.
7817         * wide-int.cc: Likewise.
7818         * xcoffout.c: Likewise.
7819         * config/aarch64/aarch64-builtins.c: Likewise.
7820         * config/aarch64/aarch64.c: Likewise.
7821         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
7822         * config/alpha/alpha.c: Likewise.
7823         * config/arc/arc.c: Likewise.
7824         * config/arm/aarch-common.c: Likewise.
7825         * config/arm/arm-builtins.c: Likewise.
7826         * config/arm/arm-c.c: Likewise.
7827         * config/arm/arm.c: Likewise.
7828         * config/avr/avr-c.c: Likewise.
7829         * config/avr/avr-log.c: Likewise.
7830         * config/avr/avr.c: Likewise.
7831         * config/bfin/bfin.c: Likewise.
7832         * config/c6x/c6x.c: Likewise.
7833         * config/cr16/cr16.c: Likewise.
7834         * config/cris/cris.c: Likewise.
7835         * config/darwin-c.c: Likewise.
7836         * config/darwin.c: Likewise.
7837         * config/default-c.c: Likewise.
7838         * config/epiphany/epiphany.c: Likewise.
7839         * config/epiphany/mode-switch-use.c: Likewise.
7840         * config/epiphany/resolve-sw-modes.c: Likewise.
7841         * config/fr30/fr30.c: Likewise.
7842         * config/frv/frv.c: Likewise.
7843         * config/ft32/ft32.c: Likewise.
7844         * config/glibc-c.c: Likewise.
7845         * config/h8300/h8300.c: Likewise.
7846         * config/i386/i386-c.c: Likewise.
7847         * config/i386/i386.c: Likewise.
7848         * config/i386/msformat-c.c: Likewise.
7849         * config/i386/winnt-cxx.c: Likewise.
7850         * config/i386/winnt-stubs.c: Likewise.
7851         * config/i386/winnt.c: Likewise.
7852         * config/ia64/ia64-c.c: Likewise.
7853         * config/ia64/ia64.c: Likewise.
7854         * config/iq2000/iq2000.c: Likewise.
7855         * config/lm32/lm32.c: Likewise.
7856         * config/m32c/m32c-pragma.c: Likewise.
7857         * config/m32c/m32c.c: Likewise.
7858         * config/m32r/m32r.c: Likewise.
7859         * config/m68k/m68k.c: Likewise.
7860         * config/mcore/mcore.c: Likewise.
7861         * config/mep/mep-pragma.c: Likewise.
7862         * config/mep/mep.c: Likewise.
7863         * config/microblaze/microblaze-c.c: Likewise.
7864         * config/microblaze/microblaze.c: Likewise.
7865         * config/mips/mips.c: Likewise.
7866         * config/mmix/mmix.c: Likewise.
7867         * config/mn10300/mn10300.c: Likewise.
7868         * config/moxie/moxie.c: Likewise.
7869         * config/msp430/msp430-c.c: Likewise.
7870         * config/msp430/msp430.c: Likewise.
7871         * config/nds32/nds32-cost.c: Likewise.
7872         * config/nds32/nds32-fp-as-gp.c: Likewise.
7873         * config/nds32/nds32-intrinsic.c: Likewise.
7874         * config/nds32/nds32-isr.c: Likewise.
7875         * config/nds32/nds32-md-auxiliary.c: Likewise.
7876         * config/nds32/nds32-memory-manipulation.c: Likewise.
7877         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
7878         * config/nds32/nds32-predicates.c: Likewise.
7879         * config/nds32/nds32.c: Likewise.
7880         * config/nios2/nios2.c: Likewise.
7881         * config/nvptx/nvptx.c: Likewise.
7882         * config/pa/pa.c: Likewise.
7883         * config/pdp11/pdp11.c: Likewise.
7884         * config/rl78/rl78-c.c: Likewise.
7885         * config/rl78/rl78.c: Likewise.
7886         * config/rs6000/rs6000-c.c: Likewise.
7887         * config/rs6000/rs6000.c: Likewise.
7888         * config/rx/rx.c: Likewise.
7889         * config/s390/s390-c.c: Likewise.
7890         * config/s390/s390.c: Likewise.
7891         * config/sh/sh-c.c: Likewise.
7892         * config/sh/sh-mem.cc: Likewise.
7893         * config/sh/sh.c: Likewise.
7894         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
7895         * config/sh/sh_treg_combine.cc: Likewise.
7896         * config/sol2-c.c: Likewise.
7897         * config/sol2-cxx.c: Likewise.
7898         * config/sol2-stubs.c: Likewise.
7899         * config/sol2.c: Likewise.
7900         * config/sparc/sparc-c.c: Likewise.
7901         * config/sparc/sparc.c: Likewise.
7902         * config/spu/spu-c.c: Likewise.
7903         * config/spu/spu.c: Likewise.
7904         * config/stormy16/stormy16.c: Likewise.
7905         * config/tilegx/mul-tables.c: Likewise.
7906         * config/tilegx/tilegx-c.c: Likewise.
7907         * config/tilegx/tilegx.c: Likewise.
7908         * config/tilepro/mul-tables.c: Likewise.
7909         * config/tilepro/tilepro-c.c: Likewise.
7910         * config/tilepro/tilepro.c: Likewise.
7911         * config/v850/v850-c.c: Likewise.
7912         * config/v850/v850.c: Likewise.
7913         * config/vax/vax.c: Likewise.
7914         * config/visium/visium.c: Likewise.
7915         * config/vms/vms-c.c: Likewise.
7916         * config/vms/vms.c: Likewise.
7917         * config/vxworks.c: Likewise.
7918         * config/winnt-c.c: Likewise.
7919         * config/xtensa/xtensa.c: Likewise.
7920         * common/config/bfin/bfin-common.c: Likewise.
7921
7922 2015-06-04  Jan Hubicka  <hubicka@ucw.cz>
7923
7924         * tree.h (tree_code_for_canonical_type_merging): New function.
7925         * tree.c (gimple_canonical_types_compatible_p): Use
7926         tree_code_for_canonical_type_merging..
7927
7928 2015-06-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7929
7930         PR c++/66192
7931         PR target/66200
7932         * doc/tm.texi: Regenerate.
7933         * doc/tm.texi.in (TARGET_RELAXED_ORDERING): Delete.
7934         * target.def (TARGET_RELAXED_ORDERING): Likewise.
7935         * config/alpha/alpha.c (TARGET_RELAXED_ORDERING): Likewise.
7936         * config/ia64/ia64.c (TARGET_RELAXED_ORDERING): Likewise.
7937         * config/rs6000/rs6000.c (TARGET_RELAXED_ORDERING): Likewise.
7938         * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Likewise.
7939         * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
7940         * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Likewise.
7941         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Likewise.
7942
7943 2015-06-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7944
7945         * config/aarch64/aarch64.c (aarch64_override_options): Unconditionally
7946         register fma steering pass.
7947         * config/aarch64/cortex-a57-fma-steering.c (gate): Add gating on
7948         AARCH64_TUNE_FMA_STEERING.
7949
7950 2015-06-03  Jan Hubicka  <hubicka@ucw.cz>
7951
7952         * tree.c (verify_type_variant): Verify that type and variant is
7953         compatible.
7954         (gimple_canonical_types_compatible_p): Look for main variants.
7955
7956 2015-06-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
7957
7958         * config.gcc (powerpc*-*-*): Add support for a new configure
7959         option --with-advance-toolchain=<xxx> which overrides using the
7960         default header files, libraries and dynamic linker.
7961
7962         * config/rs6000/linux64.h (SUBSUBTARGET_EXTRA_SPECS): Add new
7963         specs to support the configure --with-advance-toolchain=<xxx>
7964         option.
7965         (INCLUDE_EXTRA_SPEC): Likewise.
7966         (LINK_OS_EXTRA_SPEC32): Likewise.
7967         (LINK_OK_EXTRA_SPEC64): Likewise.
7968         (LINK_OS_NEW_DTAGS_SPEC): Likewise.
7969         (DYNAMIC_LINKER_PREFIX): Likewise.
7970         (CPP_OS_DEFAULT_SPEC): Use the new specs for providing advance
7971         toolchain support.
7972         (GLIBC_DYNAMIC_LINKER32): Likewise.
7973         (GLIBC_DYNAMIC_LINKER64): Likewise.
7974         (LINK_OS_LINUX_SPEC32): Likewise.
7975         (LINK_OS_LINUX_SPEC64): Likewise.
7976
7977         * doc/install.texi (--enable-advance-toolchain=<xx>): Document new
7978         configuration option.
7979
7980 2015-06-03  Uros Bizjak  <ubizjak@gmail.com>
7981
7982         PR target/66275
7983         * config/i386/i386.c (ix86_function_arg_regno): Use ix86_cfun_abi
7984         to determine current function ABI.
7985         (ix86_function_value_regno_p): Ditto.
7986
7987 2015-06-03  Martin Liska  <mliska@suse.cz>
7988
7989         * alloc-pool.h (struct pool_usage): Correct GNU coding style.
7990         * bitmap.h (struct bitmap_usage): Likewise.
7991         * ggc-common.c (struct ggc_usage): Likewise.
7992         * mem-stats.h (struct mem_location): Likewise.
7993         (struct mem_usage): Likewise.
7994         * vec.c (struct vec_usage): Likewise.
7995
7996 2015-06-03  Benigno B. Junior  <bbj@gentoo.org>
7997
7998         * config/netbsd-elf.h (NETBSD_LINK_SPEC_ELF): Turn -symbolic into
7999         -Bsymbolic.
8000
8001 2015-06-02  Andres Tiraboschi  <andres.tiraboschi@tallertechnologies.com>
8002
8003         * doc/plugins.texi (enum plugin_event): New event.
8004         * plugin.c (register_callback): Handle PLUGIN_START_PARSE_FUNCTION
8005         and PLUGIN_FINISH_FUNCTION.
8006         * plugin.def (PLUGIN_START_PARSE_FUNCTION): Add plugin event
8007         (PLUGIN_FINISH_PARSE_FUNCTION): Likewise.
8008
8009 2015-06-03  Richard Biener  <rguenther@suse.de>
8010
8011         * tree-vect-data-refs.c (vect_analyze_group_access): Properly
8012         compute GROUP_GAP for the first element.
8013         * tree-vect-slp.c (vect_build_slp_tree_1): Remove restriction
8014         on in-group gaps.
8015
8016 2015-06-03  Nick Clifton  <nickc@redhat.com>
8017
8018         * config/rl78/rl78-real.md: Add peepholes to avoid a register
8019         copy when calling a function.
8020         * config/rl78/rl78.c (need_to_save): Do not push the frame
8021         pointer in an interrupt handler prologue if it is never used.
8022
8023 2015-06-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8024
8025         * ifcvt (end_ifcvt_sequence): Fix typo in comment above.
8026
8027 2015-06-03  Ilya Enkovich  <ilya.enkovich@intel.com>
8028
8029         * ipa-chkp.c (chkp_maybe_create_clone): Create alias
8030         reference when cloning alias node.
8031
8032 2015-06-03  Martin Liska  <mliska@suse.cz>
8033
8034         * alloc-pool.h (struct pool_usage): Correct space padding.
8035         * ggc-page.c (ggc_print_statistics): Align columns in a report.
8036         * mem-stats.h (struct mem_usage): Add argument to print_dash_line.
8037         * tree.c (dump_tree_statistics): Align columns in a report.
8038
8039 2015-06-03  Martin Liska  <mliska@suse.cz>
8040
8041         * alloc-pool.c (allocate_pool_descriptor): Remove.
8042         (struct pool_output_info): Likewise.
8043         (print_alloc_pool_statistics): Likewise.
8044         (dump_alloc_pool_statistics): Likewise.
8045         * alloc-pool.h (struct pool_usage): New struct.
8046         (pool_allocator::initialize): Change usage of memory statistics
8047         to a new interface.
8048         (pool_allocator::release): Likewise.
8049         (pool_allocator::allocate): Likewise.
8050         (pool_allocator::remove): Likewise.
8051         * mem-stats-traits.h (enum mem_alloc_origin): Add new enum value
8052         for a pool allocator.
8053         * mem-stats.h (struct mem_location): Add new ctor.
8054         (struct mem_usage): Add counter for number of
8055         instances.
8056         (mem_alloc_description::register_descriptor): New overload of
8057         * mem-stats.h (mem_location::to_string): New function.
8058         * bitmap.h (struct bitmap_usage): Use this new function.
8059         * ggc-common.c (struct ggc_usage): Likewise.
8060         the function.
8061
8062 2015-06-03  Richard Sandiford  <richard.sandiford@arm.com>
8063
8064         * defaults.h (SWITCHABLE_TARGET, TARGET_SUPPORTS_WIDE_INT): Move out
8065         of GCC_INSN_FLAGS_H block.
8066
8067 2015-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
8068
8069         * explow.c (plus_constant): Update check after force_const_mem call
8070         to see if the value returned is not a NULL_RTX.
8071
8072 2015-06-03  Ilya Enkovich  <ilya.enkovich@intel.com>
8073
8074         * ipa.c (symbol_table::remove_unreachable_nodes): Don't
8075         remove instumentation thunks calling reachable functions.
8076         * lto-cgraph.c (output_refs): Always output IPA_REF_CHKP.
8077         * lto/lto-partition.c (privatize_symbol_name_1): New.
8078         (privatize_symbol_name): Privatize both decl and orig_decl
8079         names for instrumented functions.
8080         * cgraph.c (cgraph_node::verify_node): Add transparent
8081         alias chain check for instrumented node.
8082
8083 2015-06-03  Marek Polacek  <polacek@redhat.com>
8084
8085         PR c/64223
8086         PR c/29358
8087         * tree.c (attribute_value_equal): Handle attribute format.
8088         (cmp_attrib_identifiers): Factor out of lookup_ident_attribute.
8089
8090 2015-06-03  Richard Biener  <rguenther@suse.de>
8091
8092         PR tree-optimization/63916
8093         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
8094         Forward-propagate non-invariant addresses by splicing their
8095         reference ops if the result isn't going to be used by PRE.
8096         (vn_reference_lookup_3): Remove pointless assert.
8097
8098 2015-06-03  Richard Biener  <rguenther@suse.de>
8099
8100         PR tree-optimization/66375
8101         * tree-scalar-evolution.c (follow_ssa_edge_binary): First
8102         add to the evolution before following SSA edges.
8103
8104 2015-06-03  Bin Cheng  <bin.cheng@arm.com>
8105
8106         * tree-ssa-loop-ivopts.c (dump_iv): New parameter.
8107         (dump_use, dump_cand, find_induction_variables): Pass new argument
8108         to dump_iv.
8109         (record_use): Preserve the ssa name information in IV.
8110
8111 2015-06-03  Richard Sandiford  <richard.sandiford@arm.com>
8112
8113         * genpreds.c (mark_mode_tests): Mark all MATCH_CODEs as
8114         NO_MODE_TEST.
8115         (add_mode_tests): Don't add mode tests if the predicate only
8116         accepts scalar constant integers.  Otherwise, allow the mode
8117         of "op" to be VOIDmode if the predicate does accept such integers.
8118
8119 2015-06-02  Jim Wilson  <jim.wilson@linaro.org>
8120
8121         PR target/66258
8122         * config/aarch64/aarch64.c (aarch64_function_value_regno_p): Change
8123         !TARGET_GENERAL_REGS_ONLY to TARGET_FLOAT.
8124         (aarch64_secondary_reload): Likewise
8125         (aarch64_expand_builtin_va_start): Change TARGET_GENERAL_REGS_ONLY
8126         to !TARGET_FLOAT.
8127         (aarch64_gimplify_va_arg_expr, aarch64_setup_incoming_varargs):
8128         Likewise.
8129
8130 2015-06-03  Kugan Vivekanandarajah  <kuganv@linaro.org>
8131             Zhenqiang Chen  <zhenqiang.chen@linaro.org>
8132
8133         PR target/65768
8134         * cprop.c (try_replace_reg): Check cost of constants before propagating.
8135
8136 2015-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
8137
8138         * config/rs6000/rs6000-modes.def (IFmode): Define IFmode to
8139         provide access to the IBM extended double floating point mode if
8140         long double is IEEE 128-bit floating point.
8141         (KFmode): Define KFmode to provide access to IEEE 128-bit floating
8142         point if long double is the IBM extended double type.
8143
8144         * config/rs6000/rs6000.opt (-mfloat128-none): New switches to
8145         enable adding IEEE 128-bit floating point support.
8146         (-mfloat128-software): Likewise.
8147         (-mfloat128-sw): Likewise.
8148
8149         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Do not allow
8150         128-bit floating point types to occupy any register if
8151         -mlong-double-64.  Do not allow use of IFmode/KFmode unless
8152         -mfloat128-software is enabled.
8153         (rs6000_debug_reg_global): Add IEEE 128-bit floating point debug
8154         support.
8155         (rs6000_option_override_internal): Add -mfloat128-* support.
8156         (rs6000_init_builtins): Setup __ibm128 and __float128 type modes.
8157
8158         * config/rs6000/rs6000.h (rs6000_builtin_type_index): Add ibm128
8159         and float128 type nodes.
8160         (ieee128_float_type_node): Likewise.
8161         (ibm128_float_type_node): Likewise.
8162
8163 2015-06-02  Szabolcs Nagy  <szabolcs.nagy@arm.com>
8164
8165         PR target/66136
8166         * config/aarch64/geniterators.sh: Rewrite in awk.
8167
8168 2015-06-02  Martin Liska  <mliska@suse.cz>
8169
8170         * alloc-pool.h (pool_allocator::pool_allocator): Set implicit
8171         values to avoid -Wmaybe-uninitialized errors.
8172
8173 2015-06-02  Richard Biener  <rguenther@suse.de>
8174
8175         PR debug/65549
8176         * dwarf2out.c (lookup_context_die): New function.
8177         (resolve_addr): Avoid forcing a full DIE for the
8178         target of a DW_TAG_GNU_call_site during late compilation.
8179         Instead create a stub DIE without a type if we have a
8180         context DIE present.
8181
8182 2015-06-02  Uros Bizjak  <ubizjak@gmail.com>
8183
8184         * df-scan.c (df_scan_start_dump): Add space between regno and regname.
8185
8186 2015-06-02  Bin Cheng  <bin.cheng@arm.com>
8187
8188         PR tree-optimization/48052
8189         * cfgloop.h (struct control_iv): New.
8190         (struct loop): New field control_ivs.
8191         * tree-ssa-loop-niter.c : Include "stor-layout.h".
8192         (number_of_iterations_lt): Set no_overflow information.
8193         (number_of_iterations_exit): Init control iv in niter struct.
8194         (record_control_iv): New.
8195         (estimate_numbers_of_iterations_loop): Call record_control_iv.
8196         (loop_exits_before_overflow): New.  Interface factored out of
8197         scev_probably_wraps_p.
8198         (scev_probably_wraps_p): Factor loop niter related code into
8199         loop_exits_before_overflow.
8200         (free_numbers_of_iterations_estimates_loop): Free control ivs.
8201         * tree-ssa-loop-niter.h (free_loop_control_ivs): New.
8202
8203 2015-06-02  Eric Botcazou  <ebotcazou@adacore.com>
8204
8205         * gimplify.c (gimplify_modify_expr): Do not create a DECL_DEBUG_EXPR if
8206         the target doesn't belong to the current function.
8207
8208 2015-06-02  Marek Polacek  <polacek@redhat.com>
8209
8210         PR middle-end/66345
8211         * gimple-fold.c (gimple_fold_builtin_snprintf): Return false if
8212         get_maxval_strlen does not produce an INTEGER_CST.
8213
8214 2015-06-02  Richard Sandiford  <richard.sandiford@arm.com>
8215
8216         * config/arc/constraints.md: Use lower-case names in match_code.
8217         * config/mmix/constraints.md: Likewise.
8218
8219 2015-06-02  Richard Biener  <rguenther@suse.de>
8220
8221         PR tree-optimization/65961
8222         * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove bogus
8223         check and clarify dump message.
8224         (vect_build_slp_tree): If all children are built up from scalars
8225         build up the parent from scalars instead.
8226         * tree-vect-stmts.c (vect_is_simple_use): Cleanup.
8227
8228 2015-06-02  Jan Kratochvil  <jan.kratochvil@redhat.com>
8229
8230         PR other/65366
8231         * gdbhooks.py: Use int(...) instead of long(...).  Use print(...)
8232         instead of print ... .
8233
8234 2015-06-02  Alan Modra  <amodra@gmail.com>
8235
8236         * config/rs6000/vsx.md (vsx_extract_v4sf): Revert accidental
8237         2014-08-11 change.
8238
8239 2015-06-02  Bin Cheng  <bin.cheng@arm.com>
8240
8241         PR tree-optimization/52563
8242         PR tree-optimization/62173
8243         * tree-ssa-loop-ivopts.c (struct iv): New field.  Reorder fields.
8244         (alloc_iv, set_iv): New parameter.
8245         (determine_biv_step): Delete.
8246         (find_bivs): Inline original determine_biv_step.  Pass new
8247         argument to set_iv.
8248         (idx_find_step): Use no_overflow information for conversion.
8249         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop): Let
8250         resolve_mixers handle folded_casts.
8251         (instantiate_scev_name): Change bool parameter to bool pointer.
8252         (instantiate_scev_poly, instantiate_scev_binary): Ditto.
8253         (instantiate_array_ref, instantiate_scev_not): Ditto.
8254         (instantiate_scev_3, instantiate_scev_2): Ditto.
8255         (instantiate_scev_1, instantiate_scev_r): Ditto.
8256         (instantiate_scev_convert, ): Change parameter.  Pass argument
8257         to chrec_convert_aggressive.
8258         (instantiate_scev): Change argument.
8259         (resolve_mixers): New parameter and set it.
8260         (scev_const_prop): New argument.
8261         * tree-scalar-evolution.h (resolve_mixers): New parameter.
8262         * tree-chrec.c (convert_affine_scev): Call chrec_convert instead
8263         of chrec_conert_1.
8264         (chrec_convert): New parameter.  Move definition below.
8265         (chrec_convert_aggressive): New parameter and set it.  Call
8266         convert_affine_scev.
8267         * tree-chrec.h (chrec_convert): New parameter.
8268         (chrec_convert_aggressive): Ditto.
8269
8270 2015-06-01  Eric Botcazou  <ebotcazou@adacore.com>
8271
8272         * gimplify.c (gimplify_modify_expr_rhs): Use simple test on the size.
8273         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Do not remove
8274         the LHS of a no-return call if its type has variable size.
8275         * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
8276         * tree-cfg.c (verify_gimple_call): Accept these no-return calls.
8277
8278 2015-06-01  Andreas Tobler  <andreast@gcc.gnu.org>
8279
8280         * read-rtl.c: Adapt to use HAVE_DECL_ATOLL instead of HAVE_ATOLL.
8281         * config.in: Regenerate.
8282
8283 2015-06-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
8284
8285         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
8286         consecutive accesses within outer-loop with force_vectorize
8287         for references with zero step in inner-loop.
8288
8289 2015-06-01  Vidya Praveen  <vidyapraveen@arm.com>
8290
8291         * Makefile.in: Pick up gcov-dump dependencies from gcc/ directory
8292         rather than from gcc/build directory.
8293
8294 2015-06-01  Matthew Wahab  <matthew.wahab@arm.com>
8295
8296         PR target/65697
8297         * config/aarch64/aarch64.c (aarch64_split_compare_and_swap): Check
8298         for __sync memory models, emit initial loads and final barriers as
8299         appropriate.
8300
8301 2015-06-01  Matthew Wahab  <matthew.wahab@arm.com>
8302
8303         PR target/65697
8304         * config/aarch64/aarch64.c (aarch64_emit_post_barrier):New.
8305         (aarch64_split_atomic_op): Check for __sync memory models, emit
8306         appropriate initial loads and final barriers.
8307
8308 2015-06-01  Vidya Praveen  <vidyapraveen@arm.com>
8309
8310         * Makefile.in: Fix gcov dependencies that should
8311         not point to a build folder.
8312
8313 2015-06-01  Richard Biener  <rguenther@suse.de>
8314
8315         Revert
8316         2015-05-29  Richard Biener  <rguenther@suse.de>
8317
8318         PR tree-optimization/66314
8319         * tree-ssa-threadupdate.c (create_block_for_threading): Add
8320         parameter that says which loop the new block belongs to.
8321         (ssa_create_duplicates): Blocks duplicated for the threaded
8322         path belong to the loop of the thread destination.
8323
8324 2015-06-01  Martin Liska  <mliska@suse.cz>
8325
8326         * sched-deps.c: Include pool-alloc.h before
8327         cselib.h header file is included.
8328
8329 2015-06-01  Richard Biener  <rguenther@suse.de>
8330
8331         * tree-ssa-structalias.c (ipa_pta_execute): Handle address-taken
8332         functions.
8333
8334 2015-06-01  Martin Liska  <mliska@suse.cz>
8335
8336         * alloc-pool.h: Add ATTRIBUTE_UNUSED for
8337         a function local variable.
8338
8339 2015-06-01  Martin Liska  <mliska@suse.cz>
8340
8341         * alloc-pool.c (create_alloc_pool): Remove.
8342         (empty_alloc_pool): Likewise.
8343         (free_alloc_pool): Likewise.
8344         (free_alloc_pool_if_empty): Likewise.
8345         (pool_alloc): Likewise.
8346         (pool_free): Likewise.
8347         * alloc-pool.h: Remove old declarations.
8348
8349 2015-06-01  Martin Liska  <mliska@suse.cz>
8350
8351         * ira-build.c (initiate_allocnos): Use new type-based pool allocator.
8352         (ira_create_object): Likewise.
8353         (ira_create_allocno): Likewise.
8354         (ira_create_live_range): Likewise.
8355         (copy_live_range): Likewise.
8356         (ira_finish_live_range): Likewise.
8357         (ira_free_allocno_costs): Likewise.
8358         (finish_allocno): Likewise.
8359         (finish_allocnos): Likewise.
8360         (initiate_prefs): Likewise.
8361         (ira_create_pref): Likewise.
8362         (finish_pref): Likewise.
8363         (finish_prefs): Likewise.
8364         (initiate_copies): Likewise.
8365         (ira_create_copy): Likewise.
8366         (finish_copy): Likewise.
8367         (finish_copies): Likewise.
8368         (finish_prefs): Likewise.
8369
8370 2015-06-01  Martin Liska  <mliska@suse.cz>
8371
8372         * ipa-cp.c (ipcp_value::add_source): Use new type-based pool allocator.
8373         (allocate_and_init_ipcp_value): Likewise.
8374         (ipcp_lattice::add_value): Likewise.
8375         (merge_agg_lats_step): Likewise.
8376         (ipcp_driver): Likewise.
8377         * ipa-prop.c (ipa_free_all_structures_after_ipa_cp): Likewise.
8378         (ipa_free_all_structures_after_iinln): Likewise.
8379         * ipa-prop.h: Likewise.
8380
8381 2015-06-01  Martin Liska  <mliska@suse.cz>
8382
8383         * ipa-inline-analysis.c (edge_set_predicate): Use new type-based
8384         pool allocator.
8385         (set_hint_predicate): Likewise.
8386         (inline_summary_alloc): Likewise.
8387         (reset_inline_edge_summary): Likewise.
8388         (reset_inline_summary): Likewise.
8389         (set_cond_stmt_execution_predicate): Likewise.
8390         (set_switch_stmt_execution_predicate): Likewise.
8391         (compute_bb_predicates): Likewise.
8392         (estimate_function_body_sizes): Likewise.
8393         (inline_free_summary): Likewise.
8394
8395 2015-06-01  Martin Liska  <mliska@suse.cz>
8396
8397         * ipa-prop.c (ipa_set_jf_constant): Use new type-based pool allocator.
8398         (ipa_edge_duplication_hook): Likewise.
8399         (ipa_free_all_structures_after_ipa_cp): Likewise.
8400         (ipa_free_all_structures_after_iinln): Likewise.
8401
8402 2015-06-01  Martin Liska  <mliska@suse.cz>
8403
8404         * ipa-profile.c (account_time_size): Use new type-based pool allocator.
8405         (ipa_profile_generate_summary): Likewise.
8406         (ipa_profile_read_summary): Likewise.
8407         (ipa_profile): Likewise.
8408
8409 2015-06-01  Martin Liska  <mliska@suse.cz>
8410
8411         * tree-ssa-structalias.c (new_var_info): Use new type-based
8412         pool allocator.
8413         (new_constraint): Likewise.
8414         (init_alias_vars): Likewise.
8415         (delete_points_to_sets): Likewise.
8416
8417 2015-06-01  Martin Liska  <mliska@suse.cz>
8418
8419         * tree-ssa-strlen.c (new_strinfo): Use new type-based pool allocator.
8420         (free_strinfo): Likewise.
8421         (pass_strlen::execute): Likewise.
8422
8423 2015-06-01  Martin Liska  <mliska@suse.cz>
8424
8425         * tree-ssa-sccvn.c (vn_reference_insert): Use new type-based
8426         pool allocator.
8427         (vn_reference_insert_pieces): Likewise.
8428         (vn_phi_insert): Likewise.
8429         (visit_reference_op_call): Likewise.
8430         (copy_phi): Likewise.
8431         (copy_reference): Likewise.
8432         (process_scc): Likewise.
8433         (allocate_vn_table): Likewise.
8434         (free_vn_table): Likewise.
8435
8436 2015-06-01  Martin Liska  <mliska@suse.cz>
8437
8438         * tree-ssa-reassoc.c (add_to_ops_vec): Use new type-based
8439         pool allocator.
8440         (add_repeat_to_ops_vec): Likewise.
8441         (get_ops): Likewise.
8442         (maybe_optimize_range_tests): Likewise.
8443         (init_reassoc): Likewise.
8444         (fini_reassoc): Likewise.
8445
8446 2015-06-01  Martin Liska  <mliska@suse.cz>
8447
8448         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Use new type-based
8449         pool allocator.
8450         (bitmap_set_new): Likewise.
8451         (get_or_alloc_expr_for_constant): Likewise.
8452         (get_or_alloc_expr_for): Likewise.
8453         (phi_translate_1): Likewise.
8454         (compute_avail): Likewise.
8455         (init_pre): Likewise.
8456         (fini_pre): Likewise.
8457
8458 2015-06-01  Martin Liska  <mliska@suse.cz>
8459
8460         * sched-deps.c (create_dep_node): Use new type-based pool allocator.
8461         (delete_dep_node): Likewise.
8462         (create_deps_list): Likewise.
8463         (free_deps_list): Likewise.
8464         (sched_deps_init): Likewise.
8465         (sched_deps_finish): Likewise.
8466
8467 2015-06-01  Martin Liska  <mliska@suse.cz>
8468
8469         * regcprop.c (free_debug_insn_changes): Use new type-based
8470         pool allocator.
8471         (replace_oldest_value_reg): Likewise.
8472         (pass_cprop_hardreg::execute): Likewise.
8473
8474 2015-06-01  Martin Liska  <mliska@suse.cz>
8475
8476         * ira-build.c (initiate_cost_vectors): Use new type-based
8477         pool allocator.
8478         (ira_allocate_cost_vector): Likewise.
8479         (ira_free_cost_vector): Likewise.
8480         (finish_cost_vectors): Likewise.
8481
8482 2015-06-01  Martin Liska  <mliska@suse.cz>
8483
8484         * sel-sched-ir.c (alloc_sched_pools): Use new type-based
8485         pool allocator.
8486         (free_sched_pools): Likewise.
8487         * sel-sched-ir.h (_list_alloc): Likewise.
8488         (_list_remove): Likewise.
8489
8490 2015-06-01  Martin Liska  <mliska@suse.cz>
8491
8492         * stmt.c (add_case_node): Use new type-based pool allocator.
8493         (expand_case): Likewise.
8494         (expand_sjlj_dispatch_table): Likewise.
8495
8496 2015-06-01  Martin Liska  <mliska@suse.cz>
8497
8498         * tree-ssa-math-opts.c (occ_new): Use new type-based pool allocator.
8499         (free_bb): Likewise.
8500         (pass_cse_reciprocals::execute): Likewise.
8501
8502 2015-06-01  Martin Liska  <mliska@suse.cz>
8503
8504         * tree-sra.c (sra_initialize): Use new type-based pool allocator.
8505         (sra_deinitialize) Likewise.
8506         (create_access_1) Likewise.
8507         (build_accesses_from_assign) Likewise.
8508         (create_artificial_child_access) Likewise.
8509
8510 2015-06-01  Martin Liska  <mliska@suse.cz>
8511
8512         * dse.c (get_group_info):Use new type-based pool allocator.
8513         (dse_step0) Likewise.
8514         (free_store_info) Likewise.
8515         (delete_dead_store_insn) Likewise.
8516         (free_read_records) Likewise.
8517         (record_store) Likewise.
8518         (replace_read) Likewise.
8519         (check_mem_read_rtx) Likewise.
8520         (scan_insn) Likewise.
8521         (dse_step1) Likewise.
8522         (dse_step7) Likewise.
8523
8524 2015-06-01  Martin Liska  <mliska@suse.cz>
8525
8526         * df-scan.c (struct df_scan_problem_data):Use new type-based
8527         pool allocator.
8528         (df_scan_free_internal) Likewise.
8529         (df_scan_alloc) Likewise.
8530         (df_grow_reg_info) Likewise.
8531         (df_free_ref) Likewise.
8532         (df_insn_create_insn_record) Likewise.
8533         (df_mw_hardreg_chain_delete) Likewise.
8534         (df_insn_info_delete) Likewise.
8535         (df_free_collection_rec) Likewise.
8536         (df_mw_hardreg_chain_delete_eq_uses) Likewise.
8537         (df_sort_and_compress_mws) Likewise.
8538         (df_ref_create_structure) Likewise.
8539         (df_ref_record) Likewise.
8540
8541 2015-06-01  Martin Liska  <mliska@suse.cz>
8542
8543         * df-problems.c (df_chain_create):Use new type-based pool allocator.
8544         (df_chain_unlink_1) Likewise.
8545         (df_chain_unlink) Likewise.
8546         (df_chain_remove_problem) Likewise.
8547         (df_chain_alloc) Likewise.
8548         (df_chain_free) Likewise.
8549         * df.h (struct dataflow) Likewise.
8550
8551 2015-06-01  Martin Liska  <mliska@suse.cz>
8552
8553         * cselib.c (new_elt_list):Use new type-based pool allocator.
8554         (new_elt_loc_list) Likewise.
8555         (unchain_one_elt_list) Likewise.
8556         (unchain_one_elt_loc_list) Likewise.
8557         (unchain_one_value) Likewise.
8558         (new_cselib_val) Likewise.
8559         (cselib_init) Likewise.
8560         (cselib_finish) Likewise.
8561
8562 2015-06-01  Martin Liska  <mliska@suse.cz>
8563
8564         * config/sh/sh.c (add_constant):Use new type-based pool allocator.
8565         (sh_reorg) Likewise.
8566
8567 2015-06-01  Martin Liska  <mliska@suse.cz>
8568
8569         * cfg.c (initialize_original_copy_tables):Use new type-based
8570         pool allocator.
8571         (free_original_copy_tables) Likewise.
8572         (copy_original_table_clear) Likewise.
8573         (copy_original_table_set) Likewise.
8574
8575 2015-06-01  Martin Liska  <mliska@suse.cz>
8576
8577         * asan.c (asan_mem_ref_get_alloc_pool):Use new type-based
8578         pool allocator.
8579         (asan_mem_ref_new) Likewise.
8580         (free_mem_ref_resources) Likewise.
8581
8582 2015-06-01  Martin Liska  <mliska@suse.cz>
8583
8584         * var-tracking.c (variable_htab_free):Use new type-based
8585         pool allocator.
8586         (attrs_list_clear) Likewise.
8587         (attrs_list_insert) Likewise.
8588         (attrs_list_copy) Likewise.
8589         (shared_hash_unshare) Likewise.
8590         (shared_hash_destroy) Likewise.
8591         (unshare_variable) Likewise.
8592         (var_reg_delete_and_set) Likewise.
8593         (var_reg_delete) Likewise.
8594         (var_regno_delete) Likewise.
8595         (drop_overlapping_mem_locs) Likewise.
8596         (variable_union) Likewise.
8597         (insert_into_intersection) Likewise.
8598         (canonicalize_values_star) Likewise.
8599         (variable_merge_over_cur) Likewise.
8600         (dataflow_set_merge) Likewise.
8601         (remove_duplicate_values) Likewise.
8602         (variable_post_merge_new_vals) Likewise.
8603         (dataflow_set_preserve_mem_locs) Likewise.
8604         (dataflow_set_remove_mem_locs) Likewise.
8605         (variable_from_dropped) Likewise.
8606         (variable_was_changed) Likewise.
8607         (set_slot_part) Likewise.
8608         (clobber_slot_part) Likewise.
8609         (delete_slot_part) Likewise.
8610         (loc_exp_insert_dep) Likewise.
8611         (notify_dependents_of_changed_value) Likewise.
8612         (emit_notes_for_differences_1) Likewise.
8613         (vt_emit_notes) Likewise.
8614         (vt_initialize) Likewise.
8615         (vt_finalize) Likewise.
8616
8617 2015-06-01  Martin Liska  <mliska@suse.cz>
8618
8619         * ira-color.c (init_update_cost_records):Use new type-based
8620         pool allocator.
8621         (get_update_cost_record) Likewise.
8622         (free_update_cost_record_list) Likewise.
8623         (finish_update_cost_records) Likewise.
8624         (initiate_cost_update) Likewise.
8625
8626 2015-06-01  Martin Liska  <mliska@suse.cz>
8627
8628         * lra.c (init_insn_regs): Use new type-based pool allocator.
8629         (new_insn_reg) Likewise.
8630         (free_insn_reg) Likewise.
8631         (free_insn_regs) Likewise.
8632         (finish_insn_regs) Likewise.
8633         (init_insn_recog_data) Likewise.
8634         (init_reg_info) Likewise.
8635         (finish_reg_info) Likewise.
8636         (lra_free_copies) Likewise.
8637         (lra_create_copy) Likewise.
8638         (invalidate_insn_data_regno_info) Likewise.
8639
8640 2015-06-01  Martin Liska  <mliska@suse.cz>
8641
8642         * lra-lives.c (free_live_range): Use new type-based pool allocator.
8643         (free_live_range_list) Likewise.
8644         (create_live_range) Likewise.
8645         (copy_live_range) Likewise.
8646         (lra_merge_live_ranges) Likewise.
8647         (remove_some_program_points_and_update_live_ranges) Likewise.
8648         (lra_live_ranges_init) Likewise.
8649         (lra_live_ranges_finish) Likewise.
8650
8651 2015-06-01  Martin Liska  <mliska@suse.cz>
8652
8653         * et-forest.c (et_new_occ): Use new type-based pool allocator.
8654         (et_new_tree): Likewise.
8655         (et_free_tree): Likewise.
8656         (et_free_tree_force): Likewise.
8657         (et_free_pools): Likewise.
8658         (et_split): Likewise.
8659
8660 2015-06-01  Martin Liska  <mliska@suse.cz>
8661
8662         * alloc-pool.c (struct alloc_pool_descriptor): Move definition
8663         to header file.
8664         * alloc-pool.h (pool_allocator::pool_allocator): New function.
8665         (pool_allocator::release): Likewise.
8666         (inline pool_allocator::release_if_empty): Likewise.
8667         (inline pool_allocator::~pool_allocator): Likewise.
8668         (pool_allocator::allocate): Likewise.
8669         (pool_allocator::remove): Likewise.
8670
8671 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
8672
8673         * sched-deps.c (sched_analyze_2): Replace fuseable with fusible
8674         in comment.
8675
8676 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
8677
8678         * gcc/config/arm/arm-protos.h (tune_params): Rename fuseable_ops
8679         to fusible_ops.
8680         * gcc/config/arm/arm.c (arm_print_tune_info): Likewise.
8681         (arm_macro_fusion_p): Likewise.
8682         (arm_macro_fusion_pair_p): Likewise.
8683
8684 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
8685
8686         * config/aarch64/aarch64-protos.h (tune_params): Rename
8687         fuseable_ops to fusible_ops.
8688         * config/aarch64/aarch64.c (generic_tunings): Rename
8689         fuseable_ops to fusible_ops.
8690         (cortexa53_tunings): Likewise.
8691         (cortexa57_tunings): Likewise.
8692         (thunderx_tunings): Likewise.
8693         (xgene1_tunings): Likewise.
8694         (aarch64_macro_fusion_p): Likewise.
8695         (aarch64_macro_fusion_pair_p): Likewise.
8696
8697 2015-06-01  Dominik Vogt  <vogt@linux.vnet.ibm.com>
8698
8699         * config/s390/driver-native.c: New file.
8700         * config/s390/x-native: New file.
8701         * config.host: Add new files for s390.
8702         * config/s390/s390.h (DRIVER_SELF_SPECS): Add support for -mtune=native
8703         and -march=native
8704         * config.gcc: Likewise.
8705         * config/s390/s390.opt (march): Likewise; add PROCESSOR_NATIVE
8706         * config/s390/s390-opts.h (enum processor_type): Ditto.
8707         * config/s390/s390.c (s390_option_override): Catch unhandled
8708         PROCESSOR_NATIVE
8709
8710 2015-06-01  Ilya Enkovich  <ilya.enkovich@intel.com>
8711
8712         PR target/65527
8713         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Add
8714         redirection for instrumented calls.
8715         * lto-wrapper.c (merge_and_complain): Merge -fcheck-pointer-bounds.
8716         (append_compiler_options): Append -fcheck-pointer-bounds.
8717         * tree-chkp.h (chkp_copy_call_skip_bounds): New.
8718         (chkp_redirect_edge): New.
8719         * tree-chkp.c (chkp_copy_call_skip_bounds): New.
8720         (chkp_redirect_edge): New.
8721
8722 2015-06-01  Richard Biener  <rguenther@suse.de>
8723
8724         PR tree-optimization/66280
8725         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Fix pattern
8726         def-use walking.
8727
8728 2015-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8729
8730         * config/aarch64/aarch64.md
8731         (*<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Change type to
8732         logic_shift_imm.
8733
8734 2015-06-01  Eric Botcazou  <ebotcazou@adacore.com>
8735
8736         * config/i386/winnt.c (i386_pe_encode_section_info) <FUNCTION_DECL>:
8737         Remove obsolete kludge.
8738
8739 2015-06-01  Richard Biener  <rguenther@suse.de>
8740
8741         * tree-ssa-reassoc.c (get_rank): Simplify.
8742
8743 2015-05-31  H.J. Lu  <hongjiu.lu@intel.com>
8744
8745         * configure.ac (NO_PIE_CFLAGS): Check CXXFLAGS instead of CFLAGS.
8746         * configure: Regenerated.
8747
8748 2015-05-31  Mikhail Maltsev  <maltsevm@gmail.com>
8749
8750         * config/cris/cris.h (CRIS_ARCH_CPP_DEFAULT): Fix C++11 compatibility
8751         issue (add space between string literal and macro).
8752         * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Likewise.
8753
8754 2015-05-30  Andreas Schwab  <schwab@linux-m68k.org>
8755
8756         * config/m68k/m68k.h (ASM_PCREL_SPEC): Pass --pcrel also for
8757         implict or explicit -fPIE or -fpie.
8758
8759 2015-05-30  Mike Frysinger  <vapier@gentoo.org>
8760
8761         * gcc/config/alpha/elf.h (ASM_SPEC): Add %{mcpu=*:-m%*}.
8762
8763 2015-05-28  DJ Delorie  <dj@redhat.com>
8764
8765         * expmed.c (extract_bit_field_1): Avoid clobbering a
8766         yet-to-be-used base/index register.
8767
8768 2015-05-30  Jan Hubicka  <hubicka@ucw.cz>
8769
8770         * alias.c (alias_set_entry_d): Add is_pointer and has_pointer.
8771         (alias_stats): Add num_universal.
8772         (alias_set_subset_of): Special case pointers; be ready for NULL
8773         children.
8774         (alias_sets_conflict_p): Special case pointers; be ready for NULL
8775         children.
8776         (init_alias_set_entry): Break out from ...
8777         (record_alias_subset): ... here; propagate new fields;
8778         allocate children only when really needed.
8779         (get_alias_set): Do less generous pointer globbing.
8780         (dump_alias_stats_in_alias_c): Update statistics.
8781
8782 2015-05-30  Alan Modra  <amodra@gmail.com>
8783
8784         * config/rs6000/rs6000.c (split_stack_arg_pointer_used_p): Scan
8785         correct block for use of r12.
8786         (rs6000_expand_split_stack_prologue): Error on r29 asm global reg.
8787
8788 2015-05-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
8789
8790         PR target/66215
8791         * config/s390/s390.c (s390_reorg): Fix placement of post-label NOPs
8792         with -mhotpatch=.
8793
8794 2015-05-29  Jakub Jelinek  <jakub@redhat.com>
8795
8796         PR tree-optimization/66142
8797         * tree-if-conv.c (if_convertible_phi_p): Don't give up on
8798         virtual phis that feed themselves.
8799
8800 2015-05-29  Richard Biener  <rguenther@suse.de>
8801
8802         PR tree-optimization/66314
8803         * tree-ssa-threadupdate.c (create_block_for_threading): Add
8804         parameter that says which loop the new block belongs to.
8805         (ssa_create_duplicates): Blocks duplicated for the threaded
8806         path belong to the loop of the thread destination.
8807
8808 2015-05-29  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
8809
8810         * config/arm/neon-testgen.ml (emit_epilogue): Remove manual call
8811         to cleanup-saved-temps.
8812         * doc/sourcebuild.texi (Clean up generated test files): Expand
8813         introduction.
8814         (dg-keep-saved-temps): Document new proc.
8815         (cleanup-ipa-dump, cleanup-rtl-dump, cleanup-tree-dump,
8816         cleanup-saved-temps): Remove.
8817
8818 2015-05-28  Andreas Tobler  <andreast@gcc.gnu.org>
8819
8820         * configure.ac: Move the atoll check from AC_CHECK_FUNCS to
8821         gcc_AC_CHECK_DECLS.
8822         * configure: Regenerate.
8823
8824 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
8825
8826         * config/nios2/linux.h (CPP_SPEC): Define.
8827
8828 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
8829
8830         * config/microblaze/linux.h (CPP_SPEC): Define.
8831
8832 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
8833
8834         * config/pa/pa-linux.h (CPP_SPEC): Change so -D_REENTRANT is used when
8835         -pthread is specified.
8836
8837 2015-05-28  Richard Biener  <rguenther@suse.de>
8838
8839         * tree-vect-loop.c (vect_fixup_reduc_chain): New function.
8840         (vect_fixup_scalar_cycles_with_patterns): Likewise.
8841         (vect_analyze_loop_2): Call vect_fixup_scalar_cycles_with_patterns
8842         after pattern recog.
8843         (vect_create_epilog_for_reduction): Properly handle reductions
8844         with patterns.
8845         (vectorizable_reduction): Likewise.
8846         * tree-vect-slp.c (vect_analyze_slp_instance): Properly mark
8847         reduction chains.
8848         (vect_get_constant_vectors): Create the correct number of
8849         initial values for reductions.
8850         (vect_schedule_slp_instance): Handle reduction chains that are
8851         type changing properly.
8852         * tree-vect-stmts.c (vect_analyze_stmt): Adjust.
8853
8854 2015-05-28  Richard Biener  <rguenther@suse.de>
8855
8856         PR tree-optimization/66142
8857         * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle non-GIMPLE
8858         values better in memcpy destination handling.  Handle non-aliasing
8859         we discover here.
8860
8861 2015-05-28  Lawrence Velázquez  <vq@larryv.me>
8862
8863         PR target/63810
8864         * config/darwin-c.c (version_components): New global enum.
8865         (parse_version, version_as_legacy_macro)
8866         (version_as_modern_macro, macosx_version_as_macro): New functions.
8867         (version_as_macro): Remove.
8868         (darwin_cpp_builtins): Use new function.
8869
8870 2015-05-28  H.J. Lu  <hongjiu.lu@intel.com>
8871
8872         * builtins.c (expand_builtin_acc_on_device): Mark parameters
8873         with ATTRIBUTE_UNUSED.
8874
8875 2015-05-28  Julian Brown  <julian@codesourcery.com>
8876
8877         PR libgomp/65742
8878
8879         * builtins.c (expand_builtin_acc_on_device): Don't use open-coded
8880         sequence for !ACCEL_COMPILER.
8881
8882 2015-05-28  Nick Clifton  <nickc@redhat.com>
8883
8884         * config/rx/rx.c (push_regs): New function.  Extracts code from...
8885         (rx_expand_prologue): ... here.  Use push_regs to push even small
8886         spans of registers.
8887         (pop_regs): New function.
8888         (rx_expand_epilogue):  Use pop_regs to pop even small spans of
8889         registers.
8890
8891 2015-05-28  Richard Biener  <rguenther@suse.de>
8892
8893         * tree-vectorizer.h (struct _slp_instance): Remove body_cost_vec
8894         member.
8895         (SLP_INSTANCE_BODY_COST_VEC): Remove.
8896         (vect_update_slp_costs_according_to_vf): Likewise.
8897         (vect_slp_analyze_operations): Update prototype.
8898         * tree-vect-loop.c (vect_analyze_loop_2): Remove call to
8899         vect_update_slp_costs_according_to_vf, adjust.
8900         * tree-vect-slp.c (vect_free_slp_instance): Adjust.
8901         (vect_analyze_slp_cost_1): Likewise.
8902         (vect_analyze_slp_cost): Likewise.  Properly deal with
8903         widening reduction ops.  Commit body costs.
8904         (vect_analyze_slp_instance): Adjust.  Do not analyze SLP
8905         cost for loops from here.
8906         (vect_slp_analyze_operations): But do it from here when
8907         the vectorization factor is known and stmts are analyzed.
8908         (vect_bb_vectorization_profitable_p): Simplify.
8909         (vect_slp_analyze_bb_1): Do not compute SLP cost here.
8910         (vect_update_slp_costs_according_to_vf): Remove.
8911
8912 2015-05-27  Magnus Granberg  <zorry@gentoo.org>
8913             H.J. Lu  <hongjiu.lu@intel.com>
8914
8915         * Makefile.in (COMPILER): Add @NO_PIE_CFLAGS@.
8916         (BUILD_CFLAGS): Likewise.
8917         (BUILD_CXXFLAGS): Likewise.
8918         (LINKER): Add @NO_PIE_FLAG@.
8919         (BUILD_LDFLAGS): Likewise.
8920         (libgcc.mvars): Set NO_PIE_CFLAGS to -fno-PIE for
8921         --enable-default-pie.
8922         * common.opt (fPIE): Initialize to -1.
8923         (fpie): Likewise.
8924         (no-pie): New option.
8925         (pie): Replace "Negative(shared)" with "Negative(no-pie)".
8926         * configure.ac: Add --enable-default-pie.
8927         (NO_PIE_CFLAGS): New.  Check if -fno-PIE works.  AC_SUBST.
8928         (NO_PIE_FLAG): New.  Check if -no-pie works.  AC_SUBST.
8929         * defaults.h (DEFAULT_FLAG_PIE): New.  Default PIE to -fPIE.
8930         * gcc.c (NO_PIE_SPEC): New.
8931         (PIE_SPEC): Likewise.
8932         (NO_FPIE1_SPEC): Likewise.
8933         (FPIE1_SPEC): Likewise.
8934         (NO_FPIE2_SPEC): Likewise.
8935         (FPIE2_SPEC): Likewise.
8936         (NO_FPIE2_SPEC): Likewise.
8937         (FPIE_SPEC): Likewise.
8938         (NO_FPIE_SPEC): Likewise.
8939         (NO_FPIC1_SPEC): Likewise.
8940         (FPIC1_SPEC): Likewise.
8941         (NO_FPIC2_SPEC): Likewise.
8942         (FPIC2_SPEC): Likewise.
8943         (NO_FPIC2_SPEC): Likewise.
8944         (FPIC_SPEC): Likewise.
8945         (NO_FPIC_SPEC): Likewise.
8946         (NO_FPIE1_AND_FPIC1_SPEC): Likewise.
8947         (FPIE1_OR_FPIC1_SPEC): Likewise.
8948         (NO_FPIE2_AND_FPIC2_SPEC): Likewise.
8949         (FPIE2_OR_FPIC2_SPEC): Likewise.
8950         (NO_FPIE_AND_FPIC_SPEC): Likewise.
8951         (FPIE_OR_FPIC_SPEC): Likewise.
8952         (LD_PIE_SPEC): Likewise.
8953         (LINK_PIE_SPEC): Handle -no-pie.  Use PIE_SPEC and LD_PIE_SPEC.
8954         * opts.c (finish_options): Update opts->x_flag_pie if it is -1.
8955         * config/darwin.h (PIE_SPEC): Renamed to ...
8956         (DARWIN_PIE_SPEC): This.
8957         (LINK_SPEC): Replace PIE_SPEC with DARWIN_PIE_SPEC.
8958         * config/darwin9.h (PIE_SPEC): Renamed to ...
8959         (DARWIN_PIE_SPEC): This.
8960         * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Use
8961         PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
8962         * config/openbsd.h (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and
8963         FPIE2_OR_FPIC2_SPEC.
8964         * config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
8965         * config/m68k/openbsd.h (ASM_SPEC): Likewise.
8966         * gcc/config/sol2.h (ASM_PIC_SPEC): Likewise.
8967         * config/arm/freebsd.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
8968         * config/arm/netbsd-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
8969         * config/arm/semi.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
8970         * config/cris/linux.h (CRIS_ASM_SUBTARGET_SPEC): Likewise.
8971         * config/m32r/m32r.h (ASM_SPEC): Likewise.
8972         * config/m68k/uclinux.h (DRIVER_SELF_SPECS): Likewise.
8973         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
8974         * config/rs6000/sysv4.h (ASM_SPEC): Likewise.
8975         * config/sparc/freebsd.h (ASM_SPEC): Likewise.
8976         * config/sparc/linux.h (ASM_SPEC): Likewise.
8977         * config/sparc/linux64.h (ASM_SPEC): Likewise.
8978         * config/sparc/netbsd-elf.h (ASM_SPEC): Likewise.
8979         * config/sparc/openbsd64.h (ASM_SPEC): Likewise.
8980         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
8981         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
8982         * config/sparc/sparc.h (ASM_SPEC): Likewise.
8983         * config/sparc/sysv4.h (ASM_SPEC): Likewise.
8984         * config/sparc/vxworks.h (ASM_SPEC): Likewise.
8985         * config/c6x/elf-common.h (ASM_SPEC): Use NO_FPIC2_SPEC,
8986         FPIC2_SPEC, FPIC1_SPEC and FPIC2_SPEC.
8987         * config/c6x/uclinux-elf.h (LINK_SPEC): Use FPIE_SPEC.
8988         * config/frv/frv.h (DRIVER_SELF_SPECS): Use FPIC_SPEC,
8989         NO_FPIC_SPEC and NO_FPIE1_AND_FPIC1_SPEC.
8990         (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and FPIE2_OR_FPIC2_SPEC.
8991         * config/m68k/m68k.h (ASM_PCREL_SPEC): Use FPIC_SPEC and NO_FPIC_SPEC.
8992         * config/mips/gnu-user.h (NO_SHARED_SPECS): Use NO_FPIE_AND_FPIC_SPEC.
8993         * config/mips/vxworks.h (SUBTARGET_ASM_SPEC): Use FPIC_SPEC.
8994         * config/rs6000/freebsd64.h (ASM_SPEC32): Likewise.
8995         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
8996         * config/vax/linux.h (ASM_SPEC): Likewise.
8997         * doc/install.texi: Document --enable-default-pie.
8998         * doc/invoke.texi: Document -no-pie.
8999         * config.in: Regenerated.
9000         * configure: Likewise.
9001
9002 2015-05-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
9003
9004         PR rtl-optimization/66168
9005         * loop-invariant.c (move_invariant_reg): Pass dest rather than reg to
9006         can_move_invariant_reg.
9007
9008 2015-05-27  John David Anglin  <danglin@gcc.gnu.org>
9009
9010         PR target/66148
9011         * config/pa/pa.c (pa_emit_move_sequence): Correct placement of
9012         REG_EQUAL note when doing insert.
9013
9014         * config/pa/pa.c (pa_print_operand): Use HOST_WIDE_INT_PRINT_DEC
9015         instead of "%d" for 'o' operand.
9016
9017 2015-05-27  Nathan Sidwell  <nathan@acm.org>
9018
9019         PR c++/66270
9020         * tree.c (build_pointer_type_for_mode): Canonical type does not
9021         inherit can_alias_all.
9022         (build_reference_type_for_mode): Likewise.
9023
9024 2015-05-27  Eric Botcazou  <ebotcazou@adacore.com>
9025
9026         * expr.h (array_at_struct_end_p): Move to...
9027         (array_ref_element_size): Likewise.
9028         (component_ref_field_offset): Likewise.
9029         * tree.h (array_ref_element_size): ...here.
9030         (array_at_struct_end_p): Likewise.
9031         (component_ref_field_offset): Likewise.
9032         * expr.c (array_ref_element_size): Move to...
9033         (array_ref_low_bound): Likewise.
9034         (array_at_struct_end_p): Likewise.
9035         (array_ref_up_bound): Likewise.
9036         (component_ref_field_offset): Likewise.
9037         * tree.c (array_ref_element_size): ...here.
9038         (array_ref_low_bound): Likewise.
9039         (array_ref_up_bound): Likewise.
9040         (array_at_struct_end_p): Likewise.
9041         (component_ref_field_offset): Likewise.
9042
9043 2015-05-27  Gregor Richards  <gregor.richards@uwaterloo.ca>
9044             Szabolcs Nagy  <szabolcs.nagy@arm.com>
9045
9046         * config/aarch64/aarch64-linux.h (MUSL_DYNAMIC_LINKER): Define.
9047
9048 2015-05-27  Jason Merrill  <jason@redhat.com>
9049
9050         PR bootstrap/66304
9051         * configure.ac: Use ACX_PROG_CXX_WARNING_OPTS,
9052         ACX_PROG_CXX_WARNING_ALMOST_PEDANTIC, and
9053         ACX_PROG_CXX_WARNINGS_ARE_ERRORS.
9054
9055 2015-05-22  Aditya Kumar  <hiraditya@msn.com>
9056
9057         * auto-profile.c (afdo_calculate_branch_prob): Break once has_sample
9058         is true.
9059
9060         * statistics.c (statistics_fini_pass): Print pass name.
9061
9062 2015-05-27  Richard Biener  <rguenther@suse.de>
9063
9064         PR tree-optimization/66272
9065         Revert parts of
9066         2014-08-15  Richard Biener  <rguenther@suse.de>
9067
9068         PR tree-optimization/62031
9069         * tree-data-ref.c (dr_analyze_indices): Do not set
9070         DR_UNCONSTRAINED_BASE.
9071         (dr_may_alias_p): All indirect accesses have to go the
9072         formerly DR_UNCONSTRAINED_BASE path.
9073         * tree-data-ref.h (struct indices): Remove
9074         unconstrained_base member.
9075         (DR_UNCONSTRAINED_BASE): Remove.
9076
9077 2015-05-27  Aldy Hernandez  <aldyh@redhat.com>
9078
9079         * dwarf2out.c: Remove block_map.
9080         (gen_call_site_die): Replace block_map use with BLOCK_DIE.
9081         (gen_lexical_block_die): Same.
9082         (dwarf2out_function_decl): Remove block_map use.
9083         (dwarf2out_c_finalize): Same.
9084         * tree-core.h (struct tree_block): Add die field.
9085         * tree.h (BLOCK_DIE): New.
9086
9087 2015-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9088
9089         PR target/65358
9090         * expr.c (memory_load_overlap): New function.
9091         (emit_push_insn): When pushing partial args to the stack would
9092         clobber the register part load the overlapping part into a pseudo
9093         and put it into the hard reg after pushing.  Change return type
9094         to bool.  Add bool argument.
9095         * expr.h (emit_push_insn): Change return type to bool.
9096         Add bool argument.
9097         * calls.c (expand_call): Cancel sibcall optimization when encountering
9098         partial argument on targets with ARGS_GROW_DOWNWARD and
9099         !STACK_GROWS_DOWNWARD.
9100         (emit_library_call_value_1): Update callsite of emit_push_insn.
9101         (store_one_arg): Likewise.
9102
9103 2015-05-27  Gregor Richards  <gregor.richards@uwaterloo.ca>
9104
9105         * config/arm/linux-eabi.h (MUSL_DYNAMIC_LINKER): Define.
9106
9107 2015-05-27  Martin Liska  <mliska@suse.cz>
9108
9109         * Makefile.in: Add additional dependencies related to memory report
9110         enhancement.
9111         * alloc-pool.c (allocate_pool_descriptor): Use new ctor.
9112         * bitmap.c (struct bitmap_descriptor_d): Remove.
9113         (struct loc): Likewise.
9114         (struct bitmap_desc_hasher): Likewise.
9115         (bitmap_desc_hasher::hash): Likewise.
9116         (bitmap_desc_hasher::equal): Likewise.
9117         (get_bitmap_descriptor): Likewise.
9118         (bitmap_register): User new memory descriptor API.
9119         (register_overhead): Likewise.
9120         (bitmap_find_bit): Register nsearches and search_iter statistics.
9121         (struct bitmap_output_info): Remove.
9122         (print_statistics): Likewise.
9123         (dump_bitmap_statistics): Use new memory descriptor.
9124         * bitmap.h (struct bitmap_usage): New class.
9125         * genmatch.c: Extend header file inclusion.
9126         * genpreds.c: Likewise.
9127         * ggc-common.c (struct ggc_usage): New class.
9128         (struct ggc_loc_desc_hasher): Remove.
9129         (ggc_loc_desc_hasher::hash): Likewise.
9130         (ggc_loc_desc_hasher::equal): Likewise.
9131         (struct ggc_ptr_hash_entry): Likewise.
9132         (struct ptr_hash_hasher): Likewise.
9133         (ptr_hash_hasher::hash): Likewise.
9134         (ptr_hash_hasher::equal): Likewise.
9135         (make_loc_descriptor): Likewise.
9136         (ggc_prune_ptr): Likewise.
9137         (dump_ggc_loc_statistics): Use new memory descriptor.
9138         (ggc_record_overhead): Likewise.
9139         (ggc_free_overhead): Likewise.
9140         (final_cmp_statistic): Remove.
9141         (cmp_statistic): Likewise.
9142         (ggc_add_statistics): Liekwise.
9143         (ggc_prune_overhead_list): Likewise.
9144         * hash-map-traits.h: New file.
9145         * hash-map.h (struct default_hashmap_traits): Move the traits to a
9146         separate header file.
9147         * hash-set.h: Pass memory statistics info to ctor.
9148         * hash-table.c (void dump_hash_table_loc_statistics): New function.
9149         * hash-table.h (hash_table::hash_table): Add new ctor arguments.
9150         (hash_table::~hash_table): Register memory release operation.
9151         (hash_table::alloc_entries): Handle memory allocation operation.
9152         (hash_table::expand): Likewise.
9153         * inchash.c (iterative_hash_hashval_t): Move implementation to header
9154         file.
9155         (iterative_hash_host_wide_int): Likewise.
9156         * inchash.h (class hash): Likewise.
9157         * mem-stats-traits.h: New file.
9158         * mem-stats.h: New file.
9159         (mem_location): Add new class.
9160         (mem_usage): Likewise.
9161         (mem_alloc_description): Likewise.
9162         * sese.c: Add new header file inclusision.
9163         * toplev.c (dump_memory_report): Add report for hash_table, hash_map
9164         and hash_set.
9165         * tree-sra.c: Add new header file inclusision.
9166         * vec.c (struct vec_descriptor): Remove.
9167         (hash_descriptor): Likewise.
9168         (struct vec_usage): Likewise.
9169         (struct ptr_hash_entry): Likewise.
9170         (hash_ptr): Likewise.
9171         (eq_ptr): Likewise.
9172         (vec_prefix::register_overhead): Use new memory descriptor API.
9173         (vec_prefix::release_overhead): Likewise.
9174         (add_statistics): Remove.
9175         (dump_vec_loc_statistics): Use new memory descriptor API.
9176         * vec.h (struct vec_prefix): Likewise.
9177         (va_heap::reserve): Likewise.
9178         (va_heap::release): Likewise.
9179         * emit-rtl.c (gen_raw_REG): Fix passing MEM_STAT.
9180
9181 2015-05-27  Richard Biener  <rguenther@suse.de>
9182
9183         * tree-vect-stmts.c (vectorizable_load): Initialize slp_perm
9184         earlier and remove ??? comment.
9185         (vect_analyze_stmt): If we are analyzing a pure SLP stmt
9186         and got called from loop analysis bail out.  Always pass the SLP
9187         node to the vectorizable_* functions.
9188         * tree-vect-loop.c (vect_analyze_loop_operations): Remove
9189         the premature SLP check here.
9190         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Dump hybrid
9191         detected SLP stmts.
9192         (vect_detect_hybrid_slp_1): Likewise.
9193
9194 2015-05-26  Jeff Law  <law@redhat.com>
9195
9196         * combine.c (find_split_point): Verify that the shift count is a
9197         constant when choosing (plus (ashift ...)) as a split point.
9198
9199         * tree-ssa-threadupdate.c: Replace 8 space sequences with tabs.
9200         No functional changes.
9201
9202 2015-05-26  Jan Hubicka  <hubicka@ucw.cz>
9203
9204         * ipa-polymorphic-call.c
9205         (ipa_polymorphic_call_context::get_dynamic_type): Short circuit the
9206         case when call target is already known.
9207
9208 2015-05-26  Oleg Endo  <olegendo@gcc.gnu.org>
9209
9210         PR target/65979
9211         * config/sh/sh.md (tstsi_t peephole2): Use gen_rtx_SET and
9212         take into account the case that operands[1] and operands[2]
9213         are the same register.
9214
9215 2015-05-26  Michael Matz  <matz@suse.de>
9216
9217         PR middle-end/66251
9218
9219         * tree-vect-stmts.c (vect_model_store_cost): Handled strided group
9220         stores.
9221         (vect_create_vectorized_demotion_stmts): Always set
9222         STMT_VINFO_VEC_STMT, also with SLP.
9223         (vectorizable_store): Handle strided group stores.
9224
9225 2015-05-26  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
9226
9227         PR target/66049
9228         * config/aarch64/aarch64.md
9229         (*adds_shift_imm_<mode>):  New pattern.
9230         (*subs_shift_imm_<mode>):  Likewise.
9231         (*adds_<optab><ALLX:mode>_shift_<GPI:mode>):  Likewise.
9232         (*subs_<optab><ALLX:mode>_shift_<GPI:mode>): Likewise.
9233         (*add_uxt<mode>_shift2): Likewise.
9234         (*add_uxtsi_shift2_uxtw): Likewise.
9235         (*sub_uxt<mode>_shift2): Likewise.
9236         (*sub_uxtsi_shift2_uxtw): Likewise.
9237
9238 2015-05-26  David Edelsohn  <dje.gcc@gmail.com>
9239
9240         * config/rs6000/constraints.md (Y, U): Use match_test.
9241
9242 2015-05-26  Christian Bruel  <christian.bruel@st.com>
9243
9244         PR target/52144
9245         * config/arm/arm.c (arm_option_check_internal)
9246         (arm_option_params_internal): Check opts->target_flags to set macros.
9247         (TREE_TARGET_ARM, TREE_TARGET_THUMB)
9248         (TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Replace with...
9249         (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
9250         (builtin_define): Replaced with def_or_undef_macro.
9251         * config/arm/arm.h (TREE_TARGET_ARM, TREE_TARGET_THUMB)
9252         TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Redefine with...
9253         (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
9254         (TARGET_32BIT_P, TARGET_ARM_QBIT_P, TARGET_ARM_SAT_P, TARGET_IDIV_P)
9255         (TARGET_HAVE_LDREX_P, TARGET_HAVE_LDREXBH_P, TARGET_HAVE_LDREXD_P)
9256         (TARGET_ARM_FEATURE_LDREX_P)
9257         (TARGET_DSP_MULTIPLY_P, TARGET_INT_SIMD_P): New macros.
9258         * config/arm/arm-c.c (def_or_undef_macro): New function.
9259         (arm_cpu_cpp_builtins): Use def_or_undef_macro for macros definition.
9260
9261 2015-05-26  Christian Bruel  <christian.bruel@st.com>
9262
9263         * c-common.h (builtin_define_with_int_value)
9264         (builtin_define_type_sizeof): Declare.
9265         * c-cppbuiltin.c (builtin_define_with_int_value)
9266         (builtin_define_type_sizeof): Externalize.
9267         (builtin_define_std): Cleanup declaration.
9268         * config/arm/arm-protos.h (arm_cpu_cpp_builtins): Declare.
9269         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Move macro defines into...
9270         * config/arm/arm-c.c (arm_cpu_cpp_builtins): New function.
9271         (builtin_define, builtin_assert): New macros.
9272
9273 2015-05-26  Richard Biener  <rguenther@suse.de>
9274
9275         PR tree-optimization/66142
9276         * tree-ssa-sccvn.c (vn_reference_lookup_3): Manually compare
9277         MEM_REFs for the same base address.
9278
9279 2015-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9280
9281         PR ipa/66181
9282         * tree.c (verify_type_variant): Do not check TYPE_NO_FORCE_BLK.
9283
9284 2015-05-26  Jason Merrill  <jason@redhat.com>
9285
9286         * configure.ac: Set CXXFLAGS for ISL test.
9287         * configure: Regenerate.
9288
9289         * configure.ac: Use C++ for all tests.  Use AC_CHECK_DECLS for
9290         strstr and basename.
9291         * configure: Regenerate.
9292
9293 2015-05-26  Richard Biener  <rguenther@suse.de>
9294
9295         * fold-const.c (fold_binary_loc): Move X % -Y -> X % Y and
9296         X % C -> X & (C - 1) for C being a power-of two to ...
9297         * match.pd: ... patterns.
9298
9299 2015-05-26  Marc Glisse  <marc.glisse@inria.fr>
9300
9301         * match.pd (swapped_tcc_comparison): New operator list.
9302         (-A CMP -B): New simplification.
9303         * fold-const.c (fold_comparison): Remove corresponding code.
9304
9305 2015-05-26  Richard Sandiford  <richard.sandiford@arm.com>
9306
9307         * caller-save.c (init_caller_save): Base temporary register numbers
9308         on LAST_VIRTUAL_REGISTER + 1 rather than FIRST_PSEUDO_REGISTER.
9309         * cfgloopanal.c (init_set_costs): Likewise.
9310         * dojump.c (prefer_and_bit_test): Likewise.
9311         * expr.c (init_expr_target): Likewise.
9312         * ira.c (setup_prohibited_mode_move_regs): Likewise.
9313         * lower-subreg.c (init_lower_subreg): Likewise.
9314         * postreload.c (reload_cse_regs_1): Likewise.
9315
9316 2015-05-26  Richard Sandiford  <richard.sandiford@arm.com>
9317
9318         * gensupport.h (compute_test_codes): Declare.
9319         * gensupport.c (compute_predicate_codes): Rename to...
9320         (compute_test_codes): ...this.  Generalize error message.
9321         (process_define_predicate): Update accordingly.
9322         * genpreds.c (compute_maybe_allows): Delete.
9323         (add_constraint): Use compute_test_codes to determine whether
9324         something can accept a SUBREG, REG or MEM.
9325
9326 2015-05-26  Torvald Riegel  <triegel@redhat.com>
9327
9328         * doc/extend.texi (__atomic Builtins): Use 'memory order' instead of
9329         'memory model' to align with C++11; fix description of memory orders;
9330         fix a few typos.
9331
9332 2015-05-26  Richard Biener  <rguenther@suse.de>
9333
9334         * tree-vect-loop.c (vect_update_vf_for_slp): Split out from ...
9335         (vect_analyze_loop_operations): ... here.  Remove slp parameter,
9336         detect whether we apply SLP.  Remove call to
9337         vect_update_slp_costs_according_to_vf.
9338         (vect_analyze_loop_2): Call vect_update_vf_for_slp and
9339         vect_update_slp_costs_according_to_vf from here.  Dispatch
9340         to vect_slp_analyze_operations to analyze SLP stmts.
9341         * tree-vect-slp.c (vect_slp_analyze_node_operations): Drop
9342         unused bb_vec_info parameter, adjust assert.
9343         (vect_slp_analyze_operations): Pass in the slp instance tree
9344         instead of bb_vec_info.
9345         (vect_slp_analyze_bb_1): Adjust call to vect_slp_analyze_operations.
9346         * tree-vectorizer.h (vect_slp_analyze_operations): Declare.
9347
9348 2015-05-25  Alexander Monakov  <amonakov@ispras.ru>
9349
9350         * config/i386/i386.h (enum reg_class): Move CLOBBERED_REGS prior to
9351         Q_REGS.  Expand comment.
9352         (REG_CLASS_NAMES): Ditto.
9353         (REG_CLASS_CONTENTS): Ditto.
9354
9355 2015-05-25  Uros Bizjak  <ubizjak@gmail.com>
9356
9357         PR target/66274
9358         * config/i386/i386.c (print_reg): Only print "r" for TARGET_64BIT
9359         when LEGACY_INT_REGNO_P is processed.
9360
9361 2015-05-25  Alexander Monakov  <amonakov@ispras.ru>
9362
9363         * config/i386/i386.c (ix86_function_ok_for_sibcall): Check flag_plt.
9364
9365 2015-05-25  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
9366
9367         * config/avr/avr.c (avr_out_load_psi_reg_no_disp_tiny): Restore base
9368         register if not marked dead/unused, before return.
9369
9370 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
9371
9372         PR lto/66180
9373         * ipa-devirt.c (type_with_linkage): Check that TYPE_STUB_DECL
9374         is set; check for assembler name at LTO time.
9375         (type_in_anonymous_namespace): Remove hacks, check that all
9376         anonymous types are called "<anon>"
9377         (odr_type_p): Simplify; add check for "<anon>"
9378         (odr_subtypes_equivalent): Add odr_type_p check.
9379         * tree.c (need_assembler_name_p): Even anonymous namespace needs
9380         assembler name.
9381
9382 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
9383
9384         * ipa-utils.h (method_class_type): Remove.
9385         * cgraphunit.c (walk_polymorphic_call_targets): Use
9386         TYPE_METHOD_BASETYPE.
9387         * ipa-devirt.c (type_in_anonymous_namespace_p): Check that it is called
9388         on main variants only.
9389         (method_class_type): Remove.
9390         (update_type_inheritance_graph): Use TYPE_METHOD_BASETYPE.
9391         (build_type_inheritance_graph): Likewise.
9392         * ipa-icf.c (sem_function::equals_wpa): Likewise.
9393         * pa-polymorphic-call.c (decl_maybe_in_construction_p,
9394         check_stmt_for_type_change): Use TYPE_METHOD_BASETYPE.
9395
9396 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
9397
9398         * tree.c (prototype_p, virtual_method_call_p, obj_type_ref_class,
9399         is_typedef_decl, typedef_variant_p): Constify.
9400         * tree.h (prototype_p, virtual_method_call_p, obj_type_ref_class,
9401         is_typedef_decl, typedef_variant_p): Constify.
9402
9403 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9404
9405         * defaults.h (gen_tablejump): New function.
9406         (HAVE_tablejump): Add default value.
9407         * expr.c: Adjust.
9408         * stmt.c: Likewise.
9409
9410 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9411
9412         * defaults.h (gen_store_multiple): New function.
9413         (HAVE_store_multiple): Add default value.
9414         * expr.c (move_block_from_reg): Adjust.
9415
9416 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9417
9418         * defaults.h (gen_load_multiple): New function.
9419         (HAVE_load_multiple): Add default value.
9420         * expr.c (move_block_to_reg): Adjust.
9421
9422 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9423
9424         * defaults.h (gen_mem_signal_fence): New function.
9425         (HAVE_mem_signal_fence): Add default value.
9426         * optabs.c: Adjust.
9427
9428 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9429
9430         * defaults.h (gen_memory_barrier): New function.
9431         (HAVE_memory_barrier): Add default value.
9432         * optabs.c: Adjust.
9433
9434 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9435
9436         * defaults.h (gen_mem_thread_fence): New function.
9437         (HAVE_mem_thread_fence): Add default definition.
9438         * optabs.c: Adjust.
9439
9440 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9441
9442         * combine.c (find_split_point): Check the value of HAVE_lo_sum
9443         instead of if it is defined.
9444         (combine_simplify_rtx): Likewise.
9445         * lra-constraints.c (process_address_1): Likewise.
9446         * config/darwin.c: Adjust.
9447         * genconfig.c (main): Always define HAVE_lo_sum.
9448
9449 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
9450
9451         * genmatch.c (parser::parse_operation): Reject expanding
9452         operator-list inside 'for'.
9453
9454 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
9455
9456         * genmatch.c (parser::parse_for): Reject iterator if used as
9457         operator-list.
9458
9459 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
9460
9461         * genmatch.c (parser::parse_operator_list): Check for CPP_CLOSE_PAREN
9462         after end of id-list.
9463
9464 2015-05-22  Jan Hubicka  <hubicka@ucw.cz>
9465
9466         * tree.c (gimple_canonical_types_compatible_p): Sanity check that
9467         we do not try to compute canonical type for type that does not need
9468         alias set.
9469         (verify_type): Drop FIXME for METHOD_TYPE, update FIXME for
9470         FUNCITON_TYPE.
9471         * tree.h (type_with_alias_set_p): New.
9472
9473 2015-05-22  Jan Hubicka  <hubicka@ucw.cz>
9474
9475         * tree.c (gimple_canonical_types_compatible_p):  Do not compare
9476         function attributes.
9477         (verify_type): Remove METHOD_TYPE FIXME; update FUNCTION_TYPE.
9478
9479 2015-05-22  Jim Wilson  <jim.wilson@linaro.org>
9480
9481         * Makefile.in (check_gcc_parallelize): Delete.
9482         (lang_checks_parallelized): Update comment.
9483
9484 2015-05-22  Mikhail Maltsev  <maltsevm@gmail.com>
9485
9486         PR rtl-optimization/66237
9487         * bb-reorder.c (fix_crossing_conditional_branches): Fix wrong
9488         location of an "as_a" cast.
9489
9490 2015-05-22  Jeff Law  <law@redhat.com>
9491
9492         * config/pa/pa.md (non-canonical shift-add insns): Remove.
9493         (peepholes with non-canonical RTL sources): Remove.
9494         (peepholes for indexed stores of FP regs in integer modes): Match and
9495         generate canonical RTL.
9496
9497 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
9498
9499         PR tree-optimization/63387
9500         * match.pd ((X /[ex] A) * A -> X): Remove unnecessary condition.
9501         ((x ord x) & (y ord y) -> (x ord y),
9502         (x ord x) & (x ord y) -> (x ord y)): New simplifications.
9503         * fold-const.c (tree_unary_nonnegative_warnv_p) <ABS_EXPR>: Handle
9504         vectors like scalars.
9505
9506 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
9507
9508         * convert.c (convert_to_integer, convert_to_vector): Include the
9509         types in the error message.
9510
9511 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
9512
9513         * match.pd ((x | y) & ~x -> y & ~x, (x & y) | ~x -> y | ~x): New
9514         simplifications.
9515
9516 2015-05-22  Jeff Law  <law@redhat.com>
9517
9518         * config/pa/pa.md (integer_indexed_store splitters): Use
9519         mem_shadd_operand.  Use ASHIFT rather than MULT in the resulting
9520         insns -- adjusting the constant 2nd operand accordingly.
9521
9522         * combine.c (try_combine): Canonicalize (plus (mult X pow2) Y) into
9523         (plus (ashift X log2) Y) if it is a split point.
9524
9525         * config/pa/pa.c (mem_shadd_or_shadd_rtx_p): New function factoredx
9526         out of hppa_legitimize_address to handle both forms of a multiply
9527         by 2, 4 or 8.
9528         (hppa_legitimize_address): Use mem_shadd_or_shadd_rtx_p.
9529         Always generate the ASHIFT variant as the result is not directly
9530         used in a MEM.  Update comments and refactor slightly to improve
9531         readability.
9532
9533 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9534
9535         PR target/65491
9536         * config/aarch64/aarch64.c (aarch64_short_vector_p): Move above
9537         aarch64_composite_type_p.  Remove check for aarch64_composite_type_p.
9538         (aarch64_composite_type_p): Return false if given type and mode are
9539         for a short vector.
9540
9541 2015-05-22  Richard Biener  <rguenther@suse.de>
9542
9543         * tree-vectorizer.h (struct _slp_oprnd_info): Add second_pattern
9544         member.
9545         * tree-vect-loop.c (vect_analyze_loop_operations): Look at
9546         patterns when determining whether SLP is pure.
9547         (vect_is_slp_reduction): Remove check for pattern stmts.
9548         (vect_is_simple_reduction_1): Remove dead code.
9549         * tree-vect-slp.c (vect_create_oprnd_info): Initialize second_pattern.
9550         (vect_get_and_check_slp_defs): Pass in the stmt number.
9551         Allow the first def in a reduction to be not a pattern stmt when
9552         the rest of the stmts def are patterns.
9553         (vect_build_slp_tree_1): Allow tcc_expression codes like
9554         SAD_EXPR and DOT_PROD_EXPR.
9555         (vect_build_slp_tree): Adjust.
9556         (vect_analyze_slp): Refactor and move BB vect error message ...
9557         (vect_slp_analyze_bb_1): ... here.
9558
9559 2015-05-22  Aldy Hernandez  <aldyh@redhat.com>
9560
9561         * tree-switch-conversion.c (build_one_array): Set DECL_IGNORED_P
9562         for CSWTCH temporary.
9563
9564 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9565
9566         * config/arm/arm.c (arm_new_rtx_costs): Handle UNSPEC_VOLATILE.
9567         (arm_unspec_cost): Allow UNSPEC_VOLATILE.  Do not recurse inside
9568         unknown unspecs.
9569
9570 2015-05-22  Richard Biener  <rguenther@suse.de>
9571
9572         PR tree-optimization/66251
9573         * tree-vect-stmts.c (vectorizable_conversion): Properly
9574         set STMT_VINFO_VEC_STMT even for the SLP case.
9575
9576 2015-05-22  Marek Polacek  <polacek@redhat.com>
9577
9578         * doc/extend.texi: Use @pxref instead of @xref.
9579
9580 2015-05-22  hiraditya  <hiraditya@msn.com>
9581
9582         * gimple.h (gimple_expr_type): Refactor to make it concise. Remove
9583         redundant if.
9584
9585 2015-05-22  Richard Biener  <rguenther@suse.de>
9586
9587         PR tree-optimization/65701
9588         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
9589         Move peeling cost models into one place.  Peel for alignment
9590         for single loads only if an aligned load is cheaper than
9591         an unaligned load.
9592
9593 2015-05-22  Marek Polacek  <polacek@redhat.com>
9594
9595         PR c/47043
9596         * doc/extend.texi (Enumerator Attributes): New section.
9597         Document syntax of enumerator attributes.
9598
9599 2015-05-22  Richard Biener  <rguenther@suse.de>
9600
9601         * tree-vect-loop.c (get_reduction_op): New function.
9602         (vect_model_reduction_cost): Use it, add reduc_index parameter.
9603         Make ready for BB reductions.
9604         (vect_create_epilog_for_reduction): Use get_reduction_op.
9605         (vectorizable_reduction): Init reduc_index to a valid value.
9606         Adjust vect_model_reduction_cost call.
9607         * tree-vect-slp.c (vect_get_constant_vectors): Use the proper
9608         operand for reduction defaults.  Add SAD_EXPR support.
9609         Assert we have a neutral op for SLP reductions.
9610         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): When
9611         walking pattern stmt ops only recurse to SSA names.
9612
9613 2015-05-22  Richard Biener  <rguenther@suse.de>
9614
9615         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Replace
9616         assert with guard, remove check on detected reduction.
9617         (vect_recog_sad_pattern): Likewise.
9618         (vect_recog_widen_sum_pattern): Likewise.
9619
9620 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9621
9622         * config/aarch64/arm_neon.h (vaeseq_u8): Add __extension__ and
9623         __always_inline__ attribute.
9624         (vaesdq_u8): Likewise.
9625         (vaesmcq_u8): Likewise.
9626         (vaesimcq_u8): Likewise.
9627         (vsha1cq_u32): Likewise.
9628         (vsha1mq_u32): Likewise.
9629         (vsha1pq_u32): Likewise.
9630         (vsha1h_u32): Likewise.
9631         (vsha1su0q_u32): Likewise.
9632         (vsha1su1q_u32): Likewise.
9633         (vsha256hq_u32): Likewise.
9634         (vsha256h2q_u32): Likewise.
9635         (vsha256su0q_u32): Likewise.
9636         (vsha256su1q_u32): Likewise.
9637         (vmull_p64): Likewise.
9638         (vmull_high_p64): Likewise.
9639
9640 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9641
9642         * final.c (final_scan_insn): Don't check HAVE_peephole with the
9643         preprocessor.
9644         * output.h: Likewise.
9645         * genconfig.c (main): Alwways define HAVE_peephole.
9646         * genpeep.c: Don't emit checks of HAVE_peephole.
9647
9648 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9649
9650         * combine.c, expmed.c, expr.c, optabs.c optabs.h, toplev.c: DOn't
9651         check HAVE_conditional_move with the preprocessor.
9652
9653 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9654
9655         * genconfig.c (main): Always define HAVE_conditional_move.
9656         * combine.c, expmed.c, expr.c, ifcvt.c, optabs.c, optabs.h,
9657         toplev.c, tree-ssa-phiopt.c: Don't check if HAVE_conditional_move
9658         is defined.
9659
9660 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9661
9662         * combine.c, df-problems.c, df-scan.c, emit-rtl.c, reginfo.c,
9663         reload.c, rtlanal.c: Remove comparison of ARG_FRAME_POINTER_REGNUM
9664         and FRAME_POINTER_REGNUM with the preprocessor.
9665
9666 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9667
9668         * defaults.h: Add default for STACK_PUSH_CODE.
9669         * expr.c: Don't redefine STACK_PUSH_CODE.
9670         * recog.c: Likewise.
9671
9672 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9673
9674         * builtins.c, dwarf2cfi.c, explow.c, expr.c, recog.c,
9675         sched-deps.c: Use if instead of preprocessor checks with
9676         STACK_GROWS_DOWNWARD.
9677
9678 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9679
9680         * *.c: Check the value of STACK_GROWS_DOWNWARD rather than if it
9681         is defined.
9682         * config/**/*.h: Define STACK_GROWS_DOWNWARD to an integer.
9683         * defaults.h: Provide default for STACK_GROWS_DOWNWARD.
9684         * doc/tm.texi.in: Update references to STACK_GROWS_DOWNWARD.
9685         * doc/tm.texi: Regenerate.
9686
9687 2015-05-21  H.J. Lu  <hongjiu.lu@intel.com>
9688
9689         PR target/66232
9690         * config/i386/constraints.md (Bg): New constraint for GOT memory
9691         operand.
9692         * config/i386/i386.md (*call_got_x32): New pattern.
9693         (*call_value_got_x32): Likewise.
9694         * config/i386/predicates.md (GOT_memory_operand): New predicate.
9695
9696 2015-05-21  Jakub Jelinek  <jakub@redhat.com>
9697
9698         PR tree-optimization/66233
9699         * match.pd (ocvt (icvt@1 @0)): Don't handle vector types.
9700         Simplify.
9701
9702 2015-05-21  Jeff Law  <law@redhat.com>
9703
9704         * config/pa/pa.md (add-with-constant splitter): Use ASHIFT rather
9705         than MULT for shadd sequences.
9706
9707 2015-05-08  Jan Hubicka  <hubicka@ucw.cz>
9708
9709         * alias.c (alias_stats): New static var.
9710         (alias_sets_conflict_p, alias_sets_must_conflict_p): Update stats.
9711         (dump_alias_stats_in_alias_c): New function.
9712         * alias.h (dump_alias_stats_in_alias_c): Declare.
9713         * tree-ssa-alias.c (dump_alias_stats): Call it.
9714
9715 2015-05-08  Michael Matz  <matz@suse.de>
9716
9717         * tree-vectorizer.h (struct _stmt_vec_info): Rename stride_load_p
9718         to strided_p.
9719         (STMT_VINFO_STRIDE_LOAD_P): Rename to ...
9720         (STMT_VINFO_STRIDED_P): ... this.
9721         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust.
9722         (vect_verify_datarefs_alignment): Likewise.
9723         (vect_enhance_data_refs_alignment): Likewise.
9724         (vect_analyze_data_ref_access): Likewise.
9725         (vect_analyze_data_refs): Accept strided stores.
9726         * tree-vect-stmts.c (vect_model_store_cost): Count strided stores.
9727         (vect_model_load_cost): Adjust for macro rename.
9728         (vectorizable_mask_load_store): Likewise.
9729         (vectorizable_load): Likewise.
9730         (vectorizable_store): Open code strided stores.
9731
9732 2015-05-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9733
9734         * doc/sourcebuild.texi (7.2.3.9 Other hardware attributes):
9735         Document sqrt_insn.
9736
9737 2015-05-21  Richard Biener  <rguenther@suse.de>
9738
9739         PR c++/66211
9740         * match.pd: Guard pattern optimzing (int)(float)int
9741         conversions to apply only on GIMPLE.
9742
9743 2015-05-21  Jeff Law  <law@redhat.com>
9744
9745         * combine.c (find_split_point): Handle ASHIFT like MULT to encourage
9746         multiply-accumulate/shift-add insn generation.
9747
9748 2015-05-21  Oleg Endo  <olegendo@gcc.gnu.org>
9749
9750         PR target/54236
9751         * config/sh/sh.md (*round_int_even): Reject pattern if operands[0] and
9752         operands[1] are the same.
9753
9754 2015-05-21  Ilya Enkovich  <enkovich.gnu@gmail.com>
9755
9756         PR middle-end/66221
9757         * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Use
9758         build_distinct_type_copy to copy bounds.
9759
9760 2015-05-21  Thomas Schwinge  <thomas@codesourcery.com>
9761
9762         * genrecog.c (MAX_DEPTH, MIN_NUM_STATEMENTS, MAX_NUM_STATEMENTS):
9763         Change to unsigned int.
9764
9765 2015-05-20  Jeff Law  <law@redhat.com>
9766
9767         * config/pa/pa.c (pa_print_operand): New 'o' output modifier.
9768         (pa_mem_shadd_constant_p): Renamed from pa_shadd_constant_p.
9769         (pa_shadd_constant_p): Allow constants for shadd insns rather
9770         than valid scaling constants for memory addresses.
9771         * config/pa/pa-protos.h (pa_mem_shadd_constant_p): Add prototype.
9772         * config/pa/predicates.md (mem_shadd_operand): New predicate.
9773         * config/pa/pa.md (shift-add insns using MULT): Use mem_shadd_operand.
9774         (shift-add insns using ASHIFT): New patterns.
9775
9776 2015-05-20  Mikhail Maltsev  <maltsevm@gmail.com>
9777
9778         * bb-reorder.c (set_edge_can_fallthru_flag): Use rtx_jump_insn where
9779         feasible.
9780         (fix_up_fall_thru_edges): Likewise.
9781         (fix_crossing_conditional_branches): Likewise. Promote jump targets
9782         from to rtx_insn to rtx_code_label where feasible.
9783         * bt-load.c (move_btr_def): Remove as-a cast of the value returned by
9784         gen_move_insn (returned type changed to rtx_insn).
9785         * builtins.c (expand_errno_check): Fix arguments of
9786         do_compare_rtx_and_jump (now expects rtx_code_label).
9787         (expand_builtin_acc_on_device): Likewise.
9788         * cfgcleanup.c (try_simplify_condjump): Add cast when calling
9789         invert_jump (now exprects rtx_jump_insn).
9790         * cfgexpand.c (label_rtx_for_bb): Promote return type to rtx_code_label.
9791         (construct_init_block): Use rtx_code_label.
9792         * cfgrtl.c (block_label): Promote return type to rtx_code_label.
9793         (try_redirect_by_replacing_jump): Use cast to rtx_jump_insn when
9794         calling redirect_jump.
9795         (patch_jump_insn): Likewise.
9796         (redirect_branch_edge): Likewise.
9797         (force_nonfallthru_and_redirect): Likewise.
9798         (fixup_reorder_chain): Explicitly use rtx_jump_insn instead of rtx_insn
9799         when suitable.
9800         (rtl_lv_add_condition_to_bb): Update call of do_compare_rtx_and_jump.
9801         * cfgrtl.h: Promote return type of block_label to rtx_code_label.
9802         * config/bfin/bfin.c (hwloop_optimize): Fix call of emit_label_before.
9803         * config/i386/i386.c (ix86_emit_cmove): Explicitly use rtx_code_label
9804         to store the value retured by gen_label_rtx.
9805         * config/mips/mips.c (mips16_split_long_branches): Promote rtx_insn to
9806         rtx_jump_insn.
9807         * config/sh/sh.c (gen_far_branch): Likewise. Fix call of invert_jump.
9808         (split_branches): Fix calls of redirect_jump.
9809         * dojump.c (jumpifnot): Promote argument type from rtx to
9810         rtx_code_label.
9811         (jumpifnot_1): Likewise.
9812         (jumpif): Likewise.
9813         (jumpif_1): Likewise.
9814         (do_jump_1): Likewise.
9815         (do_jump): Likewise. Use rtx_code_label when feasible.
9816         (do_jump_by_parts_greater_rtx): Likewise.
9817         (do_jump_by_parts_zero_rtx): Likewise.
9818         (do_jump_by_parts_equality_rtx): Likewise.
9819         (do_compare_rtx_and_jump): Likewise.
9820         * dojump.h: Update function prototypes.
9821         * dse.c (emit_inc_dec_insn_before): Remove case (gen_move_insn now
9822         returns rtx_insn).
9823         * emit-rtl.c (emit_jump_insn_before_noloc): Promote return type to
9824         rtx_jump_insn.
9825         (emit_label_before): Likewise.
9826         (emit_jump_insn_after_noloc): Likewise.
9827         (emit_jump_insn_after_setloc): Likewise.
9828         (emit_jump_insn_after): Likewise
9829         (emit_jump_insn_before_setloc): Likewise.
9830         (emit_jump_insn_before): Likewise.
9831         (emit_label_before): Promote return type to rtx_code_label.
9832         (emit_label): Likewise.
9833         * except.c (sjlj_emit_dispatch_table): Use jump_target_rtx.
9834         * explow.c (emit_stack_save): Use gen_move_insn_uncast instead of
9835         gen_move_insn.
9836         (emit_stack_restore): Likewise.
9837         * expmed.c (emit_store_flag_force): Fix calls of do_compare_rtx_and_jump.
9838         (do_cmp_and_jump): Likewise.
9839         * expr.c (expand_expr_real_2): Likewise. Promote some local variables
9840         from rtx to rtx_code_label.
9841         (gen_move_insn_uncast): New function.
9842         * expr.h: Update return type of gen_move_insn (promote to rtx_insn).
9843         * function.c (convert_jumps_to_returns): Fix call of redirect_jump.
9844         * gcse.c (pre_insert_copy_insn): Use rtx_insn instead of rtx.
9845         * ifcvt.c (dead_or_predicable): Use rtx_jump_insn when calling
9846         invert_jump_1 and redirect_jump_1.
9847         * internal-fn.c (expand_arith_overflow_result_store): Fix call of
9848         do_compare_rtx_and_jump.
9849         (expand_addsub_overflow): Likewise.
9850         (expand_neg_overflow): Likewise.
9851         (expand_mul_overflow): Likewise.
9852         * ira.c (split_live_ranges_for_shrink_wrap): Use rtx_insn for
9853         return value of gen_move_insn.
9854         * jump.c (redirect_jump): Promote argument from rtx to rtx_jump_insn.
9855         * loop-doloop.c (add_test): Use rtx_code_label.
9856         (doloop_modify): Likewise.
9857         (doloop_optimize): Likewise.
9858         * loop-unroll.c (compare_and_jump_seq): Promote rtx to rtx_code_label.
9859         * lra-constraints.c (emit_spill_move): Remove cast of value returned
9860         by gen_move_insn.
9861         (inherit_reload_reg): Add cast when calling dump_insn_slim.
9862         (split_reg): Likewise.
9863         * modulo-sched.c (schedule_reg_moves): Remove cast of value returned by
9864         gen_move_insn.
9865         * optabs.c (expand_binop_directly): Remove casts of values returned by
9866         maybe_gen_insn.
9867         (expand_unop_direct): Likewise.
9868         (expand_abs): Likewise.
9869         (maybe_emit_unop_insn): Likewise.
9870         (maybe_gen_insn): Promote return type to rtx_insn.
9871         * optabs.h: Update prototype of maybe_gen_insn.
9872         * postreload-gcse.c (eliminate_partially_redundant_load): Remove
9873         redundant cast.
9874         * recog.c (struct peep2_insn_data): Promote type of insn field to
9875         rtx_insn.
9876         (peep2_reinit_state): Use NULL instead of NULL_RTX.
9877         (peep2_attempt): Remove casts of insn in peep2_insn_data.
9878         (peep2_fill_buffer): Promote argument from rtx to rtx_insn
9879         * recog.h (struct insn_gen_fn): Promote return types of function
9880         pointers and operator ().from rtx to rtx_insn.
9881         * reorg.c (fill_simple_delay_slots): Promote rtx_insn to rtx_jump_insn.
9882         (fill_eager_delay_slots): Likewise.
9883         (relax_delay_slots): Likewise.
9884         (make_return_insns): Likewise.
9885         (dbr_schedule): Likewise.
9886         (optimize_skips): Likewise.
9887         (reorg_redirect_jump): Likewise.
9888         (fill_slots_from_thread): Likewise.
9889         * reorg.h: Update prototypes.
9890         * resource.c (find_dead_or_set_registers): Use dyn_cast to
9891         rtx_jump_insn instead of check.  Use it's jump_target method.
9892         * rtl.h (rtx_jump_insn::jump_label): Define new method.
9893         (rtx_jump_insn::jump_target): Define new method.
9894         (rtx_jump_insn::set_jump_target): Define new method.
9895         * rtlanal.c (tablejump_p): Promote type of one local variable.
9896         * sched-deps.c (sched_analyze_2): Promote rtx to rtx_insn_list.
9897         (sched_analyze_insn): Likewise.
9898         * sched-vis.c (print_insn_with_notes): Promote rtx to rtx_insn.
9899         (print_insn): Likewise.
9900         * stmt.c (label_rtx): Promote return type to rtx_insn.
9901         (force_label_rtx): Likewise.
9902         (jump_target_rtx): Define new function.
9903         (expand_label): Use it, get rid of one cast.
9904         (expand_naked_return): Promote rtx to rtx_code_label.
9905         (do_jump_if_equal): Fix do_compare_rtx_and_jump call.
9906         (expand_case): Use rtx_code_label instread of rtx where feasible.
9907         (expand_sjlj_dispatch_table): Likewise.
9908         (emit_case_nodes): Likewise.
9909         * stmt.h: Declare jump_target_rtx.  Update prototypes.  Fix comments.
9910         * store-motion.c (insert_store): Make use of new return type of
9911         gen_move_insn and remove a cast.
9912         (replace_store_insn): Likewise.
9913
9914 2015-05-20  Max Filippov  <jcmvbkbc@gmail.com>
9915
9916         * config/xtensa/xtensa.c (init_alignment_context): Replace MULT
9917         by BITS_PER_UNIT with ASHIFT by exact_log2 (BITS_PER_UNIT).
9918
9919 2015-05-20  Jeff Law  <law@redhat.com>
9920
9921         * tree-ssa-threadupdate.c (mark_threaded_blocks): Properly
9922         dispose of the jump thread path when the jump threading
9923         opportunity is cancelled.
9924
9925 2015-05-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9926
9927         * diagnostic.c (diagnostic_print_caret_line): Fix off-by-one error
9928         when printing the caret character.
9929
9930 2015-05-20  Marek Polacek  <polacek@redhat.com>
9931
9932         * cfgexpand.c (expand_debug_expr): Use UNARY_CLASS_P.
9933
9934 2015-05-20  Marek Polacek  <polacek@redhat.com>
9935
9936         * expr.c (expand_cond_expr_using_cmove): Use COMPARISON_CLASS_P.
9937         * gimple-expr.c (gimple_cond_get_ops_from_tree): Likewise.
9938         * gimple-fold.c (canonicalize_bool): Likewise.
9939         (same_bool_result_p): Likewise.
9940         * tree-if-conv.c (parse_predicate): Likewise.
9941
9942 2015-05-20  Marek Polacek  <polacek@redhat.com>
9943
9944         * gimple-fold.c (fold_const_aggregate_ref_1): Use DECL_P.
9945         * gimplify.c (gimplify_modify_expr_rhs): Likewise.
9946
9947 2015-05-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9948
9949         * config/aarch64/aarch64.c (aarch64_class_max_nregs):
9950         Use UNITS_PER_VREG and UNITS_PER_WORD instead of their direct
9951         values.
9952
9953 2015-05-20  Robert Suchanek  <robert.suchanek@imgtec.com>
9954
9955         * config/mips/mips.h (micromips_globals): Declare.
9956
9957 2015-05-20  David Malcolm  <dmalcolm@redhat.com>
9958
9959         * timevar.def (TV_INITIALIZE_RTL): New.
9960         * toplev.c (initialize_rtl): Use an auto_timevar to account this
9961         function's time to TV_INITIALIZE_RTL.
9962
9963 2015-05-20  Ilya Enkovich  <enkovich.gnu@gmail.com>
9964
9965         * tree-chkp.c (chkp_maybe_copy_and_register_bounds): Remove useless
9966         gimple_build_nop calls.
9967         (chkp_find_bounds_for_elem): Likewise.
9968         (chkp_get_zero_bounds): Likewise.
9969         (chkp_get_none_bounds): Likewise.
9970         (chkp_get_bounds_by_definition): Likewise.
9971         (chkp_generate_extern_var_bounds): Likewise.
9972         (chkp_get_bounds_for_decl_addr): Likewise.
9973         (chkp_get_bounds_for_string_cst): Likewise.
9974
9975 2015-05-20  Bin Cheng  <bin.cheng@arm.com>
9976
9977         PR tree-optimization/65447
9978         * tree-ssa-loop-ivopts.c (struct iv_use): New fields.
9979         (dump_use, dump_uses): Support to dump sub use.
9980         (record_use): New parameters to support sub use.  Remove call to
9981         dump_use.
9982         (record_sub_use, record_group_use): New functions.
9983         (compute_max_addr_offset, split_all_small_groups): New functions.
9984         (group_address_uses, rewrite_use_address): New functions.
9985         (strip_offset): New declaration.
9986         (find_interesting_uses_address): Call record_group_use.
9987         (add_candidate): New assertion.
9988         (infinite_cost_p): Move definition forward.
9989         (add_costs): Check INFTY cost and return immediately.
9990         (get_computation_cost_at): Clear setup cost and dependent bitmap
9991         for sub uses.
9992         (determine_use_iv_cost_address): Compute cost for sub uses.
9993         (rewrite_use_address_1): Rename from old rewrite_use_address.
9994         (free_loop_data): Free sub uses.
9995         (tree_ssa_iv_optimize_loop): Call group_address_uses.
9996
9997 2015-05-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
9998             Jim Wilson  <jim.wilson@linaro.org>
9999
10000         * config/arm/aarch-common-protos.h (struct mem_cost_table): Added
10001         new  fields loadv and storev.
10002         * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
10003         Initialize loadv and storev.
10004         * config/arm/aarch-cost-tables.h (generic_extra_costs): Likewise.
10005         (cortexa53_extra_costs): Likewise.
10006         (cortexa57_extra_costs): Likewise.
10007         (xgene1_extra_costs): Likewise.
10008         * config/aarch64/aarch64.c (aarch64_rtx_costs): Update vector
10009         rtx_costs.
10010
10011 2015-05-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
10012
10013         * config/arm/arm.c (cortexa9_extra_costs): Initialize loadv and
10014          storev.
10015         (cortexa8_extra_costs): Likewise.
10016         (cortexa5_extra_costs): Likewise.
10017         (cortexa7_extra_costs): Likewise.
10018         (cortexa12_extra_costs): Likewise.
10019         (cortexa15_extra_costs): Likewise.
10020         (v7m_extra_costs): Likewise.
10021
10022 2015-05-20  Jeff Law  <law@redhat.com>
10023
10024         * tree-ssa-threadupdate.c (thread_single_edge): Use delete_jump_thread
10025         instead of open-coded version.  Also delete the jump thread created
10026         within this function.
10027
10028 2015-05-20  Alan Modra  <amodra@gmail.com>
10029
10030         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Return
10031         stack adjusting insn.  Formatting.
10032         (rs6000_emit_prologue): Track stack adjusting insn, and use of
10033         r12.  If possible, emit first -fsplit-stack arg pointer insn
10034         before stack adjust.  Don't use r12 to save cr if split-stack.
10035
10036 2015-05-20  Alan Modra  <amodra@gmail.com>
10037
10038         * common/config/rs6000/rs6000-common.c (TARGET_SUPPORTS_SPLIT_STACK):
10039         Define.
10040         (rs6000_supports_split_stack): New function.
10041         * gcc/config/rs6000/rs6000.c (machine_function): Add
10042         split_stack_arg_pointer.
10043         (TARGET_EXTRA_LIVE_ON_ENTRY, TARGET_INTERNAL_ARG_POINTER): Define.
10044         (setup_incoming_varargs): Use crtl->args.internal_arg_pointer
10045         rather than virtual_incoming_args_rtx.
10046         (rs6000_va_start): Likewise.
10047         (split_stack_arg_pointer_used_p): New function.
10048         (rs6000_emit_prologue): Set up arg pointer for -fsplit-stack.
10049         (morestack_ref): New var.
10050         (gen_add3_const, rs6000_expand_split_stack_prologue,
10051         rs6000_internal_arg_pointer, rs6000_live_on_entry,
10052         rs6000_split_stack_space_check): New functions.
10053         (rs6000_elf_file_end): Call file_end_indicate_split_stack.
10054         * gcc/config/rs6000/rs6000.md (UNSPEC_STACK_CHECK): Define.
10055         (UNSPECV_SPLIT_STACK_RETURN): Define.
10056         (split_stack_prologue, load_split_stack_limit,
10057         load_split_stack_limit_di, load_split_stack_limit_si,
10058         split_stack_return, split_stack_space_check): New expands and insns.
10059         * gcc/config/rs6000/rs6000-protos.h
10060         (rs6000_expand_split_stack_prologue): Declare.
10061         (rs6000_split_stack_space_check): Declare.
10062
10063 2015-05-20  Alan Modra  <amodra@gmail.com>
10064
10065         * config/rs6000/rs6000.c (struct rs6000_stack): Correct comments.
10066         (direct_return): Test vrsave_size rather than vrsave_mask.
10067         (rs6000_emit_prologue): Likewise.  Remove redundant altivec tests.
10068         (rs6000_emit_epilogue): Likewise.
10069
10070 2015-05-20  Alan Modra  <amodra@gmail.com>
10071
10072         * config/rs6000/rs6000.c (rs6000_stack_info): Don't zero offsets
10073         when not saving registers.
10074         (debug_stack_info): Adjust to omit printing unused offsets,
10075         as before.
10076         (rs6000_emit_epilogue): Adjust use_backchain_to_restore_sp
10077         expression.
10078
10079 2015-05-19  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10080
10081         PR c++/65835
10082         * config/i386/winnt.c (struct wrapped_symbol_hasher): Change
10083         value_type to const char *.
10084
10085 2015-05-19  Sandra Loosemore  <sandra@codesourcery.com>
10086
10087         * config.gcc [powerpc*-*-linux*]: Allow --enable-targets=all
10088         to build a biarch toolchain again.
10089
10090 2015-05-19  Jan Hubicka  <hubicka@ucw.cz>
10091
10092         * ipa-devirt.c (type_in_anonymous_namespace_p): Return true
10093         or implicit declarations.
10094         (odr_type_p): Check that TYPE_NAME is TYPE_DECL before looking
10095         into it.
10096         (get_odr_type): Check type has linkage before adding bases.
10097         (register_odr_type): Check that type has linkage before adding it.
10098         (type_known_to_have_no_deriavations_p): Rename to ..
10099         (type_known_to_have_no_derivations_p): This one.
10100         * ipa-utils.h (type_known_to_have_no_deriavations_p): Rename to ..
10101         (type_known_to_have_no_derivations_p): This one.
10102         * ipa-polymorphic-call.c
10103         (ipa_polymorphic_call_context::restrict_to_inner_type): Check that
10104         type has linkage.
10105
10106 2015-05-19  Eric Botcazou  <ebotcazou@adacore.com>
10107
10108         * stor-layout.c (finalize_type_size): Use AGGREGATE_TYPE_P.
10109         (layout_type): Use RECORD_OR_UNION_TYPE_P.
10110
10111 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10112
10113         * config/s390/s390.c (s390_vector_bool_type_p): New function.
10114         (s390_invalid_binary_op): New function.
10115         (TARGET_INVALID_BINARY_OP): Define macro.
10116
10117 2015-05-19  David Sherwood  <david.sherwood@arm.com>
10118
10119         * loop-invariant.c (create_new_invariant): Don't calculate address cost
10120         if mode is not a scalar integer.
10121         (get_inv_cost): Increase computational cost for unused invariants.
10122
10123 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10124
10125         * config.gcc: Add vecintrin.h to extra_headers.  Add s390-c.o to
10126         c_target_objs and cxx_target_objs.  Add t-s390 to tmake_file.
10127         * config/s390/s390-builtin-types.def: New file.
10128         * config/s390/s390-builtins.def: New file.
10129         * config/s390/s390-builtins.h: New file.
10130         * config/s390/s390-c.c: New file.
10131         * config/s390/s390-modes.def: Add modes CCVEQANY, CCVH,
10132         CCVHANY, CCVHU, CCVHUANY, CCVFHANY, CCVFHEANY.
10133         * config/s390/s390-protos.h (s390_expand_vec_compare_cc)
10134         (s390_cpu_cpp_builtins, s390_register_target_pragmas): Add
10135         prototypes.
10136         * config/s390/s390.c (s390-builtins.h, s390-builtins.def):
10137         Include.
10138         (flags_builtin, flags_overloaded_builtin_var, s390_builtin_types)
10139         (s390_builtin_fn_types, s390_builtin_decls, code_for_builtin): New
10140         variable definitions.
10141         (s390_const_operand_ok): New function.
10142         (s390_expand_builtin): Rewrite.
10143         (s390_init_builtins): New function.
10144         (s390_handle_vectorbool_attribute): New function.
10145         (s390_attribute_table): Add s390_vector_bool attribute.
10146         (s390_match_ccmode_set): Handle new cc modes CCVH, CCVHU.
10147         (s390_branch_condition_mask): Generate masks for new modes.
10148         (s390_expand_vec_compare_cc): New function.
10149         (s390_mangle_type): Add mangling for vector bool types.
10150         (enum s390_builtin): Remove.
10151         (s390_atomic_assign_expand_fenv): Rename constants for sfpc and
10152         efpc builtins.
10153         * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Call
10154         s390_cpu_cpp_builtins.
10155         (REGISTER_TARGET_PRAGMAS): New macro.
10156         * config/s390/s390.md: Define more UNSPEC_VEC_* constants.
10157         (insn_cmp mode attribute): Add new CC modes.
10158         (s390_sfpc, s390_efpc): Rename patterns to sfpc and efpc.
10159         (lcbb): New pattern definition.
10160         * config/s390/s390intrin.h: Include vecintrin.h.
10161         * config/s390/t-s390: New file.
10162         * config/s390/vecintrin.h: New file.
10163         * config/s390/vector.md: Include vx-builtins.md.
10164         * config/s390/vx-builtins.md: New file.S/390 zvector builtin
10165         support.
10166
10167 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10168
10169         * config/s390/s390-modes.def: Add new modes CCVEQ, CCVFH, and
10170         CCVFHE.
10171         * config/s390/s390.c (s390_match_ccmode_set): Handle new modes.
10172         (s390_select_ccmode): Likewise.
10173         (s390_canonicalize_comparison): Swap operands if necessary.
10174         (s390_expand_vec_compare_scalar): Expand DFmode compare using
10175         single element vector instructions.
10176         (s390_emit_compare): Call s390_expand_vec_compare_scalar.
10177         (s390_branch_condition_mask): Generate CC masks for the new modes.
10178         * config/s390/s390.md (v0, vf, vd): New mode attributes.
10179         (VFCMP, asm_fcmp, insn_cmp): New mode iterator and attributes.
10180         (*vec_cmp<insn_cmp>df_cconly, *fixuns_truncdfdi2_z13)
10181         (*fix_trunc<BFP:mode><GPR:mode>2_bfp, *floatunsdidf2_z13)
10182         (*floatuns<GPR:mode><FP:mode>2, *extendsfdf2_z13)
10183         (*extend<DSF:mode><BFP:mode>2): New insn definition.
10184         (fix_trunc<BFP:mode><GPR:mode>2_bfp, loatuns<GPR:mode><FP:mode>2)
10185         (extend<DSF:mode><BFP:mode>2): Turn into expander.
10186         (floatdi<mode>2, truncdfsf2, add<mode>3, sub<mode>3, mul<mode>3)
10187         (div<mode>3, *neg<mode>2, *abs<mode>2, *negabs<mode>2)
10188         (sqrt<mode>2): Add vector instruction.
10189
10190 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10191
10192         * config/s390/constraints.md (j00, jm1, jxx, jyy, v): New
10193         constraints.
10194         * config/s390/predicates.md (const0_operand, constm1_operand)
10195         (constable_operand): Accept vector operands.
10196         * config/s390/s390-modes.def: Add supported vector modes.
10197         * config/s390/s390-protos.h (s390_cannot_change_mode_class)
10198         (s390_function_arg_vector, s390_contiguous_bitmask_vector_p)
10199         (s390_bytemask_vector_p, s390_expand_vec_strlen)
10200         (s390_expand_vec_compare, s390_expand_vcond)
10201         (s390_expand_vec_init): Add prototypes.
10202         * config/s390/s390.c (VEC_ARG_NUM_REG): New macro.
10203         (s390_vector_mode_supported_p): New function.
10204         (s390_contiguous_bitmask_p): Mask out the irrelevant bits.
10205         (s390_contiguous_bitmask_vector_p): New function.
10206         (s390_bytemask_vector_p): New function.
10207         (s390_split_ok_p): Vector regs don't work either.
10208         (regclass_map): Add VEC_REGS.
10209         (s390_legitimate_constant_p): Handle vector constants.
10210         (s390_cannot_force_const_mem): Handle CONST_VECTOR.
10211         (legitimate_reload_vector_constant_p): New function.
10212         (s390_preferred_reload_class): Handle CONST_VECTOR.
10213         (s390_reload_symref_address):  Likewise.
10214         (s390_secondary_reload): Vector memory instructions only support
10215         short displacements.  Rename reload*_nonoffmem* to reload*_la*.
10216         (s390_emit_ccraw_jump): New function.
10217         (s390_expand_vec_strlen): New function.
10218         (s390_expand_vec_compare): New function.
10219         (s390_expand_vcond): New function.
10220         (s390_expand_vec_init): New function.
10221         (s390_dwarf_frame_reg_mode): New function.
10222         (print_operand): Handle addresses with 'O' and 'R' constraints.
10223         (NR_C_MODES, constant_modes): Add vector modes.
10224         (s390_output_pool_entry): Handle vector constants.
10225         (s390_hard_regno_mode_ok): Handle vector registers.
10226         (s390_class_max_nregs): Likewise.
10227         (s390_cannot_change_mode_class): New function.
10228         (s390_invalid_arg_for_unprototyped_fn): New function.
10229         (s390_function_arg_vector): New function.
10230         (s390_function_arg_float): Remove size variable.
10231         (s390_pass_by_reference): Handle vector arguments.
10232         (s390_function_arg_advance): Likewise.
10233         (s390_function_arg): Likewise.
10234         (s390_return_in_memory): Vector values are returned in a VR if
10235         possible.
10236         (s390_function_and_libcall_value): Handle vector arguments.
10237         (s390_gimplify_va_arg): Likewise.
10238         (s390_call_saved_register_used): Consider the arguments named.
10239         (s390_conditional_register_usage): Disable v16-v31 for non-vec
10240         targets.
10241         (s390_preferred_simd_mode): New function.
10242         (s390_support_vector_misalignment): New function.
10243         (s390_vector_alignment): New function.
10244         (TARGET_STRICT_ARGUMENT_NAMING, TARGET_DWARF_FRAME_REG_MODE)
10245         (TARGET_VECTOR_MODE_SUPPORTED_P)
10246         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN)
10247         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
10248         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT)
10249         (TARGET_VECTOR_ALIGNMENT): Define target macro.
10250         * config/s390/s390.h (FUNCTION_ARG_PADDING): Define macro.
10251         (FIRST_PSEUDO_REGISTER): Increase value.
10252         (VECTOR_NOFP_REGNO_P, VECTOR_REGNO_P, VECTOR_NOFP_REG_P)
10253         (VECTOR_REG_P): Define macros.
10254         (FIXED_REGISTERS, CALL_USED_REGISTERS)
10255         (CALL_REALLY_USED_REGISTERS, REG_ALLOC_ORDER)
10256         (HARD_REGNO_CALL_PART_CLOBBERED, REG_CLASS_NAMES)
10257         (FUNCTION_ARG_REGNO_P, FUNCTION_VALUE_REGNO_P, REGISTER_NAMES):
10258         Add vector registers.
10259         (CANNOT_CHANGE_MODE_CLASS): Call C function.
10260         (enum reg_class): Add VEC_REGS, ADDR_VEC_REGS, GENERAL_VEC_REGS.
10261         (SECONDARY_MEMORY_NEEDED): Allow SF<->SI mode moves without
10262         memory.
10263         (DBX_REGISTER_NUMBER, FIRST_VEC_ARG_REGNO, LAST_VEC_ARG_REGNO)
10264         (SHORT_DISP_IN_RANGE, VECTOR_STORE_FLAG_VALUE): Define macro.
10265         * config/s390/s390.md (UNSPEC_VEC_*): New constants.
10266         (VR*_REGNUM): New constants.
10267         (ALL): New mode iterator.
10268         (INTALL): Remove mode iterator.
10269         Include vector.md.
10270         (movti): Implement TImode moves for VRs.
10271         Disable TImode splitter for VR targets.
10272         Implement splitting TImode GPR<->VR moves.
10273         (reload*_tomem_z10, reload*_toreg_z10): Replace INTALL with ALL.
10274         (reload<mode>_nonoffmem_in, reload<mode>_nonoffmem_out): Rename to
10275         reload<mode>_la_in, reload<mode>_la_out.
10276         (*movdi_64, *movsi_zarch, *movhi, *movqi, *mov<mode>_64dfp)
10277         (*mov<mode>_64, *mov<mode>_31): Add vector instructions.
10278         (TD/TF mode splitter): Enable for GPRs only (formerly !FP).
10279         (mov<mode> SF SD): Prefer lder, lde for loading.
10280         Add lrl and strl instructions.
10281         Add vector instructions.
10282         (strlen<mode>): Rename old strlen<mode> to strlen_srst<mode>.
10283         Call s390_expand_vec_strlen on z13.
10284         (*cc_to_int): Change predicate to nonimmediate_operand.
10285         (addti3): Rename to *addti3.  New expander.
10286         (subti3): Rename to *subti3.  New expander.
10287         * config/s390/vector.md: New file.
10288
10289 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10290
10291         * common/config/s390/s390-common.c (processor_flags_table): Add
10292         z13.
10293         * config.gcc: Add z13.
10294         * config/s390/s390-opts.h (enum processor_type): Add
10295         PROCESSOR_2964_Z13.
10296         * config/s390/s390.c (s390_adjust_priority): Check for
10297         PROCESSOR_2964_Z13.
10298         (s390_reorg): Likewise.
10299         (s390_sched_reorder): Likewise.
10300         (s390_sched_variable_issue): Likewise.
10301         (s390_loop_unroll_adjust): Likewise.
10302         (s390_option_override): Likewise. Default to -mvx when available.
10303         * config/s390/s390.h (enum processor_flags): Add PF_Z13 and PF_VX.
10304         (TARGET_CPU_Z13, TARGET_CPU_VX, TARGET_Z13, TARGET_VX)
10305         (TARGET_VX_ABI): Define macros.
10306         macros.
10307         (TARGET_DEFAULT): Add MASK_OPT_VX.
10308         * config/s390/s390.md ("cpu" attribute): Add z13.
10309         ("cpu_facility" attribute): Add vec.
10310         * config/s390/s390.opt (processor_type): Add z13.
10311         (mvx): New options.
10312         * doc/invoke.texi: Add z13 option for -march.
10313
10314 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10315
10316         * config/s390/predicates.md (shift_count_or_setmem_operand): Add
10317         mode check to make sure that only scalar integer values are
10318         accepted.
10319
10320 2015-05-19  Jan Hubicka  <hubicka@ucw.cz>
10321
10322         * tree.c (verify_type_variant): Fix #undef.
10323         (gimple_canonical_types_compatible_p): Move here from lto.c
10324         (verify_type): Verify TYPE_CANONICAL compatibility.
10325         * tree.h (gimple_canonical_types_compatible_p): Declare.
10326
10327 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
10328
10329         PR middle-end/66199
10330         * tree.h (OMP_TEAMS_COMBINED): Define.
10331         * gimplify.c (enum gimplify_omp_var_data): Add
10332         GOVD_LINEAR_LASTPRIVATE_NO_OUTER.
10333         (enum omp_region_type): Add ORT_COMBINED_TEAMS.
10334         (omp_notice_variable): Accept both ORT_TEAMS
10335         and ORT_COMBINED_TEAMS.  Don't recurse if
10336         GOVD_LINEAR_LASTPRIVATE_NO_OUTER is set and either
10337         GOVD_LINEAR is set, or GOVD_LASTPRIVATE without
10338         GOVD_FIRSTPRIVATE.
10339         (omp_no_lastprivate): New function.
10340         (gimplify_scan_omp_clauses): For OMP_CLAUSE_LASTPRIVATE
10341         and OMP_CLAUSE_LINEAR, if omp_no_lastprivate, don't
10342         notice_outer and set appropriate bits, otherwise make
10343         sure default(none) combined constructs won't complain.
10344         (gimplify_adjust_omp_clauses): Remove OMP_CLAUSE_LINEAR
10345         outer special casing, for OMP_CLAUSE_LASTPRIVATE if
10346         omp_no_lastprivate either remove the clause or turn it
10347         into OMP_CLAUSE_PRIVATE.
10348         (gimplify_omp_for): Fix up handling of implicit
10349         lastprivate or linear iterators.
10350         (gimplify_omp_workshare): For OMP_TEAMS_COMBINED use
10351         ORT_COMBINED_TEAMS.
10352         * omp-low.c (lower_omp_for_lastprivate): For combined
10353         for simd use fd.loop.n2 from the for rather than simd.
10354
10355 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10356
10357         * config/cris/cris.c (cris_expand_prologue): Use gen_raw_REG
10358         instead of gen_rtx_raw_REG.
10359         (cris_expand_epilogue): Likewise.
10360         * config/microblaze/microblaze.c (microblaze_classify_address):
10361         Likewise.
10362         * config/sparc/sparc.md: Likewise.
10363
10364 2015-05-19  Uros Bizjak  <ubizjak@gmail.com>
10365
10366         * config/alpha/alpha.c (alpha_legitimize_reload_address)
10367         (alpha_preferred_reload_class, alpha_legitimate_constant_p): Use
10368         CONST_INT_P, CONST_SCALAR_INT_P and CONST_DOUBLE_P predicates.
10369         (alpha_split_reload_pair) <case CONST_INT, case CONST_WIDE_INT>:
10370         Use CASE_CONST_SCALAR_INT.
10371         (print_operand) <case 'M'>: Use mode_width_operand to check the
10372         value of the constant.
10373         * config/alpha/alpha.md (movti): Use CONST_SCALAR_INT_P predicate.
10374         * config/alpha/predicates.md (input_operand): Use general_operand
10375         instead of match_code as operand check.
10376         (symbolic_operand): Use match_code with subexpression digits.
10377         * config/alpha/constraints.md (Q): Ditto.
10378
10379 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10380
10381         * optabs.c (expand_vec_perm): Don't re-use SEL as target operand.
10382
10383 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10384
10385         * config/s390/s390.c (s390_secondary_reload): Fix check for
10386         load/store relative.
10387
10388 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10389
10390         * recog.h: Increase MAX_RECOG_ALTERNATIVES.  Change type of
10391         alternative_mask to uint64_t.
10392
10393 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
10394
10395         PR tree-optimization/66187
10396         * match.pd ((bit_and (plus/minus (convert @0) (convert @1)) mask)):
10397         Pass TYPE_SIGN to tree_int_cst_min_precision.  If
10398         !TYPE_OVERFLOW_WRAPS, ensure @4 is non-negative.
10399
10400 2015-05-19  David Malcolm  <dmalcolm@redhat.com>
10401
10402         * diagnostic.c (diagnostic_report_current_module): Strengthen
10403         local "new_map" from const line_map * to
10404         const line_map_ordinary *.
10405         * genmatch.c (error_cb): Likewise for local "map".
10406         (output_line_directive): Likewise for local "map".
10407         * input.c (expand_location_1): Likewise for local "map".
10408         Pass NULL rather than &map to
10409         linemap_unwind_to_first_non_reserved_loc, since the value is never
10410         read from there, and the value written back not read from here.
10411         (is_location_from_builtin_token): Strengthen local "map" from
10412         const line_map * to const line_map_ordinary *.
10413         (dump_location_info): Strengthen locals "map" from
10414         line_map *, one to const line_map_ordinary *, the other
10415         to const line_map_macro *.
10416         * tree-diagnostic.c (loc_map_pair): Strengthen field "map" from
10417         const line_map * to const line_map_macro *.
10418         (maybe_unwind_expanded_macro_loc): Add a call to
10419         linemap_check_macro when writing to the "map" field of the
10420         loc_map_pair.
10421         Introduce local const line_map_ordinary * "ord_map", using it in
10422         place of "map" in the part of the function where we know we have
10423         an ordinary map.  Strengthen local "m" from const line_map * to
10424         const line_map_ordinary *.
10425
10426 2015-05-19  Nick Clifton  <nickc@redhat.com>
10427
10428         PR target/66156
10429         * config/msp430/msp430.md (zero_extendhisi2): Add support for
10430         separate source and destination registers.
10431
10432 2015-05-19  Richard Biener  <rguenther@suse.de>
10433
10434         PR tree-optimization/66165
10435         * tree-vect-slp.c (vect_supported_load_permutation_p): Add guard
10436         for no load permutation.
10437
10438         PR tree-optimization/66185
10439         * tree-vect-slp.c (vect_build_slp_tree): Properly roll back
10440         when building the SLP node from scalars.
10441
10442 2015-05-19  Eric Botcazou  <ebotcazou@adacore.com>
10443             Tristan Gingold  <gingold@adacore.com>
10444
10445         * insn-notes.def (UPDATE_SJLJ_CONTEXT): New note.
10446         * builtins.c (expand_builtin_update_setjmp_buf): Make global.
10447         (expand_stack_restore): Call record_new_stack_level.
10448         (expand_stack_save): Do not call do_pending_stack_adjust.
10449         * builtins.h (expand_builtin_update_setjmp_buf): Declare.
10450         * calls.c (expand_call): Call record_new_stack_level for alloca.
10451         * except.c (sjlj_mark_call_sites): Expand builtin_update_setjmp_buf
10452         wherever a NOTE_INSN_UPDATE_SJLJ_CONTEXT note is present.
10453         (update_sjlj_context): New global function.
10454         * except.h (update_sjlj_context): Declare.
10455         * explow.c (record_new_stack_level): New global function.
10456         (allocate_dynamic_stack_space): Call record_new_stack_level.
10457         * explow.h (record_new_stack_level): Declare.
10458         * final.c (final_scan_insn): Deal with NOTE_INSN_UPDATE_SJLJ_CONTEXT.
10459         * cfgrtl.c (duplicate_insn_chain): Likewise.
10460
10461 2015-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10462
10463         * calls.c: Always define STACK_GROWS_DOWNWARD as 0 or 1.
10464         (mem_overlaps_already_clobbered_arg_p): Rewrite ifdef
10465         STACK_GROWS_DOWNWARD as normal if.
10466         (expand_call): Likewise.
10467
10468 2015-05-19  Oleg Endo  <olegendo@gcc.gnu.org>
10469
10470         PR target/54236
10471         * config/sh/sh.md (*round_int_even): New insn_and_split and
10472         accompanying new unnamed split.
10473
10474 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10475
10476         * bitmap.c (bitmap_set_range): Handle count==1 specially.
10477         (bitmap_clear_range): Likewise.
10478         * cfgcleanup.c (mark_effect): Use bitmap_clear_range and
10479         bitmap_set_range unconditionally.
10480         * df-problems.c (df_simulate_one_insn_forwards): Likewise.
10481         * df-scan.c (df_mark_reg): Likewise.
10482         * haifa-sched.c (setup_ref_regs): Likewise.
10483         * sched-rgn.c (update_live_1): Likewise.
10484
10485 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10486
10487         * regs.h (END_HARD_REGNO): Delete.
10488         (END_REGNO): Move to...
10489         * rtl.h: ...here.
10490         * bt-load.c (note_btr_set): Use END_REGNO instead of END_HARD_REGNO.
10491         * caller-save.c (mark_set_regs): Likewise.
10492         * combine.c (move_deaths, distribute_notes): Likewise.
10493         * cse.c (invalidate, invalidate_for_call): Likewise.
10494         * df-scan.c (df_ref_record): Likewise.
10495         * postreload-gcse.c (reg_changed_after_insn_p): Likewise.
10496         (record_last_reg_set_info): Likewise.
10497         * reg-stack.c (convert_regs_exit): Likewise.
10498         * reload.c (reg_overlap_mentioned_for_reload_p): Likewise.
10499         * resource.c (update_live_status): Likewise.
10500         * rtlanal.c (find_reg_fusage, find_regno_fusage): Likewise.
10501
10502 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10503
10504         * rtl.h (reg_info): Add an nregs field.
10505         (REG_NREGS): Use it.
10506         (SET_REGNO_RAW): Delete.
10507         (set_regno_raw): New function.
10508         * regs.h (END_HARD_REGNO): Make equivalent to END_REGNO.
10509         (END_REGNO): Redefine in terms of REG_NREGS.
10510         * read-rtl.c (read_rtx_code): Call set_regno_raw instead of
10511         SET_REGNO_RAW.
10512         * emit-rtl.c (set_mode_and_regno): Likewise.
10513         * df-scan.c (df_ref_change_reg_with_loc): Use set_mode_and_regno
10514         instead of SET_REGNO_RAW.
10515
10516 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10517
10518         * rtl.h (PUT_MODE_RAW): New macro.
10519         (PUT_REG_NOTE_KIND): Use it.
10520         (set_mode_and_regno): Declare.
10521         (gen_raw_REG): Change regno to "unsigned int".
10522         (gen_rtx_REG): Change "unsigned" to "unsigned int".
10523         (PUT_MODE): Forward to PUT_MODE_RAW for generators, otherwise
10524         use set_mode_and_regno to change the mode of registers.
10525         * gengenrtl.c (gendef): Use PUT_MODE_RAW.
10526         * emit-rtl.c (set_mode_and_regno): New function.
10527         (gen_raw_REG): Change regno to unsigned int.  Use set_mode_and_regno.
10528         * caller-save.c (reg_save_code): Use set_mode_and_regno.
10529         * expr.c (init_expr_target): Likewise.
10530         * ira.c (setup_prohibited_mode_move_regs): Likewise.
10531         * postreload.c (reload_cse_simplify_operands): Likewise.
10532
10533 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10534
10535         * caller-save.c (init_caller_save): Use word_mode and
10536         FIRST_PSEUDO_REGISTER when creating temporary rtxes.
10537         * expr.c (init_expr_target): Likewise.
10538         * ira.c (setup_prohibited_mode_move_regs): Likewise.
10539         * postreload.c (reload_cse_regs_1): Likewise.
10540
10541 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10542
10543         * rtl.def (REG): Change format to "r".
10544         * rtl.h (rtunion): Remove rt_reg.
10545         (reg_info): New structure.
10546         (rtx_def): Add reg field to main union.
10547         (X0REGATTR): Delete.
10548         (REG_CHECK): New macro.
10549         (SET_REGNO_RAW, rhs_regno, REG_ATTRS): Use it.
10550         * rtl.c (rtx_format): Document "r".
10551         (rtx_code_size): Handle REG specially.
10552         * gengenrtl.c (special_format): Return true for formats
10553         that include 'r'.
10554         * gengtype.c (adjust_field_rtx_def): Handle 'r' fields.
10555         Deal with REG_ATTRS after the field loop.
10556         * emit-rtl.c (gen_raw_REG): Call rtx_alloc_stat directly.
10557         * expmed.c (init_expmed): Call gen_raw_REG instead of
10558         gen_rtx_raw_REG.
10559         * expr.c (init_expr_target): Likewise.
10560         * regcprop.c (maybe_mode_change): Likewise.
10561         * varasm.c (make_decl_rtl): Likewise.
10562         * final.c (leaf_renumber_regs_insn): Return early after
10563         handling REGs.
10564         * genemit.c (gen_exp): Handle 'r' fields.
10565         * genpeep.c (match_rtx): Likewise.
10566         * gensupport.c (subst_pattern_match): Likewise.
10567         (get_alternatives_number, collect_insn_data, alter_predicate_for_insn)
10568         (alter_constraints, subst_dup): Likewise.
10569         * read-rtl.c (read_rtx_code): Likewise.
10570         * print-rtl.c (print_rtx): Likewise.
10571         * genrecog.c (find_operand, find_matching_operand): Likewise.
10572         (validate_pattern, match_pattern_2): Likewise.
10573         (parameter::UINT, rtx_test::REGNO_FIELD): New enum values.
10574         (rtx_test::regno_field): New function.
10575         (operator ==, safe_to_hoist_p, transition_parameter_type)
10576         (parameter_type_string, print_parameter_value)
10577         (print_nonbool_test, print_test): Handle new enum values.
10578         * cselib.c (rtx_equal_for_cselib_1): Handle REG specially.
10579         * lra-constraints.c (operands_match_p): Likewise.
10580
10581 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10582
10583         * df.h (df_ref_change_reg_with_loc): Remove old_regno parameter.
10584         Change type of new_regno to unsigned int.
10585         * df-scan.c (df_ref_change_reg_with_loc_1): Change type of
10586         new_regno to unsigned int.
10587         (df_ref_change_reg_with_loc): Remove old_regno parameter.
10588         Change type of new_regno to unsigned int.  Use SET_REGNO_RAW.
10589         * rtl.h (SET_REGNO): Update call to df_ref_change_reg_with_loc.
10590         (SET_REGNO_RAW): Add space after ",".
10591
10592 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10593
10594         * rtl.h (REG_NREGS): New macro
10595         * alias.c (record_set): Use it.
10596         * cfgcleanup.c (mark_effect): Likewise.
10597         * combine.c (likely_spilled_retval_1): Likewise.
10598         (likely_spilled_retval_p, can_change_dest_mode): Likewise.
10599         (move_deaths, distribute_notes): Likewise.
10600         * cselib.c (cselib_record_set): Likewise.
10601         * df-problems.c (df_simulate_one_insn_forwards): Likewise.
10602         * df-scan.c (df_mark_reg): Likewise.
10603         * dse.c (look_for_hardregs): Likewise.
10604         * dwarf2out.c (reg_loc_descriptor): Likewise.
10605         (multiple_reg_loc_descriptor): Likewise.
10606         * expr.c (write_complex_part, read_complex_part): Likewise.
10607         (emit_move_complex): Likewise.
10608         * haifa-sched.c (setup_ref_regs): Likewise.
10609         * ira-lives.c (mark_hard_reg_live): Likewise.
10610         * lra.c (lra_set_insn_recog_data): Likewise.
10611         * mode-switching.c (create_pre_exit): Likewise.
10612         * postreload.c (reload_combine_recognize_const_pattern): Likewise.
10613         (reload_combine_recognize_pattern): Likewise.
10614         (reload_combine_note_use, move2add_record_mode): Likewise.
10615         (reload_cse_move2add): Likewise.
10616         * reg-stack.c (subst_stack_regs_pat): Likewise.
10617         * regcprop.c (kill_value, copy_value): Likewise.
10618         (copyprop_hardreg_forward_1): Likewise.
10619         * regrename.c (verify_reg_in_set, scan_rtx_reg): Likewise.
10620         (build_def_use): Likewise.
10621         * sched-deps.c (mark_insn_reg_birth, mark_reg_death): Likewise.
10622         (deps_analyze_insn): Likewise.
10623         * sched-rgn.c (check_live_1, update_live_1): Likewise.
10624         * sel-sched.c (count_occurrences_equiv): Likewise.
10625         * valtrack.c (dead_debug_insert_temp): Likewise.
10626
10627 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10628
10629         * cfgcleanup.c (mentions_nonequal_regs): Use END_REGNO.
10630         * dse.c (note_add_store): Likewise.
10631         * ira-lives.c (mark_hard_reg_dead): Likewise.
10632         * loop-invariant.c (mark_reg_store): Likewise.
10633         (mark_reg_death): Likewise.
10634         * postreload.c (reload_combine): Likewise.
10635         (reload_combine_note_store): Likewise.
10636         (reload_combine_note_use): Likewise.
10637         * recog.c (peep2_reg_dead_p): Likewise.
10638
10639 2015-05-19  Alan Modra  <amodra@gmail.com>
10640
10641         * config/rs6000/predicates.md (gpc_reg_operand): Don't allow all
10642         hard registers numbered greater or equal to ARG_POINTER_REGNUM.
10643         (reg_or_neg_short_operand, fix_trunc_dest_operand): Delete
10644         unused predicates.
10645         * config/rs6000/altivec.md (save_vregs_*, restore_vregs_*):
10646         Use altivec_register_operand.  Make insn predicate TARGET_ALTIVEC.
10647         * config/rs6000/rs6000.md (extzvdi_internal2): Use cc_reg_operand.
10648         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Expand comment.
10649
10650 2015-05-19  Sameera Deshpande  <Sameera.Deshpande@imgtec.com>
10651
10652         * config/mips/mips.md (JOIN_MODE): New mode iterator.
10653         (join2_load_Store<JOIN_MODE:mode>): New pattern.
10654         (join2_loadhi): Likewise.
10655         (define_peehole2): Add peephole2 patterns to join 2 HI/SI/SF/DF-mode
10656         load-load and store-stores.
10657         * config/mips/mips.opt (mload-store-pairs): New option.
10658         (TARGET_LOAD_STORE_PAIRS): New macro.
10659         * config/mips/mips.h (ENABLE_LD_ST_PAIRS): Likewise.
10660         * config/mips/mips-protos.h (mips_load_store_bonding_p): New prototype.
10661         * config/mips/mips.c (mips_load_store_bonding_p): New function.
10662
10663 2015-05-19  Mikhail Maltsev  <maltsevm@gmail.com>
10664
10665         * bb-reorder.c (fix_up_fall_thru_edges): Use std::swap instead of
10666         explicit swaps.
10667         * dojump.c (do_compare_rtx_and_jump): Likewise.
10668         * expmed.c (emit_store_flag_1): Likewise.
10669         * fibonacci_heap.h (fibonacci_heap::union_with): Likewise.
10670         * final.c (sprint_ul): Use std::reverse for reversing a string.
10671         * fold-const.c (extract_muldiv_1): Use std::swap.
10672         * genmodes.c (emit_mode_int_n): Likewise.
10673         * ifcvt.c (dead_or_predicable): Likewise.
10674         * ira-build.c (ira_merge_live_ranges): Likewise.
10675         (swap_allocno_copy_ends_if_necessary): Likewise.
10676         * ira.c (ira_setup_alts): Likewise.
10677         * loop-iv.c (iv_analyze_expr): Likewise.
10678         (implies_p): Likewise.
10679         (canon_condition): Likewise.
10680         * lra-constraints.c (swap_operands): Likewise.
10681         * lra-lives.c (lra_merge_live_ranges): Likewise.
10682         * omega.c (swap): Remove.
10683         (bswap): Remove.
10684         (omega_unprotect_1): Use std::swap.
10685         (omega_solve_geq): Likewise.
10686         * optabs.c (expand_binop_directly): Likewise.
10687         (expand_binop): Likewise.
10688         (emit_conditional_move): Likewise.
10689         (emit_conditional_add): Likewise.
10690         * postreload.c (reload_cse_simplify_operands): Likewise.
10691         * reg-stack.c (emit_swap_insn): Likewise.
10692         (swap_to_top): Likewise.
10693         (compare_for_stack_reg): Likewise.
10694         (subst_asm_stack_regs): Likewise.
10695         * reload.c (find_reloads): Likewise.
10696         * reload1.c (gen_reload_chain_without_interm_reg_p): Likewise.
10697         * sel-sched.c (invoke_reorder_hooks): Likewise.
10698         (create_block_for_bookkeeping): Likewise.
10699         * tree-data-ref.c (lambda_matrix_row_exchange): Remove.
10700         (lambda_matrix_right_hermite): Use std::swap.
10701         * tree-ssa-coalesce.c (sort_coalesce_list): Likewise.
10702         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
10703         * tree-ssa-loop-ivopts.c (iv_ca_delta_reverse): Likewise.
10704         * tree-ssa-math-opts.c (is_widening_mult_p): Likewise.
10705         * tree-ssa-phiopt.c (hoist_adjacent_loads): Likewise.
10706         * tree-ssa-reassoc.c (linearize_expr_tree): Likewise.
10707         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
10708         * tree-vrp.c (compare_ranges): Likewise.
10709         * var-tracking.c (add_with_sets): Likewise.
10710         (vt_find_locations): Likewise.
10711
10712 2015-05-18  Andreas Tobler  <andreast@gcc.gnu.org>
10713
10714         * config/freebsd-spec.h (FBSD_STARTFILE_SPEC): Add the bits to build
10715         pie executables.
10716         (FBSD_ENDFILE_SPEC): Likewise.
10717         * config/i386/freebsd.h (STARTFILE_SPEC): Remove and use the one from
10718         config/freebsd-spec.h.
10719         (ENDFILE_SPEC): Likewise.
10720
10721 2015-05-18  Uros Bizjak  <ubizjak@gmail.com>
10722             Richard Henderson  <rth@redhat.com>
10723
10724         PR target/57032
10725         * config/alpha/constraints.md (Q): Rewrite as define_memory_constraint.
10726         Check for a memory location that is not a reference (using an AND)
10727         to an unaligned location here.
10728         * config/alpha/predicates.md (normal_memory_operand): Remove.
10729
10730 2015-05-18  Alex Velenko  <Alex.Velenko@arm.com>
10731
10732         * config/arm/arm.md (andsi_not_shiftsi_si_scc): New pattern.
10733         (andsi_not_shiftsi_si_scc_no_reuse): New pattern.
10734
10735 2015-05-18  Robert Suchanek  <robert.suchanek@imgtec.com>
10736
10737         * config/mips/mips.c (micromips_globals): New variable.
10738         (mips_set_compression_mode): Save and reinitialize target-dependent
10739         state for microMIPS.
10740
10741 2015-05-18  Martin Liska  <mliska@suse.cz>
10742
10743         * dbgcnt.def: Add new counter.
10744         * ipa-icf.c (sem_item_optimizer::merge_classes): Use the counter.
10745
10746 2015-05-18  Martin Liska  <mliska@suse.cz>
10747
10748         * dbgcnt.def: Sort counters.
10749         * opts.c (common_handle_option): Do not compile if
10750         -fdbg-cnt-list is enabled.
10751
10752 2015-05-18  Tom de Vries  <tom@codesourcery.com>
10753
10754         * gimplify.c (gimplify_modify_expr): Remove do_deref handling.
10755         (gimplify_va_arg_expr): Remove do_deref handling.  Remove adding of
10756         address operator to va_list operand.
10757         * tree-stdarg.c (expand_ifn_va_arg_1): Do deref of va_list operand
10758         unconditionally.
10759         * config/i386/i386.c (ix86_gimplify_va_arg): Remove deref on va_list
10760         operand.
10761         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Same.
10762         * config/s390/s390.c (s390_gimplify_va_arg): Same.
10763         * config/spu/spu.c (spu_gimplify_va_arg_expr): Same.
10764
10765 2015-05-18  Tom de Vries  <tom@codesourcery.com>
10766
10767         * tree-ssa-tail-merge.c: Fix whitespace.
10768
10769 2015-05-17  Jim Wilson  <jim.wilson@linaro.org>
10770
10771         * doc/invoke.texi (ARM Options, mtune): Add generic-armv7-a,
10772         cortex-a17, and cortex-a17.cortex-a7.
10773
10774 2015-05-17  Oleg Endo  <olegendo@gcc.gnu.org>
10775
10776         PR target/54236
10777         * config/sh/sh.md (*addc_2r_t): Use ashift instead of mult.
10778
10779 2015-05-17  Uros Bizjak  <ubizjak@gmail.com>
10780
10781         PR target/66174
10782         * config/i386/i386.c (expand_vec_perm_blend): Enable HImode and
10783         QImode inner modes for TARGET_AVX512BW.  Force mask operand
10784         to a register for AVX512F modes.
10785
10786 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
10787
10788         * toplev.c (emit_debug_global_declarations): Do not output debug info
10789         when doing slim LTO objects.
10790
10791 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
10792
10793         * ipa-utils.h (warn_types_mismatch, odr_or_derived_type_p,
10794         odr_types_equivalent_p): Declare.
10795         (odr_type_p): Use gcc_checking_assert.
10796         (type_in_anonymous_namespace_p) Declare.
10797         (type_with_linkage_p): Declare.
10798         * common.opt (Wlto-type-mismatch): New warning.
10799         * ipa-devirt.c (compound_type_base): New function.
10800         (odr_or_derived_type_p): New function.
10801         (odr_types_equivalent_p): New function.
10802         (add_type_duplicate): Simplify.
10803         (type_with_linkage_p): Add hack to prevent false positives on C types
10804         (type_in_anonymous_namespace_p): Likewise.
10805         * tree.c (need_assembler_name_p): Use type_with_linkage.
10806         * tree.h (type_in_anonymous_namespace_p): Remove.
10807         * doc/invoke.texi (-Wlto-type-mismatch): Document
10808
10809 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
10810
10811         * tree.c (verify_type_variant): Verify tree_base and type_common flags.
10812         (verify_type): Verify STRING_FLAG.
10813
10814 2015-05-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10815
10816         PR fortran/44054
10817         * tree-pretty-print.c (percent_K_format): Replace locus pointer
10818         with accessor function.
10819         * tree-diagnostic.c (diagnostic_report_current_function): Use
10820         diagnostic_location function.
10821         (maybe_unwind_expanded_macro_loc): Likewise.
10822         (virt_loc_aware_diagnostic_finalizer): Likewise.
10823         (default_tree_printer): Replace locus pointer with accessor function.
10824         * diagnostic.c (diagnostic_initialize): Initialize caret_chars array.
10825         (diagnostic_set_info_translated): Initialize second location.
10826         (diagnostic_build_prefix): Use CARET_LINE_MARGIN.
10827         (diagnostic_show_locus): Handle two locations. Call
10828         diagnostic_print_caret_line.
10829         (diagnostic_print_caret_line): New.
10830         (default_diagnostic_starter): Use diagnostic_location function.
10831         (diagnostic_report_diagnostic): Use diagnostic_location function.
10832         (verbatim): Do not set text.locus.
10833         * diagnostic.h (struct diagnostic_info): Remove location field.
10834         (struct diagnostic_context): Make caret_chars an array of two.
10835         (diagnostic_location): New inline.
10836         (diagnostic_expand_location): Handle two locations.
10837         (diagnostic_same_line): New inline.
10838         (diagnostic_print_caret_line): Declare.
10839         (CARET_LINE_MARGIN): New constant.
10840         * pretty-print.c (pp_printf): Do not set text.locus.
10841         (pp_verbatim): Do not set text.locus.
10842         * pretty-print.h (MAX_LOCATIONS_PER_MESSAGE): New constant.
10843         (struct text_info): Replace locus pointer with locations
10844         array. Add accessor functions.
10845
10846 2015-05-16  Kugan Vivekanandarajah  <kuganv@linaro.org>
10847             Zhenqiang Chen  <zhenqiang.chen@linaro.org>
10848
10849         PR target/65768
10850         * config/arm/arm.h (DONT_EARLY_SPLIT_CONSTANT): New macro.
10851         * config/arm/arm.md (subsi3, andsi3, iorsi3, xorsi3, movsi): Keep some
10852          large constants in register instead of splitting them.
10853
10854 2015-05-16  Uros Bizjak  <ubizjak@gmail.com>
10855
10856         PR target/66140
10857         * config/alpha/alpha.c (get_aligned_mem): Also look for reload
10858         replacements in memory addresses.
10859         (get_unaligned_address): Ditto.
10860
10861 2015-05-16  James Bowman  <james.bowman@ftdichip.com>
10862
10863         * config/ft32/*: New files for FT32 port.
10864         * doc/install.texi: Add FT32 information.
10865         * doc/invoke.texi: Add FT32 information.
10866         * doc/md.texi: Add FT32 information.
10867         * doc/contrib.texi: Self added.
10868
10869 2015-05-15  Marc Glisse  <marc.glisse@inria.fr>
10870
10871         PR tree-optimization/64454
10872         * match.pd ((X % Y) % Y, (X % Y) < Y): New patterns.
10873         (-1 - A -> ~A): Remove unnecessary condition.
10874
10875 2015-05-15  Gregor Richards  <gregor.richards@uwaterloo.ca>
10876
10877         * config/i386/linux.h (MUSL_DYNAMIC_LINKER): Define.
10878         * config/i386/linux64.h (MUSL_DYNAMIC_LINKER32): Define.
10879         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32): Define.
10880
10881 2015-05-15  Ilya Enkovich  <ilya.enkovich@intel.com>
10882
10883         * ipa-chkp.h (chkp_wrap_function): New.
10884         * ipa-chkp.c (chkp_wrap_function): Remove 'static'.
10885         (chkp_wrap_function_name): New.
10886         (chkp_build_instrumented_fndecl): Use chkp_wrap_function_name
10887         to get wrapper name.
10888         * lto-cgraph.c: Include ipa-chkp.h.
10889         (input_cgraph_1): Avoid alias chain for wrappers.
10890
10891 2015-05-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
10892
10893         PR middle-end/66134
10894         * tree-chkp.c (chkp_get_orginal_bounds_for_abnormal_copy): New.
10895         (chkp_maybe_copy_and_register_bounds): Don't copy abnormal copy.
10896
10897 2015-05-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10898
10899         * config/aarch64/aarch64.h (AARCH64_TUNE_SLOWMUL): Delete.
10900         (AARCH64_FL_SLOWMUL): Delete.
10901         (AARCH64_FL_CRC): Redefine to 1<<3.
10902         (AARCH64_FL_USE_FMA_STEERING_PASS): Redefine to 1<<4.
10903
10904 2015-05-15  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10905
10906         * config/arm/arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Add appropriate
10907         casting.
10908
10909 2015-05-15  Uros Bizjak  <ubizjak@gmail.com>
10910
10911         * config/alpha/alpha.md (extendqidi2): Use general_operand
10912         instead of some_operand for operand[1] predicate.
10913         (extendhidi2): Ditto.
10914         (cbranchdi4): Use general_operand instead of some_operand
10915         for operand[1] and operands[2] predicates.
10916         (cstoredi4): Ditto.
10917         * config/alpha/predicates.md (some_operand): Remove unused predicate.
10918         (some_ni_operand): Ditto.
10919
10920 2015-05-15  Uros Bizjak  <ubizjak@gmail.com>
10921
10922         * config/alpha/alpha.c (alpha_extract_integer): Do not handle
10923         CONST_WIDE_INT and CONST_DOUBLE.  Assert CONST_INT_P (x).
10924         (alpha_legitimate_constant_p) <case CONST_WIDE_INT>: Check high and
10925         low part of the constant using alpha_emit_set_const_1.
10926         (alpha_expand_mov): Do not handle CONST_WIDE_INT and CONST_DOUBLE.
10927
10928 2015-05-14  Rohit Arul Raj  <rohitrulraj@freescale.com>
10929
10930         * varasm.c (output_constant_pool_1): Pass down alignment from
10931         constant pool entry's descriptor to output_constant_pool_2.
10932         (output_object_block): Add comment prior to call to
10933         output_constant_pool_1.
10934
10935 2015-05-14  Vladimir Makarov  <vmakarov@redhat.com>
10936
10937         PR rtl-optimization/65862
10938         * target.def (ira_change_pseudo_allocno_class): New hook.
10939         * targhooks.c (default_ira_change_pseudo_allocno_class): Default
10940         value of the hook.
10941         * targhooks.h (default_ira_change_pseudo_allocno_class): New extern.
10942         * doc/tm.texi.in (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Add the
10943         hook.
10944         * ira-costs.c (find_costs_and_classes): Call the hook and change
10945         classes when it is necessary.
10946         * doc/tm.texi: Update.
10947
10948 2015-05-14  Alexander Monakov  <amonakov@ispras.ru>
10949
10950         * config/i386/i386.md (sibcall_memory): Check that register with
10951         callee address is not also used as one of the arguments, instead
10952         of checking that it is not live after the sibcall.
10953         (sibcall_pop_memory): Ditto.
10954         (sibcall_value_memory): Ditto.
10955         (sibcall_value_pop_memory): Ditto.
10956
10957 2015-05-14  Marc Glisse  <marc.glisse@inria.fr>
10958
10959         * generic-match-head.c (types_match): Handle non-types.
10960         * gimple-match-head.c (types_match): Likewise.
10961         * match.pd: Remove unnecessary TREE_TYPE for types_match.
10962
10963 2015-05-14  Wilco Dijkstra  <wdijkstr@arm.com>
10964
10965         * config/aarch64/aarch64.md (absdi2): Optimize abs expansion.
10966         (csneg3<mode>_insn): Enable expansion of pattern.
10967
10968 2015-05-14  Nick Clifton  <nickc@redhat.com>
10969
10970         * config/rl78/rl78.c (rl78_select_section): Select the correct
10971         default section based upon the category of the decl.
10972
10973 2015-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
10974
10975         PR rtl-optimization/30967
10976         * config/rs6000/rs6000.c (rs6000_rtx_costs): Don't consider
10977         destination mode for the cost of scc patterns.
10978
10979 2015-05-13  Uros Bizjak  <ubizjak@gmail.com>
10980
10981         * config/i386/i386.md (*mul<mode>3_1): Merge with *mulhi3_1
10982         using SWIM248 mode iterator.
10983         (*mulv<mode>4): Use x86_64_sext_operand for operand[2] constraint.
10984         (*mulvhi4): mark operand[1] as commutative.  Use nonimmediate_operand
10985         for operand[2] constraint.
10986         (*mulv<mode>4_1): Merge with *mulvhi4_1 using SWI248 mode iterator.
10987
10988 2015-05-13  Jakub Jelinek  <jakub@redhat.com>
10989
10990         PR middle-end/66133
10991         * omp-low.c (expand_omp_taskreg): For GIMPLE_OMP_TASK expansion,
10992         make sure it is never noreturn, even when the task body does not
10993         return.
10994         (lower_omp_taskreg): For GIMPLE_OMP_TASK, emit GIMPLE_OMP_CONTINUE
10995         right before GIMPLE_OMP_RETURN.
10996         (make_gimple_omp_edges): Accept GIMPLE_OMP_CONTINUE as ->cont
10997         for GIMPLE_OMP_TASK.  For GIMPLE_OMP_RETURN corresponding to
10998         GIMPLE_OMP_TASK add an EDGE_ABNORMAL edge from entry to exit.
10999
11000 2015-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11001
11002         * params.def (PARAM_MAX_POW_SQRT_DEPTH): New param.
11003         * tree-ssa-math-opts.c: Include params.h
11004         (pow_synth_sqrt_info): New struct.
11005         (representable_as_half_series_p): New function.
11006         (get_fn_chain): Likewise.
11007         (print_nested_fn): Likewise.
11008         (dump_fractional_sqrt_sequence): Likewise.
11009         (dump_integer_part): Likewise.
11010         (expand_pow_as_sqrts): Likewise.
11011         (gimple_expand_builtin_pow): Use above to attempt to expand
11012         pow as series of square roots.  Removed now unused variables.
11013
11014 2015-05-13  Uros Bizjak  <ubizjak@gmail.com>
11015
11016         * config/alpha/alpha.c (alpha_emit_set_long_const): Remove c1 argument.
11017         (alpha_extract_integer): Redeclare as static HOST_WIDE_INT.
11018         Remove *p0 and *p1 arguments.  Rewrite function.
11019         (alpha_legitimate_constant_p): Update call to alpha_extract_integer.
11020         (alpha_split_const_mov): Update calls to alpha_extract_integer and
11021         alpha_emit_set_long_const.
11022         (alpha_expand_epilogue): Update calls to alpha_emit_set_long_const.
11023         (alpha_output_mi_thunk_osf): Ditto.
11024         * config/alpha/alpha.md (movti): Do not check operands[1]
11025         for CONST_DOUBLE.
11026
11027 2015-05-13  Richard Biener  <rguenther@suse.de>
11028
11029         PR tree-optimization/66129
11030         * tree-vect-slp.c (vect_build_slp_tree): Make sure all ops are
11031         commutative.
11032         (vect_schedule_slp_instance): Fix typo.
11033
11034 2015-05-13  David Malcolm  <dmalcolm@redhat.com>
11035
11036         * common.opt (fdump-internal-locations): New option.
11037         * input.c: Include diagnostic-core.h.
11038         (get_end_location): New function.
11039         (write_digit): New function.
11040         (write_digit_row): New function.
11041         (dump_location_range): New function.
11042         (dump_labelled_location_range): New function.
11043         (dump_location_info): New function.
11044         * input.h (dump_location_info): New prototype.
11045         * toplev.c (compile_file): Handle flag_dump_locations.
11046
11047 2015-05-13  Eric Botcazou  <ebotcazou@adacore.com>
11048
11049         * gimple-expr.h (is_gimple_constant): Reorder.
11050         * tree-ssa-propagate.c (before_dom_children): Use inline accessor.
11051
11052 2015-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
11053
11054         * combine.c (simplify_set): When generating a CC set, if the
11055         source already is in the correct mode, do not wrap it in a
11056         compare.  Simplify the rest of that code.
11057
11058 2015-05-13  Richard Biener  <rguenther@suse.de>
11059
11060         PR tree-optimization/66123
11061         * tree-ssa-dom.c (propagate_rhs_into_lhs): Check if we found
11062         a taken edge.
11063
11064 2015-05-13  Richard Biener  <rguenther@suse.de>
11065
11066         PR middle-end/66110
11067         * alias.c (alias_sets_conflict_p): Do not treat has_zero_child
11068         specially.
11069         * Makefile.in (dfp.o-warn): Add -Wno-strict-aliasing.
11070
11071 2015-05-13  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
11072
11073         * doc/install.texi: Bump latest automake 1.11 version to 1.11.6.
11074         * aclocal.m4: Regenerated with automake-1.11.6.
11075
11076 2015-05-13  Tom de Vries  <tom@codesourcery.com>
11077
11078         PR tree-optimization/66010
11079         * gimplify.h (gimplify_va_arg_internal): Remove declaration.
11080         * gimplify.c (gimplify_va_arg_internal): Remove and inline into ...
11081         * tree-stdarg.c (expand_ifn_va_arg_1): ... here.  Choose between lval
11082         and rval based on do_deref.
11083
11084 2015-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
11085
11086         PR target/65103
11087         * config/i386/i386.c (ix86_rtx_costs): We want to propagate
11088         link time constants into adress expressions and therefore set
11089         their cost to 0.
11090
11091 2015-05-13  Jakub Jelinek  <jakub@redhat.com>
11092
11093         PR target/66112
11094         * config/i386/i386.md (mulv<mode>4, umulv<mode>4, *umulv<mode>4):
11095         Use SWI248 iterator instead of SWI.
11096         (*mulv<mode>4_1): Use SWI48 instead of SWI.  Simplify output template.
11097         Use eq_attr "alternative" "0" instead of match_test in
11098         length_immediate attribute computation.
11099         (*mulvhi4, *mulvhi4_1): New define_insns.
11100
11101         PR target/66112
11102         * internal-fn.c (get_min_precision): Use UNSIGNED instead of
11103         SIGNED to get precision of non-negative value.
11104
11105 2015-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
11106
11107         PR target/66048
11108         * function.c (diddle_return_value_1): Process bounds first.
11109         * config/i38/i386.c (ix86_function_value_regno_p): Add bnd1
11110         register.
11111
11112 2015-05-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
11113
11114         PR rtl-optimization/64616
11115         * loop-invariant.c (can_move_invariant_reg): New.
11116         (move_invariant_reg): Call above new function to decide whether
11117         instruction can just be moved, skipping creation of temporary
11118         register.
11119
11120 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
11121
11122         PR target/pr66047.c
11123         * i386.c (ix86_function_sseregparm): Only return -1 if local function
11124         with implied regparm is called from -mno-sse function.
11125         (init_cumulative_args): Output error if ix86_function_sseregparm
11126         return -1 and SSE register would be needed.
11127         (function_arg_advance_32): Likewise.
11128         (function_arg_32): Likewise.
11129         * i386.h (ix86_args): Add decl field.
11130
11131 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
11132
11133         PR ipa/65873
11134         * ipa-inline.c (can_inline_edge_p): Allow early inlining of always
11135         inlines across optimization boundary.
11136
11137 2015-05-12  Jason Merrill  <jason@redhat.com>
11138
11139         * config/mmix/mmix.c, config/msp430/msp430.c: Add space between
11140         string literal and macro name.
11141
11142 2015-05-12  Steve Ellcey  <sellcey@imgtec.com>
11143
11144         * config/mips/mips.c (mips_print_operand): Remove 'y' operand code.
11145         * config/mips/mips.md (<GPR:d>lsa): Rewrite with shift operator.
11146         * config/mips/predicates.md (const_immlsa_operand): Remove log call.
11147
11148 2015-05-12  David Malcolm  <dmalcolm@redhat.com>
11149
11150         * doc/invoke.texi (Warning Options): Add -Wmisleading-indentation.
11151         (-Wmisleading-indentation): New option.
11152         * Makefile.in (C_COMMON_OBJS): Add c-family/c-indentation.o.
11153
11154 2015-05-12  Uros Bizjak  <ubizjak@gmail.com>
11155
11156         * config/alpha/alpha.h (TARGET_SUPPORTS_WIDE_INT): New define.
11157         * config/alpha/alpha.c (alpha_rtx_costs): Handle CONST_WIDE_INT.
11158         (alpha_extract_integer): Ditto.
11159         (alpha_legitimate_constant_p): Ditto.
11160         (alpha_split_tmode_pair): Ditto.
11161         (alpha_preferred_reload_class): Add CONST_WIDE_INT.
11162         (alpha_expand_mov): Ditto.
11163         (print_operand): Remove handling of 'H' modifier.
11164         <case 'm'>: Remove CONST_DOUBLE handling.
11165         (summarize_insn): Handle CONST_WIDE_INT.
11166         * config/alpha/alpha.md (*andsi_internal): Remove H constraint.
11167         (anddi3): Ditto.
11168         (movti): Handle CONST_WIDE_INT.
11169         * config/alpha/constraints.md ('H'): Remove constraint definition.
11170         ('G'): Do not match MODE_FLOAT class.
11171         * config/alpha/predicates.md (const0_operand): Also match
11172         const_wide_int.
11173         (non_add_const_operand): Ditto.
11174         (non_zero_const_operand): Ditto.
11175         (some_operand): Ditto.
11176         (input_operand): Ditto.  Handle CONST_WIDE_INT.
11177         (and_operand): Do not match const_double.
11178         * config/alpha/sync.md (fetchop_constr): Remove H constraint.
11179
11180 2015-05-12  Andrew MacLeod  <amacleod@redhat.com>
11181
11182         PR target/65697
11183         * coretypes.h (MEMMODEL_SYNC, MEMMODEL_BASE_MASK): New macros.
11184         (enum memmodel): Add SYNC_{ACQUIRE,RELEASE,SEQ_CST}.
11185         * tree.h (memmodel_from_int, memmodel_base, is_mm_relaxed,
11186         is_mm_consume,is_mm_acquire, is_mm_release, is_mm_acq_rel,
11187         is_mm_seq_cst, is_mm_sync): New accessor functions.
11188         * builtins.c (expand_builtin_sync_operation,
11189         expand_builtin_compare_and_swap): Use MEMMODEL_SYNC_SEQ_CST.
11190         (expand_builtin_sync_lock_release): Use MEMMODEL_SYNC_RELEASE.
11191         (get_memmodel,  expand_builtin_atomic_compare_exchange,
11192         expand_builtin_atomic_load, expand_builtin_atomic_store,
11193         expand_builtin_atomic_clear): Use new accessor routines.
11194         (expand_builtin_sync_synchronize): Use MEMMODEL_SYNC_SEQ_CST.
11195         * optabs.c (expand_compare_and_swap_loop): Use MEMMODEL_SYNC_SEQ_CST.
11196         (maybe_emit_sync_lock_test_and_set): Use new accessors and
11197         MEMMODEL_SYNC_ACQUIRE.
11198         (expand_sync_lock_test_and_set): Use MEMMODEL_SYNC_ACQUIRE.
11199         (expand_mem_thread_fence, expand_mem_signal_fence, expand_atomic_load,
11200         expand_atomic_store): Use new accessors.
11201         * emit-rtl.c (need_atomic_barrier_p): Add additional enum cases.
11202         * tsan.c (instrument_builtin_call): Update check for memory model beyond
11203         final enum to use MEMMODEL_LAST.
11204         * c-family/c-common.c: Use new accessor for memmodel_base.
11205         * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap): Use new
11206         accessors.
11207         * config/aarch64/atomics.md (atomic_load<mode>,atomic_store<mode>,
11208         arch64_load_exclusive<mode>, aarch64_store_exclusive<mode>,
11209         mem_thread_fence, *dmb): Likewise.
11210         * config/alpha/alpha.c (alpha_split_compare_and_swap,
11211         alpha_split_compare_and_swap_12): Likewise.
11212         * config/arm/arm.c (arm_expand_compare_and_swap,
11213         arm_split_compare_and_swap, arm_split_atomic_op): Likewise.
11214         * config/arm/sync.md (atomic_load<mode>, atomic_store<mode>,
11215         atomic_loaddi): Likewise.
11216         * config/i386/i386.c (ix86_destroy_cost_data, ix86_memmodel_check):
11217         Likewise.
11218         * config/i386/sync.md (mem_thread_fence, atomic_store<mode>): Likewise.
11219         * config/ia64/ia64.c (ia64_expand_atomic_op): Add new memmodel cases and
11220         use new accessors.
11221         * config/ia64/sync.md (mem_thread_fence, atomic_load<mode>,
11222         atomic_store<mode>, atomic_compare_and_swap<mode>,
11223         atomic_exchange<mode>): Use new accessors.
11224         * config/mips/mips.c (mips_process_sync_loop): Likewise.
11225         * config/pa/pa.md (atomic_loaddi, atomic_storedi): Likewise.
11226         * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier,
11227         rs6000_post_atomic_barrier): Add new cases.
11228         (rs6000_expand_atomic_compare_and_swap): Use new accessors.
11229         * config/rs6000/sync.md (mem_thread_fence): Add new cases.
11230         (atomic_load<mode>): Add new cases and use new accessors.
11231         (store_quadpti): Add new cases.
11232         * config/s390/s390.md (mem_thread_fence, atomic_store<mode>): Use new
11233         accessors.
11234         * config/sparc/sparc.c (sparc_emit_membar_for_model): Use new accessors.
11235         * doc/extend.texi: Update docs to indicate 16 bits are used for memory
11236         model, not 8.
11237
11238 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
11239
11240         * ipa-devirt.c (type_with_linkage_p): New function.
11241         (type_in_anonymous_namespace_p): Move here from tree.c; assert that
11242         type has linkage.
11243         (odr_type_p): Move here from ipa-utils.h; use type_with_linkage_p.
11244         (can_be_name_hashed_p): Simplify.
11245         (hash_odr_name): Check that type has linkage before checking if it is
11246         anonymous.
11247         (types_same_for_odr): Likewise.
11248         (odr_name_hasher::equal): Likewise.
11249         (odr_subtypes_equivalent_p): Likewise.
11250         (warn_types_mismatch): Likewise.
11251         (get_odr_type): Likewise.
11252         (odr_types_equivalent_p): Fix checking of TYPE_MAIN_VARIANT.
11253         * ipa-utils.h (odr_type_p): Move offline.
11254         * tree.c (need_assembler_name_p): Fix handling of types
11255         without linkages.
11256         (type_in_anonymous_namespace_p): Move to ipa-devirt.c
11257
11258 2015-05-12  David Malcolm  <dmalcolm@redhat.com>
11259
11260         * timevar.c (timevar_enable): Delete in favor of...
11261         (g_timer): New global.
11262         (struct timevar_def): Move to timevar.h inside class timer.
11263         (struct timevar_stack_def): Likewise.
11264         (timevars): Delete global in favor of field "m_timevars" within
11265         class timer in timevar.h
11266         (stack): Likewise, in favor of field "m_stack".
11267         (unused_stack_instances): Likewise, in favor of field
11268         "m_unused_stack_instances".
11269         (start_time): Likewise, in favor of field "m_start_time".
11270         (get_time): Eliminate check for timevar_enable.
11271         (timer::timer): New function, built from part of timevar_init.
11272         (timevar_init): Rewrite idempotency test from using
11273         "timevar_enable" bool to using dynamic allocation of "g_timer".
11274         Move rest of implementation into timer's constructor.
11275         (timevar_push_1): Rename to...
11276         (timer::push): ...this, adding "m_" prefixes to variables that
11277         are now fields of timer.
11278         (timevar_pop_1): Likewise, rename to...
11279         (timer::pop): ...this, and add "m_" prefixes.
11280         (timevar_start): Replace test for "timevar_enable" with one for
11281         "g_timer", and move bulk of implementation to...
11282         (timer::start): ...here, adding "m_" prefixes.
11283         (timevar_stop): Likewise, from here...
11284         (timer::stop): ...to here.
11285         (timevar_cond_start): Likewise, from here...
11286         (timer::cond_start): ...to here.
11287         (timevar_cond_stop): Likewise, from here...
11288         (timer::cond_stop): ...to here.
11289         (validate_phases): Rename to...
11290         (timer::validate_phases): ...this, and add "m_" prefixes.  Make
11291         locals "total" and "tv" const.
11292         (timevar_print): Rename to...
11293         (timer::print): ...this, and add "m_" prefixes.  Make locals
11294         "total" and "tv" const.  Eliminate test for timevar_enable.
11295         * timevar.h (timevar_enable): Eliminate.
11296         (g_timer): New declaration.
11297         (timevar_push_1): Eliminate.
11298         (timevar_pop_1): Eliminate.
11299         (timevar_print): Eliminate.
11300         (class timer): New class.
11301         (timevar_push): Rewrite to use g_timer.
11302         (timevar_pop): Likewise.
11303         * toplev.c (toplev::~toplev): Likewise.
11304
11305 2015-05-12  Richard Earnshaw  <rearnsha@arm.com>
11306
11307         * arm-protos.h (arm_sched_autopref): Delete.
11308         (tune_params): Re-organize, use enums for flag values.
11309         (FUSE_OPS): New macro.
11310         * arm.c (ARM_PREFETCH_NOT_BENEFICIAL): Update.
11311         (ARM_PREFETCH_BENEFICIAL): Likewise.
11312         (ARM_FUSE_NOTHING, ARM_FUSE_MOVW_MOVT): Delete.
11313         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
11314         (arm_xscale_tune, arm_9e_tune, arm_marvell_pj4_tune)
11315         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a8_tune)
11316         (arm_cortex_a7_tune, arm_cortex_a15_tune, arm_cortex_a53_tune)
11317         (arm_cortex_a57_tune,  arm_xgene1_tune, arm_cortex_a5_tune)
11318         (arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune)
11319         (arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune): Use new
11320         format.
11321         (arm_option_override, thumb2_reorg, arm_print_tune_info)
11322         (aarch_macro_fusion_pair_p): Update uses of current_tune.
11323         * arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Likewise.
11324
11325 2015-05-12  Sandra Loosemore  <sandra@codesourcery.com>
11326
11327         * config/nios2/nios2.md (trap, ctrapsi4): Use "trap" instead of
11328         "break".
11329
11330 2015-05-12  Chung-Lin Tang  <cltang@codesourcery.com>
11331             Sandra Loosemore <sandra@codesourcery.com>
11332
11333         * config/nios2/nios2.h (enum reg_class): Add IJMP_REGS enum
11334         value.
11335         (REG_CLASS_NAMES): Add "IJMP_REGS".
11336         (REG_CLASS_CONTENTS): Add new entry for IJMP_REGS.
11337         * config/nios2/nios2.md (indirect_jump,*tablejump): Adjust to
11338         use new "c" register constraint.
11339         * config/nios2/constraint.md (c): New register constraint
11340         corresponding to IJMP_REGS.
11341
11342 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
11343
11344         * config/rs6000/rs6000.md (*rotlsi3_internal4, *rotlsi3_internal5,
11345         *rotlsi3_internal6, rlwinm, 5 unnamed define_insns, and 6
11346         define_splits): Delete, revamp, transmogrify into ...
11347         (*rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
11348         *ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
11349         *lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
11350         New.
11351
11352 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
11353
11354         * config/rs6000/rs6000.md (rs6000_adjust_atomic_subword): Use
11355         gen_ashlsi3 and gen_andsi3 instead of gen_rlwinm.
11356
11357 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
11358
11359         * config/rs6000/rs6000.md (extzv): FAIL for SImode.
11360         (extzvsi_internal, *extzvsi_internal1, *extzvsi_internal2,
11361         *rotlsi3_internal7le, *rotlsi3_internal7be, *rotlsi3_internal8le,
11362         *rotlsi3_internal8be, *rotlsi3_internal9le, *rotlsi3_internal9be,
11363         *rotlsi3_internal10le, *rotlsi3_internal10be, *rotlsi3_internal11le,
11364         *rotlsi3_internal11be, *rotlsi3_internal12le, *rotlsi3_internal12be,
11365         *lshiftrt_internal1le, *lshiftrt_internal1be, *lshiftrt_internal2le,
11366         *lshiftrt_internal2be, *lshiftrt_internal3le, *lshiftrt_internal3be,
11367         *lshiftrt_internal4le, *lshiftrt_internal4be, *lshiftrt_internal5le,
11368         *lshiftrt_internal5be, *lshiftrt_internal5le, *lshiftrt_internal5be,
11369         *rotldi3_internal7le, *rotldi3_internal7be, *rotldi3_internal8le,
11370         *rotldi3_internal8be, *rotldi3_internal9le, *rotldi3_internal9be,
11371         *rotldi3_internal10le, *rotldi3_internal10be, *rotldi3_internal11le,
11372         *rotldi3_internal11be, *rotldi3_internal12le, *rotldi3_internal12be,
11373         *rotldi3_internal13le, *rotldi3_internal13be, *rotldi3_internal14le,
11374         *rotldi3_internal14be, *rotldi3_internal15le, *rotldi3_internal15be,
11375         and 30 corresponding splitters): Delete.
11376
11377 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
11378
11379         * config/rs6000/rs6000.md (define_split for bswaphi): Don't use
11380         zero_extract.
11381
11382 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
11383
11384         * combine.c (recog_for_combine_1): New function, factored out
11385         from recog_for_combine.
11386         (change_zero_ext): New function.
11387         (recog_for_combine): If recog fails, try again with the pattern
11388         modified by change_zero_ext; if that still fails, restore the
11389         pattern.
11390
11391 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
11392
11393         * combine.c (get_undo_marker): New function.
11394         (undo_to_marker): New function, largely factored out from ...
11395         (undo_all): ... this.  Adjust.
11396
11397 2015-05-12  Richard Biener  <rguenther@suse.de>
11398
11399         PR tree-optimization/66101
11400         * tree-ssa-dce.c (remove_dead_stmt): Properly mark loops for
11401         fixup if we turn a loop exit edge to a fallthru edge.
11402
11403 2015-05-12  Richard Biener  <rguenther@suse.de>
11404
11405         PR tree-optimization/37021
11406         * tree-vectorizer.h (struct _slp_tree): Add two_operators flag.
11407         (SLP_TREE_TWO_OPERATORS): New define.
11408         * tree-vect-slp.c (vect_create_new_slp_node): Initialize
11409         SLP_TREE_TWO_OPERATORS.
11410         (vect_build_slp_tree_1): Allow two mixing plus/minus in an
11411         SLP node.
11412         (vect_build_slp_tree): Adjust.
11413         (vect_analyze_slp_cost_1): Likewise.
11414         (vect_schedule_slp_instance): Vectorize mixing plus/minus by
11415         emitting two vector stmts and mixing the results.
11416
11417 2015-05-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>
11418
11419         * call.c (print_z_candidates): Remove dead code.
11420
11421 2015-05-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11422
11423         * config/s390/2827.md: Split zEC12_simple into zEC12_simple_int
11424         and zEC12_simple_fp.
11425         * config/s390/s390.c (s390_issue_rate): Set issue rate for zEC12
11426         to 1.
11427
11428 2015-05-12  Tom de Vries  <tom@codesourcery.com>
11429
11430         PR tree-optimization/66010
11431         * gimplify.c (gimplify_modify_expr): Handle new do_deref argument of
11432         ifn_va_arg.
11433         * gimplify.h (gimplify_va_arg_internal): Remove loc parameter.
11434         (gimplify_va_arg_internal): Remove loc parameter.  Assert no array-typed
11435         va_lists are passed, and remove corresponding handling.
11436         (gimplify_va_arg_expr): Only take address of ap if necessary.  Add
11437         do_deref argument to ifn_va_arg.
11438         * tree-stdarg.c (expand_ifn_va_arg_1): Handle new do_deref argument of
11439         ifn_va_arg.
11440
11441 2015-05-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11442
11443         PR target/65955
11444         * config/arm/arm.md (movcond_addsi): Check that operands[2] is a
11445         REG before taking its REGNO.
11446
11447 2015-05-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
11448
11449         * combine.c i(set_nonzero_bits_and_sign_copies): Split code updating
11450         rsp->sign_bit_copies and rsp->nonzero_bits into ...
11451         (update_rsp_from_reg_equal): This.  Also use REG_EQUAL note on src if
11452         present to get more accurate information about the number of sign bit
11453         copies and non zero bits.
11454
11455 2015-05-12  Richard Biener  <rguenther@suse.de>
11456
11457         * tree-vect-slp.c (vect_build_slp_tree_1): For BB vectorization
11458         do not allow unrolling.
11459
11460 2015-05-11  Richard Henderson  <rth@redhat.com>
11461
11462         * config/i386/i386-modes.def (CCP): New.
11463         * config/i386/i386.c (put_condition_code): Handle it.
11464         (ix86_match_ccmode, ix86_cc_modes_compatible): Likewise.
11465
11466 2015-05-11  Richard Henderson  <rth@redhat.com>
11467
11468         * target.def (md_asm_clobbers): Replace with...
11469         (md_asm_adjust): this.
11470         * tm.texi.in (TARGET_MD_ASM_CLOBBERS): Remove.
11471         (TARGET_MD_ASM_ADJUST): New.
11472         * tm.texi: Rebuild.
11473         * hooks.c (hook_tree_tree_tree_tree_3rd_identity): Remove.
11474         * hooks.h (hook_tree_tree_tree_tree_3rd_identity): Remove.
11475         * system.h (TARGET_MD_ASM_CLOBBERS): Poison.
11476
11477         * cfgexpand.c (check_operand_nalternatives): Accept vector of
11478         constraints instead of lists of outputs and inputs.
11479         (expand_asm_stmt): Save and restore input_location around the
11480         body of the function.  Move asm data into vectors instead of
11481         building tree lists.  Generate cleanup sequences as needed,
11482         rather than waiting til the end.  Use new md_asm_adjust hook.
11483
11484         * config/vxworks.c: Include vec.h before target.h.
11485         * gimple.c: Likewise.
11486         * incpath.c: Likewise.
11487         * mode-switching.c: Likewise.
11488
11489         * config/cris/cris.c (cris_md_asm_clobbers): Convert to...
11490         (cris_md_asm_adjust): this.
11491         (TARGET_MD_ASM_CLOBBERS): Remove.
11492         (TARGET_MD_ASM_ADJUST): New.
11493         * config/i386/i386.c (ix86_md_asm_clobbers): Convert to...
11494         (ix86_md_asm_adjust): this.
11495         (TARGET_MD_ASM_CLOBBERS): Remove.
11496         (TARGET_MD_ASM_ADJUST): New.
11497         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): Convert to...
11498         (mn10300_md_asm_adjust): this.
11499         (TARGET_MD_ASM_CLOBBERS): Remove.
11500         (TARGET_MD_ASM_ADJUST): New.
11501         * config/rs6000/rs6000.c (rs6000_md_asm_clobbers): Convert to...
11502         (rs6000_md_asm_adjust): this.
11503         (TARGET_MD_ASM_CLOBBERS): Remove.
11504         (TARGET_MD_ASM_ADJUST): New.
11505         * config/visium/visium.c (visium_md_asm_clobbers): Convert to...
11506         (visium_md_asm_adjust): this.
11507         (TARGET_MD_ASM_CLOBBERS): Remove.
11508         (TARGET_MD_ASM_ADJUST): New.
11509
11510 2015-05-11  Richard Henderson  <rth@redhat.com>
11511
11512         * gimplify.c (gimplify_asm_expr): Set gimple_asm_volatile_p
11513         if noutputs is zero.
11514         * cfgexpand.c (expand_asm_stmt): Use gimple_asm_volatile_p unchanged.
11515
11516         * cfgexpand.c (expand_asm_operands): Merge into...
11517         (expand_asm_stmt): ... here.
11518
11519         * cfgexpand.c (expand_asm_operands): Don't call
11520         resolve_asm_operand_names.
11521         * stmt.c (resolve_asm_operand_names): Clarify block comment.
11522
11523 2015-05-11  Jan Hubicka  <hubicka@ucw.cz>
11524
11525         * dwarf2out.c (gen_member_die): Sanity check that we access
11526         TYPE_MAIN_VARIANT for TYPE_METHODS.
11527         * function.c (use_register_for_decl): Look for TYPE_MAIN_VARIANT when
11528         checking TYPE_METHODS.
11529         * tree.c (free_lang_data_in_type): See TYPE_METHODS to error_mark_node
11530         if non-null.
11531         (build_distinct_type_copy): Clear TYPE_METHODS.
11532         (verify_type_variant): Verify that TYPE_METHODS is NULL for variants.
11533         (verify_type): Allow TYPE_METHODS to be error_mark_node.
11534         * tree.def: Update docs of TYPE_STUB_DECL and TYPE_METHODS.
11535
11536 2015-05-11  Eric Botcazou  <ebotcazou@adacore.com>
11537
11538         * emit-rtl.c (emit_pattern_after_setloc): Add missing guard.
11539         (emit_pattern_before_setloc): Likewise.
11540
11541 2015-05-11  Richard Sandiford  <richard.sandiford@arm.com>
11542
11543         * genrecog.c (match_pattern_1): Expect the pattern to be a SEQUENCE
11544         for define_peephole2s.
11545         (get_peephole2_pattern): New function.
11546         (main): Use it.  Call validate_pattern.
11547
11548 2015-05-11  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
11549
11550         * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Use
11551         LAST_CALLEE_SAVED_REG instead of hard-coded register number.
11552         (Last callee saved reg is different for AVR_TINY architecture)
11553
11554 2015-05-11  Uros Bizjak  <ubizjak@gmail.com>
11555
11556         * config/i386/i386.c (ix86_loop_unroll_adjust): Use PATTERN (insn)
11557         when looking for memory references.
11558
11559 2015-05-11  Alexander Monakov  <amonakov@ispras.ru>
11560
11561         PR target/65753
11562         * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow PIC sibcalls
11563         via function pointers.
11564
11565 2015-05-11  Alexander Monakov  <amonakov@ispras.ru>
11566
11567         * calls.c (prepare_call_address): Transform PLT call to GOT lookup and
11568         indirect call by forcing address into a pseudo with -fno-plt.
11569         * common.opt (flag_plt): New option.
11570         * doc/invoke.texi (Code Generation Options): Add -fno-plt.
11571         ([-fno-plt]): Document.
11572
11573 2015-05-11  Markus Trippelsdorf  <markus@trippelsdorf.de>
11574
11575         PR bootstrap/66105
11576         * config/rs6000/option-defaults.h: Add space between string literal
11577         and macro name.
11578
11579 2015-05-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>
11580
11581         * gcc.target/arm/pr64616.c: Test dump rather than assembly to work
11582         accross ARM targets.
11583
11584 2015-05-11  Christian Bruel  <christian.bruel@st.com>
11585
11586         * config/arm/arm-protos.h (thumb_code, thumb1_code): Remove.
11587         * config/arm/vxworks.h (thumb_code): Replace with TARGET_THUMB.
11588
11589 2015-05-11  Richard Sandiford  <richard.sandiford@arm.com>
11590
11591         PR rtl-optimization/66076
11592         * rtlanal.c (generic_subrtx_iterator <T>::add_single_to_queue):
11593         Don't grow the heap array if it is already big enough from a
11594         previous iteration.
11595
11596 2015-05-11  Christian Bruel  <christian.bruel@st.com>
11597
11598         * config/arm/arm-protos.h (arm_declare_function_name): Declare.
11599         (is_called_in_ARM_mode): Remove.
11600         * config/arm/arm.c (is_called_in_ARM_mode): Declare static bool.
11601         (arm_declare_function_name): Moved from from ARM_DECLARE_FUNCTION_NAME.
11602         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Call
11603          arm_declare_function_name.
11604
11605 2015-05-11  Christian Bruel  <christian.bruel@st.com>
11606
11607         * config/arm/arm.c (arm_option_override): Reoganized and split into :
11608         (arm_option_params_internal); New function.
11609         (arm_option_check_internal): New function.
11610         (arm_option_override_internal): New function.
11611         (thumb_code, thumb1_code): Remove.
11612         * config/arm/arm.h (TREE_TARGET_THUMB, TREE_TARGET_THUMB1): New macros.
11613         (TREE_TARGET_THUM2, TREE_TARGET_ARM): Likewise.
11614         (thumb_code, thumb1_code): Remove.
11615         * config/arm/arm.md (is_thumb, is_thumb1): Check TARGET flag.
11616
11617 2015-05-11  Uros Bizjak  <ubizjak@gmail.com>
11618
11619         * config/alpha/alpha.c (alpha_emit_set_const_1)
11620         (alpha_emit_set_long_const, alpha_extract_integer)
11621         (alpha_legitimate_constant_p, alpha_split_const_mov)
11622         (alpha_expand_block_clear, alpha_expand_zap_mask, print_operand):
11623         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
11624         (alpha_emit_set_const_1): Change "(HOST_WIDE_INT) 1" to
11625         HOST_WIDE_INT_1U.
11626         * config/alpha/predicates.md (mode_mask_operand): Do not match
11627         const_double RTX.
11628         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
11629         * config/alpha/alpha.md (abstf, *abstf_internal, UNSPEC_ZAP splitter):
11630         Change "(HOST_WIDE_INT) 1" to HOST_WIDE_INT_1U.
11631         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
11632         (*negtf_internal): Use gen_int_mode instead of immed_double_const.
11633
11634 2015-05-11  Jakub Jelinek  <jakub@redhat.com>
11635
11636         PR target/65780
11637         * config/s390/linux.h (TARGET_BINDS_LOCAL_P): Define to
11638         default_binds_local_p_2.
11639         * config/arm/linux-elf.h (TARGET_BINDS_LOCAL_P): Likewise.
11640         * config/aarch64/aarch64-linux.h (TARGET_BINDS_LOCAL_P): Likewise.
11641
11642 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
11643
11644         * tree.c (verify_type_variant): Check TYPE_VALUES_RAW and TYPE_PRECISION
11645
11646 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
11647
11648         Patch by Richard Biener
11649         * coverage.c (coverage_obj_init): Delay building of type variant
11650         until the type is finished.
11651
11652 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
11653
11654         * ipa-devirt.c (warn_types_mismatch): Do not ICE when warning about
11655         mismatch between C and C++ type; compoare correctly ARG_TYPES
11656         for non-prototypes and output correctly parameter index for METHOD_TYPE.
11657         (odr_types_equivalent_p): Fix wording of warning about attributes;
11658         it is OK to match prototype and non-prototype.
11659
11660 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
11661
11662         * tree.c (free_lang_data_in_type): Free TREE_PURPOSE of
11663         TYPE_ARG_TYPES list.
11664         (verify_type): Permit non-NULL TREE_PURPOSE in non-LTO builds.
11665         * tree.def (FUNCTION_TYPE): Document TREE_PURPOSE in TYPE_ARG_TYPES
11666
11667 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
11668
11669         * tree.c (verify_type): Verify TYPE_BINFO and TYPE_VALUES_RAW.
11670         * tree.h (is_lang_specific): Constify.
11671
11672 2015-05-09  Marc Glisse  <marc.glisse@inria.fr>
11673
11674         PR tree-optimization/64454
11675         * tree-vrp.c (extract_range_from_binary_expr_1) <TRUNC_MOD_EXPR>:
11676         Rewrite.
11677
11678 2015-05-08  Jason Merrill  <jason@redhat.com>
11679
11680         * bitmap.c, c/c-aux-info.c, cfg.c, cfghooks.c, cgraph.c,
11681         config/aarch64/aarch64.md config/alpha/vms.h, config/darwin.c,
11682         config/darwin.h, config/darwin9.h, config/elfos.h,
11683         config/i386/bsd.h, config/ia64/ia64.c, config/lm32/lm32.h,
11684         config/microblaze/microblaze.h, config/mips/mips.h,
11685         config/mmix/mmix.c, config/msp430/msp430.c, config/nios2/nios2.h,
11686         config/nvptx/nvptx.c, config/nvptx/nvptx.h, config/pa/pa.c,
11687         config/pa/pa.h, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
11688         config/rs6000/xcoff.h, config/rx/rx.h, config/s390/s390.h,
11689         config/sparc/sol2.h, config/sparc/sparc.h, config/visium/visium.h,
11690         cppbuiltin.c, defaults.h, doc/invoke.texi, dwarf2cfi.c,
11691         dwarf2out.c, final.c, gcc.c, gcov-dump.c, gcov.c, ipa-cp.c,
11692         ipa-inline.c, ipa-polymorphic-call.c, ipa-profile.c, ipa-prop.c,
11693         ira-color.c, ira.c, loop-doloop.c, loop-iv.c, mcf.c,
11694         modulo-sched.c, predict.c, profile.c, stor-layout.c, toplev.c,
11695         tree-ssa-reassoc.c, value-prof.c, wide-int-print.cc: Add space
11696         between string literal and macro name.
11697
11698 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11699
11700         * jump.c: Change argument types to rtx_insn *.
11701         * rtl.h: Adjust.
11702
11703 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11704
11705         * lra-constraints.c: Change argument type to rtx_insn *.
11706
11707 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11708
11709         * df-problems.c: Change argument type to rtx_insn *.
11710
11711 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11712
11713         * combine.c: Change argument type to rtx_insn *.
11714
11715 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11716
11717         * rtl.h: Adjust.
11718         * rtlanal.c: Change argument type to rtx_insn *.
11719
11720 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11721
11722         * sched-deps.c: Change argument types to rtx_insn *.
11723         * sched-int.h: Adjust.
11724
11725 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11726
11727         * dwarf2cfi.c: Change argument type to rtx_insn *.
11728
11729 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11730
11731         * ira.c (decrease_live_ranges_number): Changetype of local
11732         variable to rtx_insn *.
11733         * recog.c: Change argument types to rtx_insn *.
11734         * recog.h: Adjust.
11735
11736 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11737
11738         * reorg.c: Change argument types to rtx_insn *.
11739
11740 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11741
11742         * ira-color.c: Change argument types to rtx_insn *.
11743         * lra-eliminations.c: Likewise.
11744         * ira.h: Adjust.
11745
11746 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11747
11748         * gcse.c: Change argument types to rtx_insn *.
11749
11750 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11751
11752         * cse.c (cse_change_cc0_mode): Change argument type to rtx_insn *.
11753
11754 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11755
11756         * emit-rtl.c (emit_debug_insn_before): Change argument type to
11757         rtx_insn *.
11758         * rtl.h: Adjust.
11759
11760 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11761
11762         * emit-rtl.c (emit_note_before): Change argument type to rtx_insn *.
11763         * rtl.h: Adjust.
11764
11765 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11766
11767         * emit-rtl.c (emit_note_after): Change argument type to rtx_insn *.
11768         * rtl.h: Adjust.
11769
11770 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11771
11772         * emit-rtl.c (prev_cc0_setter): Change argument type to rtx_insn *.
11773         * rtl.h: Adjust.
11774
11775 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11776
11777         * rtlanal.c (noop_move_p): Change argument type to rtx_insn *.
11778         * rtl.h: Adjust.
11779
11780 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11781
11782         * rtlanal.c (add_shallow_copy_of_reg_note): Change argument type
11783         to rtx_insn *.
11784         * rtl.h: Adjust.
11785
11786 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11787
11788         * rtlanal.c (remove_reg_equal_equiv_notes): Change argument type
11789         to rtx_insn *.
11790         * rtl.h: Likewise.
11791
11792 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11793
11794         * except.c (can_nonlocal_goto): Change type of argument to
11795         rtx_insn *.
11796         * rtl.h: Adjust.
11797
11798 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11799
11800         * rtlanal.c (computed_jump_p): Cange argument type to rtx_insn *.
11801         * rtl.h: Adjust.
11802
11803 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11804
11805         * rtlanal.c (in_insn_list_p): Renamed from in_expr_list_p.
11806         * cfgrtl.c (can_delete_label_p): Adjust.
11807         * rtl.h: likewise.
11808
11809 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11810
11811         * reorg.c (stop_search_p): Change argument to rtx_insn *.
11812
11813 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11814
11815         * except.c (make_reg_eh_region_note): Change argument to
11816         rtx_insn *.
11817         (make_reg_eh_region_note_nothrow_nononlocal): Likewise.
11818         * except.h: Adjust.
11819
11820 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11821
11822         * mode-switching.c (commit_mode_sets): Change type of local
11823         variable from rtx to rtx_insn *.
11824
11825 2015-05-08  Jim Wilson  <jim.wilson@linaro.org>
11826
11827         * doc/install.texi (--enable-languages): Add missing jit and lto info.
11828         Add ^ to grep command.
11829         * doc/match-and-simplify.texi (GIMPLE API): Add missing fourth tree
11830         arg to last gimple_simplify declaration.  Add missing gimple_build
11831         declaration for built-in function case with four tree args.
11832
11833 2015-05-08  Gregor Richards  <gregor.richards@uwaterloo.ca>
11834             Szabolcs Nagy  <szabolcs.nagy@arm.com>
11835
11836         * config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Define.
11837         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Define.
11838         (GNU_USER_DYNAMIC_LINKERN32): Update.
11839
11840 2015-05-08  Richard Biener  <rguenther@suse.de>
11841
11842         PR tree-optimization/66036
11843         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
11844         Handle strided group loads.
11845         (vect_verify_datarefs_alignment): Likewise.
11846         (vect_enhance_data_refs_alignment): Likewise.
11847         (vect_analyze_group_access): Likewise.
11848         (vect_analyze_data_ref_access): Likewise.
11849         (vect_analyze_data_ref_accesses): Likewise.
11850         * tree-vect-stmts.c (vect_model_load_cost): Likewise.
11851         (vectorizable_load): Likewise.
11852
11853 2015-05-08  Segher Boessenkool  <segher@kernel.crashing.org>
11854
11855         * config/rs6000/rs6000.md: Require operand inequality in one
11856         of the peepholes.
11857
11858 2015-05-08  Richard Sandiford  <richard.sandiford@arm.com>
11859             Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
11860
11861         * config/i386/i386.md (<mode>_ldx, *<mode>_ldx): Remove mode
11862         from (set ...).
11863         * config/rx/rx.md (movdi, movdf): Likewise.
11864         Likewise for define_peephole2s.
11865
11866 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
11867
11868         * config/aarch64/arm_neon.h (vceq_s64, vceq_u64, vceqz_s64, vceqz_u64,
11869         vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64, vcgtz_s64, vcle_s64,
11870         vcle_u64, vclez_s64, vclt_s64, vclt_u64, vcltz_s64, vtst_s64,
11871         vtst_u64): Rewrite using gcc vector extensions.
11872
11873 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
11874
11875         * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>,
11876         vcond<mode><mode>, vcondu<mode><mode>): Add DImode variant.
11877
11878 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
11879
11880         * optabs.c (vector_compare_rtx): Handle RTL operands having VOIDmode.
11881
11882 2015-05-08  Szabolcs Nagy  <szabolcs.nagy@arm.com>
11883
11884         * config/glibc-stdint.h (OPTION_MUSL): Define.
11885         (INT_FAST16_TYPE, INT_FAST32_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE):
11886         Change the definition based on OPTION_MUSL for 64 bit targets.
11887         * config/linux.h (OPTION_MUSL): Redefine.
11888         * config/alpha/linux.h (OPTION_MUSL): Redefine.
11889         * config/rs6000/linux.h (OPTION_MUSL): Redefine.
11890         * config/rs6000/linux64.h (OPTION_MUSL): Redefine.
11891
11892 2015-05-08  Gregor Richards  <gregor.richards@uwaterloo.ca>
11893             Szabolcs Nagy  <szabolcs.nagy@arm.com>
11894
11895         * config.gcc (LIBC_MUSL): New tm_defines macro.
11896         * config/linux.h (OPTION_MUSL): Define.
11897         (MUSL_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER32,)
11898         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32,)
11899         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
11900         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
11901         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
11902         * config/linux.opt (mmusl): New option.
11903         * doc/invoke.texi (GNU/Linux Options): Document -mmusl.
11904         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
11905         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
11906         * configure: Regenerate.
11907
11908 2015-05-08  H.J. Lu  <hongjiu.lu@intel.com>
11909             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
11910
11911         PR target/48904
11912         * config.gcc (x86_64-*-knetbsd*-gnu): Add i386/knetbsd-gnu64.h.
11913         * config/i386/knetbsd-gnu64.h: New file.
11914
11915 2015-05-08  Marek Polacek  <polacek@redhat.com>
11916
11917         PR c/64918
11918         * doc/invoke.texi: Document -Woverride-init-side-effects.
11919
11920 2015-05-07  Marek Polacek  <polacek@redhat.com>
11921
11922         PR c/65179
11923         * doc/invoke.texi: Document -Wshift-negative-value.
11924
11925 2015-05-06  Aditya Kumar  <hiraditya@msn.com>
11926
11927         * gcov-tool.c (do_merge): Refactore to remove int ret.
11928         * ipa-icf.c (sem_item::hash_referenced_symbol_properties): Change
11929         !type == FUNC to type != FUNC.
11930         * reload.h (struct target_reload): Changee to type of
11931         x_spill_indirect_levels from bool to unsigned char.
11932
11933 2015-05-07  Richard Sandiford  <richard.sandiford@arm.com>
11934
11935         * rtl.h (always_void_p): New function.
11936         * gengenrtl.c (always_void_p): Likewise.
11937         (genmacro): Don't add a mode parameter to gen_rtx_foo if rtxes
11938         with code foo are always VOIDmode.
11939         * genemit.c (gen_exp): Update gen_rtx_foo calls accordingly.
11940         * builtins.c, caller-save.c, calls.c, cfgexpand.c, combine.c,
11941         compare-elim.c, config/aarch64/aarch64.c,
11942         config/aarch64/aarch64.md, config/alpha/alpha.c,
11943         config/alpha/alpha.md, config/arc/arc.c, config/arc/arc.md,
11944         config/arm/arm-fixed.md, config/arm/arm.c, config/arm/arm.md,
11945         config/arm/ldrdstrd.md, config/arm/thumb2.md, config/arm/vfp.md,
11946         config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
11947         config/c6x/c6x.md, config/cr16/cr16.c, config/cris/cris.c,
11948         config/cris/cris.md, config/darwin.c, config/epiphany/epiphany.c,
11949         config/epiphany/epiphany.md, config/fr30/fr30.c, config/frv/frv.c,
11950         config/frv/frv.md, config/h8300/h8300.c, config/i386/i386.c,
11951         config/i386/i386.md, config/i386/sse.md, config/ia64/ia64.c,
11952         config/ia64/vect.md, config/iq2000/iq2000.c,
11953         config/iq2000/iq2000.md, config/lm32/lm32.c, config/lm32/lm32.md,
11954         config/m32c/m32c.c, config/m32r/m32r.c, config/m68k/m68k.c,
11955         config/m68k/m68k.md, config/mcore/mcore.c, config/mcore/mcore.md,
11956         config/mep/mep.c, config/microblaze/microblaze.c,
11957         config/mips/mips.c, config/mips/mips.md, config/mmix/mmix.c,
11958         config/mn10300/mn10300.c, config/msp430/msp430.c,
11959         config/nds32/nds32-memory-manipulation.c, config/nds32/nds32.c,
11960         config/nds32/nds32.md, config/nios2/nios2.c, config/nvptx/nvptx.c,
11961         config/pa/pa.c, config/pa/pa.md, config/rl78/rl78.c,
11962         config/rs6000/altivec.md, config/rs6000/rs6000.c,
11963         config/rs6000/rs6000.md, config/rs6000/vector.md,
11964         config/rs6000/vsx.md, config/rx/rx.c, config/rx/rx.md,
11965         config/s390/s390.c, config/s390/s390.md, config/sh/sh.c,
11966         config/sh/sh.md, config/sh/sh_treg_combine.cc,
11967         config/sparc/sparc.c, config/sparc/sparc.md, config/spu/spu.c,
11968         config/spu/spu.md, config/stormy16/stormy16.c,
11969         config/tilegx/tilegx.c, config/tilegx/tilegx.md,
11970         config/tilepro/tilepro.c, config/tilepro/tilepro.md,
11971         config/v850/v850.c, config/v850/v850.md, config/vax/vax.c,
11972         config/visium/visium.c, config/xtensa/xtensa.c, cprop.c, dse.c,
11973         expr.c, gcse.c, ifcvt.c, ira.c, jump.c, lower-subreg.c,
11974         lra-constraints.c, lra-eliminations.c, lra.c, postreload.c, ree.c,
11975         reg-stack.c, reload.c, reload1.c, reorg.c, sel-sched.c,
11976         var-tracking.c: Update calls accordingly.
11977
11978 2015-05-07  Segher Boessenkool  <segher@kernel.crashing.org>
11979
11980         PR middle-end/192
11981         PR middle-end/54303
11982         * varasm.c (function_mergeable_rodata_prefix): New function.
11983         (mergeable_string_section): Use it.
11984         (mergeable_constant_section): Use it.
11985
11986 2015-05-07  Jeff Law  <law@redhat.com>
11987
11988         PR target/39726
11989         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
11990         simplifier to narrow arithmetic.
11991         * generic-match-head.c: (types_match, single_use): New functions.
11992         * gimple-match-head.c: (types_match, single_use): New functions.
11993
11994 2015-05-07  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
11995
11996         * combine.c (make_compound_operation): Remove checks for PLUS/MINUS
11997         rtx type.
11998
11999 2015-05-07  Richard Biener  <rguenther@suse.de>
12000
12001         PR tree-optimization/66002
12002         * passes.def: Schedule another pass_merge_phi after ifcombine, right
12003         before phiopt.
12004
12005 2015-05-07  Marek Polacek  <polacek@redhat.com>
12006             Martin Uecker  <uecker@eecs.berkeley.edu>
12007
12008         * doc/invoke.texi: Document -fsanitize=bounds-strict.
12009         * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS_STRICT, or it
12010         into SANITIZE_NONDEFAULT.
12011         * opts.c (common_handle_option): Handle -fsanitize=bounds-strict.
12012
12013 2015-05-07  Uros Bizjak  <ubizjak@gmail.com>
12014
12015         PR target/66015
12016         * config/alpha/alpha.c (alpha_override_options_after_change): New.
12017         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
12018         (alpha_override_options): Move align_loops, align_jumps and
12019         align_functions handling into alpha_override_options_after_change.
12020
12021 2015-05-06  Sandra Loosemore  <sandra@codesourcery.com>
12022             Chris Jones  <chrisj@nvidia.com>
12023             Joshua Conner  <jconner@nvidia.com>
12024
12025         * config/arm/unknown-elf.h (STARTFILE_SPEC): Add conditional
12026         linking of crtfastmath.o.
12027         * config/arm/linux-eabi.h (STARTFILE_SPEC): Likewise.
12028
12029 2015-05-06  Segher Boessenkool  <segher@kernel.crashing.org>
12030
12031         * config/rs6000/rs6000.md (cstore<mode>4_signed_imm): New expander.
12032         (cstore<mode>4_unsigned_imm): New expander.
12033         (cstore<mode>4): Remove empty constraint strings.  Use the new
12034         expanders.
12035
12036 2015-05-06  Yvan Roux  <yvan.roux@linaro.org>
12037
12038         PR target/64208
12039         * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Cleanup redundant
12040         alternatives.
12041
12042 2015-05-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>
12043
12044         * config/aarch64/geniterators.sh: Use standard BRE in sed.
12045
12046 2015-05-06  Alan Modra  <amodra@gmail.com>
12047
12048         PR target/66033
12049         * config/rs6000/rs6000.md (nop): Use an unspec pattern.
12050         (UNSPEC_NOP): Define.
12051         (reload_vsx_from_gpr<mode>): Add missing DONE.
12052         (reload_gpr_from_vsx<mode>): Likewise.
12053         * config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
12054         (vsx_div_v2di, vsx_udiv_v2di): Likewise.
12055
12056 2015-05-06  Christian Bruel  <christian.bruel@st.com>
12057
12058         PR target/66015
12059         * config/aarch64/aarch64.c (aarch64_override_options): Move align_loops,
12060         align_jumps, align_functions into aarch64_override_options_after_change.
12061
12062 2015-05-06  Richard Biener  <rguenther@suse.de>
12063
12064         * tree-vect-slp.c (vect_supported_load_permutation_p): Use
12065         vect_transform_slp_perm_load to check if we support a permutation
12066         for basic-block vectorization.
12067
12068 2015-05-06  Nick Clifton  <nickc@redhat.com>
12069
12070         * config/rl78/rl78.c (need_to_save): Save register 22 if it is
12071         used, even if it is not being used as a frame pointer.
12072
12073 2015-05-05  Jason Merrill  <jason@redhat.com>
12074
12075         * dwarf2out.c (gen_member_die): Don't emit anything for an
12076         anonymous class constructor.
12077
12078 2015-05-05  David Malcolm  <dmalcolm@redhat.com>
12079
12080         * auto-profile.c (afdo_find_equiv_class): Fix indentation so
12081         that it reflects the block structure.
12082         (afdo_propagate_edge): Likewise.
12083         (afdo_calculate_branch_prob): Likewise.
12084         (afdo_annotate_cfg): Likewise.
12085         * cfgcleanup.c (equal_different_set_p): Likewise.
12086         (try_crossjump_to_edge): Likewise.
12087         * cgraph.c (cgraph_node::verify_node): Likewise.
12088         * cgraphunit.c (expand_all_functions): Likewise.
12089         * config/i386/i386.c (ix86_expand_copysign): Likewise.
12090         (exact_dependency_1): Likewise.
12091         * dwarf2asm.c (dw2_output_indirect_constants): Likewise.
12092         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Likewise.
12093         * gensupport.c (process_define_subst): Likewise.
12094         * lto-wrapper.c (merge_and_complain): Likewise.
12095         * tree-if-conv.c (if_convertible_bb_p): Likewise.
12096         * tree-ssa-loop-prefetch.c (find_or_create_group): Likewise.
12097         * tree-ssa-tail-merge.c (gsi_advance_fw_nondebug_nonlocal): Likewise.
12098         * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
12099         * tree-vect-loop.c (vectorizable_reduction): Likewise.
12100         * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
12101         * tree-vect-stmts.c (vectorizable_shift): Likewise.
12102         * tree-vrp.c (vrp_finalize): Likewise.
12103         * tree.c (variably_modified_type_p): Likewise.
12104
12105 2015-05-05  Jack Howarth  <howarth.at.gcc@gmail.com>
12106
12107         * config.gcc: Use darwin9.h, darwin10.h and darwin12.h
12108         on darwin12 and later.
12109         * config/darwin12.h (LINK_GCC_C_SEQUENCE_SPEC): Add
12110         file to pass -rdynamic on darwin12 and later.
12111         * config/darwin.opt (rdynamic): Add.
12112
12113 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
12114
12115         * doc/extend.texi (C Extensions): Update menu for moved Variable
12116         Attributes and Type Attributes sections.
12117
12118 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
12119
12120         PR target/65990
12121         * config/i386/i386.c (ix86_parse_stringop_strategy_string): Error out
12122         if rep_8byte stringop strategy was specified for 32-bit target.
12123
12124 2015-05-05  Ilya Tocar  <ilya.tocar@intel.com>
12125
12126         PR target/65915
12127         * config/i386/i386.md (vector convert to float spltiter): Check for
12128         xmm16+, when splitting scalar float conversion.
12129         * config/i386/sse.md (sse2_cvtsi2sd): Support EVEX version.
12130
12131 2015-05-05  Nick Clifton  <nickc@redhat.com>
12132
12133         * config/msp430/msp430-opts.h (enum msp430_regions): New.
12134         * config/msp430/msp430.c (msp430_override_options): Complain if
12135         -mcode-region or -mdata-region is used on a non MSP430X.
12136         (msp430_section_attr): New function.  Checks lower, upper and
12137         either attributes.
12138         (msp430_attribute_table): Add lower, upper and either.
12139         (gen_prefix): New function.  Generates a prefix for a section
12140         name.
12141         (msp430_select_section): New function - handles the choice of
12142         section for an object.  Takes into account memory region
12143         attributes and options.
12144         (msp430_function_section): Use gen_prefix.
12145         (TARGET_SECTION_TYPE_FLAGS): Define.
12146         (msp430_section_type_flags): New function.
12147         (TARGET_ASM_UNIQUE_SECTION): Define.
12148         (msp430_unique_section): New function.
12149         (msp430_output_aligned_decl_common): New function.
12150         (msp430_do_not_relax_short_jumps): New function.
12151         * config/msp430/msp430.h (USE_SELECT_SECTION_FOR_FUNCTIONS):
12152         Define.
12153         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
12154         * config/msp430/msp430-protos.h
12155         (msp430_do_not_relax_short_jumps): New prototype.
12156         (msp430_output_aligned_decl_common): New prototype.
12157         * config/msp430/msp430.md (length): New attribute.
12158         (cbranchhi4_real): If msp430_do_not_relax_short_jumps is true
12159         then use a long code sequence for short jumps.
12160         * config/msp430/msp430.opt (mcode-region): New.
12161         (mdata-region): New.
12162         * doc/invoke.texi: Document new options.
12163         * doc/extend.texi: Document new attributes.
12164
12165 2015-05-05  Matthew Wahab  <matthew.wahab@arm.com>
12166
12167         * gcc/config/aarch64-protos.h (struct cpu_branch_cost): New.
12168         (tune_params): Add field branch_costs.
12169         (aarch64_branch_cost): Declare.
12170         * gcc/config/aarch64.c (generic_branch_cost): New.
12171         (generic_tunings): Set field cpu_branch_cost to generic_branch_cost.
12172         (cortexa53_tunings): Likewise.
12173         (cortexa57_tunings): Likewise.
12174         (thunderx_tunings): Likewise.
12175         (xgene1_tunings): Likewise.
12176         (aarch64_branch_cost): Define.
12177         * gcc/config/aarch64/aarch64.h (BRANCH_COST): Redefine.
12178
12179 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
12180
12181         * config/i386/i386.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1
12182         and HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1.
12183         * config/i386/i386.md: Ditto.
12184         * config/i386/winnt.c: Ditto.
12185
12186 2015-05-05  Matthew Wahab  <matthew.wahab@arm.com>
12187
12188         * doc/extend.texi (__atomic Builtins): Move implementation details
12189         to the end of the description, rewrite opening paragraphs, state
12190         difference with __sync builtins, state C11/C++11 assumptions,
12191         weaken itemized descriptions, add explanation of memory model
12192         behaviour, expand description of compare-exchange, simplify text.
12193
12194 2015-05-05  Renlin Li  <renlin.li@arm.com>
12195
12196         * config/aarch64/aarch64.md (add<mode>3): Use mov when allowed.
12197
12198 2015-05-05  Yvan Roux  <yvan.roux@linaro.org>
12199
12200         * config/aarch64/aarch64-elf-raw.h (CA53_ERR_843419_SPEC): Define.
12201         (LINK_SPEC): Include CA53_ERR_843419_SPEC.
12202         * config/aarch64/aarch64-linux.h (CA53_ERR_843419_SPEC): Define.
12203         (LINK_SPEC): Include CA53_ERR_843419_SPEC.
12204         * config/aarch64/aarch64.opt (mfix-cortex-a53-843419): New option.
12205         * configure: Regenerate.
12206         * configure.ac: Add --enable-fix-cortex-a53-843419 option.
12207         * doc/install.texi (aarch64*-*-*): Document new
12208         --enable-fix-cortex-a53-843419 option.
12209         * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-843419
12210         and -mno-fix-cortex-a53-843419 options.
12211
12212 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
12213
12214         PR target/65871
12215         * config/i386/i386.md (*bmi_andn_<mode>_ccno): New pattern.
12216
12217 2015-05-04  Jan Hubicka  <hubicka@ucw.cz>
12218
12219         * tree.c (verify_type): Check various uses of TYPE_MAXVAL;
12220         fix overactive TYPE_MIN_VALUE check and add FIXME for type
12221         compatibility problems.
12222
12223 2015-05-04  Ajit Agarwal  <ajitkum@xilinx.com>
12224
12225         * config/microblaze/microblaze.md (cbranchsi4): Added immediate
12226         constraints.
12227         (cbranchsi4_reg): New.
12228         * config/microblaze/microblaze.c
12229         (microblaze_expand_conditional_branch_reg): New.
12230         * config/microblaze/microblaze-protos.h
12231         (microblaze_expand_conditional_branch_reg): New prototype.
12232
12233 2015-05-04  Ajit Agarwal  <ajitkum@xilinx.com>
12234
12235         * config/microblaze/microblaze.md (peephole2): New.
12236
12237 2015-05-04  Jeff Law  <law@redhat.com>
12238
12239         Revert:
12240         2015-05-04  Jeff Law  <law@redhat.com>
12241
12242         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
12243         simplifier to narrow arithmetic.
12244         * generic-match-head.c: (types_match, single_use): New functions.
12245         * gimple-match-head.c: (types_match, single_use): New functions.
12246
12247 2015-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
12248
12249         PR target/65987
12250         * config/sh/sh.c (output_far_jump): Take into account crossing jumps.
12251         (split_branches): Likewise.
12252
12253 2015-05-04  Sandra Loosemore  <sandra@codesourcery.com>
12254
12255         * common.opt (fdelete-null-pointer-checks): Init to -1.
12256         * config/nios2/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define to
12257         override flag_delete_null_pointer_checks default.
12258         * doc/invoke.texi (-fdelete-null-pointer-checks): Clarify
12259         behavior re address zero.  Better document target-specific behavior.
12260         (-fisolate-errneous-paths-dereference): Mention relationship to
12261         -fdelete-null-pointer-checks.
12262
12263 2015-05-04  Jakub Jelinek  <jakub@redhat.com>
12264
12265         PR tree-optimization/65984
12266         * ubsan.c: Include tree-cfg.h.
12267         (instrument_bool_enum_load): Use stmt_ends_bb_p instead of
12268         stmt_could_throw_p test, rename can_throw variable to ends_bb.
12269
12270 2015-05-04  Uros Bizjak  <ubizjak@gmail.com>
12271
12272         * config/i386/i386.c: Change GET_CODE (...) == CONST_DOUBLE check
12273         to CONST_DOUBLE_P predicate.
12274         (standard_sse_constant_p): Return 0 for !TARGET_SSE.
12275         (ix86_legitimate_constant_p) <case CONST_WIDE_INT>: For 32bit targets,
12276         allow only operands that satisfy standard_sse_constant_p predicate.
12277         * config/i386/i386.md: Change GET_CODE (...) == CONST_DOUBLE check
12278         to CONST_DOUBLE_P predicate.
12279
12280 2015-05-04  Jeff Law  <law@redhat.com>
12281
12282         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
12283         simplifier to narrow arithmetic.
12284         * generic-match-head.c: (types_match, single_use): New functions.
12285         * gimple-match-head.c: (types_match, single_use): New functions.
12286
12287 2015-05-04  Andreas Tobler  <andreast@gcc.gnu.org>
12288
12289         * config/arm/arm.c: Restore bootstrap.
12290
12291 2015-05-04  Uros Bizjak  <ubizjak@gmail.com>
12292
12293         * config/i386/i386.h (TARGET_SUPPORTS_WIDE_INT): New define.
12294         * config/i386/i386.c (ix86_legitimate_constant_p): Handle TImode
12295         as CONST_WIDE_INT, not CONST_DOUBLE.
12296         (ix86_cannot_force_const_mem): Handle CONST_WIDE_INT.
12297         (output_pic_addr_const): Do not handle VOIDmode CONST_DOUBLEs.
12298         (ix86_find_base_term): Do not check for CONST_DOUBLE.
12299         (ix86_print_operand): Do not handle non-FPmode CONST_DOUBLEs.
12300         (ix86_build_signbit_mask): Rewrite using wide ints.
12301         (ix86_split_to_parts) [HOST_BITS_PER_WIDE_INT < 64]: Remove.
12302         (ix86_rtx_costs): Handle CONST_WIDE_INT.
12303         (find_constant): Ditto.
12304         * config/i386/i386.md (bts, btr, btc peepholes): Rewrite
12305         using gen_int_mode.
12306         * config/i386/predicates.md (x86_64_immediate_operand)
12307         <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
12308         (x86_64_zext_immediate_operand): Remove CONST_DOUBLE handling.
12309         <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
12310         (const0_operand): Also match const_wide_int.
12311         (constm1_operand): Ditto.
12312         (const1_operand): Ditto.
12313
12314 2015-05-04  Richard Biener  <rguenther@suse.de>
12315
12316         PR tree-optimization/65965
12317         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Split
12318         store groups at gaps.
12319
12320 2015-05-04  Richard Biener  <rguenther@suse.de>
12321
12322         PR tree-optimization/65935
12323         * tree-vect-slp.c (vect_build_slp_tree): If we swapped operands
12324         then make sure to apply that swapping to the IL.
12325
12326 2015-05-04  Jakub Jelinek  <jakub@redhat.com>
12327
12328         * Makefile.in (PATCHLEVEL_c): New variable.
12329         (DATESTAMP_s, REVISION_s): If PATCHLEVEL_c is not 0,
12330         expand the same way as if DEVPHASE_c was non-empty.
12331
12332 2015-05-04  Kai Tietz  <ktietz@redhat.com>
12333
12334         PR target/65559
12335         * lto-wrapper.c (run_gcc): Open filename
12336         in binary-mode.
12337
12338 2015-05-03  Sandra Loosemore  <sandra@codesourcery.com>
12339
12340         * doc/extend.texi (Variable Attributes, Type Attributes):  Move
12341         sections up in file, to immediately after the Function Attributes
12342         section.
12343
12344 2015-05-02  Jan Hubicka  <hubicka@ucw.cz>
12345
12346         * tree.c (verify_type): Check various uses of TYPE_MINVAL.
12347
12348 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12349
12350         * tree-outof-ssa.c (emit_partition_copy): Return rtx_insn *.
12351         (insert_partition_copy_on_edge): Adjust.
12352         (insert_rtx_to_part_on_edge): Likewise.
12353         (insert_part_to_rtx_on_edge): Likewise.
12354
12355 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12356
12357         * function.c (set_return_jump_label): Change type of argument to
12358         rtx_insn *.
12359         * function.h (set_return_jump_label): Adjust.
12360
12361 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12362
12363         * reload.h (struct reg_equivs_t): Change type of init to
12364         rtx_insn *.
12365         * ira.c (fix_reg_equiv_init): Adjust.
12366         * reload1.c (eliminate_regs_1): Likewise.
12367         (init_eliminable_invariants): Likewise.
12368
12369 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12370
12371         * cselib.c (fp_setter_insn): Take a rtx_insn *.
12372         * cselib.h (fp_setter_insn): Adjust.
12373
12374 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12375
12376         * recog.c (struct validate_replace_src_data): Change type of
12377         insn field to rtx_insn *.
12378         (validate_replace_src_group): Change type of argument to rtx_insn *.
12379         * recog.h (validate_replace_src_group): Adjust.
12380
12381 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12382
12383         * haifa-sched.c: Change the type of some variables to rtx_insn *.
12384         * sched-deps.c: Likewise.
12385         * sched-int.h: Likewise.
12386         * sched-rgn.c: Likewise.
12387         * sel-sched.c: Likewise.
12388
12389 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12390
12391         to rtx_insn *.
12392         * config/i386/i386.c: Change the type of some arguments to
12393         rtx_insn *.
12394         * config/arm/arm.c: Likewise.
12395
12396 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12397
12398         * lra-constraints.c: Change type of some arguments to rtx_insn *.
12399
12400 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12401
12402         * regcprop.c (kill_autoinc_value): Change type of argument to
12403         rtx_insn *.
12404
12405 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12406
12407         * genrecog.c (print_subroutine): Adjust.
12408         * recog.c (get_bool_attr_mask_uncached): Likewise.
12409         * recog.h (struct recog_data_d): Change the type of insn to
12410         rtx_insn *.
12411
12412 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12413
12414         * dwarf2cfi.c (add_cfi_insn): Change type to rtx_insn *.
12415
12416 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12417
12418         * df-problems.c (df_set_note): Change type of argument to
12419         rtx_insn *.
12420
12421 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12422
12423         * builtins.c (expand_builtin_trap): Change type of local
12424         variable to rtx_insn *.
12425         (add_sched_insns_for_speculation): Likewise.
12426         (ix86_emit_save_regs): Likewise.
12427         (get_scratch_register_on_entry): Likewise.
12428         (ix86_emit_restore_reg_using_pop): Likewise.
12429         (ix86_emit_leave): Likewise.
12430         (ix86_emit_restore_regs_using_mov): Likewise.
12431         (ix86_expand_epilogue): Likewise.
12432         Likewise.
12433         (rl78_alloc_physical_registers_umul): Likewise.
12434         * cselib.c (discard_useless_locs): Likewise.
12435         (cselib_invalidate_regno): Likewise.
12436         (cselib_invalidate_mem): Likewise.
12437         * function.c (expand_function_start): Likewise.
12438         (emit_use_return_register_into_block): Likewise.
12439         * gcse.c: Likewise.
12440         * haifa-sched.c (ok_for_early_queue_removal): Likewise.
12441         * ifcvt.c (noce_get_alt_condition): Likewise.
12442         * loop-doloop.c (doloop_condition_get): Likewise.
12443         * lra-constraints.c (inherit_in_ebb): Likewise.
12444         * modulo-sched.c (sms_schedule_by_order): Likewise.
12445         * recog.c (next_insn_tests_no_inequality): Likewise.
12446         * reorg.c (emit_delay_sequence): Likewise.
12447         (update_reg_dead_notes): Likewise.
12448         (fix_reg_dead_note): Likewise.
12449         (fill_slots_from_thread): Likewise.
12450         (delete_computation): Likewise.
12451
12452 2015-05-01  Sandra Loosemore  <sandra@codesourcery.com>
12453
12454         * doc/extend.texi (Variable Attributes): Add menu and proper
12455         @nodes to subsections.  Move Microsoft Windows attributes to
12456         their own subsection.
12457         (Type Attributes): Reorganize introduction to remove duplicate
12458         list of attributes.  Add menu and proper @nodes to subsections.
12459         Alphabetize the main table of common attributes.
12460
12461 2015-05-01  Rasmus Villemoes  <rv@rasmusvillemoes.dk>
12462
12463         * match.pd: New simplification patterns.
12464         (x + (x & 1))  -> ((x + 1) & ~1)
12465         (x & ~(x & y)) -> ((x & ~y))
12466         (x | ~(x | y)) -> ((x | ~y))
12467
12468 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12469
12470         * target.def (attribute_table): Mention that struct attribute_spec
12471         is defined in tree-core.h rather than tree.h
12472         * doc/tm.texi: Regenerate.
12473
12474 2015-05-01  Richard Sandiford  <richard.sandiford@arm.com>
12475
12476         * genrecog.c (test): Rename to rtx_test.  Update rest of file
12477         accordingly.
12478
12479 2015-05-01  Andreas Schwab  <schwab@linux-m68k.org>
12480
12481         PR translation/65959
12482         * params.h (DEFPARAM): Rename msgid to nocmsgid.
12483
12484 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
12485
12486         * gcc/config/aarch64/aarch64-protos.h (tune_params):
12487         Add min_div_recip_mul_sf and min_div_recip_mul_df fields.
12488         * gcc/config/aarch64/aarch64.c (aarch64_min_divisions_for_recip_mul):
12489         Return value depending on target.
12490         (generic_tunings): Initialize new target settings.
12491         (cortexa53_tunings): Likewise.
12492         (cortexa57_tunings): Likewise.
12493         (thunderx_tunings): Likewise.
12494         (xgene1_tunings): Likewise.
12495
12496 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
12497
12498         * gcc/config/arm/aarch-cost-tables.h (cortexa53_extra_costs):
12499         Make Cortex-A53 shift costs more accurate.
12500
12501 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12502
12503         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle FLOAT and
12504         UNSIGNED_FLOAT.
12505
12506 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
12507
12508         * gcc/config/aarch64/aarch64.c (aarch64_rtx_costs):
12509         Calculate cost of op0 and op1 in PLUS and MINUS cases.
12510
12511 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12512
12513         * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
12514         Add cost of op0 in the compare-with-fpzero case.
12515
12516 2015-04-30  David Malcolm  <dmalcolm@redhat.com>
12517
12518         * builtins.c (fold_builtin_1): Remove spurious second
12519         semicolon.
12520         * cgraph.h (symtab_node::get_availability): Likewise.
12521         * opts.c (common_handle_option): Remove spurious second semicolon.
12522         * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
12523         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
12524
12525 2015-04-30  Caroline Tice  <cmtice@google.com>
12526
12527         PR gcov-profile/65929
12528         * config/elfos.h (ASM_DECLARE_COLD_FUNCTION_NAME): New macro definition.
12529         (ASM_DECLARE_COLD_FUNCTION_SIZE): New macro definition.
12530         * doc/tm.texi.in (ASM_DECLARE_COLD_FUNCTION_NAME): Document new macro.
12531         (ASM_DECLARE_COLD_FUNCTION_SIZE): Document new macro.
12532         * doc/tm.texi: Regenerate.
12533         * final.c (final_scan_insn):  Use ASM_DECLARE_COLD_FUNCTION_NAME
12534         instead of ASM_DECLARE_FUNCTION_NAME for cold partition name.
12535         * varasm.c (assemble_end_function):  Use ASM_DECLARE_COLD_FUNCTION_SIZE
12536         instead of ASM_DECLARE_FUNCTION_SIZE for cold partition size.
12537
12538 2015-04-30  Marek Polacek  <polacek@redhat.com>
12539
12540         * varasm.c (handle_cache_entry): Fix logic.
12541
12542 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12543
12544         * config/aarch64/aarch64.md (*extr<mode>5_insn_alt): New pattern.
12545         (*extrsi5_insn_uxtw_alt): Likewise.
12546         * config/aarch64/aarch64.c (aarch64_extr_rtx_p): New function.
12547         (aarch64_rtx_costs, IOR case): Use above to properly cost extr
12548         operations.
12549
12550 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12551
12552         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle pattern for
12553         fabd in ABS case.
12554
12555 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12556
12557         * config/aarch64/aarch64.md
12558         (*eor_one_cmpl_<SHIFT:optab><mode>3_alt): New pattern.
12559         (*eor_one_cmpl_<SHIFT:optab>sidi3_alt_ze): Likewise.
12560         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle MVN-shift
12561         appropriately.  Handle alternative EON form.
12562
12563 2015-04-30  Renlin Li  <renlin.li@arm.com>
12564
12565         * config/aarch64/aarch64-simd.md (vec_shr): Defined as an unspec.
12566         * config/aarch64/iterators.md (unspec): Add UNSPEC_VEC_SHR.
12567
12568 2015-04-30  Jan Hubicka  <hubicka@ucw.cz>
12569
12570         PR ipa/65873
12571         * ipa-inline.c (can_inline_edge_p): It is safe to inline across
12572         -fstrict-aliasing boundaries.
12573
12574 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12575
12576         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Handle MNEG
12577         and [SU]MNEGL patterns.
12578
12579 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12580
12581         * config/aarch64/aarch64.c (aarch64_shift_p): New function.
12582         (aarch64_rtx_mult_cost): Update comment to reflect that it also handles
12583         combined arithmetic-shift ops.  Properly handle all shift and extend
12584         operations that can occur in combination with PLUS/MINUS.
12585         Rename maybe_fma to compound_p.
12586         (aarch64_rtx_costs): Use aarch64_shift_p when costing compound
12587         arithmetic and shift operations.
12588
12589 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12590
12591         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use extend_arith
12592         rather than arith_shift cost when costing ADD/MINUS of an
12593         extended value.
12594
12595 2015-04-30  Jan Hubicka  <hubicka@ucw.cz>
12596
12597         PR lto/65948
12598         * ipa-devirt.c (odr_types_equivalent_p): NULLPTR_TYPE is equivalent
12599         to itself.
12600
12601 2015-04-30  Richard Sandiford  <richard.sandiford@arm.com>
12602
12603         * genrecog.c (simplify_tests): Check that CONST_INT and XWINT tests
12604         are for the same position.
12605
12606 2015-04-29  Aditya Kumar  <hiraditya@hotmail.com>
12607
12608         * tree-vectorizer.c (set_uid_loop_bbs): New.  Factored out of
12609         vectorize_loops.
12610         (vectorize_loops): Use it.
12611
12612 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
12613
12614         * ipa-devirt.c (odr_subtypes_equivalent_p): Compare TYPE_NAME only
12615         for aggregate types.
12616         (register_odr_type): Be ready for MAIN_VARIANT of ODR type
12617         type to be non_ODR.
12618         * tree.c (need_assembler_name_p): Compute mangled name for
12619         non-fundamental types and integer types.
12620
12621 2015-04-29  Mikhail Maltsev  <maltsevm@gmail.com>
12622
12623         * dojump.c (do_compare_rtx_and_jump): Use std::swap instead of
12624         manual swaps.
12625         * expr.c (expand_expr_real_2): Likewise.
12626
12627 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
12628
12629         * tree.c (build_common_builtin_nodes): Do not build
12630         __builtin_alloca_with_align as equivalent of library alloca.
12631
12632 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
12633
12634         * dwarf2out.c (gen_type_die_with_usage): Call verify_type.
12635         * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Do not produce
12636         bugus variants.
12637         * tree.c: Include print-tree.h and ipa-utils.h
12638         (free_lang_data_in_type): Clear TYPE_VFIELD leaked by C FE.
12639         (free_lang_data_in_cgraph): Call verify_type.
12640         (verify_type_variant): New function.
12641         (verify_type): New function.
12642         * tree.h (verify_type): Declare.
12643
12644 2015-04-29  Steve Ellcey  <sellcey@imgtec.com>
12645
12646         * config/mips/mips-cpus.def: (mips4): Change default processor
12647         from PROCESSOR_R8000 to PROCESSOR_R10000.
12648
12649 2015-04-29  Petar Jovanovic  <petar.jovanovic@rt-rk.com>
12650
12651         * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Fix the macro to use
12652         la/jalr instead of jal.
12653
12654 2015-04-29  Uros Bizjak  <ubizjak@gmail.com>
12655
12656         PR target/65871
12657         * config/i386/i386.md (*bmi_bextr_<mode>_ccz): New pattern.
12658         (*bmi2_bzhi_<mode>3_1_ccz): Ditto.
12659         (setcc+movzbl peephole2): Check also clobbered reg.
12660         (setcc+andl peephole2): Ditto.
12661
12662 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
12663
12664         PR libgomp/65099
12665         * config/nvptx/mkoffload.c (target_ilp32): New variable.
12666         (main): Set it depending on "-foffload-abi=[...]".
12667         (compile_native, main): Use it to pass "-m32" or "-m64" to the
12668         compiler.
12669
12670 2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>
12671
12672         PR target/65770
12673         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>,
12674         vec_store_lanesci_lane<mode>, vec_store_lanesxi_lane<mode>):
12675         Flip lane index back at assembly time for bigendian.
12676
12677 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
12678
12679         * tree.h (OMP_STANDALONE_CLAUSES): New macro.
12680         * gimplify.c (gimplify_omp_workshare): Use it.
12681
12682 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
12683
12684         * Makefile.in (build/genrecog.o): Depend on inchash.h.
12685         (build/genrecog$(build_exeext): Depend on build/hash-table.o and
12686         build/inchash.o
12687         * genrecog.c: Rewrite most of the code except for the third page.
12688
12689 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
12690
12691         * inchash.h, inchash.c: Include bconfig.h for build objects.
12692         * Makefile.in (build/inchash.o): New rule.
12693
12694 2015-04-29  Yvan Roux  <yvan.roux@linaro.org>
12695
12696         PR target/65924
12697         * config/arm/thumb2.md (*thumb2_addsi3_compare0_scratch): Fix operand
12698         number in type attribute expression.
12699
12700 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
12701
12702         * loop-iv.c (canon_condition): Generalize to all types of integer
12703         constant.
12704
12705 2015-04-29  Bernhard Reuther-Fischer  <aldot@gcc.gnu.org>
12706
12707         * gimple-walk.c: Prune duplicate or unneeded includes.
12708         (walk_gimple_asm): Only call parse_input_constraint or
12709         parse_output_constraint if their findings are used.
12710         Honour parse_input_constraint and parse_output_constraint
12711         result.
12712
12713 2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>
12714
12715         * config/arm/neon.md (vec_shl<mode>, vec_shr<mode>): Remove.
12716
12717 2015-04-29  Tom de Vries  <tom@codesourcery.com>
12718
12719         PR tree-optimization/65893
12720         * passes.def (pass_all_optimizations): Move pass_stdarg to after
12721         pass_dce.
12722
12723 2015-04-29  Richard Biener  <rguenther@suse.de>
12724
12725         * tree-vect-data-refs.c (vect_analyze_group_access): Properly
12726         compute GROUP_SIZE for basic-block SLP.
12727         * tree-vect-slp.c (vect_get_place_in_interleaving_chain): Properly
12728         take into account gaps.
12729         (vect_get_mask_element): Properly reject references to previous
12730         vectors.
12731         (vect_transform_slp_perm_load): Likewise.
12732
12733 2015-04-29  Christian Bruel  <christian.bruel@st.com>
12734
12735         PR target/64835
12736         * config/i386/i386.c (ix86_default_align): New function.
12737         (ix86_override_options_after_change): Call ix86_default_align.
12738         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New hook.
12739         (ix86_override_options_after_change): New function.
12740
12741 2015-04-28  Jeff Law  <law@redhat.com>
12742
12743         * tree-ssa-dom.c (record_equality); Fix comment typos.
12744
12745 2015-04-28  Tom de Vries  <tom@codesourcery.com>
12746
12747         PR tree-optimization/65887
12748         * gimplify.c (gimplify_modify_expr): Remove ifn_va_arg ap fixup.
12749
12750 2015-04-28  Sandra Loosemore  <sandra@codesourcery.com>
12751
12752         * doc/extend.texi (Declaring Attributes of Functions): Split into
12753         subsections by target.  Alphabetize the table of common attributes.
12754         Rewrite some of the introductory text to reflect the new structure.
12755         Update some cross-references to point to the new subsections.
12756         (Attribute Syntax): Put paragraph about "__" naming here.  Remove
12757         duplicate copies in the discussion of function, label, and type
12758         attributes.
12759
12760 2015-04-28  Dominique d'Humieres  <dominiq@lps.ens.fr>
12761
12762         PR bootstrap/65910
12763         * varasm.c (assemble_end_function): Guard ASM_DECLARE_FUNCTION_SIZE.
12764
12765 2015-04-28  Jason Merrill  <jason@redhat.com>
12766
12767         PR c++/65734
12768         * stor-layout.c (layout_type): Layout the TYPE_MAIN_VARIANT.
12769         (finalize_type_size): Respect TYPE_USER_ALIGN.
12770         (layout_type) [ARRAY_TYPE]: Likewise.
12771
12772 2015-04-28  Yvan Roux  <yvan.roux@linaro.org>
12773
12774         * config/arm/arm.md (*arm_movt): Fix type attribute.
12775         (*cmpsi_shiftsi): Likewise.
12776         (*cmpsi_shiftsi_swp): Likewise.
12777         (*movsicc_insn): Likewise.
12778         (*cond_move): Likewise.
12779         (*if_plus_move): Likewise.
12780         (*if_move_plus): Likewise.
12781         (*if_arith_move): Likewise.
12782         (*if_move_arith): Likewise.
12783         (*if_shift_move): Likewise.
12784         (*if_move_shift): Likewise.
12785         (*arm_movtas_ze): Likewise.
12786         * config/arm/thumb2.md (*thumb2_movsicc_insn): Fix alternative
12787         redundancy and type attribute.
12788         (*thumb2_movsi_insn): Fix type attribute.
12789         (*thumb2_addsi_short): Likewise.
12790         (thumb2_addsi3_compare0): Likewise.
12791         (*thumb2_addsi3_compare0_scratch): Merge alternatives and fix
12792         attributes accordingly.
12793
12794 2015-04-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
12795
12796         PR other/65911
12797         * function.c (pad_to_arg_alignment): Add parentheses.
12798
12799 2015-04-28  Uros Bizjak  <ubizjak@gmail.com>
12800
12801         * config/frv/frv.h (CRT_GET_RFIB_DATA): Move definition to
12802         libgcc/config/frv/elf-lib.h.
12803
12804 2015-04-28  Tom de Vries  <tom@codesourcery.com>
12805
12806         * tree-call-cdce.c: Fix example in header comment.
12807
12808 2015-04-28  Richard Biener  <rguenther@suse.de>
12809
12810         PR tree-optimization/62283
12811         * tree-vect-slp.c (vect_build_slp_tree): When the SLP build
12812         fails fatally and we are vectorizing a basic-block simply
12813         cause the child to be constructed piecewise.
12814         (vect_analyze_slp_cost_1): Adjust.
12815         (vect_detect_hybrid_slp_stmts): Likewise.
12816         (vect_bb_slp_scalar_cost): Likewise.
12817         (vect_get_constant_vectors): For piecewise constructed
12818         constants place them after the last def.
12819         (vect_get_slp_defs): Adjust.
12820         * tree-vect-stmts.c (vect_is_simple_use): Detect in-BB
12821         externals for basic-block vectorization.
12822
12823 2015-04-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
12824
12825         PR target/63503
12826         * config.gcc: Add cortex-a57-fma-steering.o to extra_objs for
12827         aarch64-*-*.
12828         * config/aarch64/t-aarch64: Add a rule for cortex-a57-fma-steering.o.
12829         * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Define.
12830         (AARCH64_TUNE_FMA_STEERING): Likewise.
12831         * config/aarch64/aarch64-cores.def: Set
12832         AARCH64_FL_USE_FMA_STEERING_PASS for cores with dynamic steering of
12833         FMUL/FMADD instructions.
12834         * config/aarch64/aarch64.c (aarch64_register_fma_steering): Declare.
12835         (aarch64_override_options): Include cortex-a57-fma-steering.h.  Call
12836         aarch64_register_fma_steering () if AARCH64_TUNE_FMA_STEERING is true.
12837         * config/aarch64/cortex-a57-fma-steering.h: New file.
12838         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
12839
12840 2015-04-28  Richard Sandiford  <richard.sandiford@arm.com>
12841
12842         * gensupport.c (std_preds): Add missing codes to address_operand entry.
12843
12844 2015-04-28  Richard Biener  <rguenther@suse.de>
12845
12846         PR tree-optimization/65851
12847         * tree-ssa-ccp.c (set_lattice_value): Perform a meet when
12848         changing CONSTANT to CONSTANT non-copy.  Get new_val by reference.
12849         (ccp_lattice_meet): Remove stray argument.  Use operand_equal_p
12850         rather than simple_cst_equal as the latter doesn't handle COMPLEX_CST.
12851         (ccp_visit_phi_node): Adjust.
12852         (evaluate_stmt): For simplifications to SSA names return its
12853         lattice value if that isn't VARYING.  Return immediately when
12854         simplified to a constant.
12855         (visit_assignment): Adjust.
12856         (ccp_visit_stmt): Likewise.
12857
12858 2015-04-28  Tom de Vries  <tom@codesourcery.com>
12859
12860         PR tree-optimization/65818
12861         * tree-stdarg.c (expand_ifn_va_arg_1): Ensure that side-effects are
12862         evaluated.
12863
12864 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12865
12866         * calls.c (save_fixed_argument_area): Don't check
12867         ARGS_GROW_DOWNWARD with the preprocessor.
12868         (restore_fixed_argument_area): Likewise.
12869         (mem_overlaps_already_clobbered_arg_p): Likewise.
12870         (check_sibcall_argument_overlap): Likewise.
12871         (expand_call): Likewise.
12872         (emit_library_call_value_1): Likewise.
12873         (store_one_arg): Likewise.
12874         * function.c (assign_parms): Likewise.
12875         (locate_and_pad_parm): Likewise.
12876         (pad_to_arg_alignment): Likewise.
12877         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
12878
12879 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12880
12881         * config/pa/pa.h (ARGS_GROW_DOWNWARD): Define to 1.
12882         * defaults.h (ARGS_GROW_DOWNWARD): Define it to 0 by default.
12883         * calls.c (save_fixed_argument_area): Don't chekc if
12884         ARGS_GROW_DOWNWARD is defined.
12885         (restore_fixed_argument_area): Likewise.
12886         (mem_overlaps_already_clobbered_arg_p): Likewise.
12887         (check_sibcall_argument_overlap): Likewise.
12888         (expand_call): Likewise.
12889         (emit_library_call_value_1): Likewise.
12890         (store_one_arg): Likewise.
12891         * function.c (assign_parms): Likewise.
12892         (locate_and_pad_parm): Likewise.
12893         (pad_to_arg_alignment): Likewise.
12894         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
12895
12896 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12897
12898         * defaults.h (gen_epilogue): New function.
12899         * alias.c (init_alias_analysis): don't check if HAVE_epilogue is
12900         defined.
12901         * cfgrtl.c (cfg_layout_finalize): Likewise.
12902         * df-scan.c: Likewise.
12903         * function.c (thread_prologue_and_epilogue_insns): Likewise.
12904         (reposition_prologue_and_epilogue_notes): Likewise.
12905         * reorg.c (find_end_label): Likewise.
12906         * toplev.c: Likewise.
12907
12908 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12909
12910         * bb-reorder.c (HAVE_return): Don't check if its undefined.
12911         * defaults.h (gen_simple_return): New function.
12912         (gen_simple_return): Likewise.
12913         (HAVE_return): Add default definition to false.
12914         (HAVE_simple_return): Likewise.
12915         * cfgrtl.c (force_nonfallthru_and_redirect): Remove checks if
12916         HAVE_return and HAVE_simple_return are defined.
12917         * function.c (gen_return_pattern): Likewise.
12918         (convert_jumps_to_returns): Likewise.
12919         (thread_prologue_and_epilogue_insns): Likewise.
12920         * reorg.c (find_end_label): Likewise.
12921         (dbr_schedule): Likewise.
12922         * shrink-wrap.c: Likewise.
12923         * shrink-wrap.h: Likewise.
12924
12925 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12926
12927         * defaults.h (EPILOGUE_USES): Add default definition of false.
12928         * df-scan.c (EPILOGUE_USES): Remove check if its undefined.
12929         * resource.c (init_resource_info): Likewise.
12930
12931 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12932
12933         * defaults.h (PCC_BITFIELD_TYPE_MATTERS): Add default definition
12934         to false.
12935         * dwarf2out.c (field_byte_offset): REmove check if
12936         PCC_BITFIELD_TYPE_MATTERS is defined.
12937         * stor-layout.c (layout_decl): Likewise.
12938         (update_alignment_for_field): Likewise.
12939         (place_field): Likewise.
12940
12941 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12942
12943         * defaults.h (HARD_REGNO_RENAME_OK): Add default definition to
12944         true.
12945         * regrename.c (check_new_reg_p): Remove check if
12946         HARD_REGNO_RENAME_OK is defined.
12947         * sel-sched.c (sel_hard_regno_rename_ok): Likewise.
12948
12949 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12950
12951         * calls.c (prepare_call_address): Remove ifdef NO_FUNCTION_CSE.
12952         * cse.c (fold_rtx): Likewise.
12953         * config/alpha/alpha.h (NO_FUNCTION_CSE): Define to 1.
12954         * config/arc/arc.h (NO_FUNCTION_CSE): Likewise.
12955         * config/avr/avr.h (NO_FUNCTION_CSE): Likewise.
12956         * config/cr16/cr16.h (NO_FUNCTION_CSE): Likewise.
12957         * config/epiphany/epiphany.h (NO_FUNCTION_CSE): Likewise.
12958         * config/frv/frv.h (NO_FUNCTION_CSE): Likewise.
12959         * config/h8300/h8300.h (NO_FUNCTION_CSE): Likewise.
12960         * config/i386/i386.h (NO_FUNCTION_CSE): Likewise.
12961         * config/ia64/ia64.h (NO_FUNCTION_CSE): Likewise.
12962         * config/lm32/lm32.h (enum reg_class) (NO_FUNCTION_CSE):
12963         * Likewise.
12964         * config/m32r/m32r.h (NO_FUNCTION_CSE): Likewise.
12965         * config/mep/mep.h (NO_FUNCTION_CSE): Likewise.
12966         * config/mn10300/mn10300.h (NO_FUNCTION_CSE): Likewise.
12967         * config/nds32/nds32.h (NO_FUNCTION_CSE): Likewise.
12968         * config/nios2/nios2.h (NO_FUNCTION_CSE): Likewise.
12969         * config/pa/pa.h (NO_FUNCTION_CSE): Likewise.
12970         * config/rs6000/rs6000.h (NO_FUNCTION_CSE): Likewise.
12971         * config/s390/s390.h (NO_FUNCTION_CSE): Likewise.
12972         * config/sparc/sparc.h (NO_FUNCTION_CSE): Likewise.
12973         * config/spu/spu.h (NO_FUNCTION_CSE): Likewise.
12974         * config/stormy16/stormy16.h (NO_FUNCTION_CSE): Likewise.
12975         * config/v850/v850.h (NO_FUNCTION_CSE): Likewise.
12976         * defaults.h (NO_FUNCTION_CSE): Provide default definition to 0.
12977         * doc/tm.texi: Regenerate.
12978         * doc/tm.texi.in: Document NO_FUNCTION_CSE is always defined to
12979         either true or false.
12980
12981 2015-04-27  Jeff Law  <law@redhat.com>
12982
12983         PR tree-optimization/65217
12984         * tree-ssa-dom.c (record_equality): Given two SSA_NAMEs, if just one
12985         of them has a single use, make sure it is the LHS of the implied
12986         copy.
12987
12988 2015-04-28  Alan Modra  <amodra@gmail.com>
12989
12990         PR target/65810
12991         * config/rs6000/rs6000.c (POWERPC64_TOC_POINTER_ALIGNMENT): Define.
12992         (offsettable_ok_by_alignment): Use minimum of decl and toc
12993         pointer alignment.  Replace dead code with assertion.
12994         (use_toc_relative_ref): Add mode arg.  Return false in -mcmodel=medium
12995         case if size exceeds toc pointer alignment.
12996         (rs6000_legitimize_reload_address): Update use_toc_relative_ref call.
12997         (rs6000_emit_move): Likewise.
12998         * configure.ac: Add linker toc pointer alignment check.
12999         * configure: Regenerate.
13000         * config.in: Regenerate.
13001
13002 2015-04-27  Yoshinori Sato <ysato@users.sourceforge.jp>
13003
13004         * config.gcc: Add h8300-*-linux.
13005         * config/h8300/linux.h: New.
13006         * config/h8300/t-linux: New.
13007         * config/h8300/h8300.c (h8300_option_override): Normal mode
13008         is not supported for h8300-*-linux.
13009         (h8300_file_start): Target priority change.
13010         (get_shift_alg): Likewise.
13011         (h8300_shift_need_scratch_p): Likewise.
13012         * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Likewise.
13013         * config/h8300/h8300.md (define_peephole2): Remove duplicate condition.
13014
13015 2015-04-27  Caroline Tice  <cmtice@google.com>
13016
13017         * final.c (final_scan_insn):  Output cold_function_name as function
13018         type.
13019         * varasm.c (cold_function_name):  Make global.
13020         (assemble_start_function):  Re-set cold_function_name.
13021         (assemble_end_function): Output cold partition size.
13022         * varasm.h (cold_function_name):  Declare global.
13023
13024 2015-04-27  Ilya Tocar  <ilya.tocar@intel.com>
13025
13026         * config/i386/i386.h (EXT_REX_SSE_REG_P): New.
13027         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed): Use "v"
13028         constraint.
13029         (*movxi_internal_avx512f): Ditto.
13030         (define_split): Check for xmm16+, when splitting scalar float_extend.
13031         (*extendsfdf2_mixed): Use "v" constraint.
13032         (define_split): Check for xmm16+, when splitting scalar float_truncate.
13033         (*truncdfsf_fast_sse): Use "v" constraint.
13034         (fix_trunc<MODEF:mode><SWI48:mode>_sse): Ditto.
13035         (*float<SWI48:mode><MODEF:mode>2_sse): Ditto.
13036         (define_peephole2): Check for xmm16+, when converting scalar
13037         float_truncate.
13038         (define_peephole2): Check for xmm16+, when converting scalar
13039         float_extend.
13040         (*fop_<mode>_comm_mixed): Use "v" constraint.
13041         (*fop_<mode>_comm_sse): Ditto.
13042         (*fop_<mode>_1_mixed): Ditto.
13043         (*sqrt<mode>2_sse): Ditto.
13044         (*ieee_s<ieee_maxmin><mode>3): Ditto.
13045
13046 2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13047
13048         * combine.c (simplify_if_then_else): Use std::swap instead
13049         of manually swapping.
13050         (known_cond): Likewise.
13051         (simplify_comparison): Likewise.
13052
13053 2015-04-27  Peter Bergner  <bergner@vnet.ibm.com>
13054
13055         PR target/64579
13056         * config/rs6000/htm.md: Remove all define_expands.
13057         (UNSPECV_HTM_TABORTDC, UNSPECV_HTM_TABORTDCI, UNSPECV_HTM_TABORTWC,
13058         UNSPECV_HTM_TABORTWCI): Remove.
13059         (UNSPECV_HTM_TABORTXC, UNSPECV_HTM_TABORTXCI, UNSPECV_HTM_TTEST): New.
13060         (tabort_internal, tbegin_internal, tcheck_internal, tend_internal,
13061         trechkpt_internal, treclaim_internal, tsr_internal): Rename from this...
13062         (tabort, tbegin, tcheck, tend, trechkpt, treclaim, tsr): ...to this.
13063         (tabortdc_internal, tabortdci_internal, tabortwc_internal,
13064         tabortwci_internal): Remove define_insns.
13065         (tabort<wd>c, tabort<wd>ci): New define_insns.
13066         (tabort): Use gpc_reg_operand.
13067         (tcheck): Remove operand.
13068         (htm_mfspr_<mode>, htm_mtspr_<mode>): Use GPR mode macro.
13069         * config/rs6000/htmxlintrin.h (__TM_end): Use _HTM_TRANSACTIONAL as
13070         expected value.
13071         * config/rs6000/rs6000-builtin.def (BU_HTM_SPR0): Remove.
13072         (BU_HTM_SPR1): Rename to BU_HTM_V1.  Remove use of RS6000_BTC_SPR.
13073         (tabort, tabortdc, tabortdci, tabortwc, tabortwci, tbegin,
13074         tcheck, tend, tendall, trechkpt, treclaim, tresume, tsuspend,
13075         tsr, ttest): Pass in the RS6000_BTC_CR attribute.
13076         (get_tfhar, set_tfhar, get_tfiar, set_tfiar, get_texasr, set_texasr,
13077         get_texasru, set_texasru): Pass in the RS6000_BTC_SPR attribute.
13078         (tcheck): Remove builtin argument.
13079         * config/rs6000/rs6000.c (rs6000_htm_spr_icode): Use TARGET_POWERPC64
13080         not TARGET_64BIT.
13081         (htm_expand_builtin): Fix usage of expandedp.  Disallow usage of the
13082         tabortdc and tabortdci builtins when not in 64-bit mode.
13083         Modify code to handle the loss of the HTM define_expands.
13084         Emit code to copy the CR register to TARGET.
13085         (htm_init_builtins): Modify code to handle the loss of the HTM
13086         define_expands.
13087         * config/rs6000/rs6000.h (RS6000_BTC_32BIT): Delete.
13088         (RS6000_BTC_64BIT): Likewise.
13089         (RS6000_BTC_CR): New macro.
13090         * doc/extend.texi: Update documentation for htm builtins.
13091
13092 2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13093
13094         * simplify-rtx.c (simplify_gen_binary): Use std::swap instead
13095         of manually swapping.
13096         (simplify_associative_operation): Likewise.
13097         (simplify_binary_operation): Likewise.
13098         (simplify_plus_minus): Likewise.
13099         (simplify_relational_operation): Likewise.
13100         (simplify_ternary_operation): Likewise.
13101
13102 2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>
13103
13104         * config/stormy16/predicates.md (xs_hi_general_operand): Delete.
13105         (xs_hi_nonmemory_operand): Remove error.
13106         * config/stormy16/stormy16.md (movhi, movhi_internal): Use
13107         general_operand rather than xs_hi_general_operand.
13108
13109 2015-04-27  Richard Biener  <rguenther@suse.de>
13110
13111         * tree-ssa-dom.c (record_equivalences_from_phis): Valueize PHI arg.
13112         (record_equivalences_from_stmt): Valueize rhs.
13113         (record_equality): Canonicalize x and y order via
13114         tree_swap_operands_p.  Do not swap operands for same loop depth.
13115
13116 2015-04-27  Georg-Johann Lay  <avr@gjlay.de>
13117
13118         PR target/65296
13119         PR target/65895
13120         * config/avr/gen-avr-mmcu-specs.c (print_mcu): Close file.
13121         Add hint how to use own spec file.
13122
13123 2015-04-27  Jakub Jelinek  <jakub@redhat.com>
13124
13125         PR tree-optimization/65875
13126         * tree-vrp.c (update_value_range): If in is_new case setting
13127         old_vr to VR_VARYING, also set new_vr to it.  Remove
13128         old_vr->type == VR_VARYING test.
13129         (vrp_visit_phi_node): Return SSA_PROP_VARYING instead of
13130         SSA_PROP_INTERESTING if update_value_range returned true,
13131         but new range is VR_VARYING.
13132
13133 2015-04-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>
13134
13135         * combine.c (sign_extend_short_imm): New.
13136         (set_nonzero_bits_and_sign_copies): Use above new function for sign
13137         extension of src short immediate.
13138         (reg_nonzero_bits_for_combine): Likewise for tem.
13139
13140 2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>
13141
13142         * stor-layout.c (self_referential_component_ref_p): New predicate.
13143         (copy_self_referential_tree_r): Use it.
13144         (self_referential_size): Punt for simple operations directly involving
13145         self-referential component references.
13146         * tree-cfg.c (dump_function_to_file): Add missing final curly bracket.
13147
13148 2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>
13149
13150         * ipa-icf.c (icf_handled_component_p): Remove redundant tests.
13151
13152 2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>
13153
13154         * vec.h (vec): Make splice arguments const.  Update definitions
13155         accordingly.
13156
13157 2015-04-27  Yvan Roux  <yvan.roux@linaro.org>
13158
13159         * config/arm/arm.md (*arm_subsi3_insn): Fixed redundant
13160         alternatives.
13161
13162 2015-04-26  Tom de Vries  <tom@codesourcery.com>
13163
13164         PR tree-optimization/65826
13165         * internal-fn.def: Mark VA_ARG with ECF_LEAF.
13166
13167 2015-04-24  Steve Ellcey  <sellcey@imgtec.com>
13168
13169         * config/mips/mips.md: (*madd4<mode>) Remove accum_in attribute.
13170         (*madd3<mode>): Ditto.
13171         (*msub4<mode>): Ditto.
13172         (*msub3<mode>): Ditto.
13173         (*nmadd4<mode>): Ditto.
13174         (*nmadd3<mode>): Ditto.
13175         (*nmadd4<mode>_fastmath): Ditto.
13176         (*nmadd3<mode>_fastmath): Ditto.
13177         (*nmsub4<mode>): Ditto.
13178         (*nmsub3<mode>): Ditto.
13179         (*nmsub4<mode>_fastmath): Ditto.
13180         (*nmsub3<mode>_fastmath): Ditto.
13181
13182 2015-04-24  Jason Merrill  <jason@redhat.com>
13183
13184         PR c++/50800
13185         * tree.c (build_reference_type_for_mode): Don't pass can_alias_all
13186         down when building TYPE_CANONICAL.
13187         (build_pointer_type_for_mode): Likewise.
13188
13189 2015-04-24  Chen Gang  <gang.chen.5i5j@gmail.com>
13190
13191         * genrecog.c (validate_pattern): Check matching constraint refers
13192         to a lower numbered operand.
13193
13194 2015-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
13195
13196         PR target/65849
13197         * config/rs6000/rs6000.opt (-mvsx-align-128): Make options that
13198         save to independent variables use the Save attribute.  This will
13199         allow these options to be modified with the #pragma/attribute
13200         target support.
13201         (-mallow-movmisalign): Likewise.
13202         (-mallow-df-permute): Likewise.
13203         (-msched-groups): Likewise.
13204         (-malways-hint): Likewise.
13205         (-malign-branch-targets): Likewise.
13206         (-mvectorize-builtins): Likewise.
13207         (-msave-toc-indirect): Likewise.
13208
13209         * config/rs6000/rs6000.c (rs6000_opt_masks): Add more options that
13210         can be set via the #pragma/attribute target support.
13211         (rs6000_opt_vars): Likewise.
13212         (rs6000_inner_target_options): If VSX was set, also set
13213         -mno-avoid-indexed-addresses.
13214
13215 2015-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13216
13217         * config/arm/iterators.md (shiftable_ops): Rename to...
13218         (SHIFTABLE_OPS): ... This.  Update use in comments.
13219         (ior_xor): Rename to...
13220         (IOR_XOR): ... This.
13221         (vqh_ops): Rename to...
13222         (VQH_OPS): ... This.
13223         (vqhs_ops): Rename to...
13224         (VQHS_OPS): ... This.
13225         (rshifts): Rename to...
13226         (RSHIFTS): ... This.
13227         (returns): Rename to...
13228         (RETURNS): ... This.
13229         * config/arm/arm.md: Update uses of the above.
13230         * config/arm/neon.md: Likewise.
13231
13232 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13233
13234         * config.host (case ${host}): Add aarch64*-*-linux case.
13235         * config/aarch64/aarch64-cores.def: Add IMPLEMENTER_ID and PART_NUMBER
13236         fields to all the cores.
13237         * config/aarch64/aarch64-elf.h (DRIVER_SELF_SPECS):
13238         Add MCPU_MTUNE_NATIVE_SPECS.
13239         * config/aarch64/aarch64-option-extensions.def: Add FEATURE_STRING
13240         field to all extensions.
13241         * config/aarch64/aarch64-opts.h: Adjust definition of AARCH64_CORE.
13242         * config/aarch64/aarch64.c: Adjust definition of AARCH64_CORE.
13243         Adjust definition of AARCH64_OPT_EXTENSION.
13244         * config/aarch64/aarch64.h: Adjust definition of AARCH64_CORE.
13245         (MCPU_MTUNE_NATIVE_SPECS): Define.
13246         * config/aarch64/driver-aarch64.c: New file.
13247         * config/aarch64/x-arch64: New file.
13248         * doc/invoke.texi (AArch64 Options): Document native value for -mcpu,
13249         -mtune and -march.
13250
13251 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
13252             Wei Mi  <wmi@google.com>
13253
13254         * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple): New.
13255         * config/i386/i386.c (extract_base_offset_in_addr): New function.
13256         (ix86_operands_ok_for_move_multiple): Ditto.
13257         * config/i386/sse.md (movsd/movhpd to movupd peephole2): New pattern.
13258         (movlpd/movhpd to movupd peephole2): Ditto.
13259
13260 2015-04-24  Marek Polacek  <polacek@redhat.com>
13261
13262         PR c/61534
13263         * input.h (from_macro_expansion_at): Define.
13264
13265         PR c/63357
13266         * doc/invoke.texi: Update description of -Wlogical-op.
13267
13268 2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
13269
13270         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): fix
13271         ternary operator in fprintf and harmonize spacing.
13272
13273 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
13274
13275         * config/i386/sse.md (*vec_widen_smult_even_v8si<mask_name>):
13276         Mark operand1 commutative.
13277
13278 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
13279
13280         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Do not allow both
13281         input operands in memory.
13282         (*vec_concatv2si_sse4_1): Ditto.
13283         (*vec_concatv2df): Ditto, except for SSE3 and equal input operands.
13284         (vec_extract_lo_<mode><mask_name>): Change operand 1 predicate to
13285         register_operand.
13286         (vec_extract_hi_v32hi): Ditto.
13287         (vec_extract_hi_v64hi): Ditto.
13288         (<mask_codefor>avx512f_unpckhpd512<mask_name>): Ditto.
13289
13290 2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
13291             Steven Bosscher <steven@gcc.gnu.org>
13292
13293         PR rtl-optimization/34503
13294         * cprop.c (cprop_reg_p): New.
13295         (hash_scan_set): Use above function to check if register can be
13296         propagated.
13297         (find_avail_set): Return up to two sets, one whose source is a
13298         register and one whose source is a constant.  Sets are returned in an
13299         array passed as parameter rather than as a return value.
13300         (cprop_insn): Use a do while loop rather than a goto.  Try each of the
13301         sets returned by find_avail_set, starting with the one whose source is
13302         a constant. Use cprop_reg_p to check if register can be propagated.
13303         (do_local_cprop): Use cprop_reg_p to check if register can be
13304         propagated.
13305         (implicit_set_cond_p): Likewise.
13306
13307 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
13308
13309         * ipa-icf.c (sem_function::equals_wpa): Compare thunk info.
13310         (sem_function::equals): IGNORED_NODES parameter is now unused;
13311         update call of equals_private.
13312         (sem_function::equals_private): Do not call equals_wpa; skip
13313         gimple body matching if there is no body.
13314         (sem_function::init): Add logic to hash tthunk info.
13315         (sem_function::parse): Also parse thunks.
13316         * ipa-icf.h (equals_private): Update declaration.
13317
13318 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13319
13320         * config/rs6000/altivec.md (*altivec_lvx_<mode>_internal): Remove
13321         asterisk from name so this can be generated directly.
13322         (*altivec_stvx_<mode>_internal): Likewise.
13323         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Add assert
13324         that this is never called during or after reload/lra.
13325         (rs6000_frame_related): Remove split_reg
13326         argument and logic that references it.
13327         (emit_frame_save): Remove last parameter from call to
13328         rs6000_frame_related.
13329         (rs6000_emit_prologue): Remove last parameter from eight calls to
13330         rs6000_frame_related.  Force generation of stvx instruction for
13331         Altivec register saves.  Remove split_reg handling, which is no
13332         longer needed.
13333         (rs6000_emit_epilogue):  Force generation of lvx instruction for
13334         Altivec register restores.
13335
13336 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13337
13338         * config/rs6000/rs6000.opt (mcrypto): Change option description to
13339         match category changes in ISA 2.07B.
13340
13341 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13342
13343         * config/arm/iterators.md (GTGE, GTUGEU, COMPARISONS): New code
13344         iterators.
13345         (cmp_op, cmp_type): New code attributes.
13346         (NEON_VCMP, NEON_VACMP): New int iterators.
13347         (cmp_op_unsp): New int attribute.
13348         * config/arm/neon.md (neon_vc<cmp_op><mode>): New define_expand.
13349         (neon_vceq<mode>): Delete.
13350         (neon_vc<cmp_op><mode>_insn): New pattern.
13351         (neon_vc<cmp_op_unsp><mode>_insn_unspec): Likewise.
13352         (neon_vcgeu<mode>): Delete.
13353         (neon_vcle<mode>): Likewise.
13354         (neon_vclt<mode>: Likewise.
13355         (neon_vcage<mode>): Likewise.
13356         (neon_vcagt<mode>): Likewise.
13357         (neon_vca<cmp_op><mode>): New define_expand.
13358         (neon_vca<cmp_op><mode>_insn): New pattern.
13359         (neon_vca<cmp_op_unsp><mode>_insn_unspec): Likewise.
13360
13361 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
13362
13363         * tree.h (attribute_value_equal): Declare.
13364         * tree.c (attribute_value_equal): Export.
13365
13366 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
13367
13368         * ipa-icf.c (sem_item::compare_attributes): New function.
13369         (sem_item::compare_referenced_symbol_properties): Compare variable
13370         attributes.
13371         (sem_item::hash_referenced_symbol_properties): Record DECL_ALIGN.
13372         (sem_function::param_used_p): New function.
13373         (sem_function::equals_wpa): Fix attribute comparsion; match
13374         parameter type codes; do not compare paremter flags when
13375         they are not used; compare edge flags; compare indirect calls.
13376         (sem_item::update_hash_by_addr_refs): Hash reference type.
13377         (sem_function::equals_private): Do not match DECL_ATTRIBUTES.
13378         (sem_variable::equals_wpa): Do not match DECL_ALIGN; match
13379         reference use type.
13380         (sem_item_optimizer::update_hash_by_addr_refs): Use param_used_p.
13381         * ipa-icf.h (compare_attributes, param_used_p): Declare.
13382
13383 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
13384
13385         * ipa-icf.c (symbol_compare_collection::symbol_compare_collection):
13386         cleanup.
13387         (sem_function::get_hash): Do not hash DECL_DISREGARD_INLINE_LIMITS,
13388         DECL_DECLARED_INLINE_P and DECL_IS_OPERATOR_NEW.
13389         (sem_item::compare_referenced_symbol_properties): New.
13390         (sem_item::hash_referenced_symbol_properties): New.
13391         (sem_item::compare_cgraph_references): Rename to ...
13392         (sem_item::compare_symbol_references): ... this one; use
13393         compare_referenced_symbol_properties.
13394         (sem_function::equals_wpa): Do not compare
13395         DECL_DISREGARD_INLINE_LIMITS, DECL_DECLARED_INLINE_P,
13396         DECL_IS_OPERATOR_NEW; compare pointer sizes.
13397         (sem_item::update_hash_by_addr_refs): Call
13398         hash_referenced_symbol_properties.
13399         (sem_item::update_hash_by_local_refs): Cleanup.
13400         (sem_function::merge): Do not mix up symbol properties.
13401         (sem_variable::equals_wpa): Use compare_symbol_references.
13402         * ipa-icf.h (sem_item::compare_referenced_symbol_properties): New.
13403         (sem_item::hash_referenced_symbol_properties): New.
13404         (sem_item::compare_symbol_references): New.
13405         (sem_item::compare_cgraph_references): Remove.
13406
13407 2015-04-23  Kwok Cheung Yeung  <kcy@codesourcery.com>
13408
13409         PR target/26702
13410         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL):
13411         Emit size of local.
13412
13413 2015-04-23  Nick Clifton  <nickc@redhat.com>
13414
13415         * config/rl78/rl78.c (rl78_preferred_reload_class): Add
13416         ATTRIBUTE_UNUSED to x parameter.
13417         * config/rl78/rl78-opts.h (enum rl78_mul_types): Remove unused MUL_RL78.
13418
13419 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13420
13421         * config/rs6000/crypto.md (crypto_vpmsum<CR_char>): Change
13422         TARGET_CRYPTO to TARGET_P8_VECTOR>
13423         (crypto_vpermxor_<mode>): Likewise.
13424         * config/rs6000/rs6000-builtin.def (BU_CRYPTO_2A): New #define.
13425         (BU_CRYPTO_3A): Likewise.
13426         (BU_CRYPTO_OVERLOAD_2A): Rename from BU_CRYPTO_OVERLOAD_2.
13427         (BU_CRYPTO_OVERLOAD_3A): New #define.
13428         (VPMSUMB): Change from BU_CRYPTO_2 to BU_CRYPTO_2A.
13429         (VPMSUMH): Likewise.
13430         (VPMSUMW): Likewise.
13431         (VPMSUMD): Likewise.
13432         (VPERMXOR_V2DI): Change from BU_CRYPTO_3 to BU_CRYPTO_3A.
13433         (VPERMXOR_V4SI): Likewise.
13434         (VPERMXOR_V8HI): Likewise.
13435         (VPERMXOR_V16QI): Likewise.
13436         (VPMSUM): Change from BU_CRYPTO_OVERLOAD_2 to
13437         BU_CRYPTO_OVERLOAD_2A.
13438         (VPERMXOR): Change from BU_CRYPTO_OVERLOAD3 to
13439         BU_CRYPTO_OVERLOAD_3A.
13440         * config/rs6000/rs6000.opt (mcrypto): Change description of
13441         option.
13442
13443 2015-04-23  Richard Biener  <rguenther@suse.de>
13444
13445         * passes.def: Remove copy propagation passes run directly after CCP.
13446         * tree-ssa-ccp.c (get_value_for_expr): Fall back to a COPY for
13447         SSA names.
13448         (ccp_visit_phi_node): Rework to handle first executable edge
13449         specially.
13450
13451 2015-04-23  Matthew Wahab  <matthew.wahab@arm.com>
13452
13453         * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
13454         (ARM_LEGITIMIZE_RELOAD_ADDRESS): Remove.
13455         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Remove.
13456         * config/arm/arm.c (arm_legimitimize_reload_address): Remove.
13457         (thumb_legimitimize_reload_address): Remove.
13458         * config/arm/arm-protos.h (arm_legimitimize_reload_address):
13459         Remove.
13460         (thumb_legimitimize_reload_address): Remove.
13461
13462 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13463
13464         * conditions.h (CC_STATUS_INIT): Gate on #ifndef CC_STATUS_INIT.
13465
13466 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13467
13468         * config/arm/arm.md (load_multiple): Reject operand 2 greater than
13469         MAX_LDM_STM_OPS.
13470         (store_multiple): Likewise.
13471
13472 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13473
13474         * config/arm/arm-protos.h (struct tune_params): Add issue_rate field.
13475         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune,
13476         arm_strongarm_tune, arm_xscale_tune, arm_9e_tune, arm_v6t2_tune,
13477         arm_cortex_tune, arm_cortex_a8_tune, arm_cortex_a7_tune,
13478         arm_cortex_a15_tune, arm_cortex_a53_tune, arm_cortex_a57_tune,
13479         arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune,
13480         arm_fa726te_tune arm_cortex_a5_tune, arm_xgene1_tune):
13481         Specify issue_rate value.
13482         (arm_issue_rate): Look up issue rate from tuning structs. Remove
13483         large switch statement.
13484         (arm_marvell_pj4_tune): New struct.
13485         * config/arm/arm-cores.def (marvell-pj4): Use arm_marvell_pj4_tune
13486         struct.
13487
13488 2015-04-23  Richard Biener  <rguenther@suse.de>
13489
13490         * tree-vect-slp.c (vect_find_first_load_in_slp_instance): Remove.
13491         (vect_find_last_store_in_slp_instance): Rename to ...
13492         (vect_find_last_scalar_stmt_in_slp): ... this and generalize.
13493         (vect_analyze_slp_cost_1): Use vector_load for constant defs
13494         and vec_construct for external defs when estimating prologue cost.
13495         (vect_analyze_slp_instance): Do not init SLP_INSTANCE_FIRST_LOAD_STMT.
13496         Compute costs here only when vectorizing loops.
13497         (vect_slp_analyze_bb_1): Compute SLP cost here, after vector types
13498         have been determined.
13499         (vect_schedule_slp_instance): Simplify vectorized code placement
13500         and prepare for in-BB external defs.
13501         * tree-vectorizer.h (struct _slp_instance): Remove first_load member.
13502         (SLP_INSTANCE_FIRST_LOAD_STMT): Remove.
13503         * tree-vect-stmts.c (vect_model_store_cost): Remove PURE_SLP_STMT
13504         guard.
13505         (vect_model_load_cost): Likewise.
13506         (vectorizable_store): Instead add it here.
13507         (vectorizable_load): Likewise.
13508         (vect_is_simple_use): Dump def type textually.
13509
13510 2015-04-23  Richard Biener  <rguenther@suse.de>
13511
13512         * cfgexpand.c (expand_gimple_stmt_1): Use ops.code.
13513         * cfgloop.c (verify_loop_structure): Verify the root loop node.
13514         * except.c (duplicate_eh_regions): Call get_eh_region_from_lp_number_fn
13515         instead of get_eh_region_from_lp_number.
13516         * loop-init.c (fix_loop_structure): If we removed a loop, reset
13517         the SCEV cache.
13518
13519 2015-04-23  Anton Blanchard  <anton@samba.org>
13520
13521         * config/rs6000/rs6000.c (rs6000_output_function_prologue): No
13522         need for -mprofile-kernel to save LR to stack.
13523
13524 2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13525
13526         * config/rs6000/rs6000.c (rtx_is_swappable_p): Commentary
13527         adjustments.
13528         (insn_is_swappable_p): Return 1 for a convert from double to
13529         single precision when all of its uses are splats of BE element
13530         zero.
13531
13532 2015-04-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
13533
13534         * ira-costs.c (record_operand_costs): Fix typo (remove redundant code).
13535
13536 2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13537
13538         PR target/65456
13539         * config/rs6000/rs6000.c (rs6000_option_override_internal):  For
13540         VSX + POWER8, enable TARGET_ALLOW_MOVMISALIGN and
13541         TARGET_EFFICIENT_UNALIGNED_VSX if not selected by command line
13542         option.
13543         (rs6000_builtin_mask_for_load): Return 0 for targets with
13544         efficient unaligned VSX accesses so that the vectorizer will use
13545         direct unaligned loads.
13546         (rs6000_builtin_support_vector_misalignment): Always return true
13547         for targets with efficient unaligned VSX accesses.
13548         (rs6000_builtin_vectorization_cost): Cost of unaligned loads and
13549         stores on targets with efficient unaligned VSX accesses is almost
13550         always the same as the cost of an aligned load or store, so model
13551         it that way.
13552         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Return 0 for
13553         unaligned vectors if we have efficient unaligned VSX accesses.
13554         * config/rs6000/rs6000.opt (mefficient-unaligned-vector): New
13555         undocumented option.
13556
13557 2015-04-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13558
13559         Revert:
13560         2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>
13561
13562         * config.gcc (LIBC_MUSL): New tm_defines macro.
13563         * config/linux.h (OPTION_MUSL): Define.
13564         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
13565         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
13566         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
13567
13568         * config/linux.opt (mmusl): New option.
13569         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
13570         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
13571
13572         * configure: Regenerate.
13573
13574 2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>
13575
13576         * config.gcc (LIBC_MUSL): New tm_defines macro.
13577         * config/linux.h (OPTION_MUSL): Define.
13578         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
13579         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
13580         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
13581
13582         * config/linux.opt (mmusl): New option.
13583         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
13584         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
13585
13586         * configure: Regenerate.
13587
13588 2015-04-22  Yury Gribov  <y.gribov@samsung.com>
13589
13590         * doc/invoke.texi (-fsanitize-sections): Update description.
13591         * asan.c (set_sanitized_sections): Parse incoming arg.
13592         (section_sanitized_p): Support wildcards.
13593
13594 2015-04-22  Tom de Vries  <tom@codesourcery.com>
13595
13596         PR tree-optimization/65823
13597         * gimplify.c (gimplify_modify_expr): Use operand_equal_p to test for
13598         equality between ap_copy and ap.
13599
13600 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13601
13602         PR target/47098
13603         * config/openbsd-oldgas.h (OBSD_LIB_SPEC): Add.
13604
13605 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13606
13607         PR target/47122
13608         * config.gcc (vax-*-openbsd*): Fix name of pthread spec header.
13609
13610 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13611
13612         PR target/55144
13613         * config.gcc (bfin*-linux-uclibc*): Prepend tmake_file and
13614         remove already contained t-files.
13615
13616 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13617
13618         * tree-tailcall.c (suitable_for_tail_opt_p, find_tail_calls):
13619         Remove unneeded forward declarations.
13620         (suitable_for_tail_call_opt_p): Commentary typo fix.
13621
13622 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13623
13624         * varasm.c (emit_bss): Remove redundant guard.
13625
13626 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13627
13628         * config/c6x/c6x.h (TARGET_CPU_CPP_BUILTINS): Add unk_isa.
13629
13630 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13631
13632         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Add BFIN_CPU_UNKNOWN.
13633
13634 2015-04-22  Hale Wang  <hale.wang@arm.com>
13635             Terry Guo  <terry.guo@arm.com>
13636
13637         PR rtl-optimization/64818
13638         * combine.c (can_combine_p): Don't combine user-specified
13639         register if it is in an asm input.
13640
13641 2015-04-21  Jan Hubicka  <hubicka@ucw.cz>
13642
13643         PR ipa/65076
13644         * passes.def (early_optimizations): Add pass_dse.
13645
13646 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13647
13648         * defaults.h (INSN_REFERENCES_ARE_DELAYED): New definition.
13649         * reorg.c (redundant_insn): Remove ifdef
13650         INSN_REFERENCES_ARE_DELAYED.
13651         * resource.c (mark_referenced_resources): Likewise.
13652
13653 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13654
13655         * defaults.h (INSN_SETS_ARE_DELAYED): New definition.
13656         * reorg.c (redundant_insn): Remove ifdef INSN_SETS_ARE_DELAYED.
13657         * resource.c (mark_set_resources): Likewise.
13658
13659 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13660
13661         * caller-save.c (insert_one_insn): Remove ifdef HAVE_cc0.
13662         * cfgcleanup.c (flow_find_cross_jump): Likewise.
13663         (flow_find_head_matching_sequence): Likewise.
13664         (try_head_merge_bb): Likewise.
13665         * combine.c (can_combine_p): Likewise.
13666         (try_combine): Likewise.
13667         (distribute_notes): Likewise.
13668         * df-problems.c (can_move_insns_across): Likewise.
13669         * final.c (final): Likewise.
13670         * gcse.c (insert_insn_end_basic_block): Likewise.
13671         * ira.c (find_moveable_pseudos): Likewise.
13672         * reorg.c (try_merge_delay_insns): Likewise.
13673         (fill_simple_delay_slots): Likewise.
13674         (fill_slots_from_thread): Likewise.
13675         * sched-deps.c (sched_analyze_2): Likewise.
13676
13677 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13678
13679         * df-scan.c (df_get_entry_block_def_set): Remove #ifdef
13680         PIC_OFFSET_TABLE_REGNUM.
13681
13682 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13683
13684         * alias.c (init_alias_target): Remove ifdef
13685         * HARD_FRAME_POINTER_IS_FRAME_POINTER.
13686         * df-scan.c (df_insn_refs_collect): Likewise.
13687         (df_get_regular_block_artificial_uses): Likewise.
13688         (df_get_eh_block_artificial_uses): Likewise.
13689         (df_get_entry_block_def_set): Likewise.
13690         (df_get_exit_block_use_set): Likewise.
13691         * emit-rtl.c (gen_rtx_REG): Likewise.
13692         * ira.c (ira_setup_eliminable_regset): Likewise.
13693         * reginfo.c (init_reg_sets_1): Likewise.
13694         * regrename.c (rename_chains): Likewise.
13695         * reload1.c (reload): Likewise.
13696         (eliminate_regs_in_insn): Likewise.
13697         * resource.c (mark_referenced_resources): Likewise.
13698         (init_resource_info): Likewise.
13699
13700 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13701
13702         * defaults.h (MASK_RETURN_ADDR): New definition.
13703         * except.c (expand_builtin_extract_return_addr): Remove ifdef
13704         MASK_RETURN_ADDR.
13705
13706 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13707
13708         * defaults.h (RETURN_ADDR_OFFSET): New definition.
13709         * except.c (expand_builtin_extract_return_addr): Remove ifdef
13710         RETURN_ADDR_OFFSET.
13711         (expand_builtin_frob_return_addr): Likewise.
13712
13713 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13714
13715         * cfgrtl.c (rtl_merge_blocks): Change #if HAVE_cc0 to if (HAVE_cc0)
13716         (try_redirect_by_replacing_jump): Likewise.
13717         (rtl_tidy_fallthru_edge): Likewise.
13718         * combine.c (insn_a_feeds_b): Likewise.
13719         (find_split_point): Likewise.
13720         (simplify_set): Likewise.
13721         * cprop.c (cprop_jump): Likewise.
13722         * cse.c (cse_extended_basic_block): Likewise.
13723         * df-problems.c (can_move_insns_across): Likewise.
13724         * function.c (emit_use_return_register_into_block): Likewise.
13725         * haifa-sched.c (sched_init): Likewise.
13726         * ira.c (find_moveable_pseudos): Likewise.
13727         * loop-invariant.c (find_invariant_insn): Likewise.
13728         * lra-constraints.c (curr_insn_transform): Likewise.
13729         * postreload.c (reload_combine_recognize_const_pattern):
13730         * Likewise.
13731         * reload.c (find_reloads): Likewise.
13732         * reorg.c (delete_scheduled_jump): Likewise.
13733         (steal_delay_list_from_target): Likewise.
13734         (steal_delay_list_from_fallthrough): Likewise.
13735         (redundant_insn): Likewise.
13736         (fill_simple_delay_slots): Likewise.
13737         (fill_slots_from_thread): Likewise.
13738         (delete_computation): Likewise.
13739         * sched-rgn.c (add_branch_dependences): Likewise.
13740
13741 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13742
13743         * genconfig.c (main): Always define HAVE_cc0.
13744         * caller-save.c (insert_one_insn): Change ifdef HAVE_cc0 to #if
13745         HAVE_cc0.
13746         * cfgcleanup.c (flow_find_cross_jump): Likewise.
13747         (flow_find_head_matching_sequence): Likewise.
13748         (try_head_merge_bb): Likewise.
13749         * cfgrtl.c (rtl_merge_blocks): Likewise.
13750         (try_redirect_by_replacing_jump): Likewise.
13751         (rtl_tidy_fallthru_edge): Likewise.
13752         * combine.c (do_SUBST_MODE): Likewise.
13753         (insn_a_feeds_b): Likewise.
13754         (combine_instructions): Likewise.
13755         (can_combine_p): Likewise.
13756         (try_combine): Likewise.
13757         (find_split_point): Likewise.
13758         (subst): Likewise.
13759         (simplify_set): Likewise.
13760         (distribute_notes): Likewise.
13761         * cprop.c (cprop_jump): Likewise.
13762         * cse.c (cse_extended_basic_block): Likewise.
13763         * df-problems.c (can_move_insns_across): Likewise.
13764         * final.c (final): Likewise.
13765         (final_scan_insn): Likewise.
13766         * function.c (emit_use_return_register_into_block): Likewise.
13767         * gcse.c (insert_insn_end_basic_block): Likewise.
13768         * haifa-sched.c (sched_init): Likewise.
13769         * ira.c (find_moveable_pseudos): Likewise.
13770         * loop-invariant.c (find_invariant_insn): Likewise.
13771         * lra-constraints.c (curr_insn_transform): Likewise.
13772         * optabs.c (prepare_cmp_insn): Likewise.
13773         * postreload.c (reload_combine_recognize_const_pattern):
13774         * Likewise.
13775         * reload.c (find_reloads): Likewise.
13776         (find_reloads_address_1): Likewise.
13777         * reorg.c (delete_scheduled_jump): Likewise.
13778         (steal_delay_list_from_target): Likewise.
13779         (steal_delay_list_from_fallthrough): Likewise.
13780         (try_merge_delay_insns): Likewise.
13781         (redundant_insn): Likewise.
13782         (fill_simple_delay_slots): Likewise.
13783         (fill_slots_from_thread): Likewise.
13784         (delete_computation): Likewise.
13785         (relax_delay_slots): Likewise.
13786         * sched-deps.c (sched_analyze_2): Likewise.
13787         * sched-rgn.c (add_branch_dependences): Likewise.
13788
13789 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13790
13791         * combine.c (find_single_use): Remove HAVE_cc0 ifdef for code
13792         that is trivially ded on non cc0 targets.
13793         (simplify_set): Likewise.
13794         (mark_used_regs_combine): Likewise.
13795         * cse.c (new_basic_block): Likewise.
13796         (fold_rtx): Likewise.
13797         (cse_insn): Likewise.
13798         (cse_extended_basic_block): Likewise.
13799         (set_live_p): Likewise.
13800         * rtlanal.c (canonicalize_condition): Likewise.
13801         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
13802
13803 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13804
13805         * conditions.h: Define macros even if HAVE_cc0 is undefined.
13806         * emit-rtl.c: Define functions even if HAVE_cc0 is undefined.
13807         * final.c: Likewise.
13808         * jump.c: Likewise.
13809         * recog.c: Likewise.
13810         * recog.h: Declare functions even when HAVE_cc0 is undefined.
13811         * sched-deps.c (sched_analyze_2): Always compile case for cc0.
13812
13813 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13814
13815         * defaults.h: New definition of EH_RETURN_DATA_REGNO.
13816         * except.c: Remove definition of EH_RETURN_DATA_REGNO.
13817         * builtins.c (expand_builtin): Remove check if
13818         EH_RETURN_DATA_REGNO is defined.
13819         * df-scan.c (df_bb_refs_collect): Likewise.
13820         (df_get_exit_block_use_set): Likewise.
13821         * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
13822         * ira-lives.c (process_bb_node_lives): Likewise.
13823         * lra-lives.c (process_bb_lives): Likewise.
13824
13825 2015-04-21  Uros Bizjak  <ubizjak@gmail.com>
13826
13827         * config/i386/i386.md (ARGP_REG, FRAME_REG, BND2_REG, BND3_REG,
13828         FIRST_PSEUDO_REG): New.
13829         * config/i386/i386.h (STACK_POINTER_REGNUM): Define to SP_REG.
13830         (ARG_POINTER_REGNUM): Define to ARGP_REG.
13831         (FRAME_POINTER_REGNUM): Define to FRAME_REG.
13832         (HARD_FRAME_POINTER_REGNUM): Define to BP_REG.
13833         (FIRST_PSEUDO_REGISTER): Define to FIRST_PSEUDO_REG.
13834         (FIRST_INT_REG): New.
13835         (LAST_INT_REG): New.
13836         (FIRST_*_REG): Define using *_REG.
13837         (LAST_*_REG): Ditto.
13838         (QI_REGNO_P): Define using FIRST_QU_REG and LAST_QI_REG.
13839         (LEGACY_INT_REGNO_P): Define using FIRST_INT_REG and LAST_INT_REG.
13840         (FIRST_FLOAT_REG): Define to FIRST_STACK_REG.
13841
13842 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13843
13844         * expmed.c: (synth_mult): Only assume overlapping
13845         shift with previous steps in alg_sub_t_m2 case.
13846
13847 2015-04-21  Richard Biener  <rguenther@suse.de>
13848
13849         PR tree-optimization/65650
13850         * tree-ssa-ccp.c (valid_lattice_transition): Allow lattice
13851         transitions involving copies.
13852         (set_lattice_value): Adjust for copy lattice state.
13853         (ccp_lattice_meet): Do not merge UNDEFINED and a copy to the copy
13854         if that doesn't dominate the merge point.
13855         (bit_value_unop): Adjust what we treat as varying mask.
13856         (bit_value_binop): Likewise.
13857         (bit_value_assume_aligned): Likewise.
13858         (evaluate_stmt): When we simplified to a SSA name record a copy
13859         instead of dropping to varying.
13860         (visit_assignment): Simplify.
13861
13862         * gimple-match.h (gimple_simplify): Add another callback.
13863         * gimple-fold.c (fold_stmt_1): Adjust caller.
13864         (gimple_fold_stmt_to_constant_1): Likewise - pass valueize
13865         for the 2nd callback.
13866         * gimple-match-head.c (gimple_simplify): Add a callback that is
13867         used to valueize the stmt operands and use it that way.
13868
13869 2015-04-21  Richard Biener  <rguenther@suse.de>
13870
13871         PR tree-optimization/65788
13872         * tree-ssa-ccp.c (evaluate_stmt): Evaluate to UNDEFINED early.
13873
13874 2015-04-21  Richard Biener  <rguenther@suse.de>
13875
13876         * config/i386/i386.c (ix86_builtin_vectorization_cost): Scale
13877         vec_construct cost by vec_stmt_cost.
13878
13879 2015-04-21  Richard Biener  <rguenther@suse.de>
13880
13881         * cfghooks.h (create_basic_block): Replace with two overloads
13882         for RTL and GIMPLE.
13883         (split_block): Likewise.
13884         * cfghooks.c (split_block): Rename to ...
13885         (split_block_1): ... this.
13886         (split_block): Add two type-safe overloads for RTL and GIMPLE.
13887         (split_block_after_labels): Call split_block_1.
13888         (create_basic_block): Rename to ...
13889         (create_basic_block_1): ... this.
13890         (create_basic_block): Add two type-safe overloads for RTL and GIMPLE.
13891         (create_empty_bb): Call create_basic_block_1.
13892         * cfgrtl.c (fixup_fallthru_exit_predecessor): Use
13893         split_block_after_labels.
13894         * omp-low.c (expand_parallel_call): Likewise.
13895         (expand_omp_target): Likewise.
13896         (simd_clone_adjust): Likewise.
13897         * tree-chkp.c (chkp_get_entry_block): Likewise.
13898         * cgraphunit.c (init_lowered_empty_function): Use the GIMPLE
13899         create_basic_block overload.
13900         (cgraph_node::expand_thunk): Likewise.
13901         * tree-cfg.c (make_blocks): Likewise.
13902         (handle_abnormal_edges): Likewise.
13903         * tree-inline.c (copy_bb): Likewise.
13904
13905 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13906
13907         * config/aarch64/aarch64.md (*<NLOGICAL:optab>_one_cmplsidi3_ze):
13908         New pattern.
13909         (*xor_one_cmplsidi3_ze): Likewise.
13910
13911 2015-04-21  Thomas Preud'homme  <thomas.preudhomme@arm.com>
13912
13913         * df-core.c (df_finish_pass): Iterate over df->problems_by_index[] and
13914         use df_remove_problem rather than manually removing problems, leaving
13915         holes in df->problems_in_order[].
13916
13917 2015-04-21  Tom de Vries  <tom@codesourcery.com>
13918
13919         PR tree-optimization/65802
13920         * internal-fn.def (VA_ARG): Add ECF_NOTROW to flags.
13921
13922 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13923
13924         * common/config/aarch64/aarch64-common.c (AARCH64_CPU_NAME_LENGTH):
13925         Increase to 128.
13926         (aarch64_rewrite_selected_cpu): Do not chop off extensions starting
13927         at '.'.  Assert that there's enough space for everything.
13928
13929 2015-04-21  Uros Bizjak  <ubizjak@gmail.com>
13930
13931         PR tree-optimization/64950
13932         Revert:
13933         2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
13934
13935         PR target/41089
13936         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
13937         as volatile.
13938
13939 2015-04-20  Shiva Chen  <shiva0217@gmail.com>
13940
13941         PR rtl-optimization/64916
13942         * cfgcleanup.c (values_equal_p): New function.
13943         (can_replace_by): Use it.
13944
13945 2015-04-20  Paolo Carlini  <paolo.carlini@oracle.com>
13946
13947         PR c++/65801
13948         * doc/invoke.texi ([-Wnarrowing]): Update.
13949
13950 2015-04-20  Jeff Law  <law@redhat.com>
13951
13952         PR tree-optimization/65658
13953         * tree-ssa-threadupdate.c (redirection_block_p): Remove
13954         redundant test for GIMPLE_ASSIGN in last change.
13955
13956 2015-04-20  Uros Bizjak  <ubizjak@gmail.com>
13957
13958         * config/i386/i386.c (set_pic_reg_ever_live): Remove.
13959         (legitimize_pic_address): Do not call set_pic_reg_ever_live.
13960         (legitimize_tls_address): Ditto.
13961         (ix86_expand_move): Ditto.
13962         (ix86_expand_binary_operator): Remove reload_in_progress checks.
13963         (ix86_expand_unary_operator): Ditto.
13964         * config/i386/predicates.md (index_register_operand): Ditto.
13965
13966 2015-04-20  Selim Belbachir  <selim.belbachir@fr.thalesgroup.com>
13967
13968         * reorg.c (try_merge_delay_insns): Improve correctness checking
13969         for targets with multiple delay slots.
13970
13971 2015-04-20  Jeff Law  <law@redhat.com>
13972
13973         PR tree-optimization/65658
13974         * tree-ssa-threadupdate.c (redirection_block_p): Ignore clobber
13975         statements too.
13976
13977 2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>
13978
13979         * config/aarch64/aarch64.c (aarch64_simd_emit_pair_result_insn): Delete.
13980         * config/aarch64/aarch64-protos.h (aarch64_simd_emit_pair_result_insn):
13981         Delete.
13982
13983 2015-04-20  Jakub Jelinek  <jakub@redhat.com>
13984
13985         PR debug/65807
13986         * dwarf2out.c (add_AT_wide): Clear attr.dw_attr_val.val_entry.
13987
13988 2015-04-20  Richard Biener  <rguenther@suse.de>
13989
13990         * gimple-fold.h (gimple_build): Remove optional valueize arguments.
13991         * gimple-fold.c (gimple_build_valueize): New function.
13992         (gimple_build): Always use gimple_build_valueize as valueize hook.
13993
13994 2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>
13995
13996         PR target/64134
13997         * config/aarch64/aarch64.c (aarch64_expand_vector_init): Load constant
13998         and overwrite variable parts if <= 1/2 the elements are variable.
13999
14000 2015-04-19  Vladimir Makarov  <vmakarov@redhat.com>
14001
14002         PR rtl-optimization/65805
14003         * lra-eliminations.c (lra_eliminate_regs_1): Add new assert.
14004         Don't use difference of offset and previous offset if
14005         update_sp_offset is non-zero.
14006         (eliminate_regs_in_insn): Ditto.
14007         * lra-spills.c (remove_pseudos): Exchange 4th and 6th args in
14008         lra_eliminate_regs_1 call.
14009         * lra-constraints.c (get_equiv_with_elimination): Ditto.
14010
14011 2015-04-18  Trevor Saunders  <tsaunders@mozilla.com>
14012
14013         * hash-table.h: Remove version of hash_table that stored value_type *.
14014         * asan.c, attribs.c, bitmap.c, cfg.c, cgraph.h, config/arm/arm.c,
14015         config/i386/winnt.c, config/ia64/ia64.c, config/mips/mips.c,
14016         config/sol2.c, coverage.c, cselib.c, dse.c, dwarf2cfi.c,
14017         dwarf2out.c, except.c, gcse.c, genmatch.c, ggc-common.c,
14018         gimple-ssa-strength-reduction.c, gimplify.c, haifa-sched.c,
14019         hard-reg-set.h, hash-map.h, hash-set.h, ipa-devirt.c, ipa-icf.h,
14020         ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
14021         loop-iv.c, loop-unroll.c, lto-streamer.h, plugin.c, postreload-gcse.c,
14022         reginfo.c, statistics.c, store-motion.c, trans-mem.c, tree-cfg.c,
14023         tree-eh.c, tree-hasher.h, tree-into-ssa.c, tree-parloops.c,
14024         tree-sra.c, tree-ssa-coalesce.c, tree-ssa-dom.c, tree-ssa-live.c,
14025         tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c,
14026         tree-ssa-pre.c, tree-ssa-reassoc.c, tree-ssa-sccvn.c,
14027         tree-ssa-structalias.c, tree-ssa-tail-merge.c,
14028         tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
14029         valtrack.h, var-tracking.c, vtable-verify.c, vtable-verify.h: Adjust.
14030
14031 2015-04-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14032             Jakub Jelinek  <jakub@redhat.com>
14033
14034         PR target/65787
14035         * config/rs6000/rs6000.c (rtx_is_swappable_p): Ensure that a
14036         subsequent SH_NONE operand does not overwrite an existing *special
14037         value.
14038         (adjust_extract): Handle case where a vec_extract operation is
14039         wrapped in a PARALLEL.
14040
14041 2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>
14042
14043         PR target/65780
14044         * config/i386/i386.c (ix86_binds_local_p): Define only if
14045         TARGET_MACHO and TARGET_DLLIMPORT_DECL_ATTRIBUTES are false.
14046
14047 2015-04-17  Jeff Law  <law@redhat.com>
14048
14049         PR tree-optimization/47679
14050         * Makefile.in (OBJS); Add tree-ssa-scopedtables.o.
14051         * tree-ssa-scopedtables.c: New file.
14052         * tree-ssa-scopedtables.h: New file.
14053         * tree-ssa-dom.c: Include tree-ssa-scopedtables.h.
14054         (const_and_copies): Change name/type.
14055         (record_const_or_copy): Move into tree-ssa-scopedtables.c
14056         (record_const_or_copy_1): Similarly.
14057         (restore_vars_to_original_value): Similarly.
14058         (pass_dominator::execute): Create and destroy const_and_copies table.
14059         (thread_across_edge): Update passing of const_and_copies.
14060         (record_temporary_equivalence): Use method calls rather than
14061         manipulating const_and_copies directly.
14062         (record_equality, cprop_into_successor_phis): Similarly.
14063         (dom_opt_dom_walker::before_dom_children): Similarly.
14064         (dom_opt_dom_walker::after_dom_children): Similarly.
14065         (eliminate_redundant_computations): Similarly.
14066         * tree-ssa-threadedge.c (remove_temporary_equivalences): Delete.
14067         (record_temporary_equivalence): Likewise.
14068         (invalidate_equivalences): Likewise.
14069         (record_temporary_equivalences_from_phis): Update due to type
14070         change of const_and_copies.  Use method calls rather than
14071         manipulating the stack directly.
14072         (record_temporary_equivalences_from_stmts_at_dest): Likewise.
14073         (thread_through_normal_block, thread_across_edge): Likewise.
14074         (thread_across_edge): Likewise.
14075         * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
14076         * tree-vrp.c: Include tree-ssa-scopedtables.h.  Change type
14077         of equiv_stack.
14078         (identify_jump_threads): Update due to type change of equiv_stack.
14079         (finalize_jump_threads): Delete the equiv_stack when complete.
14080
14081 2015-04-17  Uros Bizjak  <ubizjak@gmail.com>
14082
14083         * config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
14084         * config/i386/i386.c (ix86_legitimize_reload_address): Ditto.
14085         * config/i386/i386-protos.h (ix86_legitimize_reload_address): Ditto.
14086
14087 2015-04-17  Andreas Tobler  <andreast@gcc.gnu.org>
14088
14089         PR target/65535
14090         * config.gcc: Exit with a comment when we do not have a major version
14091         number for the FreeBSD target.
14092
14093 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
14094
14095         PR target/65689
14096         * genpreds.c (struct constraint_data): Add maybe_allows_reg and
14097         maybe_allows_mem bitfields.
14098         (maybe_allows_none_start, maybe_allows_none_end,
14099         maybe_allows_reg_start, maybe_allows_reg_end, maybe_allows_mem_start,
14100         maybe_allows_mem_end): New variables.
14101         (compute_maybe_allows): New function.
14102         (add_constraint): Use it to initialize maybe_allows_reg and
14103         maybe_allows_mem fields.
14104         (choose_enum_order): Sort the non-is_register/is_const_int/is_memory/
14105         is_address constraints such that those that allow neither mem nor
14106         reg come first, then those that only allow reg but not mem, then
14107         those that only allow mem but not reg, then the rest.
14108         (write_allows_reg_mem_function): New function.
14109         (write_tm_preds_h): Call it.
14110         * stmt.c (parse_output_constraint, parse_input_constraint): Use
14111         the generated insn_extra_constraint_allows_reg_mem function
14112         instead of always setting *allows_reg = true; *allows_mem = true;
14113         for unknown extra constraints.
14114
14115 2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>
14116
14117         PR target/65780
14118         * output.h (default_binds_local_p_3): New.
14119         * varasm.c (default_binds_local_p_3): Make it public.  Take an
14120         argument to indicate if common symbol may be local.  If common
14121         symbol may be local, treat non-external variable as defined
14122         locally.
14123         (default_binds_local_p_2): Pass !flag_pic to default_binds_local_p_3.
14124         (default_binds_local_p_1): Pass false to default_binds_local_p_3.
14125         * config/i386/i386.c (ix86_binds_local_p): New.
14126         (TARGET_BINDS_LOCAL_P): Replace default_binds_local_p_2 with
14127         ix86_binds_local_p.
14128
14129 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
14130
14131         PR debug/65771
14132         * dwarf2out.c (mem_loc_descriptor): For CONST, fallback to
14133         trying mem_loc_descriptor on XEXP (rtl, 0).
14134
14135 2015-04-17  Martin Liska  <mliska@suse.cz>
14136
14137         * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
14138         Release symbol_compare_collection.
14139         * ipa-reference.c: Add TODO that a vector should be released.
14140
14141 2015-04-17  Sivanupandi Pitchumani <Pitchumani.Sivanupandi@atmel.com>
14142
14143         PR target/65296
14144         * config/avr/gen-avr-mmcu-specs.c (*avrlibc_startfile): Adjust
14145         to new AVR-LibC file layout (bug #44574).
14146         (*avrlibc_devicelib): Same.
14147         * config/avr/avr-mcus.def: Adjust comments.
14148         * config/avr/avr.opt (nodevicelib): Adjust help.
14149
14150 2015-04-17  Alan Lawrence  <alan.lawrence@arm.com>
14151
14152         * config/aarch64/arm_neon.h (vdup_n_f32): Remove forward declaration.
14153
14154 2015-04-17  Patrick Palka  <ppalka@gcc.gnu.org>
14155
14156         PR c++/64527
14157         * gimplify.c (gimplify_init_constructor): Always emit a
14158         side-effecting constructor.
14159
14160 2015-04-17  Tom de Vries  <tom@codesourcery.com>
14161
14162         PR tree-optimization/64950
14163         * gimplify.c (gimplify_function_tree): Tentatively set PROP_gimple_lva
14164         in cfun->curr_properties.
14165         (gimplify_va_arg_expr): Clear PROP_gimple_lva in cfun->curr_properties
14166         if we generate an IFN_VA_ARG.
14167         * tree-inline.c (expand_call_inline): Reset PROP_gimple_lva in dest
14168         function if PROP_gimple_lva is not set in src function.
14169
14170 2015-04-17  Tom de Vries  <tom@codesourcery.com>
14171             Michael Matz  <matz@suse.de>
14172
14173         PR tree-optimization/64950
14174         * gimple-iterator.c (update_modified_stmts): Remove static.
14175         * gimple-iterator.h (update_modified_stmts): Declare.
14176         * gimplify.c (gimplify_modify_expr): Handle IFN_VA_ARG.
14177         (gimplify_va_arg_internal): New function.
14178         (gimplify_va_arg_expr): Use IFN_VA_ARG.
14179         * gimplify.h (gimplify_va_arg_internal): Declare.
14180         * internal-fn.c (expand_VA_ARG): New unreachable function.
14181         * internal-fn.def (VA_ARG): New DEF_INTERNAL_FN.
14182         * tree-stdarg.c (gimple_call_ifn_va_arg_p, expand_ifn_va_arg_1)
14183         (expand_ifn_va_arg): New function.
14184         (pass_data_stdarg): Add PROP_gimple_lva to properties_provided field.
14185         (pass_stdarg::execute): Call expand_ifn_va_arg.
14186         (pass_data_lower_vaarg): New pass_data.
14187         (pass_lower_vaarg): New gimple_opt_pass.
14188         (pass_lower_vaarg::gate, pass_lower_vaarg::execute)
14189         (make_pass_lower_vaarg): New function.
14190         * cfgexpand.c (pass_data_expand): Add PROP_gimple_lva to
14191         properties_required field.
14192         * passes.def (all_passes): Add pass_lower_vaarg.
14193         * tree-pass.h (PROP_gimple_lva): Add define.
14194         (make_pass_lower_vaarg): Declare.
14195
14196 2015-04-17  Tom de Vries  <tom@codesourcery.com>
14197
14198         * fold-const.c (operand_equal_p): Handle INTERNAL_FNs.
14199         * calls.c (call_expr_flags): Same.
14200
14201 2015-04-17  Tom de Vries  <tom@codesourcery.com>
14202
14203         * tree-stdarg.c (optimize_va_list_gpr_fpr_size): Factor out of ...
14204         (pass_stdarg::execute): ... here.
14205
14206 2015-04-17  Tom de Vries  <tom@codesourcery.com>
14207             Michael Matz  <matz@suse.de>
14208
14209         * tree-cfg.c (make_blocks_1): Factor out of ...
14210         (make_blocks): ... here.
14211         (make_edges_bb): Factor out of ...
14212         (make_edges): ... here.
14213         (gimple_find_sub_bbs): New function.
14214         * tree-cfg.h (gimple_find_sub_bbs): Declare.
14215
14216 2015-04-17  Tom de Vries  <tom@codesourcery.com>
14217
14218         * tree.c (free_lang_data): Disable lang_hooks.gimplify_expr.
14219
14220 2015-04-17  Yury Gribov  <y.gribov@samsung.com>
14221
14222         * asan.c (set_sanitized_sections): New function.
14223         (section_sanitized_p): Ditto.
14224         (asan_protect_global): Optionally sanitize user-defined
14225         sections.
14226         * asan.h (set_sanitized_sections): Declare new function.
14227         * common.opt (fsanitize-sections): New option.
14228         * doc/invoke.texi (-fsanitize-sections): Document new option.
14229         * opts-global.c (handle_common_deferred_options): Handle new
14230         option.
14231
14232 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
14233
14234         PR debug/65771
14235         * dwarf2out.c (loc_list_from_tree): Return NULL
14236         for DEBUG_EXPR_DECL.
14237
14238 2015-04-17  Christian Bruel  <christian.bruel@st.com>
14239
14240         * ipa-inline.c (can_inline_edge_p): Allow inlining of functions with
14241         same attributes.
14242
14243 2015-04-16  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
14244
14245         * ira-color.c (setup_left_conflict_sizes_p): Do not process
14246         node itself when computing left conflict subnode size.
14247
14248 2015-04-16  Uros Bizjak  <ubizjak@gmail.com>
14249
14250         * config/i386/predicates.md (register_mixssei387nonimm_operand): New.
14251         * config/i386/i386.md (*fop_<mode>_1_mixed): Merge with
14252         *fop_<mode>_1_sse using enabled attribute.  Use
14253         register_mixssei387nonimm_operand operand 1 predicate. Change
14254         alternative 3 constraints from "x" to "v".
14255
14256 2015-04-16  Richard Biener  <rguenther@suse.de>
14257
14258         PR tree-optimization/65774
14259         * tree-ssa-ccp.c (evaluate_stmt): Constrain types we invoke
14260         bit-value tracking on.
14261
14262 2015-04-16  Richard Biener  <rguenther@suse.de>
14263
14264         PR tree-optimization/64277
14265         * tree-vrp.c (check_array_ref): Fix anti-range handling,
14266         simplify upper bound handling.
14267         (search_for_addr_array): Simplify.
14268         (check_array_bounds): Handle ADDR_EXPRs here.
14269         (check_all_array_refs): Simplify.
14270
14271 2015-04-16  Uros Bizjak  <ubizjak@gmail.com>
14272
14273         * config/i386/i386.c (print_reg): Rewrite function.
14274
14275 2015-04-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14276
14277         * config/s390/s390.h (IRA_HARD_REGNO_ADD_COST_MULTIPLIER):
14278         Invert the condition.
14279
14280 2015-04-16  Renlin Li  <renlin.li@arm.com>
14281
14282         * simplify-rtx.c (simplify_unary_operation_1): Fix a typo. Enable two
14283         simplifications for UNSIGNED_FLOAT.
14284
14285 2015-04-16  Nick Clifton  <nickc@redhat.com>
14286
14287         * config/rl78/rl78-opts.h (enum rl78_mul_types): Add MUL_G14 and
14288         MUL_UNINIT.
14289         (enum rl78_cpu_type): New.
14290         * config/rl78/rl78-virt.md (attr valloc): Add divhi and divsi.
14291         (umulhi3_shift_virt): Remove m constraint from operand 1.
14292         (umulqihi3_virt): Likewise.
14293         * config/rl78/rl78.c (rl78_option_override): Add code to process
14294         -mcpu and -mmul options.
14295         (rl78_alloc_physical_registers): Add code to handle divhi and
14296         divsi valloc attributes.
14297         (set_origin): Likewise.
14298         * config/rl78/rl78.h (RL78_MUL_G14): Define.
14299         (TARGET_G10, TARGET_G13, TARGET_G14): Define.
14300         (TARGET_CPU_CPP_BUILTINS): Define __RL78_MUL_xxx__ and
14301         __RL78_Gxx__.
14302         (ASM_SPEC): Pass -mcpu on to assembler.
14303         * config/rl78/rl78.md (mulqi3): Add a clobber of AX.
14304         (mulqi3_rl78): Likewise.
14305         (mulhi3_g13): Likewise.
14306         (mulhi3): Generate the G13 or G14 versions of the insn directly.
14307         (mulsi3): Likewise.
14308         (mulhi3_g14): Add clobbers of AX and BC.
14309         (mulsi3_g14): Likewise.
14310         (mulsi3_g13): Likewise.
14311         (udivmodhi4, udivmodhi4_g14, udivmodsi4): New patterns.
14312         (udivmodsi4_g14, udivmodsi4_g13): New patterns.
14313         * config/rl78/rl78.opt (mmul): Initialise value to
14314         RL78_MUL_UNINIT.
14315         (mcpu): New option.
14316         (m13, m14, mrl78): New option aliases.
14317         * config/rl78/t-rl78 (MULTILIB_OPTIONS): Add mg13 and mg14.
14318         (MULTILIB_DIRNAMES): Add g13 and g14.
14319         * doc/invoke.texi: Document -mcpu and -mmul options.
14320
14321 2015-04-16  Richard Biener  <rguenther@suse.de>
14322
14323         * tree-ssa-ccp.c (likely_value): See if we have operands that
14324         are marked as never simulate again and return CONSTANT in this
14325         case.
14326         * tree-ssa-propagate.c (simulate_stmt): Mark stmts that do
14327         not have any operands that will be simulated again as
14328         not being simulated again.
14329
14330 2015-04-15  Uros Bizjak  <ubizjak@gmail.com>
14331
14332         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed):
14333         Merge with *cmpi<FPCMP:unord><MODEF:mode>_sse using enabled attribute.
14334         (*extendsfdf2_mixed): Merge with *extendsfdf2_sse using enabled
14335         attribute.
14336         (*truncdfsf_fast_mixed): Merge with *truncdfsf_fast_sse using
14337         enabled attribute.
14338         (*float<SWI48:mode><MODEF:mode>2_mixed): Rename from
14339         *float<SWI48:mode><MODEF:mode>2_sse.
14340         (*absneg<mode>2_mixed): Merge with *absneg<mode>2_sse using
14341         enabled attribute.
14342         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_sse using
14343         enabled attribute.
14344
14345 2015-04-15  Tom de Vries  <tom@codesourcery.com>
14346
14347         PR other/65487
14348         * function.c (push_dummy_function): New function.
14349         (init_dummy_function_start): Use push_dummy_function.
14350         (pop_dummy_function): New function.  Factored out of ...
14351         (expand_dummy_function_end): ... here.
14352         * function.h (push_dummy_function, pop_dummy_function): Declare.
14353         * passes.c (pass_manager::dump_passes): Use push_dummy_function and
14354         pop_dummy_function.
14355         * tree-chkp.c (chkp_gate): Handle cgraph_node::get (cfun->decl) == NULL.
14356
14357 2015-04-15  Jeff Law  <law@redhat.com>
14358
14359         PR tree-optimization/47679
14360         * tree-ssa-dom.c (build_and_record_new_cond): Moved to avoid
14361         need for forward declaration in upcoming changes.
14362         (record_conditions, record_edge_info): Likewise.
14363
14364         PR rtl-optimization/42522
14365         * cse.c (fold_rtx): Try to simplify a ZERO_EXTRACT or
14366         SIGN_EXTRACT as a whole object rather than simplifying
14367         its operand.
14368
14369 2015-04-15  Jakub Jelinek  <jakub@redhat.com>
14370
14371         PR ipa/65765
14372         * ipa-icf-gimple.c (func_checker::compare_bb): For GIMPLE_NOP
14373         and GIMPLE_PREDICT use break instead of return true. For
14374         GIMPLE_EH_DISPATCH, compare dispatch region.
14375
14376 2015-04-14  Matthew Wahab  <matthew.wahab@arm.com>
14377
14378         * doc/extend.texi (__sync Builtins): Simplify some text.  Update
14379         details about the implementation.  Make clear preference for
14380         __atomic builtins.  Reduce possibility of future change.
14381
14382 2015-04-15  Nick Clifton  <nickc@redhat.com>
14383
14384         * config/rx/rx.opt (mallow-string-insns): New option.
14385         * config/rx/rx.c (RX_BUILTIN_RMPA): Disable the use of this
14386         builtin if string instructions are denied.
14387         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Define
14388         __RX_ALLOW_STRING_INSNS__ or __RX_DISALLOW_STRING_INSNS__, as
14389         appropriate.
14390         (ASM_SPEC): Pass -mno-allow-string-insns on to the assembler.
14391         * config/rx/rx.md (movstr): Enable pattern only if string
14392         instructions are allowed.
14393         (rx_movstr, rx_strend, movmemsi, rx_movmem): Likewise.
14394         (cmpstrnsi, cmpstrsi, rx_cmpstrn, rmpa): Likewise.
14395         * config/rx/t-rx (MULTILIB_OPTIONS): Add mno-allow-string-insns.
14396         (MULTILIB_DIRNAMES): Add no-strings.
14397         * doc/invoke.texi: Document -mno-allow-string-insns.
14398
14399 2015-04-15  Alan Modra  <amodra@gmail.com>
14400
14401         PR target/65408
14402         PR target/58744
14403         PR middle-end/36043
14404         * calls.c (load_register_parameters): Don't load past end of
14405         mem unless suitably aligned.
14406
14407 2015-04-15  Nick Clifton  <nickc@redhat.com>
14408
14409         * config/rl78/rl78.c (rl78_expand_prologue): Mark large stack
14410         decrement instruction as being frame related.
14411         (rl78_print_operand_1): Handle 'p' modifier to add +0 to HL
14412         based addresses.
14413         If zero extending a function address enclose the operation in
14414         %code(...).
14415         (rl78_preferred_reload_class): New function.
14416         (TARGET_PREFERRED_RELOAD_CLASS): Define.
14417         * config/rl78/rl78.md: Remove useless constraints in expanders.
14418         (mulqi3_rl78): Remove + qualifier on input-only operand 1.
14419         (mulhi3_rl78): Likewise.
14420         (mulhi3_g13): Likewise.
14421         (mulsi3_rl78): Likewise.
14422         (es_addr): Move to before the multiply patterns.
14423
14424 2015-04-15  Alan Modra  <amodra@gmail.com>
14425
14426         * function.h (struct emit_status): Delete x_first_insn, x_last_insn
14427         and sequence_stack.  Add seq.
14428         (seq_stack): Delete.
14429         * function.c (prepare_function_start): Don't access x_last_insn.
14430         * emit-rtl.h (get_current_sequence, get_topmost_sequence): New.
14431         (get_insns, set_first_insn, get_last_insn, set_last_insn): Use them.
14432         * emit_rtl.c (start_sequence, push_topmost_sequence,
14433         pop_topmost_sequence, end_sequence, in_sequence_p, init_emit): Use
14434         sequence accessors.
14435         (get_last_insn_anywhere, add_insn_after_nobb, add_insn_before_nobb,
14436         remove_insn): Likewise.  Simplify.
14437         * config/m32c/m32c.c (m32c_leaf_function_p): Use push_topmost_sequence
14438         and pop_topmost_sequence.
14439         (m32c_function_needs_enter): Use get_topmost_sequence.  Ignore
14440         debug insns.
14441         * config/rs6000/rs6000.c (rs6000_call_aix): Use get_current_sequence.
14442
14443 2015-04-14  Yvan Roux  <yvan.roux@linaro.org>
14444
14445         PR target/65729
14446         * lra-constraints.c (prohibited_class_reg_set_mode_p): Restore and fix
14447         the assertiion.
14448
14449 2015-04-14  Uros Bizjak  <ubizjak@gmail.com>
14450
14451         * config/i386/i386.h (LEGACY_INT_REG_P): New define.
14452         (LEGACY_INT_REGNO_P): Ditto.
14453         (GENERAL_REGNO_P): Use LEGACY_INT_REGNO_P.
14454         (ANY_MASK_REG_P): Remove.
14455         (BND_REG_P): Rename from ANY_BND_REG_P.
14456         * config/i386/i386.c (print_reg): Use LEGACY_INT_REG_P to print
14457         legacy integer registers.  Do not handle MMX_REG_P in a special way.
14458         Merge 64byte and 32byte SSE handling.
14459
14460 2015-04-14  Nick Clifton  <nickc@redhat.com>
14461
14462         * expr.c (expand_assignment): Force an address offset computation
14463         into a register before changing its mode.
14464         (expand_expr_real_1): Likewise.
14465
14466 2015-04-14  Alan Lawrence  <alan.lawrence@arm.com>
14467
14468         * config/aarch64/arm_neon.h (vst1_lane_f32, vst1_lane_f64,
14469         vst1_lane_p8, vst1_lane_p16, vst1_lane_s8, vst1_lane_s16,
14470         vst1_lane_s32, vst1_lane_s64, vst1_lane_u8, vst1_lane_u16,
14471         vst1_lane_u32, vst1_lane_u64, vst1q_lane_f32, vst1q_lane_f64,
14472         vst1q_lane_p8, vst1q_lane_p16, vst1q_lane_s8, vst1q_lane_s16,
14473         vst1q_lane_s32, vst1q_lane_s64, vst1q_lane_u8, vst1q_lane_u16,
14474         vst1q_lane_u32, vst1q_lane_u64): Reimplement with pointer dereference
14475         and __aarch64_vget_lane_any.
14476
14477 2015-04-14  Jakub Jelinek  <jakub@redhat.com>
14478
14479         PR rtl-optimization/65761
14480         * cfgrtl.c (rtl_split_edge): For EDGE_CROSSING split, use
14481         get_last_bb_insn (after) instead of NEXT_INSN (BB_END (after)).
14482
14483 2015-04-14  Richard Biener  <rguenther@suse.de>
14484
14485         * graphite-scop-detection.c: Do not include cp/cp-tree.h.
14486         (graphite_can_represent_scev): Use POINTER_TYPE_P.
14487
14488 2015-04-14  Richard Biener  <rguenther@suse.de>
14489
14490         PR tree-optimization/65758
14491         * tree-ssa-ccp.c (get_value_from_alignment): Adjust mask test
14492         against -1.
14493         (ccp_lattice_meet): Likewise.
14494         (bit_value_unop): Likewise.
14495         (bit_value_binop): Likewise.
14496         (bit_value_assume_aligned): Likewise.
14497
14498 2015-04-14  Christian Bruel  <christian.bruel@st.com>
14499
14500         * execute_dwarf2_frame (dw_frame_pointer_regnum): Reinitialize for each
14501         function.
14502
14503 2015-04-14  Marc Glisse  <marc.glisse@inria.fr>
14504
14505         PR tree-optimization/63387
14506         * match.pd ((x unord x) | (y unord y) -> (x unord y),
14507         (x unord x) | (x unord y) -> (x unord y)): New simplifications.
14508
14509 2015-04-14  Uros Bizjak  <ubizjak@gmail.com>
14510
14511         * config/i386/predicates.md (any_QIreg_operand): Rename from
14512         q_regs_operand.  Do not process subregs.
14513         (QIreg_operand): Use QI_REGNO_P predicate.
14514         (ext_QIreg_operand): Ditto.
14515         (ext_register_operand): Ditto.
14516         * config/i386/i386.md (TEST splitters): Use QIreg_operand predicate.
14517         (AND splitters): Ditto.
14518         (AND with -65536 splitter): Add SWI48 mode for operand 0.
14519         (AND with -256 splitter): Use any_QIreg_operand predicate and
14520         SWI248 mode for operand 0.
14521         (AND with -65281 splitter): Use QIreg_operand predicate and SWI248
14522         mode for operand 0.
14523         (SETCC + MOVZBL peepholes): Update for renamed any_QIreg_operand.
14524
14525 2015-04-13  Gerald Pfeifer  <gerald@pfeifer.com>
14526
14527         * doc/plugins.texi: Rewrite first introductory paragraph.
14528
14529 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
14530
14531         * tree-vrp.c (nonnull_arg_p): THIS pointers and references are non-zero.
14532         (gimple_stmt_nonzero_warnv_p): Reference return values are non-zero.
14533
14534 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
14535
14536         * ipa-profie.c (ipa_profile): Check number of parameters
14537         and possible polymorphic call targets before
14538         devirtualizing.
14539
14540 2015-04-13  Uros Bizjak  <ubizjak@gmail.com>
14541
14542         * config/i386/i386.md (*bmi2_umul<mode><dwi>3_1): Merge from
14543         *bmi2_umulsidi3_1 and *bmi2_umulditi3_1 using DWIH mode iterator.
14544
14545 2015-04-13  Richard Biener  <rguenther@suse.de>
14546
14547         PR tree-optimization/65204
14548         * tree-ssa-ccp.c (evaluate_stmt): Always evaluate address
14549         takens for bit-CCP.
14550
14551 2015-04-13  Richard Biener  <rguenther@suse.de>
14552
14553         PR target/65660
14554         * config/i386/i386.c (bdver1_cost): Double cond_taken_branch_cost
14555         and cond_not_taken_branch_cost to 4 and 2.
14556         (bdver2_cost): Likewise.
14557         (bdver3_cost): Likewise.
14558         (bdver4_cost): Likewise.
14559
14560 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
14561
14562         * hash-table.h (hash_table constructor): Add mem stats.
14563         (alloc_entries): Likewise.
14564
14565 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
14566
14567         * ipa-cp.c (ipcp_driver): Relase prev_edge.
14568         * passes.c (execute_one_pass): Only add transform if pass has one.
14569
14570 2015-04-12  Joseph Myers  <joseph@codesourcery.com>
14571
14572         * config/i386/i386.c (ix86_option_override_internal): Don't set
14573         -fprefetch-loop-arrays if optimizing for size.
14574
14575 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
14576             Gerald Pfeifer  <gerald@pfeifer.com>
14577
14578         * doc/contrib.texi (Contributors): Add Martin Jambor and
14579         Michael Matz.
14580
14581 2015-04-12  Jakub Jelinek  <jakub@redhat.com>
14582
14583         * BASE-VER: Set to 6.0.0.
14584
14585         PR tree-optimization/65747
14586         * ipa-icf-gimple.c (func_checker::compare_operand): Use compare_operand
14587         rather than compare_ssa_name for OBJ_TYPE_REF_OBJECT.
14588
14589 2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
14590
14591         * doc/invoke.texi (-Wmemset-transposed-args): Break a long
14592         sentence.  Improve grammar.
14593
14594 2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
14595
14596         * doc/contrib.texi (Contributors): Add Maxim Kuvyrkov.
14597
14598 2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
14599
14600         PR ipa/65743
14601         * ipa-inline-transform.c (speculation_removed): Remove static var.
14602         (check_speculations): New function.
14603         (clone_inlined_nodes): Do not check spculations.
14604         (inline_call): Call check_speculations.
14605         * ipa-prop.c (ipa_make_edge_direct_to_target): Do not
14606         consider non-invariants.
14607
14608 2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
14609             Martin Liska  <mliska@suse.cz>
14610
14611         PR ipa/65722
14612         * ipa-icf.c (sem_item::compare_cgraph_references): function and
14613         variable can not match.
14614         (sem_item::update_hash_by_addr_refs): Fix handling of virtual tables.
14615         (sem_variable::equals_wpa): Fix checking of DECL_FINAL_P patch.
14616
14617 2015-04-11  Jakub Jelinek  <jakub@redhat.com>
14618
14619         PR tree-optimization/65735
14620         * tree-ssa-threadedge.c (fsm_find_control_statement_thread_paths):
14621         Remove visited_phis argument, add visited_bbs, avoid recursing into the
14622         same bb rather than just into the same phi node.
14623         (thread_through_normal_block): Adjust caller.
14624
14625 2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
14626
14627         * doc/contrib.texi (Contributors): Add Ira Rosen.
14628
14629 2015-04-11  Benno Schulenberg  <bensberg@justemail.net>
14630
14631         * gcov.c (find_source): Fix miswording in error message.
14632         * config/i386/i386.c (ix86_handle_cconv_attribute): Likewise.
14633         (ix86_expand_sse_comi_round): Fix typo in error message.
14634
14635 2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
14636
14637         * doc/contrib.texi (Contributors): Add Laurynas Biveinis.
14638
14639 2015-04-10  Gerald Pfeifer  <gerald@pfeifer.com>
14640
14641         * doc/contrib.texi (Contributors): Update Joe Buck's entry.
14642
14643 2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>
14644
14645         PR target/65710
14646         * lra-assigns.c (spill_for): Update smallest_bad_spills_num.
14647         Print bad_spills_num and insn_pseudos_num.
14648
14649 2015-04-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14650
14651         PR target/65694
14652         * config/arm/arm.c (arm_canonicalize_comparison): Use ARM_SIGN_EXTEND
14653         when creating +1 values for SImode.
14654
14655 2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>
14656
14657         PR target/65729
14658         * lra-constraints.c (prohibited_class_reg_set_mode_p): Comment the
14659         assert.
14660
14661 2015-04-10  Jakub Jelinek  <jakub@redhat.com>
14662             Iain Sandoe  <iain@codesourcery.com>
14663
14664         PR target/65351
14665         * configure: Regenerate.
14666
14667 2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>
14668
14669         PR target/65671
14670         * config/i386/sse.md: Generate vextract32x4 if AVX-512DQ is disabled.
14671
14672 2015-04-09  Gerald Pfeifer  <gerald@pfeifer.com>
14673
14674         * doc/contrib.texi (Contributors): Add John Marino.
14675
14676 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
14677
14678         PR tree-optimization/65709
14679         * ubsan.c (instrument_mem_ref): Use TREE_TYPE (base) instead of
14680         TREE_TYPE (TREE_TYPE (t)).
14681
14682 2015-04-09  Vladimir Makarov  <vmakarov@redhat.com>
14683
14684         PR target/65710
14685         * lra-int.h (lra_bad_spill_regno_start): New.
14686         * lra.c (lra_bad_spill_regno_start): New.
14687         (lra): Set up lra_bad_spill_regno_start.  Set up
14688         lra_constraint_new_regno_start unconditionally.
14689         * lra-assigns.c (spill_for): Use lra_bad_spill_regno_start for
14690         spill preferences.
14691
14692 2015-04-09  Marek Polacek  <polacek@redhat.com>
14693             Jakub Jelinek  <jakub@redhat.com>
14694
14695         PR middle-end/65554
14696         * gimple-fold.c (gimple_fold_builtin_memory_op): Update comment.
14697         (fold_ctor_reference): Use STRIP_USELESS_TYPE_CONVERSION instead
14698         of STRIP_NOPS.
14699
14700 2015-04-09  Segher Boessenkool  <segher@kernel.crashing.org>
14701
14702         PR rtl-optimization/65693
14703         * combine.c (is_parallel_of_n_reg_sets): Move outside of
14704         #ifndef HAVE_cc0.
14705
14706 2015-04-09  Georg-Johann Lay  <avr@gjlay.de>
14707
14708         PR target/65296
14709         * config/avr/driver-avr.c (avr_devicespecs_file): Don't specify a
14710         device specs file if "device-specs%s" didn't resolve to a path.
14711
14712 2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>
14713
14714         PR target/65676
14715         * config/i386/i386.c (fixup_modeless_constant): New.
14716         (ix86_expand_args_builtin): Fixup modeless constant operand.
14717         (ix86_expand_round_builtin): Ditto.
14718         (ix86_expand_special_args_builtin): Ditto.
14719         (ix86_expand_builtin): Ditto.
14720
14721 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
14722
14723         PR target/65693
14724         * config/i386/i386.md (*udivmod<mode>4_pow2): Allow
14725         any pow2 integer in between 2 and 0x80000000U inclusive.
14726
14727 2015-04-08  Segher Boessenkool  <segher@kernel.crashing.org>
14728
14729         PR rtl-optimization/65693
14730         * combine.c (is_parallel_of_n_reg_sets): Change first argument
14731         from an rtx_insn * to an rtx.
14732         (try_combine): Adjust both callers.  Use it once more.
14733
14734 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
14735
14736         * tree-chkp.c (chkp_find_const_bounds_var): Remove.
14737         (chkp_make_static_const_bounds): Search existing
14738         symbol by assembler name.  Use make_decl_one_only.
14739         (chkp_get_zero_bounds_var): Remove node search which
14740         is now performed in chkp_make_static_const_bounds.
14741         (chkp_get_none_bounds_var): Likewise.
14742
14743 2015-04-08  Michael Witten  <mfwitten@gmail.com>
14744
14745         * doc/extend.texi (Attribute Syntax): Add a trailing semicolon
14746         to an example.
14747
14748 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
14749
14750         * tree.h (CONVERT_EXPR_P): Commentary typo fix.
14751
14752 2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>
14753
14754         * doc/extend.texi (__sync Builtins): Fix grammar.
14755
14756 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
14757
14758         * doc/cfg.texi (GIMPLE statement iterators): Fix typo.
14759
14760 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
14761
14762         * varasm.c (emit_local): Move definition of align.
14763
14764 2015-04-08  Julian Brown  <julian@codesourcery.com>
14765
14766         * config/nvptx/mkoffload.c (process): Support variable mapping.
14767
14768 2015-03-27  Trevor Saunders  <tbsaunde@tbsaunde.org>
14769
14770         * config/alpha/alpha.c (alpha_use_linkage): Change type of slot to
14771         alpha_links **.
14772         (alpha_write_one_linkage): Correct typo.
14773
14774 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
14775
14776         * ipa-comdats.c (propagate_comdat_group): Walk through thunks.
14777
14778 2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>
14779
14780         * doc/install.texi (bootstrap-lto-noplugin): Rewrite.
14781
14782 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
14783
14784         * tree-chkp.h (chkp_insert_retbnd_call): New.
14785         * tree-chkp.c (chkp_insert_retbnd_call): New.
14786         * ipa-split.c (insert_bndret_call_after): Remove.
14787         (split_function): Use chkp_insert_retbnd_call.
14788         * cgraphunit.c (cgraph_node::expand_thunk): Build returned
14789         bounds for instrumented functions.
14790
14791 2015-04-07  Jan Hubicka  <hubicka@ucw.cz>
14792
14793         PR ipa/65540
14794         * calls.c (initialize_argument_information): When producing tail
14795         call also turn SSA_NAMES passed by references to original PARM_DECLs
14796
14797 2015-04-07  Vladimir Makarov  <vmakarov@redhat.com>
14798
14799         PR target/65648
14800         * lra-remat.c (do_remat): Process input and non-input insn
14801         registers separately.
14802
14803 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
14804
14805         PR debug/65678
14806         * valtrack.c (debug_lowpart_subreg): New function.
14807         (dead_debug_insert_temp): Use it.
14808
14809         PR middle-end/65680
14810         * expr.c (get_inner_reference): Handle bit_offset that doesn't fit
14811         into signed HOST_WIDE_INT the same as negative bit_offset.
14812
14813 2015-04-07  Ilya Enkovich  <ilya.enkovich@intel.com>
14814
14815         * ipa-comdats.c (ipa_comdats): Visit all thunks
14816         to set proper comdat group.
14817
14818 2015-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14819
14820         PR target/65489
14821         * config/arm/arm.c (arm_legitimate_constant_p_1): Remove restriction
14822         on constants for NEON VSTRUCT modes.
14823
14824 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
14825             Iain Sandoe  <iain@codesourcery.com>
14826
14827         PR target/65351
14828         * configure: Regenerate.
14829
14830 2015-04-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
14831
14832         PR target/65614
14833         * config/rs6000/rs6000.c (struct processor_costs): Add cost field
14834         for SF->DF conversions to make FLOAT_EXTEND more expensive, so
14835         that LFD is used to load double constants instead of LFS.  Add
14836         defaults for all costs structures.  Add comments for missing
14837         initialization fields.
14838         (size32_cost): Likewise.
14839         (size64_cost): Likewise.
14840         (rs64a_cost): Likewise.
14841         (mpccore_cost): Likewise.
14842         (ppc403_cost): Likewise.
14843         (ppc405_cost): Likewise.
14844         (ppc440_cost): Likewise.
14845         (ppc476_cost): Likewise.
14846         (ppc601_cost): Likewise.
14847         (ppc603_cost): Likewise.
14848         (ppc604_cost): Likewise.
14849         (ppc604e_cost): Likewise.
14850         (ppc620_cost): Likewise.
14851         (ppc630_cost): Likewise.
14852         (ppccell_cost): Likewise.
14853         (ppc750_cost): Likewise.
14854         (ppc7450_cost): Likewise.
14855         (ppc8540_cost): Likewise.
14856         (ppce300c2c3_cost): Likewise.
14857         (ppce500mc_cost): Likewise.
14858         (ppce500mc64_cost): Likewise.
14859         (ppce5500_cost): Likewise.
14860         (ppce6500_cost): Likewise.
14861         (titan_cost): Likewise.
14862         (power4_cost): Likewise.
14863         (power6_cost): Likewise.
14864         (power7_cost): Likewise.
14865         (power8_cost): Likewise.
14866         (ppca2_cost): Likewise.
14867         (rs6000_rtx_costs): Make FLOAT_EXTEND use SFDF_convert field.
14868
14869         * config/rs6000/rs6000.md (extendsfdf2_fpr): Generate XSCPSGNDP
14870         instead of XXLOR to copy SFmode to clear out dirty bits created
14871         when SFmode denormals are generated.
14872         (mov<mode>_hardfloat, FMOVE32 case): Likewise.
14873         (truncdfsf2_fpr): Add support for ISA 2.07 XSRSP instruction.
14874
14875 2015-04-06  Evandro Menezes  <e.menezes@samsung.com>
14876
14877         * doc/invoke.texi (AARCH64/mtune): Add exynos-m1 as an option.
14878         * config/aarch64/aarch64-cores.def (exynos-m1): New core.
14879         * config/aarch64/aarch64-tune.md: Regenerate.
14880
14881 2015-04-06  Evandro Menezes  <e.menezes@samsung.com>
14882
14883         * doc/invoke.texi (ARM/mtune): Add "exynos-m1" as an option.
14884         * config/arm/arm.c (arm_issue_rate): Specify "3" for "exynosm1".
14885         * config/arm/arm-cores.def (exynos-m1): New core.
14886         * config/arm/arm-tune.md: Regenerate.
14887         * config/arm/arm-tables.opt: Add entry for "exynos-m1".
14888         * config/arm/bpabi.h: Likewise.
14889
14890 2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>
14891
14892         * ipa-cp (set_single_call_flag): Remove too
14893         restrictive assert.
14894
14895 2015-04-06  Ilya Verbin  <ilya.verbin@intel.com>
14896
14897         * config/i386/intelmic-mkoffload.c (generate_host_descr_file): Call
14898         GOMP_offload_unregister from the destructor.
14899
14900 2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>
14901
14902         * ipa-chkp.c (chkp_maybe_create_clone): Reset cdtor
14903         flags for instrumentation thunk.
14904         (chkp_produce_thunks): Likewise.
14905
14906 2015-04-05  Martin Liska  <mliska@suse.cz>
14907
14908         PR ipa/65665
14909         * ipa-icf.c (sem_function::equals_wpa): Verify that IPA CP
14910         has computed data structure.
14911         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
14912
14913 2015-04-04  Jan Hubicka  <hubicka@ucw.cz>
14914
14915         * invoke.texi (inline-unit-growth): Increase growth to 20%
14916         * params.def (PARAM_INLINE_UNIT_GROWTH): Likewise.
14917
14918 2015-04-04  Vladimir Makarov  <vmakarov@redhat.com>
14919
14920         PR target/65647
14921         * lra-int.h (LRA_MAX_REMATERIALIZATION_PASSES): New.  Add its
14922         value checking.
14923         (lra_rematerialization_iter): New.
14924         * lra.c (lra): Initialize lra_rematerialization_iter.
14925         Stop updating lra_constraint_new_regno_start after switching of
14926         inheritance and rematerialization.
14927         * lra-remat.c (lra_rematerialization_iter): New.
14928         (lra_remat): Add printing pass iteration.  Do rematerialization
14929         only first LRA_MAX_REMATERIALIZATION_PASSES iterations.
14930
14931 2015-04-04  Richard Biener  <rguenther@suse.de>
14932
14933         PR tree-optimization/64909
14934         PR tree-optimization/65660
14935         * tree-vectorizer.h (vect_get_known_peeling_cost): Adjust
14936         to take a cost vector for scalar iteration cost.
14937         (vect_get_single_scalar_iteration_cost): Likewise.
14938         * tree-vect-loop.c (vect_get_single_scalar_iteration_cost):
14939         Compute the scalar iteration cost into a cost vector.
14940         (vect_get_known_peeling_cost): Use the scalar cost vector to
14941         account for the cost of the peeled iterations.
14942         (vect_estimate_min_profitable_iters): Likewise.
14943         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
14944         Likewise.
14945
14946 2015-04-04  Alan Modra  <amodra@gmail.com>
14947
14948         PR target/65576
14949         PR target/65240
14950         * config/rs6000/predicates.md (zero_reg_mem_operand): Exclude
14951         0.0 constant unless TARGET_VSX.
14952         * config/rs6000/rs6000.md (extenddftf2_internal): Remove last
14953         alternative.
14954
14955 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
14956
14957         PR ipa/65654
14958         * ipa-inline-transform.c (inline_call): Skip sanity check to work
14959         around the ICE
14960
14961 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
14962
14963         PR ipa/65655
14964         * ipa-inline-analysis.c (edge_set_predicate): Do not redirect
14965         speculative indirect edges to avoid ordering issue.
14966
14967 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
14968
14969         PR ipa/65076
14970         * ipa-inline.c (edge_badness): Add combined size to the denominator.
14971
14972 2015-04-03  Jakub Jelinek  <jakub@redhat.com>
14973
14974         * omp-low.c (scan_omp_parallel, scan_omp_task, scan_omp_target): Set
14975         TYPE_ARTIFICIAL on the .omp_data* types.
14976
14977 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
14978
14979         * cgraphunit.c (cgraph_node::expand_thunk): Don't expand
14980         instrumentation thunks.
14981
14982 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
14983
14984         * config/i386/i386.c (ix86_expand_call): Avoid nested
14985         PARALLEL in returned call value.
14986
14987 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
14988
14989         * lto-cgraph.c (input_cgraph_1): Always link instrumented
14990         assembler name with original one.
14991
14992 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
14993
14994         * config/i386/i386.c (ix86_register_priority): Use AX_REG.
14995
14996 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
14997
14998         Revert parts of r216820.
14999         * config/i386/i386.md (movqi_internal): Correct type calculation
15000         for alternatives 3 and 5.
15001
15002 2015-04-02  Jakub Jelinek  <jakub@redhat.com>
15003
15004         PR preprocessor/61977
15005         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Don't
15006         predefine __vector/__bool/__pixel macros nor context sensitive
15007         macros for CLK_ASM.
15008         * config/spu/spu-c.c (spu_cpu_cpp_builtins): Similarly.
15009
15010 2015-04-02  John David Anglin  <danglin@gcc.gnu.org>
15011
15012         * config/pa/pa.c (pa_output_move_double): Directly handle register
15013         indexed memory operand.  Simplify handling of scaled register indexed
15014         memory operands.
15015
15016 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
15017
15018         PR driver/65444
15019         * config/i386/linux-common.h (MPX_SPEC): New.
15020         (CHKP_SPEC): Add MPX_SPEC.
15021         * doc/invoke.texi (-fcheck-pointer-boudns): Document
15022         possible issues with '-z bndplt' support in linker.
15023
15024 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
15025
15026         * config/i386/sync.md (UNSPEC_FILD_ATOMIC, UNSPEC_FIST_ATOMIC): New.
15027         (loaddi_via_fpu): Use UNSPEC_FILD_ATOMIC.
15028         (storedi_via_fpu): Use UNSPEC_FIST_ATOMIC.
15029         * reg-stack.c (get_true_reg): Change UNSPEC_LDA to UNSPEC_FILD_ATOMIC.
15030         (subst_stack_regs_pat): Change UNSPEC_STA to UNSPEC_FIST_ATOMIC.
15031
15032 2015-04-01  Uros Bizjak  <ubizjak@gmail.com>
15033
15034         * config/i386/sync.md (UNSPEC_MOVA): Remove.
15035         (atomic_load<mode>): Change operand 0 predicate to
15036         nonimmediate_operand and fix up the destination when needed.
15037         Use UNSPEC_LDA.
15038         (atomic_loaddi_fpu): Use UNSPEC_LDA.
15039         (atomic_store<mode>): Change operand 1 predicate to
15040         nonimmendate_operand and move the source to register when needed.
15041         Use UNSPEC_STA.
15042         (atomic_store<mode>_1): Use UNSPEC_STA.
15043         (atomic_storedi_fpu): Change operand 1 to nonimmediate_operand.
15044         Fix moves from memory operand.  Use UNSPEC_STA.
15045
15046 2015-04-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
15047
15048         * expmed.c (strict_volatile_bitfield_p): Check that the access will
15049         not cross a MODESIZE boundary.
15050         (store_bit_field, extract_bit_field): Added assertions in the
15051         strict volatile bitfields code path.
15052
15053 2015-04-01  Max Ostapenko  <m.ostapenko@partner.samsung.com>
15054
15055         PR target/65624
15056         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_builtin):
15057         Increase args array size by one to avoid buffer overflow.
15058
15059 2015-03-31  Jan Hubicka  <hubicka@ucw.cz>
15060
15061         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
15062         split_part.
15063         * ipa-inline.c (edge_badness): Add wrapper penalty.
15064         (sum_callers): Move up.
15065         (inline_small_functions): Set single_caller.
15066         * ipa-inline.h (inline_summary): Add single_caller.
15067         * ipa-split.c (split_function): Set split_part.
15068         (cgraph_node::create_clone): Do not shadow decl; copy split_part.
15069         * cgraph.h (cgraph_node): Add split_part.
15070
15071 2015-03-31  Uros Bizjak  <ubizjak@gmail.com>
15072
15073         PR target/58945
15074         * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
15075         Do not split operands 0 and operands 2 to halfmode.
15076         (atomic_compare_and_swap<mode>): Update for
15077         atomic_compare_and_swap<dwi>_doubleword changes.
15078
15079 2015-03-31  Jan Hubicka  <hubicka@ucw.cz>
15080
15081         * tree.c (need_assembler_name_p): Artificial types have no ODR names.
15082         * ipa-devirt.c (warn_odr): Do not try to apply ODR cache when
15083         no caching is done.
15084
15085 2015-03-31  Martin Liska  <mliska@suse.cz>
15086
15087         PR ipa/65557
15088         * ipa-icf.c (sem_function::equals_wpa): Check if IPA CP
15089         has already filled up function summary.
15090         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
15091
15092 2015-03-31  Richard Biener  <rguenther@suse.de>
15093
15094         * tree-sra.c (create_access_replacement): Drop under-/over-alignment
15095         of types.
15096
15097 2015-03-31  Dominik Vogt  <vogt@linux.vnet.ibm.com>
15098
15099         * config/s390/s390.c (s390_function_num_hotpatch_hw): Allow hotpatching
15100         nested functions.
15101         (s390_reorg): Adapt to new signature of s390_function_num_hotpatch_hw.
15102         (s390_asm_output_function_label): Adapt to new signature of
15103         s390_function_num_hotpatch_hw
15104         Optimise the code generating assembler output.
15105         Add comments to assembler file.
15106
15107 2015-03-31  Richard Biener  <rguenther@suse.de>
15108
15109         PR middle-end/65626
15110         * tree-cfgcleanup.c (fixup_noreturn_call): Only split the block
15111         of the noreturn call so it is last and cleanup_control_flow_bb
15112         can do the CFG part.
15113
15114 2015-03-31  Ilya Enkovich  <ilya.enkovich@intel.com>
15115
15116         PR target/65531
15117         * ipa-chkp.c (chkp_maybe_create_clone): Don't set
15118         same_comdat_group for external symbols.
15119         * symtab.c (symtab_node::verify_symtab_nodes): Avoid
15120         infinite same_comdat_group traversal loop.
15121
15122 2015-03-31  Jakub Jelinek  <jakub@redhat.com>
15123
15124         PR plugins/61176
15125         * Makefile.in (install-plugin): Add all gcc/*.{h,def} files
15126         automatically to $headers.
15127
15128 2015-03-30  Jakub Jelinek  <jakub@redhat.com>
15129
15130         PR ipa/65610
15131         * ipa-utils.h (inlined_polymorphic_ctor_dtor_block_p): Declare.
15132         * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p): New
15133         function.
15134         (decl_maybe_in_construction_p, noncall_stmt_may_be_vtbl_ptr_store):
15135         Use it.
15136         * ipa-prop.c (param_type_may_change_p): Likewise.
15137         * tree-ssa-live.c: Include ipa-utils.h and its dependencies.
15138         (remove_unused_scope_block_p): Add in_ctor_dtor_block
15139         argument.  Before inlining, preserve
15140         inlined_polymorphic_ctor_dtor_block_p blocks and the outermost block
15141         with FUNCTION_DECL BLOCK_ABSTRACT_ORIGIN inside of them.  Adjust
15142         recursive calls.
15143         (remove_unused_locals): Adjust remove_unused_scope_block_p caller.
15144
15145 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
15146
15147         PR ipa/65076
15148         * ipa-inline.c (edge_badness): Base denominator on callee's
15149         grwoth squared.
15150
15151 2015-03-27  Martin Jambor  <mjambor@suse.cz>
15152
15153         PR ipa/65478
15154         * params.def (PARAM_IPA_CP_RECURSION_PENALTY) : New.
15155         (PARAM_IPA_CP_SINGLE_CALL_PENALTY): Likewise.
15156         * ipa-prop.h (ipa_node_params): New flags node_within_scc and
15157         node_calling_single_call.
15158         * ipa-cp.c (count_callers): New function.
15159         (set_single_call_flag): Likewise.
15160         (initialize_node_lattices): Count callers and set single_flag_call if
15161         necessary.
15162         (incorporate_penalties): New function.
15163         (good_cloning_opportunity_p): Use it, dump new flags.
15164         (propagate_constants_topo): Set node_within_scc flag if appropriate.
15165         * doc/invoke.texi (ipa-cp-recursion-penalty,
15166         ipa-cp-single-call-pentalty): Document.
15167
15168 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
15169
15170         PR ipa/65588
15171         * symtab.c (symtab_node::get_partitioning_class): Register vars
15172         are duplicated.
15173         * varpool.c (symbol_table::output_variables) Do not assemble unefined
15174         decls for non-symbols.
15175
15176 2015-03-27  H.J. Lu  <hongjiu.lu@intel.com>
15177
15178         PR target/65248
15179         * output.h (default_binds_local_p_2): New.
15180         * varasm.c (default_binds_local_p_2): Renamed to ...
15181         (default_binds_local_p_3): This.  Don't return true on protected
15182         data symbol if protected data may be external.
15183         (default_binds_local_p): Use default_binds_local_p_3.
15184         (default_binds_local_p_1): Likewise.
15185         (default_binds_local_p_2): New.
15186         * config/i386/i386.c (TARGET_BINDS_LOCAL_P): Set to
15187         default_binds_local_p_2 if TARGET_MACHO is undefined.
15188
15189 2015-03-27  Jakub Jelinek  <jakub@redhat.com>
15190
15191         PR target/65593
15192         * config/i386/i386.c (legitimize_pic_address): If base
15193         is SYMBOL_REF or LABEL_REF using %rip addressing, force
15194         it to reg to avoid PLUS of SYMBOL_REF/LABEL_REF and register.
15195
15196 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
15197
15198         PR target/65531
15199         * symtab.c (symtab_node::verify_symtab_nodes): Fix verification of
15200         comdat groups.
15201
15202 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
15203
15204         PR ipa/65600
15205         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Fix the case
15206         of optimized out indirect call.
15207         (redirect_to_unreachable): Always build symbol table node for
15208         BUILT_IN_UNREACHABLE
15209
15210 2015-03-27  Vladimir Makarov  <vmakarov@redhat.com>
15211
15212         PR target/65407
15213         * ira-costs.c (record_reg_classes): Process all constraint string
15214         containing 0-9.
15215
15216 2015-03-27  Bernd Schmidt  <bernds@codesourcery.com>
15217
15218         * config/c6x/c6x.md (movmisalign<mode>): Use MEM_P, not
15219         memory_operand.
15220
15221         PR target/65052
15222         * config/c6x/constraints.md (S3): New constraint.
15223         * config/c6x/c6x.md (real_jump): Use it.
15224
15225 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
15226
15227         PR middle-end/65595
15228         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Only
15229         do redirection if the call is not optimized out.
15230
15231 2015-03-27  Ilya Enkovich  <ilya.enkovich@intel.com>
15232
15233         PR target/65495
15234         * c-family/c.opt (fcheck-pointer-bounds): List supported languages.
15235         (fchkp-check-incomplete-type): Add LTO.
15236         (fchkp-zero-input-bounds-for-main): Likewise.
15237         (fchkp-first-field-has-own-bounds): Likewise.
15238         (fchkp-narrow-bounds): Likewise.
15239         (fchkp-narrow-to-innermost-array): Likewise.
15240         (fchkp-use-static-bounds): Likewise.
15241         (fchkp-use-static-const-bounds): Likewise.
15242         (fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
15243
15244 2015-03-27  Marek Polacek  <polacek@redhat.com>
15245
15246         * gimple-iterator.h (gsi_prev_nondebug): Fix typo.
15247
15248 2015-03-27  Marek Polacek  <polacek@redhat.com>
15249
15250         PR sanitizer/65583
15251         * ubsan.c (ubsan_create_edge): New function.
15252         (instrument_bool_enum_load): Call it.
15253         (instrument_nonnull_arg): Likewise.
15254         (instrument_nonnull_return): Likewise.
15255         (instrument_object_size): Likewise.
15256
15257 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
15258
15259         * lto-streamer.h (class lto_location_cache): Turn loc_cache into
15260         auto_vec.
15261
15262 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
15263
15264         PR lto/65536
15265         * lto-streamer.h (class lto_location_cache): New.
15266         (struct data_in): Add location_cache.
15267         (lto_input_location): Update prototype.
15268         (stream_input_location_now): New.
15269         * streamer-hooks.h (struct streamer_hooks): Make input_location to take
15270         pointer to location.
15271         (stream_input_location): Update.
15272         * ipa-devirt.c: Include streamer-hooks.h and lto-streamer.h
15273         (warn_odr): Apply location cache before warning.
15274         (lto_input_location): Update prototype.
15275         * gimple-streamer-in.c (input_phi, input_gimple_stmt):
15276         Use stream_input_location_now.
15277         * lto-streamer-in.c (lto_location_cache::current_cache): New static
15278         variable.
15279         (lto_location_cache::cmp_loc): New function.
15280         (lto_location_cache::apply_location_cache): New function.
15281         (lto_location_cache::accept_location_cache): New function.
15282         (lto_location_cache::revert_location_cache): New function.
15283         (lto_location_cache::input_location): New function.
15284         (lto_input_location): Do location caching.
15285         (stream_input_location_now): New function.
15286         (input_eh_region, input_struct_function_base): Use
15287         stream_input_location_now.
15288         (lto_data_in_create): use new.
15289         (lto_data_in_delete): Use delete.
15290         * tree-streamer-in.c (unpack_ts_block_value_fields,
15291         unpack_ts_omp_clause_value_fields, streamer_read_tree_bitfields,
15292         lto_input_ts_exp_tree_pointers): Update for cached location api.
15293
15294 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
15295
15296         PR ipa/65076
15297         * passes.def: Add pass_nothrow.
15298         * ipa-pure-const.c: (pass_data_nothrow): New.
15299         (pass_nothrow): New.
15300         (pass_nothrow::execute): New.
15301         (make_pass_nothrow): New.
15302         * tree-pass.h (make_pass_nothrow): Declare.
15303
15304 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
15305
15306         * ipa-inline-analysis.c (redirect_to_unreachable): Be prepared for
15307         edge to change by speculation resolution or redirection.
15308         (edge_set_predicate): Likewise.
15309         (inline_summary_t::duplicate): Likewise.
15310         (remap_edge_summaries): Likewise.
15311
15312 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
15313
15314         * ipa-inline.c (check_maybe_up, check_maybe_down, check_match):
15315         New macros.
15316         (can_inline_edge_p): Relax option matching for always inline functions.
15317
15318 2015-03-26  Uros Bizjak  <ubizjak@gmail.com>
15319
15320         PR target/65561
15321         * config/i386/sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm):
15322         Check operand 4 and operand 0 for equality.
15323         (avx512f_vextract<shuffletype>32x4_1_maskm):
15324         Check operand 6 and operand 0 for equality.
15325         (vec_extract_lo_<mode>_maskm): Check operand 2 and operand 0
15326         for equality.
15327         (vec_extract_hi_<mode>_maskm): Ditto.
15328
15329 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
15330
15331         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Do not bring
15332         dead calls back to live.
15333         (cgraph_edge::verify_count_and_frequency): Move cgraph/cfg frequency
15334         cross check to ...
15335         (cgraph_node::verify_node): ... here; verify only callee edges,
15336         not caller.
15337         * cif-code.def (CILK_SPAWN): New code.
15338
15339 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
15340
15341         * ipa-inline-analysis.c (redirect_to_unreachable): New function.
15342         (edge_set_predicate): Use it to mark unreachable edges.
15343         (inline_summary_t::duplicate): Remove unnecesary code.
15344         (remap_edge_summaries): Likewise.
15345         (dump_inline_summary): Report contains_cilk_spawn.
15346         (compute_inline_parameters): Compute contains_cilk_spawn.
15347         (inline_read_section, inline_write_summary): Stream
15348         contains_cilk_spawn.
15349         * ipa-inline.c (can_inline_edge_p): Do not touch
15350         DECL_STRUCT_FUNCTION that may not be available;
15351         use CIF_CILK_SPAWN for cilk; fix optimization attribute checks;
15352         remove check for callee_fun->can_throw_non_call_exceptions and
15353         replace it by optimization attribute check; check for flag_exceptions.
15354         * ipa-inline-transform.c (inline_call): Maintain
15355         DECL_FUNCTION_PERSONALITY
15356         * ipa-inline.h (inline_summary): Add contains_cilk_spawn.
15357
15358 2015-03-26  Jakub Jelinek  <jakub@redhat.com>
15359
15360         PR tree-optimization/65551
15361         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use
15362         TYPE_PRECISION only for INTEGRAL_TYPE_P types.
15363
15364 2015-03-26  Richard Biener  <rguenther@suse.de>
15365
15366         PR middle-end/65555
15367         * tree-cfg.c (verify_gimple_call): Do not require a call to
15368         have no LHS if it wasn't recognized as control altering yet.
15369
15370 2015-03-26  Jakub Jelinek  <jakub@redhat.com>
15371
15372         PR tree-optimization/64715
15373         * passes.def: Add another instance of pass_object_sizes before ccp1.
15374         * tree-object-size.c (pass_object_sizes::execute): In
15375         first_pass_instance, only handle __bos (, 1) and __bos (, 3)
15376         calls, and keep the call in the IL, as {MIN,MAX}_EXPR of the
15377         __bos result and the computed constant.  Remove redundant
15378         checks, obsoleted by gimple_call_builtin_p test.
15379
15380         * var-tracking.c (variable_tracking_main_1): Don't track
15381         variables for targetm.no_register_allocation targets.
15382
15383 2015-03-26  Oleg Endo  <olegendo@gcc.gnu.org>
15384
15385         * config/sh/t-linux (DEFAULT_ENDIAN, MULTILIB_EXCEPTIONS): Remove.
15386         * config/sh/t-sh (MULTILIB_EXCEPTIONS): Handle default endian.
15387
15388 2015-03-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
15389
15390         PR target/65569
15391         * config/rs6000/rs6000.md (extenddftf2_fprs): On VSX systems use
15392         XXLXOR to create 0.0.  On pre-VSX systems make sure the constant
15393         0.0 is correctly setup.
15394         (extenddftf2_internal): Likewise.
15395
15396 2015-03-25  Sebastian Pop  <s.pop@samsung.com>
15397
15398         PR tree-optimization/65177
15399         * tree-ssa-threadupdate.c (verify_seme): Renamed verify_jump_thread.
15400         (bb_in_bbs): New.
15401         (duplicate_seme_region): Renamed duplicate_thread_path.  Redirect all
15402         edges not adjacent on the path to the original code.
15403
15404 2015-03-25  Uros Bizjak  <ubizjak@gmail.com>
15405
15406         PR bootstrap/65537
15407         * doc/install.texi (Building a native compiler): Document new
15408         bootstrap-lto-noplugin configuration.  Mention that bootstrap-lto
15409         configuration assumes that the host supports the linker plugin.
15410
15411 2015-03-25  Ilya Enkovich  <ilya.enkovich@intel.com>
15412
15413         PR target/65508
15414         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Set static
15415         chain for generated call.
15416
15417 2015-03-25  Richard Biener  <rguenther@suse.de>
15418
15419         * passes.c (pass_manager::execute_early_local_passes): Guard
15420         execution of pass_chkp_instrumentation_passes with
15421         flag_check_pointer_bounds.
15422         (pass_chkp_instrumentation_passes::gate): Likewise.
15423
15424 2015-03-25  Martin Liska  <mliska@suse.cz>
15425
15426         PR tree-optimization/65538
15427         * symbol-summary.h (function_summary::~function_summary):
15428         Relese memory for allocated summaries.
15429         (function_summary::release): New function.
15430
15431 2015-03-25  Jakub Jelinek  <jakub@redhat.com>
15432
15433         PR lto/65515
15434         * lto-streamer-out.c (DFS::worklist): New struct.
15435         (DFS::worklist_vec): New data member.
15436         (DFS::next_dfs_num): Remove.
15437         (DFS::DFS): Rewritten using worklist instead of recursion,
15438         using most of code from DFS::DFS_write_tree.
15439         (DFS::DFS_write_tree_body): Remove SINGLE_P argument, don't
15440         pass it to DFS_write_tree calls.
15441         (DFS::DFS_write_tree): Remove SINGLE_P argument, after
15442         quick initial checks push it into worklist_vec and return.
15443
15444 2015-03-25  Richard Biener  <rguenther@suse.de>
15445
15446         PR middle-end/65519
15447         * genmatch.c (expr::gen_transform): Re-write to avoid
15448         using gimple_build.
15449
15450 2015-03-25  Bin Cheng  <bin.cheng@arm.com>
15451
15452         * doc/sourcebuild.texi (arm_tune_string_ops_prefer_neon): New.
15453
15454 2015-03-25  Bin Cheng  <bin.cheng@arm.com>
15455
15456         * config/arm/arm.opt (print_tune_info): New option.
15457         * config/arm/arm.c (arm_print_tune_info): New function.
15458         (arm_file_start): Call arm_print_tune_info.
15459         * config/arm/arm-protos.h (struct tune_params): Add comment.
15460         * doc/invoke.texi (@item -mprint-tune-info): New item.
15461         (-mtune): mention it in ARM Option Summary.
15462
15463 2015-03-25  DJ Delorie  <dj@redhat.com>
15464
15465         * config/rl78/rl78.c (rl78_print_operand_1): Move 'p' test to
15466         correct clause.
15467
15468 2015-03-24  Jan Hubicka  <hubicka@ucw.cz>
15469             Martin Liska  <mliska@suse.cz>
15470
15471         * ipa-icf-gimple.h (return_with_result): Add missing colon to dump.
15472         * ipa-icf.c (sem_function::get_hash): Hash new declaration properties.
15473         (sem_item::add_type): New function.
15474         (sem_function::hash_stmt): Add TREE_TYPE of gimple_op.
15475         (sem_function::compare_polymorphic_p): Do not consider indirect calls.
15476         (sem_item_optimizer::update_hash_by_addr_refs): Add ODR type to hash.
15477         (sem_function::equals_wpa): Fix typo.
15478         * ipa-icf.h (sem_item::add_type): New function.
15479         (symbol_compare_hashmap_traits): Replace hashing of pointer with symbol
15480         order.
15481
15482 2015-03-24  Jakub Jelinek  <jakub@redhat.com>
15483
15484         PR tree-optimization/65533
15485         * tree-vect-slp.c (vect_build_slp_tree): Before re-trying
15486         with swapped operands, call vect_free_slp_tree on
15487         SLP_TREE_CHILDREN of child and truncate the SLP_TREE_CHILDREN
15488         vector.
15489
15490 2015-03-24  Richard Biener  <rguenther@suse.de>
15491
15492         PR middle-end/65517
15493         * tree-cfg.c (remove_edge_and_dominated_blocks): Mark loops
15494         for fixup if necessary.
15495
15496 2015-03-23  Sandra Loosemore  <sandra@codesourcery.com>
15497
15498         * doc/extend.texi (Function Attributes): Add @cindex entries
15499         for all attributes and regularize their format.  Delete text
15500         about long-obsolete 68HC11 and 68HC12 targets.  Move misplaced
15501         information about "eightbit_data", "tiny_data", and "model"
15502         variable attributes to the Variable Attributes section.  Fix
15503         some obvious typos and copy-editing issues.
15504         (Variable Attributes, Type Attributes): Likewise add/fix
15505         @cindex entries for all attributes.
15506
15507 2015-03-23  Jakub Jelinek  <jakub@redhat.com>
15508
15509         PR target/65523
15510         * tree-chkp.c (chkp_build_returned_bound): Ignore
15511         ERF_RETURNS_ARG calls if they have fewer than needed arguments.
15512
15513 2015-03-23  Oleg Endo  <olegendo@gcc.gnu.org>
15514
15515         PR target/65505
15516         * config/sh/predicates.md (simple_mem_operand,
15517         displacement_mem_operand): Add test for reg.
15518         (short_displacement_mem_operand): Test for displacement_mem_operand
15519         before invoking sh_disp_addr_displacement.
15520         * config/sh/constraints.md (Sdd, Sra): Simplify.
15521         * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1):
15522         Remove redundant displacement_mem_operand tests.
15523
15524 2015-03-23  Georg-Johann Lay  <avr@gjlay.de>
15525
15526         PR target/65296
15527         * config/avr/driver-avr.c (avr_devicespecs_file): Allow to specify
15528         the same -mmcu=MCU more than once.
15529
15530 2015-03-23  Jakub Jelinek  <jakub@redhat.com>
15531
15532         PR bootstrap/65522
15533         * ipa-devirt.c: Remove duplicate demangle.h include.
15534
15535         PR target/65504
15536         * config/i386/i386.c (ix86_copy_addr_to_reg): Set REG_POINTER
15537         on the pseudo.
15538         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Set
15539         REG_POINTER on *destptr after adjusting it for prologue size.
15540
15541         PR ipa/65521
15542         * ipa-icf.c (sem_item::update_hash_by_addr_refs): Hash
15543         ultimate_alias_target ()->order ints instead of
15544         ultimate_alias_target () pointers.
15545
15546 2015-03-23  Richard Biener  <rguenther@suse.de>
15547
15548         PR tree-optimization/65518
15549         * tree-vect-stmts.c (vectorizable_load): Reject single-element
15550         interleaving cases we generate absymal code for.
15551
15552 2015-03-23  Richard Biener  <rguenther@suse.de>
15553
15554         PR tree-optimization/65494
15555         * tree-vect-slp.c (vect_build_slp_tree): Do not (re-)allocate
15556         matches here.
15557         (vect_analyze_slp_instance): But do that here, always and once.
15558
15559 2015-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15560
15561         * expmed.c (synth_mult): Fix comment about multiplying by T-1 and
15562         adding T or multiplying by T+1 and subracting T.
15563
15564 2015-03-22  Jeff Law  <law@redhat.com>
15565
15566         PR rtl-optimization/64317
15567         * Makefile.in (OBJS): Add gcse-common.c
15568         * gcse.c: Include gcse-common.h
15569         (struct modify_pair_s): Move structure definition to gcse-common.h
15570         (compute_transp): Move function to gcse-common.c.
15571         (canon_list_insert): Similarly.
15572         (record_last_mem_set_info): Break out some code and put it into
15573         gcse-common.c.  Call into the new common code.
15574         (compute_local_properties): Pass additional arguments to compute_transp.
15575         * postreload-gcse.c: Include gcse-common.h and df.h
15576         (modify_mem_list_set, blocks_with_calls): New variables.
15577         (modify_mem_list, canon_modify_mem_list, transp): Likewise.
15578         (get_bb_avail_insn): Pass in the expression index too.
15579         (alloc_mem): Allocate memory for the new bitmaps and lists.
15580         (free_mem): Free memory for the new bitmaps and lists.
15581         (insert_expr_in_table): Record a bitmap index for each entry we
15582         add to the table.
15583         (record_last_mem_set_info): Call into common code in gcse-common.c.
15584         (get_bb_avail_insn): If no available insn was found in the requested
15585         BB.  If BB has a single predecessor, see if the expression is
15586         transparent in BB and available in that single predecessor.
15587         (compute_expr_transp): New wrapper for compute_transp.
15588         (eliminate_partially_redundant_load): Pass expression's bitmap_index
15589         to get_bb_avail_insn.  Compute next_pred_bb_end a bit later.
15590         (gcse_after_reload_main): If there are elements in the hash table,
15591         then compute transparency for all the elements in the hash table.
15592         * gcse-common.h: New file.
15593         * gcse-common.c: New file.
15594
15595 2015-03-22  Sandra Loosemore  <sandra@codesourcery.com>
15596
15597         * doc/cpp.texi (Search Path): Hyphenate "command-line" when used
15598         as an adjective.
15599         (System Headers): Likewise.
15600         (Ifdef): Likewise.
15601         (Traditional macros): Likewise.
15602         (Invocation): Likewise.
15603         (Option Index): Likewise.
15604         * doc/cppopts.texi (-M): Likewise.
15605         (-finput-charset): Likewise.
15606         (--help): Likewise.
15607         * doc.invoke.texi (AVR Options): Likewise.
15608         (V850 Options): Likewise.
15609
15610 2015-03-22  Jan Hubicka  <hubicka@ucw.cz>
15611
15612         PR ipa/65475
15613         * ipa-devirt.c: Include demangle.h
15614         (odr_type_d): Add field rtti_broken.
15615         (odr_subtypes_equivalent_p): Do not require name to match.
15616         (compare_virtual_tables): Fix typo; if type already has ODR violation,
15617         bypass the tests; be ready for function referneces in vtables that are
15618         not DECL_VIRTUAL; make warnings to be OPT_Wodr.
15619         (warn_odr): Give up for nameless types.
15620         (warn_types_mismatch): Report mismatch in mangled names;
15621         report mismatch in anonymous namespaces; look into component types to
15622         give useful error; report when mismatch is dragged in from other ODR
15623         type.
15624         (odr_types_equivalent_p): Match types for being polymorphic; avoid
15625         duplicated diagnostics.
15626         (add_type_duplicate): Reorder checks so more informative ones come
15627         first; fix typo; do not output "the extra base is defined here" when
15628         we did not warn.
15629         (BINFO_N_BASE_BINFOS): Relax sanity check.
15630
15631 2015-03-22  Martin Liska  <mliska@suse.cz>
15632             Jakub Jelinek  <jakub@redhat.com>
15633
15634         * config/i386/i386.c (def_builtin): Set deferred_isa_values for
15635         masks that can potentially include a builtin.
15636         (ix86_add_new_builtins): Introduce fast filter for isa values
15637         that cannot trigger builtin inclusion.
15638
15639 2015-03-22  Martin Liska  <mliska@suse.cz>
15640
15641         * ipa-icf.c (sem_item::update_hash_by_addr_refs): New function.
15642         (sem_item::update_hash_by_local_refs): Likewise.
15643         (sem_variable::get_hash): Empty line is fixed.
15644         (sem_item_optimizer::execute): Include adding of hash references.
15645         (sem_item_optimizer::update_hash_by_addr_refs): New function.
15646         (sem_item_optimizer::build_hash_based_classes): Use local hash.
15647         * ipa-icf.h (sem_item::update_hash_by_addr_refs): New function.
15648         (sem_item::update_hash_by_local_refs): Likewise.
15649
15650 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
15651
15652         PR ipa/65502
15653         * ipa-comdats.c (enqueue_references): Walk through thunks.
15654         (ipa_comdats): Likewise.
15655         (set_comdat_group_1): New function.
15656
15657 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
15658
15659         PR ipa/65475
15660         * ipa-devirt.c (add_type_duplicate): Prevail polymorphic type over
15661         non-polymorphic
15662
15663 2015-03-22  Dave Korn  <dave.korn.cygwin@gmail.com>
15664             Gerald Pfeifer  <gerald@pfeifer.com>
15665
15666         * doc/contrib.texi (Contributors): Update entry for Danny Smith.
15667
15668 2015-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
15669             Sandra Loosemore  <sandra@codesourcery.com>
15670
15671         * config/nios2/nios2-protos.h (nios2_adjust_call_address): Adjust
15672         function parameter declaration.
15673         * config/nios2/nios2.md (call,call_value,sibcall,sibcall_value):
15674         Update arguments to nios2_adjust_call_address().
15675         (sibcall_internal): Rename from *sibcall.
15676         (sibcall_value_internal): Rename from *sibcall_value.
15677         * config/nios2/nios2.c (nios2_emit_add_constant): New function.
15678         (nios2_large_got_address): Add target temp reg parameter.
15679         (nios2_got_address): Adjust call to nios2_large_got_address, add
15680         force_reg around it.
15681         (nios2_load_pic_address): Add target temp reg parameter, replace call
15682         to nios2_got_address with corresponding code.
15683         (nios2_legitimize_constant_address): Update call to
15684         nios2_load_pic_address.
15685         (nios2_adjust_call_address): Add temp reg parameter, update PIC case
15686         to use temp reg for PIC loading purposes.
15687         (nios2_asm_output_mi_thunk): Implement TARGET_ASM_OUTPUT_MI_THUNK.
15688         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
15689         (TARGET_ASM_OUTPUT_MI_THUNK): Likewise.
15690
15691 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
15692
15693         * doc/invoke.texi (-fno-diagnostics-show-caret): Fix
15694         usage of "the @option{...}".
15695         (-Wopenmp-simd): Likewise.
15696         (-fsanitize-recover): Likewise.
15697         (-fsanitize-undefined-trap-on-error): Likewise.
15698         (-flto): Likewise.
15699         (tracer-dynamic-coverage-feedback): Likewise.
15700         (reorder-block-duplicate-feedback): Likewise.
15701         (loop-unroll-jam-size): Likewise.
15702         (-B): Likewise.
15703         (-I-): Likewise.
15704         (-mabs=legacy): Likewise.
15705         (-mupper-regs-df): Likewise.
15706         (-mupper-regs-sf): Likewise.
15707         (-mpointers-to-nested-functions): Likewise.
15708
15709 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
15710
15711         * doc/extend.texi (Cilk Plus Builtins): Add markup.
15712
15713 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
15714
15715         * doc/invoke.texi (-fcheck-pointer-bounds): Copy-edit, add
15716         additional index entries and cross-references.
15717         (-fchkp-check-incomplete-type): Likewise.
15718         (-fchkp-first-field-has-own-bounds): Likewise.
15719         (-fchkp-narrow-to-innermost-array): Likewise.
15720         (-fchkp-use-fast-string-functions): Likewise.
15721         (-fchkp-use-nochk-string-functions): Likewise.
15722         (-fchkp-use-static-const-bounds): Likewise.
15723         (-fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
15724         (-fchkp-instrument-marked-only): Likewise.
15725         (-fchkp-use-wrappers): Likewise.
15726         (-static-libmpx): Likewise.
15727         (-static-libmpxwrappers): Likewise.
15728         * doc/extend.texi (bnd_legacy): Likewise.
15729         (bnd_instrument): Likewise.
15730         (bnd_variable_size): Likewise.
15731         (Pointer Bounds Checker builtins): Likewise.
15732
15733 2015-03-21  Tom de Vries  <tom@codesourcery.com>
15734
15735         PR tree-optimization/65458
15736         * cgraph.c (cgraph_node::dump): Handle parallelized_function field.
15737         * cgraph.h (cgraph_node): Add parallelized_function field.
15738         * lto-cgraph.c (lto_output_node): Write parallelized_function field.
15739         (input_overwrite_node): Read parallelized_function field.
15740         * omp-low.c (expand_omp_taskreg, finalize_task_copyfn): Set
15741         parallelized_function on cgraph_node for child_fn.
15742         * tree-parloops.c: Add include of plugin-api.h, ipa-ref.h and cgraph.h.
15743         Remove include of gt-tree-parloops.h.
15744         (parallelized_functions): Remove static variable.
15745         (parallelized_function_p): Rewrite using parallelized_function field of
15746         cgraph_node.
15747         (create_loop_fn): Remove adding to parallelized_functions.
15748         * Makefile.in (GTFILES): Remove tree-parloops.c
15749
15750 2015-03-20  Vladimir Makarov  <vmakarov@redhat.com>
15751
15752         PR rtl-optimization/64366
15753         * lra.c (lra_update_insn_regno_info): Consider regs in
15754         CALL_INSN_FUNCTION_USAGE memory.
15755
15756 2015-03-20  Richard Biener  <rguenther@suse.de>
15757
15758         PR middle-end/64715
15759         * tree-chrec.c (chrec_fold_poly_cst): Use useless_type_conversion_p
15760         for type comparison and gcc_checking_assert.
15761         (chrec_fold_plus_poly_poly): Likewise.
15762         (chrec_fold_multiply_poly_poly): Likewise.
15763         (chrec_convert_1): Likewise.
15764         * gimplify.c (gimplify_expr): Remove premature folding of
15765         &X + CST to &MEM[&X, CST].
15766
15767 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
15768
15769         * ipa-inline.c (can_inline_edge_p): Short circuit if inline_failed
15770         already is final.
15771         (ipa_inline): Recompute inline_failed codes.
15772         * cif-code.def (FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
15773         USES_COMDAT_LOCAL, ATTRIBUTE_MISMATCH, UNREACHABLE): Declare as
15774         CIF_FINAL_ERROR.
15775
15776 2015-03-20  Uros Bizjak  <ubizjak@gmail.com>
15777
15778         PR rtl-optimization/60851
15779         * recog.c (constrain_operands): Accept a pseudo register before reload
15780         for LRA enabled targets.
15781
15782 2015-03-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
15783
15784         PR target/65240
15785         * config/rs6000/predicates.md (easy_fp_constant): Remove special
15786         -ffast-math handling that kept non-0 constants live in the RTL
15787         until reload.  Remove logic testing the number of instructions it
15788         took to create a constant in a GPR that was never used, due to a
15789         test for soft-float earlier.
15790         (memory_fp_constant): Delete, no longer used.
15791
15792         * config/rs6000/rs6000.md (mov<MODE>_hardfloat): Remove
15793         alternatives for loading non-0 constants into GPRs for hard
15794         floating point that is no longer needed due to changes in
15795         easy_fp_constant.  Add support for loading 0.0 into GPRs.
15796         (mov<mode>_hardfloat32): Likewise.
15797         (mov<mode>_hardfloat64): Likewise.
15798         (mov<mode>_64bit_dm): Likewise.
15799         (movtd_64bit_nodm): Likewise.
15800         (pre-reload move FP constant define_split): Delete define_split,
15801         since it is no longer used.
15802         (extenddftf2_internal): Remove GHF constraints that are not valid
15803         for extenddftf2.
15804
15805 2015-03-19  Vladimir Makarov  <vmakarov@redhat.com>
15806
15807         PR rtl-optimization/63491
15808         * lra-constraints.c (check_and_process_move): Use src instead of
15809         sreg.  Remove some dead code.
15810
15811 2015-03-19  Jan Hubicka  <hubicka@ucw.cz>
15812
15813         PR ipa/65380
15814         * ipa-icf.c (sem_function::merge): Do not merge DECL_EXTERNAL symbols.
15815         (sem_variable::merge): Likewise.
15816
15817 2015-03-19  Martin Liska  <mliska@suse.cz>
15818
15819         PR ipa/65465
15820         * cgraphunit.c (cgraph_node::create_wrapper): Correctly reset
15821         all fields of cgraph_thunk_info.
15822
15823 2015-03-19  Ilya Enkovich  <ilya.enkovich@intel.com>
15824
15825         * ipa-chkp.c (chkp_maybe_create_clone): Don't try to
15826         clone instrumented thunks.
15827
15828 2015-03-19  Richard Biener  <rguenther@suse.de>
15829
15830         Revert
15831         2015-03-10  Richard Biener  <rguenther@suse.de>
15832
15833         PR middle-end/63155
15834         * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
15835         * tree-ssa-coalesce.c: Include timevar.h.
15836         (attempt_coalesce): Handle graph being NULL.
15837         (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
15838         Split out abnormal coalescing to ...
15839         (perform_abnormal_coalescing): ... this function.
15840         (coalesce_ssa_name): Perform abnormal coalescing without computing
15841         live/conflict.
15842         (verify_ssa_coalescing_worker): New function.
15843         (verify_ssa_coalescing): Likewise.
15844
15845 2015-03-19  Bernd Edlinger  <bernd.edlinger@hotmail.de>
15846             Jakub Jelinek  <jakub@redhat.com>
15847
15848         PR sanitizer/65400
15849         * tsan.c (instrument_gimple): Clear tail call flag on
15850         calls.
15851
15852 2015-03-19  Jakub Jelinek  <jakub@redhat.com>
15853
15854         PR sanitizer/65400
15855         * ipa-split.c (find_return_bb): Allow TSAN_FUNC_EXIT internal
15856         call in the return bb.
15857         (find_split_points): Add RETURN_BB argument, don't call
15858         find_return_bb.
15859         (split_function): Likewise.  Add ADD_TSAN_FUNC_EXIT argument,
15860         if true append TSAN_FUNC_EXIT internal call after the call to
15861         the split off function.
15862         (execute_split_functions): Call find_return_bb here.
15863         Don't optimize if TSAN_FUNC_EXIT is found in unexpected places.
15864         Adjust find_split_points and split_function calls.
15865
15866 2015-03-18  DJ Delorie  <dj@redhat.com>
15867
15868         * config/rl78/rl78-virt.md (andqi3_virt): Allow far operands.
15869         (iorqi3_virt): Likewise.
15870
15871 2015-03-18  Tom de Vries  <tom@codesourcery.com>
15872
15873         * tree-parloops.c (parallelize_loops): Make static.
15874         * tree-parloops.h (parallelize_loops): Remove extern declaration.
15875
15876 2015-03-18  Andrew Stubbs  <ams@codesourcery.com>
15877
15878         PR middle-end/64491
15879         Revert:
15880         2014-11-20  Andrew Stubbs  <ams@codesourcery.com>
15881
15882         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Warn if a loop
15883         condition would be removed due to undefined behaviour.
15884
15885 2015-03-18  Martin Liska  <mliska@suse.cz>
15886
15887         PR ipa/65432
15888         * cgraph.c (cgraph_node::get_create): Remove unnecessary
15889         xstrdup_for_dump wrapper.
15890         * ipa-icf.c (sem_item::dump): Use symtab_node::name instead of
15891         sem_item::name.
15892         (sem_function::equals): Wrap symtab_node::name and symtab_node::asm_name
15893         with xstrdup_for_dump.
15894         (sem_variable::equals): Likewise.
15895         (sem_item_optimizer::read_section): Use symtab_node::name instead of
15896         sem_item::name.
15897         (sem_item_optimizer::parse_funcs_and_vars): Likewise.
15898         (sem_item_optimizer::merge_classes): Wrap symtab_node::name and
15899         symtab_node::asm_name with xstrdup_for_dump.
15900         (congruence_class::dump): Use symtab_node::name instead of
15901         sem_item::name.
15902         * ipa-icf.h (symtab_node::name): Remove.
15903         (symtab_node::asm_name): Likewise.
15904
15905 2015-03-18  Jakub Jelinek  <jakub@redhat.com>
15906
15907         PR tree-optimization/65450
15908         * tree-vect-data-refs.c (vect_duplicate_ssa_name_ptr_info): New
15909         function.
15910         (vect_create_addr_base_for_vector_ref, vect_create_data_ref_ptr): Use
15911         it instead of duplicate_ssa_name_ptr_info.
15912
15913         PR target/65222
15914         * doc/invoke.texi: Add knl as x86 -march=/-mtune= CPU type.
15915
15916 2015-03-18  Richard Biener  <rguenther@suse.de>
15917
15918         * tree-data-ref.h (struct access_matrix): Remove.
15919         (AM_LOOP_NEST, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
15920         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
15921         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT): Likewise.
15922         (am_vector_index_for_loop): Likewise.
15923         (struct data_reference): Remove access_matrix member.
15924         (DR_ACCESS_MATRIX): Remove.
15925         (lambda_vector_new): Add comment.
15926         (lambda_matrix_new): Use XOBNEWVEC.
15927
15928 2015-03-18  Richard Biener  <rguenther@suse.de>
15929
15930         * tree-ssa-loop-ch.c (pass_data_ch): Remove TODO_cleanup_cfg.
15931         (pass_ch::execute): Cleanup the CFG only if we did sth.
15932         * tree-vect-generic.c (pass_data_lower_vector): Remove TODO_cleanup_cfg.
15933
15934 2015-03-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15935
15936         * expmed.c (synth_mult): Use std::swap instead of manually
15937         swapping algorithms.
15938
15939 2015-03-18  Jakub Jelinek  <jakub@redhat.com>
15940
15941         PR target/65078
15942         * config/i386/sse.md (movsi/movdi -> vec_extract_*_0 splitter): New.
15943
15944 2015-03-16  Georg-Johann Lay  <avr@gjlay.de>
15945
15946         PR target/65296
15947         * config/avr/avr.opt (-nodevicelib): New option.
15948         * doc/invoke.texi (AVR Options): Document it.
15949         * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC) [avr1]: Don't link
15950         libgcc.a, libc.a, libm.a.
15951         * config/avr/specs.h: Same.
15952         * config/avr/gen-avr-mmcu-specs.c (print_mcu): Don't print specs
15953         which don't (directly) depend on the device.  Print more help.
15954         (*avrlibc_devicelib) [-nodevicelib]: Don't link libdev.a.
15955         (*cpp): Don't define __AVR_DEV_LIB_NAME__.
15956         * config/avr/driver-avr.c: Remove -nodevicelib from option list in
15957         case of an error.
15958         (avr_devicespecs_file): Use suffix "%s" instead of absolute path
15959         for specs file name.
15960         * config/avr/avr-arch.h (avr_mcu_t) [.library_name]: Remove.
15961         * config/avr/avr-mcus.def: Adjust initializers and comments.
15962
15963 2015-03-16  Jan Hubicka  <hubicka@ucw.cz>
15964
15965         * tree-sra.c (ipa_sra_preliminary_function_checks): Use
15966         DECL_ONE_ONLY to check if decl is one only.
15967         * ipa-split.c (consider_split): Limit splitt of one only functions.
15968
15969 2015-03-16  Jakub Jelinek  <jakub@redhat.com>
15970
15971         PR tree-optimization/65427
15972         * tree-vect-generic.c (do_cond, expand_vector_scalar_condition): New
15973         functions.
15974         (expand_vector_operations_1): Handle BLKmode vector COND_EXPR.
15975
15976 2015-03-16  Marek Polacek  <polacek@redhat.com>
15977
15978         * cgraph.h (add_new_static_var): Remove declaration.
15979         * varpool.c (add_new_static_var): Remove function.
15980
15981 2015-03-16  Jakub Jelinek  <jakub@redhat.com>
15982
15983         * omp-low.c (expand_omp_target): Use auto_vec<tree, 11>
15984         instead of vec<tree> * with vec_alloc and release for args.
15985         Adjust all users.
15986
15987         PR middle-end/65431
15988         * omp-low.c (delete_omp_context): Only splay_tree_delete
15989         reduction_map in GIMPLE_OMP_TARGET is_gimple_omp_offloaded
15990         is_gimple_omp_oacc contexts.  Don't look at ctx->outer.
15991
15992 2015-03-16  Max Ostapenko  <m.ostapenko@partner.samsung.com>
15993
15994         PR sanitizer/64820
15995         * cfgexpand.c (align_base): New function.
15996         (alloc_stack_frame_space): Call it.
15997         (expand_stack_vars): Align prev_frame to be sure
15998         data->asan_vec elements aligned properly.
15999
16000 2015-03-16  Eric Botcazou  <ebotcazou@adacore.com>
16001
16002         PR middle-end/65409
16003         * expr.c (store_field): Do not do a direct block copy if the source is
16004         a PARALLEL with BLKmode.
16005
16006 2015-03-16  Tom de Vries  <tom@codesourcery.com>
16007
16008         PR middle-end/65414
16009         Revert:
16010         2015-03-12  Tom de Vries  <tom@codesourcery.com>
16011
16012         PR rtl-optimization/64895
16013         * lra-lives.c (check_pseudos_live_through_calls): Use
16014         actual_call_used_reg_set instead of call_used_reg_set, if available.
16015
16016 2015-03-16  Alan Modra  <amodra@gmail.com>
16017
16018         PR target/63150
16019         * config/rs6000/rs6000.md (bswapdi2): Remove one scratch reg.
16020         Modify Z->r bswapdi splitter to use dest in place of scratch.
16021         In r->Z and Z->r bswapdi splitter rename word_high, word_low
16022         to word1, word2 and rearrange logic to suit.
16023         (bswapdi2_64bit): Remove early clobber on Z->r alternative.
16024         (bswapdi2_ldbrx): Likewise.  Remove '??' on r->r.
16025         (bswapdi2_32bit): Remove early clobber on Z->r alternative.
16026         Add one '?' on r->r.  Modify Z->r splitter to avoid need for
16027         early clobber.
16028
16029 2015-03-14  Jakub Jelinek  <jakub@redhat.com>
16030
16031         PR tree-optimization/65369
16032         * tree-vect-stmts.c (vectorizable_load) <case dr_explicit_realign>:
16033         Set bump to vs * TYPE_SIZE_UNIT (elem_type) - 1 instead of
16034         (vs - 1) * TYPE_SIZE_UNIT (elem_type).
16035
16036         PR tree-optimization/65418
16037         * tree-ssa-reassoc.c (extract_bit_test_mask): If there
16038         are casts in the first PLUS_EXPR operand, ensure tbias and
16039         *totallowp are in the inner type.
16040
16041         PR rtl-optimization/65401
16042         * combine.c (rtx_equal_for_field_assignment_p): Add widen_x
16043         argument.  If true, adjust_address_nv of x with big-endian
16044         correction for the mode widening to GET_MODE (y).
16045         (make_field_assignment): Don't do MEM mode widening here.
16046         Use MEM_P instead of GET_CODE == MEM.
16047
16048 2015-03-13  Ilya Verbin  <ilya.verbin@intel.com>
16049
16050         * varpool.c (varpool_node::get_create): Don't set 'offloadable' flag for
16051         the external decls.
16052
16053 2015-03-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16054
16055         PR target/64600
16056         * config/arm/arm.c (arm_gen_constant, AND case): Use
16057         ARM_SIGN_EXTEND when constructing AND mask.
16058
16059 2015-03-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16060
16061         * graph.c (print_graph_cfg): Make function names visible and append
16062         parenthesis to it.  Also make groups of basic blocks belonging to the
16063         same function visible.
16064
16065 2015-03-12  Richard Biener  <rguenther@suse.de>
16066
16067         PR middle-end/44563
16068         * tree-inline.c (gimple_expand_calls_inline): Walk BB backwards
16069         to avoid quadratic behavior with inline expansion splitting blocks.
16070         * tree-cfgcleanup.c (cleanup_tree_cfg_bb): Do not merge block
16071         with the successor if the predecessor will be merged with it.
16072         * tree-cfg.c (gimple_can_merge_blocks_p): We can't merge the
16073         entry block with its successor.
16074
16075 2015-03-13  Richard Biener  <rguenther@suse.de>
16076
16077         PR middle-end/44563
16078         * tree-cfgcleanup.c (split_bb_on_noreturn_calls): Remove.
16079         (cleanup_tree_cfg_1): Do not call it.
16080         (execute_cleanup_cfg_post_optimizing): Fixup the CFG here.
16081         (fixup_noreturn_call): Mark the stmt as control altering.
16082         * tree-cfg.c (execute_fixup_cfg): Do not dump the function
16083         here.
16084         (pass_data_fixup_cfg): Produce a dump file.
16085         * tree-ssa-dom.c: Include tree-cfgcleanup.h.
16086         (need_noreturn_fixup): New global.
16087         (pass_dominator::execute): Fixup queued noreturn calls.
16088         (optimize_stmt): Queue calls that became noreturn for fixup.
16089         * tree-ssa-forwprop.c (pass_forwprop::execute): Likewise.
16090         * tree-ssa-pre.c: Include tree-cfgcleanup.h.
16091         (el_to_fixup): New global.
16092         (eliminate_dom_walker::before_dom_childre): Queue calls that
16093         became noreturn for fixup.
16094         (eliminate): Fixup queued noreturn calls.
16095         * tree-ssa-propagate.c: Include tree-cfgcleanup.h.
16096         (substitute_and_fold_dom_walker): New member stmts_to_fixup.
16097         (substitute_and_fold_dom_walker::before_dom_children): Queue
16098         alls that became noreturn for fixup.
16099         (substitute_and_fold): Fixup queued noreturn calls.
16100
16101 2015-03-12  Jan Hubicka  <hubicka@ucw.cz>
16102
16103         * ipa-icf.c (sem_function::equals_wpa): Match CXX_CONSTRUCTOR_P
16104         and CXX_DESTURCTOR_P. For consutrctors match ODR type of class they
16105         are building; for methods check ODR type of class they belong to if
16106         they may lead to a polymorphic call.
16107         (sem_function::compare_polymorphic_p): Be bit smarter about testing
16108         when function may lead to a polymorphic call.
16109         (sem_function::compare_type_list): Remove.
16110         (sem_variable::equals): Update use of compatible_types_p.
16111         (sem_variable::parse_tree_refs): Remove.
16112         (sem_item_optimizer::filter_removed_items): Do not filter out CXX
16113         cdtor.
16114         * ipa-icf-gimple.c (func_checker::compare_decl): Do polymorphic
16115         matching here.
16116         (func_checker::compatible_polymorphic_types_p): Break out from ...
16117         (unc_checker::compatible_types_p): ... here.
16118         * ipa-icf-gimple.h (func_checker::compatible_polymorphic_types_p):
16119         Declare.
16120         (unc_checker::compatible_types_p): Update.
16121         * ipa-icf.h (compare_type_list, parse_tree_refs, compare_sections):
16122         Remove.
16123
16124 2015-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16125
16126         PR rtl-optimization/65235
16127         * simplify-rtx.c (simplify_binary_operation_1, VEC_SELECT case):
16128         When first element of vec_concat is const_int, calculate its size
16129         using second element.
16130
16131 2015-03-12  Richard Biener  <rguenther@suse.de>
16132
16133         PR middle-end/65270
16134         * fold-const.c (operand_equal_p): Fix ordering of resetting
16135         OEP_ADDRESS_OF and checking for it in the [TARGET_]MEM_REF case.
16136
16137 2015-03-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>
16138
16139         * config/s390/s390.c (s390_reorg): Move code to output nops after label
16140         to s390_reorg ().
16141         (s390_asm_output_function_label): Likewise.
16142         * config/s390/s390.c (s390_asm_output_function_label):
16143         Fix function label alignment with -mhtopatch.
16144         * config/s390/s390.md ("unspecv"): New values UNSPECV_NOP_2_BYTE,
16145         UNSPECV_NOP_4_BYTE and UNSPECV_NOP_6_BYTE
16146         ("nop_2_byte"): New define_insn.
16147         ("nop_4_byte"): Likewise.
16148         ("nop_6_byte"): Likewise.
16149         * doc/extend.texi (hotpatch): hotpatch attribute doc fixes.
16150         * doc/invoke.texi (-mhotpatch): -mhotpatch doc fixes.
16151
16152 2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>
16153
16154         PR target/65103
16155         * config/i386/i386.c (ix86_address_cost): Fix cost of a PIC
16156         register.
16157
16158 2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>
16159
16160         PR target/65044
16161         * toplev.c (process_options): Restrict Pointer Bounds Checker
16162         usage with Address Sanitizer.
16163
16164 2015-03-12  Richard Biener  <rguenther@suse.de>
16165
16166         * tree-cfg.c (gimple_split_block): Remove loop finding stmt
16167         to split on.
16168         * omp-low.c (expand_omp_taskreg): Split block before removing
16169         the stmt.
16170         (expand_omp_target): Likewise.
16171         * ubsan.c (ubsan_expand_null_ifn): Adjust stmt if we replaced it.
16172         * tree-parloops.c (create_call_for_reduction_1): Pass a proper
16173         stmt to split_block.
16174
16175 2015-03-12  Tom de Vries  <tom@codesourcery.com>
16176
16177         PR rtl-optimization/64895
16178         * lra-lives.c (check_pseudos_live_through_calls): Use
16179         actual_call_used_reg_set instead of call_used_reg_set, if available.
16180
16181 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
16182
16183         * cgraph.c (cgraph_node::release_body): Free function_in_decl_state.
16184         (cgraph_node::remove): Likewise.
16185         (cgraph_node::get_untransformed_body): Likewise.
16186         * varpool.c (varpool_node::remove): Likewise.
16187         (varpool_node::get_constructor): Add sanity check.
16188
16189 2015-03-11  Sandra Loosemore  <sandra@codesourcery.com>
16190
16191         * doc/invoke.texi (-fgnu89-inline): Remove discussion about
16192         old GCC versions.
16193         (-fabi-compat-version): Likewise.
16194         (-ffriend-injection): Likewise.
16195         (-Wdeclaration-after-statement): Likewise.
16196         (-fomit-frame-pointer): Likewise.
16197         (-ftree-coalesce-inlined-vars): Likewise.
16198         (-fvisibility=): Likewise.
16199         * doc/extend.texi (Typeof): Likewise.
16200         (Zero Length): Likewise.
16201         (Escaped Newlines): Likewise.
16202         (Compound Literals): Likewise.
16203         (Function Attributes): Likewise.
16204         (Label Attributes): Likewise.
16205         (Type Attributes): Likewise.
16206         (Function Names): Likewise.
16207         (Other Builtins): Likewise.
16208         (Function Specific Option Pragmas): Likewise.
16209         (C++ Interface): Likewise.
16210
16211 2015-03-11  Thomas Schwinge  <thomas@codesourcery.com>
16212
16213         * config/nvptx/nvptx.h (LIBSTDCXX): Define to "gcc".
16214
16215 2015-03-11  Marek Polacek  <polacek@redhat.com>
16216
16217         PR tree-optimization/65388
16218         * tree-ssa-tail-merge.c (same_succ_def::equal): Fix typo in comparison.
16219
16220 2015-03-10  Georg-Johann Lay  <avr@gjlay.de>
16221
16222         PR target/65296
16223         * configure.ac [avr]: Check as for options -mrmw, --mlink-relax.
16224         * configure: Regenerate.
16225         * config.in: Regenerate.
16226         * doc/invoke.texi (AVR Options) [-mrmw]: Document it.
16227         [-mn-flash]: Document it.
16228         [__AVR_ARCH__]: Document avrtiny.
16229
16230         * config/avr/gen-avr-mmcu-specs.c (config.h): Include it.
16231         (*asm_relax): Only define spec if HAVE_AS_AVR_MLINK_RELAX_OPTION.
16232         (*asm_rmw): Only define spec if HAVE_AS_AVR_MRMW_OPTION.
16233
16234 2015-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16235
16236         * doc/invoke.texi: Add missing cpu values (z196, zEC12).
16237
16238 2015-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
16239
16240         PR target/65242
16241         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Do not
16242         allow reloads of PLUS in floating point/VSX registers.
16243
16244 2015-03-11  Junmo Park  <junmoz.park@samsung.com>
16245
16246         * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Add
16247         crypto_sha256_fast.
16248         (cortex_a57_crypto_complex): Add crypto_sha256_slow.
16249
16250 2015-03-11  Richard Biener  <rguenther@suse.de>
16251
16252         PR tree-optimization/65310
16253         * tree-sra.c (build_ref_for_offset): Also preserve larger
16254         alignment.
16255
16256 2015-03-11  Marat Zakirov  <m.zakirov@samsung.com>
16257
16258         * asan.c (instrument_derefs): Disable instrumentation on asan-globals=0.
16259
16260 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
16261
16262         PR target/65368
16263         * config/i386/i386.md (bmi2_bzhi_<mode>3): Removed define_insn,
16264         new define_expand.
16265         (*bmi2_bzhi_<mode>3, *bmi2_bzhi_<mode>3_1): New define_insns.
16266
16267 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
16268
16269         * ipa-icf.c (sem_function::equals_wpa): Move here some checks from ...
16270         (sem_function::equals_wpa): ... here.
16271
16272 2015-03-10  Marek Polacek  <polacek@redhat.com>
16273             Jakub Jelinek  <jakub@redhat.com>
16274
16275         PR sanitizer/65367
16276         * ubsan.c (ubsan_expand_objsize_ifn): Update GSI instead of GSI_ORIG
16277         when only removing the statement.  Handle expanding UBSAN_OBJECT_SIZE
16278         separately.
16279
16280 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
16281
16282         PR target/65286
16283         * config/rs6000/t-linux: For powerpc64* target set
16284         MULTILIB_OSDIRNAMES instead of MULTIARCH_DIRNAME.
16285
16286 2015-03-10  Richard Biener  <rguenther@suse.de>
16287
16288         PR middle-end/44563
16289         * tree-inline.c (copy_cfg_body): Skip block mapped to entry/exit
16290         for redirect_all_calls.
16291
16292 2015-03-10  Marek Polacek  <polacek@redhat.com>
16293
16294         * gdbinit.in (pcfun): Define and document.
16295
16296 2015-03-10  Ilya Verbin  <ilya.verbin@intel.com>
16297
16298         * config/i386/intelmic-mkoffload.c: Include intelmic-offload.h instead
16299         of libgomp-plugin.h.
16300         (find_target_compiler): Support a case when the path to gcc is
16301         specified in the PATH env var, so COLLECT_GCC doesn't contain a path.
16302         (generate_host_descr_file): Use GOMP_DEVICE_INTEL_MIC from
16303         intelmic-offload.h instead of OFFLOAD_TARGET_TYPE_INTEL_MIC from
16304         libgomp-plugin.h.
16305         (main): Use GCC_INSTALL_NAME as target_driver_name.
16306         * config/i386/t-intelmic (CFLAGS-mkoffload.o): Add GCC_INSTALL_NAME
16307         define.
16308         (mkoffload.o): Remove obsolete include path and defines.
16309         (mkoffload$(exeext)): Use $(LINKER) instead of $(COMPILER).
16310
16311 2015-03-10  Richard Biener  <rguenther@suse.de>
16312
16313         PR middle-end/63155
16314         * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
16315         * tree-ssa-coalesce.c: Include timevar.h.
16316         (attempt_coalesce): Handle graph being NULL.
16317         (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
16318         Split out abnormal coalescing to ...
16319         (perform_abnormal_coalescing): ... this function.
16320         (coalesce_ssa_name): Perform abnormal coalescing without computing
16321         live/conflict.
16322         (verify_ssa_coalescing_worker): New function.
16323         (verify_ssa_coalescing): Likewise.
16324
16325 2015-03-10  Georg-Johann Lay  <avr@gjlay.de>
16326
16327         PR target/65296
16328         * config.gcc (extra_options) [avr]: Remove.
16329         (extra_gcc_objs) [avr]: Use driver-avr.o, avr-devices.o.
16330         (tm_file) [avr]: Add avr/specs.h after avr/avr.h.
16331         (tm_defines) [avr-*-rtems*]: Add WITH_RTEMS.
16332
16333         * config/avr/avr.opt (config/avr/avr-arch.h): Remove include.
16334         (-mmcu=): Add Var and MissingArgError properties.
16335         (-march=): Remove.
16336         * config/avr/genmultilib.awk: Use -mmcu= instead of -march=.
16337         * config/avr/t-multilib: Regenerate.
16338         * config/avr/specs.h: New file.
16339         * config/avr/driver-avr.c: New file.
16340         * config/avr/genopt.sh: Remove file.
16341         * config/avr/avr-tables.opt: Remove file.
16342         * config/avr/predicates.md (avr_current_arch): Rename to avr_arch.
16343         * config/avr/avr-c.c: Same.
16344         * avr-arch.h: Same.
16345         (avr_current_device): Remove proto.
16346         * config/avr/avr.h (avr_current_arch): Rename to avr_arch.
16347         (AVR_HAVE_8BIT_SP): Don't depend on avr_current_device.
16348         (EXTRA_SPEC_FUNCTIONS): Define.
16349         (avr_devicespecs_file): New specs function proto.
16350         (DRIVER_SELF_SPECS): Use device-specs-file spec function.
16351         * config/avr/avr.c (avr_current_arch): Rename to avr_arch.
16352         (avr_current_device): Remove definition and usage.
16353         (avr_set_core_architecture): New static function.
16354         (avr_option_override): Use it.
16355         * config/avr/avr-devices.c (diagnostic.h, avr-arch.h): Include them.
16356         (mcu_name): New static array.
16357         (comparator, avr_archs_str, avr_mcus_str): New static functions.
16358         (avr_inform_devices, avr_inform_core_architectures): New functions.
16359         * config/avr/gen-avr-mmcu-specs.c (avr-arch.h, specs.h): Include.
16360         (avrlibc.h) [WITH_AVRLIBC]: Include.
16361         (../rtems.h, rtems.h) [WITH_RTEMS]: Include.
16362         (print_mcu): Rewrite from scratch.
16363         * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC, STARTFILE_SPEC):
16364         Forward to avr-specific specs defined in device-specs file.
16365         * config/avr/t-avr (driver-avr.o): New rule.
16366         (avr-devices.o): Depend on avr-arch.h.
16367         (avr-mcus): No more depend on avr-tables.opt.
16368         (avr-tables.opt): Remove rule.
16369         (install-device-specs): Use INSTALL_DATA, not INSTALL_PROGRAM.
16370
16371 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
16372
16373         * c-family/c.opt (fchkp-use-wrappers): New.
16374         * ipa-chkp.c (CHKP_WRAPPER_SYMBOL_PREFIX): New.
16375         (chkp_wrap_function): New.
16376         (chkp_build_instrumented_fndecl): Support wrapped
16377         functions.
16378         * doc/invoke.texi (-fcheck-pointer-bounds): New.
16379         (-fchkp-check-incomplete-type): New.
16380         (-fchkp-first-field-has-own-bounds): New.
16381         (-fchkp-narrow-bounds): New.
16382         (-fchkp-narrow-to-innermost-array): New.
16383         (-fchkp-optimize): New.
16384         (-fchkp-use-fast-string-functions): New.
16385         (-fchkp-use-nochk-string-functions): New.
16386         (-fchkp-use-static-bounds): New.
16387         (-fchkp-use-static-const-bounds): New.
16388         (-fchkp-treat-zero-dynamic-size-as-infinite): New.
16389         (-fchkp-check-read): New.
16390         (-fchkp-check-write): New.
16391         (-fchkp-store-bounds): New.
16392         (-fchkp-instrument-calls): New.
16393         (-fchkp-instrument-marked-only): New.
16394         (-fchkp-use-wrappers): New.
16395         (-static-libmpx): New.
16396         (-static-libmpxwrappers): New.
16397
16398 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
16399
16400         * config/i386/linux-common.h (LIBMPX_WRAPPERSSPEC): New.
16401         (CHKP_SPEC): Add wrappers library.
16402         * c-family/c.opt (static-libmpxwrappers): New.
16403
16404 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
16405
16406         * config/i386/linux-common.h (LIBMPX_LIBS): New.
16407         (LIBMPX_SPEC): New.
16408         (CHKP_SPEC): New.
16409         * gcc.c (CHKP_SPEC): New.
16410         (LINK_COMMAND_SPEC): Add CHKP_SPEC.
16411         * c-family/c.opt (static-libmpx): New.
16412
16413 2015-03-10  Richard Biener  <rguenther@suse.de>
16414
16415         PR middle-end/44563
16416         * cgraph.h (struct cgraph_edge_hasher): Add hash overload
16417         for compare_type.
16418         * cgraph.c (cgraph_edge_hasher::hash): Inline htab_hash_pointer.
16419         (cgraph_update_edge_in_call_site_hash): Use cgraph_edge_hasher::hash.
16420         (cgraph_add_edge_to_call_site_hash): Likewise.
16421         (cgraph_node::get_edge): Likewise.
16422         (cgraph_edge::set_call_stmt): Likewise.
16423         (cgraph_edge::remove_caller): Likewise.
16424
16425 2015-03-10  Chung-Ju Wu  <jasonwucj@gmail.com>
16426
16427         * config/nds32/nds32.h (callee_saved_regs_size): Rename to ...
16428         (callee_saved_gpr_regs_size): ... this.
16429         (callee_saved_regs_first_regno): Rename to ...
16430         (callee_saved_first_gpr_regno): ... this.
16431         (callee_saved_regs_last_regno) Rename to ...
16432         (callee_saved_last_gpr_regno): ... this.
16433         * config/nds32/nds32.c (nds32_compute_stack_frame): Adjust renamed
16434         variables.
16435         (nds32_initial_elimination_offset): Likewise.
16436         (nds32_expand_prologue): Likewise.
16437         (nds32_expand_epilogue): Likewise.
16438         (nds32_expand_prologue_v3push): Likewise.
16439         (nds32_expand_epilogue_v3pop): Likewise.
16440         * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
16441         Adjust renamed variables.
16442         (nds32_output_stack_pop): Likewise.
16443
16444 2015-03-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16445
16446         * dominance.c (nearest_common_dominator_for_set): Fix A_Dominated_by_B
16447         code in comment.
16448
16449 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
16450
16451         PR rtl-optimization/65321
16452         * cfgexpand.c (expand_debug_expr): Ensure shift amount isn't wider
16453         than shift mode.
16454         * var-tracking.c (use_narrower_mode): Likewise.
16455
16456 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
16457
16458         PR tree-optimization/65355
16459         * varasm.c (notice_global_symbol): Do not produce RTL.
16460         * symtab.c (symtab_node::can_increase_alignment_p): Check for section
16461         anchor.
16462         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Do not
16463         check for section anchors.
16464
16465 2015-03-10  Alan Modra  <amodra@gmail.com>
16466
16467         PR target/65286
16468         * config.gcc (powerpc*-*-linux*): Arrange for powerpc64le-linux
16469         to be single-arch by default.  Set cpu_is_64bit for powerpc64
16470         given --with-cpu=native.
16471         * config/rs6000/t-fprules: Do not set default MULTILIB vars.
16472         * config/rs6000/t-linux (MULTIARCH_DIRNAME): Support powerpc64
16473         and powerpc64le.
16474         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Test
16475         rs6000_isa_flags rather than TARGET_64BIT.
16476
16477 2015-03-09  Yoshinori Sato  <ysato@users.sourceforge.jp>
16478             Kaz Kojima  <kkojima@gcc.gnu.org>
16479
16480         * config/sh/t-linux (MULTILIB_EXCEPTIONS): Define for m2a cases.
16481
16482 2015-03-09  Jakub Jelinek  <jakub@redhat.com>
16483
16484         PR lto/65361
16485         * ipa-devirt.c (add_type_duplicate): Don't use DECL_CONTEXT
16486         on a TREE_BINFO, instead use BINFO_TYPE.
16487
16488 2015-03-09  Richard Biener  <rguenther@suse.de>
16489
16490         PR middle-end/65270
16491         * tree-core.h (enum operand_equal_flag): Add OEP_ADDRESS_OF.
16492         * fold-const.c (operand_equal_p): When recursing for ADDR_EXPRs
16493         operand set OEP_ADDRESS_OF.  Clear it when recursing to non-bases
16494         of that.  When comparing dereferences compare alignment.
16495         When comparing MEM_REFs or TARGET_MEM_REFs compare dependence info.
16496
16497 2015-03-08  Jan Hubicka  <hubicka@ucw.cz>
16498
16499         * ipa-inline-analysis.c (check_callers): Check
16500         node->can_remove_if_no_direct_calls_and_refs_p.
16501         (growth_likely_positive): Reorganize to call
16502         can_remove_if_no_direct_calls_p later.
16503         * cgraph.h (will_be_removed_from_program_if_no_direct_calls_p,
16504         will_be_removed_from_program_if_no_direct_calls_p): Add
16505         will_inline parameter.
16506         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p,
16507         cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
16508         Handle inliner case correctly.
16509
16510 2015-03-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16511
16512         PR tree-optimization/63743
16513         * cfgexpand.c (reorder_operands): Also reorder if only second operand
16514         had its definition forwarded by TER.
16515
16516 2015-03-08  Jan Hubicka  <hubicka@ucw.cz>
16517
16518         PR lto/65316
16519         * ipa-utils.h (types_odr_comparable): Add strict argument.
16520         * ipa-devirt.c: Fix whitespace;
16521         (odr_hasher): Remove.
16522         (odr_name_hasher, odr_vtable_hasher): New hashers.
16523         (can_be_name_hashed_p): New predicate.
16524         (hash_type_name): remove.
16525         (hash_odr_name): New.
16526         (odr_name_hasher::hash): new.
16527         (can_be_vtable_hashed_p): New.
16528         (hash_odr_vtable): New.
16529         (odr_vtable_hasher::hash): New.
16530         (types_same_for_odr): Add strict parameter.
16531         (types_odr_comparable): Likewise.
16532         (odr_name_hasher::equal): New.
16533         (odr_vtable_hasher::equal): New.
16534         (odr_name_hasher::remove): New.
16535         (odr_hash_type): Change to hash_table<odr_name_hasher>.
16536         (odr_vtable_hash_type): New.
16537         (odr_vtable_hash): New.
16538         (odr_subtypes_equivalent_p): Do strict comparsion.
16539         (add_type_duplicate): Merge type names; cleanup; avoid type
16540         duplicates.
16541         (register_odr_type): Initialize vtable hash.
16542         (build_type_inheritance_graph): Likewise
16543         (get_odr_type): Reorg to use two hashes.
16544         (dump_possible_polymorphic_call_targets): Move sanity check after debug
16545         output.
16546         (ipa_devirt): Dump type_inheritance_graph.
16547         (types_same_for_odr): Add strict mode.
16548
16549 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
16550
16551         PR ipa/65334
16552         * cgraph.h (symtab_node): Add definition_alignment,
16553         can_increase_alignment_p and increase_alignment.
16554         * symtab.c (symtab_node::can_increase_alignment_p,
16555         increase_alignment_1, symtab_node::increase_alignment,
16556         symtab_node::definition_alignment): New.
16557         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Use
16558         can_increase_alignment_p.
16559         * tree-vectorizer.c (increase_alignment): Use increase_alignment.
16560         * tree-vect-stmts.c (ensure_base_align): Likewise.
16561         * varasm.c (function_section_1): Use definition_alignment.
16562         (assemble_start_function): Likewise.
16563         (emit_local): likewise.
16564         (build_constant_desc): Likewsie.
16565         (output_constant_def_contents): Likewise.
16566         (place_block_symbol): Likewise.
16567         (output_object_block): Likewise.
16568
16569 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
16570
16571         PR ipa/65316
16572         * tree.c (free_lang_data_in_type): Be sure to keep BINFO_VTABLE
16573         when outputting debug.
16574
16575 2015-03-07  Marek Polacek  <polacek@redhat.com>
16576             Martin Uecker  <uecker@eecs.berkeley.edu>
16577
16578         PR sanitizer/65280
16579         * doc/invoke.texi: Update description of -fsanitize=bounds.
16580
16581 2015-03-06  Wilco Dijkstra  <wilco.dijkstra@arm.com>
16582
16583         * tree-ssa-phiopt.c (neg_replacement): Remove.
16584         (tree_ssa_phiopt_worker): Remove negate optimization.
16585
16586 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
16587
16588         PR ipa/65302
16589         * value-prof.c (gimple_ic): Pure dead eh edges when needed.
16590
16591 2015-03-06  Richard Biener  <rguenther@suse.de>
16592
16593         PR middle-end/64928
16594         * tree-ssa-live.h (struct tree_live_info_d): Add livein_obstack
16595         and liveout_obstack members.
16596         (calculate_live_on_exit): Remove.
16597         (calculate_live_ranges): Change declaration.
16598         * tree-ssa-live.c (liveness_bitmap_obstack): Remove global var.
16599         (new_tree_live_info): Adjust.
16600         (calculate_live_ranges): Delete livein when not wanted.
16601         (calculate_live_ranges): Do not initialize liveness_bitmap_obstack.
16602         Deal with partly deleted live info.
16603         (loe_visit_block): Remove temporary bitmap by using
16604         bitmap_ior_and_compl_into.
16605         (live_worklist): Adjust accordingly.
16606         (calculate_live_on_exit): Make static.
16607         * tree-ssa-coalesce.c (coalesce_ssa_name): Tell calculate_live_ranges
16608         we do not need livein.
16609
16610 2015-03-06  Jonathan Wakely  <jwakely@redhat.com>
16611
16612         * real.c (real_from_string): Fix typo in assertion.
16613
16614 2015-03-06  Alex Velenko  <alex.velenko@arm.com>
16615
16616         * ChangeLog (2015-03-05): Reflect Richard Henderson as actual author of
16617         the patch.
16618
16619 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
16620
16621         * ipa-icf.c (sem_variable::equals_wpa): Check FINAL flags.
16622
16623 2015-03-05  Vladimir Makarov  <vmakarov@redhat.com>
16624
16625         PR target/64342
16626         * lra-assigns.c (find_hard_regno_for): Rename to
16627         find_hard_regno_for_1.  Add a new parameter.
16628         (find_hard_regno_for): New function using find_hard_regno_for_1.
16629
16630 2015-03-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
16631
16632         PR rtl-optimization/65067
16633         * expmed.c (store_bit_field, extract_bit_field): Reworked the
16634         strict volatile bitfield handling.
16635
16636 2015-03-05  Martin Liska  <mliska@suse.cz>
16637
16638         PR ipa/65318
16639         * ipa-icf.c (sem_variable::equals): Compare variables types.
16640
16641 2015-03-05  Richard Henderson  <rth@redhat.com>
16642
16643         PR target/65121
16644         * config/arm/arm.c (arm_function_in_section_p): Fix predicate to
16645         correctly check weak symbol binding.
16646
16647 2015-03-05  Steve Ellcey  <sellcey@imgtec.com>
16648
16649         PR middle-end/65315
16650         * cfgexpand.c (expand_stack_vars): Update large_align to maximum
16651         needed alignment.
16652
16653 2015-03-05  Martin Liska  <mliska@suse.cz>
16654
16655         * ipa-inline.c (inline_small_functions): Set default value to
16656         prevent warning during bootstrap.
16657         * tree.h: Add pragma guard that ignores false positives during
16658         bootstrap.
16659
16660 2015-03-05  Richard Biener  <rguenther@suse.de>
16661
16662         PR tree-optimization/65310
16663         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
16664         Properly preserve alignment of the base of the access.
16665
16666 2015-03-05  Richard Biener  <rguenther@suse.de>
16667
16668         PR ipa/65270
16669         * ipa-icf-gimple.c (func_checker::compare_memory_operand):
16670         Compare dependence info.
16671
16672 2015-03-05  Richard Biener  <rguenther@suse.de>
16673
16674         PR middle-end/65233
16675         * ipa-polymorphic-call.c: Include tree-ssa-operands.h and
16676         tree-into-ssa.h.
16677         (walk_ssa_copies): Revert last chage.  Instead do not walk
16678         SSA names registered for SSA update.
16679
16680 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
16681
16682         PR ipa/65270
16683         * ipa-icf.c (sem_item::compare_cgraph_references): Compare
16684         vtable references for their containing type.
16685         (sem_function::equals_wpa): Compare TYPE_RESTRICT
16686         and type attributes.
16687
16688 2015-03-04  Eric Botcazou  <ebotcazou@adacore.com>
16689
16690         * fold-const.c (round_up_loc): Cast divisor to signed on all paths
16691         before negating it.
16692         * stor-layout.c (finalize_record_size): Revert latest change.
16693
16694 2015-03-04  Andreas Tobler  <andreast@gcc.gnu.org>
16695
16696         * config/rs6000/t-freebsd64: Remove 32-bit soft-float multilibs.
16697
16698 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
16699
16700         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p): Rewrite
16701         for correct comdat handling.
16702         (cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
16703         Likewise.
16704         * cgraph.h (call_for_symbol_and_aliases): Fix formating.
16705         (used_from_object_file_p_worker): Remove.
16706         (cgraph_node::only_called_directly_or_alised): Add
16707         used_from_object_file_p.
16708         * ipa-inline-analysis.c (growth_likely_positive): Optimie.
16709         * ipa-inline-transform.c (can_remove_node_now_p_1): Use
16710         can_remove_if_no_direct_calls_and_refs_p.
16711
16712 2015-03-04  Nick Clifton  <nickc@redhat.com>
16713
16714         * config/rl78/rl78.h (enum reg_class): Remove real registers from
16715         General register class.
16716         * config/rl78/rl78-real.md: Replace general register constraints
16717         with real+virtual register constraints.
16718
16719 2015-03-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16720
16721         * config/s390/s390.c (s390_expand_builtin): Exlude non-htm builtins
16722         from checking for -mhtm option.
16723
16724 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
16725
16726         * tree-sra.c (convert_callers): Use call_for_symbol_and_aliases.
16727         (struct ipa_sra_check_caller_data): Add has_thunk field.
16728         (ipa_sra_check_caller): Check for thunk.
16729         (ipa_sra_preliminary_function_checks): Give up on function with
16730         thunks.
16731         (ipa_early_sra): Use call_for_symbol_and_aliases.
16732
16733 2015-03-03  Kaz Kojima  <kkojima@gcc.gnu.org>
16734
16735         PR target/65249
16736         * config/sh/sh.md (symGOT_load): Use R0 reg for operands[2] when
16737         called for __stack_chk_guard symbol.
16738
16739 2015-03-03  DJ Delorie  <dj@redhat.com>
16740
16741         * config/rl78/rl78-real.md (*addqi_real): Allow SADDR types for
16742         inc/dec.
16743         (*addhi3_real): Likewise.
16744         * config/rl78/rl78-virt.md (*inc<mode>3_virt): Additional
16745         pattern to match incrementing memory.
16746         * config/rl78/predicates.md (rl78_1_2_operand): New.
16747         * config/rl78/rl78.c (rl78_force_nonfar_3): Allow far mem-mem if
16748         it's the same and only mem.
16749         (rl78_alloc_physical_registers_op2): If there's effectively only
16750         one MEM, transcode it into HL.
16751         (rl78_far_p): Reject addresses that aren't legitimate.
16752
16753 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
16754
16755         * fold-const.c (round_up_loc): Cast divisor to HOST_WIDE_INT before
16756         negating it.
16757
16758         * tree-sra.c (pa_sra_preliminary_function_checks): Fix typo in message.
16759
16760 2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
16761
16762         Implement call0 ABI for xtensa
16763         * config/xtensa/constraints.md ("a" constraint): Include stack
16764         pointer in case of call0 ABI.
16765         ("q" constraint): Make empty in case of call0 ABI.
16766         ("D" constraint): Include stack pointer in case of call0 ABI.
16767         * config/xtensa/xtensa-protos.h (xtensa_set_return_address,
16768         xtensa_expand_epilogue, xtensa_regno_to_class): Add new function
16769         prototypes.
16770         * config/xtensa/xtensa.c (xtensa_callee_save_size): New
16771         variable.
16772         (xtensa_regno_to_class): Make it a local variable in the
16773         function xtensa_regno_to_class.
16774         (xtensa_function_epilogue, TARGET_ASM_FUNCTION_EPILOGUE): Remove
16775         macro, function prototype and implementation.
16776         (reg_nonleaf_alloc_order): Make it a local variable in the
16777         function order_regs_for_local_alloc.
16778         (xtensa_conditional_register_usage): New function.
16779         (TARGET_CONDITIONAL_REGISTER_USAGE): Define macro.
16780         (xtensa_valid_move): Allow direct moves to stack pointer
16781         register in call0 ABI.
16782         (xtensa_setup_frame_addresses): Only spill register windows in
16783         windowed ABI.
16784         (xtensa_emit_call): Emit call(x)8 or call(x)0 in windowed and
16785         call0 ABI respectively.
16786         (xtensa_function_arg_1): Only mark a7 register for copying in
16787         windowed ABI.
16788         (xtensa_call_save_reg): New function.
16789         (compute_frame_size): Add space for callee saved register
16790         storage to the frame size in call0 ABI.
16791         (xtensa_expand_prologue): Generate code to set up stack frame
16792         and save callee-saved registers in call0 ABI.
16793         (xtensa_expand_epilogue): New function.
16794         (xtensa_set_return_address): New function.
16795         (xtensa_return_addr): Calculate return address in call0 ABI.
16796         (xtensa_builtin_saveregs): Only mark a7 register for copying and
16797         emit copying code in windowed ABI.
16798         (order_regs_for_local_alloc): Add preferred register allocation
16799         order for non-leaf function in call0 ABI.
16800         (xtensa_static_chain): Add atatic chain passing for call0 ABI.
16801         (xtensa_asm_trampoline_template): Add trampoline generation for
16802         call0 ABI.
16803         (xtensa_trampoline_init): Add trampoline initialization for
16804         call0 ABI.
16805         (xtensa_conditional_register_usage, xtensa_regno_to_class): New
16806         functions.
16807         * config/xtensa/xtensa.h (TARGET_WINDOWED_ABI): New macro.
16808         (TARGET_CPU_CPP_BUILTINS): Add built-in define for call0 ABI.
16809         (CALL_USED_REGISTERS): Modify to encode both windowed and call0
16810         ABI call-used registers.
16811         (HARD_FRAME_POINTER_REGNUM): Add frame pointer for call0 ABI.
16812         (INCOMING_REGNO, OUTGOING_REGNO): Use argument unchanged in
16813         call0 ABI.
16814         (REG_CLASS_CONTENTS): Include all registers into the preferred
16815         reload registers set, adjust the set in the
16816         xtensa_conditional_register_usage.
16817         (xtensa_regno_to_class): Drop variable declaration.
16818         (REGNO_REG_CLASS): Redefine to use xtensa_regno_to_class
16819         function.
16820         (WINDOW_SIZE): Define as 8 or 0 for windowed and call0 ABI
16821         respectively.
16822         (FUNCTION_PROFILER): Add _mcount call for call0 ABI.
16823         (TRAMPOLINE_SIZE): Define trampoline size for call0 ABI.
16824         (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 in call0 ABI.
16825         (ASM_OUTPUT_POOL_PROLOGUE): Always generate literal pool
16826         location in call0 ABI.
16827         (EH_RETURN_STACKADJ_RTX): New definition, use a10 for passing
16828         stack adjustment size when handling exception.
16829         (CRT_CALL_STATIC_FUNCTION): Add definition for call0 ABI.
16830         * config/xtensa/xtensa.md (A9_REG, UNSPECV_BLOCKAGE): New
16831         definitions.
16832         ("return" pattern): Generate ret.n/ret in call0 ABI.
16833         ("epilogue" pattern): Expand epilogue.
16834         ("nonlocal_goto" pattern): Use default in call0 ABI.
16835         ("eh_return" pattern): Move implementation to eh_set_a0_windowed,
16836         emit eh_set_a0_* depending on ABI.
16837         ("eh_set_a0_windowed" pattern): Former eh_return pattern.
16838         ("eh_set_a0_call0", "blockage"): New patterns.
16839
16840 2015-03-03  Martin Liska  <mliska@suse.cz>
16841
16842         PR ipa/65287
16843         * ipa-icf.c (sem_variable::parse): Skip all alias variables.
16844
16845 2015-03-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
16846
16847         PR 65138/target
16848         * config/rs6000/rs6000-tables.opt: Regenerate table.
16849
16850 2015-03-03  Renlin Li  <renlin.li@arm.com>
16851
16852         * doc/md.texi (@item ^): Change ? into ^.
16853
16854 2015-03-03  H.J. Lu  <hongjiu.lu@intel.com>
16855
16856         * doc/tm.texi: Regenerated.
16857
16858 2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
16859
16860         * builtins.c (expand_builtin_return_addr): Add
16861         RETURN_ADDR_IN_PREVIOUS_FRAME to 'if' condition, remove
16862         surrounding #ifdef.
16863         * config/sparc/sparc.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Change
16864         definition to 1.
16865         * config/xtensa/xtensa.h (RETURN_ADDR_IN_PREVIOUS_FRAME):
16866         Likewise.
16867         * defaults.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 if
16868         undefined.
16869         * doc/tm.texi.in (RETURN_ADDR_IN_PREVIOUS_FRAME): Update
16870         paragraph.
16871
16872 2015-03-03  Martin Jambor  <mjambor@suse.cz>
16873             Eric Botcazou  <ebotcazou@adacore.com>
16874
16875         * tree-sra.c (ipa_sra_check_caller_data): New type.
16876         (has_caller_p): Removed.
16877         (ipa_sra_check_caller): New function.
16878         (ipa_sra_preliminary_function_checks): Use it.
16879
16880 2015-03-03  Martin Liska  <mliska@suse.cz>
16881
16882         * ipa-icf.c (sem_item_optimizer::merge_classes): Use bit or
16883         instead of if branch.
16884
16885 2015-03-03  Martin Liska  <mliska@suse.cz>
16886
16887         PR ipa/65282
16888         * ipa-icf.c (sem_variable::equals): Fix wrong condition.
16889
16890 2015-03-23  Jeff Law  <law@redhat.com>
16891
16892         PR tree-optimization/65241
16893         * tree-ssa-dom.c (lookup_avail_expr): Only modify the avail_expr
16894         hash table if INSERT is true.
16895
16896 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
16897
16898         PR target/65296
16899         * config.gcc (extra_gcc_objs) [avr-*-rtems*]: Remove.
16900
16901 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
16902
16903         PR target/64331
16904         * config/avr/avr.c (context.h, tree-pass.h): Include them.
16905         (avr_pass_data_recompute_notes): New static variable.
16906         (avr_pass_recompute_notes): New class.
16907         (avr_register_passes): New static function.
16908         (avr_option_override): Call it.
16909
16910 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
16911
16912         Fix various problems with specs file generation.
16913
16914         PR target/65296
16915         * config.gcc (extra_gcc_objs) [avr]: Remove.
16916         * config/avr/driver-avr.c: Remove file.
16917         * config/avr/t-avr (driver-avr.o): Remove rule.
16918         (gen-avr-mmcu-specs): Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD and
16919         INCLUDES to build.  Depend on TM_H.
16920         * config/avr/gen-avr-mmcu-specs.c: Tidy up code.  Fix various
16921         build warnings.  Fix non-matching types and non-existing %-codes.
16922         (tm.h): Include.
16923         (*lib) [!WITH_AVRLIBC]: Don't link libdev.a.
16924         (*libgcc) [WITH_AVRLIBC]: Add "-lm".
16925         * config/avr/avrlibc.h (LIBGCC_SPEC): Remove definition.
16926         * config/avr/avr.h (DRIVER_SELF_SPECS): Fix handling of -march=.
16927         (CPP_SPEC, CC1PLUS_SPEC, ASM_SPEC, LINK_SPEC, LIB_SPEC)
16928         (LIBGCC_SPEC): Remove definitions.
16929
16930 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
16931
16932         * config/ia64/ia64.c (expand_vec_perm_interleave_2): Use gen_raw_REG
16933         to create a register in testing mode.
16934
16935 2015-03-03  Martin Liska  <mliska@suse.cz>
16936             Jan Hubicka  <hubicka@ucw.cz>
16937
16938         PR ipa/65263
16939         * cgraph.c (cgraph_node::has_thunk_p): New function.
16940         * cgraph.h (cgraph_node::has_thunk_p: Likewise.
16941         * ipa-icf.c (redirect_all_callers): Do not redirect thunks.
16942         (sem_function::merge): Assert is changed.
16943
16944 2015-03-03  Martin Liska  <mliska@suse.cz>
16945             Martin Jambor  <mjambor@suse.cz>
16946
16947         PR ipa/65087
16948         * ipa-icf.c (sem_item_optimizer::execute): Change function
16949         return value to boolean.
16950         (sem_item_optimizer::merge_classes): Likewise.
16951         (ipa_icf_driver): Return TODO_remove_functions in case there's
16952         a merge operation processed.
16953         * ipa-icf.h: Change function return value to boolean.
16954
16955 2015-03-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
16956
16957         PR 65138/target
16958         * config/rs6000/rs6000-cpus.def (powerpc64le): Add new generic
16959         processor type for 64-bit little endian PowerPC.
16960
16961         * config/rs6000/rs6000.c (rs6000_option_override_internal): If
16962         -mdebug=reg, print TARGET_DEFAULT.  Fix logic to use
16963         TARGET_DEFAULT if there is no default cpu.  Fix -mdebug=reg
16964         printing built-in mask so it does not pass NULL pointers.
16965
16966         * doc/invoke.texi (IBM RS/6000 and PowerPC options): Document
16967         -mcpu=powerpc64le.
16968
16969 2015-03-02  Steve Ellcey  <sellcey@imgtec.com>
16970
16971         PR target/58158
16972         * config/mips/mips.md (mov<mode>cc): Change ISA_HAS_SEL check to
16973         !ISA_HAS_FP_CONDMOVE.
16974
16975 2015-03-02  Aldy Hernandez  <aldyh@redhat.com>
16976
16977         * config/i386/i386.md (*udivmod<mode>4_pow2): Remove
16978         reload_completed.
16979
16980 2015-03-02  Ulrich Drepper  <drepper@gmail.com>
16981
16982         * doc/invoke.texi (Options for Code Generation Conventions):
16983         Fix URL of DSO paper.
16984
16985 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
16986
16987         PR ipa/65130
16988         * ipa-inline.c (check_callers): Looks for recursion.
16989         (inline_to_all_callers): Give up on uninlinable or recursive edges.
16990         * ipa-inline-analysis.c (inline_summary_t::duplicate): Do not update
16991         summary of inline clones.
16992         (do_estimate_growth_1): Fix recursion check.
16993
16994 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
16995
16996         PR ipa/64988
16997         * ipa-inline-transform.c (clone_inlined_nodes): Do not dissolve
16998         comdat groups.
16999
17000 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
17001             Aldy Hernandez  <aldyh@redhat.com>
17002
17003         PR lto/65276
17004         * ipa-devirt.c (add_type_duplicate): Remove odr_violated assert
17005         when checking TYPE_BINFO.
17006
17007 2015-03-02  Richard Biener  <rguenther@suse.de>
17008
17009         PR ipa/65270
17010         * ipa-icf-gimple.c: Include builtins.h.
17011         (func_checker::compare_memory_operand): Compare base alignment.
17012
17013 2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>
17014
17015         PR target/65184
17016         * gcc/config/i386/i386.c (ix86_pass_by_reference) Bounds
17017         are never passed by reference.
17018
17019 2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>
17020
17021         PR target/65183
17022         * tree-chkp.c (chkp_check_lower): Don't check against
17023         zero bounds for already instrumented functions.
17024         (chkp_check_upper): Likewise.
17025         (chkp_fini): Clean pass local data to avoid wrong reusage.
17026
17027 2015-02-28  Martin Liska  <mliska@suse.cz>
17028             Jan Hubicka  <hubicka@ucw.cz>
17029
17030         * ipa-icf.c (sem_variable::equals): Improve debug output;
17031         get variable constructor.
17032         (sem_variable::parse): Do not filter out too early; give up on
17033         volatile and register vars.
17034         (sem_item_optimizer::filter_removed_items): Filter out nonreadonly
17035         variables.
17036         * ipa-icf.h (sem_variable::init): Do not set ctor.
17037         (sem_variable::ctor): Remove.
17038
17039 2015-03-01  Aldy Hernandez  <aldyh@redhat.com>
17040
17041         PR middle-end/65233
17042         * ipa-polymorphic-call.c (walk_ssa_copies): Handle empty PHIs.
17043
17044 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
17045
17046         * ipa-icf.c: Include stor-layout.h
17047         (sem_function::compare_cgraph_references): Rename to ...
17048         (sem_item::compare_cgraph_references): ... this one.
17049         (sem_variable::equals_wpa): New function
17050         (sem_variable::equals): Do not check stuff already verified by
17051         equals_wpa.
17052         (sem_variable::equals): Reorg based on varasm.c:compare_constant.
17053         * ipa-icf.h (sem_item): Add compare_cgraph_references.
17054         (sem_function): Remove compare_cgraph_references.
17055         (sem_variable): Turns equals_wpa into non-inline.
17056
17057 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
17058
17059         * ipa-icf.c (sem_function::init): Fix formating; skip GIMPLE_PREDICT.
17060         (sem_item::add_expr): New function.
17061         (sem_function::hash_stmt): Handle operands of most statements.
17062         (sem_variable::get_hash): Hash the actual constructor.
17063         * ipa-icf.h (sem_item): Add add_expr.
17064         (sem_function): Update prototype of hash_stmt
17065
17066 2015-02-28  Martin Liska  <mliska@suse.cz>
17067             Jan Hubicka  <hubicka@ucw.cz>
17068
17069         PR ipa/65245
17070         * ipa-icf-gimple.c (func_checker::compare_function_decl):
17071         Remove.
17072         (func_checker::compare_variable_decl): Skip symtab vars.
17073         (func_checker::compare_cst_or_decl): Update.
17074         * ipa-icf.c (sem_function::parse): Do not consider aliases.
17075         (sem_function::compare_cgraph_references): Add ADDRESS parameter;
17076         use correct symtab predicates.
17077         (sem_function::equals_wpa): Update uses of compare_cgraph_references.
17078         (sem_variable::parse):  Update comment.
17079         (sem_item_optimizer::build_graph): Consider ultimate aliases
17080         for references.
17081
17082 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
17083
17084         * ipa-icf-gimple.c (func_checker::compare_operand): Fix handling
17085         of OBJ_TYPE_REF.
17086
17087 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
17088
17089         * ipa-icf.c (sem_function::merge): Fix handling of COMDAT.
17090         (sem_variable::merge) Likewise.
17091
17092 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
17093
17094         * ipa-inline.c (can_inline_edge_p): Match opt_for_fn on inline
17095         target; also match flag_ipa_devirt.
17096
17097 2015-03-01  Martin Liska  <mliska@suse.cz>
17098             Jan Hubicka  <hubicka@ucw.cz>
17099
17100         * ipa-icf-gimple.c (func_checker::compare_variable_decl):
17101         Validate variable alignment.
17102         * ipa-icf.c (sem_function::equals_private): Be more precise
17103         about non-common function attributes.
17104         (sem_variable::equals): Likewise.
17105
17106 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
17107
17108         PR ipa/65237
17109         * ipa-icf.c (sem_function::merge): Do not attempt to produce alias
17110         across COMDAT group boundary.
17111
17112 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
17113
17114         PR ipa/65232
17115         * ipa-icf.c (clear_decl_rtl): New function.
17116         (sem_function::merge): Clear RTL before forming alias.
17117         (sem_variable::merge): Clear RTL before forming alias.
17118
17119 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
17120
17121         PR ipa/65236
17122         * cgraphunit.c (cgraph_node::expand_thunk): Enable return slot opt.
17123
17124 2015-02-28  Xingxing Pan  <xxingpan@marvell.com>
17125
17126         * config/aarch64/aarch64.md: (mov<mode>_aarch64): Change type
17127         to neon_to_gp<q>.
17128
17129 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
17130
17131         * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): Fix
17132         a typo in the description.
17133
17134 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
17135
17136         PR target/64317
17137         * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
17138         * params.h (LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
17139         * lra-constraints.c: Include "params.h".
17140         (EBB_PROBABILITY_CUTOFF): Use
17141         LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF.
17142         (lra_inheritance): Use '<' instead of '<=' for
17143         EBB_PROBABILITY_CUTOFF.
17144         * doc/invoke.texi (lra-inheritance-ebb-probability-cutoff):
17145         Document change.
17146
17147 2015-02-27  Martin Liska  <mliska@suse.cz>
17148
17149         * ipa-icf.h (struct symbol_compare_hashmap_traits): Add missing
17150         vector length condition.
17151
17152 2015-02-27  Sandra Loosemore  <sandra@codesourcery.com>
17153
17154         * doc/extend.texi (x86 transactional memory intrinsics):
17155         Reorganize discussion of _xbegin.  Clarify that the return
17156         value is a bit mask.  Expand example and move to end of section.
17157
17158 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
17159             Aldy Hernandez  <aldyh@redhat.com>
17160
17161         PR rtl-optimization/65220
17162         * config/i386/i386.md (*udivmod<mode>4_pow2): New.
17163
17164 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
17165
17166         PR target/65032
17167         * lra-remat.c (update_scratch_ops): New.
17168         (do_remat): Call it.
17169         * lra.c (lra_register_new_scratch_op): New. Take code from ...
17170         (remove_scratches): ... here.
17171         * lra-int.h (lra_register_new_scratch_op): New prototype.
17172
17173 2015-02-27  Marek Polacek  <polacek@redhat.com>
17174
17175         PR c/65040
17176         * doc/invoke.texi: Update to reflect that -Wformat=2 doesn't enable
17177         -Wformat-signedness anymore.
17178
17179 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17180
17181         * config/s390/s390.c: (s390_atomic_assign_expand_fenv): New
17182         function.
17183         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define macro.
17184
17185 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17186
17187         * config/s390/s390.c (enum s390_builtin):
17188         Add S390_BUILTIN_S390_SFPC and S390_BUILTIN_S390_EFPC.
17189         (code_for_builtin): Add CODE_FOR_s390_sfpc and CODE_FOR_s390_efpc.
17190         (s390_init_builtins): Generate new builtin functions.
17191         * config/s390/s390.md (UNSPECV_SFPC, UNSPECV_EFPC): New constants.
17192         (s390_sfpc, s390_efpc): New pattern definitions.
17193
17194 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17195
17196         * config/s390/s390.c: (enum s390_builtin, s390_expand_builtin):
17197         Rename S390_BUILTIN_max to S390_BUILTIN_MAX.
17198         (s390_builtin_decls): New array.
17199         (s390_init_builtins): Put builtin decls into s390_builtin_decls.
17200         (s390_builtin_decl): New function.
17201         (TARGET_BUILTIN_DECL): Define macro.
17202
17203 2015-02-27  Richard Biener  <rguenther@suse.de>
17204
17205         PR middle-end/63175
17206         * builtins.c (get_object_alignment_2): Make sure to re-apply
17207         the ANDed mask after recursing to its operand gets us a new
17208         misalignment bit position.
17209
17210 2015-02-26  Jan Hubicka  <hubicka@ucw.cz>
17211             Martin Liska  <mliska@suse.cz>
17212
17213         PR bootstrap/65150
17214         * ipa-icf.c (symbol_compare_collection::symbol_compare_colleciton):
17215         Use address_matters_p.
17216         (redirect_all_callers, set_addressable): New functions.
17217         (sem_function::merge): Reorganize and fix merging issues.
17218         (sem_variable::merge): Likewise.
17219         (sem_variable::compare_sections): Remove.
17220         * common.opt (fmerge-all-constants, fmerge-constants): Remove
17221         Optimization flag.
17222         * symtab.c (symtab_node::resolve_alias): When alias has aliases,
17223         redirect them.
17224         (symtab_node::make_decl_local): Set ADDRESSABLE bit when
17225         decl is used.
17226         (address_matters_1): New function.
17227         (symtab_node::address_matters_p): New function.
17228         * cgraph.c (cgraph_edge::verify_corresponds_to_fndecl): Fix
17229         check for merged flag.
17230         * cgraph.h (address_matters_p): Declare.
17231         (symtab_node::address_taken_from_non_vtable_p): Remove.
17232         (symtab_node::address_can_be_compared_p): New method.
17233         (ipa_ref::address_matters_p): Move here from ipa-ref.c; simplify.
17234         * ipa-visibility.c (symtab_node::address_taken_from_non_vtable_p):
17235         Remove.
17236         (comdat_can_be_unshared_p_1) Use address_matters_p.
17237         (update_vtable_references): Fix formating.
17238         * ipa-ref.c (ipa_ref::address_matters_p): Move inline.
17239         * cgraphunit.c (cgraph_node::create_wrapper): Drop UNINLINABLE flag.
17240         * cgraphclones.c: Preserve merged and icf_merged flags.
17241
17242 2015-02-26  Sandra Loosemore  <sandra@codesourcery.com>
17243
17244         * doc/extend.texi (Function Attributes): Fix spelling and typos.
17245         (Label Attributes): Likewise.
17246         (Cilk Plus Builtins): Likewise.
17247         (ARC SIMD Built-in Functions): Likewise.
17248         (ARM C Language Extensions (ACLE)): Likewise.
17249         (PowerPC Built-in Functions): Likewise.
17250         (PowerPC Hardware Transactional Memory Built-in Functions):
17251         Likewise.
17252
17253 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
17254
17255         PR tree-optimization/65216
17256         * tree-ssa-reassoc.c (rewrite_expr_tree): Force creation of
17257         new stmt and new SSA_NAME for lhs whenever the arguments have
17258         changed and weren't just swapped.  Fix comment typo.
17259
17260         PR tree-optimization/65215
17261         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Return false
17262         for PDP endian targets.
17263         (perform_symbolic_merge, find_bswap_or_nop_1, find_bswap_or_nop):
17264         Fix up formatting issues.
17265         (bswap_replace): Likewise.  For BYTES_BIG_ENDIAN, if the final access
17266         size is smaller than the original, adjust MEM_REF offset by the
17267         difference of sizes.  Use is_gimple_mem_ref_addr instead of
17268         is_gimple_min_invariant test to avoid adding address temporaries.
17269
17270 2015-02-26  Martin Liska  <mliska@suse.cz>
17271             Jan Hubicka  <hubicka@ucw.cz>
17272
17273         PR ipa/64693
17274         * ipa-icf.c (symbol_compare_collection::symbol_compare_collection): New.
17275         (sem_item_optimizer::subdivide_classes_by_sensitive_refs): New function.
17276         (sem_item_optimizer::process_cong_reduction): Include division by
17277         sensitive references.
17278         * ipa-icf.h (struct symbol_compare_hashmap_traits): New class.
17279         * ipa-ref.c (ipa_ref::address_matters_p): New function.
17280         * ipa-ref.h (ipa_ref::address_matters_p): Likewise.
17281
17282 2015-02-26  Georg-Johann Lay  <avr@gjlay.de>
17283
17284         PR target/65192
17285         * config/avr/avr-protos.h (tiny_valid_direct_memory_access_range):
17286         Remove.
17287         * config/avr/avr.c: Same.
17288         (avr_legitimate_address_p) <AVR_TINY, CONSTANT_ADDRESS_P>:
17289         Refuse any constant address not in 0..0xbf.
17290         * config/avr/avr.md (*mov<mode>, *movsf): Remove
17291         tiny_valid_direct_memory_access_range from insn conditions.
17292         (mov<mode>): Don't special-case expansion of avrtiny addresses.
17293
17294 2015-02-26  Oleg Endo  <olegendo@gcc.gnu.org>
17295
17296         PR target/61142
17297         * config/sh/sh.c (sh_check_add_incdec_notes): New function.
17298         * config/sh/sh-protos.h (sh_check_add_incdec_notes): Declare it.
17299         * config/sh/predicates.md (const_logical_operand): New predicate.
17300         * config/sh/sh.md: Add new peephole2 patterns.
17301
17302 2015-02-26  Marek Polacek  <polacek@redhat.com>
17303
17304         PR ipa/65008
17305         * ipa-inline.c (early_inliner): Recompute inline parameters.
17306
17307 2015-02-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
17308
17309         PR target/65171
17310         * config/rs6000/rs6000.c (rs6000_analyze_swaps): Ensure
17311         instructions with TImode operands are included in the analysis.
17312
17313 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
17314
17315         * tree-ssa-threadupdate.c (dump_jump_thread_path): Print all edges
17316         of an EDGE_FSM_THREAD.
17317
17318 2015-02-25  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
17319
17320         * config/rs6000/htm.md (tcheck): Fix assembly encoding.
17321
17322 2015-02-25  Aldy Hernandez  <aldyh@redhat.com>
17323
17324         PR debug/46102
17325         * dwarf2out.c (dwarf2out_init): Disable -feliminate-dwarf2-dups.
17326
17327 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
17328
17329         PR tree-optimization/65048
17330         * tree-ssa-threadupdate.c (valid_jump_thread_path): New.
17331         (thread_through_all_blocks): Call valid_jump_thread_path.
17332         Remove invalid FSM jump-thread paths.
17333
17334 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
17335
17336         * passes.c (ipa_write_summaries_1): Call lto_output_init_mode_table.
17337         (ipa_write_optimization_summaries): Likewise.
17338         * tree-streamer.h: Include data-streamer.h.
17339         (streamer_mode_table): Declare extern variable.
17340         (bp_pack_machine_mode, bp_unpack_machine_mode): New inline functions.
17341         * lto-streamer-out.c (lto_output_init_mode_table,
17342         lto_write_mode_table): New functions.
17343         (produce_asm_for_decls): Call lto_write_mode_table when streaming
17344         offloading LTO.
17345         * lto-section-in.c (lto_section_name): Add "mode_table" entry.
17346         (lto_create_simple_input_block): Add mode_table argument to the
17347         lto_input_block constructors.
17348         * ipa-prop.c (ipa_prop_read_section, read_replacements_section):
17349         Likewise.
17350         * data-streamer-in.c (string_for_index): Likewise.
17351         * ipa-inline-analysis.c (inline_read_section): Likewise.
17352         * ipa-icf.c (sem_item_optimizer::read_section): Likewise.
17353         * lto-cgraph.c (input_cgraph_opt_section): Likewise.
17354         * lto-streamer-in.c (lto_read_body_or_constructor,
17355         lto_input_toplevel_asms): Likewise.
17356         (lto_input_mode_table): New function.
17357         * tree-streamer-out.c (pack_ts_fixed_cst_value_fields,
17358         pack_ts_decl_common_value_fields, pack_ts_type_common_value_fields):
17359         Use bp_pack_machine_mode.
17360         * real.h (struct real_format): Add name field.
17361         * lto-streamer.h (enum lto_section_type): Add LTO_section_mode_table.
17362         (class lto_input_block): Add mode_table member.
17363         (lto_input_block::lto_input_block): Add mode_table_ argument,
17364         initialize mode_table.
17365         (struct lto_file_decl_data): Add mode_table field.
17366         (lto_input_mode_table, lto_output_init_mode_table): New prototypes.
17367         * tree-streamer-in.c (unpack_ts_fixed_cst_value_fields,
17368         unpack_ts_decl_common_value_fields,
17369         unpack_ts_type_common_value_fields): Call bp_unpack_machine_mode.
17370         * tree-streamer.c (streamer_mode_table): New variable.
17371         * real.c (ieee_single_format, mips_single_format,
17372         motorola_single_format, spu_single_format, ieee_double_format,
17373         mips_double_format, motorola_double_format,
17374         ieee_extended_motorola_format, ieee_extended_intel_96_format,
17375         ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format,
17376         ibm_extended_format, mips_extended_format, ieee_quad_format,
17377         mips_quad_format, vax_f_format, vax_d_format, vax_g_format,
17378         decimal_single_format, decimal_double_format, decimal_quad_format,
17379         ieee_half_format, arm_half_format, real_internal_format): Add name
17380         field.
17381         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
17382
17383 2015-02-26  Yuri Rumyantsev  <ysrumyan@gmail.com>
17384
17385         PR target/65161
17386         * config/i386/i386.c (ix86_sched_reorder): Skip instruction
17387         reordering for selective scheduling.
17388
17389 2015-02-26  Terry Guo  <terry.guo@arm.com>
17390
17391         * config/arm/arm-cores.def (cortex-m7): Add flag FL_NO_VOLATILE_CE.
17392         * config/arm/arm-protos.h (FL_NO_VOLATILE_CE): New flag.
17393         (arm_arch_no_volatile_ce): Declare new global variable.
17394         * config/arm/arm.c (arm_arch_no_volatile_ce): New global variable.
17395         (arm_option_override): Assign value to arm_arch_no_volatile_ce.
17396         * config/arm/arm.h (arm_arch_no_volatile_ce): Declare it.
17397         (TARGET_NO_VOLATILE_CE): New macro.
17398         * config/arm/arm.md (arm_comparison_operator): Disabled if not allow
17399         volatile memory access in IT block
17400
17401 2015-02-25  Kai Tietz  <ktietz@redhat.com>
17402
17403         PR tree-optimization/61917
17404         * tree-vect-loop.c (vectorizable_reduction): Handle obvious case
17405         that reduc_def_stmt is null.
17406
17407 2015-02-25  Martin Liska  <mliska@suse.cz>
17408
17409         * ipa-icf-gimple.c (func_checker::compare_variable_decl): Compare
17410         hard register variables.
17411
17412 2015-02-25  Kai Tietz  <ktietz@redhat.com>
17413
17414         PR target/64212
17415         * symtab.c (symtab::make_decl_local): Set DECL_IMPORT_P explicit to 0.
17416         (symtab::noninterposable_alias): Likewise.
17417
17418 2015-02-25  Ilya Enkovich  <ilya.enkovich@intel.com>
17419
17420         PR target/65167
17421         * gcc/config/i386/i386.c (ix86_function_arg_regno_p): Support
17422         bounds registers.
17423         (avoid_func_arg_motion): Add dependencies for BNDSTX insns.
17424
17425 2015-02-25  Alan Lawrence  <alan.lawrence@arm.com>
17426
17427         PR target/64997
17428         * config/aarch64/aarch64.md (*xor_one_cmpl<mode>3): Use FP_REGNUM_P
17429         as split condition; force split via '#' in output pattern.
17430
17431 2015-02-25  Richard Biener  <rguenther@suse.de>
17432             Kai Tietz  <ktietz@redhat.com>
17433
17434         PR tree-optimization/61917
17435         * tree-vect-loop.c (vectorizable_reduction): Allow
17436         vect_internal_def without reduction to exit graceful.
17437
17438 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
17439
17440         PR target/65196
17441         * config/avr/avr.c (avr_adjust_insn_length): Call recog_memoized
17442         only with NONDEBUG_INSN_P.
17443
17444 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
17445
17446         Use variadic macros with avr-log.c.
17447
17448         * config/avr/avr-protos.h (avr_vdump): New prototype.
17449         (avr_log_set_caller_e, avr_log_set_caller_f): Remove protos.
17450         (avr_edump, avr_fdump, avr_dump): (Re)define to use avr_vdump.
17451         * config/avr/avr-log.c: Adjust comments.
17452         (avr_vdump): New function.
17453         (avr_vadump): Pass caller as 2nd argument instead of format string.
17454         (avr_log_caller, avr_log_fdump_e, avr_log_fdump_f)
17455         (avr_log_set_caller_e, avr_log_set_caller_f): Remove.
17456
17457 2015-02-25  Jakub Jelinek  <jakub@redhat.com>
17458
17459         PR lto/64374
17460         * target.def (target_option_stream_in): New target hook.
17461         * tree-streamer-in.c (streamer_read_tree_bitfields): Invoke
17462         targetm.target_option.post_stream_in if non-NULL.
17463         * doc/tm.texi.in: Add @hook TARGET_OPTION_POST_STREAM_IN.
17464         * doc/tm.texi: Updated.
17465         * config/i386/i386.c (ix86_function_specific_post_stream_in): New
17466         function.
17467         (TARGET_OPTION_POST_STREAM_IN): Redefine.
17468
17469 2015-02-24  Jeff Law  <law@redhat.com>
17470
17471         PR target/65117
17472         * config/xtensa/xtensa.md (zero_cost_loop_start): Reverse numbering
17473         of operand 0 and operand 2.
17474         (zero_cost_loop_end, loop_end): Similarly.
17475
17476 2015-02-24  Aldy Hernandez  <aldyh@redhat.com>
17477
17478         * gimple.h (gimple_build_assign): Rename CXX_MEM_STAT_DECL to
17479         CXX_MEM_STAT_INFO.
17480
17481 2015-02-24  DJ Delorie  <dj@redhat.com>
17482
17483         * config/rl78/rl78-protos.h (rl78_split_movsi): Accept a mode as well.
17484         * config/rl78/rl78-expand.md (movsf): New, same as movsi.
17485         * config/rl78/rl78.c (rl78_split_movsi): Accept a mode, use it
17486         instead of hardcoding SImode.
17487
17488 2015-02-24  Bernd Schmidt  <bernds@codesourcery.com>
17489
17490         * omp-low.c (create_omp_child_function): Tag entrypoint
17491         functions with a special attribute.
17492
17493 2015-02-24  Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
17494
17495         PR target/65058
17496         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Drop unused variable.
17497
17498 2015-02-24  Vladimir Makarov  <vmakarov@redhat.com>
17499
17500         PR rtl-optimization/65123
17501         * lra-remat.c (operand_to_remat): Check hard regs in insn
17502         definition too.
17503
17504 2015-02-24  Nick Clifton  <nickc@redhat.com>
17505
17506         * config/v850/v850.h (ASM_SPEC): Pass -msoft-float/-mhard-float on
17507         to the assembler.
17508
17509 2015-02-24  Thomas Schwinge  <thomas@codesourcery.com>
17510
17511         PR libgomp/64625
17512         * omp-builtins.def (BUILT_IN_GOACC_DATA_START): Specify as
17513         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR, not
17514         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR.
17515         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_UPDATE): Specify as
17516         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR, not
17517         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR.
17518         (BUILT_IN_GOACC_PARALLEL): Specify as
17519         BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR, not
17520         BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR.
17521         * builtin-types.def
17522         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
17523         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
17524         Remove function types.
17525         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR)
17526         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR)
17527         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
17528         New function types.
17529
17530 2015-02-24  Georg-Johann Lay  <avr@gjlay.de>
17531
17532         * config/avr/stdfix.h [__WITH_AVRLIBC__]: Include <stdfix-avrlibc.h>.
17533
17534 2015-02-24  Jakub Jelinek  <jakub@redhat.com>
17535
17536         PR tree-optimization/65170
17537         * wide-int.cc (wi::mul_internal): For the umul_ppmm optimization,
17538         if val[1] < 0, clear also val[2] and return 3.
17539
17540 2015-02-24  Alan Modra  <amodra@gmail.com>
17541
17542         PR target/65172
17543         * config/rs6000/rs6000.c (get_memref_parts): Only return true
17544         when *base is a reg.  Handle nested plus addresses.  Simplify
17545         pre_modify test.
17546
17547 2015-02-22  Max Filippov  <jcmvbkbc@gmail.com>
17548
17549         * config/xtensa/xtensa.h (CONSTANT_ALIGNMENT, DATA_ALIGNMENT):
17550         use natural alignment when optimizing for size.
17551
17552 2015-02-23  Kaz Kojima  <kkojima@gcc.gnu.org>
17553
17554         PR target/65153
17555         * config/sh/sh.md (movsicc_true+3): Remove peephole.
17556         * config/sh/sh-protos.h (replace_n_hard_rtx): Don't declare.
17557         * config/sh/sh.c (replace_n_hard_rtx): Remove.
17558
17559 2015-02-23  Richard Sandiford  <richard.sandiford@arm.com>
17560
17561         PR fortran/63427
17562         * wide-int.cc (wi::from_mpz): Cope with unwrapped values that are
17563         too big for a wide_int.  Implement missing wrapping operation.
17564
17565 2015-02-23  Oleg Endo  <olegendo@gcc.gnu.org>
17566
17567         PR target/65163
17568         * config/sh/sh.md (swapbsi2, related peephole2): Use const_int -65536
17569         instead of const_int 4294901760.
17570
17571 2015-02-23  Georg-Johann Lay  <avr@gjlay.de>
17572
17573         * config/avr/t-avr: Fix typo in comment.
17574
17575 2015-02-21  Richard Sandiford  <richard.sandiford@arm.com>
17576
17577         * doc/rtl.texi (fma): Clarify documentation.
17578
17579 2015-02-20  Aldy Hernandez  <aldyh@redhat.com>
17580
17581         PR debug/58123
17582         * gimplify.c (gimplify_expr): Prefer location of TRY_FINALLY_EXPR
17583         over input_location.
17584
17585 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
17586
17587         * tree-streamer-in.c (unpack_ts_decl_common_value_fields,
17588         unpack_ts_type_common_value_fields): If ACCEL_COMPILER,
17589         restrict alignments to absolute_biggest_alignment.
17590         * config/i386/i386.c (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT):
17591         Define.
17592         * doc/tm.texi.in (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT): Add.
17593         * doc/tm.texi: Regenerate.
17594         * target.def (absolute_biggest_alignment): New DEFHOOKPOD.
17595
17596 2015-02-20  Vladimir Makarov  <vmakarov@redhat.com>
17597
17598         PR target/64172
17599         * ira-color.c (color_pass): Prevent splitting multi-register pseudos.
17600
17601 2015-02-20  Richard Biener  <rguenther@suse.de>
17602
17603         PR tree-optimization/65136
17604         * tree-ssa-propagate.c: Include cfgloop.h.
17605         (replace_phi_args_in): Avoid replacing loop latch edge PHI
17606         arguments with constants.
17607
17608 2015-02-20  Jakub Jelinek  <jakub@redhat.com>
17609             Martin Liska  <mliska@suse.cz>
17610
17611         PR target/63892
17612         * ipa-icf.c (sem_function::merge): If DECL_COMDAT_GROUP (alias->decl),
17613         don't try to create_thunk if stdarg_p.  If
17614         !sem_item::target_supports_symbol_aliases_p (), similarly, and try to
17615         redirect_callers if possible.
17616         (sem_item_optimizer::execute): Call unregister_hooks here...
17617         (ipa_icf_driver): ... instead of here.
17618
17619 2015-02-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17620
17621         * config/aarch64/aarch64.md (*aarch64_lshr_sisd_or_int_<mode>3):
17622         Mark operand 0 as earlyclobber in 2nd alternative.
17623         (1st define_split below *aarch64_lshr_sisd_or_int_<mode>3):
17624         Write negated shift amount into QI lowpart operand 0 and use it
17625         in the shift step.
17626         (2nd define_split below *aarch64_lshr_sisd_or_int_<mode>3): Likewise.
17627
17628 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
17629
17630         * cgraph.h (clone_function_name_1): Declare.
17631         * cgraphclones.c (clone_function_name_1): New function.
17632         (clone_function_name): Use it.
17633         * lto-partition.c: Include "stringpool.h".
17634         (must_not_rename, maybe_rewrite_identifier)
17635         (validize_symbol_for_target): New static functions.
17636         (privatize_symbol_name): Use must_not_rename.
17637         (promote_symbol): Call validize_symbol_for_target.
17638         (lto_promote_cross_file_statics): Likewise.
17639         (lto_promote_statics_nonwpa): Likewise.
17640
17641 2015-02-20  Georg-Johann Lay  <avr@gjlay.de>
17642
17643         PR target/64452
17644         * config/avr/avr.md (pushhi_insn): New insn.
17645         (push<mode>1): Push virtual regs in one chunk using pushhi1_insn.
17646
17647 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
17648             Jakub Jelinek  <jakub@redhat.com>
17649
17650         * tree-streamer.c (preload_common_nodes): Don't preload
17651         TI_VA_LIST* for offloading.
17652         * tree-stdarg.c (pass_stdarg::gate): Disable for ACCEL_COMPILER
17653         in_lto_p.
17654
17655 2015-02-19  John David Anglin  <danlgin@gcc.gnu.org>
17656
17657         * config/pa/pa.c (pa_emit_move_sequence): Always force
17658         (const (plus (symbol) (const_int))) to const mem.  Put REG_EQUAL
17659         note on insn.
17660
17661         * config/pa/pa.c (pa_reloc_rw_mask): New function.
17662         (TARGET_ASM_RELOC_RW_MASK): Define.
17663         (pa_cannot_force_const_mem): Revert previous change.
17664
17665 2015-02-19  Martin Jambor  <mjmabor@suse.cz>
17666             Jan Hubicka  <hubicka@ucw.cz>
17667
17668         PR ipa/65028
17669         * ipa-cp.c (propagate_alignment_accross_jump_function): Fix propagation
17670         across jump functions.
17671
17672 2015-02-19  Uros Bizjak  <ubizjak@gmail.com>
17673
17674         * config/alpha/alpha.c (alpha_in_small_data_p): Reject common symbols.
17675
17676 2015-02-19  Sandra Loosemore  <sandra@codesourcery.com>
17677
17678         * doc/extend.texi (x86 transactional memory intrinsics): Copy-edit.
17679
17680 2015-02-19  Richard Henderson  <rth@redhat.com>
17681
17682         PR middle-end/65074
17683         * varasm.c (default_binds_local_p_2): Don't test node->definition;
17684         test DECL_EXTERNAL independent of symtab_node.
17685
17686 2015-02-19  Jakub Jelinek  <jakub@redhat.com>
17687
17688         PR lto/65012
17689         * varpool.c (varpool_node::get_constructor): Return early
17690         if this->lto_file_data is NULL.
17691
17692 2015-02-19  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
17693
17694         * haifa-sched.c (enum rfs_decision, rfs_str): Remove RFS_DEBUG.
17695         (rank_for_schedule_debug): Update.
17696         (ready_sort): Make static.  Move sorting logic to ...
17697         (ready_sort_debug, ready_sort_real): New static functions.
17698         (schedule_block): Sort both debug insns and real insns in preparation
17699         for ready list trimming.  Improve debug output.
17700         * sched-int.h (ready_sort): Remove global declaration.
17701
17702 2015-02-18  Trevor Saunders  <tsaunders@mozilla.com>
17703
17704         * ipa-icf.c (sem_function::equals_private): Adjust.
17705         (sem_function::bb_dict_test): Take a vec<int> * instead of
17706         auto_vec<int>.
17707         * ipa-icf.h (bb_dict_test): Likewise.
17708
17709 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
17710
17711         PR gcov-profile/64634
17712         * tree-eh.c (frob_into_branch_around): Fix up typos
17713         in function comment.
17714         (lower_catch): Put eh_seq resulting from EH lowering of
17715         the cleanup sequence after the cleanup rather than before it.
17716
17717 2015-02-18  Tom de Vries  <tom@codesourcery.com>
17718
17719         * common.opt (fstdarg-opt): New option.
17720         * tree-stdarg.c (pass_stdarg::gate): Use flag_stdarg_opt.
17721         * doc/invoke.texi (@item Optimization Options): Add -fstdarg-opt.
17722         (@item -fstdarg-opt): New item.
17723
17724 2015-02-18  H.J. Lu  <hongjiu.lu@intel.com>
17725
17726         PR target/65064
17727         * config/ia64/predicates.md (sdata_symbolic_operand): Return false
17728         for common symbols.
17729
17730 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
17731
17732         * config/i386/t-intelmic (mkoffload.o): Remove dependency on
17733         insn-modes.h.
17734         (ALL_HOST_OBJS): Add mkoffload.o.
17735         * config/nvptx/t-nvptx (ALL_HOST_OBJS): Likewise.
17736
17737 2015-02-18  Jan Hubicka  <hubicka@ucw.cz>
17738
17739         * ipa-devirt.c (odr_subtypes_equivalent_p): Fix formating.
17740         (compare_virtual_tables): Be smarter about skipping typeinfos;
17741         do sane output on virtual table table mismatch.
17742         (warn_odr): Be ready for forward declarations of enums;
17743         output sane info on base mismatch and virtual table mismatch.
17744         (add_type_duplicate): Fix code choosing prevailing type; do not ICE
17745         when only one type is polymorphic.
17746         (get_odr_type): Fix hashtable corruption.
17747         (dump_odr_type): Dump mangled names.
17748
17749 2015-02-18  Richard Biener  <rguenther@suse.de>
17750
17751         PR tree-optimization/65063
17752         * tree-predcom.c (determine_unroll_factor): Return 1 if we
17753         have replaced looparound PHIs.
17754
17755 2015-02-18  Martin Liska  <mliska@suse.cz>
17756
17757         * lto-streamer.c (lto_streamer_init): Encapsulate
17758         streamer_check_handled_ts_structures with checking macro.
17759
17760 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
17761
17762         PR ipa/65087
17763         * cgraphclones.c (cgraph_node::create_virtual_clone): Only copy
17764         section if !implicit_section.
17765         (cgraph_node::create_version_clone_with_body): Likewise.
17766         * trans-mem.c (ipa_tm_create_version): Likewise.
17767
17768 2015-02-18  Richard Biener  <rguenther@suse.de>
17769
17770         PR tree-optimization/62217
17771         * tree-ssa-dom.c (cprop_operand): Avoid propagating copies
17772         into BIVs.
17773
17774 2015-02-18  Marek Polacek  <polacek@redhat.com>
17775
17776         PR sanitizer/65081
17777         * ubsan.c (OBJSZ_MAX_OFFSET): Define.
17778         (ubsan_expand_objsize_ifn): Don't emit run-time check if the offset
17779         is in range [-16K, -1].  Don't issue run-time error if
17780         (ptr > ptr + offset).
17781
17782 2015-02-18  Thomas Schwinge  <thomas@codesourcery.com>
17783
17784         * doc/install.texi (nvptx-*-none): New section.
17785         * doc/invoke.texi (Nvidia PTX Options): Likewise.
17786         * config/nvptx/nvptx.opt: Update.
17787
17788         * config/nvptx/mkoffload.c (parse_env_var, free_array_of_ptrs)
17789         (access_check): New functions, copied from
17790         config/i386/intelmic-mkoffload.c.
17791         (main): For non-installed testing, look in all COMPILER_PATHs for
17792         GCC_INSTALL_NAME.
17793
17794         * config/nvptx/nvptx.h (GOMP_SELF_SPECS): Define macro.
17795
17796 2015-02-18  Andrew Pinski  <apinski@cavium.com>
17797             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
17798
17799         * config/aarch64/aarch64.c (*aarch64_load_symref_appropriately):
17800         Check whether the destination of SYMBOL_SMALL_TPREL is Pmode.
17801
17802 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
17803
17804         * ipa-visibility.c (function_and_variable_visibility): Only
17805         check locality if node is not already local.
17806         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
17807         call_for_symbol_and_aliases instead of
17808         call_for_symbol_thunks_and_aliases.
17809         (ipa_inline): Likewise.
17810         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
17811         first walk aliases.
17812         * ipa.c (symbol_table::remove_unreachable_nodes): Use
17813         call_for_symbol_and_aliases.
17814         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
17815         (ipa_propagate_frequency_1): Use it; use opt_for_fn
17816         (ipa_propagate_frequency): Update.
17817         (ipa_profile): Add opt_for_fn gueards.
17818
17819 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
17820
17821         * config/sh/sh.opt (mcbranch-force-delay-slot): New option.
17822         * doc/invoke.texi (SH options): Document it.
17823         * config/sh/sh.c (sh_insn_length_adjustment): Check
17824         TARGET_CBRANCH_FORCE_DELAY_SLOT instead of sh_cpu_attr == CPU_SH2E.
17825
17826 2015-02-17  H.J. Lu  <hongjiu.lu@intel.com>
17827
17828         * common.opt (fipa-cp-alignment): New.
17829         * ipa-cp.c (ipcp_store_alignment_results): Check
17830         flag_ipa_cp_alignment.
17831         * opts.c (default_options_table): Enable -fipa-cp-alignment for
17832         -O2.
17833         (enable_fdo_optimizations): Set x_flag_ipa_cp_alignment.
17834         * doc/invoke.texi: Document -fipa-cp-alignment.
17835
17836 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
17837
17838         PR target/64793
17839         * config/sh/sh.md (cbranch define_delay): Set annulled true branch insn
17840         to nil.  Adjust comments.
17841
17842 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
17843
17844         * ipa-visibility.c (function_and_variable_visibility): Only
17845         check locality if node is not already local.
17846         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
17847         call_for_symbol_and_aliases instead of
17848         call_for_symbol_thunks_and_aliases.
17849         (ipa_inline): Likewise.
17850         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
17851         first walk aliases.
17852         * ipa.c (symbol_table::remove_unreachable_nodes): Use
17853         call_for_symbol_and_aliases.
17854         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
17855         (ipa_propagate_frequency_1): Use it; use opt_for_fn
17856         (ipa_propagate_frequency): Update.
17857         (ipa_profile): Add opt_for_fn guards.
17858
17859 2015-02-17  Thomas Schwinge  <thomas@codesourcery.com>
17860
17861         * config/nvptx/mkoffload.c (parse_file): Fix logic error in
17862         skipping of "strange" tokens.
17863
17864 2015-02-17  Jeff Law  <law@redhat.com>
17865
17866         * tree-vrp.c (identify_jump_threads): Use last_stmt.  Remove
17867         obsolete comment.
17868
17869 2015-02-17  James Greenhalgh  <james.greenhalgh@arm.com>
17870
17871         * haifa-sched.c (recompute_todo_spec): Treat SCHED_GROUP_P
17872         as forcing a HARD_DEP between instructions, thereby
17873         disallowing rewriting to break dependencies.
17874
17875 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
17876
17877         * symtab.c (symtab_node::verify_base): Verify body_removed->!definiton
17878         * lto-cgraph.c (lto_output_varpool_node): Do not keep definition of
17879         variables in boundary that have no inlitalizer encoded and are
17880         not aliases.
17881         * varasm.c (default_binds_local_p_2): External definitions do not
17882         count as definitions here.
17883
17884 2015-02-16  Jeff Law  <law@redhat.com>
17885
17886         PR tree-optimization/64823
17887         * tree-vrp.c (identify_jump_threads): Handle blocks with no real
17888         statements.
17889         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
17890         threading through blocks with PHIs, but no statements.
17891         (thread_through_normal_block): Distinguish between blocks where
17892         we did not process all the statements and blocks with no statements.
17893
17894 2015-02-16  Jakub Jelinek  <jakub@redhat.com>
17895             James Greenhalgh  <james.greenhalgh@arm.com>
17896
17897         PR ipa/64963
17898         * cgraphclones.c (cgraph_node::create_virtual_clone): Copy
17899         section if not linkonce.  Fix up formatting.
17900         (cgraph_node::create_version_clone_with_body): Copy section.
17901         * trans-mem.c (ipa_tm_create_version): Likewise.
17902
17903 2015-02-16  Richard Biener  <rguenther@suse.de>
17904
17905         PR tree-optimization/65077
17906         * tree-ssa-structalias.c (get_constraint_for_1): Handle
17907         IMAGPART_EXPR, REALPART_EXPR and BIT_FIELD_REF.
17908         (find_func_aliases): Allow float values to carry pointers again.
17909
17910 2015-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
17911
17912         * doc/install.texi (Specific): Reorder targets list to put
17913         aarch64 in alphabetical order.  Add a link to aarch64*-*-*
17914         from the top menu.
17915
17916 2015-02-16  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
17917             David Edelsohn  <dje.gcc@gmail.com>
17918
17919         PR target/65058
17920         * config/rs6000/rs6000.c (rs6000_output_symbol_ref): Append storage
17921         mapping class to external variable or function reference.
17922         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Do not append storage
17923         mapping class.
17924
17925 2015-02-16  David Eelsohn  <dje.gcc@gmail.com>
17926
17927         PR target/53348
17928         * config/rs6000/rs6000.c (rs6000_declare_alias): Only use
17929         ASM_WEAKEN_DECL if defined.
17930
17931 2015-02-16  Richard Biener  <rguenther@suse.de>
17932
17933         PR lto/65015
17934         * varasm.c (default_file_start): For LTO produced units
17935         emit <artificial> as file directive.
17936
17937 2015-02-16  Richard Biener  <rguenther@suse.de>
17938
17939         PR tree-optimization/63593
17940         * tree-predcom.c (execute_pred_commoning_chain): Delay removing
17941         stmts and releasing SSA names until...
17942         (execute_pred_commoning): ... after processing all chains.
17943
17944 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
17945
17946         PR ipa/65059
17947         * ipa-comdats.c (ipa_comdats): Do not categorize thunks to
17948         external functions.
17949
17950 2015-02-15  Sandra Loosemore  <sandra@codesourcery.com>
17951
17952         * doc/bugreport.texi: Adjust section titles throughout the file
17953         to use "Title Case".
17954         * doc/extend.texi: Likewise.
17955         * doc/gcov.texi: Likewise.
17956         * doc/implement-c.texi: Likewise.
17957         * doc/implement-cxx.texi: Likewise.
17958         * doc/invoke.texi: Likewise.
17959         * doc/objc.texi: Likewise.
17960         * doc/standards.texi: Likewise.
17961         * doc/trouble.texi: Likewise.
17962
17963 2015-02-15  Jan Hubicka  <hubicka@ucw.cz>
17964
17965         * cgraph.h (symtab_node::has_aliases_p): Simplify.
17966         (symtab_node::call_for_symbol_and_aliases): Use has_aliases_p
17967         * tree.c (lookup_binfo_at_offset): Make static.
17968         (get_binfo_at_offset): Do not shadow offset; add explanatory
17969         comment.
17970
17971 2015-02-15  John David Anglin  <danglin@gcc.gnu.org>
17972
17973         * config/pa/pa.c (pa_secondary_reload): Request a secondary reload
17974         for all floading point loads and stores except those using a register
17975         index address.
17976         * config/pa/pa.md: Add new patterns to load a lo_sum DLT operand
17977         to a register.
17978
17979 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
17980
17981         * ipa-inline-analysis.c (growth_data): Add uninlinable field.
17982         (do_estimate_growth_1): Record if any uninlinable edge was seen.
17983         (estimate_growth): Handle uninlinable edges correctly.
17984         (check_callers): New.
17985         (growth_likely_positive): Handle aliases correctly.
17986
17987 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
17988
17989         * ipa-chkp.c: Use iterate_direct_aliases.
17990         * symtab.c (resolution_used_from_other_file_p): Move inline.
17991         (symtab_node::create_reference): Fix formating.
17992         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
17993         (symtab_node::iterate_reference): Move inline.
17994         (symtab_node::iterate_referring): Move inline.
17995         (symtab_node::iterate_direct_aliases): Move inline.
17996         (symtab_node::used_from_object_file_p_worker): Inline into ...
17997         (symtab_node::used_from_object_file_p): ... this one; move inline.
17998         (symtab_node::call_for_symbol_and_aliases): Move inline;
17999         use iterate_direct_aliases.
18000         (symtab_node::call_for_symbol_and_aliases_1): New method.
18001         (cgraph_node::call_for_symbol_and_aliases): Move inline;
18002         use iterate_direct_aliases.
18003         (cgraph_node::call_for_symbol_and_aliases_1): New method.
18004         (varpool_node::call_for_node_and_aliases): Rename to ...
18005         (varpool_node::call_for_symbol_and_aliases): ... this one; Move inline;
18006         use iterate_direct_aliases.
18007         (varpool_node::call_for_symbol_and_aliases_1): New method.
18008         * ipa.c (ipa_single_use): Use iterate_direct_aliases.
18009         (ipa_discover_readonly_nonaddressable_var): Update.
18010         * ipa-devirt.c: Fix formating.
18011         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_and_refs_p):
18012         Move inline.
18013         (cgraph_node::call_for_symbol_and_aliases): Move inline.
18014         (cgraph_node::call_for_symbol_and_aliases_1): New function..
18015         * cgraph.h (used_from_object_file_p_worker): Remove.
18016         (resolution_used_from_other_file_p): Move inline.
18017         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
18018         (symtab_node::iterate_reference): Move inline.
18019         (symtab_node::iterate_referring): Move inline.
18020         (symtab_node::iterate_direct_aliases): Move inline.
18021         (symtab_node::used_from_object_file_p_worker): Inline into ...
18022         (symtab_node::used_from_object_file_p): Move inline.
18023         * tree-emutls.c (ipa_lower_emutls): Update.
18024         * varpool.c (varpool_node::call_for_symbol_and_aliases_1): New method.
18025         (varpool_node::call_for_node_and_aliases): Remove.
18026
18027 2015-02-14  Jakub Jelinek  <jakub@redhat.com>
18028
18029         PR tree-optimization/62209
18030         * tree-ssa-reassoc.c (update_range_test): If stmt is a PHI and
18031         op == range->exp, insert seq and gimplified code after labels
18032         instead of after the phi.
18033
18034 2015-02-13  Jeff Law  <law@redhat.com>
18035
18036         PR bootstrap/65060
18037         Revert my change for tree-optimization/64823.
18038
18039 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
18040
18041         PR tree-optimization/65053
18042         * tree-ssa-phiopt.c (value_replacement): When moving assign before
18043         cond, either reset VR on lhs or set it to phi result VR.
18044
18045 2015-02-13  Jeff Law  <law@redhat.com>
18046
18047         PR tree-optimization/64823
18048         * tree-vrp.c (identify_jump_threads): Handle blocks with no statements.
18049         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
18050         threading through blocks with PHIs, but no statements.
18051         (thread_through_normal_block): Distinguish between blocks where
18052         we did not process all the statements and blocks with no statements.
18053
18054         PR rtl-optimization/47477
18055         * match.pd (convert (plus/minus (convert @0) (convert @1): New
18056         simplifier to narrow arithmetic.
18057
18058 2015-02-13  Jan Hubicka  <hubicka@ucw.cz>
18059
18060         PR ipa/65028
18061         * ipa-prop.c (update_indirect_edges_after_inlining): Do not drop
18062         polymorphic call info when type is not known to be preserved.
18063
18064 2015-02-13  Maritn Jambor  <mjambor@suse.cz>
18065
18066         PR ipa/65028
18067         * ipa-inline-transform.c (mark_all_inlined_calls_cdtor): New function.
18068         (inline_call): Use it.
18069
18070 2015-02-13  Thomas Schwinge  <thomas@codesourcery.com>
18071
18072         * config/nvptx/offload.h (ACCEL_COMPILER_acc_device): Define to
18073         GOMP_DEVICE_NVIDIA_PTX.
18074
18075 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
18076
18077         PR ipa/65034
18078         * stmt.c (emit_case_nodes): Use void_type_node instead of
18079         NULL_TREE as LABEL_DECL type.
18080
18081 2015-02-13  John David Anglin  <danglin@gcc.gnu.org>
18082
18083         * config/pa/constraints.md: Change "Q" and "T" constraints to memory
18084         constraints.
18085         * config/pa/pa.c (pa_cannot_force_const_mem): Don't allow constant
18086         symbolic references to data to be forced to constant memory on the
18087         SOM target.
18088
18089 2015-02-13  Ilya Enkovich  <ilya.enkovich@intel.com>
18090
18091         PR tree-optimization/65002
18092         * tree-cfg.c (pass_data_fixup_cfg): Don't update
18093         SSA on start.
18094         * tree-sra.c (some_callers_have_no_vuse_p): New.
18095         (ipa_early_sra): Reject functions whose callers
18096         assume function is read only.
18097
18098 2015-02-13  Richard Biener  <rguenther@suse.de>
18099
18100         PR lto/65015
18101         * dwarf2out.c (dwarf2out_finish): Use <artificial> as DW_AT_name
18102         for LTO produced CUs.
18103
18104 2015-02-13  Bin Cheng  <bin.cheng@arm.com>
18105
18106         PR tree-optimization/64705
18107         * tree-ssa-loop-niter.h (expand_simple_operations): New parameter.
18108         * tree-ssa-loop-niter.c (expand_simple_operations): New parameter.
18109         * tree-ssa-loop-ivopts.c (extract_single_var_from_expr): New.
18110         (find_bivs, find_givs_in_stmt_scev): Pass new argument to
18111         expand_simple_operations.
18112
18113 2015-02-13  H.J. Lu  <hongjiu.lu@intel.com>
18114             Richard Henderson  <rth@redhat.com>
18115
18116         PR rtl/32219
18117         * cgraphunit.c (cgraph_node::finalize_function): Set definition
18118         before notice_global_symbol.
18119         (varpool_node::finalize_decl): Likewise.
18120         * varasm.c (default_binds_local_p_2): Rename from
18121         default_binds_local_p_1, add weak_dominate argument.  Use direct
18122         returns instead of assigning to local variable.  Unify varpool and
18123         cgraph paths via symtab_node.  Reject undef weak variables before
18124         testing visibility.  Reorder tests for simplicity.
18125         (default_binds_local_p): Use default_binds_local_p_2.
18126         (default_binds_local_p_1): Likewise.
18127         (decl_binds_to_current_def_p): Unify varpool and cgraph paths
18128         via symtab_node.
18129         (default_elf_asm_output_external): Emit visibility when specified.
18130
18131 2015-02-13  Alan Modra  <amodra@gmail.com>
18132
18133         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Fix typo in
18134         code setting up r11 for out-of-line fp restore.
18135
18136 2015-02-13  Eric Botcazou  <ebotcazou@adacore.com>
18137
18138         * config/visium/visium.opt (msv-mode): Add RejectNegative and Report.
18139         (muser-mode): Likewise.
18140
18141 2015-02-13  Alan Modra  <amodra@gmail.com>
18142
18143         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Use addsi3_carry
18144         or adddi3_carry when restoring frame_reg_rtx from r0 after restvr.
18145
18146 2015-02-12  David Howells  <dhowells@redhat.com>
18147
18148         * tree-sra.c (dump_dereferences_table): Avoid -Wformat-security
18149         warning.
18150         * tree-ssa-uninit.c (dump_predicates): Likewise.
18151         * opts.c (print_filtered_help): Likewise.
18152
18153 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
18154
18155         * dwarf2out.c (output_die): Use "%s", name instead of name to
18156         avoid -Wformat-security warning.
18157
18158         * dwarf2asm.c (dw2_asm_output_vms_delta): Only define
18159         if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
18160         * dwarf2out.c (output_die): Use dw2_asm_output_vms_delta
18161         only if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
18162
18163 2015-02-12  Jason Merrill  <jason@redhat.com>
18164
18165         * common.opt (-flifetime-dse): New.
18166
18167 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
18168
18169         PR sanitizer/65019
18170         * ubsan.c (ubsan_expand_objsize_ifn): Always return true.
18171
18172         PR tree-optimization/65014
18173         * fold-const.c (fold_binary_loc): When creating {L,R}ROTATE_EXPR,
18174         use original second operand of arg0 or arg1 instead of
18175         that adjusted by STRIP_NOPS.
18176
18177 2015-02-11  Jeff Law  <law@redhat.com>
18178
18179         PR target/63347
18180         * haifa-sched.c (prune_ready_list): If we have a SCHED_GROUP_P insn
18181         that needs to be queued, just queue it for a single cycle.
18182
18183 2015-02-11  Jan Hubicka  <hubicka@ucw.cz>
18184
18185         * ipa.c (symbol_table::remove_unreachable_nodes): Avoid releasing
18186         bodies of thunks; comment on why.
18187         * symtab.c (symtab_node::get_partitioning_class): Aliases of extern
18188         symbols are extern.
18189
18190 2015-02-11  Richard Henderson  <rth@redhat.com>
18191
18192         PR sanitize/65000
18193         * tree-eh.c (mark_reachable_handlers): Mark source and destination
18194         regions of __builtin_eh_copy_values.
18195
18196 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
18197
18198         PR middle-end/65003
18199         * varasm.c (place_block_symbol): Assert that DECL_RTL of the
18200         ultimate alias is MEM with SYMBOL_REF satisfying
18201         SYMBOL_REF_HAS_BLOCK_INFO_P as its operand.  Don't pass the MEM
18202         to place_block_symbol, but instead pass the SYMBOL_REF operand of it.
18203
18204 2015-02-11  Thomas Schwinge  <thomas@codesourcery.com>
18205
18206         * config/nvptx/mkoffload.c: Include "diagnostic.h" instead of
18207         "diagnostic-core.h".
18208         (main): Initialize progname, and call diagnostic_initialize.
18209
18210         * config/nvptx/mkoffload.c (process): Refer to __OFFLOAD_TABLE__
18211         instead of __OPENMP_TARGET__.
18212
18213         * config/nvptx/mkoffload.c: Include "gomp-constants.h".
18214         (process): Use its GOMP_DEVICE_NVIDIA_PTX instead of (wrongly)
18215         hard-coding PTX_ID.
18216
18217 2015-02-11  H.J. Lu  <hongjiu.lu@intel.com>
18218
18219         * doc/sourcebuild.texi (pie_enabled): Document.
18220
18221 2015-02-11  Martin Liska  <mliska@suse.cz>
18222
18223         PR ipa/64813
18224         * cgraphunit.c (cgraph_node::expand_thunk): Do not create
18225         a return value for call to a function that is noreturn.
18226
18227 2015-02-11  Richard Biener  <rguenther@suse.de>
18228
18229         PR lto/65015
18230         * dwarf2out.c (gen_producer_string): Drop -fltrans-output-list
18231         and -fresolution.
18232
18233 2015-02-11  Andrew Pinski  <apinski@cavium.com>
18234
18235         PR target/64893
18236         * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
18237         Change the first argument type to size_type_node and add another
18238         size_type_node.
18239         (aarch64_simd_expand_builtin): Handle the new argument to
18240         AARCH64_SIMD_BUILTIN_LANE_CHECK and don't ICE but rather
18241         print an out when the first two arguments are not
18242         nonzero integer constants.
18243         * config/aarch64/arm_neon.h (__AARCH64_LANE_CHECK):
18244         Pass the sizeof directly to __builtin_aarch64_im_lane_boundsi.
18245
18246 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
18247
18248         PR target/61925
18249         * config/i386/i386.c (ix86_reset_to_default_globals): Removed.
18250         (ix86_reset_previous_fndecl): Restore it here, unconditionally.
18251         (ix86_set_current_function): Rewritten.
18252         (ix86_add_new_builtins): Temporarily clear current_target_pragma
18253         when creating builtin fndecls.
18254
18255 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
18256
18257         PR ipa/65005
18258         * ipa-visibility.c (cgraph_node::non_local_p): Turn into static
18259         function.
18260         * symtab.c (symtab_node::verify_base): Remove check that non-definitions
18261         have no comdat group.
18262         * lto-cgraph.c (lto_output_node): Always output thunk and alias info.
18263         (lto_output_varpool_node): Always output alias info.
18264         (output_refs): Output refs of boundary aliases, too.
18265         (compute_ltrans_boundary): Add alias and thunk target into boundaries.
18266         (output_symtab): Output call eges in thunks in boundary.
18267         (get_alias_symbol): Remove.
18268         (input_node, input_varpool_node): Do not special case weakrefs.
18269         * ipa.c (symbol_table::remove_unreachable_nodes): Do not remove
18270         alias and thunks targets in the boundary; do not take removed symbols
18271         from their comdat groups.
18272         * cgraph.c (cgraph_node::local_info): Look through aliases and thunks.
18273         (cgraph_node::global_info): Remove.
18274         (cgraph_node::rtl_info): Look through aliases and thunks.
18275         * cgrpah.h (global_info): Remove.
18276         (non_local_p): Remove.
18277
18278 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
18279             Sandra Loosemore  <sandra@codesourcery.com>
18280
18281         * doc/invoke.texi (x86 Options [-masm=dialect]): Add cross-references
18282         to inline asm.  List dialects in proper order.
18283
18284 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
18285             Sandra Loosemore  <sandra@codesourcery.com>
18286
18287         * doc/extend.texi (Loop-Specific Pragmas): Fix grammar error.
18288
18289 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
18290
18291         * doc/extend.texi (Symbol-Renaming Pragmas): Restore (slightly
18292         modified) reference to Solaris.
18293
18294 2015-02-10  Sandra Loosemore  <sandra@codesourcery.com>
18295
18296         * doc/extend.texi (Extended Asm): Fix typos.
18297
18298 2015-02-10  Jakub Jelinek  <jakub@redhat.com>
18299
18300         PR sanitizer/65004
18301         * ubsan.c (ubsan_expand_vptr_ifn): Always return true.
18302
18303 2015-02-10  Oleg Endo  <olegendo@gcc.gnu.org>
18304
18305         PR target/64661
18306         * config/sh/sh-protos.h (TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
18307         TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
18308         TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): Add parentheses.
18309         * config/sh/constraints.md (Ara, Add): New constraints.
18310         * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1): New
18311         predicates.
18312         (atomic_compare_and_swap<mode>, atomic_exchange<mode>): Use
18313         atomic_mem_operand_0.  Don't use force_reg on the memory address.
18314         (atomic_compare_and_swapsi_hard): Use atomic_mem_operand_0 predicate and
18315         Sra constraint.  Convert to insn_and_split.  Add workaround for
18316         PR 64974.
18317         (atomic_compare_and_swap<mode>_hard): Copy to
18318         atomic_compare_and_swap<mode>_hard_1.  Convert to insn_and_split.
18319         Use atomic_mem_operand_0 predicate.
18320         (atomic_compare_and_swap<mode>_soft_gusa,
18321         atomic_exchange<mode>_soft_gusa): Use atomic_mem_operand_0 predicate and
18322         AraAdd constraints.
18323         (atomic_compare_and_swap<mode>_soft_tcb,
18324         atomic_compare_and_swap<mode>_soft_imask,
18325         atomic_exchange<mode>_soft_tcb, atomic_exchange<mode>_soft_imask): Use
18326         atomic_mem_operand_0 predicate and SraSdd constraints.
18327         (atomic_exchangesi_hard) Use atomic_mem_operand_0 predicate and Sra
18328         constraint.
18329         (atomic_exchange<mode>_hard): Copy to atomic_exchange<mode>_hard_1.
18330         Convert to insn_and_split.  Use atomic_mem_operand_0 predicate.
18331         (atomic_fetch_<fetchop_name><mode>, atomic_fetch_nand<mode>,
18332         atomic_<fetchop_name>_fetch<mode>): Use atomic_mem_operand_1.  Don't use
18333         force_reg on the memory address.
18334         (atomic_fetch_<fetchop_name>si_hard, atomic_fetch_notsi_hard,
18335         atomic_fetch_nandsi_hard, atomic_<fetchop_name>_fetchsi_hard,
18336         atomic_not_fetchsi_hard, atomic_nand_fetchsi_hard): Use
18337         atomic_mem_operand_1 predicate and Sra constraint.
18338         (atomic_fetch_<fetchop_name><mode>_hard): Copy to
18339         atomic_fetch_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
18340         Use atomic_mem_operand_1 predicate.
18341         (atomic_<fetchop_name><mode>_hard): Copy to
18342         atomic_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
18343         Use atomic_mem_operand_1 predicate.
18344         (atomic_fetch_nand<mode>_hard): Copy to atomic_fetch_nand<mode>_hard_1.
18345         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
18346         (atomic_nand<mode>_hard): Copy to atomic_nand<mode>_hard_1.  Convert to
18347         insn_and_split.  Use atomic_mem_operand_1 predicate.
18348         (atomic_<fetchop_name>_fetch<mode>_hard): Copy to
18349         atomic_<fetchop_name>_fetch<mode>_hard_1.  Convert to insn_and_split.
18350         Use atomic_mem_operand_1 predicate.
18351         (atomic_nand_fetch<mode>_hard): Copy to atomic_nand_fetch<mode>_hard_1.
18352         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
18353         (atomic_fetch_not<mode>_hard, atomic_not_fetch<mode>_hard): Replace mems
18354         in generated insn with original mem operand before emitting the insn.
18355         (atomic_fetch_<fetchop_name><mode>_soft_gusa,
18356         atomic_fetch_not<mode>_soft_gusa, atomic_fetch_nand<mode>_soft_gusa,
18357         atomic_<fetchop_name>_fetch<mode>_soft_gusa,
18358         atomic_not_fetch<mode>_soft_gusa, atomic_nand_fetch<mode>_soft_gusa):
18359         Use atomic_mem_operand_1 predicate and AraAdd constraints.
18360         (atomic_fetch_<fetchop_name><mode>_soft_tcb,
18361         atomic_<fetchop_name><mode>_soft_tcb, atomic_fetch_not<mode>_soft_tcb,
18362         atomic_not<mode>_soft_tcb, atomic_fetch_<fetchop_name><mode>_soft_imask,
18363         atomic_fetch_not<mode>_soft_imask, atomic_fetch_nand<mode>_soft_tcb,
18364         atomic_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask,
18365         atomic_<fetchop_name>_fetch<mode>_soft_tcb,
18366         atomic_not_fetch<mode>_soft_tcb,
18367         atomic_<fetchop_name>_fetch<mode>_soft_imask,
18368         atomic_not_fetch<mode>_soft_imask, atomic_nand_fetch<mode>,
18369         atomic_nand_fetch<mode>_soft_tcb, atomic_nand_fetch<mode>_soft_imask):
18370         Use atomic_mem_operand_1 predicate and SraSdd constraints.
18371
18372 2015-02-10  Uros Bizjak  <ubizjak@gmail.com>
18373
18374         * config/alpha/alpha.md (reload_out<mode>_aligned): Make operands 2
18375         and 3 earlyclobber operands.
18376
18377 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
18378
18379         * common.opt (fstack-reuse): Mark as optimization.
18380
18381 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
18382
18383         PR ipa/64982
18384         * cgraphunit.c (cgraph_node::expand_thunk): Look for stdarg thunks.
18385
18386 2015-02-10  Trevor Saunders  <tsaunders@mozilla.com>
18387
18388         PR tree-optimization/64326
18389         * cfghooks.c (make_forwarder_block): Cap frequency of created block.
18390
18391 2015-02-10  Rainer Emrich  <rainer@emrich-ebersheim.de>
18392
18393         PR gcov-profile/61889
18394         * gcov-tool.c: Remove wrong #if !defined(_WIN32)
18395
18396 2015-02-10  Richard Biener  <rguenther@suse.de>
18397
18398         PR tree-optimization/64995
18399         * tree-ssa-sccvn.c (set_ssa_val_to): Assert that the
18400         value we use is final.
18401         (visit_reference_op_store): Always valueize op.
18402         (visit_use): Properly valueize vuses.
18403
18404 2015-02-10  Richard Biener  <rguenther@suse.de>
18405
18406         PR tree-optimization/64909
18407         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Properly
18408         pass a scalar-stmt count estimate to the cost model.
18409         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Likewise.
18410
18411 2015-02-10  Alexander Monakov  <amonakov@ispras.ru>
18412
18413         * doc/invoke.texi (-fvar-tracking-assignments): Clarify that VTA is
18414         enabled by default together with var-tracking.
18415
18416 2015-02-10  Nick Clifton  <nickc@redhat.com>
18417
18418         * config/rl78/rl78.c: Remove DIV attribute code accidentally
18419         included in previous rl78 commit.
18420
18421 2015-02-10  Richard Biener  <rguenther@suse.de>
18422
18423         * tree-streamer.h (streamer_read_tree_bitfields): Adjust.
18424         * tree-streamer-in.c (streamer_read_tree_bitfields): Do not
18425         return the bitpack.
18426
18427 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
18428
18429         PR gcov-profile/61889
18430         * config.in: regenerate.
18431         * configure.in: Likewise.
18432         * configure.ac: Check for ftw.h.
18433         * gcov-tool.c: Check for ftw.h before using nftw.
18434
18435 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
18436
18437         PR lto/64076
18438         * ipa-visibility.c (update_visibility_by_resolution_info): Only
18439         assert when not in lto mode.
18440
18441 2015-02-09  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
18442
18443         * ira-color.c (setup_left_conflict_sizes_p): Simplify
18444         initialization/assignment of conflict_size.
18445
18446 2015-02-09  Jan Hubicka  <hubicka@ucw.cz>
18447
18448         PR ipa/64978
18449         * ipa-cp.c (gather_caller_stats): Skip thunks.
18450         (propagate_constants_topo): Skip aliases.
18451
18452 2015-02-09  Kaz Kojima  <kkojima@gcc.gnu.org>
18453
18454         PR target/64761
18455         * config/sh/sh.c (sh_option_override): Don't change
18456         -freorder-blocks-and-partition to -freorder-blocks even when
18457         unwinding is enabled.
18458         (sh_can_follow_jump): Return false if the followee jump is
18459         a crossing jump when -freorder-blocks-and-partition is specified.
18460         * config/sh/sh.md (*jump_compact_crossing): New insn.
18461
18462 2015-02-09  Joern Rennecke  <joern.rennecke@embecosm.com>
18463             Kaz Kojima  <kkojima@gcc.gnu.org>
18464
18465         PR target/64761
18466         * config/sh/sh-protos.h (sh_can_redirect_branch): Don't declare.
18467         * config/sh/sh.c (TARGET_CAN_FOLLOW_JUMP): Redefine.
18468         (sh_can_redirect_branch): Rename to ...
18469         (sh_can_follow_jump): ... this.  Constify argument types.
18470         * config/sh/sh.h (MD_CAN_REDIRECT_BRANCH): Don't define.
18471         * doc/tm.texi.in (MD_CAN_REDIRECT_BRANCH): Remove documentation.
18472         * reorg.c (steal_delay_list_from_target): Use targetm.can_follow_jump.
18473         * doc/tm.texi: Regenerate.
18474
18475 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
18476
18477         PR sanitizer/64981
18478         * builtins.c (expand_builtin): Call targetm.expand_builtin
18479         for BUILT_IN_MD builtins regardless of asan_intercepted_p.
18480
18481 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
18482
18483         PR ipa/61548
18484         * tree-emutls.c (ipa_lower_emutls): Avoid duplicates in TLS_VARS.
18485
18486 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
18487
18488         PR ipa/63566
18489         * ipa-icf.c (set_local): New function.
18490         (sem_function::merge): Use it.
18491
18492 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
18493
18494         * ipa-devirt.c (odr_types_equivalent_p): Fix formating.
18495         (add_type_duplicate): Fix comparison of BINFOs.
18496
18497 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
18498
18499         * ipa-polymorphic-call.c (ipa_polymorphic_call_context): Avoid ICE
18500         on getting VOID pointer.
18501
18502 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
18503
18504         PR target/64979
18505         * tree-stdarg.c (pass_stdarg::execute): Scan phi node args for
18506         va_list escapes.
18507
18508 2015-02-09  Richard Biener  <rguenther@suse.de>
18509
18510         * genmatch.c (replace_id): Copy expr_type.
18511
18512 2015-02-09  Richard Biener  <rguenther@suse.de>
18513
18514         * tree-streamer.h (streamer_pack_tree_bitfields): Remove.
18515         (streamer_write_tree_bitfields): Declare.
18516         * tree-streamer-in.c (unpack_ts_base_value_fields): Inline,
18517         properly unpack padding.
18518         (unpack_value_fields): Inline ...
18519         (streamer_read_tree_bitfields): ... here.
18520         * tree-streamer-out.c (pack_ts_base_value_fields): Inline
18521         and properly add padding bits.
18522         (streamer_pack_tree_bitfields): Fold into ...
18523         (streamer_write_tree_bitfields): ... this new function,
18524         exposing the bitpack object.
18525         * lto-streamer-out.c (lto_write_tree_1): Call
18526         streamer_write_tree_bitfields.
18527
18528 2015-02-09  Richard Biener  <rguenther@suse.de>
18529
18530         PR tree-optimization/54000
18531         * tree-ssa-looo-ivopts.c: Include tree-vectorizer.h.
18532         (struct ivopts_data): Add loop_loc member.
18533         (tree_ssa_iv_optimize_loop): Dump loop location.
18534         (create_new_ivs): Likewise, also dump number of IVs generated.
18535
18536 2015-02-09  Martin Liska  <mliska@suse.cz>
18537
18538         * ipa-icf.c (sem_item_optimizer::register_hooks): Register hooks
18539         just if not yet registered.
18540         (ipa_icf_generate_summary): Register callgraph hooks.
18541
18542 2015-02-08  Andrew Pinski  <apinski@cavium.com>
18543
18544         * config/aarch64/aarch64.c (gty_dummy): Delete.
18545
18546 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
18547
18548         PR ipa/63566
18549         * ipa-visibility.c (cgraph_node::non_local_p): Accept aliases.
18550         (cgraph_node::local_p): Remove thunk related FIXME.
18551
18552 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
18553
18554         PR ipa/63566
18555         * i386.c (ix86_function_regparm): Look through aliases to see if callee
18556         is local and optimized.
18557         (ix86_function_sseregparm): Likewise; also use target's SSE math
18558         settings; error out instead of silently generating wrong code
18559         on mismatches.
18560         (init_cumulative_args): Look through aliases.
18561
18562 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
18563
18564         PR ipa/63566
18565         * ipa-split.c (execute_split_functions): Split if function has aliases.
18566
18567 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
18568
18569         PR ipa/63566
18570         * cgraphunit.c (cgraph_node::analyze): Be sure target of thunk is
18571         aliases before trying to expand it.
18572         (cgraph_node::expand_thunk): Fix formating.
18573
18574 2015-02-07  Sandra Loosemore  <sandra@codesourcery.com>
18575
18576         * doc/extend.texi (Function Attributes [naked]): Copy-edit.
18577         (Using Assembly Language with C): Expand introduction.
18578         (Basic Asm): Copy-edit.  Add more information about uses of
18579         basic asm.
18580         (Extended Asm): Copy-edit.  Document new escape syntax and
18581         %l[label] syntax.
18582         (Global Reg Vars): Copy-edit.
18583         (Local Reg Vars): Likewise.
18584
18585 2015-02-06  David Edelsohn  <dje.gcc@gmail.com>
18586
18587         PR debug/2714
18588         PR bootstrap/64256
18589         * xcoffout.h (DBX_CONTIN_LENGTH): Define as 16384.
18590         (DBX_CONTIN_CHAR): Define.
18591
18592 2015-02-06  Sebastian Pop  <s.pop@samsung.com>
18593             Brian Rzycki  <b.rzycki@samsung.com>
18594
18595         PR tree-optimization/64878
18596         * tree-ssa-threadedge.c: Include tree-ssa-loop.h.
18597         (fsm_find_control_statement_thread_paths): Add parameter seen_loop_phi.
18598         Stop recursion at loop phi nodes after having visited a loop phi node.
18599
18600 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
18601
18602         * toplev.c (process_options): Change flag_ipa_ra before creating
18603         optimization_{default,current}_node.
18604
18605         PR ipa/64896
18606         * cgraphunit.c (cgraph_node::expand_thunk): If
18607         restype is not is_gimple_reg_type nor the thunk_fndecl
18608         returns aggregate_value_p, set restmp to a temporary variable
18609         instead of resdecl.
18610
18611 2015-02-06  Vladimir Makarov  <vmakarov@redhat.com>
18612
18613         * lra.c (lra_emit_add): Fix a typo in using disp instead of base.
18614
18615 2015-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
18616
18617         PR target/64205
18618         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
18619         add a general secondary reload handler for SDmode, unless we have
18620         both read/write support for SDmode.
18621
18622 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
18623
18624         PR middle-end/64937
18625         * dwarf2out.c (set_block_abstract_flags, set_decl_abstract_flags):
18626         Replace setting argument with abstract_vec, always set BLOCK_ABSTRACT
18627         or DECL_ABSTRACT_P flags to 1 rather than to setting, and if it wasn't
18628         1 before, push it to abstract_vec.
18629         (dwarf2out_abstract_function): Adjust caller.  Don't call
18630         set_decl_abstract_flags second time, instead clear BLOCK_ABSTRACT or
18631         DECL_ABSTRACT_P flags for all abstract_vec elts.
18632
18633 2015-02-06  Renlin Li  <renlin.li@arm.com>
18634
18635         * tree-ssa-forwprop.c (execute): Keep location info while rewrite
18636         complex gimple.
18637         * tree-ssa.c (execute_update_addresses_taken): Likewise.
18638
18639 2015-02-06  Jeff Law  <law@redhat.com>
18640
18641         PR target/64889
18642         * config/h8300/h8300.c (push): New argument "in_prologue".
18643         Pass "in_prologue" along to "F".
18644         (h8300_push_pop): Corresponding changes.
18645         (h8300_expand_prologue): Likewise.
18646         (h8300_swap_into_er6): Likewise.  Do not set RTX_FRAME_RELATED_P.
18647
18648 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
18649
18650         PR rtl-optimization/64957
18651         PR debug/64817
18652         * simplify-rtx.c (simplify_binary_operation_1): Use ~cval for
18653         IOR rather than for AND.
18654
18655 2015-02-06  Eric Botcazou  <ebotcazou@adacore.com>
18656
18657         PR target/62631
18658         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Use the mininum of costs
18659         of shift-add and (add + shift) operations.  Rename local variable.
18660
18661 2015-02-05  Jeff Law  <law@redhat.com>
18662
18663         PR target/17306
18664         * config/h8300/constraints.md (U): Correctly dectect
18665         "eightbit_data" memory addresses.
18666         * config/h8300/h8300.c (eightbit_constant_address_p): Also
18667         handle (const (plus (symbol_ref (x)))) where x is declared
18668         as an 8-bit data memory address.
18669         * config/h8300/h8300.md (call, call_value): Correctly detect
18670         "funcvec" functions.
18671
18672         PR target/43264
18673         * config/h8300/h8300.c (get_shift_alg): Fix ASHIFTRT by
18674         24 to 28 bits for the H8/300.
18675
18676 2015-02-06  Alan Modra  <amodra@gmail.com>
18677
18678         PR target/64876
18679         * config/rs6000/rs6000.c (chain_already_loaded): New function.
18680         (rs6000_call_aix): Use it.
18681
18682 2015-02-05  Jan Hubicka <hubicka@ucw.cz>
18683
18684         * ipa-cp.c (ipa_value_from_jfunc, ipa_context_from_jfunc): Add bounds
18685         check.
18686
18687 2015-02-05  Joern Rennecke  <joern.rennecke@embecosm.com>
18688
18689         * config/h8300/constraints.md ("U" constraint): Use strict
18690         variant of REG_OK_FOR_BASE_P after reload has started.
18691
18692 2015-02-04  Mantas Mikaitis  <mantas.mikaitis@arm.com>
18693
18694         * config/arm/arm.h (TARGET_NEON_FP): Removed conditional definition,
18695         define to zero if !TARGET_NEON.
18696         (TARGET_ARM_FP): Added !TARGET_SOFT_FLOAT into conditional definition.
18697
18698 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
18699             Trevor Saunders  <tsaunders@mozilla.com>
18700
18701         PR ipa/61548
18702         * tree-emultls.c (new_emutls_decl): Resolve alias after creating it.
18703
18704 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
18705
18706         PR ipa/61548
18707         * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering issue
18708         when removing varpool nodes.
18709
18710 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
18711
18712         PR ipa/61548
18713         * varpool.c (varpool_node::remove): Fix order of variables.
18714
18715 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
18716
18717         PR ipa/64686
18718         * ipa-inline.c (inline_small_functions): Fix ordering issue between
18719         speculation resolution and key updates.
18720
18721 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
18722
18723         * ipa-prop.c (update_indirect_edges_after_inlining): By more careful
18724         about not letting any speculative edges unupdated.
18725
18726 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
18727
18728         PR gcov/64123
18729         * gcov-io.c (gcov_var): Export.
18730
18731 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
18732
18733         PR middle-end/64922
18734         * ipa-prop.c (update_indirect_edges_after_inlining): Correctly update
18735         edges that become speculative.
18736
18737 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
18738
18739         * dwarf2out.c (is_fortran): Also return true for DW_LANG_Fortran03
18740         or DW_LANG_Fortran08.
18741         (lower_bound_default): Return 1 for DW_LANG_Fortran03 or
18742         DW_LANG_Fortran08.
18743         (gen_compile_unit_die): Handle "GNU Fortran2003" and
18744         "GNU Fortran2008" language strings.
18745         * dbxout.c (get_lang_number): Use lang_GNU_Fortran.
18746         * langhooks.h (lang_GNU_Fortran): New prototype.
18747         * langhooks.c (lang_GNU_Fortran): New function.
18748         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
18749         lang_GNU_Fortran.
18750
18751 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
18752
18753         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P): Fix off-by-one error.
18754         (RTX_OK_FOR_OLO10_P): Likewise.
18755
18756 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
18757
18758         * tree-ssa-loop-ivopts.c (get_address_cost): Use right mode for offset.
18759
18760 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
18761
18762         PR middle-end/64922
18763         * gimple.c: Include gimple-ssa.h.
18764         (maybe_remove_unused_call_args): New function.
18765         * gimple.h (maybe_remove_unused_call_args): Declare.
18766         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
18767         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
18768         * gimple-fold.c (gimple_fold_call): Likewise.
18769
18770 2015-02-04  H.J. Lu  <hongjiu.lu@intel.com>
18771
18772         PR rtl-optimization/64905
18773         * lra-eliminations.c (setup_can_eliminate): Clear hard frame
18774         pointer alignment if it isn't needed.
18775
18776 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
18777
18778         * config/aarch64/aarch64-cores.def: Add cortex-a72 and
18779         cortex-a72.cortex-a53.
18780         * config/aarch64/aarch64-tune.md: Regenerate.
18781         * doc/invoke.texi (AArch64 Options/-mtune): Add "cortex-a72".
18782
18783 2015-02-04  Nick Clifton  <nickc@redhat.com>
18784
18785         * config/rl78/rl78.c (rl78_note_reg_set): Note the use of REGs
18786         inside a MEM.
18787
18788 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
18789
18790         * builtins.def (DEF_BUILTIN_CHKP): Define if not defined.
18791         (DEF_LIB_BUILTIN_CHKP, DEF_EXT_LIB_BUILTIN_CHKP): Redefine.
18792         (DEF_CHKP_BUILTIN): Define using DEF_BUILTIN_CHKP instead
18793         of DEF_BUILTIN.
18794         (BUILT_IN_MEMCPY, BUILT_IN_MEMMOVE, BUILT_IN_MEMSET, BUILT_IN_STRCAT,
18795         BUILT_IN_STRCHR, BUILT_IN_STRCPY, BUILT_IN_STRLEN): Use
18796         DEF_LIB_BUILTIN_CHKP macro instead of DEF_LIB_BUILTIN.
18797         (BUILT_IN_MEMCPY_CHK, BUILT_IN_MEMMOVE_CHK, BUILT_IN_MEMPCPY_CHK,
18798         BUILT_IN_MEMPCPY, BUILT_IN_MEMSET_CHK, BUILT_IN_STPCPY_CHK,
18799         BUILT_IN_STPCPY, BUILT_IN_STRCAT_CHK, BUILT_IN_STRCPY_CHK): Use
18800         DEF_EXT_LIB_BUILTIN_CHKP macro instead of DEF_EXT_LIB_BUILTIN.
18801         * tree-core.h (enum built_in_function): In between
18802         BEGIN_CHKP_BUILTINS and END_CHKP_BUILTINS only define enum values
18803         for builtins that use DEF_BUILTIN_CHKP macro.
18804
18805 2015-02-04  Alexandre Oliva <aoliva@redhat.com>
18806
18807         PR debug/64817
18808         * cfgexpand.c (expand_debug_expr): Compute unsignedp from
18809         operands for tcc_comparison exprs.  Fix typos.
18810
18811         PR debug/64817
18812         * simplify-rtx.c (simplify_binary_operation_1): Simplify one
18813         of two XORs that have an intervening AND or IOR.
18814
18815         PR debug/64817
18816         * simplify-rtx.c (simplify_binary_operation_1): Rewrite
18817         simplification of XOR of AND to not allocate new rtx before
18818         committing to a simplification.
18819
18820 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18821
18822         * config/aarch64/aarch64-ldpstp.md: Use std::swap instead of
18823         manual swaps in all peepholes.
18824
18825 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18826
18827         * config/aarch64/aarch64.c (aarch64_evpc_ext): Use std::swap instead
18828         of manual swapping implementation.
18829         (aarch64_expand_vec_perm_const_1): Likewise.
18830
18831 2015-02-04  James Greenhalgh <james.greenhalgh@arm.com>
18832
18833         * config/aarch64/aarch64.c (NAMED_PARAM): Delete it.
18834         (generic_addrcost_table): Remove NAMED_PARAM.
18835         (cortexa57_addrcost_table): Likewise.
18836         (xgene1_addrcost_table): Likewise.
18837         (generic_regmove_table): Likewise.
18838         (cortexa53_regmove_table): Likewise.
18839         (xgene1_regmove_table): Likewise.
18840         (generic_vector_table): Likewise.
18841         (cortexa57_vector_table): Likewise.
18842         (xgene1_vector_table): Likewise.
18843         (generic_tunings): Likewise.
18844         (cortexa53_tunings): Likewise.
18845         (cortexa57_tunings): Likewise.
18846         (xgene1_tunings): Likewise.
18847
18848 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
18849
18850         * config/arm/arm-cores.def: Add cortex-a72 and
18851         cortex-a72.cortex-a53.
18852         * config/arm/bpabi.h (BE8_LINK_SPEC): Likewise.
18853         * config/arm/t-aprofile (MULTILIB_MATCHES): Likewise.
18854         * config/arm/arm-tune.md: Regenerate.
18855         * config/arm/arm-tables.opt: Add entries for "cortex-a72" and
18856         "cortex-a72.cortex-a53".
18857         * doc/invoke.texi (ARM Options/-mtune): Likewise.
18858
18859 2015-02-04  Nick Clifton  <nickc@redhat.com>
18860
18861         PR target/64408
18862         * config/fr30/predicates.md (di_operand): Add SUBREG to the list
18863         of accepted codes.
18864         (nonimmediate_di_operand): Likewise.
18865
18866         * config/msp430/msp430.c (msp430_use_f5_series_hwmult): Add more
18867         prefixes of known F5 using MSP430 MCUs.
18868
18869 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18870
18871         * config/aarch64/aarch64-simd-builtins.def (sqrt): Use BUILTIN_VDQF_DF.
18872         * config/aarch64/arm_neon.h (vsqrt_f64): Use __builtin_aarch64_sqrtdf
18873         instead of __builtin_sqrt.
18874
18875 2015-02-04  Ilya Enkovich  <ilya.enkovich@intel.com>
18876
18877         * varasm.c (do_assemble_alias): Follow transparent alias
18878         chain for target.
18879         (default_assemble_visibility): Follow transparent alias
18880         chain for decl name.
18881
18882 2015-02-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
18883
18884         PR middle-end/62103
18885         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use TYPE_PRECISION
18886         to compute size of referenced value in the constant case.
18887
18888 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
18889
18890         PR rtl-optimization/64756
18891         * cse.c (invalidate_dest): New function.
18892         (cse_insn): Use it.  If dest != SET_DEST (sets[i].rtl) and
18893         HASH (SET_DEST (sets[i].rtl), mode) computation sets do_not_record,
18894         invalidate and do not record it.
18895
18896 2015-02-03  Oleg Endo  <olegendo@gcc.gnu.org>
18897
18898         PR target/64660
18899         * config/sh/sync.md (atomic_<fetchop_name><mode>_hard,
18900         atomic_not<mode>_hard, atomic_<fetchop_name><mode>_soft_tcb,
18901         atomic_not<mode>_soft_tcb, atomic_nand<mode>_hard,
18902         atomic_nand<mode>_soft_tcb): New insns.
18903         (atomic_fetch_<fetchop_name>si_hard): Convert to insn_and_split.
18904         Split into atomic_<fetchop_name>_fetchsi_hard if operands[0] is unused.
18905         (define_insn "atomic_fetch_notsi_hard): Convert to insn_and_split.
18906         Split into atomic_not_fetchsi_hard if operands[0] is unused.
18907         (atomic_fetch_<fetchop_name><mode>_hard): Convert to insn_and_split.
18908         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
18909         (atomic_fetch_not<mode>_hard): Convert to insn_and_split.  Split into
18910         atomic_not<mode>_hard if operands[0] is unused.
18911         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Convert to
18912         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_gusa
18913         if operands[0] is unused.
18914         (atomic_fetch_not<mode>_soft_gusa): Convert to insn_and_split.  Split
18915         into atomic_not_fetch<mode>_soft_gusa if operands[0] is unused.
18916         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Convert to insn_and_split.
18917         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
18918         unused.
18919         (atomic_fetch_not<mode>_soft_tcb): Convert to insn_and_split.  Split
18920         into atomic_not<mode>_soft_tcb if operands[0] is unused.
18921         (atomic_fetch_<fetchop_name><mode>_soft_imask): Convert to
18922         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_imask
18923         if operands[0] is unused.
18924         (atomic_fetch_not<mode>_soft_imask): Convert to insn_and_split.  Split
18925         into atomic_not_fetch<mode>_soft_imask is operands[0] is unused.
18926         (atomic_fetch_nandsi_hard): Convert to insn_and_split.  Split into
18927         atomic_nand_fetchsi_hard if operands[0] is unused.
18928         (atomic_fetch_nand<mode>_hard): Convert to insn_and_split.  Split into
18929         atomic_nand<mode>_hard if operands[0] is unused.
18930         (atomic_fetch_nand<mode>_soft_gusa): Convert to insn_and_split.  Split
18931         into atomic_nand_fetch<mode>_soft_gusa if operands[0] is unused.
18932         (atomic_fetch_nand<mode>_soft_tcb): Convert to insn_and_split.  Split
18933         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
18934         (atomic_fetch_nand<mode>_soft_imask): Convert to insn_and_split.  Split
18935         into atomic_nand_fetch<mode>_soft_imask if operands[0] is unused.
18936         (atomic_<fetchop_name>_fetch<mode>_hard): Convert to insn_and_split.
18937         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
18938         (atomic_not_fetch<mode>_hard): Convert to insn_and_split.  Split into
18939         atomic_not<mode>_hard if operands[0] is unused.
18940         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Convert to insn_and_split.
18941         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
18942         unused.
18943         (atomic_not_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
18944         into atomic_not<mode>_soft_tcb if operands[0] is unused.
18945         (atomic_nand_fetch<mode>_hard): Convert to insn_and_split.  Split into
18946         atomic_nand<mode>_hard if operands[0] is unused.
18947         (atomic_nand_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
18948         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
18949
18950 2015-02-03  David Malcolm  <dmalcolm@redhat.com>
18951
18952         PR jit/64810
18953         * Makefile.in (GCC_OBJS): Add gcc-main.o.
18954         * gcc-main.c: New file, containing "main" taken from gcc.c.
18955         * gcc.c (do_self_spec): Free decoded_options.
18956         (class driver): Move declaration to gcc.h.
18957         (main): Move declaration and implementation to new file
18958         gcc-main.c.
18959         (driver_get_configure_time_options): New function.
18960         * gcc.h (class driver): Move this declaration here, from
18961         gcc.c.
18962         (driver_get_configure_time_options): New declaration.
18963
18964 2015-02-03  Jan Hubicka  <hubicka@ucw.cz>
18965
18966         * ipa-inline-analysis.c (simple_edge_hints): Fix check for
18967         cross-module inlining.
18968         * cgraph.h (cgraph_node): Add flag merged.
18969         * ipa-icf.c (sem_function::merge): Maintain it.
18970
18971 2015-02-03  Richard Sandiford  <richard.sandiford@arm.com>
18972
18973         * config/arm/arm.c (thumb2_reorg): Test UNARY_P and BINARY_P
18974         instead of OBJECT_P.
18975
18976 2015-02-03  Eric Botcazou  <ebotcazou@adacore.com>
18977
18978         PR target/62631
18979         * config/sparc/sparc.h (TARGET_HARD_MUL): Remove TARGET_V8PLUS.
18980         (TARGET_HARD_MUL32): Rewrite based on TARGET_HARD_MUL.
18981         * config/sparc/sparc.c (sparc_rtx_costs) <MULT>: Return costs based on
18982         int_mulX for integers in 64-bit mode if TARGET_HARD_MUL is not set.
18983
18984 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
18985
18986         PR other/63504
18987         * combine.c (reg_n_sets_max): New variable.
18988         (can_change_dest_mode, reg_nonzero_bits_for_combine,
18989         reg_num_sign_bit_copies_for_combine, get_last_value_validate,
18990         get_last_value): Use REG_N_SETS only on pseudos < reg_n_sets_max.
18991         (try_combine): Use INC_REG_N_SETS only on pseudos < reg_n_sets_max.
18992         (rest_of_handle_combine): Initialize reg_n_sets_max.
18993
18994 2015-02-02  Jan Hubicka  <hubicka@ucw.cz>
18995
18996         * ipa-inline.c (early_inliner): Skip inlining only in always_inlined;
18997         if some always_inline was inlined, apply changes before inlining
18998         heuristically.
18999
19000 2015-02-02  David Malcolm  <dmalcolm@redhat.com>
19001
19002         PR jit/64810
19003         * config/arm/arm.c (arm_option_override): Set
19004         arm_selected_arch/cpu/tune to NULL on entry.
19005
19006 2015-02-02  Tejas Belagod  <tejas.belagod@arm.com>
19007             Andrew Pinski  <pinskia@gcc.gnu.org>
19008             Jakub Jelinek  <jakub@gcc.gnu.org>
19009
19010         PR target/64231
19011         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix large
19012         integer typing for small model. Use IN_RANGE.
19013
19014 2015-02-02  Richard Biener  <rguenther@suse.de>
19015
19016         * tree-ssa-ccp.c (valueize_op_1): Always allow valueizing default-defs.
19017         * tree-vrp.c (vrp_valueize_1): Likewise.
19018
19019 2015-02-02  Alan Modra  <amodra@gmail.com>
19020
19021         * config/rs6000/rs6000.c (rs6000_call_aix): Use unspec rather
19022         than mem for toc_restore.
19023         * config/rs6000/rs6000.md (UNSPEC_TOCSLOT): Define.
19024         (call_indirect_aix, call_value_indirect_aix): Adjust to suit.
19025         (call_indirect_elfv2, call_value_indirect_elfv2): Likewise.
19026
19027 2015-02-01  David Edelsohn  <dje.gcc@gmail.com>
19028
19029         PR target/64047
19030         * config/rs6000/rs6000.c (rs6000_set_current_function): Handle
19031         explicit default options.
19032
19033 2015-02-01  Jan Hubicka  <hubicka@ucw.cz>
19034
19035         PR ipa/64872
19036         * ipa-utils.c (ipa_merge_profiles): Add release argument.
19037         * ipa-icf.c (sem_function::merge): Do not release body when merging.
19038         * ipa-utils.h (ipa_merge_profiles): Update prototype.
19039
19040 2015-02-01  Jakub Jelinek  <jakub@redhat.com>
19041
19042         PR debug/64817
19043         * cfgexpand.c (deep_ter_debug_map): New variable.
19044         (avoid_deep_ter_for_debug): New function.
19045         (expand_debug_expr): If TERed SSA_NAME is in
19046         deep_ter_debug_map, use the corresponding DEBUG_EXPR_DECL
19047         instead of trying to expand SSA_NAME's def stmt.
19048         (expand_debug_locations): When expanding debug bind
19049         of a DEBUG_EXPR_DECL to corresponding SSA_NAME,
19050         temporarily remove the DEBUG_EXPR_DECL from deep_ter_debug_map's
19051         value.
19052         (pass_expand::execute): Call avoid_deep_ter_for_debug on
19053         all debug bind stmts.  Delete deep_ter_debug_map after
19054         expand_debug_location if non-NULL and clear it.
19055
19056 2015-02-01  Oleg Endo  <olegendo@gcc.gnu.org>
19057
19058         PR target/64851
19059         * config/sh/sync.md (atomic_fetch_notsi_hard,
19060         atomic_fetch_not<mode>_hard, atomic_fetch_not<mode>_soft_gusa,
19061         atomic_fetch_not<mode>_soft_tcb, atomic_fetch_not<mode>_soft_imask,
19062         atomic_not_fetchsi_hard, atomic_not_fetch<mode>_hard,
19063         atomic_not_fetch<mode>_soft_gusa, atomic_not_fetch<mode>_soft_tcb,
19064         atomic_not_fetch<mode>_soft_imask): New insns.
19065
19066 2015-02-01  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
19067
19068         * haifa-sched.c (INSN_RFS_DEBUG_ORIG_ORDER): New access macro.
19069         (rank_for_schedule_debug): Split from ...
19070         (rank_for_schedule): ... this.
19071         (ready_sort): Sort DEBUG_INSNs separately from normal INSNs.
19072         * sched-int.h (struct _haifa_insn_data): New field rfs_debug_orig_order.
19073
19074 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
19075
19076         * doc/md.texi (Machine Constraints): Alphabetize table by target.
19077         * doc/extend.texi (x86 Variable Attributes): Move section to
19078         correct alphabetization after renaming.
19079         (x86 Type Attributes): Likewise.
19080         (Target Builtins): Re-alphabetize menu.
19081         (x86 Built-in Functions): Move section to correct alphabetization
19082         after renaming.
19083         (x86 transactional memory intrinsics): Likewise.
19084         * doc/invoke.texi (Option Summary): Re-alphabetize x86 Options
19085         and x86 Windows Options in table and menu.
19086         (x86 Options): Move section to correct alphabetization after
19087         renaming.
19088         (x86 Windows Options): Likewise.
19089
19090 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
19091
19092         * doc/extend.texi: Use "x86", "x86-32", and "x86-64" as the
19093         preferred names of the architecture and its 32- and 64-bit
19094         variants.
19095         * doc/invoke.texi: Likewise.
19096         * doc/md.texi: Likewise.
19097
19098 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
19099
19100         PR target/64882
19101         * config/i386/predicates.md (address_no_seg_operand): Reject
19102         non-CONST_INT_P operands in invalid mode.
19103
19104 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
19105
19106         * config/i386/i386.md (*prefetch_prefetchw1): Remove mode of
19107         address_operand 0.  Rename from *prefetch_prefetchwt1_<mode>.
19108         * config/i386/predicates.md (address_no_seg_operand): Call
19109         address_operand with VOIDmode.
19110         (vsib_address_operand): Ditto.
19111         (address_mpx_no_base_operand): Ditto.
19112         (address_mpx_no_index_operand): Ditto.
19113
19114 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
19115
19116         PR target/64688
19117         * lra-constraints.c (original_subreg_reg_mode): New.
19118         (simplify_operand_subreg): Try to simplify subreg of const.  Use
19119         original_subreg_reg_mode for it.
19120         (swap_operands): Update original_subreg_reg_mode.
19121         (curr_insn_transform): Set up original_subreg_reg_mode.
19122
19123 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
19124
19125         PR target/64617
19126         * lra-constraints.c (prohibited_class_reg_set_mode_p): New
19127         function.
19128         (process_alt_operands): Use it.
19129         (curr_insn_transform): Check the optional reload pseudo class is
19130         ok for the mode.
19131
19132 2015-01-30  Joseph Myers  <joseph@codesourcery.com>
19133
19134         * diagnostic.c (fatal_error (const char *, ...)): Remove function.
19135         * diagnostic-core.h (fatal_error (const char *, ...)): Remove
19136         prototype.
19137         * toplev.h (init_asm_output): Update comment on use of
19138         UNKNOWN_LOCATION with fatal_error.
19139         * cgraph.c, collect-utils.c, collect2.c, config/arc/arc.c,
19140         config/arc/arc.md, config/avr/avr.c, config/c6x/c6x.h,
19141         config/darwin.c, config/host-darwin.c, config/i386/host-cygwin.c,
19142         config/i386/intelmic-mkoffload.c, config/nios2/nios2.c,
19143         config/nvptx/mkoffload.c, config/nvptx/nvptx.h,
19144         config/rs6000/host-darwin.c, config/rs6000/rs6000.c,
19145         config/s390/s390.c, gcc.c, gcov-io.h, gcov-tool.c, ggc-common.c,
19146         ggc-page.c, graph.c, ipa-inline-analysis.c, ipa-reference.c,
19147         lto-cgraph.c, lto-section-in.c, lto-streamer-in.c, lto-streamer.c,
19148         lto-wrapper.c, objc/objc-act.c, opts.c, passes.c, plugin.c,
19149         tlink.c, toplev.c, tree-streamer-in.c, varpool.c: All callers of
19150         fatal_error changed to pass input_location as first argument.
19151
19152 2015-01-30  Martin Liska  <mliska@suse.cz>
19153
19154         * tree.h: Change GCC_VERSION >= 4004 to GCC_VERSION >= 4006
19155         in #pragma GCC diagnostic guards.
19156
19157 2015-01-30  Richard Biener  <rguenther@suse.de>
19158
19159         PR tree-optimization/64829
19160         * tree-vect-patterns.c (vect_handle_widen_op_by_const): Do
19161         not add a widening conversion pattern but hand off extra
19162         widenings to callers.
19163         (vect_recog_widen_mult_pattern): Handle extra widening produced
19164         by vect_handle_widen_op_by_const.
19165         (vect_recog_widen_shift_pattern): Likewise.
19166         (vect_pattern_recog_1): Remove excess vertical space in dumping.
19167         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
19168         (vect_init_vector_1): Likewise.
19169         (vect_get_vec_def_for_operand): Likewise.
19170         (vect_finish_stmt_generation): Likewise.
19171         (vectorizable_load): Likewise.
19172         (vect_analyze_stmt): Likewise.
19173         (vect_is_simple_use): Likewise.
19174
19175 2015-01-29  Jeff Law  <law@redhat.com>
19176
19177         * combine.c (try_combine): Fix typo in comment.
19178
19179 2015-01-29  Segher Boessenkool  <segher@kernel.crashing.org>
19180
19181         PR target/64580
19182         * config.rs6000/rs6000.c (compute_vrsave_mask): Reverse loop order.
19183         (rs6000_stack_info): Add assert.
19184         (rs6000_output_savres_externs): New function, split off from...
19185         (rs6000_output_function_prologue): ... here.  Do not call it for
19186         thunks.
19187
19188 2015-01-29  Jeff Law  <law@redhat.com>
19189
19190         PR target/15184
19191         * combine.c (try_combine): If I0 is a memory load and I3 a store
19192         to a related address, increase the "goodness" of doing a 4-insn
19193         combination with I0-I3.
19194         (make_field_assignment): Handle SUBREGs in the ior+and case.
19195
19196 2015-01-29  Yuri Rumyantsev  <ysrumyan@gmail.com>
19197
19198         PR tree-optimization/64746
19199         * tree-if-conv.c (mask_exists): New function.
19200         (predicate_mem_writes): Save created mask with given size for further
19201         use.
19202         (stmt_is_root_of_bool_pattern): Remove argument VAR and store to it.
19203         (ifcvt_repair_bool_pattern): Collect all statements that are root
19204         of bool pattern and use iterative algorithm to remove multiple uses
19205         of predicates, display number of required iterations.
19206
19207 2015-01-29  Richard Biener  <rguenther@suse.de>
19208
19209         PR tree-optimization/64853
19210         * tree-vrp.c (vrp_valueize_1): Do not return anything if the
19211         stmt will get simulated again.
19212         * tree-ssa-ccp.c (valueize_op_1): Likewise.
19213
19214 2015-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19215
19216         * config/arm/arm.c (arm_emit_multi_reg_pop): Simplify definition of
19217         return_in_pc.  Remove redundant assignments.
19218         (thumb2_emit_ldrd_pop): Simplify definition of return_in_pc.
19219         (arm_expand_epilogue): Don't compare boolean with true in if condition.
19220
19221 2015-01-29  Uros Bizjak  <ubizjak@gmail.com>
19222
19223         * config/i386/i386.c (ix86_mode_after): Make static.
19224
19225 2015-01-29  Richard Biener  <rguenther@suse.de>
19226
19227         PR tree-optimization/64844
19228         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Always
19229         dump cost model analysis.
19230         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
19231         Do not register adjusted load/store costs here.
19232
19233 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
19234             Uros Bizjak  <ubizjak@gmail.com>
19235
19236         * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): New.
19237         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Simplify by
19238         using x86_use_pseudo_pic_reg.
19239         * config/i386/i386.c (ix86_conditional_register_usage): Remove
19240         support for fixed PIC register.
19241         (ix86_use_pseudo_pic_reg): Not static any more.
19242
19243 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
19244
19245         PR middle-end/64805
19246         * ipa-inline.c (early_inliner): Rebuild IPA_REF_CHKP reference
19247         to avoid error in cgraph node verification.
19248
19249 2015-01-29  Marek Polacek  <polacek@redhat.com>
19250
19251         * doc/standards.texi: Reflect that the default for C is gnu11.
19252
19253 2015-01-29  Kaz Kojima  <kkojima@gcc.gnu.org>
19254
19255         PR target/64761
19256         * reorg.c (switch_text_sections_between_p): New function.
19257         (relax_delay_slots): Call it when testing if the jump insn
19258         is removable.  Use targetm.can_follow_jump when testing if
19259         the conditional branch can follow an unconditional jump.
19260
19261 2015-01-27  Caroline Tice  <cmtice@google.com>
19262
19263         Committing VTV Cywin/Ming patch for Patrick Wollgast
19264         * config/i386/cygwin.h (STARTFILE_SPEC): Add vtv_start.o,
19265         if -fvtable-verify=preinit/std is used.
19266         * config/i386/mingw-w64.h (STARTFILE_SPEC): Likewise.
19267         * config/i386/mingw32.h (STARTFILE_SPEC): Likewise.
19268         * config/i386/cygwin.h (ENDFILE_SPEC): Add vtv_end.o,
19269         if -fvtable-verify=preinit/std is used.
19270         * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
19271         * config/i386/cygwin.h (LIB_SPEC): Pass -lvtv and -lpsapi,
19272         if -fvtable-verify=preinit/std is used.
19273         * config/i386/mingw-w64.h (LIB_SPEC): Likewise.
19274         * config/i386/mingw32.h (LIB_SPEC): Likewise.
19275         * varasm.c (assemble_variable): Add code to properly set the comdat
19276         section and name for the .vtable_map_vars section in case the
19277         target is PE or COFF.
19278
19279 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
19280
19281         PR ipa/64801
19282         * cgraphunit.c (init_lowered_empty_function): Add CoUNT parameter;
19283         make sane BB profile.
19284         (cgraph_node::expand_thunk): Make sane BB profile.
19285         (cgraph_node::create_wrapper): Do not set call_stmt_cannot_inline_p.
19286         * cgraph.h (init_lowered_empty_function): Update prototype.
19287         * config/i386/i386.c (make_resolver_func): Update call.
19288         * predict.c (gate): Disable branch prediction pass if
19289         profile is already there.
19290
19291 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
19292
19293         * optc-save-gen.awk: flag_fp_contract_mode is no longer speical.
19294         * opth-gen.awk: Likewise.
19295         * common.opt: Mark flag_fp_contract_mode as Optimization.
19296
19297 2015-01-29  Bernd Edlinger  <bernd.edlinger@hotmail.de>
19298
19299         * config/i386/cygwin.h (LIBGCJ_SONAME): Set libgcj version to -16.
19300         * config/i386/mingw32.h (LIBGCJ_SONAME): Set libgcj version to -16.
19301
19302 2015-01-28  Oleg Endo  <olegendo@gcc.gnu.org>
19303
19304         PR target/64659
19305         * config/sh/predicates.md (atomic_arith_operand,
19306         atomic_logical_operand): Remove.
19307         * config/sh/sync.md (fetchop_predicate, fetchop_constraint): Remove.
19308         (atomic_arith_operand_0): New predicate.
19309         (atomic_compare_and_swap<mode>): Use arith_reg_dest for output values.
19310         Use atomic_arith_operand_0 for input values.
19311         (atomic_compare_and_swapsi_hard, atomic_compare_and_swap<mode>_hard,
19312         atomic_compare_and_swap<mode>_soft_gusa,
19313         atomic_compare_and_swap<mode>_soft_tcb,
19314         atomic_compare_and_swap<mode>_soft_imask): Use arith_reg_dest and
19315         arith_reg_operand instead of register_operand.
19316         (atomic_exchange<mode>): Use arith_reg_dest for output value.  Use
19317         atomic_arith_operand_0 for newval input.
19318         (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
19319         atomic_exchange<mode>_soft_gusa, atomic_exchange<mode>_soft_tcb,
19320         atomic_exchange<mode>_soft_imask): Use arith_reg_dest and
19321         arith_reg_operand instead of register_operand.
19322         (atomic_arith_operand_1, atomic_logical_operand_1): New predicates.
19323         fetchop_predicate_1, fetchop_constraint_1_llcs,
19324         fetchop_constraint_1_gusa, fetchop_constraint_1_tcb,
19325         fetchop_constraint_1_imask): New code iterator attributes.
19326         (atomic_fetch_<fetchop_name><mode>): Use arith_reg_dest instead of
19327         register_operand.  Use fetchop_predicate_1.
19328         (atomic_fetch_<fetchop_name>si_hard,
19329         atomic_fetch_<fetchop_name><mode>_hard): Use arith_reg_dest instead of
19330         register_operand.  Use fetchop_predicate_1, fetchop_constraint_1_llcs.
19331         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Use arith_reg_dest
19332         and arith_reg_operand instead of register_operand.  Use
19333         fetchop_predicate_1, fetchop_constraint_1_gusa.
19334         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Use arith_reg_dest
19335         and arith_reg_operand instead of register_operand.  Use
19336         fetchop_predicate_1, fetchop_constraint_1_tcb.  Adjust asm sequence
19337         to allow R0 usage.
19338         (atomic_fetch_<fetchop_name><mode>_soft_imask): Use arith_reg_dest
19339         and arith_reg_operand instead of register_operand.  Use
19340         fetchop_predicate_1, fetchop_constraint_1_imask.  Adjust asm sequence
19341         to allow R0 usage.
19342         (atomic_fetch_nand<mode>): Use arith_reg_dest instead of
19343         register_operand.  Use atomic_logical_operand_1.
19344         (atomic_fetch_nandsi_hard, atomic_fetch_nand<mode>_hard,
19345         atomic_fetch_nand<mode>_soft_gusa): Use arith_reg_dest and
19346         arith_reg_operand instead of register_operand.
19347         (atomic_fetch_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask):
19348         Use arith_reg_dest and arith_reg_operand instead of register_operand.
19349         Use logical_operand and rK08.  Adjust asm sequence to allow R0 usage.
19350         (atomic_<fetchop_name>_fetch<mode>): Use arith_reg_dest instead of
19351         register_operand.  Use fetchop_predicate_1.
19352         (atomic_<fetchop_name>_fetchsi_hard,
19353         atomic_<fetchop_name>_fetch<mode>_hard): Use arith_reg_dest and
19354         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
19355         fetchop_constraint_1_llcs.
19356         (atomic_<fetchop_name>_fetch<mode>_soft_gusa): Use arith_reg_dest and
19357         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
19358         fetchop_constraint_1_gusa.
19359         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Use arith_reg_dest and
19360         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
19361         fetchop_constraint_1_tcb.  Adjust asm sequence to allow R0 usage.
19362         (atomic_<fetchop_name>_fetch<mode>_soft_imask): Use arith_reg_dest and
19363         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
19364         fetchop_constraint_1_imask.  Adjust asm sequence to allow R0 usage.
19365         (atomic_nand_fetch<mode>): Use arith_reg_dest instead of
19366         register_operand.  Use atomic_logical_operand_1.
19367         (atomic_nand_fetchsi_hard, atomic_nand_fetch<mode>_hard,
19368         atomic_nand_fetch<mode>_soft_gusa): Use arith_reg_dest and
19369         arith_reg_operand instead of register_operand.
19370         (atomic_nand_fetch<mode>_soft_tcb): Use arith_reg_dest and
19371         arith_reg_operand instead of register_operand.  Use logical_operand
19372         and K08.  Adjust asm sequence to allow R0 usage.
19373         (atomic_nand_fetch<mode>_soft_imask): Use arith_reg_dest and
19374         arith_reg_operand instead of register_operand.  Use logical_operand
19375         and K08.
19376
19377 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
19378
19379         PR other/63504
19380         * dwarf2out.c (add_AT_wide, mem_loc_descriptor, loc_descriptor):
19381         Use ggc_alloc<wide_int> instead of ggc_cleared_alloc<wide_int>.
19382         (attr_checksum, attr_checksum_ordered, hash_loc_operands): Checksum
19383         only get_full_len HOST_WIDE_INTs from get_val () array rather than
19384         all bits in *val_wide.
19385
19386 2015-01-28  Jan Hubicka  <hubicka@ucw.cz>
19387
19388         * varpool.c (tls_model_names): Fix names.
19389         (varpool_node::dump): Dump tls- prefix for tls models.
19390
19391 2015-01-28  Thomas Schwinge  <thomas@codesourcery.com>
19392             Bernd Schmidt  <bernds@codesourcery.com>
19393             Nathan Sidwell  <nathan@codesourcery.com>
19394
19395         * config/nvptx/mkoffload.c: New file.
19396         * config/nvptx/t-nvptx: Add build rules for it.
19397         * config.gcc <nvptx-*> [$enable_as_accelerator = yes]
19398         (extra_programs): Add mkoffload.
19399         * config/nvptx/nvptx.c (nvptx_record_offload_symbol): New
19400         function.
19401         (TARGET_RECORD_OFFLOAD_SYMBOL): Define macro to use it.
19402
19403 2015-01-28  Yuri Rumyantsev  <ysrumyan@gmail.com>
19404
19405         PR middle-end/64809
19406         * cfgexpand.c (reorder_operands): Skip debug gimples.
19407
19408 2015-01-28  Ilya Enkovich  <ilya.enkovich@intel.com>
19409
19410         PR tree-optimization/64277
19411         * tree-ssa-loop-niter.c (record_nonwrapping_iv): Use base
19412         range info when possible to refine estimation.
19413
19414 2015-01-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
19415
19416         PR tree-optimization/64718
19417         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Make bswap_type
19418         be a 16bit unsigned integer when n->range is 16.
19419         (bswap_replace): Convert src to that type if necessary for all bswap
19420         sizes.  Fix rotation right notation in nearby comment.  Use bswap_type
19421         set in pass_optimize_bswap::execute ().
19422
19423 2015-01-28  James Greenhalgh  <james.greenhalgh@arm.com>
19424
19425         * config/aarch64/aarch64-simd.md (aarch64_abs<mode>): New.
19426         * config/aarch64/aarch64-simd-builtins.def (abs): Split by
19427         integer and floating point variants.
19428         * config/aarch64/iterators.md (unspec): Add UNSPEC_ABS.
19429
19430 2015-01-28  Robert Suchanek  <robert.suchanek@imgtec.com>
19431
19432         * config/mips/mips.c (mips_hard_regno_mode_ok_p): Prohibit accumulators
19433         for all vector modes.
19434
19435 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
19436
19437         PR bootstrap/64612
19438         * doc/sourcebuild.texi (comdat_group): Document.
19439
19440 2015-01-28  Terry Guo  <terry.guo@arm.com>
19441
19442         * config/arm/thumb1.md (*thumb1_movpc_insn): New insn pattern.
19443
19444 2015-01-27  David Malcolm  <dmalcolm@redhat.com>
19445
19446         * toplev.c (print_version): Add param "show_global_state", and
19447         only print GGC and plugin information if it is true.
19448         (init_asm_output): Pass in "true" for the new param when calling
19449         print_version.
19450         (process_options): Likewise.
19451         (toplev::main): Likewise.
19452         * toplev.h (print_version): Add new param to decl.
19453
19454 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
19455
19456         PR ipa/60871
19457         PR ipa/64139
19458         * tree.c (lookup_binfo_at_offset): New function.
19459         (get_binfo_at_offset): Use it.
19460
19461 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
19462
19463         PR ipa/64282
19464         * gimple-fold.c (gimple_get_virt_method_for_vtable): Remove assert
19465         on vtable being vtable.
19466
19467 2015-01-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
19468
19469         * doc/extend.texi: s/390: Update documentation of hotpatch attribute.
19470         * doc/invoke.texi (-mhotpatch): s/390: Update documentation of
19471         -mhotpatch= option.
19472         * config/s390/s390.opt (mhotpatch): s/390: Remove -mhotpatch and
19473         -mno-hotpatch options.  Change syntax of -mhotpatch= option.
19474         * config/s390/s390.c (s390_hotpatch_trampoline_halfwords_default):
19475         Renamed.
19476         (s390_hotpatch_trampoline_halfwords_max): Renamed.
19477         (s390_hotpatch_hw_max): New name.
19478         (s390_hotpatch_trampoline_halfwords): Renamed.
19479         (s390_hotpatch_hw_before_label): New name.
19480         (get_hotpatch_attribute): Removed.
19481         (s390_hotpatch_hw_after_label): New name.
19482         (s390_handle_hotpatch_attribute): Add second parameter to hotpatch
19483         attribute.
19484         (s390_attribute_table): Ditto.
19485         (s390_function_num_hotpatch_trampoline_halfwords): Renamed.
19486         (s390_function_num_hotpatch_hw): New name.
19487         Remove special handling of inline functions and hotpatching.
19488         Return number of nops before and after the function label.
19489         (s390_can_inline_p): Removed.
19490         (s390_asm_output_function_label): Emit a configurable number of nops
19491         after the function label.
19492         (s390_option_override): Update -mhotpatch= syntax and remove -mhotpatch.
19493         (TARGET_CAN_INLINE_P) Removed.
19494         (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): New.
19495
19496 2015-01-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19497             Jiong Wang  <jiong.wang@arm.com>
19498
19499         * config/aarch64/aarch64.md (tb<optab><mode>1): Clobber CC reg instead
19500         of scratch reg.
19501         (cb<optab><mode>1): Likewise.
19502         * config/aarch64/iterators.md (bcond): New define_code_attr.
19503
19504 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19505
19506         * config/s390/s390.c (s390_memory_move_cost): Increase costs for
19507         memory accesses.
19508
19509 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19510
19511         * config/s390/s390.c (s390_register_move_cost): Increase costs for
19512         FPR->GPR moves.
19513
19514 2015-01-27  Richard Biener  <rguenther@suse.de>
19515
19516         * tree-vrp.c (update_value_range): Intersect the range with
19517         old recorded SSA name range information.
19518
19519 2015-01-27  Nick Clifton  <nickc@redhat.com>
19520
19521         * config/rl78/rl78.c (rl78_expand_prologue): In G10 mode push the
19522         BC, DE and HL registers directly, not via AX.
19523         When decrementing the stack pointer by a large amount, transfer SP
19524         into AX and perform the subtraction there.
19525         (rl78_expand_epilogue): Perform the inverse of the above
19526         enhancements.
19527
19528 2015-01-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19529
19530         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Remove.
19531
19532 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
19533             Yury Gribov  <y.gribov@samsung.com>
19534
19535         PR ubsan/64741
19536         * ubsan.c (ubsan_source_location): Refactor code.
19537         (ubsan_type_descriptor): Update type size. Refactor code.
19538
19539 2015-01-27  Richard Biener  <rguenther@suse.de>
19540
19541         PR tree-optimization/56273
19542         PR tree-optimization/59124
19543         PR tree-optimization/64277
19544         * tree-vrp.c (vrp_finalize): Emit array-bound warnings only
19545         from the first VRP pass.
19546
19547 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
19548
19549         PR ipa/64776
19550         * cgraphunit.c (cgraph_node::expand_thunk): If not this_adjusting,
19551         handle the first argument in the same loop as all the other arguments.
19552
19553         PR rtl-optimization/61058
19554         * jump.c (cleanup_barriers): Update basic block boundaries
19555         if BLOCK_FOR_INSN is non-NULL on PREV.
19556
19557 2015-01-27  Ilya Enkovich  <ilya.enkovich@intel.com>
19558
19559         * tree-chkp.c (chkp_call_returns_bounds_p): Fix handling of
19560         bounds narrowing, already instrumented calls and calls to
19561         not instrumentable functions.
19562
19563 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
19564
19565         PR tree-optimization/64807
19566         * wide-int.cc (wi::divmod_internal): Clear
19567         b_dividend[dividend_blocks_needed].
19568
19569 2015-01-26  DJ Delorie  <dj@redhat.com>
19570
19571         * config/rl78/rl78.c (move_elim_pass): Don't optimize away
19572         volatile memory references.
19573
19574 2015-01-26  Oleg Endo  <olegendo@gcc.gnu.org>
19575
19576         PR target/49263
19577         * config/sh/sh.c (sh_split_treg_set_expr): Invoke emit_insn before
19578         remove_insn.
19579         * config/sh/sh.md (tstsi_t): Don't try to optimize constant with right
19580         shifts if it already fits into K08.
19581
19582 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
19583
19584         PR ipa/64730
19585         * ipa-inline.c (inline_small_functions): Print "unknown" even
19586         if edge->call_stmt is non-NULL, but has builtins or unknown
19587         location.
19588
19589         PR middle-end/64421
19590         * omp-low.c (simd_clone_mangle): If DECL_ASSEMBLER_NAME starts
19591         with asterisk, skip the first character.
19592
19593 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
19594
19595         PR target/64806
19596         * config/i386/i386 (feature_priority): Revert the last P_POPCNT
19597         order change.
19598
19599 2015-01-26  Uros Bizjak  <ubizjak@gmail.com>
19600
19601         PR target/64795
19602         * config/i386/i386.md (*movdi_internal): Also check operand 0
19603         to determine TYPE_LEA operand.
19604         (*movsi_internal): Ditto.
19605
19606 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
19607
19608         * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add
19609         OPTION_MASK_QUAD_MEMORY_ATOMIC.
19610
19611 2015-01-26  Renlin Li  <renlin.li@arm.com>
19612
19613         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Correct
19614         the comment.
19615         * config/aarch64/aarch64.md (tlsle_small_<mode>): Add left shift 12-bit
19616         for higher part.
19617
19618 2015-01-26  Richard Biener  <rguenther@suse.de>
19619
19620         PR middle-end/64764
19621         * tree-ssa-uninit.c (is_pred_expr_subset_of): Handle
19622         combining two BIT_AND_EXPR predicates.
19623
19624 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
19625
19626         PR bootstrap/64754
19627         * tree-ssa-structalias.c (new_var_info): Initialize ruid.
19628
19629 2015-01-26  Terry Guo  <terry.guo@arm.com>
19630
19631         * config/arm/arm.c (arm_file_start): Update the assignment of
19632         Tag_ABI_HardFP_use.
19633
19634 2015-01-25  James Greenhalgh  <james.greenhalgh@arm.com>
19635
19636         * config/arm/arm-cores.def (cortex-a57): Use the new Cortex-A57
19637         pipeline model.
19638         config/arm/arm.md: Include the new Cortex-A57 model.
19639         (generic_sched): Don't use generic_sched when tuning for
19640         Cortex-A57.
19641
19642 2015-01-25  Allan Sandfeld Jensen  <sandfeld@kde.org>
19643             Uros Bizjak  <ubizjak@gmail.com>
19644
19645         * config/i386/i386.c (get_builtin_code_for_version): Add
19646         support for BMI and BMI2 multiversion functions.
19647
19648 2015-01-25  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
19649
19650         * emit-rtl.h (store_bit_field): Move prototype to expmed.h.
19651         (extract_bit_field): Likewise.
19652         (extract_low_bits): Likewise.
19653         (expand_mult): Likewise.
19654         (expand_mult_highpart_adjust): Likewise.
19655
19656 2015-01-24  H.J. Lu  <hongjiu.lu@intel.com>
19657
19658         * config/i386/driver-i386.c (host_detect_local_cpu): Check new
19659         Silvermont, Haswell, Broadwell and Knights Landing model numbers.
19660         * config/i386/i386.c (processor_model): Add
19661         M_INTEL_COREI7_BROADWELL.
19662         (arch_names_table): Add "broadwell".
19663
19664 2015-01-24  Oleg Endo  <olegendo@gcc.gnu.org>
19665
19666         PR target/49263
19667         PR target/53987
19668         PR target/64345
19669         PR target/59533
19670         PR target/52933
19671         PR target/54236
19672         PR target/51244
19673         * config/sh/sh-protos.h
19674         (sh_extending_set_of_reg::can_use_as_unextended_reg,
19675         sh_extending_set_of_reg::use_as_unextended_reg,
19676         sh_is_nott_insn, sh_movt_set_dest, sh_movrt_set_dest, sh_is_movt_insn,
19677         sh_is_movrt_insn, sh_insn_operands_modified_between_p,
19678         sh_reg_dead_or_unused_after_insn, sh_in_recog_treg_set_expr,
19679         sh_recog_treg_set_expr, sh_split_treg_set_expr): New functions.
19680         (sh_treg_insns): New class.
19681         * config/sh/sh.c (TARGET_LEGITIMATE_COMBINED_INSN): Define target hook.
19682         (scope_counter): New class.
19683         (sh_legitimate_combined_insn, sh_is_nott_insn, sh_movt_set_dest,
19684         sh_movrt_set_dest, sh_reg_dead_or_unused_after_insn,
19685         sh_extending_set_of_reg::can_use_as_unextended_reg,
19686         sh_extending_set_of_reg::use_as_unextended_reg, sh_recog_treg_set_expr,
19687         sh_in_recog_treg_set_expr, sh_try_split_insn_simple,
19688         sh_split_treg_set_expr): New functions.
19689         (addsubcosts): Handle treg_set_expr.
19690         (sh_rtx_costs): Handle IF_THEN_ELSE and ZERO_EXTRACT.
19691         (sh_rtx_costs): Use arith_reg_operand in SIGN_EXTEND and ZERO_EXTEND.
19692         (sh_rtx_costs): Handle additional bit test patterns in EQ and AND cases.
19693         (sh_insn_operands_modified_between_p): Make non-static.
19694         * config/sh/predicates.md (zero_extend_movu_operand): Allow
19695         simple_mem_operand in addition to displacement_mem_operand.
19696         (zero_extend_operand): Don't allow zero_extend_movu_operand.
19697         (treg_set_expr, treg_set_expr_not_const01,
19698         arith_reg_or_treg_set_expr): New predicates.
19699         * config/sh/sh.md (tstsi_t): Use arith_reg_operand and
19700         arith_or_int_operand instead of logical_operand.  Convert to
19701         insn_and_split.  Try to optimize constant operand in splitter.
19702         (tsthi_t, tstqi_t): Fold into *tst<mode>_t.  Convert to insn_and_split.
19703         (*tstqi_t_zero): Delete.
19704         (*tst<mode>_t_subregs): Add !sh_in_recog_treg_set_expr split condition.
19705         (tstsi_t_and_not): Delete.
19706         (tst<mode>_t_zero_extract_eq): Rename to *tst<mode>_t_zero_extract.
19707         Convert to insn_and_split.
19708         (unnamed split, tstsi_t_zero_extract_xor,
19709         tstsi_t_zero_extract_subreg_xor_little,
19710         tstsi_t_zero_extract_subreg_xor_big): Delete.
19711         (*tstsi_t_shift_mask): New insn_and_split.
19712         (cmpeqsi_t, cmpgesi_t): Add new split for const_int 0 operands and try
19713         to recombine with surrounding insns when splitting.
19714         (*negtstsi): Add !sh_in_recog_treg_set_expr condition.
19715         (cmp_div0s_0, cmp_div0s_1, *cmp_div0s_0, *cmp_div0s_1): Rewrite as ...
19716         (cmp_div0s, *cmp_div0s_1, *cmp_div0s_2, *cmp_div0s_3, *cmp_div0s_4,
19717         *cmp_div0s_5, *cmp_div0s_6): ... these new insn_and_split patterns.
19718         (*cbranch_div0s: Delete.
19719         (*addc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
19720         Try to recombine with surrounding insns when splitting.  Add operand
19721         order variants.
19722         (*addc_t_r, *addc_r_t): Use treg_set_expr_not_const01.
19723         (*addc_r_r_1, *addc_r_lsb, *addc_r_r_lsb, *addc_r_lsb_r, *addc_r_msb,
19724         *addc_r_r_msb, *addc_2r_msb): Delete.
19725         (*addc_2r_lsb): Rename to *addc_2r_t.  Use treg_set_expr.  Add operand
19726         order variant.
19727         (*addc_negreg_t): New insn_and_split.
19728         (*subc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
19729         Try to recombine with surrounding insns when splitting.
19730         Add operand order variants.
19731         (*subc_negt_reg, *subc_negreg_t, *reg_lsb_t, *reg_msb_t): New
19732         insn_and_split patterns.
19733         (*rotcr): Use arith_reg_or_treg_set_expr.  Try to recombine with
19734         surrounding insns when splitting.
19735         (unnamed rotcr split): Use arith_reg_or_treg_set_expr.
19736         (*rotcl): Likewise.  Add zero_extract variant.
19737         (*ashrsi2_31): New insn_and_split.
19738         (*negc): Convert to insn_and_split.  Use treg_set_expr.
19739         (*zero_extend<mode>si2_disp_mem): Update comment.
19740         (movrt_negc, *movrt_negc, nott): Add !sh_in_recog_treg_set_expr split
19741         condition.
19742         (*mov_t_msb_neg, mov_neg_si_t): Use treg_set_expr.  Try to recombine
19743         with surrounding insns when splitting.
19744         (any_treg_expr_to_reg): New insn_and_split.
19745         (*neg_zero_extract_0, *neg_zero_extract_1, *neg_zero_extract_2,
19746         *neg_zero_extract_3, *neg_zero_extract_4, *neg_zero_extract_5,
19747         *neg_zero_extract_6, *zero_extract_0, *zero_extract_1,
19748         *zero_extract_2): New single bit zero extract patterns.
19749         (bld_reg, *bld_regqi): Fold into bld<mode>_reg.
19750         (*get_thread_pointersi, store_gbr, *mov<mode>_gbr_load,
19751         *mov<mode>_gbr_load, *mov<mode>_gbr_load, *mov<mode>_gbr_load,
19752         *movdi_gbr_load): Use arith_reg_dest instead of register_operand for
19753         set destination.
19754         (set_thread_pointersi, load_gbr): Use arith_reg_operand instead of
19755         register_operand for set source.
19756
19757 2015-01-23  Jan Hubicka  <hubicka@ucw.cz>
19758
19759         * i386.opt (prefetch_sse): New targetsave.
19760         * i386.c (ix86_function_specific_save): Save prefetch_sse.
19761         (ix86_function_specific_restore): Restore prefetch_sse and initialize
19762         ix86_cost/ix86_tune_cost.
19763
19764 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
19765
19766         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
19767         Support the JIT by using 0 as the language type.
19768
19769 2015-01-23  Vladimir Makarov  <vmakarov@redhat.com>
19770
19771         PR target/64317
19772         * lra-lives.c (make_hard_regno_born): Add parameter.  Don't make
19773         REAL_PIC_OFFSET_TABLE_REGNUM conflicting with pic offset pseudo.
19774         (mark_regno_live, process_bb_lives): Pass new parameter value to
19775         make_hard_regno_born.
19776
19777 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
19778
19779         PR rtl-optimization/63637
19780         PR rtl-optimization/60663
19781         * cse.c (merge_equiv_classes): Set new_elt->cost to MAX_COST
19782         if elt->cost is MAX_COST for ASM_OPERANDS.
19783         (find_sets_in_insn): Fix up comment typo.
19784         (cse_insn): Don't set src_volatile for all non-volatile
19785         ASM_OPERANDS in PARALLELs, but just those with multiple outputs
19786         or with "memory" clobber.  Set elt->cost to MAX_COST
19787         for ASM_OPERANDS in PARALLEL.  Set src_elt->cost to MAX_COST
19788         if new_src is ASM_OPERANDS and elt->cost is MAX_COST.
19789
19790 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
19791
19792         * config/i386/sse.md (sse2_loadld): Set attribute isa to sse2 for
19793         alternative 1.
19794
19795 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
19796
19797         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Move definition to
19798         libgcc/config/i386/elf-lib.h.
19799
19800 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
19801
19802         PR driver/64737
19803         * gcc.c (print_configuration): Don't print a blank line at the end
19804         here...
19805         (run_attempt): ... but here unstead.
19806
19807         PR middle-end/64734
19808         * omp-low.c (scan_sharing_clauses): Don't ignore
19809         OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION GOMP_MAP_POINTER clauses
19810         on target data/update constructs.
19811
19812 2015-01-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
19813
19814         PR target/50928
19815         * config/m32c/m32c.c (encode_pattern_1): Removed gcc_unreachable here.
19816         (DEBUG_RELOAD): Removed define.
19817         (m32c_limit_reload_class): Enable traces with if DEBUG0.
19818         (m32c_function_arg): Added a type cast.
19819         (m32c_legitimize_reload_address): Push A_REGS reload with PSImode.
19820         * config/m32c/addsub.md (addsi3_1): Specify the mode of all arguments.
19821         * config/m32c/bitops.md (andqi3_16): Likewise.
19822         * config/m32c/mov.md (m32c_immd_dbl_mov): Likewise.
19823         (push_a01_l): Likewise.
19824
19825 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
19826
19827         PR jit/64721
19828         * main.c (main): Construct toplev instances with init_signals=true.
19829         * toplev.c (general_init): Add param "init_signals", and use it to
19830         conditionalize the calls to signal and host_hooks.extra_signals.
19831         (toplev::toplev): Add param "init_signals".
19832         (toplev::main): When invoking general_init, pass m_init_signals
19833         to control whether signal-handlers are installed.
19834         * toplev.h (toplev::toplev): Add param "init_signals".
19835         (toplev::m_init_signals): New field.
19836
19837 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
19838
19839         PR jit/64722
19840         * emit-rtl.c (init_emit_regs): Set pic_offset_table_rtx to
19841         NULL_RTX before testing PIC_OFFSET_TABLE_REGNUM, since the
19842         latter may be affected by the former (e.g. on i686).
19843
19844 2015-01-23  Martin Liska  <mliska@suse.cz>
19845
19846         * tree.h (tree_vec_elt_check): Workaround -Wstrict-overflow
19847         false positive during profiledbootstrap.
19848
19849 2015-01-23  Tom de Vries  <tom@codesourcery.com>
19850
19851         PR libgomp/64672
19852         * lto-opts.c (lto_write_options): Output non-explicit conservative
19853         -fno-openacc.
19854         * lto-wrapper.c (merge_and_complain): Handle merging -fopenacc.
19855         (append_compiler_options): Pass -fopenacc through.
19856
19857 2015-01-23  Tom de Vries  <tom@codesourcery.com>
19858
19859         PR libgomp/64707
19860         * lto-opts.c (lto_write_options): Output non-explicit conservative
19861         -fno-openmp.
19862         * lto-wrapper.c (merge_and_complain): Handle merging -fopenmp.
19863         (append_compiler_options): Pass -fopenmp through.
19864
19865 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
19866
19867         PR debug/64511
19868         * dwarf2out.c (struct dw_loc_descr_node): Add chain_next
19869         GTY markup.
19870
19871         * diagnostic-core.h (internal_error_no_backtrace): New prototype.
19872         * diagnostic.def (DK_ICE_NOBT): New kind.
19873         * diagnostic.c (diagnostic_action_after_output): Handle DK_ICE_NOBT
19874         like DK_ICE, but never print backtrace.
19875         (diagnostic_report_diagnostic): Handle DK_ICE_NOBT like DK_ICE.
19876         (internal_error_no_backtrace): New function.
19877         * gcc.c (execute): Use internal_error_no_backtrace instead of
19878         internal_error.
19879
19880 2015-01-22  Jeff Law  <law@redhat.com>
19881
19882         PR target/52076
19883         * config/m68k/m68k.md (xorsi3_internal): Twiddle constraints to
19884         improve code density for small immediate to memory case.
19885         (insv): Better handle bitfield assignments when the field is
19886         being set to all ones.
19887         * config/m68k/predicates.md (reg_or_pow2_m1_operand): New
19888         operand predicate.
19889
19890 2015-01-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19891             Jakub Jelinek  <jakub@redhat.com>
19892
19893         PR middle-end/64729
19894         * gcc.c (LINK_SSP_SPEC): Handle -fstack-protector-explicit
19895         for !TARGET_LIBC_PROVIDES_SSP version and
19896         -fstack-protector-{all,strong,explicit} otherwise.
19897         * config/freebsd.h (LINK_SSP_SPEC): Handle
19898         -fstack-protector-{strong,explicit}.
19899
19900 2015-01-22  Jan Hubicka  <hubicka@ucw.cz>
19901             H.J. Lu  <hongjiu.lu@intel.com>
19902
19903         PR ipa/64694
19904         * ipa-inline.c (inline_small_functions): Fix thinko in maintenance of
19905         heap.
19906
19907 2015-01-22  Wei Mi  <wmi@google.com>
19908
19909         PR rtl-optimization/64557
19910         * dse.c (record_store): Call get_addr for mem_addr.
19911         (check_mem_read_rtx): Likewise.
19912
19913 2015-01-22  Eric Botcazou  <ebotcazou@adacore.com>
19914
19915         * fold-const.c (const_binop): Add early return for non-tcc_binary.
19916
19917 2015-01-22  Chen Gang  <gang.chen.5i5j@gmail.com>
19918
19919         * toplev.c (init_local_tick): Process the failure when read
19920         fails for random_seed.
19921
19922         * ubsan.c (ubsan_type_descriptor): Use 'pretty_print' for
19923         'pretty_name' to avoid memory overflow.
19924
19925 2015-01-22  Richard Biener  <rguenther@suse.de>
19926
19927         PR middle-end/64728
19928         * tree-ssa-coalesce.c (coalesce_partitions): Do not perform
19929         abnormal coalescing on undefined SSA names.
19930
19931 2015-22-01  Uros Bizjak  <ubizjak@gmail.com>
19932
19933         PR target/64688
19934         PR target/64477
19935         * config/i386/sse.md (vec_set<mode>_0): Use (Yi/r/C) constraints
19936         for alternative 3.
19937         (*vec_dup<mode>): Use (Yi/$r) constraints for alternative 1.
19938
19939 2015-01-22  Trevor Saunders  <tsaunders@mozilla.com>
19940
19941         PR middle-end/63325
19942         * fold-const.c (fold_checksum_tree): Don't include value of
19943         expr->decl_with_vis.symtab_node in the checksum.
19944
19945 2015-01-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19946
19947         * config/s390/s390.md (atomic code attribute): Fix typo "ior" -> "or".
19948
19949 2015-01-22  Max Ostapenko  <m.ostapenko@partner.samsung.com>
19950
19951         PR driver/64690
19952         * gcc.c (insert_comments): New function.
19953         (try_generate_repro): Call it.
19954         (append_text): Removed.
19955
19956 2015-01-22  Richard Biener  <rguenther@suse.de>
19957
19958         * ipa-inline.c (can_inline_edge_p): Disable inlining of edges
19959         with IL incompatible options.  Properly honor user optimize
19960         attributes.
19961
19962 2015-01-21  Segher Boessenkool  <segher@kernel.crashing.org>
19963
19964         PR rtl-optimization/64682
19965         * combine.c (distribute_notes): When moving a death note for
19966         a register that is set in the new I2, make sure to put it
19967         before that new I2.
19968
19969 2015-01-21  David Edelsohn  <dje.gcc@gmail.com>
19970
19971         * config/rs6000/rs6000.c (rs6000_file_start): Use rs6000_isa_flags
19972         not TARGET_DEFAULT.
19973
19974 2015-01-21  Jakub Jelinek  <jakub@redhat.com>
19975
19976         PR debug/64511
19977         * simplify-rtx.c (simplify_relational_operation_1): Don't try to
19978         optimize (eq/ne (and (side_effects) (const_int 0)) (const_int 0))
19979         into (eq/ne (and (not (side_effects)) (const_int 0)) (const_int 0)).
19980
19981         PR sanitizer/64706
19982         * doc/invoke.texi (-fsanitize=vptr): Document.
19983
19984         PR rtl-optimization/62078
19985         * dse.c: Include cfgcleanup.h.
19986         (rest_of_handle_dse): For -fnon-call-exceptions, if DSE removed
19987         anything call purge_all_dead_edges and cleanup_cfg at the end
19988         of the pass.
19989
19990 2015-01-21  Jan Hubicka  <hubicka@ucw.cz>
19991
19992         * ipa-utils.c (ipa_merge_profiles): Avoid ICE on mismatch in indirect
19993         edges.
19994
19995 2015-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
19996
19997         * gimplify.c (gimplify_function_tree): Check the no_sanitize_thread
19998         decl attribute.
19999
20000 2015-01-21  David Sherwood  <david.sherwood@arm.com>
20001             Tejas Belagod <Tejas.Belagod@arm.com>
20002
20003         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Removed.
20004         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class): Removed.
20005         * config/aarch64/aarch64-protos.h (aarch64_cannot_change_mode_class):
20006         Removed.
20007
20008 2015-01-21  David Sherwood  <david.sherwood@arm.com>
20009             Tejas Belagod <Tejas.Belagod@arm.com>
20010
20011         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist)
20012         (aarch64_reverse_mask): New decls.
20013         * config/aarch64/iterators.md (UNSPEC_REV_REGLIST): New enum.
20014         (insn_count): New mode_attr.
20015         * config/aarch64/aarch64-simd.md (vec_store_lanesoi, vec_store_lanesci)
20016         (vec_store_lanesxi, vec_load_lanesoi, vec_load_lanesci)
20017         (vec_load_lanesxi): Made ABI compliant for Big Endian targets.
20018         (aarch64_rev_reglist, aarch64_simd_ld2, aarch64_simd_ld3)
20019         (aarch64_simd_ld4, aarch64_simd_st2, aarch64_simd_st3)
20020         (aarch64_simd_st4): New patterns.
20021         * config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist)
20022         (aarch64_reverse_mask): New functions.
20023
20024 2015-01-21  Richard Sandiford  <richard.sandiford@arm.com>
20025
20026         * config/aarch64/aarch64-protos.h (aarch64_simd_disambiguate_copy):
20027         Declare.
20028         * config/aarch64/aarch64.c (aarch64_classify_address): Allow extra
20029         addressing modes for BE.
20030         (aarch64_print_operand): Add 'R' specifier.
20031         (aarch64_simd_disambiguate_copy): Delete.
20032         (aarch64_simd_emit_reg_reg_move): New function.
20033         * config/aarch64/aarch64-simd.md: Use aarch64_simd_emit_reg_reg_move
20034         in define_splits for structural moves.
20035         (mov<mode>): Use less restrictive predicates.
20036         (*aarch64_mov<mode>): Simplify and only allow for LE.
20037         (*aarch64_be_movoi, *aarch64_be_movci, *aarch64_be_movxi): New.
20038
20039 2015-01-21  Alan Hayward  <alan.hayward@arm.com>
20040
20041         * rtlanal.c (subreg_get_info): Exit early for simple and common cases.
20042
20043 2015-01-21  Richard Henderson  <rth@redhat.com>
20044
20045         PR target/64669
20046         * ccmp.c (used_in_cond_stmt_p): Remove.
20047         (expand_ccmp_expr): Don't use it.
20048
20049 2015-01-21  Nick Clifton  <nickc@redhat.com>
20050
20051         * config/rl78/rl78.c (rl78_calculate_death_notes): Look inside
20052         PARALLELs.
20053
20054 2015-01-21  Richard Biener  <rguenther@suse.de>
20055
20056         PR middle-end/64313
20057         * tree-core.h (builtin_info, builtin_info_type): Turn from
20058         an object with two arrays into an array of an object with
20059         decl and two flags, implicit_p and declared_p.
20060         * tree.h (builtin_decl_explicit, builtin_decl_implicit,
20061         set_builtin_decl, set_builtin_decl_implicit_p,
20062         builtin_decl_explicit_p, builtin_decl_implicit_p): Adjust.
20063         (set_builtin_decl_declared_p, builtin_decl_declared_p): New functions.
20064         * builtins.c (builtin_info): Adjust.
20065         * gimplify.c (gimplify_addr_expr): References to builtins
20066         that have been declared by the user makes them eligible for
20067         use by the compiler.  Call set_builtin_decl_implicit_p on them.
20068
20069 2015-01-20  Jeff Law  <law@redhat.com>
20070
20071         PR target/59946
20072         * config/m68k/m68k.md (Comparison expanders and patterns): Do not
20073         allow pc-relative addresses in operand predicates or constraints.
20074
20075 2015-01-21  Bin Cheng  <bin.cheng@arm.com>
20076
20077         * config/arm/arm.c (arm_cortex_a53_tune, arm_cortex_a57_tune): Prefer
20078         neon on aarch32 processors for stringops.
20079
20080 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
20081
20082         PR ipa/63576
20083         * ipa-utils.c (ipa_merge_profiles): Merge speculative edges.
20084
20085 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
20086
20087         PR lto/45375
20088         * ipa-inline.c: Include lto-streamer.h
20089         (report_inline_failed_reason): Output source file differences and
20090         flags on optimization/target node mismatch.
20091         (can_inline_edge_p): Consider caller to be the outer inline function;
20092         be less restrictive about matching opimize and optimize_size attributes.
20093         (inline_account_function_p): Break out from ...
20094         (inline_small_functions): ... here.
20095         * ipa-inline-transform.c (clone_inlined_nodes): Use
20096         inline_account_function_p.
20097         (inline_call): Use optimize attribution; use inline_account_function_p.
20098         (inline_transform): Use opt_for_fn.
20099         * ipa-inline.h (inline_account_function_p): Declare.
20100
20101 2015-01-20  Jakub Jelinek  <jakub@redhat.com>
20102
20103         PR debug/64663
20104         * dwarf2out.c (decl_piece_node): Don't put bitsize into
20105         mode if bitsize <= 0.
20106         (decl_piece_bitsize, adjust_piece_list, add_var_loc_to_decl,
20107         dw_sra_loc_expr): Use HOST_WIDE_INT instead of int for bit
20108         sizes and positions.
20109
20110 2015-01-20  Chung-Lin Tang  <cltang@codesourcery.com>
20111
20112         * config/nios2/nios2.c (nios2_asm_file_end): Implement
20113         TARGET_ASM_FILE_END hook for adding .note.GNU-stack section when
20114         needed.
20115         (TARGET_ASM_FILE_END): Define.
20116
20117 2015-01-20  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
20118
20119         * config/arm/arm-protos.h (enum arm_sched_autopref): New constants.
20120         (struct tune_params): Use the enum.
20121         * arm.c (arm_*_tune): Update.
20122         (arm_option_override): Update.
20123
20124 2015-01-20  Richard Biener  <rguenther@suse.de>
20125
20126         PR ipa/64684
20127         * ipa-reference.c (add_static_var): Inline ...
20128         (analyze_function): ... here after splitting out from ...
20129         (is_proper_for_analysis): ... this.
20130
20131 2015-01-20  Matthew Wahab  <matthew.wahab@arm.com>
20132
20133         PR target/64149
20134         * config/arm/arm.opt: Remove lra option and arm_lra_flag variablesle.
20135         * config/arm/arm.h (MODE_BASE_REG_CLASS): Remove use of arm_lra_flagag,
20136         replace the conditional with it's true branch.
20137         * config/arm/arm.config (TARGET_LRA_P): Set to hook_bool_void_true.
20138         (arm_lra_p): Remove.
20139
20140 2015-01-20  Eric Botcazou  <ebotcazou@adacore.com>
20141
20142         * config/visium/visium.h (LIB_SPEC): Adjust in default case.
20143
20144 2015-01-20  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
20145
20146         * config/tilegx/mul-tables.c: Move symtab.h include after
20147         coretypes.h include.
20148         * config/tilepro/mul-tables.c: Add includes hashtab.h, hash-set.h,
20149         vec.h, machmode.h, tm.h, hard-reg-set.h, input.h, function.h, rtl.h,
20150         flags.h, statistics.h, double-int.h, real.h, fixed-value.h, alias.h,
20151         wide-int.h, inchash.h, tree.h, insn-config.h, expmed.h, dojump.h,
20152         explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
20153
20154 2015-01-20  Igor Zamyatin  <igor.zamyatin@intel.com>
20155
20156         PR bootstrap/64676
20157         Revert:
20158         2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
20159
20160         PR rtl-optimization/64081
20161         * loop-iv.c (def_pred_latch_p): New function.
20162         (latch_dominating_def): Allow specific cases with non-single
20163         definitions.
20164         (iv_get_reaching_def): Likewise.
20165         (check_complex_exit_p): New function.
20166         (check_simple_exit): Use check_complex_exit_p to allow certain cases
20167         with exits not executing on any iteration.
20168
20169 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
20170
20171         PR lto/45375
20172         * i386.c (ix86_option_override_internal): Use ix86_tune_cost
20173         to set branch cost.
20174
20175 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
20176
20177         PR lto/45375
20178         * i386.c (gate): Check flag_expensive_optimizations and
20179         optimize_size.
20180         (ix86_option_override_internal): Drop optimize_size condition
20181         on MASK_ACCUMULATE_OUTGOING_ARGS, MASK_VZEROUPPER,
20182         MASK_AVX256_SPLIT_UNALIGNED_LOAD, MASK_AVX256_SPLIT_UNALIGNED_STORE,
20183         MASK_PREFER_AVX128.
20184         (ix86_avx256_split_vector_move_misalign,
20185         ix86_avx256_split_vector_move_misalign): Check optimize_insn_for_speed.
20186         * sse.md (all uses of TARGET_PREFER_AVX128): Add
20187         optimize_insn_for_speed_p check.
20188
20189 2015-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
20190
20191         * config/mips/mips.h (FP_ASM_SPEC): New define.
20192         (ASM_SPEC): Remove floating-point options and use FP_ASM_SPEC
20193         instead.
20194
20195 2015-01-19  Oleg Endo  <olegendo@gcc.gnu.org>
20196
20197         PR target/53988
20198         * config/sh/sh-protos.h (sh_find_set_of_reg): Make sure not to return
20199         nullptr for insn when reaching the first insn.
20200         * config/sh/sh.c (sh_unspec_insn_p): Rewrite using subrtx_iterator.
20201         (sh_insn_operands_modified_between_p): Add nullptr check.
20202         (sh_find_extending_set_of_reg): Fix log message.  Don't accept
20203         sign extending mem load if the insn contains any UNSPEC or
20204         UNSPEC_VOLATILE.
20205
20206 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
20207
20208         * params.def (inline-unit-growth): Drop to 15%.
20209         * invoke.texi (inline-unit-growth): Document change.
20210
20211 2015-01-19  Martin Liska  <mliska@suse.cz>
20212
20213         PR ipa/64668
20214         * ipa-icf-gimple.c (func_checker::compare_operand): Call proper
20215         function for second argument of OBJ_TYPE_REF.
20216
20217 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
20218
20219         PR ipa/64218
20220         * ipa-inline.c (want_inline_function_to_all_callers_p): Fix check
20221         whether function is an alias.
20222
20223 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
20224
20225         * ipa-devirt.c (ipa_devirt): Drop polymorphic call info in hopeless
20226         cases.
20227
20228 2015-01-19  Vladimir Makarov  <vmakarov@redhat.com>
20229
20230         PR rtl-optimization/64671
20231         * lra-remat.c (operand_to_remat): Don't consider jump and call
20232         insns.
20233
20234 2015-01-19  David Edelsohn  <dje.gcc@gmail.com>
20235
20236         PR target/59828
20237         * config/rs6000/default64.h: Include rs6000-cpus.def.
20238         (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use ISA 2.7 (POWER8).
20239         (TARGET_DEFAULT) [BIG_ENDIAN]: Use POWER4.
20240         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add POWER7
20241         and POWER8.
20242         * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Always default to
20243         POWER8.
20244         * config/rs6000/rs6000.c (rs6000_file_start): Emit .machine
20245         pseudo-op to specify assembler dialect.
20246
20247 2015-01-19  Martin Liska  <mliska@suse.cz>
20248
20249         PR ipa/64664
20250         * ipa-icf.c (sem_item_optimizer::filter_removed_items):
20251         Handle safe potentially removed nodes during filtering.
20252
20253 2015-01-19  Martin Liska  <mliska@suse.cz>
20254
20255         * doc/extend.texi (no_icf): Add new attribute description.
20256         * ipa-icf.c (sem_item_optimizer::merge_classes): Handle cases
20257         where the pass attempts to merge a function with no_icf attribute.
20258
20259 2015-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
20260
20261         PR target/64532
20262         * doc/md.texi (ARM Options): Document register constraints.
20263
20264 2015-01-19  Jiong Wang  <jiong.wang@arm.com>
20265             Andrew Pinski  <apinski@cavium.com>
20266
20267         PR target/64304
20268         * config/aarch64/aarch64.md (define_insn "*ashl<mode>3_insn"): Deleted.
20269         (ashl<mode>3): Don't expand if operands[2] is not constant.
20270
20271 2015-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20272
20273         PR target/64448
20274         * config/aarch64/aarch64-simd.md (aarch64_simd_bsl<mode>_internal):
20275         Match xor-and-xor RTL pattern.
20276
20277 2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
20278
20279         PR rtl-optimization/64081
20280         * loop-iv.c (def_pred_latch_p): New function.
20281         (latch_dominating_def): Allow specific cases with non-single
20282         definitions.
20283         (iv_get_reaching_def): Likewise.
20284         (check_complex_exit_p): New function.
20285         (check_simple_exit): Use check_complex_exit_p to allow certain cases
20286         with exits not executing on any iteration.
20287
20288 2015-01-19  Jakub Jelinek  <jakub@redhat.com>
20289
20290         * common.opt (fgraphite): Fix a typo.
20291
20292 2015-01-19  Felix Yang  <felix.yang@huawei.com>
20293
20294         * config/aarch64/aarch64-simd.md (aarch64_<maxmin_uns>p<mode>): New
20295         pattern.
20296         * config/aarch64/aarch64-simd-builtins.def (smaxp, sminp, umaxp,
20297         uminp, smax_nanp, smin_nanp): New builtins.
20298         * config/aarch64/arm_neon.h (vpmax_s8, vpmax_s16, vpmax_s32,
20299         vpmax_u8, vpmax_u16, vpmax_u32, vpmaxq_s8, vpmaxq_s16, vpmaxq_s32,
20300         vpmaxq_u8, vpmaxq_u16, vpmaxq_u32, vpmax_f32, vpmaxq_f32, vpmaxq_f64,
20301         vpmaxqd_f64, vpmaxs_f32, vpmaxnm_f32, vpmaxnmq_f32, vpmaxnmq_f64,
20302         vpmaxnmqd_f64, vpmaxnms_f32, vpmin_s8, vpmin_s16, vpmin_s32, vpmin_u8,
20303         vpmin_u16, vpmin_u32, vpminq_s8, vpminq_s16, vpminq_s32, vpminq_u8,
20304         vpminq_u16, vpminq_u32, vpmin_f32, vpminq_f32, vpminq_f64, vpminqd_f64,
20305         vpmins_f32, vpminnm_f32, vpminnmq_f32, vpminnmq_f64, vpminnmqd_f64,
20306         vpminnms_f32): Rewrite using builtin functions.
20307
20308 2015-01-19  Thomas Schwinge  <thomas@codesourcery.com>
20309
20310         PR libgomp/64625
20311         * omp-low.c (offload_symbol_decl): Remove variable.
20312         (get_offload_symbol_decl): Remove function.
20313         (expand_omp_target): For BUILT_IN_GOMP_TARGET,
20314         BUILT_IN_GOMP_TARGET_DATA, BUILT_IN_GOMP_TARGET_UPDATE pass NULL
20315         instead of &__OFFLOAD_TABLE__, for BUILT_IN_GOACC_DATA_START,
20316         BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL,
20317         BUILT_IN_GOACC_UPDATE don't pass it at all.
20318
20319 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
20320
20321         * tree-sra.c (some_callers_have_mismatched_arguments_p): Allow thunk
20322         callers.
20323
20324 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
20325
20326         * ipa-chkp.c (chkp_produce_thunks): Add early param
20327         to split thunks production into two passes.  Keep
20328         'always_inline' function bodies after the first pass.
20329         (pass_data_ipa_chkp_early_produce_thunks): New.
20330         (pass_ipa_chkp_early_produce_thunks): New.
20331         (pass_ipa_chkp_produce_thunks::execute): Adjust to new
20332         chkp_produce_thunks signature.
20333         (make_pass_ipa_chkp_early_produce_thunks): New.
20334         * passes.def (pass_ipa_chkp_early_produce_thunks): New.
20335         (pass_ipa_chkp_produce_thunks): Move after local optimizations.
20336         * tree-pass.h (make_pass_ipa_chkp_early_produce_thunks): New.
20337
20338 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
20339
20340         * cgraph.c (cgraph_node::dump): Dump profile flags.
20341
20342 2015-01-18  Oleg Endo  <olegendo@gcc.gnu.org>
20343
20344         PR target/64652
20345         * config/sh/sh.md (udivsi3_i4, divsi3_i4): Make use of sfunc address
20346         reg appear first in the parallel.
20347
20348 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
20349
20350         * ipa-reference.c (set_reference_optimization_summary,
20351         ipa_reference_get_not_written_global): Do nothing if ipa-reference is
20352         disabled.
20353         (ignore_module_statics): New static var.
20354         (propagate_bits): If ipa-reference is disabled, do not look into local
20355         properties.
20356         (analyze_function): Disable analysis when ipa_reference is disabled.
20357         (generate_summary): Do not dump when reference is disabled;
20358         collect vars accessed from functions with ipa-reference disabled.
20359         (get_read_write_all_from_node): When ipa-reference is disabled, use the
20360         node flags.
20361         (gate): Enable for LTO.
20362         (ignore_edge_p): New function.
20363         (propagate): Skip functions w/o ipa-reference analysis.
20364         * optc-save-gen.awk: Handle optimize_debug correctly.
20365         * opth-gen.awk: Likewise.
20366         * common.opt (fauto-inc-dec, fdelete-dead-exceptions, ffunction-cse,
20367         fgraphite, fstrict-volatile-bitfields, fira-algorithm, fira-region,
20368         fira-share-save-slots, fira-share-spill-slots,
20369         fmodulo-sched-allow-regmoves, fpartial-inlining,
20370         sched-stalled-insns, fsched-stalled-insns-dep, fstrict-overflow,
20371         ftracer, ftree-parallelize-loops, fassociative-math,
20372         freciprocal-math, fvect-cost-model, fsimd-cost-model): Mark as
20373         Optimization
20374         (fauto-profile, fcommon, fdata-sections, fipa-icf-variables,
20375         ftoplevel-reorder, funit-at-a-time, fwhole-program): Do not mark as
20376         Optimization.
20377         * ipa-icf.c (gate, sem_item_optimizer::filter_removed_items):
20378         Fix for IPA.
20379
20380 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
20381
20382         PR ipa/64378
20383         * ipa-prop.c (try_make_edge_direct_virtual_call): Clear speculative
20384         flag correctly.
20385         * ipa-cp.c (ipa_get_indirect_edge_target_1): Handle speculation.
20386
20387 2015-01-18  Sandra Loosemore  <sandra@codesourcery.com>
20388
20389         * doc/invoke.texi ([-funroll-loops], [-funroll-all-loops]):
20390         Remove duplicate option listings.
20391
20392 2015-01-18  Felix Yang  <felix.yang@huawei.com>
20393
20394         * auto-profile.c (afdo_find_equiv_class): Remove unnecessary test.
20395         (autofdo_source_profile::get_callsite_total_count,
20396         function_instance::get_function_instance_by_decl,
20397         string_table::get_index, string_table::get_index_by_decl,
20398         afdo_vpt_for_early_inline, afdo_callsite_hot_enough_for_early_inline):
20399         Fix comment typos. Reformatting and minor code rearrangement.
20400
20401 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
20402
20403         * config/rs6000/rs6000.md (probe_stack): Delete.
20404         (probe_stack_address): New.
20405
20406 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
20407
20408         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use TARGET_32BIT
20409         to test for 32-bit ABIs, not !TARGET_POWERPC64.
20410
20411 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
20412
20413         * config/rs6000/rs6000.c (rs6000_parallel_return): New function.
20414         (rs6000_function_value): Use it.  Handle SCmode and TCmode as well,
20415         for TARGET_32BIT && TARGET_POWERPC64.  Fix another BITS_PER_WORD
20416         snafu.
20417         (rs6000_libcall_value): Use the new function.
20418
20419 2015-01-17  Sandra Loosemore  <sandra@codesourcery.com>
20420
20421         * doc/invoke.texi ([-ftracer]): Remove duplicate option listing.
20422
20423 2015-01-17  Eric Botcazou  <ebotcazou@adacore.com>
20424
20425         * reorg.c (fill_simple_delay_slots): If TARGET_FLAGS_REGNUM is valid,
20426         implement a more precise life analysis for it during backward scan.
20427
20428 2015-01-17  Jan Kratochvil  <jan.kratochvil@redhat.com>
20429
20430         * dwarf2out.c (gen_producer_string): Ignore also OPT_fpreprocessed.
20431
20432 2015-01-17  Bernd Schmidt  <bernds@codesourcery.com>
20433
20434         PR rtl-optimization/52773
20435         * calls.c (emit_library_call_value): When pushing arguments use
20436         stack_pointer_rtx rather than virtual_outgoing_args_rtx in
20437         CALL_INSN_FUNCTION_USAGE.  Only emit one of use of the magic
20438         stack pointer reference into CALL_INSN_FUNCTION_USAGE.
20439
20440 2015-01-17  Jeff Law  <law@redhat.com>
20441
20442         PR rtl-optimization/32790
20443         * reginfo.c (reg_scan_mark_refs): Look for ZERO_EXTRACT,
20444         not ZERO_EXTEND in SET_DESTs.
20445
20446 2015-01-17  Alan Modra  <amodra@gmail.com>
20447
20448         * cprop.c (do_local_cprop): Revert last change.
20449
20450 2015-01-16  DJ Delorie  <dj@redhat.com>
20451             Nick Clifton  <nickc@redhat.com>
20452
20453         * config/rl78/rl78-real.md (addqi3_real): Allow volatiles.
20454         (addhi3_real): Likewise.  Fix [HL+0] syntax.
20455         (subqi3_real): Likewise.
20456         (subhi3_real): Likewise.
20457         (cbranchqi4_real): Likewise.  Allow saddr,#imm.
20458         (cbranchhi4_real): Likewise.
20459         (cbranchhi4_real_inverted): Likewise.
20460         (cbranchsi4_real_lt): Likewise.
20461         (cbranchsi4_real_ge): Likewise.
20462         (cbranchsi4_real_ge): Likewise.
20463         * config/rl78/rl78-virt.md (add<mode>3_virt): Likewise.
20464         (sub<mode>3_virt): Likewise.
20465         (cbranchqi4_virt): Likewise.
20466         (cbranchhi4_virt): Likewise.
20467         * config/rl78/rl78.c (rl78_print_operand_1): 'p' modifier means
20468         always use '[reg+imm]' even when imm is zero.
20469         * config/rl78/predicates.md (rl78_volatile_memory_operand): New.
20470         (rl78_general_operand): New.
20471         (rl78_nonimmediate_operand): New.
20472         (rl78_nonfar_operand): Use them.
20473         (rl78_nonfar_nonimm_operand): Likewise.
20474         (rl78_stack_based_mem): Fix.
20475         * config/rl78/constraints.md (Ibqi): New.
20476         (IBqi): New.
20477         (Wsa): New.
20478         (Wsf): New.
20479         (Cs1): Fix.
20480         * config/rl78/rl78-expand.md (andqi3): Accept volatiles.
20481         (iorqi3): Likewise.
20482         (xorqi3): Likewise.
20483         * config/rl78/rl78-protos.h (rl78_sfr_p): New.
20484
20485         * config/rl78/constrains (Qs8): New constraint.
20486         * config/rl78/rl78.c (rl78_flags_already_set): New function.
20487         * config/rl78/rl78-protos.h (rl78_flags_already_set): New prototype.
20488         * config/rl78/rl78-real.md (update_Z): New attribute.
20489         Update patterns to set it.
20490         (cbranchqi4_real): Call rl78_flags_already_set() to determine if a
20491         shorter compare and branch sequence can be used.
20492         (cbranchhi4_real): Likewise.
20493         (cbranchhi4_real_inverted): Likewise.
20494
20495         * config/rl78/predicates.md (uword_operand): Allow symbol_refs.
20496         * config/rl78/rl78-c.c (rl78_register_pragmas): Register __near
20497         address space.
20498         * config/rl78/rl78.c (rl78_get_name_encoding): New.
20499         (rl78_option_override): Allow -mes0 only if C.
20500         (characterize_address): Support subregs of symbol_refs.
20501         (rl78_addr_space_address_mode): Move.  Add __near.
20502         (rl78_far_p): Likewise.
20503         (rl78_addr_space_pointer_mode): Likewise.
20504         (rl78_as_legitimate_address): Likewise.
20505         (rl78_addr_space_subset_p): Likewise.
20506         (rl78_addr_space_convert): Likewise.
20507         (rl78_print_operand_1): Support 16-bit addressing of 32-bit
20508         symbols with -mes0.
20509         (transcode_memory_rtx): Don't copy ES if -mes0.  Allow symbol[BC]
20510         addressing.
20511         (rl78_alloc_physical_registers_op1): Change logic to prefer
20512         symbol[BC] addressing.
20513         (frodata_section): New.
20514         (rl78_asm_init_sections): Initialize it.
20515         (rl78_select_section): Put __far readonly symbols in .frodata.
20516         (rl78_make_type_far): New.
20517         (rl78_insert_attributes): Force all readonly symbols to be
20518         __far when -mes0.
20519         (rl78_asm_out_integer): New.
20520         * config/rl78/rl78.h (ADDR_SPACE_NEAR): New.
20521         * config/rl78/rl78.opt (-mes0): New.
20522
20523         * config/rl78/rl78.h (ASM_OUTPUT_LABELREF): New.
20524         (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
20525         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
20526         * config/rl78/rl78-protos.h (rl78_output_labelref): New.
20527         (rl78_saddr_p): New.
20528         (rl78_output_aligned_common): New.
20529         * config/rl78/rl78.c (rl78_output_symbol_ref): Strip encodings.
20530         (rl78_handle_saddr_attribute): New.
20531         (rl78_handle_naked_attribute): New.
20532         (rl78_attribute_table): Add saddr.
20533         (rl78_print_operand_1): Don't print '!' on saddr operands.
20534         (rl78_print_operand_1): Strip encodings.
20535         (rl78_sfr_p): New.
20536         (rl78_strip_name_encoding): New.
20537         (rl78_attrlist_to_encoding): New.
20538         (rl78_encode_section_info): New.
20539         (rl78_asm_init_sections): New.
20540         (rl78_select_section): New.
20541         (rl78_output_labelref): New.
20542         (rl78_output_aligned_common): New.
20543         (rl78_asm_out_integer): New.
20544         (rl78_asm_ctor_dtor): New.
20545         (rl78_asm_constructor): New.
20546         (rl78_asm_destructor): New.
20547
20548         * config/rl78/rl78-real.md (movqi_es): Rename to movqi_to_es.
20549         * config/rl78/rl78.c (rl78_expand_epilogue): Update.
20550         (transcode_memory_rtx): Update.
20551         (rl78_expand_epilogue): Use A_REG instead of 0.
20552
20553 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
20554
20555         * config/arm/arm-protos.h (struct tune_params): New field
20556         sched_autopref_queue_depth.
20557         * config/arm/arm.c (sched-int.h): Include header.
20558         (arm_first_cycle_multipass_dfa_lookahead_guard,)
20559         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define hook.
20560         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,)
20561         (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,)
20562         (arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,)
20563         (arm_cortex_a53_tune, arm_cortex_a57_tune, arm_xgene1_tune,)
20564         (arm_cortex_a5_tune, arm_cortex_a9_tune, arm_cortex_a12_tune,)
20565         (arm_v7m_tune, arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune):
20566         Specify sched_autopref_queue_depth value.  Enabled for A15 and A57.
20567         * config/arm/t-arm (arm.o): Update.
20568         * haifa-sched.c (update_insn_after_change): Update.
20569         (rank_for_schedule): Use auto-prefetcher model, if requested.
20570         (autopref_multipass_init): New static function.
20571         (autopref_rank_for_schedule): New rank_for_schedule heuristic.
20572         (autopref_multipass_dfa_lookahead_guard_started_dump_p): New static
20573         variable for debug dumps.
20574         (autopref_multipass_dfa_lookahead_guard_1): New static helper function.
20575         (autopref_multipass_dfa_lookahead_guard): New global function that
20576         implements TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD hook.
20577         (init_h_i_d): Update.
20578         * params.def (PARAM_SCHED_AUTOPREF_QUEUE_DEPTH): New tuning knob.
20579         * sched-int.h (enum autopref_multipass_data_status): New const enum.
20580         (autopref_multipass_data_): Structure for auto-prefetcher data.
20581         (autopref_multipass_data_def, autopref_multipass_data_t): New typedefs.
20582         (struct _haifa_insn_data:autopref_multipass_data): New field.
20583         (INSN_AUTOPREF_MULTIPASS_DATA): New access macro.
20584         (autopref_multipass_dfa_lookahead_guard): Declare.
20585
20586 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
20587
20588         * rtlanal.c (get_base_term): Handle SCRATCH.
20589
20590 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
20591
20592         * config/aarch64/aarch64.c
20593         (aarch64_sched_first_cycle_multipass_dfa_lookahead): Implement hook.
20594         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
20595         * config/arm/arm.c
20596         (arm_first_cycle_multipass_dfa_lookahead): Implement hook.
20597         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
20598
20599 2015-01-17  Alan Modra  <amodra@gmail.com>
20600
20601         * cprop.c (do_local_cprop): Disallow replacement of fixed
20602         hard registers.
20603
20604 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20605
20606         PR target/62066
20607         * config/arm/arm-builtins.c (arm_expand_neon_args): Call va_end before
20608         early return 0.
20609
20610 2015-01-16  Bernd Edlinger  <bernd.edlinger@hotmail.de>
20611
20612         * sanitizer.def (BUILT_IN_TSAN_VPTR_UPDATE): Fixed parameters.
20613         * tsan.c (instrument_expr): Fixed parameters of __tsan_vptr_update.
20614
20615 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20616
20617         * config/arm/arm.md: Move comment about splitting Thumb1 patterns to...
20618         * config/arm/thumb1.md: ... Here.
20619
20620 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
20621
20622         * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Disallow
20623         TImode for TARGET_32BIT.
20624
20625 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
20626
20627         * config/rs6000/rs6000.c (TARGET_LIBGCC_CMP_RETURN_MODE,
20628         TARGET_LIBGCC_SHIFT_COUNT_MODE, TARGET_UNWIND_WORD_MODE): Implement
20629         as ...
20630         (rs6000_abi_word_mode): New function.
20631
20632 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
20633
20634         * config/rs6000/rs6000.c (rs6000_va_start): Use MIN_UNITS_PER_WORD
20635         instead of UNITS_PER_WORD to describe the size of stack slots.
20636
20637 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
20638
20639         * config/rs6000/rs6000.c (TARGET_PROMOTE_FUNCTION_MODE): Implement
20640         as rs6000_promote_function_mode.  Move comment to there.
20641         (rs6000_promote_function_mode): New function.
20642
20643 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
20644
20645         * config/rs6000/rs6000.h (PROMOTE_MODE): Correct test for when -m32
20646         -mpowerpc64 is active.
20647
20648 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
20649
20650         PR middle-end/64353
20651         * tree-cfg.c (pass_data_fixup_cfg): Update SSA for
20652         virtuals on start.
20653
20654 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
20655
20656         * config/arm/cortex-a57.md: Remove duplicate of file accidentally
20657         introduced in revision 219724.
20658
20659 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20660             Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
20661
20662         PR target/64263
20663         * config/aarch64/aarch64.md (*movsi_aarch64): Don't split if the
20664         destination is not a GP reg.
20665         (*movdi_aarch64): Likewise.
20666
20667 2015-01-16  David Edelsohn  <dje.gcc@gmail.com>
20668
20669         PR target/64623
20670         * config/rs6000/default64.h: Revert ISA change.
20671
20672 2015-01-16  Richard Biener  <rguenther@suse.de>
20673
20674         PR middle-end/64614
20675         * tree-ssa-uninit.c: Include tree-cfg.h.
20676         (MAX_SWITCH_CASES): New define.
20677         (convert_control_dep_chain_into_preds): Handle switch statements.
20678         (is_pred_expr_subset_of): Handle x == CST vs. (x & CST) != 0.
20679         (normalize_one_pred_1): Do not split bit-manipulations.
20680         Record (x & CST).
20681
20682 2015-01-16  Richard Biener  <rguenther@suse.de>
20683
20684         PR tree-optimization/64568
20685         * tree-ssa-forwprop.c (pass_forwprop::execute): Guard
20686         complex load rewriting for TARGET_MEM_REFs.
20687
20688 2015-01-16  Uros Bizjak  <ubizjak@gmail.com>
20689
20690         * builtins.c (expand_builtin_acc_on_device): Check target for NULL.
20691
20692 2015-01-16  Matthew Wahab  <matthew.wahab@arm.com>
20693
20694         PR target/64149
20695         * config/aarch64/aarch64.opt: Remove lra option and aarch64_lra_flag
20696         variable.
20697         * config/aarch64/aarch64.c (TARGET_LRA_P): Set to hook_bool_void_true.
20698         (aarch64_lra_p): Remove.
20699
20700 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
20701
20702         PR target/64363
20703         * ipa-chkp.h (chkp_instrumentable_p): New.
20704         * ipa-chkp.c: Include tree-inline.h.
20705         (chkp_instrumentable_p): New.
20706         (chkp_maybe_create_clone): Use chkp_instrumentable_p.
20707         Fix processing of not instrumentable functions.
20708         (chkp_versioning): Use chkp_instrumentable_p. Warn about
20709         not instrumentable functions.
20710         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Use
20711         chkp_instrumentable_p.
20712         * tree-inline.h (copy_forbidden): New.
20713         * tree-inline.c (copy_forbidden): Not static anymore.
20714
20715 2015-01-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20716
20717         * optc-save-gen.awk (cl_target_option_print_diff): Mark indent,
20718         ptr1, ptr2 unused.
20719
20720 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
20721
20722         * lra-constraints.c (curr_insn_transform): Change a reload pseudo of
20723         type OP_OUT to OP_INOUT.
20724
20725 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
20726
20727         * simplify-rtx.c (simplify_replace_fn_rtx): Simplify (lo_sum
20728         (high x) y) to y if x and y have the same base.
20729
20730 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
20731
20732         * config/arm/cortex-a57.md: New.
20733         * config/aarch64/aarch64.md: Include it.
20734         * config/aarch64/aarch64-cores.def (cortex-a57): Tune for it.
20735         * config/aarch64/aarch64-tune.md: Regenerate.
20736
20737 2015-01-16  Zhenqiang Chen  <zhenqiang.chen@arm.com>
20738
20739         PR target/64015
20740         * ccmp.c (expand_ccmp_next): New function.
20741         (expand_ccmp_expr_1, expand_ccmp_expr): Handle operand insn sequence
20742         and compare insn sequence.
20743         * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
20744         aarch64_gen_ccmp_first, aarch64_gen_ccmp_next): New functions.
20745         (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New MICRO.
20746         * config/aarch64/aarch64.md (*ccmp_and): Changed to ccmp_and<mode>.
20747         (*ccmp_ior): Changed to ccmp_ior<mode>.
20748         (cmp<mode>): New pattern.
20749         * doc/tm.texi (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Update
20750         parameters.
20751         * target.def (gen_ccmp_first, gen_ccmp_next): Update parameters.
20752
20753 2015-01-16  Ilya Tocar  <ilya.tocar@intel.com>
20754
20755         * config/i386/avx2intrin.h (_mm256_bslli_epi128,
20756         _mm256_bsrli_epi128): New.
20757         * config/i386/emmintrin.h (_mm_bsrli_si128, _mm_bslli_si128): Ditto.
20758
20759 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
20760
20761         * expmed.c (store_bit_field_using_insv): Improve warning message.
20762         Use %wu instead of HOST_WIDE_INT_PRINT_UNSIGNED.
20763
20764 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
20765
20766         PR rtl-optimization/64011
20767         * expmed.c (store_bit_field_using_insv): Warn and truncate bitsize when
20768         there is partial overflow.
20769
20770 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
20771
20772         * config/nds32/nds32-protos.h (nds32_expand_epilogue): Change
20773         prototype.
20774         (nds32_expand_epilogue_v3pop): Likewise.
20775         * config/nds32/nds32.md (sibcall): Define this for sibling call
20776         optimization.
20777         (sibcall_register): Likewise.
20778         (sibcall_immediate): Likewise.
20779         (sibcall_value): Likewise.
20780         (sibcall_value_register): Likewise.
20781         (sibcall_value_immediate): Likewise.
20782         (sibcall_epilogue): Likewise.
20783         (epilogue): Pass false to indicate this is not a sibcall epilogue.
20784         * config/nds32/nds32.c (nds32_expand_epilogue): Consider sibcall case.
20785         (nds32_expand_epilogue_v3pop): Likewise.
20786
20787 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
20788
20789         * config/nds32/nds32-protos.h (nds32_can_use_return_insn): New.
20790         * config/nds32/nds32.md (unspec_volatile_func_return): Remove.
20791         (return_internal): New.
20792         (return): Define this named pattern.
20793         (simple_return): Define this named pattern.
20794         * config/nds32/nds32.c (nds32_expand_epilogue): Emit return_internal
20795         pattern instead of unspec_volatile_func_return.
20796         (nds32_expand_epilogue_v3pop): Likewise.
20797         (nds32_can_use_return_insn): New function.
20798
20799 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
20800
20801         * config/nds32/constants.md (UNSPEC_VOLATILE_POP25_RETURN): New.
20802         * config/nds32/nds32.md (pop25return): New.
20803         * config/nds32/nds32.c (nds32_expand_epilogue_v3pop): Emit
20804         pop25return pattern.
20805
20806 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
20807
20808         * doc/invoke.texi (NDS32 Options): Remove -mforce-fp-as-gp,
20809         -mforbid-fp-as-gp, and -mex9 options.
20810
20811 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
20812
20813         * doc/invoke.texi (NDS32 Options): Add -mcmodel= option and
20814         remove -mgp-direct option.
20815
20816 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
20817
20818         * doc/invoke.texi (--param early-inlining-insns): Update default value.
20819         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 14.
20820
20821 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
20822
20823         * ipa-inline.c (inline_small_functions): Work around hints
20824         cache issue.
20825
20826 2015-01-15  Sandra Loosemore  <sandra@codesourcery.com>
20827
20828         PR target/59710
20829         * doc/invoke.texi (Option Summary): Document new Nios II
20830         -mgpopt= syntax.
20831         (Nios II Options): Likewise.
20832         * config/nios2/nios2.opt: Add -mgpopt= option support.
20833         Modify existing -mgpopt and -mno-gpopt options to be aliases.
20834         * config/nios2/nios2-opts.h (enum nios2_gpopt_type): New.
20835         * config/nios2/nios2.c (nios2_option_override): Adjust
20836         -mgpopt defaulting.
20837         (nios2_in_small_data_p): Return true for explicit small data
20838         sections even with -G0.
20839         (nios2_symbol_ref_in_small_data_p): Adjust to handle new -mgpopt=
20840         option choices.
20841
20842 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
20843
20844         PR ipa/64612
20845         * ipa-inline-transform.c (can_remove_node_now_p): Fix handling
20846         of comdat locals.
20847         (inline_call): Fix removal of aliases.
20848
20849 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
20850
20851         * flag-types.h (enum sanitize_code): Add SANITIZE_VPTR,
20852         include SANITIZE_VPTR in SANITIZE_UNDEFINED.
20853         * opts.c (common_handle_option): Add -fsanitize=vptr.
20854         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS,
20855         BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS_ABORT): New.
20856         * ubsan.h (enum ubsan_null_ckind): Add UBSAN_DOWNCAST_POINTER,
20857         UBSAN_DOWNCAST_REFERENCE, UBSAN_UPCAST and UBSAN_CAST_TO_VBASE.
20858         (ubsan_expand_vptr_ifn): New prototype.
20859         * internal-fn.c (expand_ANNOTATE, expand_GOMP_SIMD_LANE,
20860         expand_GOMP_SIMD_VF, expand_GOMP_SIMD_LAST_LANE, expand_UBSAN_NULL,
20861         expand_UBSAN_BOUNDS, expand_UBSAN_OBJECT_SIZE, expand_ASAN_CHECK,
20862         expand_LOOP_VECTORIZED): Make argument nameless, remove
20863         ATTRIBUTE_UNUSED.
20864         (expand_UBSAN_VPTR): New function.
20865         * internal-fn.def (UBSAN_NULL, ASAN_CHECK): Use R instead of W
20866         in fn spec.
20867         (UBSAN_VPTR): New internal function.
20868         * sanopt.c (tree_map_traits): Renamed to ...
20869         (sanopt_tree_map_traits): ... this.
20870         (sanopt_tree_triplet, sanopt_tree_triplet_map_traits): New classes.
20871         (sanopt_ctx): Adjust asan_check_map type for tree_map_traits
20872         to sanopt_tree_map_traits renaming.  Add vptr_check_map field.
20873         (maybe_optimize_ubsan_vptr_ifn): New function.
20874         (sanopt_optimize_walker): Handle IFN_UBSAN_VPTR.
20875         (pass_sanopt::execute): Likewise.  Call sanopt_optimize even for
20876         -fsanitize=vptr.
20877         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Handle certain
20878         internal calls like pure functions for aliasing, even when they
20879         have other side-effects that prevent making them ECF_PURE.
20880         * ubsan.c (ubsan_vptr_type_cache_decl): New variable.
20881         (ubsan_expand_vptr_ifn): New function.
20882
20883 2015-01-15  Vladimir Makarov  <vmakarov@redhat.com>
20884
20885         PR rtl-optimization/64110
20886         * stmt.c (parse_output_constraint): Process '^' and '$'.
20887         (parse_input_constraint): Ditto.
20888         * lra-constraints.c (process_alt_operands): Process the new
20889         constraints.
20890         * ira-costs.c (record_reg_classes): Process the new constraint
20891         '^'.
20892         * genoutput.c (indep_constraints): Add '^' and '$'.
20893         * config/i386/sse.md (*vec_dup<mode>): Use '$' instead of '!'.
20894         * doc/md.texi: Add description of the new constraints.
20895
20896 2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
20897             Bernd Schmidt  <bernds@codesourcery.com>
20898             Cesar Philippidis  <cesar@codesourcery.com>
20899             James Norris  <jnorris@codesourcery.com>
20900             Tom de Vries  <tom@codesourcery.com>
20901             Ilmir Usmanov  <i.usmanov@samsung.com>
20902             Dmitry Bocharnikov  <dmitry.b@samsung.com>
20903             Evgeny Gavrin  <e.gavrin@samsung.com>
20904             Jakub Jelinek  <jakub@redhat.com>
20905
20906         * builtin-types.def (BT_FN_VOID_INT_INT_VAR)
20907         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
20908         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
20909         New function types.
20910         * builtins.c: Include "gomp-constants.h".
20911         (expand_builtin_acc_on_device): New function.
20912         (expand_builtin, is_inexpensive_builtin): Handle
20913         BUILT_IN_ACC_ON_DEVICE.
20914         * builtins.def (DEF_GOACC_BUILTIN, DEF_GOACC_BUILTIN_COMPILER):
20915         New macros.
20916         * cgraph.c (cgraph_node::create): Consider flag_openacc next to
20917         flag_openmp.
20918         * config.gcc <nvptx-*> (tm_file): Add nvptx/offload.h.
20919         <*-intelmic-* | *-intelmicemul-*> (tm_file): Add
20920         i386/intelmic-offload.h.
20921         * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): For -fopenacc, link
20922         to libgomp and its dependencies.
20923         * config/arc/arc.h (LINK_COMMAND_SPEC): Likewise.
20924         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
20925         * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
20926         * config/ia64/hpux.h (LIB_SPEC): Likewise.
20927         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
20928         * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
20929         * doc/generic.texi: Update for OpenACC changes.
20930         * doc/gimple.texi: Likewise.
20931         * doc/invoke.texi: Likewise.
20932         * doc/sourcebuild.texi: Likewise.
20933         * gimple-pretty-print.c (dump_gimple_omp_for): Handle
20934         GF_OMP_FOR_KIND_OACC_LOOP.
20935         (dump_gimple_omp_target): Handle GF_OMP_TARGET_KIND_OACC_KERNELS,
20936         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_DATA,
20937         GF_OMP_TARGET_KIND_OACC_UPDATE,
20938         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
20939         Dump more data.
20940         * gimple.c: Update comments for OpenACC changes.
20941         * gimple.def: Likewise.
20942         * gimple.h: Likewise.
20943         (enum gf_mask): Add GF_OMP_FOR_KIND_OACC_LOOP,
20944         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
20945         GF_OMP_TARGET_KIND_OACC_DATA, GF_OMP_TARGET_KIND_OACC_UPDATE,
20946         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
20947         (gimple_omp_for_cond, gimple_omp_for_set_cond): Sort in the
20948         appropriate place.
20949         (is_gimple_omp_oacc, is_gimple_omp_offloaded): New functions.
20950         * gimplify.c: Include "gomp-constants.h".
20951         Update comments for OpenACC changes.
20952         (is_gimple_stmt): Handle OACC_PARALLEL, OACC_KERNELS, OACC_DATA,
20953         OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE, OACC_ENTER_DATA,
20954         OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
20955         (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
20956         OMP_CLAUSE__CACHE_, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
20957         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
20958         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER,
20959         OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
20960         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
20961         OMP_CLAUSE_SEQ.
20962         (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Use
20963         GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
20964         OMP_CLAUSE_SET_MAP_KIND.
20965         (gimplify_oacc_cache): New function.
20966         (gimplify_omp_for): Handle OACC_LOOP.
20967         (gimplify_omp_workshare): Handle OACC_KERNELS, OACC_PARALLEL,
20968         OACC_DATA.
20969         (gimplify_omp_target_update): Handle OACC_ENTER_DATA,
20970         OACC_EXIT_DATA, OACC_UPDATE.
20971         (gimplify_expr): Handle OACC_LOOP, OACC_CACHE, OACC_HOST_DATA,
20972         OACC_DECLARE, OACC_KERNELS, OACC_PARALLEL, OACC_DATA,
20973         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE.
20974         (gimplify_body): Consider flag_openacc next to flag_openmp.
20975         * lto-streamer-out.c: Include "gomp-constants.h".
20976         * omp-builtins.def (BUILT_IN_ACC_GET_DEVICE_TYPE)
20977         (BUILT_IN_GOACC_DATA_START, BUILT_IN_GOACC_DATA_END)
20978         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL)
20979         (BUILT_IN_GOACC_UPDATE, BUILT_IN_GOACC_WAIT)
20980         (BUILT_IN_GOACC_GET_THREAD_NUM, BUILT_IN_GOACC_GET_NUM_THREADS)
20981         (BUILT_IN_ACC_ON_DEVICE): New builtins.
20982         * omp-low.c: Include "gomp-constants.h".
20983         Update comments for OpenACC changes.
20984         (struct omp_context): Add reduction_map, gwv_below, gwv_this
20985         members.
20986         (extract_omp_for_data, use_pointer_for_field, install_var_field)
20987         (new_omp_context, delete_omp_context, scan_sharing_clauses)
20988         (create_omp_child_function, scan_omp_for, scan_omp_target)
20989         (check_omp_nesting_restrictions, lower_reduction_clauses)
20990         (build_omp_regions_1, diagnose_sb_0, make_gimple_omp_edges):
20991         Update for OpenACC changes.
20992         (scan_sharing_clauses): Handle OMP_CLAUSE_NUM_GANGS:
20993         OMP_CLAUSE_NUM_WORKERS: OMP_CLAUSE_VECTOR_LENGTH,
20994         OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT, OMP_CLAUSE_GANG,
20995         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
20996         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_INDEPENDENT,
20997         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ.  Use GOMP_MAP_* instead of
20998         OMP_CLAUSE_MAP_*.
20999         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
21000         Handle GF_OMP_FOR_KIND_OACC_LOOP.
21001         (expand_omp_target, lower_omp_target): Handle
21002         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
21003         GF_OMP_TARGET_KIND_OACC_UPDATE,
21004         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA,
21005         GF_OMP_TARGET_KIND_OACC_DATA.
21006         (pass_expand_omp::execute, execute_lower_omp)
21007         (pass_diagnose_omp_blocks::gate): Consider flag_openacc next to
21008         flag_openmp.
21009         (offload_symbol_decl): New variable.
21010         (oacc_get_reduction_array_id, oacc_max_threads)
21011         (get_offload_symbol_decl, get_base_type, lookup_oacc_reduction)
21012         (maybe_lookup_oacc_reduction, enclosing_target_ctx)
21013         (oacc_loop_or_target_p, oacc_lower_reduction_var_helper)
21014         (oacc_gimple_assign, oacc_initialize_reduction_data)
21015         (oacc_finalize_reduction_data, oacc_process_reduction_data): New
21016         functions.
21017         (is_targetreg_ctx): Remove function.
21018         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CACHE_,
21019         OMP_CLAUSE_DEVICE_RESIDENT, OMP_CLAUSE_USE_DEVICE,
21020         OMP_CLAUSE_GANG, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
21021         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT,
21022         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_NUM_GANGS,
21023         OMP_CLAUSE_NUM_WORKERS, OMP_CLAUSE_VECTOR_LENGTH.
21024         * tree.c (omp_clause_code_name, walk_tree_1): Update accordingly.
21025         * tree.h (OMP_CLAUSE_GANG_EXPR, OMP_CLAUSE_GANG_STATIC_EXPR)
21026         (OMP_CLAUSE_ASYNC_EXPR, OMP_CLAUSE_WAIT_EXPR)
21027         (OMP_CLAUSE_VECTOR_EXPR, OMP_CLAUSE_WORKER_EXPR)
21028         (OMP_CLAUSE_NUM_GANGS_EXPR, OMP_CLAUSE_NUM_WORKERS_EXPR)
21029         (OMP_CLAUSE_VECTOR_LENGTH_EXPR): New macros.
21030         * tree-core.h: Update comments for OpenACC changes.
21031         (enum omp_clause_map_kind): Remove.
21032         (struct tree_omp_clause): Change type of map_kind member from enum
21033         omp_clause_map_kind to unsigned char.
21034         * tree-inline.c: Update comments for OpenACC changes.
21035         * tree-nested.c: Likewise.  Include "gomp-constants.h".
21036         (convert_nonlocal_reference_stmt, convert_local_reference_stmt)
21037         (convert_tramp_reference_stmt, convert_gimple_call): Update for
21038         OpenACC changes.  Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
21039         OMP_CLAUSE_SET_MAP_KIND.
21040         * tree-pretty-print.c: Include "gomp-constants.h".
21041         (dump_omp_clause): Handle OMP_CLAUSE_DEVICE_RESIDENT,
21042         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_GANG,
21043         OMP_CLAUSE_ASYNC, OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ,
21044         OMP_CLAUSE_WAIT, OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR,
21045         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
21046         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_INDEPENDENT.  Use GOMP_MAP_*
21047         instead of OMP_CLAUSE_MAP_*.
21048         (dump_generic_node): Handle OACC_PARALLEL, OACC_KERNELS,
21049         OACC_DATA, OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE,
21050         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
21051         * tree-streamer-in.c: Include "gomp-constants.h".
21052         (unpack_ts_omp_clause_value_fields) Use GOMP_MAP_* instead of
21053         OMP_CLAUSE_MAP_*.  Use OMP_CLAUSE_SET_MAP_KIND.
21054         * tree-streamer-out.c: Include "gomp-constants.h".
21055         (pack_ts_omp_clause_value_fields): Use GOMP_MAP_* instead of
21056         OMP_CLAUSE_MAP_*.
21057         * tree.def (OACC_PARALLEL, OACC_KERNELS, OACC_DATA)
21058         (OACC_HOST_DATA, OACC_LOOP, OACC_CACHE, OACC_DECLARE)
21059         (OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE): New tree codes.
21060         * tree.c (omp_clause_num_ops): Update accordingly.
21061         * tree.h (OMP_BODY, OMP_CLAUSES, OMP_LOOP_CHECK, OMP_CLAUSE_SIZE):
21062         Likewise.
21063         (OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES, OACC_KERNELS_BODY)
21064         (OACC_KERNELS_CLAUSES, OACC_DATA_BODY, OACC_DATA_CLAUSES)
21065         (OACC_HOST_DATA_BODY, OACC_HOST_DATA_CLAUSES, OACC_CACHE_CLAUSES)
21066         (OACC_DECLARE_CLAUSES, OACC_ENTER_DATA_CLAUSES)
21067         (OACC_EXIT_DATA_CLAUSES, OACC_UPDATE_CLAUSES)
21068         (OACC_KERNELS_COMBINED, OACC_PARALLEL_COMBINED): New macros.
21069         * tree.h (OMP_CLAUSE_MAP_KIND): Cast it to enum gomp_map_kind.
21070         (OMP_CLAUSE_SET_MAP_KIND): New macro.
21071         * varpool.c (varpool_node::get_create): Consider flag_openacc next
21072         to flag_openmp.
21073         * config/i386/intelmic-offload.h: New file.
21074         * config/nvptx/offload.h: Likewise.
21075
21076 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
21077
21078         * explow.h: Remove duplicate contents.
21079         * dojump.h: Likewise.
21080
21081 2015-01-15  Richard Earnshaw  <rearnsha@arm.com>
21082
21083         * arm.c (arm_xgene_tune): Add default initializer for instruction
21084         fusion.
21085
21086 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
21087
21088         PR ipa/64068
21089         PR ipa/64559
21090         * ipa.c (symbol_table::remove_unreachable_nodes):
21091         Do not put abstract origins into boundary.
21092
21093 2015-01-15  Evgeny Stupachenko  <evstupac@gmail.com>
21094
21095         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Remove EBX register usage.
21096         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Ditto.
21097
21098 2015-01-15  Steve Ellcey  <sellcey@mips.com>
21099
21100         * Makefile.in (PLUGIN_HEADERS): Add dominance.h, cfg.h, cfgrtl.h,
21101         cfganal.h, cfgbuild.h, cfgcleanup.h, lcm.h, cfgloopmanip.h,
21102         builtins.def, and chkp-builtins.def.
21103
21104 2015-01-15  David Edelsohn  <dje.gcc@gmail.com>
21105
21106         * config/rs6000/default64.h (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use
21107         ISA 2.7 (POWER8).
21108
21109 2015-01-15  Richard Biener  <rguenther@suse.de>
21110
21111         PR tree-optimization/61743
21112         * tree-ssa-pre.c (insert_into_preds_of_block): Preserve range
21113         information on PHIs for some simple cases.
21114
21115 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
21116
21117         * config/arm/arm.md (generic_sched): Specify xgene1 in 'no' list.
21118         Include xgene1.md.
21119         * config/arm/arm.c (arm_issue_rate): Specify 4 for xgene1.
21120         * config/arm/arm-cores.def (xgene1): New entry.
21121         * config/arm/arm-tables.opt: Regenerate.
21122         * config/arm/arm-tune.md: Regenerate.
21123         * config/arm/bpabi.h (BE8_LINK_SPEC): Specify mcpu=xgene1.
21124
21125 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
21126
21127         * tree-if-conv.c: Include hash-map.h.
21128         (aggressive_if_conv): New variable.
21129         (fold_build_cond_expr): Add simplification of non-zero condition.
21130         (add_to_dst_predicate_list): Invoke add_to_predicate_list if edge
21131         destination block is not always executed.
21132         (if_convertible_phi_p): Fix commentary, allow phi nodes have more
21133         than two predecessors if AGGRESSIVE_IF_CONV is true.
21134         (if_convertible_stmt_p): Fix commentary.
21135         (all_preds_critical_p): New function.
21136         (has_pred_critical_p): New function.
21137         (if_convertible_bb_p): Fix commentary, if AGGRESSIVE_IF_CONV is true
21138         BB can have more than two predecessors and all incoming edges can be
21139         critical.
21140         (predicate_bbs): Skip predication for loop exit block, use build2_loc
21141         to compute predicate for true edge.
21142         (find_phi_replacement_condition): Delete this function.
21143         (is_cond_scalar_reduction): Add arguments ARG_0, ARG_1 and EXTENDED.
21144         Allow interchange PHI arguments if EXTENDED is false.
21145         Change check that block containing reduction statement candidate
21146         is predecessor of phi-block since phi may have more than two arguments.
21147         (phi_args_hash_traits): New helper structure.
21148         (struct phi_args_hash_traits): New type.
21149         (phi_args_hash_traits::hash): New function.
21150         (phi_args_hash_traits::equal_keys): New function.
21151         (gen_phi_arg_condition): New function.
21152         (predicate_scalar_phi): Add handling of phi nodes with more than two
21153         arguments, delete COND and TRUE_BB arguments, insert body of
21154         find_phi_replacement_condition to predicate ordinary phi nodes.
21155         (predicate_all_scalar_phis): Skip blocks with the only predecessor,
21156         delete call of find_phi_replacement_condition and invoke
21157         predicate_scalar_phi with two arguments.
21158         (insert_gimplified_predicates): Add assert that non-predicated block
21159         don't have statements to insert.
21160         (ifcvt_split_critical_edges): New function.
21161         (ifcvt_split_def_stmt): Likewise.
21162         (ifcvt_walk_pattern_tree): Likewise.
21163         (stmt_is_root_of_bool_pattern): Likewise.
21164         (ifcvt_repair_bool_pattern): Likewise.
21165         (ifcvt_local_dce): Likewise.
21166         (tree_if_conversion): Add initialization of AGGRESSIVE_IF_CONV which
21167         is copy of inner or outer loop force_vectorize field, invoke
21168         ifcvt_split_critical_edges, ifcvt_local_dce and
21169         ifcvt_repair_bool_pattern for aggressive if-conversion.
21170
21171 2015-01-15  Philipp Tomsich  <ptomsich@theobroma-systems.com>
21172
21173         * config/aarch64/aarch64.md: Include xgene1.md.
21174         * config/aarch64/xgene1.md: New file.
21175
21176 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
21177
21178         * config/aarch64/aarch64-cores.def (xgene1): Update/add the
21179         xgene1 (APM XGene-1) core definition.
21180         * gcc/config/aarch64/aarch64.c: Add cost tables for APM XGene-1
21181         * config/arm/aarch-cost-tables.h: Add cost tables for APM XGene-1
21182         * doc/invoke.texi: Document -mcpu=xgene1.
21183
21184 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
21185
21186         * dojump.h: New header file.
21187         * explow.h: Likewise.
21188         * expr.h: Remove includes.
21189         Move expmed.c prototypes to expmed.h.
21190         Move dojump.c prototypes to dojump.h.
21191         Move alias.c prototypes to alias.h.
21192         Move explow.c prototypes to explow.h.
21193         Move calls.c prototypes to calls.h.
21194         Move emit-rtl.c prototypes to emit-rtl.h.
21195         Move varasm.c prototypes to varasm.h.
21196         Move stmt.c prototypes to stmt.h.
21197         (saved_pending_stack_adjust): Move to dojump.h.
21198         (adjust_address): Move to explow.h.
21199         (adjust_address_nv): Move to emit-rtl.h.
21200         (adjust_bitfield_address): Likewise.
21201         (adjust_bitfield_address_size): Likewise.
21202         (adjust_bitfield_address_nv): Likewise.
21203         (adjust_automodify_address_nv): Likewise.
21204         * explow.c (expr_size): Move to expr.c.
21205         (int_expr_size): Likewise.
21206         (tree_expr_size): Likewise.
21207         Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21208         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
21209         * genemit.c (main): Generate includes statistics.h, real.h,
21210         fixed-value.h, insn-config.h, expmed.h, dojump.h, explow.h, emit-rtl.h,
21211         stmt.h.
21212         * genopinit.c (main): Generate includes hashtab.h, hard-reg-set.h,
21213         function.h, statistics.h, real.h, fixed-value.h, expmed.h, dojump.h,
21214         explow.h, emit-rtl.h, stmt.h.
21215         * genoutput.c (main): Generate includes hashtab.h, statistics.h, real.h,
21216         fixed-value.h, expmed.h, dojump.h, explow.h, emit-rtl.h, stmt.h.
21217         * genemit.c (open_base_files): Generate includes flags.h, statistics.h,
21218         real.h, fixed-value.h, tree.h, expmed.h, dojump.h, explow.h, calls.h,
21219         emit-rtl.h, varasm.h, stmt.h.
21220         * config/tilepro/gen-mul-tables.cc: Generate includes hashtab.h,
21221         hash-set.h, vec.h, machmode.h, tm.h, hard-reg-set.h, input.h,
21222         function.h, rtl.h, flags.h, statistics.h, double-int.h, real.h,
21223         fixed-value.h, alias.h, wide-int.h, inchash.h, tree.h, insn-config.h,
21224         expmed.h, dojump.h, explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
21225         * config/tilegx/mul-tables.c: Include alias.h calls.h dojump.h
21226         double-int.h emit-rtl.h explow.h expmed.h fixed-value.h flags.h
21227         function.h hard-reg-set.h hash-set.h hashtab.h inchash.h input.h
21228         insn-config.h machmode.h real.h rtl.h statistics.h stmt.h symtab.h
21229         tm.h tree.h varasm.h vec.h wide-int.h.
21230         * rtlhooks.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
21231         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
21232         hash-set.h hashtab.h inchash.h input.h insn-config.h machmode.h
21233         real.h statistics.h stmt.h tree.h varasm.h vec.h wide-int.h.
21234         * cfgloopanal.c: Include alias.h calls.h dojump.h double-int.h
21235         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h
21236         insn-config.h real.h statistics.h stmt.h tree.h varasm.h wide-int.h.
21237         * loop-iv.c: Likewise.
21238         * lra-assigns.c: Include alias.h calls.h dojump.h double-int.h
21239         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h real.h
21240         statistics.h stmt.h tree.h varasm.h wide-int.h.
21241         * lra-constraints.c: Likewise.
21242         * lra-eliminations.c: Likewise.
21243         * lra-lives.c: Likewise.
21244         * lra-remat.c: Likewise.
21245         * bt-load.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
21246         explow.h expmed.h fixed-value.h inchash.h insn-config.h real.h
21247         statistics.h stmt.h tree.h varasm.h wide-int.h.
21248         * hw-doloop.c: Likewise.
21249         * ira-color.c: Likewise.
21250         * ira-emit.c: Likewise.
21251         * loop-doloop.c: Likewise.
21252         * loop-invariant.c: Likewise.
21253         * reload.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
21254         explow.h expmed.h fixed-value.h inchash.h real.h rtl.h
21255         statistics.h stmt.h tree.h varasm.h wide-int.h.
21256         * caller-save.c: Include alias.h calls.h dojump.h double-int.h
21257         emit-rtl.h explow.h expmed.h fixed-value.h inchash.h real.h
21258         statistics.h stmt.h tree.h varasm.h wide-int.h.
21259         * combine-stack-adj.c: Likewise.
21260         * cse.c: Likewise.
21261         * ddg.c: Likewise.
21262         * ifcvt.c: Likewise.
21263         * ira-costs.c: Likewise.
21264         * jump.c: Likewise.
21265         * lra-coalesce.c: Likewise.
21266         * lra-spills.c: Likewise.
21267         * profile.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
21268         explow.h expmed.h fixed-value.h insn-config.h real.h statistics.h
21269         stmt.h varasm.h wide-int.h.
21270         * lra.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
21271         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
21272         varasm.h.
21273         * config/sh/sh_treg_combine.cc: Include alias.h calls.h dojump.h
21274         double-int.h explow.h expmed.h fixed-value.h flags.h real.h
21275         statistics.h stmt.h varasm.h wide-int.h.
21276         * reorg.c: Include alias.h calls.h dojump.h double-int.h explow.h
21277         expmed.h fixed-value.h inchash.h real.h statistics.h stmt.h tree.h
21278         varasm.h wide-int.h.
21279         * reload1.c: Include alias.h calls.h dojump.h double-int.h explow.h
21280         expmed.h fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
21281         * config/tilegx/tilegx.c: Include alias.h dojump.h double-int.h
21282         emit-rtl.h explow.h expmed.h fixed-value.h flags.h real.h
21283         statistics.h stmt.h.
21284         * config/tilepro/tilepro.c: Likewise.
21285         * config/mmix/mmix.c: Include alias.h dojump.h double-int.h emit-rtl.h
21286         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h.
21287         * config/pdp11/pdp11.c: Likewise.
21288         * config/xtensa/xtensa.c: Likewise.
21289         * config/lm32/lm32.c: Include alias.h dojump.h double-int.h emit-rtl.h
21290         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
21291         varasm.h.
21292         * tree-chkp.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21293         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
21294         insn-config.h real.h rtl.h statistics.h stmt.h tm.h.
21295         * cilk-common.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21296         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
21297         insn-config.h real.h rtl.h statistics.h stmt.h tm.h varasm.h.
21298         * rtl-chkp.c: Likewise.
21299         * tree-chkp-opt.c: Likewise.
21300         * config/arm/arm-builtins.c: Include calls.h dojump.h emit-rtl.h
21301         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
21302         hashtab.h insn-config.h real.h statistics.h stmt.h varasm.h.
21303         * ipa-icf.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21304         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
21305         statistics.h stmt.h.
21306         * tree-vect-data-refs.c: Likewise.
21307         * graphite-sese-to-poly.c: Include calls.h dojump.h emit-rtl.h explow.h
21308         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
21309         rtl.h statistics.h stmt.h varasm.h.
21310         * internal-fn.c: Likewise.
21311         * ipa-icf-gimple.c: Likewise.
21312         * lto-section-out.c: Likewise.
21313         * tree-data-ref.c: Likewise.
21314         * tree-nested.c: Likewise.
21315         * tree-outof-ssa.c: Likewise.
21316         * tree-predcom.c: Likewise.
21317         * tree-pretty-print.c: Likewise.
21318         * tree-scalar-evolution.c: Likewise.
21319         * tree-ssa-strlen.c: Likewise.
21320         * tree-vect-loop.c: Likewise.
21321         * tree-vect-patterns.c: Likewise.
21322         * tree-vect-slp.c: Likewise.
21323         * tree-vect-stmts.c: Likewise.
21324         * tsan.c: Likewise.
21325         * targhooks.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21326         fixed-value.h flags.h hashtab.h insn-config.h real.h statistics.h
21327         stmt.h.
21328         * config/sh/sh-mem.cc: Include calls.h dojump.h emit-rtl.h explow.h
21329         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
21330         statistics.h stmt.h varasm.h.
21331         * loop-unroll.c: Likewise.
21332         * ubsan.c: Likewise.
21333         * tree-ssa-loop-prefetch.c: Include calls.h dojump.h emit-rtl.h explow.h
21334         expmed.h fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h
21335         stmt.h varasm.h.
21336         * dse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21337         fixed-value.h function.h hashtab.h statistics.h stmt.h varasm.h.
21338         * tree-switch-conversion.c: Include calls.h dojump.h emit-rtl.h explow.h
21339         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
21340         statistics.h stmt.h.
21341         * generic-match-head.c: Include calls.h dojump.h emit-rtl.h explow.h
21342         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
21343         statistics.h stmt.h varasm.h.
21344         * gimple-match-head.c: Likewise.
21345         * lto-cgraph.c: Likewise.
21346         * lto-section-in.c: Likewise.
21347         * lto-streamer-in.c: Likewise.
21348         * lto-streamer-out.c: Likewise.
21349         * tree-affine.c: Likewise.
21350         * tree-cfg.c: Likewise.
21351         * tree-cfgcleanup.c: Likewise.
21352         * tree-if-conv.c: Likewise.
21353         * tree-into-ssa.c: Likewise.
21354         * tree-ssa-alias.c: Likewise.
21355         * tree-ssa-copyrename.c: Likewise.
21356         * tree-ssa-dse.c: Likewise.
21357         * tree-ssa-forwprop.c: Likewise.
21358         * tree-ssa-live.c: Likewise.
21359         * tree-ssa-math-opts.c: Likewise.
21360         * tree-ssa-pre.c: Likewise.
21361         * tree-ssa-sccvn.c: Likewise.
21362         * tree-tailcall.c: Likewise.
21363         * tree-vect-generic.c: Likewise.
21364         * tree-sra.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21365         fixed-value.h hashtab.h insn-config.h real.h rtl.h stmt.h varasm.h.
21366         * stor-layout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21367         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h.
21368         * varasm.c: Likewise.
21369         * coverage.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21370         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h
21371         varasm.h.
21372         * init-regs.c: Likewise.
21373         * ira.c: Likewise.
21374         * omp-low.c: Likewise.
21375         * stack-ptr-mod.c: Likewise.
21376         * tree-ssa-reassoc.c: Likewise.
21377         * tree-complex.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21378         fixed-value.h hashtab.h insn-config.h rtl.h statistics.h stmt.h
21379         varasm.h.
21380         * dwarf2cfi.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21381         fixed-value.h hashtab.h insn-config.h statistics.h stmt.h varasm.h.
21382         * shrink-wrap.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21383         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h.
21384         * recog.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21385         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h varasm.h.
21386         * tree-ssa-phiopt.c: Likewise.
21387         * config/darwin.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21388         fixed-value.h hashtab.h real.h statistics.h stmt.h.
21389         * config/fr30/fr30.c: Likewise.
21390         * config/frv/frv.c: Likewise.
21391         * expr.c: Likewise.
21392         * final.c: Likewise.
21393         * optabs.c: Likewise.
21394         * passes.c: Likewise.
21395         * simplify-rtx.c: Likewise.
21396         * stmt.c: Likewise.
21397         * toplev.c: Likewise.
21398         * var-tracking.c: Likewise.
21399         * gcse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21400         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
21401         * lower-subreg.c: Likewise.
21402         * postreload-gcse.c: Likewise.
21403         * ree.c: Likewise.
21404         * reginfo.c: Likewise.
21405         * store-motion.c: Likewise.
21406         * combine.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21407         fixed-value.h hashtab.h real.h stmt.h varasm.h.
21408         * emit-rtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21409         fixed-value.h hashtab.h statistics.h stmt.h.
21410         * dojump.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21411         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
21412         * except.c: Likewise.
21413         * explow.c: Likewise.
21414         * tree-dfa.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21415         fixed-value.h insn-config.h real.h rtl.h statistics.h stmt.h
21416         varasm.h.
21417         * gimple-fold.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21418         fixed-value.h insn-config.h real.h rtl.h statistics.h varasm.h.
21419         * tree-ssa-structalias.c: Likewise.
21420         * cfgexpand.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21421         fixed-value.h insn-config.h real.h statistics.h.
21422         * calls.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21423         fixed-value.h insn-config.h real.h statistics.h stmt.h.
21424         * bb-reorder.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21425         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
21426         * cfgbuild.c: Likewise.
21427         * function.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21428         fixed-value.h real.h rtl.h statistics.h stmt.h.
21429         * cfgrtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21430         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
21431         * dbxout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21432         fixed-value.h real.h statistics.h stmt.h.
21433         * auto-inc-dec.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21434         fixed-value.h real.h statistics.h stmt.h varasm.h.
21435         * cprop.c: Likewise.
21436         * modulo-sched.c: Likewise.
21437         * postreload.c: Likewise.
21438         * ccmp.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
21439         flags.h function.h hard-reg-set.h hashtab.h insn-config.h real.h
21440         statistics.h stmt.h varasm.h.
21441         * gimple-ssa-strength-reduction.c: Include calls.h dojump.h emit-rtl.h
21442         explow.h fixed-value.h flags.h hashtab.h insn-config.h real.h
21443         rtl.h statistics.h stmt.h varasm.h.
21444         * tree-ssa-loop-ivopts.c: Include calls.h dojump.h emit-rtl.h explow.h
21445         fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h stmt.h
21446         varasm.h.
21447         * expmed.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
21448         function.h hard-reg-set.h hashtab.h real.h statistics.h stmt.h
21449         varasm.h.
21450         * target-globals.c: Include calls.h dojump.h emit-rtl.h explow.h
21451         fixed-value.h function.h hashtab.h real.h statistics.h stmt.h
21452         varasm.h.
21453         * tree-ssa-address.c: Include calls.h dojump.h emit-rtl.h explow.h
21454         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
21455         * cfgcleanup.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
21456         function.h real.h statistics.h stmt.h varasm.h.
21457         * alias.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
21458         insn-config.h real.h statistics.h stmt.h.
21459         * dwarf2out.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
21460         statistics.h stmt.h.
21461         * config/nvptx/nvptx.c: Include dojump.h emit-rtl.h explow.h expmed.h
21462         fixed-value.h flags.h hard-reg-set.h insn-config.h real.h
21463         statistics.h stmt.h varasm.h.
21464         * gimplify.c: Include dojump.h emit-rtl.h explow.h expmed.h
21465         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h statistics.h.
21466         * asan.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
21467         flags.h hashtab.h insn-config.h real.h rtl.h statistics.h stmt.h.
21468         * ipa-devirt.c: Include dojump.h emit-rtl.h explow.h expmed.h
21469         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
21470         statistics.h stmt.h varasm.h.
21471         * ipa-polymorphic-call.c: Likewise.
21472         * config/aarch64/aarch64.c: Include dojump.h emit-rtl.h explow.h
21473         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
21474         statistics.h stmt.h.
21475         * config/c6x/c6x.c: Likewise.
21476         * config/aarch64/aarch64-builtins.c: Include dojump.h emit-rtl.h
21477         explow.h expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
21478         statistics.h stmt.h varasm.h.
21479         * ipa-prop.c: Include dojump.h emit-rtl.h explow.h expmed.h
21480         fixed-value.h hashtab.h insn-config.h real.h rtl.h statistics.h
21481         stmt.h varasm.h.
21482         * ipa-split.c: Likewise.
21483         * tree-eh.c: Likewise.
21484         * tree-ssa-dce.c: Likewise.
21485         * tree-ssa-loop-niter.c: Likewise.
21486         * tree-vrp.c: Likewise.
21487         * config/nds32/nds32-cost.c: Include dojump.h emit-rtl.h explow.h
21488         expmed.h fixed-value.h hashtab.h insn-config.h real.h statistics.h
21489         stmt.h.
21490         * config/nds32/nds32-fp-as-gp.c: Likewise.
21491         * config/nds32/nds32-intrinsic.c: Likewise.
21492         * config/nds32/nds32-isr.c: Likewise.
21493         * config/nds32/nds32-md-auxiliary.c: Likewise.
21494         * config/nds32/nds32-memory-manipulation.c: Likewise.
21495         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
21496         * config/nds32/nds32-predicates.c: Likewise.
21497         * config/nds32/nds32.c: Likewise.
21498         * config/cris/cris.c: Include dojump.h emit-rtl.h explow.h expmed.h
21499         fixed-value.h hashtab.h real.h statistics.h.
21500         * config/alpha/alpha.c: Include dojump.h emit-rtl.h explow.h expmed.h
21501         fixed-value.h hashtab.h real.h statistics.h stmt.h.
21502         * config/arm/arm.c: Likewise.
21503         * config/avr/avr.c: Likewise.
21504         * config/bfin/bfin.c: Likewise.
21505         * config/h8300/h8300.c: Likewise.
21506         * config/i386/i386.c: Likewise.
21507         * config/ia64/ia64.c: Likewise.
21508         * config/iq2000/iq2000.c: Likewise.
21509         * config/m32c/m32c.c: Likewise.
21510         * config/m32r/m32r.c: Likewise.
21511         * config/m68k/m68k.c: Likewise.
21512         * config/mcore/mcore.c: Likewise.
21513         * config/mep/mep.c: Likewise.
21514         * config/mips/mips.c: Likewise.
21515         * config/mn10300/mn10300.c: Likewise.
21516         * config/moxie/moxie.c: Likewise.
21517         * config/pa/pa.c: Likewise.
21518         * config/rl78/rl78.c: Likewise.
21519         * config/rx/rx.c: Likewise.
21520         * config/s390/s390.c: Likewise.
21521         * config/sh/sh.c: Likewise.
21522         * config/sparc/sparc.c: Likewise.
21523         * config/spu/spu.c: Likewise.
21524         * config/stormy16/stormy16.c: Likewise.
21525         * config/v850/v850.c: Likewise.
21526         * config/vax/vax.c: Likewise.
21527         * config/cr16/cr16.c: Include dojump.h emit-rtl.h explow.h expmed.h
21528         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
21529         * config/msp430/msp430.c: Likewise.
21530         * predict.c: Likewise.
21531         * value-prof.c: Likewise.
21532         * config/epiphany/epiphany.c: Include dojump.h emit-rtl.h explow.h
21533         expmed.h fixed-value.h hashtab.h statistics.h stmt.h.
21534         * config/microblaze/microblaze.c: Likewise.
21535         * config/nios2/nios2.c: Likewise.
21536         * config/rs6000/rs6000.c: Likewise.
21537         * tree.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
21538         insn-config.h real.h rtl.h statistics.h stmt.h.
21539         * cgraph.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
21540         insn-config.h real.h statistics.h stmt.h.
21541         * fold-const.c: Include dojump.h emit-rtl.h explow.h expmed.h
21542         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
21543         * tree-inline.c: Include dojump.h emit-rtl.h explow.h expmed.h
21544         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
21545         * builtins.c: Include dojump.h emit-rtl.h explow.h expmed.h
21546         fixed-value.h real.h statistics.h stmt.h.
21547         * config/arc/arc.c: Include dojump.h emit-rtl.h explow.h expmed.h
21548         fixed-value.h statistics.h stmt.h.
21549         * config/visium/visium.c: Include dojump.h emit-rtl.h explow.h expmed.h
21550         stmt.h.
21551
21552 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
21553
21554         * gengtype.c (create_user_defined_type): Workaround
21555         -Wmaybe-uninitialized false positives.
21556         * cse.c (fold_rtx): Likewise.
21557         * loop-invariant.c (gain_for_invariant): Likewise.
21558
21559 2015-01-15  Eric Botcazou  <ebotcazou@adacore.com>
21560
21561         * expr.c (expand_expr_real_1) <normal_inner_ref>: Use the expression to
21562         set the memory attributes in all cases but clear MEM_EXPR if need be.
21563
21564 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
21565
21566         PR tree-optimization/64434
21567         * cfgexpand.c (reorder_operands): New function.
21568         (expand_gimple_basic_block): Insert call of reorder_operands if
21569         optimized is true.
21570
21571 2015-01-15  Matthew Fortune  <matthew.fortune@imgtec.com>
21572
21573         * config/mips/micromips.md (*swp): Remove explicit parallel.
21574         (jraddiusp, *movep<MOVEP1:mode><MOVEP2:mode>): Likewise.
21575         * config/mips/mips-dsp.md (add<DSPV:mode>3): Likewise.
21576         (mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>, sub<DSPV:mode>3): Likewise.
21577         (mips_sub<DSP:dspfmt1>_s_<DSP:dspfmt2>, mips_addsc): Likewise.
21578         (mips_addwc, mips_absq_s_<DSPQ:dspfmt2>): Likewise.
21579         (mips_precrq_rs_ph_w, mips_precrqu_s_qb_ph): Likewise.
21580         (mips_shll_<DSPV:dspfmt2>, mips_shll_s_<DSPQ:dspfmt2>): Likewise.
21581         (mips_muleu_s_ph_qbl, mips_muleu_s_ph_qbr): Likewise.
21582         (mips_mulq_rs_ph, mips_muleq_s_w_phl, mips_muleq_s_w_phr): Likewise.
21583         (mips_dpaq_s_w_ph, mips_dpsq_s_w_ph, mips_mulsaq_s_w_ph): Likewise.
21584         (mips_dpaq_sa_l_w, mips_dpsq_sa_l_w, mips_maq_s_w_phl): Likewise.
21585         (mips_maq_s_w_phr, mips_maq_sa_w_phl, mips_maq_sa_w_phr): Likewise.
21586         (mips_extr_w, mips_extr_r_w, mips_extr_rs_w): Likewise.
21587         (mips_extr_s_h, mips_extp, mips_extpdp, mips_mthlip): Likewise.
21588         (mips_wrdsp): Likewise.
21589         * config/mips/mips-dspr2.md (mips_absq_s_qb): Remove explicit
21590         parallel.
21591         (mips_addu_ph, mips_addu_s_ph, mips_cmpgdu_eq_qb): Likewise.
21592         (mips_cmpgdu_lt_qb, mips_cmpgdu_le_qb, mulv2hi3): Likewise.
21593         (mips_mul_s_ph, mips_mulq_rs_w, mips_mulq_s_ph): Likewise.
21594         (mips_mulq_s_w, mips_subu_ph, mips_subu_s_ph): Likewise.
21595         (mips_dpaqx_s_w_ph, mips_dpaqx_sa_w_ph): Likewise.
21596         (mips_dpsqx_s_w_ph, mips_dpsqx_sa_w_ph): Likewise.
21597         * config/mips/mips-fixed.md (usadd<mode>3): Remove explicit parallel.
21598         (ssadd<mode>3, ussub<mode>3, sssub<mode>3, ssmul<mode>3): Likewise.
21599         (ssmaddsqdq4, ssmsubsqdq4): Likewise.
21600
21601 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
21602
21603         * config/mips/mips.c (mips_rtx_costs): Set costs for LSA/DLSA.
21604         (mips_print_operand): Support 'y' to print exact log2 in decimal
21605         of a const_int.
21606         * config/mips/mips.h (ISA_HAS_LSA): New define.
21607         (ISA_HAS_DLSA): Likewise.
21608         * config/mips/mips.md (<GPR:d>lsa): New define_insn.
21609         * config/mips/predicates.md (const_immlsa_operand): New predicate.
21610
21611 2015-01-15  Martin Liska  <mliska@suse.cz>
21612
21613         PR target/64377
21614         * optc-save-gen.awk: Add support for array types.
21615
21616 2015-01-15  Richard Biener  <rguenther@suse.de>
21617
21618         PR middle-end/64365
21619         * tree-data-ref.c (dr_analyze_indices): Make sure that accesses
21620         for MEM_REF access functions with the same base can never partially
21621         overlap.
21622
21623 2015-01-14  Marcos Diaz <marcos.diaz@tallertechnologies.com>
21624
21625         * common.opt: New option -fstack-protector-explicit.
21626         * cfgexpand.c (SPCT_FLAG_EXPLICIT): New enum.
21627         (stack_protect_decl_phase): Handle stack_protect attribute for
21628         explicit stack protection requests.
21629         (expand_used_vars): Similarly.
21630         * doc/cpp.texi (__SSP_EXPLICIT__): Document predefined macro.
21631         * doc/extend.texi: Add documentation for "stack_protect" attribute.
21632         * doc/invoke.texi: Add documentation for -fstack-protector-explicit.
21633
21634 2015-01-14  Oleg Endo  <olegendo@gcc.gnu.org>
21635
21636         PR target/53988
21637         * config/sh/sh-protos.h (sh_find_set_of_reg): Add option to ignore
21638         reg-reg copies.
21639         (sh_extending_set_of_reg): New struct.
21640         (sh_find_extending_set_of_reg, sh_split_tst_subregs,
21641         sh_remove_reg_dead_or_unused_notes): New Declarations.
21642         * config/sh/sh.c (sh_remove_reg_dead_or_unused_notes,
21643         sh_find_extending_set_of_reg, sh_split_tst_subregs,
21644         sh_extending_set_of_reg::use_as_extended_reg): New functions.
21645         * config/sh/sh.md (*tst<mode>_t_zero): Rename to *tst<mode>_t_subregs,
21646         convert to insn_and_split and use new function sh_split_tst_subregs.
21647
21648 2015-01-14  Sandra Loosemore  <sandra@codesourcery.com>
21649
21650         * doc/invoke.texi (Option Summary): Reclassify -fuse-ld as a linker
21651         option.
21652         (Optimization Options): Move -fuse-ld documentation to...
21653         (Link Options): ...here.
21654
21655 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
21656
21657         * config/mips/constraints.md (ZC): Add support for R6 LL/SC
21658         offsets.
21659         (ZD): Update to use ISA_HAS_9BIT_DISPLACEMENT.
21660         * config/mips/mips.h (ISA_HAS_PREFETCH_9BIT): Rename to...
21661         (ISA_HAS_9BIT_DISPLACEMENT): ... this. New macro.
21662         * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZC
21663         instead of ZR for the memory operand of LL/SC.
21664         (compare_and_swap_12, sync_add<mode>): Likewise.
21665         (sync_<optab>_12, sync_old_<optab>_12): Likewise.
21666         (sync_new_<optab>_12, sync_nand_12): Likewise.
21667         (sync_old_nand_12, sync_new_nand_12): Likewise.
21668         (sync_sub<mode>, sync_old_add<mode>): Likewise.
21669         (sync_old_sub<mode>, sync_new_add<mode>): Likewise.
21670         (sync_new_sub<mode>, sync_<optab><mode>): Likewise.
21671         (sync_old_<optab><mode>, sync_new_<optab><mode>"): Likewise.
21672         (sync_nand<mode>, sync_old_nand<mode>): Likewise.
21673         (sync_new_nand<mode>, sync_lock_test_and_set<mode>): Likewise.
21674         (test_and_set_12, atomic_compare_and_swap<mode>): Likewise.
21675         (atomic_exchange<mode>_llsc, atomic_fetch_add<mode>_llsc): Likewise.
21676         * doc/md.texi (ZC): Update description.
21677
21678 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
21679
21680         * builtins.c (expand_builtin_atomic_exchange): Remove error when
21681         memory model is CONSUME.
21682         (expand_builtin_atomic_compare_exchange, expand_builtin_atomic_load,
21683         expand_builtin_atomic_store): Change invalid memory model errors to
21684         warnings.
21685         (expand_builtin_atomic_clear): Change invalid model errors to warnings
21686         and issue warning for CONSUME.
21687
21688 2015-01-14  Aldy Hernandez  <aldyh@redhat.com>
21689
21690         * lto-cgraph: Update function comments for
21691         lto_symtab_encoder_encode_*.
21692
21693 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
21694
21695         * Makefile.in (site.exp): Do not set ENABLE_LTO.
21696
21697 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
21698
21699         * cgraphunit.c (ipa_passes): Remove argument from ipa_write_summaries.
21700         * lto-cgraph.c (select_what_to_stream): Remove argument, use
21701         lto_stream_offload_p instead.
21702         * lto-streamer.h (select_what_to_stream): Remove argument.
21703         * passes.c (ipa_write_summaries): Likewise.
21704         * tree-pass.h (ipa_write_summaries): Likewise.
21705
21706 2015-01-14  Richard Biener  <rguenther@suse.de>
21707
21708         PR tree-optimization/59354
21709         * tree-vect-slp.c (vect_build_slp_tree_1): Treat loads from
21710         groups larger than the slp group size as having gaps.
21711
21712 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
21713
21714         PR middle-end/59448
21715         * builtins.c (get_memmodel): Promote consume to acquire always.
21716
21717 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
21718
21719         PR target/64386
21720         * config/i386/i386.c (ix86_expand_sse_cmp): Handle V64QImode,
21721         V32HImode.
21722
21723 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
21724
21725         PR target/64393
21726         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET):
21727         Enable AVX512BW.
21728         (OPTION_MASK_ISA_AVX512BW_UNSET): Disable AVX512VBMI.
21729         * config/i386/i386.c (ix86_hard_regno_mode_ok): Don't check
21730         AVX512VBMI, as it implies AVX512BW.
21731
21732 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
21733
21734         PR target/64387
21735         * config/i386/sse.md (vec_unpacks_hi_v8sf): Fix predicate.
21736         (vec_unpacks_hi_v16sf): Ditto.
21737
21738 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21739
21740         * config/aarch64/arm_neon.h: Error out if AdvancedSIMD
21741         is not available.
21742
21743 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21744
21745         * doc/invoke.texi (mapcs): Mention deprecation.
21746         (mapcs-frame): Likewise.
21747
21748 2015-01-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
21749
21750         PR target/64453
21751         * config/arm/arm.c (callee_saved_reg_p): Define.
21752         (arm_compute_save_reg0_reg12_mask): Use callee_saved_reg_p to check if
21753         register is callee saved instead of !call_used_regs[reg].
21754         (thumb1_compute_save_reg_mask): Likewise.
21755
21756 2015-01-14  Hale Wang  <hale.wang@arm.com>
21757
21758         * config/arm/arm.c: Tune the max_cond_insns/branch_cost for
21759         Cortex-M7.
21760
21761 2015-01-14  Richard Biener  <rguenther@suse.de>
21762
21763         PR lto/64415
21764         * tree-inline.c (insert_debug_decl_map): Check destination
21765         function MAY_HAVE_DEBUG_STMTS.
21766         (insert_init_debug_bind): Likewise.
21767         (insert_init_stmt): Remove redundant check.
21768         (remap_gimple_stmt): Drop debug stmts if the destination
21769         function has var-tracking assignments disabled.
21770
21771 2015-01-14  Martin Liska  <mliska@suse.cz>
21772
21773         * ipa-icf-gimple.c (func_checker::compare_operand): Add support for
21774         IMAGPART_EXPR and REALPART_EXPR and fix BIT_FIELD_REF comparison.
21775
21776 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21777
21778         PR target/64460
21779         * config/arm/arm.md (*<arith_shift_insn>_multsi): Set 'shift' to 2.
21780         (*<arith_shift_insn>_shiftsi): Set 'shift' attr to 3.
21781
21782 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
21783
21784         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Only infer an ISA
21785         level from an ARCH; do not inject the default.
21786         (MIPS_DEFAULT_ISA_LEVEL_SPEC): New macro split out from
21787         MIPS_ISA_LEVEL_SPEC.
21788         (MIPS_ISA_NAN2008_SPEC): Update comment.
21789         (BASE_DRIVER_SELF_SPECS): Likewise.
21790         * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Add
21791         MIPS_DEFAULT_ISA_LEVEL_SPEC.
21792         * config/mips/mti-elf.h (DRIVER_SELF_SPECS): Likewise.
21793         * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Likewise.
21794         * config/mips/sde.h (DRIVER_SELF_SPECS): Likewise.
21795
21796 2015-01-14  Richard Biener  <rguenther@suse.de>
21797
21798         PR tree-optimization/64493
21799         PR tree-optimization/64495
21800         * tree-vect-loop.c (vect_finalize_reduction): For double-reductions
21801         assign the proper vectorized PHI to the inner loop exit PHIs.
21802
21803 2015-01-14  Joey Ye  <joey.ye@arm.com>
21804
21805         * config/arm/arm.c (arm_compute_save_reg_mask):
21806         Do not save lr in case of tail call.
21807         * config/arm/thumb2.md (*thumb2_pop_single): New pattern.
21808
21809 2015-01-14  Martin Uecker <uecker@eecs.berkeley.edu>
21810
21811         * tree-vrp.c (check_array_ref): Emit more warnings
21812         for warn_array_bounds >= 2.
21813         * common.opt: New option -Warray-bounds=.
21814         * doc/invoke.texi: Document -Warray-bounds=.
21815
21816 2015-01-14  Chung-Ju Wu  <jasonwucj@gmail.com>
21817
21818         * config/nds32/nds32.opt (mforce-fp-as-gp): Remove.
21819         (mforbid-fp-as-gp): Remove.
21820         (mex9): Remove.
21821         * config/nds32/nds32-fp-as-gp.c (nds32_have_prologue_p): Remove.
21822         (nds32_symbol_load_store_p): Remove.
21823         (nds32_fp_as_gp_check_available): Clean up implementation.
21824         * config/nds32/nds32.h (LINK_SPEC): Remove -mforce-as-gp and -mex9
21825         cases.
21826         * config/nds32/nds32.c (nds32_asm_file_start): No need to consider
21827         fp-as-gp and ex9 cases.
21828
21829 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
21830
21831         * tree-profile.c (init_ic_make_global_vars): Drop workaround
21832         for bintuils bug 14342.
21833         (init_ic_make_global_vars): Likewise.
21834         (gimple_init_edge_profiler): Likewise.
21835         (gimple_gen_ic_func_profiler): Likewise.
21836
21837 2015-01-13  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
21838
21839         * ipa-inline.c (inline_small_functions): Swap the operands in
21840         enum.
21841
21842 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
21843
21844         PR ipa/64481
21845         * ipa-inline-analysis.c (node_growth_cache): Remove.
21846         (initialize_growth_caches): Do not initialize it.
21847         (free_growth_caches): Do not free it.
21848         (do_estimate_growth): Rename to ...
21849         (estimate_growth): ... this one; drop growth cache code.
21850         (growth_likely_positive): Always go the heuristics way.
21851         * ipa-inline.c (can_inline_edge_p): Walk through aliases.
21852         (reset_edge_caches): Do not reset node growth.
21853         (heap_edge_removal_hook): Do not maintain cache.
21854         (inline_small_functions): Likewise; strenghten sanity check.
21855         (ipa_inline): Do not maintain caches.
21856         * ipa-inline.h (node_growth_cache): Remove.
21857         (do_estimate_growth): Remove to ...
21858         (estimate_growth): this one; remove inline version.
21859         (reset_node_growth_cache): Remove.
21860
21861 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
21862
21863         PR ipa/64565
21864         * ipa-inline.c (inline_small_functions): Update callee keys after
21865         resolving speculation
21866         (inline_small_functions): Always check monotonicity of the queue.
21867
21868 2015-01-13  Marek Polacek  <polacek@redhat.com>
21869
21870         PR middle-end/64391
21871         * trans-mem.c (get_attrs_for): Return NULL_TREE if X is NULL_TREE.
21872
21873 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
21874
21875         PR rtl-optimization/64286
21876         * ree.c (combine_reaching_defs): Move part of comment earlier,
21877         remove !SCALAR_INT_MODE_P check.
21878         (add_removable_extension): Don't add vector mode
21879         extensions if all uses of the source register aren't the same
21880         vector extensions.
21881
21882 2015-01-13  Renlin Li  <renlin.li@arm.com>
21883
21884         * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO): Return 2.
21885         (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
21886
21887 2015-01-13  Martin Liska  <mliska@suse.cz>
21888
21889         * ipa-icf.c (sem_function::equals_private): Call new functions
21890         cl_target_option_print_diff and cl_optimization_print_diff.
21891         * optc-save-gen.awk (cl_target_option_print_diff): New function.
21892         (cl_optimization_print_diff): Likewise.
21893         * opth-gen.awk: Likewise.
21894
21895 2015-01-13  Richard Sandiford  <richard.sandiford@arm.com>
21896
21897         * config/aarch64/aarch64.md (subsi3, *subsi3_uxtw, subdi3)
21898         (*sub_<optab><ALLX:mode>_<GPI:mode>, *sub_<optab><SHORT:mode>_si_uxtw)
21899         (*sub_<optab><ALLX:mode>_shft_<GPI:mode>)
21900         (*sub_<optab><SHORT:mode>_shft_si_uxtw, *sub_<optab><mode>_multp2)
21901         (*sub_<optab>si_multp2_uxtw, *sub_uxt<mode>_multp2)
21902         (*sub_uxtsi_multp2_uxtw): Add stack pointer sources.
21903
21904 2015-01-13  Andrew Pinski  <apinski@cavium.com>
21905
21906         * config/aarch64/aarch64.c (fusion_load_store): Check dest mode
21907         instead of src mode.
21908
21909 2015-01-13  Richard Biener  <rguenther@suse.de>
21910
21911         PR lto/64373
21912         * lto-streamer-out.c (tree_is_indexable): Guard for NULL
21913         DECL_CONTEXT.
21914
21915 2015-01-13  Andrew Pinski  <apinski@cavium.com>
21916
21917         * config/aarch64/aarch64.c (aarch64_operands_ok_for_ldpstp): Reject
21918         volatile mems.
21919         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
21920
21921 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
21922
21923         PR middle-end/63974
21924         * cfgexpand.c (expand_computed_goto): Don't call
21925         convert_memory_address here.
21926
21927 2015-01-13  Richard Biener  <rguenther@suse.de>
21928
21929         PR tree-optimization/64406
21930         * tree-loop-distibution.c (pass_loop_distribution::execute):
21931         Reset the SCEV hashtable if we distributed anything.
21932
21933 2015-01-13  Richard Biener  <rguenther@suse.de>
21934
21935         PR tree-optimization/64404
21936         * tree-vect-stmts.c (vectorizable_load): Reject conflicting
21937         SLP types for CSEd loads.
21938
21939 2015-01-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
21940
21941         PR tree-optimization/64436
21942         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Move code performing the
21943         merge of two symbolic numbers for a bitwise OR to ...
21944         (perform_symbolic_merge): This. Also fix computation of the range and
21945         end of the symbolic number corresponding to the result of a bitwise OR.
21946
21947 2015-01-13  Richard Biener  <rguenther@suse.de>
21948
21949         PR tree-optimization/64568
21950         * tree-ssa-forwprop.c (pass_forwprop::execute): Properly
21951         release defs of removed stmts, avoid splitting TARGET_MEM_REFs.
21952
21953 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
21954
21955         * config/nds32/nds32.c (nds32_legitimate_address_p): Consider
21956         TARGET_CMODEL_LARGE and TARGET_CMODEL_MEDIUM cases.
21957
21958 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
21959
21960         * config/nds32/nds32.h (NDS32_SYMBOL_FLAG_RODATA): Define our own
21961         target-specific symbol_ref flag.
21962         (NDS32_SYMBOL_REF_RODATA_P): Define it to check if the symbol_ref
21963         resides in rodata section.
21964         * config/nds32/nds32.c (TARGET_ENCODE_SECTION_INFO): Define.
21965         (nds32_encode_section_info): New function.
21966
21967 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
21968
21969         * config/nds32/nds32.md (call): Use pseudo instruction bal which
21970         clobbers TA_REGNUM if large code model is specified.
21971         (call_register): Likewise.
21972         (call_immediate): Likewise.
21973         (call_value): Likewise.
21974         (call_value_register): Likewise.
21975         (call_value_immediate): Likewise.
21976
21977 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
21978
21979         * config/nds32/nds32.h (TARGET_CMODEL_SMALL): New macro.
21980         (TARGET_CMODEL_MEDIUM): New macro.
21981         (TARGET_CMODEL_LARGE): New macro.
21982         * config/nds32/nds32.c (nds32_asm_file_start): Display corresponding
21983         code model setting in assembly code.
21984
21985 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
21986
21987         * common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS):
21988         Remove MASK_GP_DIRECT flag.
21989         * config/nds32/nds32.h (MULTILIB_DEFAULTS): Have -mcmodel=medium as
21990         one of the multilib default options.
21991         * config/nds32/nds32.opt (mgp-direct): Remove.
21992         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Use -mcmodel instead of
21993         -mgp-direct.  We also remove unnecessary -mlittle-endian/-mbig-endian.
21994
21995 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
21996
21997         * config/nds32/nds32.opt (mcmodel): Add new option.
21998         * config/nds32/nds32-opts.h (nds32_cmodel_type): Add new enum type
21999         to describe code model.
22000
22001 2015-01-13  Oleg Endo  <olegendo@gcc.gnu.org>
22002
22003         PR target/64479
22004         * rtlanal.c (set_reg_p): Handle SEQUENCE constructs.
22005
22006 2015-01-12  Kaz Kojima  <kkojima@gcc.gnu.org>
22007
22008         * config/sh/sh.c (sh_atomic_assign_expand_fenv): New function.
22009         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
22010         (sh_builtin_get_fpscr, sh_builtin_set_fpscr): New variables.
22011         (sh_init_builtins): Record decls for __builtin_sh_get_fpscr and
22012         __builtin_sh_set_fpscr.
22013
22014 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
22015
22016         * doc/invoke.texi ([-Wsuggest-attribute=]): Don't use parentheses
22017         after a funtion name just to indicate it is a function.
22018         ([-fsanitize-undefined-trap-on-error]): Likewise.
22019         ([-fdbg-cnt=]): Likewise.
22020         ([-mmemcpy]): Likewise.
22021         ([-mflush-func]): Likewise.
22022         ([-msynci]): Likewise.
22023
22024 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
22025
22026         * doc/invoke.texi ([-Wbad-function-cast]): Rewrite to avoid confusing
22027         example.
22028
22029 2015-01-12  Jakub Jelinek  <jakub@redhat.com>
22030
22031         PR tree-optimization/64563
22032         * tree-vrp.c (vrp_evaluate_conditional): Check for VR_RANGE
22033         instead of != VR_VARYING.
22034
22035         PR target/64513
22036         * config/i386/i386.c (ix86_expand_prologue): Add
22037         REG_FRAME_RELATED_EXPR to %rax and %r10 pushes.
22038
22039         PR tree-optimization/64454
22040         * tree-vrp.c (simplify_div_or_mod_using_ranges): Optimize
22041         op0 % op1 into op0 if op0 is in range [-op1 + 1, op1 - 1]
22042         for signed or [0, op1 - 1] for unsigned modulo.
22043         (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
22044         even if op1 does not satisfy integer_pow2p.
22045
22046         PR other/64370
22047         * sreal.c (sreal::to_double): Use ldexp instead of scalbnl.
22048
22049 2015-01-12  Jeff Law  <law@redhat.com>
22050
22051         PR target/64461
22052         * config/m68k/m68k.md (truncsiqi2): Disable for TARGET_COLDFIRE.
22053         (trunchiqi2, truncsihi2): Similarly.
22054
22055         * config/h8300/h8300.c (Fpa): Use RTX_FRAME_RELATED_P directly
22056         rather than calling F.
22057
22058 2015-01-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>
22059
22060         * tsan.c (instrument_expr): Use force_gimple_operand.
22061         Use may_be_nonaddressable_p instead of is_gimple_addressable.
22062
22063 2015-01-12  Richard Biener  <rguenther@suse.de>
22064
22065         PR tree-optimization/64530
22066         * tree-loop-distribution.c (pg_add_dependence_edges): Shuffle
22067         back dr1.
22068
22069 2015-01-12  Richard Biener  <rguenther@suse.de>
22070
22071         PR middle-end/64357
22072         * tree-cfg.c (gimple_can_merge_blocks_p): Protect simple
22073         latches properly.
22074
22075 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22076
22077         * config/arm/arm.c (arm_cortex_a12_tune): Update entries to match
22078         Cortex-A17 tuning parameters.
22079         * config/arm/arm-cores.def (cortex-a12): Schedule for cortex-a17.
22080
22081 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22082
22083         * config/arm/arm-protos.h (tune_params): Add fuseable_ops field.
22084         * config/arm/arm.c (arm_macro_fusion_p): New function.
22085         (arm_macro_fusion_pair_p): Likewise.
22086         (TARGET_SCHED_MACRO_FUSION_P): Define.
22087         (TARGET_SCHED_MACRO_FUSION_PAIR_P): Likewise.
22088         (ARM_FUSE_NOTHING): Likewise.
22089         (ARM_FUSE_MOVW_MOVT): Likewise.
22090         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,
22091         arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,
22092         arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,
22093         arm_cortex_a53_tune, arm_cortex_a57_tune, arm_cortex_a9_tune,
22094         arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune
22095         arm_cortex_a5_tune): Specify fuseable_ops value.
22096
22097 2015-01-12  H.J. Lu  <hongjiu.lu@intel.com>
22098
22099         PR bootstrap/64561
22100         * configure.ac (HAVE_LD_PIE_COPYRELOC): Update Linux/x86-64 linker
22101         test for PIE with copy reloc.
22102         * configure: Regenerated.
22103
22104 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22105
22106         * config/arm/arm.c (arm_load_tp): Use R0_REGNUM instead of constant 0
22107         in gen_rtx_REG.
22108         (arm_tls_descseq_addr): Likewise.
22109         (arm_gen_movmemqi): Likewise.
22110         (arm_expand_epilogue_apcs_frame): Likewise.
22111         (arm_expand_epilogue): Likewise.
22112         (arm_expand_prologue): Likewise.  Use R1_REGNUM instead of constant 1
22113         in gen_rtx_REG.
22114
22115 2015-01-12  Martin Liska  <mliska@suse.cz>
22116
22117         PR ipa/64550
22118         * ipa-icf-gimple.c (func_checker::compare_memory_operand): Compare
22119         volatility for correct operands.
22120
22121 2015-01-12  Martin Liska  <mliska@suse.cz>
22122
22123         * ipa-icf.c (sem_function::equals_wpa): Add indirect_calls as
22124         indication that a function is not leaf.
22125         (sem_function::compare_polymorphic_p): Likewise.
22126
22127 2015-01-12  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
22128
22129         * config/visium/visium.c: Add includes hashtab.h, hash-set.h,
22130         machmode.h, input.h, statistics.h, vec.h, double-int.h, real.h,
22131         fixed-value.h, alias.h, symtab.h, tree-core.h, wide-int.h, inchash.h,
22132         fold-const.h, tree-check.h.
22133
22134 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
22135
22136         PR ipa/63967
22137         PR ipa/64425
22138         * ipa-inline.c (compute_uninlined_call_time,
22139         compute_inlined_call_time): Use counts for extra precision when
22140         needed possible.
22141         (big_speedup_p): Fix formating.
22142         (RELATIVE_TIME_BENEFIT_RANGE): Remove.
22143         (relative_time_benefit): Remove.
22144         (edge_badness): Turn DECL_DISREGARD_INLINE_LIMITS into hint;
22145         merge guessed and read profile paths.
22146         (inline_small_functions): Count only !optimize_size functions into
22147         initial size; be more lax about sanity check when profile is used;
22148         be sure to update inlined function profile when profile is read.
22149
22150 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
22151
22152         PR ipa/63470
22153         * ipa-inline-analysis.c (inline_edge_duplication_hook): Adjust
22154         cost when edge becomes direct.
22155         * ipa-prop.c (make_edge_direct): Do not adjust when speculation
22156         is resolved or when introducing new speculation.
22157
22158 2015-01-12  Chen Gang  <gang.chen.5i5j@gmail.com>
22159
22160         PR ipa/64551
22161         PR ipa/64552
22162         * ipa-icf.c (sem_function::equals_private): Use '&&' instead of
22163         '||' to fix typo issue.
22164
22165         * gcc/tree.h (target_opts_for_fn): Check NULL_TREE since it can
22166         accept and return NULL.
22167
22168 2015-01-12  Martin Liska  <mliska@suse.cz>
22169
22170         * cgraph.c (cgraph_edge::remove_callee): Move function to header
22171         file for being inlined.
22172         (cgraph_set_edge_callee): Delete.
22173         (cgraph_edge::redirect_callee): Move function to header file
22174         for being inlined.
22175         (cgraph_edge::make_direct): Use new function.
22176         (cgraph_edge::dump_edge_flags): New function created from
22177         static dump_edge_flags function.
22178         (cgraph_node::dump): Use new function.
22179         (cgraph_edge::verify_count_and_frequency): New function created
22180         from verify_edge_count_and_frequency.
22181         (cgraph_edge::verify_corresponds_to_fndecl): New function created
22182         from verify_edge_corresponds_to_fndecl.
22183         (verify_edge_corresponds_to_fndecl): Delete.
22184         (cgraph_node::verify_node): Use new function.
22185         * cgraph.h (cgraph_edge::set_callee): New function.
22186         (cgraph_edge::dump_edge_flags): Likewise.
22187         (cgraph_edge::verify_corresponds_to_fndecl): Likewise.
22188
22189 2015-01-11  Jan Hubicka  <hubicka@ucw.cz>
22190
22191         * ipa-utils.c (estimate_function_body_sizes): Do not
22192         free node params when called late with early=true.
22193
22194 2015-01-11  James Greenhalgh  <james.greenhalgh@arm.com>
22195
22196         * doc/md.texi (Instruction Patterns): Rewrite text for
22197         clarity.
22198         (Example): Likewise.
22199
22200 2015-01-10  Sandra Loosemore  <sandra@codesourcery.com>
22201
22202         * doc/invoke.texi (Option Summary): Break long lines.
22203         [(-fdiagnostics-color)]: Put long literal in @smallexample
22204         instead of inline.
22205         [(-fsanitize-recover)]: Likewise.
22206         [(-fdump-rtl-split*)]: Rewrite to fix over-full hbox.
22207         [(-ffast-math)]: Likewise.
22208         [(--param max-inline-insns-recursive)]: Likewise.
22209         [(--param max-inline-recursive-depth)]: Likewise.
22210         [(-mno-text-section-literals)]: Likewise.
22211
22212 2015-01-10  Thomas Schwinge  <thomas@codesourcery.com>
22213
22214         * doc/install.texi: Update for libgomp being renamed from "GNU
22215         OpenMP Runtime Library" to "GNU Offloading and Multi Processing
22216         Runtime Library".
22217         * doc/sourcebuild.texi: Likewise.
22218
22219 2015-01-10  Anthony Green  <green@moxielogic.com>
22220
22221         * config/moxie/moxie.c (moxie_option_override): Fix forcing of
22222         mul.x availability for moxiebox configuration.
22223
22224 2015-01-09  Anthony Green  <green@moxielogic.com>
22225
22226         * config/moxie/moxie.md: Tabify assembly output.
22227
22228 2015-01-09  Anthony Green  <green@moxielogic.com>
22229
22230         * config/moxie/moxie.md (CC_REG): Correct register definition.
22231
22232 2015-01-09  Sandra Loosemore  <sandra@codesourcery.com>
22233
22234         * doc/invoke.texi ([-fvtable-verify]): Copy-edit and fix markup.
22235         ([-fvtv-debug], [-fvtv-counts]): Likewise.  Correct location
22236         of log files.
22237
22238 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
22239
22240         * config/arm/arm.h (MAX_SYNC_LIBFUNC_SIZE): Delete semicolon.
22241
22242 2015-01-09  Bernd Schmidt  <bernds@codesourcery.com>
22243             Jakub Jelinek  <jakub@redhat.com>
22244
22245         PR middle-end/64412
22246         * lto-streamer.h (lto_stream_offload_p): New declaration.
22247         * lto-streamer.c (lto_stream_offload_p): New variable.
22248         * cgraphunit.c (ipa_passes): Set lto_stream_offload_p
22249         at the same time as section_name_prefix.
22250         * lto-streamer-out.c (hash_tree): Don't hash TREE_TARGET_OPTION
22251         if lto_stream_offload_p.
22252         * tree-streamer-out.c (streamer_pack_tree_bitfields): Don't
22253         stream TREE_TARGET_OPTION if lto_stream_offload_p.
22254         (write_ts_function_decl_tree_pointers): Don't
22255         stream DECL_FUNCTION_SPECIFIC_TARGET if lto_stream_offload_p.
22256         * tree-streamer-in.c (unpack_value_fields): Don't stream
22257         TREE_TARGET_OPTION in if ACCEL_COMPILER.
22258         (lto_input_ts_function_decl_tree_pointers): Don't stream
22259         DECL_FUNCTION_SPECIFIC_TARGET in if ACCEL_COMPILER.
22260         * lto-opts.c (lto_write_options): Use lto_stream_offload_p
22261         instead of section_name_prefix string comparisons.
22262
22263 2015-01-09  Jakub Jelinek  <jakub@redhat.com>
22264
22265         PR rtl-optimization/64536
22266         * cfgrtl.c (rtl_tidy_fallthru_edge): Handle removal of degenerate
22267         tablejumps.
22268
22269 2015-01-09  Michael Collison  <michael.collison@linaro.org>
22270
22271         PR tree-optimization/64322
22272         * tree-vrp.c (extract_range_from_binary_expr_1): Attempt to derive
22273         range for RSHIFT_EXPR even if vr0 range is not VR_RANGE or is symbolic.
22274
22275 2015-01-09  Tom de Vries  <tom@codesourcery.com>
22276
22277         PR rtl-optimization/64539
22278         * regcprop.c (kill_clobbered_values): Factor out of ...
22279         (copyprop_hardreg_forward_1): ... here.  Use kill_clobbered_values
22280         instead of note_stores with kill_clobbered_value.
22281
22282 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
22283
22284          * ginclude/unwind-arm-common.h: Revert previous commit.
22285
22286 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
22287
22288         * config.gcc (arm*-*-freebsd*): New configuration.
22289         * config/arm/freebsd.h: New file.
22290         * config.host: Add extra components for arm*-*-freebsd*.
22291         * config/arm/arm.h: Introduce MAX_SYNC_LIBFUNC_SIZE.
22292         * config/arm/arm.c (arm_init_libfuncs): Use MAX_SYNC_LIBFUNC_SIZE.
22293
22294 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
22295
22296         * config/rs6000/rtems.h (CPP_OS_RTEMS_SPEC): Define __PPC_CPU_E6500__
22297         for -mcpu=e6500.
22298         * config/rs6000/t-rtems: Add e6500 multilibs.
22299
22300 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
22301
22302         * config/rs6000/t-rtems: Add -mno-spe to soft-float multilib for
22303         MPC8540.
22304
22305 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
22306
22307         * config/rs6000/t-rtems: Use MULTILIB_REQUIRED instead of
22308         MULTILIB_EXCEPTIONS.
22309
22310 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
22311
22312         * config/arm/t-rtems: Use MULTILIB_REQUIRED instead of
22313         MULTILIB_EXCEPTIONS.
22314
22315 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
22316
22317         * config/arm/t-rtems-eabi: Rename to...
22318         * config/arm/t-rtems: ...this.
22319         * config/arm/rtems-eabi.h: Rename to...
22320         * config/arm/rtems.h: ...this.
22321         * config.gcc (arm*-*-rtems*): Reflect changes above.
22322
22323 2015-01-09  Richard Biener  <rguenther@suse.de>
22324
22325         PR tree-optimization/64410
22326         * tree-ssa.c (non_rewritable_lvalue_p): Allow REALPART/IMAGPART_EXPR
22327         on the LHS.
22328         (execute_update_addresses_taken): Deal with that.
22329         * tree-ssa-forwprop.c (pass_forwprop::execute): Use component-wise
22330         loads/stores for complex variables.
22331
22332 2015-01-09  Martin Liska  <mliska@suse.cz>
22333
22334         * ipa-icf-gimple.c (func_checker::compare_ssa_name): Enhance SSA
22335         name comparison.
22336         (func_checker::compare_memory_operand): New function.
22337         (func_checker::compare_operand): Split case to newly
22338         added functions.
22339         (func_checker::compare_cst_or_decl): New function.
22340         (func_checker::compare_gimple_call): Identify
22341         memory operands.
22342         (func_checker::compare_gimple_assign): Likewise.
22343         * ipa-icf-gimple.h: New function.
22344
22345 2015-01-09  Martin Liska  <mliska@suse.cz>
22346
22347         PR ipa/64503
22348         * sreal.c (sreal::dump): Change unsigned format to signed for
22349         m_exp value.
22350         (sreal::to_double): Replace exp2 with scalbln.
22351
22352 2015-01-09  Martin Liska  <mliska@suse.cz>
22353
22354         * cgraphunit.c (cgraph_node::create_wrapper): Fix level of indentation.
22355         * ipa-icf.c (sem_function::equals_private): Add support for target and
22356         (sem_item_optimizer::merge_classes): Remove redundant function
22357         optimization flags comparison.
22358         * tree.h (target_opts_for_fn): New function.
22359
22360 2015-01-09  Tom de Vries  <tom@codesourcery.com>
22361
22362         * omp-low.c (expand_omp_for_static_chunk): Fix assert.
22363
22364 2015-01-09  Kito Cheng  <kito@0xlab.org>
22365
22366         PR rtl-optimization/64348
22367         * lra-constraints.c (split_reg): Fix caller-save store/restore
22368         instruction generation.
22369
22370 2015-01-08  John David Anglin  <danglin@gcc.gnu.org>
22371
22372         PR gcov-profile/61790
22373         * gcov-tool.c (do_rewrite): Use strtoll instead of atoll if host has
22374         long long.  Fallback to int64_t if host doesn't have long long and
22375         use strtol if int64_t is long.  Otherwise, use sscanf for conversion.
22376
22377 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
22378
22379         PR tree-optimization/63989
22380         * params.def (PARAM_MAX_TRACKED_STRLENS): Increment default
22381         from 1000 to 10000.
22382         * tree-ssa-strlen.c (get_strinfo): Moved earlier.
22383         (get_stridx): If we don't have a record for certain SSA_NAME,
22384         but it is POINTER_PLUS_EXPR of some SSA_NAME we do with
22385         constant offset, call get_stridx_plus_constant.
22386         (get_stridx_plus_constant): New function.
22387         (zero_length_string): Don't use get_stridx here.
22388
22389         PR target/55023
22390         PR middle-end/64388
22391         * dse.c (struct insn_info): Mention frame_read set also
22392         before reload for tail calls on some targets.
22393         (scan_insn): Revert 2014-12-22 change.  Set frame_read
22394         also before reload for tail calls if
22395         HARD_FRAME_POINTER_IS_ARG_POINTER.  Call add_wild_read
22396         instead of add_non_frame_wild_read for non-const/memset
22397         tail calls after reload.
22398
22399 2015-01-08  Jason Merrill  <jason@redhat.com>
22400
22401         * ubsan.c (do_ubsan_in_current_function): New.
22402         (pass_ubsan::gate): Use it.
22403         * ubsan.h: Declare it.
22404         * convert.c (convert_to_integer): Use it.
22405
22406 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
22407
22408         PR target/64338
22409         * config/i386/i386.c (ix86_expand_int_movcc): Don't reverse
22410         compare_code when it is unconditionally overwritten afterwards.
22411         Use ix86_reverse_condition instead of reverse_condition.  Don't
22412         change code if *reverse_condition* returned UNKNOWN and don't
22413         swap ct/cf and negate diff in that case.
22414
22415 2015-01-08  Mike Stump  <mikestump@comcast.net>
22416
22417         * tsan.c (pass_tsan::gate): Add no_sanitize_thread support.
22418         (pass_tsan_O0::gate): Likewise.
22419         * extend.texi (Function Attributes): Add no_sanitize_thread
22420         documentation.
22421
22422 2015-01-08  Thomas Schwinge  <thomas@codesourcery.com>
22423
22424         * builtins.def (DEF_GOMP_BUILTIN): Also consider flag_offload_abi
22425         for registering builtins.
22426         * config/i386/intelmic-mkoffload.c (prepare_target_image): Don't
22427         add -fopenmp to the argv_obstack used when invoking
22428         compile_for_target.
22429
22430         * config/i386/intelmic-mkoffload.c (compile_for_target): Always
22431         add "-m32" or "-m64" to argv_obstack.
22432         (generate_host_descr_file): Likewise, when invoking host_compiler.
22433         (main): Always add "-m elf_i386" or "-m elf_x86_64" when invoking
22434         ld.
22435
22436 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
22437
22438         * config/sh/sh-mem.cc: Use constant as second operand when emitting
22439         tstsi_t insns.
22440
22441 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
22442
22443         PR target/55212
22444         * config/sh/sh.md (*addsi3_compact): Emit reg-reg copy instead of
22445         constant load if constant operand fits into I08.
22446
22447 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
22448
22449         PR sanitizer/64336
22450         * tree.c (build2_stat): Fix up initialization of TREE_READONLY
22451         and TREE_THIS_VOLATILE for MEM_REFs.
22452         (build5_stat): Fix up initialization of TREE_READONLY and
22453         TREE_THIS_VOLATILE for TARGET_MEM_REFs.
22454
22455 2015-01-08  Kaz Kojima  <kkojima@gcc.gnu.org>
22456
22457         PR target/64533
22458         * config/sh/sh.md (*addsi3_compact): Use u constraint instead
22459         of r for the second alternative of the destination operand.
22460
22461 2015-01-07  Segher Boessenkool  <segher@kernel.crashing.org>
22462
22463         PR target/36557
22464         * config/rs6000/rs6000.md (*eqsi3_ext<mode>, *nesi3_ext<mode>): New.
22465
22466 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
22467
22468         * doc/invoke.texi ([-fvtable-verify]): Fix markup on option
22469         keywords.
22470         ([-fivar-visibility], [-fvisibility]): Likewise.
22471
22472 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
22473
22474         * doc/invoke.texi: Fix incorrect uses of @samp markup throughout
22475         the file where @code, @command, etc is more appropriate.
22476
22477 2015-01-06  Sandra Loosemore  <sandra@codesourcery.com>
22478
22479         * doc/invoke.texi (RS/6000 and PowerPC Options): Tidy formatting
22480         of -mrecip= documentation.
22481
22482 2015-01-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
22483
22484         PR target/64505
22485         * config/rs6000/rs6000.c (rs6000_secondary_reload): Return the
22486         correct reload handler if -m32 -mpowerpc64 is used.
22487
22488 2015-01-06  Tom de Vries  <tom@codesourcery.com>
22489
22490         * tree-ssa-tail-merge.c: Fix typo in struct same_succ_def comment.
22491
22492 2015-01-08  Christian Bruel  <christian.bruel@st.com>
22493
22494         PR target/64507
22495         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Check 0 length.
22496
22497 2015-01-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
22498
22499         PR tree-optimization/63259
22500         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Stop checking
22501         if optab exists for 16bit byteswap.
22502
22503 2015-01-06  Jakub Jelinek  <jakub@redhat.com>
22504
22505         * opts.c (common_handle_option): Add support for
22506         -fno-sanitize=all and -f{,no-}sanitize-recover=all.
22507         * doc/invoke.texi: Document -fno-sanitize=all,
22508         -f{,no-}sanitize-recover=all.  Document that
22509         -fsanitize=float-cast-overflow is not enabled
22510         by -fsanitize=undefined.  Fix up documentation
22511         of -f{,no-}sanitize-recover.
22512
22513 2015-01-06  Eric Botcazou  <ebotcazou@adacore.com>
22514
22515         * config.gcc: Add Visium support.
22516         * configure.ac: Likewise.
22517         * configure: Regenerate.
22518         * doc/extend.texi (interrupt attribute): Add Visium.
22519         * doc/invoke.texi: Document Visium options.
22520         * doc/install.texi: Document Visium target.
22521         * doc/md.texi: Document Visium constraints.
22522         * common/config/visium: New directory.
22523         * config/visium: Likewise.
22524
22525 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
22526
22527         * simplify-rtx.c (simplify_binary_operation_1): Handle more cases
22528         for the "(and X (ior (not X) Y) -> (and X Y)" transform.
22529
22530 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
22531
22532         * combine.c (combine_validate_cost): Do not count the cost of a
22533         split I2 twice.  Do not display it twice in the dump, either.
22534
22535 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
22536
22537         Revert parts of r219199.
22538         * doc/invoke.texi ([-Wliteral-suffix]): Restore markup on
22539         <inttypes.h>.
22540         ([-Wtraditional]): Restore markup on <limits.h>.
22541
22542 2015-01-05  Trevor Saunders  <tsaunders@mozilla.com>
22543
22544         PR c++/31397
22545         * doc/invoke.texi: Document -Wsuggest-override.
22546
22547 2015-01-05  Radovan Obradovic  <radovan.obradovic@imgtec.com>
22548
22549         PR rtl-optimization/64287
22550         * toplev.c (HAVE_epilogue, HAVE_prologue): Provide default.
22551         (process_options): Disable flag_ipa_ra if profiling.
22552
22553 2015-01-05  Eric Botcazou  <ebotcazou@adacore.com>
22554
22555         * config/nds32/nds32-peephole2.md: Do not mention define_peephole.
22556
22557 2015-01-05  Max Filippov  <jcmvbkbc@gmail.com>
22558
22559         * config/xtensa/xtensa.c (hwloop_optimize, hwloop_fail,
22560         hwloop_pattern_reg, xtensa_doloop_hooks, xtensa_reorg_loops):
22561         put under #if TARGET_LOOPS guard.
22562
22563 2015-01-05  Uros Bizjak  <ubizjak@gmail.com>
22564
22565         * config/i386/i386.c (output_387_binary_op): Use std::swap.
22566
22567 2015-01-05  Oleg Endo  <olegendo@gcc.gnu.org>
22568
22569         * rtlanal.c (refers_to_regno_p): Change return value from int to bool.
22570         * rtl.h (refers_to_regno_p): Add overload.
22571         * cse.c: Use it.
22572         * bt-load.c: Likewise.
22573         * combine.c: Likewise.
22574         * df-scan.c: Likewise.
22575         * sched-deps.c: Likewise.
22576         * config/s390/s390.c: Likewise.
22577         * config/m32r/m32r.c: Likewise.
22578         * config/rs6000/spe.md: Likewise.
22579         * config/rs6000/rs6000.c: Likewise.
22580         * config/pa/pa.c: Likewise.
22581         * config/stormy16/stormy16.c: Likewise.
22582         * config/cris/cris.c: Likewise.
22583         * config/arc/arc.md: Likewise.
22584         * config/arc/arc.c: Likewise.
22585         * config/sh/sh.md: Likewise.
22586         * config/sh/sh.c: Likewise.
22587         * config/frv/frv.c: Likewise.
22588
22589 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
22590
22591         PR sanitizer/64265
22592         * gimplify.c (gimplify_function_tree): Add TSAN_FUNC_EXIT internal
22593         call as cleanup of the whole body.
22594         * internal-fn.def (TSAN_FUNC_EXIT): New internal call.
22595         * tsan.c (replace_func_exit): New function.
22596         (instrument_func_exit): Moved earlier.
22597         (instrument_memory_accesses): Adjust TSAN_FUNC_EXIT internal calls.
22598         Call instrument_func_exit if no TSAN_FUNC_EXIT internal calls have
22599         been found.
22600         (tsan_pass): Don't call instrument_func_exit.
22601         * internal-fn.c (expand_TSAN_FUNC_EXIT): New function.
22602         * tree-inline.c (copy_bb): Drop TSAN_FUNC_EXIT internal calls during
22603         inlining.
22604
22605         PR sanitizer/64344
22606         * ubsan.h (ubsan_instrument_float_cast): Add ARG argument.
22607         * ubsan.c (ubsan_instrument_float_cast): Add ARG argument, pass
22608         it to libubsan handler instead of EXPR.  Fold comparisons earlier,
22609         if the result is integer_zerop, return NULL_TREE.
22610         * convert.c (convert_to_integer): Pass expr as ARG.
22611
22612         PR tree-optimization/64465
22613         * tree-inline.c (redirect_all_calls): During inlining
22614         clean up EH stmts and EH edges if redirect_call_stmt_to_callee
22615         changed the stmt to a non-throwing call.
22616
22617 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
22618
22619         * doc/invoke.texi: Fix incorrect uses of @code, @option, @samp,
22620         etc markup throughout the file.
22621
22622 2015-01-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
22623
22624         Enable experimental TSAN support for Ada.
22625         * tsan.c (instrument_expr): Handle VIEW_CONVERT_EXPR.
22626
22627 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
22628
22629         PR tree-optimization/64494
22630         * tree-ssa-loop-im.c (move_computations_dom_walker::before_dom): Also
22631         clear SSA_NAME_ANTI_RANGE_P flag.
22632
22633 2015-01-05  Marek Polacek  <polacek@redhat.com>
22634
22635         * doc/extend.texi (Arrays of Length Zero): Add missing comma.
22636
22637 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
22638
22639         Update copyright years.
22640
22641         * gcc.c (process_command): Update copyright notice dates.
22642         * gcov-dump.c: Ditto.
22643         * gcov.c: Ditto.
22644         * doc/cpp.texi: Bump @copying's copyright year.
22645         * doc/cppinternals.texi: Ditto.
22646         * doc/gcc.texi: Ditto.
22647         * doc/gccint.texi: Ditto.
22648         * doc/gcov.texi: Ditto.
22649         * doc/install.texi: Ditto.
22650         * doc/invoke.texi: Ditto.
22651
22652         * auto-profile.c, auto-profile.h: Fix up Copyright line.
22653
22654 2015-01-04  Sandra Loosemore  <sandra@codesourcery.com>
22655
22656         * doc/invoke.texi ([-fsized-deallocation]): Copy-edit to fix
22657         verb tense, etc.
22658         ([-fvtable-verify], [-fvtv-debug]): Likewise.
22659         ([-Wabi]): Likewise.
22660         ([-fmessage-length]): Likewise.
22661         ([-Wsuggest-final-types], [-Wsuggest-final-methods]): Likewise.
22662         ([-Wno-discarded-qualifiers]): Likewise.
22663         ([-Wnodiscarded-array-qualifiers]): Likewise.
22664         ([-Wno-virtual-move-assign]): Likewise.
22665         ([-fsanitize=address], [-fsanitize=thread]): Likewise.
22666         ([-fsanitize=leak], [-fsanitize=undefined]): Likewise.
22667         ([-fsanitize=unreachable], [-fsanitize-recover]): Likewise.
22668         ([-fsanitize-undefined-trap-on-error]): Likewise.
22669         ([-floop-interchange]): Likewise.
22670         ([-ftree-coalesce-inlined-vars]): Likewise.
22671         ([-fvect-cost-model]): Likewise.
22672         ([-flto]): Likewise.
22673         ([--param]): Likewise.
22674         (Spec Files): Likewise.
22675         ([-mstrict-align]): Likewise.
22676         ([-mfix-cortex-a53-835769]): Likewise.
22677         ([-march], [-mtune]): Likewise.
22678         ([-mpic-register]): Likewise.
22679         ([-munaligned-access]): Likewise.
22680         ([-msp8]): Likewise.
22681         (EIND and Devices with more than 128 Ki Bytes of Flash): Likewise.
22682         (AVR Built-in Macros): Likewise.
22683         ([-mpreferred-stack-boundary]): Likewise.
22684         ([-mtune-crtl]): Likewise.
22685         ([-mashf]): Likewise.
22686         ([-mmcu=]): Likewise.
22687         ([-minrt]): Likewise.
22688         ([-maltivec], [-maltivec=be], [-maltivec=le]): Likewise.
22689         ([-mupper-regs]): Likewise.
22690         ([-matomic-model]): Likewise.
22691         ([-mdiv]): Likewise.
22692         ([-mzdcbranch]): Likewise.
22693         ([-mdisable-callt]): Likewise.
22694         ([-msoft-float]): Likewise.
22695         ([-m8byte-align]): Likewise.
22696         ([-fstack-reuse]): Likewise.
22697
22698 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
22699
22700         * doc/invoke.texi ([-fprofile-generate], [-fprofile-use]):
22701         Fix markup, light copy-editing.
22702         ([-fauto-profile]): Rewrite to fix formatting and content
22703         problems.
22704
22705 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
22706
22707         * doc/invoke.texi ([-fisolate-erroneous-paths-dereference]):
22708         Copy-edit description.
22709         ([-fisolate-erroneous-paths-attribute]): Likewise.
22710         * common.opt (fisolate-erroneous-paths-dereference):
22711         Copy-edit description.
22712         (fisolate-erroneous-paths-attribute): Likewise.
22713
22714 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
22715
22716         * doc/invoke.texi ([-fsemantic-interposition]): Fix typos and
22717         tidy grammar.
22718
22719 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
22720
22721         * doc/invoke.texi ([-fplan9-extensions]): Add/fix @opindex.
22722         ([-fvtv-debug]): Likewise.
22723         ([-Wc++-compat]): Likewise.
22724         ([-Wc++11-compat]): Likewise.
22725         ([-Wc++14-compat]): Likewise.
22726         ([-Wno-sized-deallocation]): Likewise.
22727         ([-femit-class-debug-always]): Likewise.
22728         ([-femit-struct-debug-detailed]): Likewise.
22729         ([-fno-keep-inline-dllexport]): Likewise.
22730         ([-fira-algorithm]): Likewise.
22731         ([-fira-region]): Likewise.
22732         ([-flra-remat]): Likewise.
22733         ([-fipa-ra]): Likewise.
22734         ([-fhoist-adjacent-loads]): Likewise.
22735         ([-fisolate-erroneous-paths-dereference]): Likewise.
22736         ([-fisolate-erroneous-paths-attribute]): Likewise.
22737         ([-ftree-switch-conversion]): Likewise.
22738         ([-ftree-tail-merge]): Likewise.
22739         ([-ftree-loop-if-convert]): Likewise.
22740         ([-ftree-loop-if-convert-stores]): Likewise.
22741         ([-ftree-loop-distribution]): Likewise.
22742         ([-ftree-loop-distribute-patterns]): Likewise.
22743         ([-flto-compression-level]): Likewise.
22744         ([-flto-report]): Likewise.
22745         ([-flto-report-wpa]): Likewise.
22746         ([-fuse-linker-plugin]): Likewise.
22747         ([-mfix-cortex-a53-835769]): Likewise.
22748         ([-mno-fix-cortex-a53-835769]): Likewise.
22749         ([-mmmx]...[-mno-3dnow]): Remove the -mno- forms from the
22750         explicit listing; add a note to the discussion indicating they
22751         exist.  Reorder table to group similar options.  Add missing
22752         @opindex entries.  Add @need commands throughout the table to
22753         allow it to be split across multiple pages.
22754         ([-m8bit-idiv]): Fix @opindex.
22755         ([-mavx256-split-unaligned-load]): Likewise.
22756         ([-mavx256-split-unaligned-store]): Likewise.
22757         ([-mstack-protector-guard]): Likewise.
22758         ([-mcpu=]): Likewise.
22759         ([-mcpu]): Likewise.
22760         ([-mpointer-size=]): Likewise.
22761
22762 2015-01-03  John David Anglin  <danglin@gcc.gnu.org>
22763
22764         * config/pa/pa.md (decrement_and_branch_until_zero): Use `Q' constraint
22765         instead of `m' constraint.  Likewise for unnamed movb comparison
22766         patterns using reg_before_reload_operand predicate.
22767         * config/pa/predicates.md (reg_before_reload_operand): Tighten
22768         predicate to reject register index and LO_SUM DLT memory forms
22769         after reload.
22770
22771 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
22772
22773         * doc/invoke.texi (Option Summary): Fix spelling of
22774         -fdevirtualize-at-ltrans.
22775         ([-fdevirtualize]): Fix markup.
22776         ([-fdevirtualize-speculatively]): Fix typo.
22777         ([-fdevirtualize-at-ltrans]): Likewise.  Make description less
22778         implementor-speaky.
22779         * common.opt (fdevirtualize-at-ltrans): Likewise.
22780         * ipa-devirt.c: Fix typos in comments throughout the file.
22781         (ipa_devirt): Fix typos in format strings for dump output.
22782
22783 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
22784
22785         * doc/invoke.texi ([-fopt-info]): Fix markup, consolidate
22786         discussion of defaults, light copy-editing.
22787
22788 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
22789
22790         * tsan.c (instrument_expr): corrected previous checkin.
22791
22792 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
22793
22794         Instrument bit field and unaligned accesses for TSAN.
22795         * sanitizer.def (BUILT_IN_TSAN_READ_RANGE): New built-in function.
22796         (BUILT_IN_TSAN_WRITE_RANGE): New built-in function.
22797         * tsan.c (instrument_expr): Handle COMPONENT_REF and BIT_FIELD_REF.
22798         Use BUILT_IN_TSAN_READ_RANGE and BUILT_IN_TSAN_WRITE_RANGE for
22799         unaligned memory regions.
22800
22801 2015-01-01  Anthony Green  <green@moxielogic.com>
22802
22803         * config/moxie/predicates.md (moxie_general_movsrc_operand):
22804         Restrict move source register offsets to 16 bits.
22805 \f
22806 Copyright (C) 2015 Free Software Foundation, Inc.
22807
22808 Copying and distribution of this file, with or without modification,
22809 are permitted in any medium without royalty provided the copyright
22810 notice and this notice are preserved.