re PR middle-end/66984 (ICE: fold_binary changes type of operand, causing failure...
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2015-07-24  Gary Funck  <gary@intrepid.com>
2
3         PR middle-end/66984
4         * fold-const.c (fold_binary_loc): Call fold_convert on arguments to
5         fold_build2 for CEIL_DIV_EXPR and FLOOR_DIV_EXPR optimization.
6
7 2015-07-24  Tom de Vries  <tom@codesourcery.com>
8
9         * tree-parloops.c (gen_parallel_loop): Add debug print for alternative
10         exit-first loop transform.
11
12 2015-07-24  Cesar Philippidis  <cesar@codesourcery.com>
13
14         PR 66714
15         * tree-cfg.c (struct replace_decls_d): New struct.
16         (replace_block_vars_by_duplicates_1): New function.
17         (replace_block_vars_by_duplicates): Use it to replace the decls
18         in the value exprs by duplicates.
19
20 2015-07-24  Szabolcs Nagy  <szabolcs.nagy@arm.com>
21
22         * config/aarch64/aarch64-elf-raw.h (LINK_SPEC): Handle -h, -static,
23         -shared, -symbolic, -rdynamic.
24
25 2015-07-24  Szabolcs Nagy  <szabolcs.nagy@arm.com>
26
27         PR target/65711
28         * config/aarch64/aarch64-linux.h (LINUX_TARGET_LINK_SPEC): Move
29         -dynamic-linker within %{!static %{!shared, and -rdynamic within
30         %{!static.
31
32 2015-07-24  Ilya Enkovich  <enkovich.gnu@gmail.com>
33
34         PR ipa/66566
35         * ipa-inline-analysis.c (estimate_calls_size_and_time): Check
36         edge summary is available.
37
38 2015-07-24  Richard Biener  <rguenther@suse.de>
39
40         * genmatch.c (struct dt_node): Add statistic fields.
41         (dt_node::analyze): New method.
42         (decision_tree::gen_gimple): Call analyze on the root node
43         and print statistics to stderr.
44         (decision_tree::gen_generic): Likewise.
45
46 2015-07-24  Richard Biener  <rguenther@suse.de>
47
48         * fold-const.c (fold_binary_loc): Move simplifying of comparisons
49         against the highest or lowest possible integer ...
50         * match.pd: ... as patterns here.
51
52 2015-07-24  Richard Biener  <rguenther@suse.de>
53
54         * genmatch.c (struct capture_info): Add same_as field.
55         (capture_info::capture_info): Initialize same_as.
56         (capture_info::walk_match): Compute same_as.
57         (capture_info::walk_result): Compute stuff for the leader.
58         (capture_info::walk_c_expr): Likewise.
59         (dt_simplify::gen_1): Only look at leaders when deciding
60         to force no side-effects or emit side-effects of omitted operands.
61
62 2015-07-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
63
64         * config/s390/s390.c (s390_save_gprs_to_fprs): Add CFA_REGISTER
65         reg note to the GPR -> FPR save instructions.
66
67 2015-07-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
68
69         * config/s390/s390.c (s390_rtx_costs): Make risbg patterns
70         cheaper.
71         (s390_expand_insv): Don't generate risbg pattern for constant zero
72         sources.
73         * config/s390/s390.md ("*insv<mode>_zEC12_appendbitsleft")
74         ("*insv<mode>_z10_appendbitsleft"): New pattern definitions.  New
75         splitters.
76
77 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
78
79         * config/s390/s390.c (s390_reorg): Clean up handling of processors
80         with
81         -mtune=
82         (s390_issue_rate): Likewise.
83         (s390_sched_reorder): Likewise.
84         (s390_sched_variable_issue): Likewise.
85         (s390_loop_unroll_adjust): Likewise.
86         (s390_option_override):  Likewise.
87
88 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
89
90         * config/s390/driver-native.c (s390_host_detect_local_cpu): Handle
91         processor capabilities with -march=native.
92         * config/s390/s390.h (MARCH_MTUNE_NATIVE_SPECS): Likewise.
93         (DRIVER_SELF_SPECS): Likewise.  Join specs for 31 and 64 bit.
94         (S390_TARGET_BITS_STRING): Macro to simplify specs.
95
96 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
97
98         * config/s390/s390.c (s390_issue_rate): Handle
99         PROCESSOR_2094_Z9_EC.
100         (s390_option_override): Likewise.
101         (s390_adjust_priority): Likewise.
102
103 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
104
105         * config/s390/s390.h: S390: Do not define EXTRA_SPEC_FUNCTIONS
106         when cross compiling.
107
108 2015-07-24  Richard Biener  <rguenther@suse.de>
109
110         * fold-const.c (maybe_canonicalize_comparison_1): Move
111         A code CST canonicalization ...
112         * match.pd: ... to a pattern here.
113
114 2015-07-24  Jiong Wang  <jiong.wang@arm.com>
115
116         Revert:
117         2015-07-22  Jiong Wang  <jiong.wang@arm.com>
118         PR target/63521
119         * config/aarch64/aarch64.h (REG_ALLOC_ORDER): Define.
120         (HONOR_REG_ALLOC_ORDER): Define.
121
122 2015-07-24  Richard Biener  <rguenther@suse.de>
123
124         * genmatch.c (add_operator): Allow SSA_NAME as predicate.
125         * fold-const.c (fold_comparison): Move parameter does not
126         alias &local simplification ...
127         * match.pd: ... as a pattern here.
128
129 2015-07-24  Richard Biener  <rguenther@suse.de>
130
131         * gimple-fold.c (replace_stmt_with_simplification): Special-case
132         valueizing call operands.
133         * gimple-match-head.c (maybe_push_res_to_seq): Take
134         number of call arguments from ops array.
135         (do_valueize): New function.
136         (gimple_simplify): Return true if valueization changed
137         any operand even if the result didn't simplify further.
138
139 2015-07-24  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
140
141         PR middle-end/25530
142         * match.pd (mult (trunc_div @0 integer_pow2p@1) @1) : New simplifier.
143
144 2015-07-24  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
145
146          PR middle-end/25529
147          * match.pd (trunc_div (mult @0 integer_pow2p@1) @1) : New simplifier.
148
149 2015-07-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
150
151         * config/arm/arm.c (arm_emit_movpair): Add REG_EQUAL notes to
152         instruction.
153
154 2015-07-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
155
156         * cse.c (cse_insn): Fix missing check for STRICT_LOW_PART and minor
157         clean up.
158
159 2015-07-23  Uros Bizjak  <ubizjak@gmail.com>
160
161         * config/i386/i386.c (ix86_build_builtin_va_list_64): Rename
162         from ix86_build_builtin_va_list_abi.  Handle only 64bit non-MS_ABI
163         targets here.
164         (ix86_build_builtin_va_list): Rewrite sysv_va_list_type_node and
165         ms_va_list_type_node initialization.
166
167 2015-07-23  Jeff Law  <law@redhat.com>
168
169         PR lto/66752
170         * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
171         unable to find X NE 0 in the tables, return X as the simplified
172         condition.
173         (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
174         in VISISTED_BBS, then return failure.  Else add nodes from NEXT_PATH
175         to VISISTED_BBS.  */
176         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
177         after removing the control flow statement and unnecessary edges.
178
179 2015-07-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
180
181         * tree-pass.h (get_current_pass_name): Removed.
182
183 2015-07-23  Alexandre Oliva <aoliva@redhat.com>
184
185         PR rtl-optimization/64164
186         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
187         * tree-ssa-copyrename.c: Removed.
188         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
189         -ftree-coalesce-vars.
190         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
191         * common.opt (ftree-copyrename): Ignore.
192         (ftree-coalesce-inlined-vars): Likewise.
193         * doc/invoke.texi: Remove the ignored options above.
194         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
195         * tree-ssa-coalesce.h: ... here.
196         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
197         headers required by it.
198         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
199         across variables when flag_tree_coalesce_vars.  Check register
200         use and promoted modes to allow coalescing.  Moved to
201         tree-ssa-coalesce.c.
202         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
203         with its member functions to tree-ssa-coalesce.c.
204         (var_map_base_init): Likewise.  Renamed to
205         compute_samebase_partition_bases.
206         (partition_view_normal): Drop want_bases parameter.
207         (partition_view_bitmap): Likewise.
208         * tree-ssa-live.h: Adjust declarations.
209         * tree-ssa-coalesce.c: Include explow.h.
210         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
211         default defs at the entry point.
212         (dump_part_var_map): New.
213         (compute_optimized_partition_bases): New, called by...
214         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
215         of compute_samebase_partition_bases.  Adjust.
216         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
217         * cfgexpand.c (leader_merge): New.
218         (get_rtl_for_parm_ssa_default_def): New.
219         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
220         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
221         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
222         redundant MEM attr setting.
223         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
224         from...
225         (expand_one_stack_var): ... this.  New wrapper to check and
226         skip already expanded SSA partitions.
227         (record_alignment_for_reg_var): New, factored out of...
228         (expand_one_var): ... this.
229         (expand_one_ssa_partition): New.
230         (adjust_one_expanded_partition_var): New.
231         (expand_one_register_var): Check and skip already expanded SSA
232         partitions.
233         (expand_used_vars): Don't create DECLs for anonymous SSA
234         names.  Expand all SSA partitions, then adjust all SSA names.
235         (pass::execute): Replace the loops that set
236         SA.partition_to_pseudo from partition leaders and cleared
237         DECL_RTL for multi-location variables, and that which used to
238         rename vars and set attrs, with one that clears DECL_RTL and
239         checks that PARMs and RESULTs default_defs match DECL_RTL.
240         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
241         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
242         * explow.c (promote_ssa_mode): New.
243         * explow.h (promote_ssa_mode): Declare.
244         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
245         * function.c: Include cfgexpand.h.
246         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
247         (use_register_for_parm_decl): Wrapper for the above to
248         special-case the result_ptr.
249         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
250         (split_complex_args): Take assign_parm_data_all argument.
251         Pass it to rtl_for_parm.  Set up rtl and context for split
252         args.
253         (assign_parms_augmented_arg_list): Adjust.
254         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
255         multiple locations.  Recognize split complex args.
256         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
257         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
258         (assign_parm_setup_block): Prefer SSA-assigned location.
259         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
260         if stack_parm is NULL.
261         (assign_parm_setup_stack): Prefer SSA-assigned location.
262         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
263         rtl before testing for pointer bounds.  Special-case result_ptr.
264         (expand_function_start): Maybe reset DECL_RTL of result.
265         Prefer SSA-assigned location for result and static chain.
266         Factor out DECL_RESULT and SET_DECL_RTL.
267         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
268         anonymous SSA names.  Use promote_ssa_mode.
269         (get_temp_reg): Likewise.
270         (remove_ssa_form): Adjust.
271         * stor-layout.c (layout_decl): Don't set mem attributes of
272         non-MEMs.
273         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
274         and get its reg_usage for reg invalidation.
275         (compute_bb_dataflow): Pass it insn.
276         (emit_notes_in_bb): Likewise.
277
278 2015-07-23  Segher Boessenkool  <segher@kernel.crashing.org>
279
280         PR target/66217
281         * config/rs6000/rs6000-protos.h (rs6000_emit_2insn_and): Change
282         prototype.
283         * config/rs6000/rs6000.c (rs6000_emit_dot_insn): New function.
284         (rs6000_emit_2insn_and): Handle dot forms.
285         * config/rs6000/rs6000.md (and<mode>3): Adjust.
286         (*and<mode>3_2insn): Remove TODO.  Adjust.  Add "type" attr.
287         (*and<mode>3_2insn_dot, *and<mode>3_2insn_dot2): New.
288
289 2015-07-23  Richard Biener  <rguenther@suse.de>
290
291         * generic-match-head.c: Include cgraph.h.
292         * gimple-match-head.c: Likewise.
293         * tree-ssa-sccvn.c (free_scc_vn): Guard against newly created
294         SSA names.
295         * fold-const.c (fold_binary_loc): Move &A ==/!= &B simplification...
296         * match.pd: ...to a pattern here.  Add &A ==/!= 0 simplification
297         pattern.
298
299 2015-07-23  Richard Biener  <rguenther@suse.de>
300
301         * gimple-fold.c (fold_gimple_cond): Do not require folding
302         results to pass valid_gimple_rhs_p.
303         * tree-cfg.h (fold_cond_expr_cond): Remove.
304         * tree-cfg.c (fold_cond_expr_cond): Likewise.
305         (make_edges): Do not call it.
306         * tree-inline.c (tree_function_versioning): Likewise.
307
308 2015-07-23  Tom de Vries  <tom@codesourcery.com>
309
310         * tree-parloops.c (gather_scalar_reductions): Add arg to call to
311         vect_force_simple_reduction.
312         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Same.
313         (vect_is_simple_reduction_1): Add and handle
314         need_wrapping_integral_overflow parameter.
315         (vect_is_simple_reduction, vect_force_simple_reduction): Add and pass
316         need_wrapping_integral_overflow parameter.
317         (vectorizable_reduction): Add arg to call to vect_is_simple_reduction.
318         * tree-vectorizer.h (vect_force_simple_reduction): Add parameter to
319         decl.
320
321 2015-07-23  Yuri Rumyantsev  <ysrumyan@gmail.com>
322
323         PR tree-optimization/66926,66951
324         * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Delete
325         INNER_LOOP and fix up condition for renaming virtual operands.
326
327 2015-07-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
328
329         * combine.c (try_combine): Use std::swap instead of manually
330         swapping.
331
332 2015-07-23  Prachi Godbole  <prachi.godbole@imgtec.com>
333
334         * config/mips/i6400.md: New file.
335         * config/mips/mips-cpus.def (mips32r6): Change to PROCESSOR_I6400.
336         (mips64r6): Likewise.
337         (i6400): Define.
338         * config/mips/mips-tables.opt: Regenerate.
339         * config/mips/mips.c (mips_rtx_cost_data): Add I6400 processor.
340         (mips_issue_rate): Add support for i6400.
341         (mips_multipass_dfa_lookahead): Likewise.
342         * config/mips/mips.h (TUNE_I6400): Define.
343         * config/mips/mips.md: Include i6400.md.
344         (processor): Add i6400.
345         * doc/invoke.texi (-march=@var{arch}): Add i6400.
346
347 2015-07-23  Richard Biener  <rguenther@suse.de>
348
349         PR middle-end/66916
350         * match.pd: Guard widen and sign-change comparison simplification
351         with single_use.
352
353 2015-07-23  Richard Biener  <rguenther@suse.de>
354
355         PR tree-optimization/66945
356         * tree-ssa-propagate.c (substitute_and_fold_dom_walker
357         ::before_dom_children): Force the propagators idea of
358         non-executable edges to materialize, not what the folder
359         chooses.
360
361 2015-07-23  Richard Biener  <rguenther@suse.de>
362
363         * gimple.h (gimple_cond_make_false): Use 0 != 0.
364         (gimple_cond_make_true): Use 1 != 0.
365
366 2015-07-22  DJ Delorie  <dj@redhat.com>
367
368         * config/msp430/t-msp430 (MULTILIB_DIRNAMES): Remove trailing
369         slashes.
370
371         * config/msp430/msp430.md (ashlhi3): Optimize shifts of subregs.
372         (ashrhi3): Likewise.
373         (lshrhi3): Likewise.
374         (movhi): Take advantage of zero-extend to load small constants.
375         (movpsi): Likewise.
376         (and<mode>3): Likewise.
377         (zero_extendqihi2): Likewise.
378         (zero_extendqisi2): New.
379         * config/msp430/constraints.md (N,O): New.
380         * config/msp430/msp430.h (WORD_REGISTER_OPERATIONS): Define.
381
382 2015-07-22  Uros Bizjak  <ubizjak@gmail.com>
383
384         PR target/66954
385         * config/i386/i386.c (get_builtin_code_for_version): Add P_AES
386         to enum feature_priority and feature_list.
387         (fold_builtin_cpu): Add F_AES to enum processor_features
388         and isa_names_table.
389
390 2015-07-22  Ilya Enkovich  <enkovich.gnu@gmail.com>
391
392         PR driver/66737
393         * config/i386/linux-common.h (MPX_SPEC): Use linker option
394         for 64bit target only.
395
396 2015-07-22  Bernd Schmidt  <bernds@codesourcery.com>
397
398         * config/nvptx/nvptx.c: Expand some comments.
399
400 2015-07-22  James Greenhalgh  <james.greenhalgh@arm.com>
401
402         * config/arm/cortex-a53 (cortex_53_advsimd): Rename to...
403         (cortex_a53_advsimd): ...This.
404
405 2015-07-22  Richard Biener  <rguenther@suse.de>
406
407         * genmatch.c (expr::gen_transform): Clarify error message
408         and display location.
409
410 2015-07-22  Richard Biener  <rguenther@suse.de>
411
412         * genmatch.c (struct operand): Add location member.
413         (predicate, expr, c_expr, capture, if_expr, with_expr): Adjust
414         constructors.
415         (struct simplify): Remove match_location and result_location
416         members.
417         (elsehwere): Adjust.
418
419 2015-07-22  Prachi Godbole  <prachi.godbole@imgtec.com>
420
421         * config/mips/m5100.md: New file.
422         * config/mips/mips-cpus.def (m5100, m5101): Define.
423         * config/mips/mips-tables.opt: Regenerate.
424         * config/mips/mips.c (mips_rtx_cost_data): Add costs for m5100.
425         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=m5100 and
426         -march=m5101 to -mips32r5.
427         (MIPS_ARCH_FLOAT_SPEC): Map -m5101 to -msoft-float.
428         (MIPS_ISA_NAN2008_SPEC): Map -march=m51* to -mnan=2008 if
429         !-msoft-float.
430         * config/mips/mips.md: Include m5100.md.
431         (processor): Add m5100.
432         * doc/invoke.texi (-march=@var{arch}): Add m5100, m5101.
433
434 2015-07-22  Robert Suchanek  <robert.suchanek@imgtec.com>
435
436         * config/mips/mips-cpus.def (interaptiv): Define.
437         * config/mips/mips-tables.opt: Regenerate.
438         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=interaptiv to
439         -mips32r2.
440         (BASE_DRIVER_SELF_SPECS): Likewise but map to -mdsp.
441         * doc/invoke.texi (-march=@var{arch}): Add interaptiv.
442
443 2015-07-22  Jiong Wang  <jiong.wang@arm.com>
444
445         PR target/63521
446         * config/aarch64/aarch64.h (REG_ALLOC_ORDER): Define.
447         (HONOR_REG_ALLOC_ORDER): Define.
448
449 2015-07-22  Richard Biener  <rguenther@suse.de>
450
451         PR tree-optimization/66952
452         * tree-ssa-ifcombine.c (pass_tree_ifcombine::execute): For
453         blocks we end up executing unconditionally reset all SSA
454         info such as range and alignment.
455         * tree-ssanames.h (reset_flow_sensitive_info): Declare.
456         * tree-ssanames.c (reset_flow_sensitive_info): New function.
457
458 2015-07-22  Charles Baylis  <charles.baylis@linaro.org>
459
460         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): Fix
461         typo in attribute.
462
463 2015-07-22  Richard Biener  <rguenther@suse.de>
464
465         * genmatch.c (parser::parse_result): Properly handle
466         match with result operands and conditions.
467
468 2015-07-22  Charles Baylis  <charles.baylis@linaro.org>
469
470         PR target/63870
471         * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
472         Add qualifier_struct_load_store_lane_index.
473         (aarch64_types_loadstruct_lane_qualifiers): Use
474         qualifier_struct_load_store_lane_index for lane index argument for
475         last argument.
476         (aarch64_types_storestruct_lane_qualifiers): Ditto.
477         (builtin_simd_arg): Add SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
478         (aarch64_simd_expand_args): Add new argument describing mode of
479         builtin. Check lane bounds for arguments with
480         SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
481         (aarch64_simd_expand_builtin): Emit error for incorrect lane indices
482         if marked with SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
483         (aarch64_simd_expand_builtin): Handle arguments with
484         qualifier_struct_load_store_lane_index. Pass machine mode of builtin to
485         aarch64_simd_expand_args.
486         * config/aarch64/aarch64-simd-builtins.def: Declare ld[234]_lane and
487         vst[234]_lane with BUILTIN_VALLDIF.
488         * config/aarch64/aarch64-simd.md:
489         (aarch64_vec_load_lanesoi_lane<mode>): Use VALLDIF iterator. Perform
490         endianness reversal on lane index.
491         (aarch64_vec_load_lanesci_lane<mode>): Ditto.
492         (aarch64_vec_load_lanesxi_lane<mode>): Ditto.
493         (vec_store_lanesoi_lane<mode>): Use VALLDIF iterator.
494         (vec_store_lanesci_lane<mode>): Ditto.
495         (vec_store_lanesxi_lane<mode>): Ditto.
496         (aarch64_ld2_lane<mode>): Use VALLDIF iterator. Remove endianness
497         reversal of lane index.
498         (aarch64_ld3_lane<mode>): Ditto.
499         (aarch64_ld4_lane<mode>): Ditto.
500         (aarch64_st2_lane<mode>): Ditto.
501         (aarch64_st3_lane<mode>): Ditto.
502         (aarch64_st4_lane<mode>): Ditto.
503         * config/aarch64/arm_neon.h (__LD2_LANE_FUNC): Rename mode parameter
504         to qmode. Add new mode parameter. Update uses.
505         (__LD3_LANE_FUNC): Ditto.
506         (__LD4_LANE_FUNC): Ditto.
507         (__ST2_LANE_FUNC): Ditto.
508         (__ST3_LANE_FUNC): Ditto.
509         (__ST4_LANE_FUNC): Ditto.
510
511 2015-07-22  Jonathan Wakely  <jwakely@redhat.com>
512
513         * doc/invoke.texi (Language Independent Options): Rename node to
514         Diagnostic Message Formatting Options.
515
516 2015-07-21  Vladimir Makarov  <vmakarov@redhat.com>
517
518         PR ipa/66424.
519         * lra-remat.c (operand_to_remat): Prevent using insns with input
520         subregs processed separately by IRA.
521
522 2015-07-21  Andrew MacLeod  <amacleod@redhat.com>
523
524         * ssa-iterators.h (has_zero_uses, has_single_use): Implement as
525         straight loops.
526         (single_imm_use): Check for iterator node.
527         (num_imm_uses): Likewise.
528         * tree-ssa-operands.c (has_zero_uses_1): Delete.
529         (single_imm_use_1): Check for iterator node.
530
531 2015-07-21  Mike Frysinger  <vapier@gentoo.org>
532             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
533
534         * configure.ac: Add check for new options in isl-0.15.
535         * config.in, configure: Rebuilt.
536         * graphite-blocking.c: Include <isl/constraint.h>
537         * graphite-interchange.c,  graphite-poly.c: Likewise.
538         * graphhite-scop-detection.c, graphite-sese-to-poly.c: Likewise.
539         * graphite.c: Likewise.
540         * graphite-isl-ast-to-gimple.c: Include <isl/constraint.h> and
541         <isl/union_set.h>.
542         * graphite-dependences.c: Include <isl/constraint.h>.
543         (max_number_of_out_dimensions): Returns isl_stat.
544         (extend_schedule_1): Likewise
545         (extend_schedule): Corresponding changes.
546         * graphite-optimize-isl.c: Include <isl/constraint.h> and
547         <isl/union_set.h>.
548         (getSingleMap): Change return type of isl_stat.
549         (optimize_isl): Conditionally use
550         isl_options_set_schedule_serialize_sccs.
551         * graphite-poly.h (isl_stat, isl_stat_ok): Define fallbacks
552         if not HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS.
553
554 2015-07-21  Georg-Johann Lay  <avr@gjlay.de>
555
556         PR target/66956
557         * config/avr/avr-dimode.md (<extend_u>mulsidi3_insn)
558         (<extend_u>mulsidi3): Don't use if !AVR_HAVE_MUL.
559
560 2015-07-21  Richard Biener  <rguenther@suse.de>
561
562         PR tree-optimization/66948
563         * genmatch.c (capture_info::walk_match): Also recurse to
564         captures.  Properly compute expr state from captures of
565         captures.
566         * match.pd: Add single-use guards to
567         (X & C2) >> C1 into (X >> C1) & (C2 >> C1) transform.
568
569 2015-07-21  Nathan Sidwell  <nathan@codesourcery.com>
570
571         * config/nvptx/mkoffload.c (process): Add static destructor call.
572
573 2015-07-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
574
575         PR middle-end/66915
576         * match.pd (A - B -> A + (-B)): Don't allow folding
577         when type if a fixed-point type.
578
579 2015-07-20  DJ Delorie  <dj@redhat.com>
580
581         * config/rl78/rl78-real.md (andqi3_real): Expand operands for clr1.
582         (iorqi3_real): Likewise for set1.
583
584 2015-07-20  Uros Bizjak  <ubizjak@gmail.com>
585
586         * config/i386/i386.c (ix86_md_asm_adjust): Handle DImode dest_mode
587         for !TARGET_64BIT.
588
589 2015-07-20  Aditya Kumar  <hiraditya@msn.com>
590
591         * graphite-isl-ast-to-gimple.c:
592         Refactor so that each function can access 'region'. This will help
593         maintain a parameter rename_map within a region.
594
595 2015-07-20  Segher Boessenkool  <segher@kernel.crashing.org>
596
597         * config/rs6000/rs6000.md (*lt0_disi): New.
598
599 2015-07-20  Segher Boessenkool  <segher@kernel.crashing.org>
600
601         PR target/66217
602         * config/rs6000/constraints.md ("S", "T", "t"): Delete.  Update
603         "available letters" comment.
604         * config/rs6000/predicates.md (mask_operand, mask_operand_wrap,
605         mask64_operand, mask64_2_operand, any_mask_operand, and64_2_operand,
606         and_2rld_operand):  Delete.
607         (and_operand): Adjust.
608         (rotate_mask_operator): New.
609         * config/rs6000/rs6000-protos.h (build_mask64_2_operands,
610         includes_lshift_p, includes_rshift_p, includes_rldic_lshift_p,
611         includes_rldicr_lshift_p, insvdi_rshift_rlwimi_p, extract_MB,
612         extract_ME): Delete.
613         (rs6000_is_valid_mask, rs6000_is_valid_and_mask,
614         rs6000_is_valid_shift_mask, rs6000_is_valid_insert_mask,
615         rs6000_insn_for_and_mask, rs6000_insn_for_shift_mask,
616         rs6000_insn_for_insert_mask, rs6000_is_valid_2insn_and,
617         rs6000_emit_2insn_and): New.
618         * config/rs6000/rs6000.c (num_insns_constant): Adjust.
619         (build_mask64_2_operands, includes_lshift_p, includes_rshift_p,
620         includes_rldic_lshift_p, includes_rldicr_lshift_p,
621         insvdi_rshift_rlwimi_p, extract_MB, extract_ME): Delete.
622         (rs6000_is_valid_mask, rs6000_is_valid_and_mask,
623         rs6000_insn_for_and_mask, rs6000_is_valid_shift_mask,
624         s6000_insn_for_shift_mask, rs6000_is_valid_insert_mask,
625         rs6000_insn_for_insert_mask, rs6000_is_valid_2insn_and,
626         rs6000_emit_2insn_and): New.
627         (print_operand) <'b', 'B', 'm', 'M', 's', 'S', 'W'>: Delete.
628         (rs6000_rtx_costs) <CONST_INT>: Delete mask_operand and mask64_operand
629         handling.
630         <NOT>: Don't fall through to next case.
631         <AND>: Handle the various rotate-and-mask cases directly.
632         <IOR>: Always cost as one insn.
633         * config/rs6000/rs6000.md (splitter for bswap:SI): Adjust.
634         (and<mode>3): Adjust expander for the new patterns.
635         (and<mode>3_imm, and<mode>3_imm_dot, and<mode>3_imm_dot2,
636         and<mode>3_imm_mask_dot, and<mode>3_imm_mask_dot2): Adjust condition.
637         (*and<mode>3_imm_dot_shifted): New.
638         (*and<mode>3_mask): Delete, rewrite as ...
639         (and<mode>3_mask): ... New.
640         (*and<mode>3_mask_dot, *and<mode>3_mask_dot): Rewrite.
641         (andsi3_internal0_nomc): Delete.
642         (*andsi3_internal6): Delete.
643         (*and<mode>3_2insn): New.
644         (insv, insvsi_internal, *insvsi_internal1, *insvsi_internal2,
645         *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
646         *insvsi_internal6, insvdi_internal, *insvdi_internal2,
647         *insvdi_internal3): Delete.
648         (*rotl<mode>3_mask, *rotl<mode>3_mask_dot, *rotl<mode>3_mask_dot2,
649         *rotl<mode>3_insert, *rotl<mode>3_insert_2, *rotl<mode>3_insert_3,
650         *rotl<mode>3_insert_4, two splitters for multi-precision shifts,
651         *ior<mode>_mask): New.
652         (extzv, extzvdi_internal, *extzvdi_internal1, *extzvdi_internal2,
653         *rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
654         *ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
655         *lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
656         Delete.
657         (ashr<mode>3): Delete expander.
658         (*ashr<mode>3): Rename to ...
659         (ashr<mode>3): ... This.
660         (ashrdi3_no_power, *ashrdisi3_noppc64be): Delete.
661         (*rotldi3_internal4, *rotldi3_internal5 and split,
662         *rotldi3_internal6 and split, *ashldi3_internal4, ashldi3_internal5
663         and split, *ashldi3_internal6 and split, *ashldi3_internal7,
664         ashldi3_internal8 and split, *ashldi3_internal9 and split): Delete.
665         (*anddi3_2rld, *anddi3_2rld_dot, *anddi3_2rld_dot2): Delete.
666         (splitter for loading a mask): Adjust.
667         * doc/md.texi (Machine Constraints): Remove q, S, T, t constraints.
668
669 2015-07-20  Marek Polacek  <polacek@redhat.com>
670
671         * genemit.c (print_code, gen_exp, gen_insn, gen_expand, gen_split,
672         output_add_clobbers, output_added_clobbers_hard_reg_p,
673         gen_rtx_scratch): Remove declarations.
674
675 2015-07-20  Marek Polacek  <polacek@redhat.com>
676
677         PR c++/55095
678         * doc/invoke.texi: Document -Wshift-overflow and -Wshift-overflow=.
679
680 2015-07-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
681
682         * simplify-rtx.c (simplify_unary_operation_1, NEG case):
683         (neg (x ? (neg y) : y)) -> !x ? (neg y) : y.
684
685 2015-07-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
686
687         * combine.c (combine_simplify_rtx): Move simplification step
688         before various transformations/substitutions.
689
690 2015-07-20  Mikhail Maltsev  <maltsevm@gmail.com>
691
692         * wide-int.h (struct binary_traits): Fix partial specialization syntax.
693         (struct int_traits): Likewise.
694
695 2015-07-18  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
696
697         * vmsdbgout.c (vmsdbgout_decl): Change name of prototyped
698         function to vmsdbgout_function_decl.
699
700 2015-07-18  Uros Bizjak  <ubizjak@gmail.com>
701
702         PR target/66922
703         * config/i386/i386.c (ix86_expand_pextr): Reject extractions
704         from misaligned positions.
705         (ix86_expand_pinsr): Reject insertions to misaligned positions.
706
707 2015-07-18  Sebastian Pop  <s.pop@samsung.com>
708
709         PR middle-end/46851
710         PR middle-end/60340
711         * Makefile.in: Removed omega.o.
712         * common.opt: Document flag fcheck-data-deps as deprecated.
713         * doc/invoke.texi: Remove documentation for fcheck-data-deps and
714         its associated params: omega-max-vars, omega-max-geqs,
715         omega-max-eqs, omega-max-wild-cards, omega-hash-table-size,
716         omega-max-keys, omega-eliminate-redundant-constraints.
717         * doc/loop.texi: Remove all the section on Omega.
718         * graphite-blocking.c: Include missing params.h: it used to be
719         included through tree-data-ref.h and omega.h.
720         * graphite-isl-ast-to-gimple.c: Same.
721         * graphite-optimize-isl.c: Same.
722         * graphite-sese-to-poly.c: Same.
723         * graphite.c: Same.
724         * omega.c: Remove.
725         * omega.h: Remove.
726         * params.def: Removed PARAM_OMEGA_MAX_VARS, PARAM_OMEGA_MAX_GEQS,
727         PARAM_OMEGA_MAX_EQS, PARAM_OMEGA_MAX_WILD_CARDS,
728         PARAM_OMEGA_HASH_TABLE_SIZE, PARAM_OMEGA_MAX_KEYS, and
729         PARAM_OMEGA_ELIMINATE_REDUNDANT_CONSTRAINTS.
730         * passes.def: Remove pass_check_data_deps.
731         * tree-data-ref.c (dump_affine_function): Declare DEBUG_FUNCTION.
732         (dump_conflict_function): Same.
733         (dump_subscript): Same.
734         (print_direction_vector): Same.
735         (print_dir_vectors): Same.
736         (print_lambda_vector): Same.
737         (print_dist_vectors): Same.
738         (dump_data_dependence_relation): Same.
739         (dump_data_dependence_relations): Same.
740         (dump_dist_dir_vectors): Same.
741         (dump_ddrs): Same.
742         (init_omega_eq_with_af): Removed.
743         (omega_extract_distance_vectors): Removed.
744         (omega_setup_subscript): Removed.
745         (init_omega_for_ddr_1): Removed.
746         (init_omega_for_ddr): Removed.
747         (ddr_consistent_p): Removed.
748         (compute_affine_dependence): Do not use omega to check data
749         dependences.
750         (compute_data_dependences_for_bb): Removed.
751         (analyze_all_data_dependences): Removed.
752         (tree_check_data_deps): Removed.
753         * tree-data-ref.h: Do not include omega.h.
754         (compute_data_dependences_for_bb): Removed.
755         (tree_check_data_deps): Removed.
756         * tree-ssa-loop.c (pass_check_data_deps): Removed.
757         (make_pass_check_data_deps): Removed.
758         * tree-ssa-phiopt.c: Include params.h.
759         * tree-vect-data-refs.c: Same.
760         * tree-vect-slp.c: Same.
761
762 2015-07-18  Uros Bizjak  <ubizjak@gmail.com>
763
764         * config/i386/i386.md (pushsf splitter): Pass curr_insn to
765         find_constant_src.  FAIL if find_constant_src returns NULL_RTX.
766         (mem->fpreg splitters): Ditto.
767         (general_operand->nonimmediate_operand splitter): Use explicit modes.
768         Disable DFmode for TARGET_64BIT.
769
770 2015-07-17  H.J. Lu  <hongjiu.lu@intel.com>
771
772         PR target/66906
773         * config/i386/i386.c (ix86_expand_prologue): Replicate static
774         chain on the stack.
775
776 2015-07-17  Nathan Sidwell  <nathan@codesourcery.com>
777
778         * config/nvptx/mkoffload.c (process): Constify host data.
779         * config/i386/intelmic-mkoffload.c (generate_target_descr_file):
780         Constify host data.
781         (generate_host_descr_file): Likewise.
782
783 2015-07-17  Aditya Kumar  <aditya.k7@samsung.com>
784             Sebastian Pop  <s.pop@samsung.com>
785
786         PR middle-end/61929
787         * graphite-dependences.c (add_pdr_constraints): Renamed
788         pdr->extent to pdr->subscript_sizes.
789         * graphite-interchange.c (build_linearized_memory_access): Add
790         back all gcc_assert's that the "isl_int to isl_val conversion"
791         patch has removed.  Refactored.
792         (pdr_stride_in_loop): Renamed pdr->extent to pdr->subscript_sizes.
793         * graphite-poly.c (new_poly_dr): Same.
794         (free_poly_dr): Same.
795         * graphite-poly.h (struct poly_dr): Same.
796         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Ignore
797         all data references other than ARRAY_REF, MEM_REF, and COMPONENT_REF.
798         * graphite-scop-detection.h: Fix space.
799         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Add
800         back all gcc_assert's removed by a previous patch.
801         (wrap): Remove the_isl_ctx global variable that the same patch has
802         added.
803         (build_loop_iteration_domains): Same.
804         (add_param_constraints): Same.
805         (pdr_add_data_dimensions): Same.  Refactored.
806         (build_poly_dr): Renamed extent to subscript_sizes.
807
808 2015-07-17  Marek Polacek  <polacek@redhat.com>
809
810         * fold-const.c (fold_binary_loc): Move A - (A & B) into ~B & A ...
811         * match.pd: ... here.
812
813 2015-07-17  Nathan Sidwell  <nathan@codesourcery.com>
814
815         * config/nvptx/mkoffload.c (process): Constify target data.
816         * config/i386/intelmic-mkoffload.c (generate_target_descr_file):
817         Constify target data.
818         (generate_target_offloadend_file): Likewise.
819
820 2015-07-17  Yuri Rumyantsev  <ysrumyan@gmail.com>
821
822         * tree-vect-loop-manip.c (rename_variables_in_bb): Add argument
823         to allow renaming of PHI arguments on edges incoming from outer
824         loop header, add corresponding check before start PHI iterator.
825         (slpeel_tree_duplicate_loop_to_edge_cfg): Introduce new bool
826         variable DUPLICATE_OUTER_LOOP and set it to true for outer loops
827         with true force_vectorize.  Set-up dominator for outer loop too.
828         Pass DUPLICATE_OUTER_LOOP as argument to rename_variables_in_bb.
829         (slpeel_can_duplicate_loop_p): Allow duplicate of outer loop if it
830         was marked with force_vectorize and has restricted cfg.
831         (slpeel_tree_peel_loop_to_edge): Do not rename exit PHI uses in
832         inner loop.
833         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
834         do peeling for outer loops.
835
836 2015-07-17  Yvan Roux  <yvan.roux@linaro.org>
837             Matthias Klose  <doko@ubuntu.com>
838
839         * configure.ac: Move AC_ARG_WITH checks for native-system-header-dir,
840         build-sysroot, sysroot from the `Miscenalleous configure options' to
841         the `Directories' section and strip trailing `/' from with_sysroot.
842         (gcc_gxx_include_dir): Don't strip a `/' sysroot value.
843         * configure: Regenerated.
844
845 2015-07-17  Uros Bizjak  <ubizjak@gmail.com>
846
847         PR target/66824
848         * config/i386/i386.h (TARGET_HARD_SF_REGS): New define.
849         (TARGET_HARD_DF_REGS): Ditto.
850         (TARGET_HARD_XF_REGS): Ditto.
851         * config/i386/i386.md (*movxf_internal): Add alternatives 9 and 10.
852         Enable alternatives 9 and 10 only for !TARGET_HARD_XF_REG target.
853         (*movdf_internal): Add alternatives 22, 23, 24 and 25. Enable
854         alternatives 22, 23, 24 and 25 only for !TARGET_HARD_DF_REG target.
855         (*movsf_internal): Add alternatives 16 and 17. Enable
856         alternatives 16 and 17 only for !TARGET_HARD_SF_REG target.
857
858 2015-07-17  Uros Bizjak  <ubizjak@gmail.com>
859
860         PR rtl-optimization/66891
861         * calls.c (expand_call): Wrap precompute_register_parameters with
862         NO_DEFER_POP/OK_DEFER_POP to prevent deferred pops.
863
864 2015-07-16  Nathan Sidwell  <nathan@codesourcery.com>
865
866         * config/nvptx/mkoffload.c (process): Constify mapping variables.
867         Define target data struct and initialize it.
868
869 2015-07-16  Vladimir Makarov  <vmakarov@redhat.com>
870
871         PR rtl-optimization/66626
872         * ira.h (emit-rtl.h): Include.
873         (non_spilled_static_chain_regno_p): New.
874         * ira-color.c (setup_profitable_hard_regs): Clear profitable regs
875         unless it is non spilled static chain pseudo.
876         (assign_hard_rego): Spill memory profitable allocno unless it is
877         non spilled static chain pseudo.
878         (allocno_spill_priority_compare): Put non spilled static chain
879         pseudo at the end of sorted array.
880         (improve_allocation): Do nothing if we have static chain and
881         non-local goto.
882         (allocno__priority_compare_func): Put non spilled static chain
883         pseudo at the beginning of sorted array.
884         (move_spill_restore): Ignore non spilled static chain pseudo.
885         * ira-costs.c (find_costs_and_classes): Don't assign class NO_REGS
886         to non spilled static chain pseudo.
887         * lra-assigns.c (pseudo_compare_func): Put non spilled static chain
888         pseudo at the beginning of sorted array.
889         (spill_for): Spill non spilled static chain pseudo last.
890         * lra-constraints.c (lra_constraints): Remove static chain pseudo
891         check for equivalence.
892
893 2015-07-16  Martin Liska  <mliska@suse.cz>
894
895         PR ipa/66896.
896         * ipa-prop.c (update_jump_functions_after_inlining): Create properly
897         dst_ctx if it does not exist.
898
899 2015-07-16  Martin Liska  <mliska@suse.cz>
900
901         * hash-set.h (remove): New function.
902         (iterator): New iteration class for hash_set.
903
904 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
905
906         * genattrtab.c (make_canonical): Add a file_location parameter.
907         Use fatal_at rather than fatal.
908         (get_attr_value): Likewise.  Update call to make_canonical.
909         (fill_attr, make_length_attrs, optimize_attrs, gen_attr)
910         (make_internal_attr): Update calls accordingly.
911
912 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
913
914         * read-md.h (message_with_line, error_with_line): Delete.
915         * read-md.c (message_with_line, error_with_line): Delete.
916         * gensupport.h: Include read-md.h.
917         (md_rtx_info): New structure.
918         (read_md_rtx): Use it.  Return a bool success value.
919         * gensupport.c (read_md_rtx): Likewise.
920         * genattr-common.c (gen_attr): Take an md_rtx_info rather than an rtx.
921         (main): Update after interface changes.
922         * genattr.c (gen_attr): Take an md_rtx_info rather than an rtx.
923         (main): Update after interface changes.
924         * genattrtab.c (insn_code_number): Delete.
925         (optimize_attrs): Add a max_insn_code parameter and use it instead
926         of insn_code_number.
927         (gen_attr): Take an md_rtx_info rather than an rtx and lineno.
928         Use *_at rather than *_with_line functions.
929         (gen_insn): Likewise.
930         (gen_delay): Likewise.
931         (gen_insn_reserv): Likewise.
932         (gen_bypass): Take an md_rtx_info rather than an rtx.
933         (main): Update after interface changes.  Use a local max_insn_code
934         variable instead of insn_code_number.
935         * genautomata.c (gen_cpu_unit): Take an md_rtx_info rather than
936         an rtx.  Use fatal_at rather than fatal.
937         (gen_query_cpu_unit, gen_bypass, gen_excl_set)
938         (gen_presence_absence_set, gen_presence_set, gen_final_presence_set)
939         (gen_absence_set, gen_final_absence_set, gen_automaton)
940         (gen_automata_option, gen_reserv, gen_insn_reserv): Likewise.
941         (main): Update after interface changes.
942         * gencodes.c (gen_insn): Take an md_rtx_info rather than an rtx
943         and code number.
944         (main): Update after interface changes.
945         * genconditions.c (main): Use new read_md_rtx interface.
946         * genconfig.c (gen_insn): Take an md_rtx_info rather than an rtx.
947         (gen_expand, gen_split, gen_peephole, gen_peephole2): Likewise.
948         (main): Update after interface changes.
949         * genemit.c (insn_code_number, insn_index_number): Delete.
950         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
951         Use fatal_at rather than fatal.
952         (gen_expand): Take an md_rtx_info rather than an rtx.  Use fatal_at
953         rather than fatal.
954         (gen_split): Likewise.
955         (main): Update after interface changes.
956         * genextract.c (line_no): Delete.
957         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
958         Update call to walk_rtx.
959         (VEC_safe_set_locstr): Add an md_rtx_info argument.  Use message_at
960         rather than message_with_line.
961         (walk_rtx): Add an md_rtx_info argument.  Update call to
962         VEC_safe_set_locstr.
963         (main): Update after interface changes.
964         * genflags.c (gen_insn): Take an md_rtx_info rather than an rtx
965         and lineno.  Use error_at rather than separate message_with_line
966         calls and have_error assignments.
967         (main): Update after interface changes.
968         * genmddump.c (main): Use new read_md_rtx interface.
969         * genopinit.c (insn): Take an md_rtx_info rather than an rtx.
970         (main): Update after interface changes.
971         * genoutput.c (next_code_number): Delete.
972         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
973         (gen_peephole, gen_expand, gen_split): Likewise.
974         (note_constraint): Likewise.  Use *_at rather than *_with_line
975         functions.
976         (main): Update after interface changes.
977         * genpeep.c (gen_peephole): Take an md_rtx_info rather than an
978         rtx and lineno.
979         (main): Update after interface changes.
980         * genpreds.c (process_define_predicate): Take an md_rtx_info rather
981         than an rtx and lineno.
982         (process_define_constraint): Likewise.
983         (process_define_register_constraint): Likewise.
984         (main): Update after interface changes.
985         * genrecog.c (next_insn_code, pattern_lineno): Delete.
986         (validate_pattern): Replace top-level rtx with an md_rtx_info.
987         Use *_at rather than *_with_line functions.
988         (match_pattern_2): Likewise.
989         (match_pattern_1, match_pattern): Add an md_rtx_info parameter.
990         (get_peephole2_pattern): Take an md_rtx_info rather than an rtvec.
991         Use *_at rather than *_with_line functions.
992         * gentarget-def.c (add_insn): New function.
993         (main): Use it.  Use new read_md_rtx interface.
994
995 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
996
997         * gensupport.h (compute_test_codes): Take a file_location rather
998         than a line number.
999         * gensupport.c (compute_test_codes): Likewise.  Use *_at functions
1000         rather than *_with_line functions.
1001         (process_define_predicate): Update call to compute_test_codes.
1002         * genpreds.c (validate_exp): Take a file_location rather than a
1003         line number.  Use *_at functions rather than *_with_line functions.
1004         (process_define_predicate): Update call to validate_exp.
1005         (constraint_data): Replace lineno field with a file_location.
1006         (add_constraint): Take a file_location rather than a line number.
1007         Use *_at functions rather than *_with_line functions.  Fix error
1008         message for address constraints.  Update after changes to
1009         validate_exp, constraint_data and compute_test_codes.
1010         (process_define_constraint): Update accordingly.
1011         (process_define_register_constraint): Likewise.
1012
1013 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
1014
1015         * genoutput.c (data): Use a file_location to record the source
1016         position.
1017         (nothing): Delete.
1018         (idata, idata_end): Remove initialization.
1019         (constraint_data): Replace lineno with a file_location.
1020         (output_insn_data): Update after changes to data.
1021         (gen_insn, gen_peephole, gen_expand, gen_split): Likewise.
1022         (scan_operands): Likewise, using *_at rather than *_with_line
1023         functions.
1024         (process_template): Likewise.
1025         (validate_insn_alternatives): Likewise.
1026         (validate_insn_operands): Likewise.
1027         (validate_optab_operands): Likewise.
1028         (init_insn_for_nothing): Initialize idata and idata_end.
1029         (note_constraint): Update after changes to constraint_data,
1030         using at rather than with_line functions.
1031         (mdep_constraint_len): Take a file_location rather than a
1032         line number.  Use at rather than with_line functions.
1033
1034 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
1035
1036         * read-md.h (fatal_at): Declare.
1037         * read-md.c (fatal_at): New function.
1038         * genattrtab.c (insn_def, attr_desc, delay_desc): Use a file_location
1039         to record the source position.
1040         (check_attr_test): Take a file_location instead of a line number.
1041         Use fatal_at instead of fatal.
1042         (check_attr_value): Update after above changes, using "at"
1043         rather than "with_line" reporting functions.
1044         (convert_set_attr_alternative): Likewise.
1045         (gen_attr): Likewise.
1046         (check_defs): Likewise.  Don't assign to read_md_filename.
1047         (gen_insn): Update initialization after above changes.
1048         (gen_delay): Likewise.
1049         (write_insn_cases): Print the filename for a define_peephole.
1050         (gen_insn_reserv): Take a line number as argument and update
1051         the call to check_attr_test.
1052         (main): Pass a line number to gen_insn_reserv.
1053
1054 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
1055
1056         * read-md.h (file_location): New structure.
1057         (directive_handler_t): Take a file_location rather than a line number.
1058         (message_at, error_at): Declare.
1059         (read_skip_construct): Delete.
1060         * read-md.c (message_with_line_1): Replace with...
1061         (message_at_1): ...this new function.
1062         (message_at, error_at): New functions.
1063         (message_with_line, error_with_line): Update to use message_at_1.
1064         (handle_enum): Take a file_location rather than a line number
1065         and use error_at for error reporting.
1066         (handle_include): Likewise.
1067         (read_skip_construct): Likewise.  Make static.
1068         (handle_file): Update after above changes.  Pass a file_location
1069         rather than a line number to handle_directive.
1070         * gensupport.c (queue_elem): Replace separate filename and lineno
1071         with a file_location.
1072         (queue_pattern): Replace filename and lineno arguments with a
1073         file_location.  Update after change to queue_elem.
1074         (process_define_predicate): Replace lineno argument with a
1075         file_location and use error_at for error reporting.  Update
1076         after above changes.
1077         (process_rtx): Likewise.
1078         (subst_pattern_match): Likewise.
1079         (get_alternatives_number): Likewise.
1080         (alter_predicate_for_insn): Likewise.
1081         (rtx_handle_directive): Likewise.
1082         (is_predicable): Update after above changes, using error_at rather
1083         than error_with_line.
1084         (has_subst_attribute): Likewise.
1085         (identify_predicable_attribute): Likewise.
1086         (alter_attrs_for_subst_insn): Likewise.
1087         (process_one_cond_exec): Likewise.
1088         (process_substs_on_one_elem): Likewise.
1089         (process_define_subst): Likewise.
1090         (check_define_attr_duplicates): Likewise.
1091         (read_md_rtx): Update after change to queue_elem.
1092
1093 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
1094
1095         * genoutput.c (next_index_number): Delete.
1096         (data): Remove index_number.
1097         (gen_insn, gen_peephole, gen_expand, gen_split): Update accordingly.
1098         (main): Remove manipulation of next_index_number.
1099
1100 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
1101
1102         * genattrtab.c (check_attr_value): Remove handling of null attrs.
1103         (make_canonical): Likewise.
1104
1105 2015-07-16  Eric Botcazou  <ebotcazou@adacore.com>
1106
1107         * config/sparc/sparc.md (save_stack_nonlocal): Use adjust_address
1108         instead of adjust_address_nv.
1109         (restore_stack_nonlocal): Likewise.
1110         (nonlocal_goto): Likewise.
1111
1112 2015-07-16  Tom de Vries  <tom@codesourcery.com>
1113
1114         * tree-parloops.c (create_parallel_loop): Handle case that exit phi does
1115         not have a corresponding loop header phi.
1116
1117 2015-07-16  Tom de Vries  <tom@codesourcery.com>
1118
1119         * tree-parloops.c (create_loads_for_reductions): Handle case that
1120         reduction is unused.
1121
1122 2015-07-16  Richard Biener  <rguenther@suse.de>
1123
1124         PR tree-optimization/66894
1125         * tree-vrp.c (register_edge_assert_for_2): Fix bad assumption
1126         about deriving NE_EXPR from truncated values.
1127
1128 2015-07-16  Martin Liska  <mliska@suse.cz>
1129
1130         * alloc-pool.h
1131         (object_allocator): Add new class.
1132         (pool_allocator::initialize): Use the underlying class.
1133         (pool_allocator::allocate): Likewise.
1134         (pool_allocator::remove): Likewise.
1135         (operator new): A new generic allocator.
1136         * asan.c (struct asan_mem_ref): Remove unused members.
1137         (asan_mem_ref_new): Replace new operator with
1138         object_allocator::allocate.
1139         (free_mem_ref_resources): Change deallocation.
1140         * cfg.c (initialize_original_copy_tables): Replace pool_allocator
1141         with object_allocator.
1142         * config/sh/sh.c (add_constant): Replace new operator with
1143         object_allocator::allocate.
1144         (sh_reorg): Change call to a release method.
1145         * cselib.c (struct elt_list): Remove unused members.
1146         (new_elt_list): Replace new operator with
1147         object_allocator::allocate.
1148         (new_elt_loc_list): Likewise.
1149         (new_cselib_val): Likewise.
1150         (unchain_one_elt_list): Change delete operator with remove method.
1151         (unchain_one_elt_loc_list): Likewise.
1152         (unchain_one_value): Likewise.
1153         (cselib_finish): Release newly added static allocators.
1154         * cselib.h (struct cselib_val): Remove unused members.
1155         (struct elt_loc_list): Likewise.
1156         * df-problems.c (df_chain_alloc): Replace pool_allocator with
1157         object_allocator.
1158         * df-scan.c (struct df_scan_problem_data): Likewise.
1159         (df_scan_alloc): Likewise.
1160         * df.h (struct dataflow): Likewise.
1161         * dse.c (struct read_info_type): Likewise.
1162         (struct insn_info_type): Likewise.
1163         (struct dse_bb_info_type): Likewise.
1164         (struct group_info): Likewise.
1165         (struct deferred_change): Likewise.
1166         (get_group_info): Likewise.
1167         (delete_dead_store_insn): Likewise.
1168         (free_read_records): Likewise.
1169         (replace_read): Likewise.
1170         (check_mem_read_rtx): Likewise.
1171         (scan_insn): Likewise.
1172         (dse_step1): Likewise.
1173         (dse_step7): Likewise.
1174         * et-forest.c (struct et_occ): Remove unused members.
1175         (et_new_occ): Use allocate instead of new operator.
1176         (et_new_tree): Likewise.
1177         (et_free_tree): Call release method explicitly.
1178         (et_free_tree_force): Likewise.
1179         (et_free_pools): Likewise.
1180         (et_split): Use remove instead of delete operator.
1181         * et-forest.h (struct et_node): Remove unused members.
1182         * ipa-cp.c: Change pool_allocator to object_allocator.
1183         * ipa-inline-analysis.c: Likewise.
1184         * ipa-profile.c: Likewise.
1185         * ipa-prop.c: Likewise.
1186         * ipa-prop.h: Likewise.
1187         * ira-build.c (initiate_cost_vectors): Cast return value.
1188         (ira_allocate_cost_vector): Likewise.
1189         * ira-color.c (struct update_cost_record): Remove unused members.
1190         * lra-int.h (struct lra_live_range): Likewise.
1191         (struct lra_copy): Likewise.
1192         (struct lra_insn_reg): Likewise.
1193         * lra-lives.c (lra_live_ranges_finish): Release new static allocator.
1194         * lra.c (new_insn_reg): Replace new operator with allocate method.
1195         (free_insn_regs): Same for operator delete.
1196         (finish_insn_regs): Release new static allocator.
1197         (finish_insn_recog_data): Likewise.
1198         (lra_free_copies): Replace delete operator with remove method.
1199         (lra_create_copy): Replace operator new with allocate method.
1200         (invalidate_insn_data_regno_info): Same for remove method.
1201         * regcprop.c (struct queued_debug_insn_change): Remove unused members.
1202         (free_debug_insn_changes): Replace delete operator with remove method.
1203         (replace_oldest_value_reg): Replace operator new with allocate method.
1204         (pass_cprop_hardreg::execute): Release new static variable.
1205         * sched-deps.c (sched_deps_init): Change pool_allocator to
1206         object_allocator.
1207         * sel-sched-ir.c: Likewise.
1208         * sel-sched-ir.h: Likewise.
1209         * stmt.c (expand_case): Likewise.
1210         (expand_sjlj_dispatch_table): Likewise.
1211         * tree-sra.c (struct access): Remove unused members.
1212         (struct assign_link): Likewise.
1213         (sra_deinitialize): Release newly added static pools.
1214         (create_access_1):Replace operator new with allocate method.
1215         (build_accesses_from_assign): Likewise.
1216         (create_artificial_child_access): Likewise.
1217         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Change
1218         pool_allocator to object_allocator.
1219         * tree-ssa-pre.c: Likewise.
1220         * tree-ssa-reassoc.c: Likewise.
1221         * tree-ssa-sccvn.c (allocate_vn_table): Likewise.
1222         * tree-ssa-strlen.c: Likewise.
1223         * tree-ssa-structalias.c: Likewise.
1224         * var-tracking.c (onepart_pool_allocate): New function.
1225         (unshare_variable): Use the newly added function.
1226         (variable_merge_over_cur): Likewise.
1227         (variable_from_dropped): Likewise.
1228         (variable_was_changed): Likewise.
1229         (set_slot_part): Likewise.
1230         (emit_notes_for_differences_1): Likewise.
1231         (vt_finalize): Release newly added static pools.
1232
1233 2015-07-16  Martin Jambor  <mjambor@suse.cz>
1234
1235         * ipa-prop.h (param_aa_status): Rename to ipa_param_aa_status.  Adjust
1236         all uses.  Fix two typos in its general comment.
1237         (func_body_info): Rename to ipa_func_body_info.  Adjust all uses.
1238
1239 2015-07-16  Ilya Enkovich  <enkovich.gnu@gmail.com>
1240
1241         * config/i386/linux-common.h (LINK_MPX): New.
1242         (MPX_SPEC): Use LINK_MPX instead of %(link_mpx).
1243         * configure.ac: Add HAVE_LD_BNDPLT_SUPPORT macro
1244         indicating '-z bndplt' support by linker.
1245         * configure: Regenerate.
1246         * config.in: Regenerate.
1247
1248 2015-07-16  Richard Biener  <rguenther@suse.de>
1249
1250         * fold-const.c (fold_widened_comparison): Remove.
1251         (fold_sign_changed_comparison): Likewise.
1252         (fold_comparison): Move widened and sign-changed comparison
1253         simplification ...
1254         * match.pd: ... to patterns here.
1255         * generic-match-head.c: Include target.h.
1256         * gimple-match-head.c: Likewise.
1257
1258 2015-07-16  Richard Biener  <rguenther@suse.de>
1259
1260         * tree-ssa-dom.c (dom_valueize): New function.
1261         (record_temporary_equivalences): Also record equivalences
1262         for dominating stmts that have uses of equivalences we are
1263         about to record.
1264
1265 2015-07-16  Bin Cheng  <bin.cheng@arm.com>
1266
1267         * tree-ssa-loop-ivopts.c (add_candidate): Remove call to
1268         add_autoinc_candidates.
1269         (add_iv_candidate_for_biv): Rename to add_iv_candidate_for_biv.
1270         (add_iv_candidate_for_biv): Rename from add_iv_candidate_for_biv.
1271         (add_old_ivs_candidates): Rename to add_iv_candidate_for_bivs.
1272         (add_iv_candidate_for_bivs): Rename from add_old_ivs_candidates.
1273         Call new function.
1274         (add_iv_value_candidates): Rename to add_iv_candidate_for_use.
1275         (add_iv_candidate_for_use): Rename from add_iv_value_candidates.
1276         Remove parameter struct iv*.  Call add_autoinc_candidates here.
1277         (add_derived_ivs_candidates): Rename to add_iv_candidate_for_uses.
1278         (add_iv_candidate_for_uses): Rename from add_derived_ivs_candidates.
1279         Call new function.
1280         (find_iv_candidates): Call new functions.
1281
1282 2015-07-16  Sandra Loosemore  <sandra@codesourcery.com>
1283
1284         * config/nios2/nios2.c (nios2_emit_stack_limit_check): Fix
1285         uninitialized-variable warning.
1286
1287 2015-07-16  Kaz Kojima  <kkojima@gcc.gnu.org>
1288
1289         PR target/65249
1290         * config/sh/sh.md (movdi): Split simple reg move to two movsi
1291         when the destination is R0.
1292
1293 2015-07-16  Uros Bizjak  <ubizjak@gmail.com>
1294
1295         PR target/66866
1296         * config/i386/i386-protos.h (ix86_expand_pextr): New prototype.
1297         * config/i386/i386.c (ix86_expand_pextr): New function.
1298         (ix86_expand_pinsr): Handle V1TI and TI modes.  Call ix86_expand_pextr
1299         for non-lowpart subregs.
1300         * config/i386/i386.md (extzv<mode>): Expand with ix86_expand_pextr.
1301         (insv<mode>): Use SWI248 mode iterator.
1302         (insv<mode>_1): Ditto.
1303
1304 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
1305             Sebastian Pop  <s.pop@samsung.com>
1306
1307         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Point
1308         iterator to use_stmt.
1309
1310 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
1311             Sebastian Pop <s.pop@samsung.com>
1312
1313         * graphite-scop-detection.c (build_scops_1): Discard scops for
1314         which entry==exit.
1315
1316 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
1317             Sebastian Pop <s.pop@samsung.com>
1318
1319         * graphite-scop-detection.c (stmt_simple_for_scop_p): Bail out in
1320         case of a return statement in scop.
1321
1322 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
1323             Sebastian Pop <s.pop@samsung.com>
1324
1325         * graphite-sese-to-poly.c (parameter_index_in_region): Only handle
1326         INTEGER_TYPE parameters.
1327         (scan_tree_for_params): Handle REAL_CST, COMPLEX_CST, and
1328         VECTOR_CST in scan_tree_for_params.
1329         (add_conditions_to_domain): Only constrain on INTEGER_TYPE.
1330
1331 2015-07-15  Andrew MacLeod  <amacleod@redhat.com>
1332
1333         * gimple-pretty-print.h: Don't include pretty-print.h.
1334         * tree-streamer.h: Don't include lto-streamer.h.
1335         * gimple-streamer.h: Include tree-streamer.h rather than lto-streamer.h.
1336         * gimple-streamer-in.c: Remove redundant includes.
1337         * gimple-streamer-out.c: Likewise.
1338         * ipa-devirt.c: Likewise.
1339         * ipa-icf.c: Likewise.
1340         * ipa-inline-analysis.c: Likewise.
1341         * ipa-polymorphic-call.c: Likewise.
1342         * ipa-profile.c: Likewise.
1343         * ipa-prop.c: Likewise.
1344         * ipa-pure-const.c: Likewise.
1345         * lto-cgraph.c: Likewise.
1346         * lto-streamer-in.c: Likewise.
1347         * lto-streamer-out.c: Likewise.
1348         * lto-streamer.c: Likewise.
1349         * tree-streamer-in.c: Likewise.
1350         * tree-streamer-out.c: Likewise.
1351         * tree-streamer.c: Likewise.
1352
1353 2015-07-15  Andrew MacLeod  <amacleod@redhat.com>
1354
1355         * opth-gen.awk: Check for UNKNOWN_LOCATION rather than GCC_TM_H, don't
1356         include input.h.
1357         * opts.c: Remove multiline #include comment.
1358
1359 2015-07-15  Nathan Sidwell  <nathan@codesourcery.com>
1360
1361         * config/nvptx/mkoffload.c (process): Add C++ protection to
1362         emitted code.
1363
1364 2015-07-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
1365
1366         PR target/66854
1367         * config/rs6000/rs6000.c (rs6000_pass_by_reference): Move test for
1368         null before IEEE 128-bit floating point support patch.
1369
1370 2015-07-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1371
1372         * simplify-rtx.c (simplify_ternary_operation): Add simplification
1373         for (!c) != {0,...,0} ? a : b for vector modes.
1374
1375 2015-07-15  Paolo Bonzini  <bonzini@gnu.org>
1376             Martin Jambor  <mjambor@suse.cz>
1377
1378         * ipa-inline-analysis.c (unmodified_parm_or_parm_agg_item): Accept
1379         struct func_body_info* instead of struct ipa_node_params*, expecting
1380         fbi->info to be filled in.  Replace throughout.  Adjust call to
1381         ipa_load_from_parm_agg.
1382         (set_cond_stmt_execution_predicate): Accept struct func_body_info*
1383         instead of struct ipa_node_params*.  Adjust calls to other functions
1384         so that they pass either fbi or fbi->info.
1385         (set_switch_stmt_execution_predicate): Likewise.
1386         (will_be_nonconstant_predicate): Likewise.
1387         (compute_bb_predicates): Likewise.
1388         (estimate_function_body_sizes): Move asserts earlier.  Fill in
1389         struct func_body_info, replace parms_info with fbi.info.  Adjust
1390         calls to functions that now accept struct func_body_info.
1391         * ipa-prop.c (param_aa_status, struct ipa_bb_info): Move to ipa-prop.h.
1392         (struct func_body_info): Likewise.
1393         (ipa_load_from_parm_agg_1): Rename to ipa_load_from_parm_agg,
1394         remove static.  Adjust callers.
1395         (ipa_load_from_parm_agg): Remove.
1396         * ipa-prop.h (param_aa_status, ipa_bb_info): Move from ipa-prop.c.
1397         (func_body_info): Likewise.
1398         (ipa_load_from_parm_agg): Adjust prototype.
1399
1400 2015-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1401
1402         * gensupport.c (rtx_handle_directive): Adjust.
1403         * read-rtl.c (apply_iterators): Take vector to add rtxs to
1404         instead of expr list rtx.
1405         (add_define_attr_for_define_subst): Likewise.
1406         (add_define_subst_attr): Likewise.
1407         (read_subst_mapping): Likewise.
1408         (read_rtx): Likewise.
1409         * rtl.h (read_rtx): Adjust.
1410
1411 2015-07-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1412
1413         * config/aarch64/aarch64.md (*csinc2<mode>_insn): Use cinc mnemonic.
1414
1415 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
1416
1417         PR target/58066
1418         * config/i386/i386.md (*tls_global_dynamic_64_<mode>): Depend on SP_REG.
1419         (*tls_local_dynamic_base_64_<mode>): Ditto.
1420         (*tls_local_dynamic_base_64_largepic): Ditto.
1421         (tls_global_dynamic_64_<mode>): Update expander pattern.
1422         (tls_local_dynamic_base_64_<mode>): Ditto.
1423
1424 2015-07-15  Richard Biener  <rguenther@suse.de>
1425
1426         * fold-const.c (fold_binary_loc): Move bool_var != 0 -> bool_var
1427         and bool_var == 1 -> bool_var simplifications ...
1428         * match.pd: ... to patterns here.  Factor out negate_expr_p
1429         cases from the A - B -> A + (-B) patterns as negate_expr_p
1430         predicate and add a -(A + B) -> (-B) - A pattern.
1431
1432 2015-07-15  Robert Suchanek  <robert.suchanek@imgtec.com>
1433
1434         * config/mips/mips.c (mips_emit_save_slot_move): Fix typo.
1435
1436 2015-07-15  Matthew Fortune  <matthew.fortune@imgtec.com>
1437             Robert Suchanek  <robert.suchanek@imgtec.com>
1438
1439         * config/mips/mips.c (mips_int_mask): New enum.
1440         (mips_shadow_set): Likewise.
1441         (int_mask): New variable.
1442         (use_shadow_register_set_p): Change type to enum mips_shadow_set.
1443         (machine_function): Add int_mask and use_shadow_register_set.
1444         (mips_attribute_table): Add attribute handlers for interrupt and
1445         use_shadow_register_set.
1446         (mips_interrupt_mask): New static function.
1447         (mips_handle_interrupt_attr): Likewise.
1448         (mips_handle_use_shadow_register_set_attr): Likewise.
1449         (mips_use_shadow_register_set): Change return type to enum
1450         mips_shadow_set.  Add argument handling for use_shadow_register_set
1451         attribute.
1452         (mips_interrupt_extra_called_saved_reg_p): Update the conditional to
1453         compare with mips_shadow_set enum.
1454         (mips_compute_frame_info): Add interrupt mask and
1455         use_shadow_register_set to per-function information structure.
1456         Add a stack slot for EPC unconditionally.
1457         (mips_expand_prologue): Compare use_shadow_register_set value
1458         with mips_shadow_set enum.  Save EPC always in K1, clobber only K1 for
1459         masked interrupt register but in EIC mode use K0 and save Cause in K0.
1460         EPC saved and restored unconditionally.  Use PMODE_INSN macro when
1461         copying the stack pointer from the shadow register set.
1462         * config/mips/mips.h (SR_IM0): New define.
1463         * config/mips/mips.md (mips_rdpgpr): Rename to...
1464         (mips_rdpgpr_<mode>): ...this.  Use the Pmode iterator.
1465         * doc/extend.texi (Declaring Attributes of Functions): Document
1466         optional arguments for interrupt and use_shadow_register_set
1467         attributes.
1468
1469 2015-07-15  Robert Suchanek  <robert.suchanek@imgtec.com>
1470
1471         * config/mips/mips.c (mips_compute_frame_info): Allow -mhard-float in
1472         interrupt attribute.
1473         (mips_expand_prologue): Disable the floating point unit in an ISR.
1474         * config/mips/mips.h (SR_COP1): New define.
1475
1476 2015-07-15  Richard Biener  <rguenther@suse.de>
1477
1478         * genmatch.c (parser::peek, parser::peek_ident): Add argument
1479         to tell how many tokens to peek ahead (default 1).
1480         (parser::eat_token, parser::eat_ident): Return token consumed.
1481         (parser::parse_result): Parse new switch statement.
1482         * match.pd: Use case statements where appropriate.
1483
1484 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
1485
1486         PR rtl-optimization/58066
1487         * calls.c (expand_call): Precompute register parameters before stack
1488         alignment is performed.
1489
1490 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
1491
1492         PR rtl-optimization/66838
1493         * postreload.c (reload_cse_move2add): Also process
1494         CALL_INSN_FUNCTION_USAGE when resetting information of
1495         call-clobbered registers.
1496
1497 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
1498             Cesar Philippidis  <cesar@codesourcery.com>
1499             Chung-Lin Tang  <cltang@codesourcery.com>
1500
1501         * config/nios2/constraints.md (U, v): New constraints.
1502         * config/nios2/predicates.md (rdprs_dcache_operand): New.
1503         (ldstex_memory_operand): New.
1504         * config/nios2/sync.md: New file.
1505         * config/nios2/nios2.md (unspecv): Add new builtin function
1506         UNSPECV codes.
1507         (rdprs, flushd, flushda, wrpie, eni): New patterns.
1508         (top-level): Include sync.md.
1509         * config/nios2/nios2.c (N2_FTYPES): Add function types for
1510         new builtins.
1511         (N2_BUILTINS): Add arch field setting, add new builtins.
1512         (enum nios2_builtin_code,nios2_builtins): Update N2_BUILTIN_DEF
1513         for arch field.
1514         (nios2_expand_ldst_builtin): Rename from nios2_expand_ldstio_builtin.
1515         Also handle ldex/stex/ldsex/stsex builtins.
1516         (nios2_expand_rdprs_builtin): New function.
1517         (nios2_expand_cache_builtin): New function.
1518         (nios2_expand_wrpie_builtin): New function.
1519         (nios2_expand_eni_builtin): New function.
1520         (nios2_expand_builtin): Add arch field handling and new builtin
1521         cases.
1522         * doc/extend.texi (Altera Nios II Built-in Functions): Document
1523         new builtins.
1524         * doc/md.texi (Machine Constraints): Document U and v constraints.
1525
1526 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
1527             Cesar Philippidis  <cesar@codesourcery.com>
1528             Chung-Lin Tang  <cltang@codesourcery.com>
1529
1530         * config/nios2/nios2-protos.h (nios2_expand_return): Declare.
1531         * config/nios2/nios2.c (struct GTY (()) machine_function): Add
1532         callee_save_reg_size and uses_anonymous_args fields.
1533         (nios2_compute_frame_layout): Update for CDX push.n/pop.n usage.
1534         (nios2_create_cfa_notes): New function.
1535         (nios2_adjust_stack): New function for adjusting stack.
1536         (nios2_expand_prologue): Update for CDX push.n/pop.n usage.
1537         Use nios2_adjust_stack.
1538         (nios2_expand_epilogue): Likewise.
1539         (nios2_expand_return): New function.
1540         (nios2_can_use_return_insn): Update for CDX pop.n usage.
1541         (nios2_setup_incoming_varargs): Set uses_anonymous_args flag.
1542         If TARGET_HAS_CDX, defer pushing regs to nios2_expand_prologue.
1543         * config/nios2/nios2.md (return): Use nios2_expand_return.
1544
1545 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
1546             Cesar Philippidis  <cesar@codesourcery.com>
1547             Chung-Lin Tang  <cltang@codesourcery.com>
1548
1549         * config/nios2/predicates.md (pop_operation): New.
1550         (ldwm_operation, stwm_operation): New.
1551         (nios2_hard_register_operand): New.
1552         * config/nios2/nios2-protos.h (pop_operation_p): Declare.
1553         (ldstwm_operation_p): Declare.
1554         (gen_ldstwm_peep): Declare.
1555         * config/nios2/nios2.c: (nios2_ldst_parallel): Declare.
1556         (base_reg_adjustment_p): New.
1557         (pop_operation_p): New.
1558         (CDX_LDSTWM_VALID_REGS_0, CDX_LDSTWM_VALID_REGS_1): Define.
1559         (nios2_ldstwm_regset_p): New.
1560         (ldstwm_operation_p): New.
1561         (gen_ldst): New.
1562         (nios2_ldst_parallel): New.
1563         (struct ldswm_operand): Declare.
1564         (compare_ldstwm_operands): New.
1565         (can_use_cdx_ldstw): New.
1566         (gen_ldstwm_peep): New.
1567         * config/nios2/nios2-ldstwm.sml: New.
1568         * config/nios2/nios2.md: Include ldstwm.md.
1569         * config/nios2/ldstwm.md: Generated.
1570
1571 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
1572             Cesar Philippidis  <cesar@codesourcery.com>
1573             Chung-Lin Tang  <cltang@codesourcery.com>
1574
1575         * config/nios2/nios2.h (LABEL_ALIGN): Define.
1576         (REG_ALLOC_ORDER): Define.
1577         (ADJUST_REG_ALLOC_ORDER): Define.
1578         (HONOR_REG_ALLOC_ORDER): Define.
1579         (CDX_REG_P): Define.
1580         (ANDCLEAR_INT): Define.
1581         * config/nios2/nios2-protos.h (nios2_add_insn_asm): Declare.
1582         (nios2_label_align): Declare.
1583         (nios2_cdx_narrow_form_p): Declare.
1584         (nios2_adjust_reg_alloc_order): Declare.
1585         * config/nios2/nios2.c (nios2_rtx_costs): Adjust for BMX zero-extract
1586         operation.
1587         (nios2_large_unspec_reloc_p): New function, split from...
1588         (nios2_legitimate_pic_operand_p): ...here.
1589         (nios2_emit_move_sequence): Add *high/*lo_sum constant expand code.
1590         (nios2_print_operand_punct_valid_p): New.
1591         (nios2_print_operand): Add %., %!, %x, %y, %A.  Remove %U.
1592         (split_mem_address): New.
1593         (split_alu_insn): New.
1594         (cdxreg): New.
1595         (cdx_add_immed, cdx_and_immed, cdx_mov_immed, cdx_shift_immed): New.
1596         (enum nios2_add_insn_kind): New.
1597         (nios2_add_insn_names, nios2_add_insn_narrow): New.
1598         (nios2_add_insn_classify): New.
1599         (nios2_add_insn_asm): New.
1600         (nios2_cdx_narrow_form_p): New.
1601         (label_align, min_labelno, max_labelno): New.
1602         (nios2_reorg): New.
1603         (nios2_label_align): New.
1604         (nios2_adjust_reg_alloc_order): New.
1605         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
1606         (TARGET_MACHINE_DEPENDENT_REORG): Define.
1607         * config/nios2/constraints.md (P): New constraint.
1608         * config/nios2/predicates.md (const_and_operand): New.
1609         (and_operand): New.
1610         (stack_memory_operand): New.
1611         * config/nios2/nios2.md (SP_REGNO): Define stack pointer regno.
1612         (length): Update to use nios2_cdx_narrow_form_p().
1613         (type): Add new insn type values.
1614         (control, alu, st, ld, shift): Update insn reservations with
1615         new insn type values.
1616         (*high, *lo_sum): Define new insn patterns for constant generation.
1617         (movqi_internal, movhi_internal, movsi_internal): Reduce
1618         alternatives, update asm template to handle CDX variants, update
1619         type attributes.
1620         (zero_extendhisi2, zero_extendqi<mode>2): Add CDX variants to asm
1621         template, update type attributes.
1622         (extendhisi2, extendqi<mode>2): Likewise.
1623         (addsi3): Change to use function for asm string.
1624         (subsi3): Add CDX notation to asm template, update type attributes.
1625         (negsi3, one_cmplsi3): Likewise.
1626         (andsi3): New pattern, specialized from logical patterns.
1627         (<code>si3): Remove and case, combine alternatives, update asm
1628         template.
1629         (<shift_op>si3): Add CDX notation, update type attributes.
1630         (rotrsi3): Update type attribute.
1631         (*merge, extzv, insv): New insn patterns.
1632         (return): Change to define_expand.
1633         (simple_return): Add CDX notation, update type attributes.
1634         (indirect_jump): Add CDX notation.
1635         (jump): Update asm cases, update length attribute expression.
1636         (*call, *call_value, *sibcall, *sibcall_value): Add CDX variant.
1637         (nios2_cbranch): Update asm cases and length attribute expression
1638         to handle CDX variants.
1639         (nios2_cmp<code>): Update asm template.
1640         (nop): Add CDX notation, update type attributes.
1641         (trap): Add CDX notation.
1642         (ctrapsi4): Update asm cases and length attribute expression to
1643         handle CDX variant.
1644         * doc/md.texi (Machine Constraints): Document P constraint.
1645
1646 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
1647             Cesar Philippidis  <cesar@codesourcery.com>
1648             Chung-Lin Tang  <cltang@codesourcery.com>
1649
1650         * config/nios2/nios2.h (SMALL_INT12): New macro.
1651         * config/nios2/nios2.c (nios2_valid_addr_offset_p): New function.
1652         (nios2_valid_addr_expr_p): Use it.
1653         (nios2_symbol_ref_in_small_data_p): Disallow GP-relative addressing
1654         with implicit "io" instructions on R2.
1655         * config/nios2/constraints.md (w): New constraint.
1656         * config/nios2/predicates.md (ldstio_memory_operand): New.
1657         * config/nios2/nios2.md (ld<bhw_uns>io, ld<bh>io): Update memory
1658         operand predicate and constraint.
1659         (ld<bh>io_signed, st<bhw>io>): Likewise.
1660         * doc/md.texi (Machine Constraints): Document w constraint.
1661
1662 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
1663             Cesar Philippidis  <cesar@codesourcery.com>
1664             Chung-Lin Tang  <cltang@codesourcery.com>
1665
1666         * config/nios2/nios2.opt (march, mbmx, mcdx): New options.
1667         * config/nios2/nios2-opts.h (enum nios2_arch_type): New enum for
1668         Nios II architecture level.
1669         * config/nios2/nios2.h (TARGET_ARCH_R2): New define.
1670         (TARGET_CPU_CPP_BUILTINS): Add definition of __nios2_arch__ symbol.
1671         (OPTION_DEFAULT_SPECS): Define.
1672         (ASM_SPEC): Add -march= spec strings.
1673         * config/nios2/nios2.c (nios2_option_override): Check for
1674         conflicts involving new options.
1675         * config.gcc (nios2*-*-*): Support --with-arch=.
1676         * doc/invoke.texi (Option Summary, Nios II Options): Document
1677         -march=, -mbmx, and -mcdx.
1678
1679 2015-07-14  Vladimir Makarov  <vmakarov@redhat.com>
1680
1681         PR rtl-optimization/66626
1682         * lra-constraints.c (lra_constraints): Prevent equivalence
1683         substitution for static chain pseudo in functions with nonlocal
1684         goto.
1685
1686 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
1687
1688         * config/nios2/nios2.c (TEMP_REG_NUM): Move define up in file.
1689         (nios2_emit_stack_limit_check): Add size parameter.  Handle
1690         -fstack-limit-symbol as well as -fstack-limit-register.
1691         (nios2_expand_prologue): Emit only a single stack limit check,
1692         even if multiple stack adjustments are required.
1693         (nios2_option_override): Diagnose unsupported combination of -fpic
1694         and -stack-limit-symbol.
1695
1696 2015-07-14  H.J. Lu  <hongjiu.lu@intel.com>
1697
1698         * Makefile.in (top_srcdir): New.
1699         * configure.ac: Use AM_ZLIB.
1700         * configure: Regeneated.
1701
1702 2015-07-14  Matthias Klose  <doko@ubuntu.com>
1703
1704         PR target/66840
1705         * config/rs6000/t-rs6000 (TM_H): Add rs6000-cpus.def.
1706
1707 2015-07-14  Richard Biener  <rguenther@suse.de>
1708
1709         PR tree-optimization/66863
1710         * tree-vrp.c (register_edge_assert_for_2): Properly restrict
1711         what we record for conversion use stmt lhs inequalities.
1712
1713 2015-07-14  Richard Biener  <rguenther@suse.de>
1714
1715         * genmatch.c (dt_node::gen_kids_1): Fix case label indenting.
1716         (decision_tree::gen_gimple): Likewise.
1717
1718 2015-07-14  Tom de Vries  <tom@codesourcery.com>
1719
1720         * gcc.c (greater_than_spec_func): Declare forward.
1721         (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use gt to ignore
1722         -ftree-parallelize-loops={0,1}.
1723         (static_spec_functions): Add greater_than_spec_func function with name
1724         "gt".
1725         (greater_than_spec_func): New function.
1726
1727 2015-07-14  Richard Biener  <rguenther@suse.de>
1728
1729         * tree-ssa-dom.c (record_temporary_equivalences): Merge
1730         wideing type conversion case from record_equivalences_from_incoming_edge
1731         and use record_equality to record equivalences.
1732         (record_equivalences_from_incoming_edge): Call
1733         record_temporary_equivalences.
1734
1735 2015-07-14  Richard Biener  <rguenther@suse.de>
1736
1737         * genmatch.c (struct operand): Add OP_IF and OP_WITH op_types.
1738         (struct if_expr): New.
1739         (struct with_expr): Likewise.
1740         (is_a_helper): Add helpers for if_expr and with_expr.
1741         (struct simplify): Add simplify_kind enum and member.  Remove
1742         ifexpr_vec member.
1743         (simplify::simplify): Adjust.
1744         (lower_commutative): Adjust.
1745         (lower_opt_convert): Likewise.
1746         (lower_cond): Likewise.
1747         (replace_id): Handle with_expr and if_expr.
1748         (lower_for): Adjust.
1749         (dt_simplify::gen_1): New recursive worker, split out from ...
1750         (dt_simplify::gen): ... here.  Deal with if and with expansion
1751         recursively.
1752         (capture_info::capture_info): Take context argument
1753         (capture_info::walk_result): Only analyze specific result.
1754         (parser::parse_result): New function.
1755         (parser::parse_simplify): Adjust to parse ifs with then end
1756         else case.
1757         (parser::parse_if): Simplify.
1758         (parser::parse_pattern): Pass down simplify kind.
1759         * match.pd: Convert if structure to new syntax.
1760
1761 2015-07-13  Marek Polacek  <polacek@redhat.com>
1762
1763         * rtl.c (rtx_equal_p_cb): Fix typo.
1764
1765 2015-07-13  Andrew MacLeod  <amacleod@redhat.com>
1766
1767         * omega.h: Don't include config.h, don't include params.h again if
1768         omega.h has already been included.
1769         * graphite-poly.h: Include sese.h.
1770         * graphite.c: Don't include sese.h, remove needless includes and
1771         minimize includes outside #ifdef HAVE_isl block.
1772         * graphite-blocking.c: Don't include sese.h, remove needless includes,
1773         and wrap entire file in #ifdef HAVE_isl
1774         * graphite-dependences.c: Likewise.
1775         * graphite-interchange.c: Likewise.
1776         * graphite-isl-ast-to-gimple.c: Likewise.
1777         * graphite-optimize-isl.c: Likewise.
1778         * graphite-poly.c: Likewise.
1779         * graphite-scop-detection.c: Likewise.
1780         * graphite-sese-to-poly.c: Likewise.
1781
1782 2015-07-13  Tom de Vries  <tom@codesourcery.com>
1783
1784         * omp-low.c (build_receiver_ref): Mark *.omp_data_i as non-trapping.
1785
1786 2015-07-13  Renlin Li  <renlin.li@arm.com>
1787
1788         PR rtl/66556
1789         * simplify-rtx.c (simplify_const_relational_operation): Add
1790         side_effects_p checks.
1791
1792 2015-07-12  Aldy Hernandez  <aldyh@redhat.com>
1793
1794         * bitmap.h: Fix double word typos.
1795         * builtins.c: Same.
1796         * calls.c: Same.
1797         * cfgloopmanip.c: Same.
1798         * cgraph.c: Same.
1799         * cgraph.h: Same.
1800         * cgraphclones.c: Same.
1801         * combine.c: Same.
1802         * config/aarch64/aarch64-protos.h: Same.
1803         * config/aarch64/aarch64.c: Same.
1804         * config/aarch64/aarch64.md: Same.
1805         * config/arm/arm.md: Same.
1806         * config/arm/arm1020e.md: Same.
1807         * config/arm/arm1026ejs.md: Same.
1808         * config/arm/arm926ejs.md: Same.
1809         * config/arm/fa526.md: Same.
1810         * config/arm/fa606te.md: Same.
1811         * config/arm/fa626te.md: Same.
1812         * config/arm/fa726te.md: Same.
1813         * config/arm/fmp626.md: Same.
1814         * config/darwin.c: Same.
1815         * config/epiphany/epiphany.c: Same.
1816         * config/frv/frv.c: Same.
1817         * config/ft32/ft32.c: Same.
1818         * config/gnu-user.h: Same.
1819         * config/h8300/constraints.md: Same.
1820         * config/i386/i386.c: Same.
1821         * config/i386/i386.md: Same.
1822         * config/iq2000/iq2000.md: Same.
1823         * config/mips/mips.c: Same.
1824         * config/mmix/mmix.md: Same.
1825         * config/moxie/moxie.c: Same.
1826         * config/nds32/nds32.md: Same.
1827         * config/pa/pa.h: Same.
1828         * config/rs6000/aix.h: Same.
1829         * config/rs6000/rs6000.h: Same.
1830         * config/sh/sh.c: Same.
1831         * config/tilegx/tilegx.md: Same.
1832         * config/tilepro/gen-mul-tables.cc: Same.
1833         * cse.c: Same.
1834         * dbxout.c: Same.
1835         * doc/invoke.texi: Same.
1836         * dse.c: Same.
1837         * dwarf2out.c: Same.
1838         * final.c: Same.
1839         * gcc.c: Same.
1840         * genmatch.c: Same.
1841         * gimplify.c: Same.
1842         * hash-table.h: Same.
1843         * internal-fn.c: Same.
1844         * ipa-cp.c: Same.
1845         * ipa-devirt.c: Same.
1846         * ipa-icf.c: Same.
1847         * ipa-icf.h: Same.
1848         * ipa-profile.c: Same.
1849         * ipa-prop.c: Same.
1850         * ipa-prop.h: Same.
1851         * ira.c: Same.
1852         * omp-low.c: Same.
1853         * reg-stack.c: Same.
1854         * regcprop.c: Same.
1855         * reorg.c: Same.
1856         * rtl.h: Same.
1857         * sbitmap.h: Same.
1858         * tree-eh.c: Same.
1859         * tree-inline.c: Same.
1860         * tree-sra.c: Same.
1861         * tree-ssa-dom.c: Same.
1862         * tree-ssa-loop-ivopts.c: Same.
1863         * tree-ssa-structalias.c: Same.
1864         * tree-ssa-tail-merge.c: Same.
1865         * tree-ssa-ter.c: Same.
1866         * tree-ssa-threadupdate.c: Same.
1867         * tree-ssa-uninit.c: Same.
1868         * tree-ssanames.c: Same.
1869         * tree-vect-loop-manip.c: Same.
1870         * tree-vrp.c: Same.
1871         * tree.c: Same.
1872         * valtrack.c: Same.
1873         * vec.h: Same.
1874
1875 2015-07-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
1876
1877         PR middle-end/66726
1878         * tree-ssa-phiopt.c(factor_out_conditional_conversion): New function.
1879         tree_ssa_phiopt_worker): Call it.
1880
1881 2015-07-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
1882
1883         * cse.c (cse_insn): Calculate src_eqv for ZERO_EXTRACT.
1884         * emit-rtl.c (set_for_reg_notes): Allow ZERO_EXTRACT to set
1885         REG_EQUAL note.
1886
1887 2015-07-11  Marek Polacek  <polacek@redhat.com>
1888
1889         PR middle-end/66353
1890         * basic-block.h (has_abnormal_call_or_eh_pred_edge_p): New function.
1891         * ira-lives.c (bb_has_abnormal_call_pred): Remove function.
1892         (process_bb_node_lives): Call has_abnormal_call_or_eh_pred_edge_p
1893         rather than bb_has_abnormal_call_pred.
1894         * lra-lives.c (bb_has_abnormal_call_pred): Remove function.
1895         (process_bb_lives): Call has_abnormal_call_or_eh_pred_edge_p
1896         rather than bb_has_abnormal_call_pred.
1897
1898 2015-07-10  Anatoly Sokolov  <aesok@post.ru>
1899
1900         * config/v850/v850.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
1901         REG_OK_FOR_BASE_P_STRICT, REG_OK_FOR_INDEX_P_STRICT, STRICT,
1902         RTX_OK_FOR_BASE_P, GO_IF_LEGITIMATE_ADDRESS): Remove macros.
1903         * config/v850/v850.c (v850_reg_ok_for_base_, v850_rtx_ok_for_base_p,
1904         v850_legitimate_address_p): New functions.
1905         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
1906
1907 2015-07-10  H.J. Lu  <hongjiu.lu@intel.com>
1908
1909         PR target/66819
1910         * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow
1911         indirect sibcall with register arguments if register available
1912         for argument passing.
1913         (init_cumulative_args): Set cfun->machine->arg_reg_available
1914         to (cum->nregs > 0) or to true if function has a variable
1915         argument list.
1916         (function_arg_advance_32): Set cfun->machine->arg_reg_available
1917         to false if cum->nregs <= 0.
1918         * config/i386/i386.h (machine_function): Add arg_reg_available.
1919
1920 2015-07-10  Uros Bizjak  <ubizjak@gmail.com>
1921
1922         * config/i386/sse.md (movdi_to_sse): Use gen_lowpart
1923         and gen_higpart instead of gen_rtx_SUBREG.
1924         * config/i386/i386.md
1925         (floatdi<X87MODEF:mode>2_i387_with_xmm splitter): Ditto.
1926         (read-modify peephole2): Use gen_lowpart instead of
1927         gen_rtx_SUBREG for operand 5.
1928
1929 2015-07-10  Andrew MacLeod  <amacleod@redhat.com>
1930
1931         * config/tilepro/gen-mul-tables.cc (main): Change include list for
1932         generated files.
1933         * config/tilepro/mul-tables.c: Regenerate.
1934         * config/tilegx/mul-tables.c: Regenerate.
1935
1936 2015-07-10  Richard Biener  <rguenther@suse.de>
1937
1938         * fold-const.c (distribute_bit_expr): Remove.
1939         (fold_binary_loc): Move simplifying (A & C1) + (B & C2)
1940         to (A & C1) | (B & C2), distributing (A & B) | (A & C)
1941         to A & (B | C) and simplifying A << C1 << C2 to ...
1942         * match.pd: ... patterns here.
1943
1944 2015-07-10  Jiong Wang  <jiong.wang@arm.com>
1945
1946         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
1947         Mark mem as READONLY and NOTRAP for PIC symbol.
1948
1949 2015-07-10  Andrew MacLeod  <amacleod@redhat.com>
1950
1951         * gimple-predict.h: New file.
1952         (gimple_predict_predictor, gimple_predict_set_predictor,
1953         gimple_predict_outcome, gimple_predict_set_outcome,
1954         gimple_build_predict): Relocate here.
1955         * gimple.h (gimple_predict_predictor, gimple_predict_set_predictor,
1956         gimple_predict_outcome, gimple_predict_set_outcome): Move to
1957         gimple-predict.h.
1958         * gimple.c (gimple_build_predict): Move to gimple-predict.h
1959         * basic-block.h: Don't include cfghooks.h.
1960         * backend.h: Don't include predict.h.
1961         * cfghooks.h: Include predict.h.
1962         * gimple-pretty-print.c: Include gimple-predict.h.
1963         * gimplify.c: Likwise.
1964         * predict.c: Adjust includes.
1965         * tree-inline.c: Likewise.
1966         * asan.c: Likewise.
1967         * auto-inc-dec.c: Likewise.
1968         * auto-profile.c: Likewise.
1969         * bb-reorder.c: Likewise.
1970         * builtins.c: Likewise.
1971         * caller-save.c: Likewise.
1972         * calls.c: Likewise.
1973         * cfganal.c: Likewise.
1974         * cfgbuild.c: Likewise.
1975         * cfg.c: Likewise.
1976         * cfgcleanup.c: Likewise.
1977         * cfgexpand.c: Likewise.
1978         * cfghooks.c: Likewise.
1979         * cfgloopanal.c: Likewise.
1980         * cfgloop.c: Likewise.
1981         * cfgloopmanip.c: Likewise.
1982         * cfgrtl.c: Likewise.
1983         * cgraph.c: Likewise.
1984         * cgraphunit.c: Likewise.
1985         * combine.c: Likewise.
1986         * cprop.c: Likewise.
1987         * cse.c: Likewise.
1988         * dce.c: Likewise.
1989         * dojump.c: Likewise.
1990         * dse.c: Likewise.
1991         * except.c: Likewise.
1992         * expmed.c: Likewise.
1993         * expr.c: Likewise.
1994         * final.c: Likewise.
1995         * fold-const.c: Likewise.
1996         * function.c: Likewise.
1997         * fwprop.c: Likewise.
1998         * gcc-plugin.h: Likewise.
1999         * gcse.c: Likewise.
2000         * genattrtab.c: Likewise.
2001         * genemit.c: Likewise.
2002         * gengtype.c: Likewise.
2003         * genopinit.c: Likewise.
2004         * genoutput.c: Likewise.
2005         * genpreds.c: Likewise.
2006         * genrecog.c: Likewise.
2007         * gimple-fold.c: Likewise.
2008         * gimple-iterator.c: Likewise.
2009         * gimple-ssa-isolate-paths.c: Likewise.
2010         * gimple-ssa-strength-reduction.c: Likewise.
2011         * graph.c: Likewise.
2012         * graphite-blocking.c: Likewise.
2013         * graphite.c: Likewise.
2014         * graphite-dependences.c: Likewise.
2015         * graphite-interchange.c: Likewise.
2016         * graphite-isl-ast-to-gimple.c: Likewise.
2017         * graphite-optimize-isl.c: Likewise.
2018         * graphite-poly.c: Likewise.
2019         * graphite-scop-detection.c: Likewise.
2020         * graphite-sese-to-poly.c: Likewise.
2021         * haifa-sched.c: Likewise.
2022         * ifcvt.c: Likewise.
2023         * internal-fn.c: Likewise.
2024         * ipa-cp.c: Likewise.
2025         * ipa-profile.c: Likewise.
2026         * ipa-split.c: Likewise.
2027         * ipa-utils.c: Likewise.
2028         * ira-build.c: Likewise.
2029         * ira-color.c: Likewise.
2030         * ira-conflicts.c: Likewise.
2031         * ira-costs.c: Likewise.
2032         * ira-emit.c: Likewise.
2033         * ira-lives.c: Likewise.
2034         * jump.c: Likewise.
2035         * loop-doloop.c: Likewise.
2036         * loop-init.c: Likewise.
2037         * loop-invariant.c: Likewise.
2038         * loop-unroll.c: Likewise.
2039         * lower-subreg.c: Likewise.
2040         * lra-assigns.c: Likewise.
2041         * lra.c: Likewise.
2042         * lra-coalesce.c: Likewise.
2043         * lra-constraints.c: Likewise.
2044         * lra-lives.c: Likewise.
2045         * lto-cgraph.c: Likewise.
2046         * lto-streamer-in.c: Likewise.
2047         * mode-switching.c: Likewise.
2048         * modulo-sched.c: Likewise.
2049         * omp-low.c: Likewise.
2050         * optabs.c: Likewise.
2051         * passes.c: Likewise.
2052         * postreload.c: Likewise.
2053         * postreload-gcse.c: Likewise.
2054         * profile.c: Likewise.
2055         * recog.c: Likewise.
2056         * regstat.c: Likewise.
2057         * reload1.c: Likewise.
2058         * reorg.c: Likewise.
2059         * rtlanal.c: Likewise.
2060         * sched-ebb.c: Likewise.
2061         * sel-sched-ir.c: Likewise.
2062         * sese.c: Likewise.
2063         * shrink-wrap.c: Likewise.
2064         * simplify-rtx.c: Likewise.
2065         * stmt.c: Likewise.
2066         * store-motion.c: Likewise.
2067         * tracer.c: Likewise.
2068         * trans-mem.c: Likewise.
2069         * tree-call-cdce.c: Likewise.
2070         * tree-cfg.c: Likewise.
2071         * tree-cfgcleanup.c: Likewise.
2072         * tree-chkp.c: Likewise.
2073         * tree-complex.c: Likewise.
2074         * tree-eh.c: Likewise.
2075         * tree-if-conv.c: Likewise.
2076         * tree-loop-distribution.c: Likewise.
2077         * tree-outof-ssa.c: Likewise.
2078         * tree-parloops.c: Likewise.
2079         * tree-predcom.c: Likewise.
2080         * tree-pretty-print.c: Likewise.
2081         * tree-profile.c: Likewise.
2082         * tree-sra.c: Likewise.
2083         * tree-ssa.c: Likewise.
2084         * tree-ssa-coalesce.c: Likewise.
2085         * tree-ssa-dce.c: Likewise.
2086         * tree-ssa-dom.c: Likewise.
2087         * tree-ssa-forwprop.c: Likewise.
2088         * tree-ssa-ifcombine.c: Likewise.
2089         * tree-ssa-loop-ch.c: Likewise.
2090         * tree-ssa-loop-im.c: Likewise.
2091         * tree-ssa-loop-ivcanon.c: Likewise.
2092         * tree-ssa-loop-ivopts.c: Likewise.
2093         * tree-ssa-loop-manip.c: Likewise.
2094         * tree-ssa-loop-prefetch.c: Likewise.
2095         * tree-ssa-loop-unswitch.c: Likewise.
2096         * tree-ssa-math-opts.c: Likewise.
2097         * tree-ssa-phiopt.c: Likewise.
2098         * tree-ssa-pre.c: Likewise.
2099         * tree-ssa-reassoc.c: Likewise.
2100         * tree-ssa-sink.c: Likewise.
2101         * tree-ssa-tail-merge.c: Likewise.
2102         * tree-ssa-threadedge.c: Likewise.
2103         * tree-ssa-threadupdate.c: Likewise.
2104         * tree-switch-conversion.c: Likewise.
2105         * tree-tailcall.c: Likewise.
2106         * tree-vect-data-refs.c: Likewise.
2107         * tree-vect-loop.c: Likewise.
2108         * tree-vect-loop-manip.c: Likewise.
2109         * tree-vectorizer.c: Likewise.
2110         * tree-vrp.c: Likewise.
2111         * ubsan.c: Likewise.
2112         * value-prof.c: Likewise.
2113         * varasm.c: Likewise.
2114         * var-tracking.c: Likewise.
2115         * config/aarch64/aarch64-builtins.c: Likewise.
2116         * config/aarch64/aarch64.c: Likewise.
2117         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
2118         * config/alpha/alpha.c: Likewise.
2119         * config/arc/arc.c: Likewise.
2120         * config/arm/arm.c: Likewise.
2121         * config/avr/avr.c: Likewise.
2122         * config/bfin/bfin.c: Likewise.
2123         * config/c6x/c6x.c: Likewise.
2124         * config/cr16/cr16.c: Likewise.
2125         * config/cris/cris.c: Likewise.
2126         * config/darwin.c: Likewise.
2127         * config/darwin-c.c: Likewise.
2128         * config/epiphany/epiphany.c: Likewise.
2129         * config/epiphany/mode-switch-use.c: Likewise.
2130         * config/epiphany/resolve-sw-modes.c: Likewise.
2131         * config/fr30/fr30.c: Likewise.
2132         * config/frv/frv.c: Likewise.
2133         * config/ft32/ft32.c: Likewise.
2134         * config/h8300/h8300.c: Likewise.
2135         * config/i386/i386.c: Likewise.
2136         * config/i386/winnt.c: Likewise.
2137         * config/ia64/ia64.c: Likewise.
2138         * config/iq2000/iq2000.c: Likewise.
2139         * config/lm32/lm32.c: Likewise.
2140         * config/m32c/m32c.c: Likewise.
2141         * config/m32r/m32r.c: Likewise.
2142         * config/m68k/m68k.c: Likewise.
2143         * config/mcore/mcore.c: Likewise.
2144         * config/mep/mep.c: Likewise.
2145         * config/microblaze/microblaze.c: Likewise.
2146         * config/mips/mips.c: Likewise.
2147         * config/mmix/mmix.c: Likewise.
2148         * config/mn10300/mn10300.c: Likewise.
2149         * config/moxie/moxie.c: Likewise.
2150         * config/msp430/msp430.c: Likewise.
2151         * config/nds32/nds32.c: Likewise.
2152         * config/nds32/nds32-cost.c: Likewise.
2153         * config/nds32/nds32-fp-as-gp.c: Likewise.
2154         * config/nds32/nds32-intrinsic.c: Likewise.
2155         * config/nds32/nds32-isr.c: Likewise.
2156         * config/nds32/nds32-md-auxiliary.c: Likewise.
2157         * config/nds32/nds32-memory-manipulation.c: Likewise.
2158         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
2159         * config/nds32/nds32-predicates.c: Likewise.
2160         * config/nios2/nios2.c: Likewise.
2161         * config/nvptx/nvptx.c: Likewise.
2162         * config/pa/pa.c: Likewise.
2163         * config/pdp11/pdp11.c: Likewise.
2164         * config/rl78/rl78.c: Likewise.
2165         * config/rs6000/rs6000.c: Likewise.
2166         * config/rx/rx.c: Likewise.
2167         * config/s390/s390.c: Likewise.
2168         * config/sh/sh.c: Likewise.
2169         * config/sh/sh-mem.cc: Likewise.
2170         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
2171         * config/sh/sh_treg_combine.cc: Likewise.
2172         * config/sparc/sparc.c: Likewise.
2173         * config/spu/spu.c: Likewise.
2174         * config/stormy16/stormy16.c: Likewise.
2175         * config/tilegx/tilegx.c: Likewise.
2176         * config/tilepro/tilepro.c: Likewise.
2177         * config/v850/v850.c: Likewise.
2178         * config/vax/vax.c: Likewise.
2179         * config/visium/visium.c: Likewise.
2180         * config/xtensa/xtensa.c: Likewise.
2181
2182 2015-07-10  Richard Biener  <rguenther@suse.de>
2183
2184         * genmatch.c (dt_node::gen_kids_1): Fix indenting of case labels.
2185         (decision_tree::gen_gimple): Likewise.
2186         (decision_tree::gen_generic): Likewise.
2187
2188 2015-07-10  Uros Bizjak  <ubizjak@gmail.com>
2189
2190         PR target/66813
2191         * config/i386/i386.c (ix86_md_asm_adjust): Emit movstrictqi
2192         sequence for TARGET_ZERO_EXTEND_WITH_AND targets.
2193
2194 2015-07-10  Jakub Jelinek  <jakub@redhat.com>
2195
2196         PR middle-end/66820
2197         * gimplify.c (maybe_fold_stmt): Don't fold in ORT_PARALLEL
2198         or ORT_TASK contexts.
2199         * omp-low.c (lower_omp): Call fold_stmt even if taskreg_nesting_level
2200         is non-zero.
2201
2202 2015-07-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2203
2204         * expr.c (expand_cond_expr_using_cmove): Fix typos in comment
2205         above function.
2206
2207 2015-07-10  Tom de Vries  <tom@codesourcery.com>
2208
2209         * tree-parloops.c (try_transform_to_exit_first_loop_alt): If not found,
2210         insert nit + 1 bound.
2211
2212 2015-07-10  Richard Biener  <rguenther@suse.de>
2213
2214         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p):
2215         Use ifcvt_could_trap_p also when not flag_tree_loop_if_convert_stores.
2216         (if_convertible_loop_p_1): For this always compute bb predicates.
2217         (if_convertible_loop_p): And free them.
2218
2219 2015-07-10  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2220
2221         * ipa-icf.c (sem_item_optimizer::do_congruence_step): Fix typo
2222         in dump message.
2223
2224 2015-07-10  Richard Biener  <rguenther@suse.de>
2225
2226         PR tree-optimization/66823
2227         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Fix
2228         inverted predicate.
2229
2230 2015-07-09  Steve Ellcey  <sellcey@imgtec.com>
2231
2232         * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): Update
2233         to handle mips[32|64]r3 and mips[32|64]r5.
2234
2235 2015-07-09  Jakub Jelinek  <jakub@redhat.com>
2236
2237         PR middle-end/66633
2238         * tree-nested.c (get_static_chain): Or in a flag into
2239         info->static_chain_added.
2240         (get_frame_field, get_nonlocal_debug_decl): Likewise.
2241         (convert_nonlocal_omp_clauses, convert_local_omp_clauses): Revert
2242         2015-07-01 changes.
2243         (convert_tramp_reference_stmt): If a frame_decl or chain_decl
2244         is needed newly inside of GIMPLE_OMP_{PARALLEL,TASK,TARGET} body,
2245         add it to clauses.
2246
2247         PR tree-optimization/66718
2248         * tree-vect-stmts.c (struct simd_call_arg_info): Add simd_lane_linear
2249         field.
2250         (vect_simd_lane_linear): New function.
2251         (vectorizable_simd_clone_call): Support using linear arguments for
2252         addresses of arrays elements indexed by GOMP_SIMD_LANE result.
2253
2254 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
2255
2256         PR target/66821
2257         * config/i386/i386.c (iamcu_cost): Adjust variable shift costs.
2258
2259 2015-07-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
2260
2261         * config/rs6000/rs6000-protos.h (rs6000_secondary_reload_memory):
2262         Use machine mode, not enum machine_mode in the prototype.
2263
2264         * config/rs6000/rs6000.h (FLOAT128_IEEE_P): New helper macros to
2265         classify 128-bit floating point support.
2266         (FLOAT128_IBM_P): Likewise.
2267         (FLOAT128_VECTOR_P): Likewise.
2268         (FLOAT128_2REG_P): Likewise.
2269         (SCALAR_FLOAT_MODE_NOT_VECTOR_P): Likewise.
2270         (SLOW_UNALIGNED_ACCESS): Add IEEE 128-bit floating point support.
2271         (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
2272         (HARD_REGNO_CALL_PART_CLOBBERED): Likewise.
2273
2274         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Drop
2275         tests against TFmode/TDmode, since those modes do not use VSX
2276         addresses.
2277         (rs6000_hard_regno_mode_ok): Add IEEE 128-bit floating point
2278         support.
2279         (rs6000_init_hard_regno_mode_ok): Use new helper macros instead of
2280         tests against TFmode, etc.
2281         (invalid_e500_subreg): Add tests against IFmode/KFmode.
2282         (reg_offset_addressing_ok_p): Likewise.
2283         (rs6000_legitimate_offset_address_p): Likewise.
2284         (rs6000_legitimize_address): Likewise.
2285         (rs6000_legitimize_reload_address): Likewise.
2286         (rs6000_legitimate_address_p): Clean up tests against TFmode and
2287         TDmode to use the new helper macros, which will include IFmode and
2288         KFmode.
2289         (rs6000_emit_move): Likewise.
2290         (rs6000_darwin64_record_arg_recurse): Likewise.
2291         (print_operand): Likewise.
2292         (rs6000_member_type_forces_blk): Treat IEEE 128-bit floating point
2293         that uses a single vector register as a vector and not as a
2294         floating point register in terms of the calling sequence.
2295         (rs6000_discover_homogeneous_aggregate): Likewise.
2296         (rs6000_return_in_memory): Likewise.
2297         (init_cumulative_args): Likewise.
2298         (rs6000_function_arg_boundary): Likewise.
2299         (rs6000_function_arg_advance_1): Likewise.
2300         (rs6000_function_arg): Likewise.
2301         (rs6000_pass_by_reference): Likewise.
2302         (rs6000_gimplify_va_arg): Likewise.
2303         (rs6000_secondary_reload_memory): Use machine_mode not enum
2304         machine mode.
2305         (rs6000_split_multireg_move): Use new helper macros.
2306         (spe_func_has_64bit_regs_p): Likewise.
2307         (rs6000_output_function_epilogue): Add IFmode/KFmode support.
2308         (output_toc): Use new helper macros.
2309         (rs6000_register_move_cost): Likewise.
2310         (rs6000_function_value): Add IEEE 128-bit floating point calling
2311         sequence support.
2312         (rs6000_libcall_value): Likewise.
2313         (rs6000_scalar_mode_supported_p): Add support for IEEE 128-bit
2314         floating point support.
2315         (rs6000_vector_mode_supported_p): Likewise.
2316
2317 2015-07-09  Vladimir Makarov  <vmakarov@redhat.com>
2318
2319         PR rtl-optimization/66782
2320         * lra-int.h (struct lra_insn_recog_data): Add comment about
2321         clobbered hard regs for arg_hard_regs.
2322         * lra.c (lra_set_insn_recog_data): Add clobbered hard regs.
2323         * lra-lives.c (process_bb_lives): Process clobbered hard regs.
2324         Add condition for processing used hard regs.
2325         * lra-constraints.c (update_ebb_live_info, inherit_in_ebb):
2326         Process clobbered hard regs.
2327
2328 2015-07-09  Michael Matz  <matz@suse.de>
2329
2330         * genmatch.c (fprintf_indent): New function.
2331         (operand::gen_transform): Add indent parameter.
2332         (expr::gen_transform, c_expr::gen_transform,
2333         capture::gen_transform): Ditto and use fprintf_indent.
2334         (dt_node::gen, dt_node::gen_kids, dt_node::gen_kids_1): Ditto.
2335         (dt_operand::gen, dt_operand::gen_predicate,
2336         dt_operand::gen_match_op, dt_operand::gen_gimple_expr,
2337         dt_operand::gen_generic_expr, dt_simplify::gen): Ditto.
2338         (decision_tree::gen_gimple): Adjust calls and indent generated
2339         code.
2340         (decision_tree::gen_generic): Ditto.
2341         (write_predicate): Ditto.
2342
2343 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
2344
2345         PR target/66814
2346         * config/i386/predicates.md (nonimmediate_gr_operand): New predicate.
2347         * config/i386/i386.md (not peephole2): Use nonimmediate_gr_operand.
2348         (varous peephole2s): Use {GENERAL,SSE,MMX}_REGNO_P instead of
2349         {GENERAL,SSE,MMX}_REG_P where appropriate.
2350
2351 2015-07-09  Andrew MacLeod  <amacleod@redhat.com>
2352
2353         * lto-streamer.h: Don't include target.h and alloc-pool.h.
2354         * builtins.c: Adjust includes.
2355         * gimple.c: Likewise.
2356         * ipa-icf.c: Likewise.
2357         * lto-opts.c: Likewise.
2358         * ipa-reference.c: Likewise.
2359         * lto-section-out.c: Likewise.
2360         * lto-streamer-in.c: Likewise.
2361         * lto-streamer-out.c: Likewise.
2362         * opts-global.c: Likewise.
2363         * symtab.c: Likewise.
2364         * tree-chkp.c: Likewise.
2365         * tree-ssa-live.c: Likewise.
2366         * tree-streamer-in.c: Likewise.
2367         * tree-streamer-out.c: Likewise.
2368         * config/darwin.c: Likewise.
2369         * config/i386/winnt.c: Likewise.
2370
2371 2015-07-09  Richard Biener  <rguenther@suse.de>
2372
2373         * genmatch.c (struct expr): Add force_single_use flag.
2374         (expr::expr): Add copy constructor.
2375         (capture_info::walk_match): Gather force_single_use captures.
2376         (expr::gen_transform): Use possibly NULLified sequence.
2377         (dt_simplify::gen): Apply single-use restrictions by NULLifying
2378         seq if any constrained expr is not single-use.
2379         (parser::parse_expr): Refactor to allow multiple flags.  Handle
2380         's' flag to force an expression have a single-use if the pattern
2381         simplifies to more than one statement.
2382         * match.pd: Convert most single_use conditionals to :s flags.
2383
2384 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
2385
2386         * config/i386/iamcu.h (ASM_OUTPUT_ALIGNED_BSS): New.
2387         (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
2388         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
2389
2390 2015-07-09  Andrew MacLeod  <amacleod@redhat.com>
2391
2392         * flags.h: Don't include flag-types.h or options.h.
2393         * opts-common.c: Adjust includes.
2394         * opts-global.c: Likewise.
2395         * common/config/epiphany/epiphany-common.c: Likewise.
2396
2397 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
2398
2399         PR target/66818
2400         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Defined to 32
2401         for IA MCU.
2402
2403 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
2404
2405         PR target/66817
2406         * config/i386/i386.c (ix86_return_in_memory): Return true
2407         if int_size_in_bytes returns negative for IA MCU.
2408
2409 2015-07-09  Marek Polacek  <polacek@redhat.com>
2410
2411         PR tree-optimization/66718
2412         * Makefile.in (OBJS): Add gimple-laddress.o.
2413         * passes.def: Schedule pass_laddress.
2414         * timevar.def (DEFTIMEVAR): Add TV_GIMPLE_LADDRESS.
2415         * tree-pass.h (make_pass_laddress): Declare.
2416         * gimple-laddress.c: New file.
2417
2418 2015-07-09  Richard Biener  <rguenther@suse.de>
2419
2420         * toplev.c (compile_file): Reset maximum_field_alignment after parsing.
2421
2422 2015-07-09  Richard Biener  <rguenther@suse.de>
2423
2424         PR tree-optimization/66807
2425         * tree-chkp-opt.c (chkp_opt_fini): Free post dominator info.
2426
2427 2015-07-08  Kito Cheng  <kito.cheng@gmail.com>
2428
2429         * function.c (stack_protect_epilogue): Use if rather than switch for
2430         check targetm.have_stack_protect_test.
2431
2432 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2433
2434         * defaults.h: Provide default for WORD_REGISTER_OPERATIONS.
2435         * config/alpha/alpha.h: Define WORD_REGISTER_OPERATIONS to 1.
2436         * config/arc/arc.h: Likewise.
2437         * config/arm/arm.h: Likewise.
2438         * config/bfin/bfin.h: Likewise.
2439         * config/epiphany/epiphany.h: Likewise.
2440         * config/frv/frv.h: Likewise.
2441         * config/ia64/ia64.h: Likewise.
2442         * config/iq2000/iq2000.h: Likewise.
2443         * config/lm32/lm32.h: Likewise.
2444         * config/m32r/m32r.h: Likewise.
2445         * config/mcore/mcore.h: Likewise.
2446         * config/mep/mep.h: Likewise.
2447         * config/microblaze/microblaze.h: Likewise.
2448         * config/mips/mips.h: Likewise.
2449         * config/mmix/mmix.h: Likewise.
2450         * config/mn10300/mn10300.h: Likewise.
2451         * config/nds32/nds32.h: Likewise.
2452         * config/nios2/nios2.h: Likewise.
2453         * config/pa/pa.h: Likewise.
2454         * config/rl78/rl78.h: Likewise.
2455         * config/sh/sh.h: Likewise.
2456         * config/sparc/sparc.h: Likewise.
2457         * config/stormy16/stormy16.h: Likewise.
2458         * config/tilegx/tilegx.h: Likewise.
2459         * config/tilepro/tilepro.h: Likewise.
2460         * config/v850/v850.h: Likewise.
2461         * config/xtensa/xtensa.h: Likewise.
2462         * doc/tm.texi: Regenerate.
2463         * doc/tm.texi.in: Adjust.
2464         * combine.c (simplify_set): Likewise.
2465         (simplify_comparison): Likewise.
2466         * expr.c (store_constructor): Likewise.
2467         * internal-fn.c (expand_arith_overflow): Likewise.
2468         * reload.c (push_reload): Likewise.
2469         (find_reloads): Likewise.
2470         (find_reloads_subreg_address): Likewise.
2471         * reload1.c (eliminate_regs_1): Likewise.
2472         * rtlanal.c (nonzero_bits1): Likewise.
2473         (num_sign_bit_copies1): Likewise.
2474         * simplify-rtx.c (simplify_truncation): Likewise.
2475
2476 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2477
2478         * auto-inc-dec.c (pass_inc_dec::execute): Don't check the value
2479         of AUTO_INC_DEC with the preprocessor.
2480         * combine.c (combine_instructions): Likewise.
2481         (can_combine_p): Likewise.
2482         (try_combine): Likewise.
2483         * emit-rtl.c (try_split): Likewise.
2484         * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
2485         * lower-subreg.c (resolve_simple_move): Likewise.
2486         * lra.c (update_inc_notes): Likewise.
2487         * recog.c (asm_operand_ok): Likewise.
2488         (constrain_operands): Likewise.
2489         * regrename.c (scan_rtx_address): Likewise.
2490         * reload.c (update_auto_inc_notes): Likewise.
2491         (reg_inc_found_and_valid_p): Likewise.
2492         * reload1.c (reload): Likewise.
2493         (emit_input_reload_insns): Likewise.
2494         (delete_output_reload): Likewise.
2495         * sched-deps.c (init_insn_reg_pressure_info): Likewise.
2496         * valtrack.c (cleanup_auto_inc_dec): Likewise.
2497
2498 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2499
2500         * rtl.h: Always define AUTO_INC_DEC.
2501         * auto-inc-dec.c (pass_inc_dec::execute): Adjust.
2502         * combine.c (combine_instructions): Likewise.
2503         (can_combine_p): Likewise.
2504         (try_combine): Likewise.
2505         * emit-rtl.c (try_split): Likewise.
2506         * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
2507         * lower-subreg.c (resolve_simple_move): Likewise.
2508         * lra.c (update_inc_notes): Likewise.
2509         * recog.c (asm_operand_ok): Likewise.
2510         (constrain_operands): Likewise.
2511         * regrename.c (scan_rtx_address): Likewise.
2512         * reload.c (update_auto_inc_notes): Likewise.
2513         (find_equiv_reg): Likewise.
2514         * reload1.c (reload): Likewise.
2515         (reload_as_needed): Likewise.
2516         (choose_reload_regs): Likewise.
2517         (emit_input_reload_insns): Likewise.
2518         (delete_output_reload): Likewise.
2519         * sched-deps.c (init_insn_reg_pressure_info): Likewise.
2520         * valtrack.c (cleanup_auto_inc_dec): Likewise.
2521
2522 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2523
2524         * combine.c (can_combine_def_p): Don't check the value of
2525         HARD_FRAME_POINTER_IS_FRAME_POINTER with the preprocessor.
2526         (combinable_i3pat): Likewise.
2527         (mark_used_regs_combine): Likewise.
2528         * regrename.c (rename_chains): Likewise.
2529         * reload.c (find_reloads_address): Likewise.
2530         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
2531
2532 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2533
2534         * combine.c (update_rsp_from_reg_equal): Don't check if
2535         SHORT_IMMEDIATES_SIGN_EXTEND is defined.
2536         (reg_nonzero_bits_for_combine): Likewise.
2537         * config/alpha/alpha.h: Define SHORT_IMMEDIATES_SIGN_EXTEND to
2538         1.
2539         * config/frv/frv.h: Likewise.
2540         * config/lm32/lm32.h: Likewise.
2541         * config/mep/mep.h: Likewise.
2542         * config/mips/mips.h: Likewise.
2543         * config/rs6000/rs6000.h: Likewise.
2544         * config/sh/sh.h: Likewise.
2545         * config/tilegx/tilegx.h (enum reg_class): Likewise.
2546         * config/tilepro/tilepro.h: Likewise.
2547         * defaults.h: Add default for SHORT_IMMEDIATES_SIGN_EXTEND.
2548         * doc/tm.texi: Regenerate.
2549         * doc/tm.texi.in: Adjust.
2550         * rtlanal.c (nonzero_bits1): Likewise.
2551
2552 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2553
2554         * combine.c (do_SUBST_MODE): Don't check the value of HAVE_cc0
2555         with the preprocessor.
2556         (combine_instructions): Likewise.
2557         (try_combine): Likewise.
2558         (subst): Likewise.
2559         (distribute_notes): Likewise.
2560
2561 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2562
2563         * combine.c (try_combine): Don't check if LOAD_EXTEND_OP is
2564         defined.
2565         (simplify_set): Likewise.
2566         * cse.c (cse_insn): Likewise.
2567         * fold-const.c (fold_single_bit_test): Likewise.
2568         (fold_unary_loc): Likewise.
2569         * postreload.c (reload_cse_simplify_set): Likewise.
2570         (reload_cse_simplify_operands): Likewise.
2571
2572 2015-07-08  Jiong Wang  <jiong.wang@arm.com>
2573
2574         * config/aarch64/aarch64.c (aarch64_unspec_may_trap_p): New function.
2575         (TARGET_UNSPEC_MAY_TRAP_P): Define as aarch64_unspec_may_trap_p.
2576
2577 2015-07-08  H.J. Lu  <hongjiu.lu@intel.com>
2578
2579         PR target/66746
2580         * config/i386/x86intrin.h: Include <adxintrin.h> even if
2581         __iamcu__ is defined.
2582
2583 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
2584
2585         * config/i386/predicates.md (general_reg_operand): Use GENERAL_REGNO_P.
2586
2587 2015-07-08  Iain Sandoe  <iain@codesourcery.com>
2588
2589         PR target/66523
2590         * config/darwin.c (darwin_mark_decl_preserved): Exclude 'L' label
2591         names from preservation.
2592
2593 2015-07-08  H.J. Lu  <hongjiu.lu@intel.com>
2594
2595         PR target/66806
2596         * config/i386/i386.c (type_natural_mode): Don't warn vector ABI
2597         change for IAMCU.
2598         (function_arg_advance_32): Don't pass vectors in registers for
2599         IAMCU.
2600         (function_arg_32): Likewise.
2601         (ix86_return_in_memory): Don't return vectors in registers for
2602         IAMCU.
2603
2604 2015-07-08  Vladimir Makarov  <vmakarov@redhat.com>
2605
2606         PR middle-end/66334
2607         * ira-lives.c (process_bb_node_lives): Make conflicts with PIC
2608         hard regno live at the start of BB with incoming abnormal edges.
2609         * lra-lives.c (process_bb_lives): Ditto.
2610
2611 2015-07-08  Thomas Schwinge  <thomas@codesourcery.com>
2612
2613         PR libgomp/65099
2614         * config/nvptx/mkoffload.c (main): Create an offload image only in
2615         64-bit configurations.
2616
2617 2015-07-08  Martin Liska  <mliska@suse.cz>
2618
2619         PR bootstrap/66744
2620         * tree-sra.c (create_access_1): Call ctor without brackets.
2621         (create_artificial_child_access): Likewise.
2622
2623 2015-07-08  Richard Biener  <rguenther@suse.de>
2624
2625         PR tree-optimization/66793
2626         * gimple-ssa-isolate-paths.c (insert_trap_and_remove_trailing_statemen):
2627         Properly split the block after stmts ending it.
2628
2629 2015-07-08  Richard Biener  <rguenther@suse.de>
2630
2631         PR tree-optimization/66794
2632         * passes.c (execute_function_todo): Assert that post-dominators
2633         are not computed.
2634         * gimple-ssa-isolate-paths.c (gimple_ssa_isolate_erroneous_paths):
2635         Free post-dominators.
2636
2637 2015-07-08  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2638
2639         * config/s390/s390.c (s390_init_frame_layout): Replace assertion
2640         with early exit.
2641
2642 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
2643
2644         * config/i386/i386.md (*jcc_bt<mode>): Only allow const_int values
2645         more than or equal 8 and less than 32 when optimizing for size.
2646
2647 2015-07-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2648
2649         * config/arm/arm.c (arm_new_rtx_costs): Initialise cost to
2650         COSTS_N_INSNS (1) and increment it appropriately throughout the
2651         function.
2652
2653 2015-07-08  Richard Biener  <rguenther@suse.de>
2654
2655         * fold-const.c (fold_widened_comparison): Fix inverted comparison.
2656
2657 2015-07-08  Alan Modra  <amodra@gmail.com>
2658
2659         * target.def (rtx_costs): Remove "code" param, add "mode".
2660         * rtl.h (rtx_cost, get_full_rtx_cost): Update prototype.
2661         (set_src_cost, get_full_set_src_cost): Likewise.  Move later in file.
2662         (set_rtx_cost, get_full_set_rtx_cost): Move later in file.
2663         * rtlanal.c (rtx_cost): Add "mode" parameter.  Update targetm.rtx_costs
2664         call.  Track mode when given in rtx.
2665         (get_full_rtx_cost): Add "mode" parameter.  Update rtx_cost calls.
2666         (default_address_cost): Pass Pmode to rtx_cost.
2667         (insn_rtx_cost): Pass dest mode of set to set_src_cost.
2668         * cprop.c (try_replace_reg): Ensure set_rtx_cost is not called
2669         with NULL set.
2670         * cse.c (COST, COST_IN): Add MODE param.  Update all uses.
2671         (notreg_cost): Add mode param.  Use it.
2672         * gcse.c (want_to_gcse_p): Delete forward declaration.  Add
2673         mode param and pass to set_src_cost.  Update all calls.
2674         (hash_scan_set): Formatting.
2675         * hooks.c (hook_bool_rtx_int_int_int_intp_bool_false): Delete.
2676         (hook_bool_rtx_mode_int_int_intp_bool_false): New function.
2677         * hooks.h: Ditto.
2678         * expmed.c (init_expmed_one_conv, init_expmed_one_mode,
2679         init_expmed, expand_mult, mult_by_coeff_cost, expand_smod_pow2,
2680         emit_store_flag): Update set_src_cost and rtx_cost calls.
2681         * auto-inc-dec.c (attempt_change): Likewise.
2682         * calls.c (precompute_register_parameters): Likewise.
2683         * combine.c (expand_compound_operation, make_extraction,
2684         force_to_mode, distribute_and_simplify_rtx): Likewise.
2685         * dojump.c (prefer_and_bit_test): Likewise.
2686         * dse.c (find_shift_sequence): Likewise.
2687         * expr.c (compress_float_constant): Likewise.
2688         * fwprop.c (should_replace_address, try_fwprop_subst): Likewise.
2689         * ifcvt.c (noce_try_sign_mask): Likewise.
2690         * loop-doloop.c (doloop_optimize): Likewise.
2691         * loop-invariant.c (create_new_invariant): Likewise.
2692         * lower-subreg.c (shift_cost, compute_costs): Likewise.
2693         * optabs.c (avoid_expensive_constant, prepare_cmp_insn,
2694         lshift_cheap_p): Likewise.
2695         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
2696         try_replace_in_use, reload_cse_move2add): Likewise.
2697         * reload1.c (calculate_elim_costs_all_insns, note_reg_elim_costly):
2698         Likewise.
2699         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
2700         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
2701         * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Likewise.
2702         * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
2703         * config/aarch64/aarch64.c (aarch64_rtx_costs): Delete "code" param,
2704         add "mode" param.  Use "mode: in place of GET_MODE (x).  Pass mode
2705         to rtx_cost calls.
2706         * config/alpha/alpha.c (alpha_rtx_costs): Likewise.
2707         * config/arc/arc.c (arc_rtx_costs): Likewise.
2708         * config/arm/arm.c (arm_rtx_costs): Likewise.
2709         * config/avr/avr.c (avr_rtx_costs, avr_rtx_costs_1): Likewise.
2710         * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
2711         * config/c6x/c6x.c (c6x_rtx_costs): Likewise.
2712         * config/cris/cris.c (cris_rtx_costs): Likewise.
2713         * config/epiphany/epiphany.c (epiphany_rtx_costs): Likewise.
2714         * config/frv/frv.c (frv_rtx_costs): Likewise.
2715         * config/h8300/h8300.c (h8300_rtx_costs): Likewise.
2716         * config/i386/i386.c (ix86_rtx_costs): Likewise.
2717         * config/ia64/ia64.c (ia64_rtx_costs): Likewise.
2718         * config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
2719         * config/lm32/lm32.c (lm32_rtx_costs): Likewise.
2720         * config/m32c/m32c.c (m32c_rtx_costs): Likewise.
2721         * config/m32r/m32r.c (m32r_rtx_costs): Likewise.
2722         * config/m68k/m68k.c (m68k_rtx_costs): Likewise.
2723         * config/mcore/mcore.c (mcore_rtx_costs): Likewise.
2724         * config/mep/mep.c (mep_rtx_cost): Likewise.
2725         * config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
2726         * config/mips/mips.c (mips_rtx_costs): Likewise.
2727         * config/mmix/mmix.c (mmix_rtx_costs): Likewise.
2728         * config/mn10300/mn10300.c (mn10300_rtx_costs): Likewise.
2729         * config/msp430/msp430.c (msp430_rtx_costs): Likewise.
2730         * config/nds32/nds32-cost.c (nds32_rtx_costs_impl): Likewise.
2731         * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Likewise.
2732         * config/nds32/nds32.c (nds32_rtx_costs): Likewise.
2733         * config/nios2/nios2.c (nios2_rtx_costs): Likewise.
2734         * config/pa/pa.c (hppa_rtx_costs): Likewise.
2735         * config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
2736         * config/rl78/rl78.c (rl78_rtx_costs): Likewise.
2737         * config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
2738         * config/s390/s390.c (s390_rtx_costs): Likewise.
2739         * config/sh/sh.c (sh_rtx_costs): Likewise.
2740         * config/sparc/sparc.c (sparc_rtx_costs): Likewise.
2741         * config/spu/spu.c (spu_rtx_costs): Likewise.
2742         * config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
2743         * config/tilegx/tilegx.c (tilegx_rtx_costs): Likewise.
2744         * config/tilepro/tilepro.c (tilepro_rtx_costs): Likewise.
2745         * config/v850/v850.c (v850_rtx_costs): Likewise.
2746         * config/vax/vax.c (vax_rtx_costs): Likewise.
2747         * config/visium/visium.c (visium_rtx_costs): Likewise.
2748         * config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.
2749         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Change type of
2750         "code" param, and pass as outer_code to first rtx_cost call.  Pass
2751         mode to rtx_cost calls.
2752         (aarch64_address_cost, aarch64_if_then_else_costs): Update rtx_cost
2753         calls.
2754         (aarch64_rtx_costs_wrapper): Update.
2755         * config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs,
2756         arm_unspec_cost, arm_new_rtx_costs, arm_slowmul_rtx_costs): Update
2757         rtx_cost calls.
2758         * config/avr/avr.c (avr_final_prescan_insn): Update set_src_cost
2759         and rtx_cost calls.
2760         (avr_operand_rtx_cost): Similarly.
2761         (avr_rtx_costs_1): Correct mode passed to avr_operand_rtx_cost
2762         for subexpressions of ZERO_EXTEND, SIGN_EXTEND and COMPARE.
2763         * config/mips/mips.c (mips_stack_address_p): Comment typo.
2764         (mips_binary_cost): Update rtx_cost and set_src_cost calls.
2765         (mips_rtx_costs): Use GET_MODE (x) to detect const_int.
2766         * config/mn10300/mn10300.c (mn10300_address_cost): Pass Pmode to
2767         rtx_cost.
2768         (mn10300_rtx_costs): Correct mode passed to mn10300_address_cost.
2769         * config/rs6000/rs6000.c (rs6000_debug_rtx_costs): Update.
2770         * config/sh/sh.c (and_xor_ior_costs): Update rtx_cost call.
2771         * doc/tm.texi: Regenerate.
2772
2773 2015-07-07  Andrew MacLeod  <amacleod@redhat.com>
2774
2775         * tree-core.h: Include symtab.h.
2776         * rtl.h: Include hard-reg-set.h but not flags.h.
2777         (HARD_CONST): Remove condition compilation involving HARD_CONST since
2778         hard-reg-set.h is always included.
2779         * regs.h: Don't include hard-reg-set.h or rtl.h.
2780         * cfg.h: Include dominance.h.
2781         * gimple.h: Include tree-ssa-alias.h and gimple-expr.h.
2782         * backend.h: New.  Aggregate commonly used backend header files.
2783         * gimple-ssa.h: Don't include tree-hasher.h.
2784         * ssa.h: New.  Aggregate commonly used SSA header files.
2785         * regset.h: Remove bitmap.h and hard-reg-set.h #includes.
2786         * sel-sched-ir.h: Flatten includes.
2787         * lra-int.h: Flatten completely.
2788         * sel-sched-dump.h: Flatten includes.
2789         * ira-int.h: Flatten includes.
2790         * gimple-streamer.h: Remove all includes.
2791         * cfgloop.h: Remove all #includes except cfgloopmanip.h.
2792         * resource.h: Flatten hard-reg-set.h and df.h.
2793         * sched-int.h: Flatten insn-arrt.h and df.h.
2794         * valtrack.h: flatten bitmap.h, df.h, and rtl.h
2795         * df.h: Flatten includes, leaving regset.h, alloc-pool.h and timevar.h.
2796         * genattrtab.c (write_header): Adjust generated includes.
2797         * genautomata.c (main): Likewise.
2798         * genconditions.c (write-header): Likewise.
2799         * genemit.c (main): Likewise.
2800         * gengtype.c (open_base_files): Likewise.
2801         * genopinit.c (main): Likewise.
2802         * genoutput.c (output_prologue): Likewise.
2803         * genpeep.c (main): Likewise.
2804         * genpreds.c (write_insn_preds_c): Likewise.
2805         * genrecog.c (write_header): Likewise.
2806         * alias.c: Adjust includes.
2807         * asan.c: Likewise.
2808         * attribs.c: Likewise.
2809         * auto-inc-dec.c: Likewise.
2810         * auto-profile.c: Likewise.
2811         * bb-reorder.c: Likewise.
2812         * bt-load.c: Likewise.
2813         * builtins.c: Likewise.
2814         * caller-save.c: Likewise.
2815         * calls.c: Likewise.
2816         * ccmp.c: Likewise.
2817         * cfg.c: Likewise.
2818         * cfganal.c: Likewise.
2819         * cfgbuild.c: Likewise.
2820         * cfgcleanup.c: Likewise.
2821         * cfgexpand.c: Likewise.
2822         * cfghooks.c: Likewise.
2823         * cfgloop.c: Likewise.
2824         * cfgloopanal.c: Likewise.
2825         * cfgloopmanip.c: Likewise.
2826         * cfgrtl.c: Likewise.
2827         * cgraph.c: Likewise.
2828         * cgraphbuild.c: Likewise.
2829         * cgraphclones.c: Likewise.
2830         * cgraphunit.c: Likewise.
2831         * cilk-common.c: Likewise.
2832         * combine-stack-adj.c: Likewise.
2833         * combine.c: Likewise.
2834         * compare-elim.c: Likewise.
2835         * convert.c: Likewise.
2836         * coverage.c: Likewise.
2837         * cppbuiltin.c: Likewise.
2838         * cprop.c: Likewise.
2839         * cse.c: Likewise.
2840         * cselib.c: Likewise.
2841         * data-streamer-in.c: Likewise.
2842         * data-streamer-out.c: Likewise.
2843         * data-streamer.c: Likewise.
2844         * dbxout.c: Likewise.
2845         * dce.c: Likewise.
2846         * ddg.c: Likewise.
2847         * debug.c: Likewise.
2848         * df-core.c: Likewise.
2849         * df-problems.c: Likewise.
2850         * df-scan.c: Likewise.
2851         * dfp.c: Likewise.
2852         * dojump.c: Likewise.
2853         * dominance.c: Likewise.
2854         * domwalk.c: Likewise.
2855         * double-int.c: Likewise.
2856         * dse.c: Likewise.
2857         * dumpfile.c: Likewise.
2858         * dwarf2asm.c: Likewise.
2859         * dwarf2cfi.c: Likewise.
2860         * dwarf2out.c: Likewise.
2861         * emit-rtl.c: Likewise.
2862         * et-forest.c: Likewise.
2863         * except.c: Likewise.
2864         * explow.c: Likewise.
2865         * expmed.c: Likewise.
2866         * expr.c: Likewise.
2867         * final.c: Likewise.
2868         * fixed-value.c: Likewise.
2869         * fold-const.c: Likewise.
2870         * function.c: Likewise.
2871         * fwprop.c: Likewise.
2872         * gcc-plugin.h: Likewise.
2873         * gcse-common.c: Likewise.
2874         * gcse.c: Likewise.
2875         * generic-match-head.c: Likewise.
2876         * ggc-page.c: Likewise.
2877         * gimple-builder.c: Likewise.
2878         * gimple-expr.c: Likewise.
2879         * gimple-fold.c: Likewise.
2880         * gimple-iterator.c: Likewise.
2881         * gimple-low.c: Likewise.
2882         * gimple-match-head.c: Likewise.
2883         * gimple-pretty-print.c: Likewise.
2884         * gimple-ssa-isolate-paths.c: Likewise.
2885         * gimple-ssa-strength-reduction.c: Likewise.
2886         * gimple-streamer-in.c: Likewise.
2887         * gimple-streamer-out.c: Likewise.
2888         * gimple-walk.c: Likewise.
2889         * gimple.c: Likewise.
2890         * gimplify-me.c: Likewise.
2891         * gimplify.c: Likewise.
2892         * godump.c: Likewise.
2893         * graph.c: Likewise.
2894         * graphite-blocking.c: Likewise.
2895         * graphite-dependences.c: Likewise.
2896         * graphite-interchange.c: Likewise.
2897         * graphite-isl-ast-to-gimple.c: Likewise.
2898         * graphite-optimize-isl.c: Likewise.
2899         * graphite-poly.c: Likewise.
2900         * graphite-scop-detection.c: Likewise.
2901         * graphite-sese-to-poly.c: Likewise.
2902         * graphite.c: Likewise.
2903         * haifa-sched.c: Likewise.
2904         * hw-doloop.c: Likewise.
2905         * ifcvt.c: Likewise.
2906         * init-regs.c: Likewise.
2907         * internal-fn.c: Likewise.
2908         * ipa-chkp.c: Likewise.
2909         * ipa-comdats.c: Likewise.
2910         * ipa-cp.c: Likewise.
2911         * ipa-devirt.c: Likewise.
2912         * ipa-icf-gimple.c: Likewise.
2913         * ipa-icf.c: Likewise.
2914         * ipa-inline-analysis.c: Likewise.
2915         * ipa-inline-transform.c: Likewise.
2916         * ipa-inline.c: Likewise.
2917         * ipa-polymorphic-call.c: Likewise.
2918         * ipa-profile.c: Likewise.
2919         * ipa-prop.c: Likewise.
2920         * ipa-pure-const.c: Likewise.
2921         * ipa-ref.c: Likewise.
2922         * ipa-reference.c: Likewise.
2923         * ipa-split.c: Likewise.
2924         * ipa-utils.c: Likewise.
2925         * ipa-visibility.c: Likewise.
2926         * ipa.c: Likewise.
2927         * ira-build.c: Likewise.
2928         * ira-color.c: Likewise.
2929         * ira-conflicts.c: Likewise.
2930         * ira-costs.c: Likewise.
2931         * ira-emit.c: Likewise.
2932         * ira-lives.c: Likewise.
2933         * ira.c: Likewise.
2934         * jump.c: Likewise.
2935         * langhooks.c: Likewise.
2936         * lcm.c: Likewise.
2937         * loop-doloop.c: Likewise.
2938         * loop-init.c: Likewise.
2939         * loop-invariant.c: Likewise.
2940         * loop-iv.c: Likewise.
2941         * loop-unroll.c: Likewise.
2942         * lower-subreg.c: Likewise.
2943         * lra-assigns.c: Likewise.
2944         * lra-coalesce.c: Likewise.
2945         * lra-constraints.c: Likewise.
2946         * lra-eliminations.c: Likewise.
2947         * lra-lives.c: Likewise.
2948         * lra-remat.c: Likewise.
2949         * lra-spills.c: Likewise.
2950         * lra.c: Likewise.
2951         * lto-cgraph.c: Likewise.
2952         * lto-compress.c: Likewise.
2953         * lto-opts.c: Likewise.
2954         * lto-section-in.c: Likewise.
2955         * lto-section-out.c: Likewise.
2956         * lto-streamer-in.c: Likewise.
2957         * lto-streamer-out.c: Likewise.
2958         * lto-streamer.c: Likewise.
2959         * mcf.c: Likewise.
2960         * mode-switching.c: Likewise.
2961         * modulo-sched.c: Likewise.
2962         * omega.c: Likewise.
2963         * omp-low.c: Likewise.
2964         * optabs.c: Likewise.
2965         * opts-global.c: Likewise.
2966         * passes.c: Likewise.
2967         * plugin.c: Likewise.
2968         * postreload-gcse.c: Likewise.
2969         * postreload.c: Likewise.
2970         * predict.c: Likewise.
2971         * print-rtl.c: Likewise.
2972         * print-tree.c: Likewise.
2973         * profile.c: Likewise.
2974         * real.c: Likewise.
2975         * realmpfr.c: Likewise.
2976         * recog.c: Likewise.
2977         * ree.c: Likewise.
2978         * reg-stack.c: Likewise.
2979         * regcprop.c: Likewise.
2980         * reginfo.c: Likewise.
2981         * regrename.c: Likewise.
2982         * regstat.c: Likewise.
2983         * reload.c: Likewise.
2984         * reload1.c: Likewise.
2985         * reorg.c: Likewise.
2986         * resource.c: Likewise.
2987         * rtl-chkp.c: Likewise.
2988         * rtlanal.c: Likewise.
2989         * rtlhooks.c: Likewise.
2990         * sanopt.c: Likewise.
2991         * sched-deps.c: Likewise.
2992         * sched-ebb.c: Likewise.
2993         * sched-rgn.c: Likewise.
2994         * sched-vis.c: Likewise.
2995         * sdbout.c: Likewise.
2996         * sel-sched-dump.c: Likewise.
2997         * sel-sched-ir.c: Likewise.
2998         * sel-sched.c: Likewise.
2999         * sese.c: Likewise.
3000         * shrink-wrap.c: Likewise.
3001         * simplify-rtx.c: Likewise.
3002         * stack-ptr-mod.c: Likewise.
3003         * stmt.c: Likewise.
3004         * stor-layout.c: Likewise.
3005         * store-motion.c: Likewise.
3006         * stringpool.c: Likewise.
3007         * symtab.c: Likewise.
3008         * target-globals.c: Likewise.
3009         * targhooks.c: Likewise.
3010         * toplev.c: Likewise.
3011         * tracer.c: Likewise.
3012         * trans-mem.c: Likewise.
3013         * tree-affine.c: Likewise.
3014         * tree-browser.c: Likewise.
3015         * tree-call-cdce.c: Likewise.
3016         * tree-cfg.c: Likewise.
3017         * tree-cfgcleanup.c: Likewise.
3018         * tree-chkp-opt.c: Likewise.
3019         * tree-chkp.c: Likewise.
3020         * tree-chrec.c: Likewise.
3021         * tree-complex.c: Likewise.
3022         * tree-data-ref.c: Likewise.
3023         * tree-dfa.c: Likewise.
3024         * tree-diagnostic.c: Likewise.
3025         * tree-dump.c: Likewise.
3026         * tree-eh.c: Likewise.
3027         * tree-emutls.c: Likewise.
3028         * tree-if-conv.c: Likewise.
3029         * tree-inline.c: Likewise.
3030         * tree-into-ssa.c: Likewise.
3031         * tree-iterator.c: Likewise.
3032         * tree-loop-distribution.c: Likewise.
3033         * tree-nested.c: Likewise.
3034         * tree-nrv.c: Likewise.
3035         * tree-object-size.c: Likewise.
3036         * tree-outof-ssa.c: Likewise.
3037         * tree-parloops.c: Likewise.
3038         * tree-phinodes.c: Likewise.
3039         * tree-predcom.c: Likewise.
3040         * tree-pretty-print.c: Likewise.
3041         * tree-profile.c: Likewise.
3042         * tree-scalar-evolution.c: Likewise.
3043         * tree-sra.c: Likewise.
3044         * tree-ssa-address.c: Likewise.
3045         * tree-ssa-alias.c: Likewise.
3046         * tree-ssa-ccp.c: Likewise.
3047         * tree-ssa-coalesce.c: Likewise.
3048         * tree-ssa-copy.c: Likewise.
3049         * tree-ssa-copyrename.c: Likewise.
3050         * tree-ssa-dce.c: Likewise.
3051         * tree-ssa-dom.c: Likewise.
3052         * tree-ssa-dse.c: Likewise.
3053         * tree-ssa-forwprop.c: Likewise.
3054         * tree-ssa-ifcombine.c: Likewise.
3055         * tree-ssa-live.c: Likewise.
3056         * tree-ssa-loop-ch.c: Likewise.
3057         * tree-ssa-loop-im.c: Likewise.
3058         * tree-ssa-loop-ivcanon.c: Likewise.
3059         * tree-ssa-loop-ivopts.c: Likewise.
3060         * tree-ssa-loop-manip.c: Likewise.
3061         * tree-ssa-loop-niter.c: Likewise.
3062         * tree-ssa-loop-prefetch.c: Likewise.
3063         * tree-ssa-loop-unswitch.c: Likewise.
3064         * tree-ssa-loop.c: Likewise.
3065         * tree-ssa-math-opts.c: Likewise.
3066         * tree-ssa-operands.c: Likewise.
3067         * tree-ssa-phiopt.c: Likewise.
3068         * tree-ssa-phiprop.c: Likewise.
3069         * tree-ssa-pre.c: Likewise.
3070         * tree-ssa-propagate.c: Likewise.
3071         * tree-ssa-reassoc.c: Likewise.
3072         * tree-ssa-sccvn.c: Likewise.
3073         * tree-ssa-scopedtables.c: Likewise.
3074         * tree-ssa-sink.c: Likewise.
3075         * tree-ssa-strlen.c: Likewise.
3076         * tree-ssa-structalias.c: Likewise.
3077         * tree-ssa-tail-merge.c: Likewise.
3078         * tree-ssa-ter.c: Likewise.
3079         * tree-ssa-threadedge.c: Likewise.
3080         * tree-ssa-threadupdate.c: Likewise.
3081         * tree-ssa-uncprop.c: Likewise.
3082         * tree-ssa-uninit.c: Likewise.
3083         * tree-ssa.c: Likewise.
3084         * tree-ssanames.c: Likewise.
3085         * tree-stdarg.c: Likewise.
3086         * tree-streamer-in.c: Likewise.
3087         * tree-streamer-out.c: Likewise.
3088         * tree-streamer.c: Likewise.
3089         * tree-switch-conversion.c: Likewise.
3090         * tree-tailcall.c: Likewise.
3091         * tree-vect-data-refs.c: Likewise.
3092         * tree-vect-generic.c: Likewise.
3093         * tree-vect-loop-manip.c: Likewise.
3094         * tree-vect-loop.c: Likewise.
3095         * tree-vect-patterns.c: Likewise.
3096         * tree-vect-slp.c: Likewise.
3097         * tree-vect-stmts.c: Likewise.
3098         * tree-vectorizer.c: Likewise.
3099         * tree-vrp.c: Likewise.
3100         * tree.c: Likewise.
3101         * tsan.c: Likewise.
3102         * ubsan.c: Likewise.
3103         * valtrack.c: Likewise.
3104         * value-prof.c: Likewise.
3105         * var-tracking.c: Likewise.
3106         * varasm.c: Likewise.
3107         * varpool.c: Likewise.
3108         * vmsdbgout.c: Likewise.
3109         * vtable-verify.c: Likewise.
3110         * web.c: Likewise.
3111         * wide-int.cc: Likewise.
3112         * xcoffout.c: Likewise.
3113         * config/aarch64/aarch64-builtins.c: Likewise.
3114         * config/aarch64/aarch64.c: Likewise.
3115         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
3116         * config/alpha/alpha.c: Likewise.
3117         * config/arc/arc.c: Likewise.
3118         * config/arm/aarch-common.c: Likewise.
3119         * config/arm/arm-builtins.c: Likewise.
3120         * config/arm/arm-c.c: Likewise.
3121         * config/arm/arm.c: Likewise.
3122         * config/avr/avr-c.c: Likewise.
3123         * config/avr/avr-log.c: Likewise.
3124         * config/avr/avr.c: Likewise.
3125         * config/bfin/bfin.c: Likewise.
3126         * config/c6x/c6x.c: Likewise.
3127         * config/cr16/cr16.c: Likewise.
3128         * config/cris/cris.c: Likewise.
3129         * config/darwin-c.c: Likewise.
3130         * config/darwin.c: Likewise.
3131         * config/epiphany/epiphany.c: Likewise.
3132         * config/epiphany/mode-switch-use.c: Likewise.
3133         * config/epiphany/resolve-sw-modes.c: Likewise.
3134         * config/fr30/fr30.c: Likewise.
3135         * config/frv/frv.c: Likewise.
3136         * config/ft32/ft32.c: Likewise.
3137         * config/h8300/h8300.c: Likewise.
3138         * config/i386/i386-c.c: Likewise.
3139         * config/i386/i386.c: Likewise.
3140         * config/i386/msformat-c.c: Likewise.
3141         * config/i386/winnt-cxx.c: Likewise.
3142         * config/i386/winnt-stubs.c: Likewise.
3143         * config/i386/winnt.c: Likewise.
3144         * config/ia64/ia64-c.c: Likewise.
3145         * config/ia64/ia64.c: Likewise.
3146         * config/iq2000/iq2000.c: Likewise.
3147         * config/lm32/lm32.c: Likewise.
3148         * config/m32c/m32c-pragma.c: Likewise.
3149         * config/m32c/m32c.c: Likewise.
3150         * config/m32r/m32r.c: Likewise.
3151         * config/m68k/m68k.c: Likewise.
3152         * config/mcore/mcore.c: Likewise.
3153         * config/mep/mep-pragma.c: Likewise.
3154         * config/mep/mep.c: Likewise.
3155         * config/microblaze/microblaze-c.c: Likewise.
3156         * config/microblaze/microblaze.c: Likewise.
3157         * config/mips/mips.c: Likewise.
3158         * config/mmix/mmix.c: Likewise.
3159         * config/mn10300/mn10300.c: Likewise.
3160         * config/moxie/moxie.c: Likewise.
3161         * config/msp430/msp430-c.c: Likewise.
3162         * config/msp430/msp430.c: Likewise.
3163         * config/nds32/nds32-cost.c: Likewise.
3164         * config/nds32/nds32-fp-as-gp.c: Likewise.
3165         * config/nds32/nds32-intrinsic.c: Likewise.
3166         * config/nds32/nds32-isr.c: Likewise.
3167         * config/nds32/nds32-md-auxiliary.c: Likewise.
3168         * config/nds32/nds32-memory-manipulation.c: Likewise.
3169         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
3170         * config/nds32/nds32-predicates.c: Likewise.
3171         * config/nds32/nds32.c: Likewise.
3172         * config/nios2/nios2.c: Likewise.
3173         * config/nvptx/nvptx.c: Likewise.
3174         * config/pa/pa.c: Likewise.
3175         * config/pdp11/pdp11.c: Likewise.
3176         * config/rl78/rl78-c.c: Likewise.
3177         * config/rl78/rl78.c: Likewise.
3178         * config/rs6000/rs6000-c.c: Likewise.
3179         * config/rs6000/rs6000.c: Likewise.
3180         * config/rx/rx.c: Likewise.
3181         * config/s390/s390-c.c: Likewise.
3182         * config/s390/s390.c: Likewise.
3183         * config/sh/sh-c.c: Likewise.
3184         * config/sh/sh-mem.cc: Likewise.
3185         * config/sh/sh.c: Likewise.
3186         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
3187         * config/sh/sh_treg_combine.cc: Likewise.
3188         * config/sol2-c.c: Likewise.
3189         * config/sol2-cxx.c: Likewise.
3190         * config/sol2-stubs.c: Likewise.
3191         * config/sol2.c: Likewise.
3192         * config/sparc/sparc-c.c: Likewise.
3193         * config/sparc/sparc.c: Likewise.
3194         * config/spu/spu-c.c: Likewise.
3195         * config/spu/spu.c: Likewise.
3196         * config/stormy16/stormy16.c: Likewise.
3197         * config/tilegx/mul-tables.c: Likewise.
3198         * config/tilegx/tilegx-c.c: Likewise.
3199         * config/tilegx/tilegx.c: Likewise.
3200         * config/tilepro/mul-tables.c: Likewise.
3201         * config/tilepro/tilepro-c.c: Likewise.
3202         * config/tilepro/tilepro.c: Likewise.
3203         * config/v850/v850-c.c: Likewise.
3204         * config/v850/v850.c: Likewise.
3205         * config/vax/vax.c: Likewise.
3206         * config/visium/visium.c: Likewise.
3207         * config/vms/vms-c.c: Likewise.
3208         * config/vms/vms.c: Likewise.
3209         * config/vxworks.c: Likewise.
3210         * config/xtensa/xtensa.c: Likewise.
3211
3212 2015-07-07  Uros Bizjak  <ubizjak@gmail.com>
3213
3214         * config/i386/i386.md (*jcc_bt<mode>): Only split before reload.
3215         Remove operand constraints.  Change operand 2 predicate to
3216         nonmemory operand.  Limit const_int values to mode bitsize.  Only
3217         allow const_int values less than 32 when optimizing for size.
3218         (*jcc_bt<mode>_1, *jcc_bt<mode>_mask): Only split before reload.
3219         Remove operand constraints.
3220         (*bt<mode>): Use SImode for const_int values less than 32.
3221         (regmode): Remove mode attribute.
3222
3223 2015-07-07  Anatoly Sokolov  <aesok@post.ru>
3224
3225         * config/moxie/moxie.h (GO_IF_LEGITIMATE_ADDRESS): Remove macros.
3226         * config/moxie/moxie.c (moxie_reg_ok_for_base_p,
3227           moxie_legitimate_address_p): New functions.
3228           (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
3229
3230 2015-07-07  Tom de Vries  <tom@codesourcery.com>
3231
3232         PR tree-optimization/66642
3233         * tree-parloops.c (transform_to_exit_first_loop_alt): Update function
3234         header comment.  Rename split_edge variable to edge_at_split.  Split
3235         exit edge to create new loop exit bb.  Insert loop exit phis in new
3236         loop exit bb.
3237
3238 2015-07-07  Tom de Vries  <tom@codesourcery.com>
3239
3240         * tree-cfg.c (get_virtual_phi): New function.
3241         * tree-cfg.h (get_virtual_phi): Declare.
3242         * tree-ssa-loop-manip.c (replace_uses_in_dominated_bbs)
3243         (rewrite_virtuals_into_loop_closed_ssa): New function.
3244         * tree-ssa-loop-manip.h (rewrite_virtuals_into_loop_closed_ssa):
3245         Declare.
3246         * tree-parloops.c (replace_uses_in_bbs_by): Remove.
3247         (transform_to_exit_first_loop_alt): Use
3248         rewrite_virtuals_into_loop_closed_ssa.
3249
3250 2015-07-07  Richard Biener  <rguenther@suse.de>
3251
3252         * fold-const.c (fold_binary_loc): Move
3253         (X & C2) << C1 -> (X << C1) & (C2 << C1) simplification ...
3254         * match.pd: ... here.
3255         Add (X * C1) % C2 -> 0 simplification pattern derived from
3256         extract_muldiv_1.
3257
3258 2015-07-07  Kaz Kojima  <kkojima@gcc.gnu.org>
3259
3260         PR target/66780
3261         * config/sh/sh.md (symGOT_load): Revert a part of 2015-03-03
3262         change for target/65249.
3263
3264 2015-07-07  Paulo Matos  <pmatos@broadcom.com>
3265
3266         * symtab.c (address_matters_1): Fix typo in comment above.
3267         (can_increase_alignment_p): Likewise.
3268
3269 2015-07-07  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
3270
3271         * function.c (free_after_compilation): Clear PROP_cfg in
3272         f->curr_properties.
3273
3274 2015-07-07  Richard Biener  <rguenther@suse.de>
3275
3276         * tree-ssa-propagate.c (add_ssa_edge): Dump what edge list we
3277         add which use to.
3278         (add_control_edge): Remove excessive vertical space in dumping.
3279         (process_ssa_edge_worklist): Simulate at most one statement and
3280         return whether we did.  Do not simulate PHIs if they are in a
3281         BB not yet simulated.
3282         (ssa_propagate): Adjust to always drain the BB worklist whenever
3283         a BB is available there, likewise the VARYING edges list before
3284         the interesting edge list.
3285
3286 2015-07-07  Christian Bruel  <christian.bruel@st.com>
3287
3288         PR target/52144
3289         * config/arm/elf.h (TARGET_ASM_FILE_START_APP_OFF): Delete.
3290
3291 2015-07-07  Richard Biener  <rguenther@suse.de>
3292
3293         PR middle-end/66739
3294         * match.pd: Condition A - B ==/!= 0 -> A ==/!= B on single-use
3295         A - B.
3296
3297 2015-07-06  Uros Bizjak  <ubizjak@gmail.com>
3298
3299         * config/i386/i386.md (insv<mode>): Rename from insv.  Use SWI48
3300         modes for operands 0 and 3.  Use SImode for operands 2 and 3.
3301         Copy operand 0 to a temporary if !ext_register_operand.  Remove
3302         ancient extract_bit_field workaround.
3303         (insv<mode>_1): Rename from mov<mode>_insv_1.
3304         (*insvqi): Rename from *movqi_insv_2.
3305         * config/i386/i386.c (emit_i386_cw_initialization): Update calls
3306         for renamed insvsi_1.
3307         (promote_duplicated_reg): Ditto for renamed insv<mode>_1.
3308
3309 2015-07-06  Nathan Sidwell  <nathan@codesourcery.com>
3310
3311         * config/nvptx/nvptx.c (nvptx_reorg): Remove unused vars.  Fix
3312         call to nvptx_reorg_subreg.
3313
3314 2015-07-06  Jim Wilson  <jim.wilson@linaro.org>
3315
3316         * graphite-blocking.c (HAVE_isl): Include <stddef.h>.
3317         * graphite-dependencies.c, graphite-interchange.c,
3318         graphite-isl-ast-to-gimple.c, graphite-optimize-isl.c, graphite-poly.c,
3319         graphite-scop-detection.c, graphite-sese-to-poly.c, graphite.c:
3320         Likewise.
3321
3322 2015-07-06  Marc Glisse  <marc.glisse@inria.fr>
3323
3324         * match.pd: Remove element_mode inside HONOR_*.
3325         (~ (-A) -> A - 1, ~ (A - 1) -> -A): Handle complex types.
3326         (~X | X -> -1, ~X ^ X -> -1): Merge.
3327         * tree.c (build_each_one_cst): New function.
3328         * tree.h (build_each_one_cst): Likewise.
3329
3330 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
3331
3332         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
3333         PROCESSOR_IAMCU.
3334
3335 2015-07-06  Steve Ellcey  <sellcey@imgtec.com>
3336
3337         * config.gcc <mips*-*-*>: Add fused-madd.opt.
3338         * config/mips/mips.opt (mfused-madd): Remove.
3339         * config/mips/mips.c (mips_rtx_costs): Update cost calculations.
3340         * config/mips/mips.h (TARGET_MIPS8000): New.
3341         (ISA_HAS_FP_MADD4_MSUB4): Remove.
3342         (ISA_HAS_FP_MADDF_MSUBF): Remove.
3343         (ISA_HAS_FP_MADD3_MSUB3): Remove.
3344         (ISA_HAS_NMADD4_NMSUB4): Remove.
3345         (ISA_HAS_NMADD3_NMSUB3): Remove.
3346         (ISA_HAS_FUSED_MADD4): New.
3347         (ISA_HAS_UNFUSED_MADD4): New.
3348         (ISA_HAS_FUSED_MADDF): New.
3349         (ISA_HAS_FUSED_MADD3): New.
3350         * config/mips/mips.md: (fma<mode>4) Change from insn to expand.
3351         (*fma<mode>4_madd3) New.
3352         (*fma<mode>4_madd4) New.
3353         (*fma<mode>4_maddf) New.
3354         (fms<mode>4) New.
3355         (*fms<mode>4_msub3) New.
3356         (*fms<mode>4_msub4) New.
3357         (fnma<mode>4) New.
3358         (*fnma<mode>4_nmadd3) New.
3359         (*fnma<mode>4_nmadd4) New.
3360         (fnms<mode>4) New.
3361         (*fnms<mode>4_nmsub3) New.
3362         (*fnms<mode>4_nmsub4) New.
3363         (*madd4<mode>) Modify to be unfused only.
3364         (*msub4<mode>) Modify to be unfused only.
3365         (*nmadd4<mode>) Modify to be unfused only.
3366         (*nmsub4<mode>) Modify to be unfused only.
3367         (*madd3<mode>) Remove.
3368         (*msub3<mode>) Remove.
3369         (*nmadd3<mode>) Remove.
3370         (*nmsub3<mode>) Remove.
3371         (*nmadd3<mode>_fastmath) Remove.
3372         (*nmsub3<mode>_fastmath) Remove.
3373         (*nmadd4<mode>_fastmath) Update condition.
3374         (*nmsub4<mode>_fastmath) Update condition.
3375
3376 2015-07-06  Alan Lawrence  <alan.lawrence@arm.com>
3377
3378         PR target/65956
3379         * config/arm/arm.c (arm_needs_doubleword_align): Drop any outer
3380         alignment attribute, exploring one level down for records and arrays.
3381
3382 2015-07-06  Uros Bizjak  <ubizjak@gmail.com>
3383
3384         * config/i386/i386.md (extv<mode>): Rename from extv.  Use SWI24
3385         modes for operands 0 and 1.  Use SImode for operands 2 and 3.
3386         Copy operand 1 to a temporary if !ext_register_operand.  Remove
3387         ancient extract_bit_field workaround.
3388         (*extv<mode>): Rename from *mov<mode>_extv_1.
3389         (*extvqi): Rename from *movqi_extv_1.
3390         (extzv<mode>): Rename from extzv.  Use SWI248 modes for
3391         operands 0 and 1.  Use SImode for operands 2 and 3. Copy operand 1
3392         to a temporary if !ext_register_operand.  Remove ancient
3393         extract_bit_field workaround.
3394         (*extzv<mode>): Rename from *mov<mode>_extzv_1.
3395         (*extzvqi): Rename from *movqi_extzv_2.
3396         (*testqi_ext_3): Remove modes from const_int_operand predicated
3397         operands.  Add "n" constraint.
3398         (*btsq, *btrq, *btcq): Remove mode from const_0_to_63 predicated
3399         operand.  Add "J" constraint.
3400         (*btsq, *btrq, *btcq peephole2s): Remove mode from
3401         const_0_to_63 predicated operand.
3402         (regmode): New insn attribute.
3403         (*bt<mode>): Use SImode for operand 1.  Change operand 1 predicate
3404         to nonmemory_operand.  Use regmode insn attribute.
3405         (*jcc_bt<mode>_1): Convert operand 2 to SImode.
3406         (*jcc_bt<mode>_mask): Remove mode from operand 3.
3407         (*jcc_btsi_1, *jcc_btsi_mask_1): Remove patterns.
3408         (tbm_bextri_<mode>): Remove modes from const_0_to_255 predicated
3409         operands.  Use "N" constraint instead of "n".
3410
3411 2015-07-06  Alan Lawrence  <alan.lawrence@arm.com>
3412
3413         * config/arm/arm.md (movdi): Avoid odd-number ldrd/strd in ARM state.
3414
3415 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
3416
3417         PR target/66749
3418         * config/i386/i386.c (iamcu_cost): New.
3419         (m_IAMCU): Likewise.
3420         (initial_ix86_arch_features): Disable X86_ARCH_CMOV for m_IAMCU.
3421         (processor_target_table): Add an entry for "iamcu".
3422         (processor_alias_table): Likewise.
3423         (ix86_issue_rate): Handle PROCESSOR_IAMCU.
3424         (ix86_adjust_cost): Likewise.
3425         (ia32_multipass_dfa_lookahead): Likewise.
3426         * config/i386/i386.h (processor_type): Add PROCESSOR_IAMCU.
3427         * config/i386/x86-tune.def: Updated for m_IAMCU.
3428
3429 2015-07-06  Richard Biener  <rguenther@suse.de>
3430
3431         PR tree-optimization/66772
3432         * tree-ssa-ccp.c (ccp_visit_phi_node): Make sure that copy
3433         values are available in the PHI node BB when there are
3434         still unexecutable edges.
3435
3436 2015-07-06  Richard Biener  <rguenther@suse.de>
3437
3438         PR tree-optimization/66767
3439         * tree-vect-loop-manip.c (vect_create_cond_for_align_checks):
3440         Make sure to build the alignment test on a SSA name without
3441         final alignment info valid only if the alignment test
3442         evaluates to true.
3443
3444 2015-07-06  Bernd Schmidt  <bernds@codesourcery.com>
3445
3446         PR target/66620
3447         * config/bfin/bfin.c (hwloop_optimize): Create new bb between jump and
3448         loop start when inserting LSETUP.
3449
3450 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
3451
3452         PR target/53383
3453         * config/i386/i386.c (ix86_option_override_internal): Allow
3454         -mincoming-stack-boundary=3 for 64-bit if SSE is disabled.
3455
3456 2015-07-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3457
3458         * read-md.c (decimal_string): Rename to ...
3459         (md_decimal_string): ... this.
3460         (handle_enum): Reflect this.
3461
3462 2015-07-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>
3463
3464         PR target/66731
3465         * config/aarch64/aarch64.md (fnmul<mode>3): Handle -frounding-math.
3466
3467 2015-07-06  Richard Biener  <rguenther@suse.de>
3468
3469         PR middle-end/66759
3470         * match.pd: Add missing constraint of y to REAL_CST in
3471         REAL_CST - x CMP y to y - CST CMP x simplification.
3472
3473 2015-07-06  Eric Botcazou  <ebotcazou@adacore.com>
3474
3475         PR tree-optimization/66757
3476         * match.pd: Add missing condition to ~X ^ C -> X ^ ~C.
3477
3478 2015-07-05  Chung-Lin Tang  <cltang@codesourcery.com>
3479             Sandra Loosemore <sandra@codesourcery.com>
3480
3481         * config/nios2/nios2-protos.h (nios2_symbol_ref_in_small_data_p):
3482         Delete extern declaration.
3483         (gprel_constant_p): Add extern declaration.
3484         * config/nios2/constraints.md ("S"): Use gprel_constant_p
3485         instead of nios2_symbol_ref_in_small_data_p.
3486         * config/nios2/nios2.c (nios2_legitimate_address_p): Likewise.
3487         (nios2_symbol_ref_in_small_data_p): Make static.
3488         (gprel_constant_p): Make non-static.
3489
3490 2015-07-05  Gerald Pfeifer  <gerald@pfeifer.com>
3491
3492         * doc/fragments.texi (Target Fragment): Convert debian.org
3493         link to use https.
3494         * doc/install.texi (Configuration): Ditto.
3495
3496 2015-07-05  Jakub Jelinek  <jakub@redhat.com>
3497
3498         PR tree-optimization/66718
3499         * tree-vect-stmts.c (vectorizable_call): Replace uses of
3500         GOMP_SIMD_LANE outside of loop with vf - 1 rather than 0.
3501
3502         PR tree-optimization/66718
3503         * tree-vect-stmts.c (vectorizable_assignment, vectorizable_store,
3504         vectorizable_load, vectorizable_condition): Move vectype,
3505         nunits, ncopies computation after checking what kind of statement
3506         stmt is.
3507
3508 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3509
3510         * target-insns.def (extv, extzv, insv): New targetm instruction
3511         patterns.
3512         * optabs.c (get_extraction_insn): Use them instead of HAVE_*/gen_*
3513         interface.
3514         * recog.c (simplify_while_replacing): Likewise.
3515
3516 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3517
3518         * target-insns.def (doloop_begin, doloop_end): New targetm
3519         instruction patterns.
3520         * loop-init.c: Include target.h.
3521         (pass_loop2::gate): Use the new targetm patterns instead of
3522         HAVE_*/gen_* interface.
3523         (pass_rtl_doloop::gate): Likewise.
3524         (pass_rtl_doloop::execute): Remove preprocessor condition.
3525         * hw-doloop.c: Build unconditionally.
3526         * loop-doloop.c: Likewise.
3527         (doloop_optimize): Use the new targetm patterns instead of
3528         HAVE_*/gen_* interface.
3529         (doloop_modify): Likewise. Change type of doloop_seq to rtx_insn *.
3530         * modulo-sched.c (doloop_register_get): Likewise.
3531
3532 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3533
3534         * target-insns.def (clear_cache): New targetm instruction pattern.
3535         * builtins.c (expand_builtin___clear_cache): Use it instead of
3536         HAVE_*/gen_* interface.
3537
3538 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3539
3540         * target-insns.def (allocate_stack, check_stack, probe_stack)
3541         (probe_stack_address, split_stack_prologue, split_stack_space_check):
3542         New targetm instruction patterns.
3543         * explow.c (allocate_dynamic_stack_space): Use them instead of
3544         HAVE_*/gen_* interface.
3545         (emit_stack_probe): Likewise.
3546         (probe_stack_range): Likewise.
3547         * function.c (thread_prologue_and_epilogue_insns): Likewise.
3548
3549 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3550
3551         * target-insns.def (stack_protect_set, stack_protect_test): New
3552         targetm instruction patterns.
3553         * cfgexpand.c (stack_protect_prologue): Use them instead of
3554         HAVE_*/gen_* interface.
3555         * function.c (stack_protect_epilogue): Likewise.
3556
3557 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3558
3559         * expr.h (gen_move_insn_uncast): Delete.
3560         * expr.c (gen_move_insn_uncast): Delete.
3561
3562 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3563
3564         * target-insns.def (restore_stack_block, restore_stack_function)
3565         (restore_stack_nonlocal, save_stack_block, save_stack_function)
3566         (save_stack_nonlocal): New targetm instruction patterns.
3567         * builtins.c (expand_builtin_apply): Use them instead of
3568         HAVE_*/gen_* interface.
3569         * explow.c (emit_stack_save, emit_stack_restore): Likewise.
3570
3571 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3572
3573         * target-insns.def (trap): New targetm instruction pattern.
3574         * builtins.c (expand_builtin_trap): Use it instead of HAVE_*/gen_*
3575         interface.
3576         * explow.c (allocate_dynamic_stack_space): Likewise.
3577         * ifcvt.c (find_if_header): Likewise.
3578
3579 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3580
3581         * target-insns.def (prefetch): New targetm instruction pattern.
3582         * tree-ssa-loop-prefetch.c: Include targeth.
3583         (tree_ssa_prefetch_arrays): Use prefetch targetm pattern instead
3584         of HAVE_*/gen_* interface.
3585         * builtins.c (expand_builtin_prefetch): Likewise.
3586         * toplev.c (process_options): Likewise.
3587
3588 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3589
3590         * target-insns.def (untyped_call, untyped_return): New targetm
3591         instruction patterns.
3592         * builtins.c (expand_builtin_apply): Use them instead of
3593         HAVE_*/gen_* interface.
3594         (result_vector): Define unconditionally.
3595
3596 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3597
3598         * target-insns.def (builtin_longjmp, builtin_setjmp_receiver)
3599         (builtin_setjmp_setup, exception_receiver, nonlocal_goto)
3600         (nonlocal_goto_receiver): New targetm instruction patterns.
3601         * builtins.c (expand_builtin_setjmp_setup): Use them instead
3602         of HAVE_*/gen_* interface.
3603         (expand_builtin_setjmp_receiver): Likewise.
3604         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
3605         * except.c (expand_dw2_landing_pad_for_region): Likewise.
3606
3607 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3608
3609         * target.def: Add code_for_* hooks.
3610         * gentarget-def.c (def_target_insn): Add TARGET_CODE_FOR_* macros.
3611         * defaults.h (HAVE_tablejump, gen_tablejump): Delete.
3612         * target-insns.def (casesi, tablejump): New targetm instruction
3613         patterns.
3614         * expr.c (try_casesi): Use them instead of HAVE_*/gen_* interface.
3615         (do_tablejump): Likewise.
3616         * stmt.c (expand_switch_as_decision_tree_p): Likewise.
3617         (expand_sjlj_dispatch_table): Likewise.
3618         * targhooks.c (default_case_values_threshold): Likewise.
3619
3620 2015-07-04  Sandra Loosemore  <sandra@codesourcery.com>
3621
3622         * config/nios2/nios2.c (save_reg, restore_reg): Use plus_constant.
3623         Use rtx_insn * instead of rtx.
3624         (nios2_emit_add_constant): Use rtx_insn * instead of rtx.
3625         (nios2_expand_prologue, nios2_expand_epilogue): Likewise.
3626         (nios2_call_tls_get_addr): Likewise.
3627         (nios2_emit_expensive_div): Likewise.
3628         (nios2_emit_move_sequence): Change return type to bool.
3629         * config/nios2/nios2-protos.h (nios2_emit_move_sequence):
3630         Change return type to bool.
3631
3632 2015-07-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3633
3634         PR target/66747
3635         * config/mips/mips.c (mips_find_gp_ref): Handle instruction sequences.
3636
3637 2015-07-04  John David Anglin  <danglin@gcc.gnu.org>
3638
3639         PR target/66114
3640         * config/pa/pa.md (indirect_jump): Use pmode_register_operand instead
3641         of register_operand.  Remove constraint.
3642
3643 2015-07-04  Marc Glisse  <marc.glisse@inria.fr>
3644
3645         * tree-cfg.c (verify_gimple_assign_ternary) <VEC_COND_EXPR>: Check
3646         the first argument.
3647
3648 2015-07-03  Paolo Carlini  <paolo.carlini@oracle.com>
3649
3650         * attribs.c (decl_attributes): Guard inform with the return value
3651         of the preceding warning.
3652
3653 2015-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
3654
3655         * doc/invoke.texi (moverride): Move to correct section.
3656
3657 2015-07-03  Richard Biener  <rguenther@suse.de>
3658
3659         * genmatch.c (commutative_tree_code, commutative_ternary_tree_code):
3660         Copy from tree.c
3661         (dt_operand::gen_gimple_expr): After valueizing operands
3662         re-canonicalize operand order for commutative tree codes.
3663
3664 2015-07-03  H.J. Lu  <hongjiu.lu@intel.com>
3665
3666         PR target/66746.
3667         * config/i386/ia32intrin.h (__crc32b): Don't define if __iamcu__
3668         is defined.
3669         (__crc32w): Likewise.
3670         (__crc32d): Likewise.
3671         (__rdpmc): Likewise.
3672         (__rdtscp): Likewise.
3673         (_rdpmc): Likewise.
3674         (_rdtscp): Likewise.
3675         * config/i386/x86intrin.h: Only include ia32intrin.h if __iamcu__
3676         is defined.
3677
3678 2015-07-03  Richard Biener  <rguenther@suse.de>
3679
3680         * fold-const.c (fold_mathfn_compare): Remove.
3681         (fold_inf_compare): Likewise.
3682         (fold_comparison): Move floating point comparison simplifications...
3683         * match.pd: ... to patterns here.  Introduce simple_comparisons
3684         operator list and use it for patterns formerly in fold_comparison.
3685
3686 2015-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
3687
3688         PR tree-optimization/66119
3689         * toplev.c (process_options): Don't set up default values for
3690         the sra_max_scalarization_size_{speed,size} parameters.
3691         * tree-sra (analyze_all_variable_accesses): If no values
3692         have been set for the sra_max_scalarization_size_{speed,size}
3693         parameters, call get_move_ratio to get target defaults.
3694
3695 2015-07-03  Richard Biener  <rguenther@suse.de>
3696
3697         * fold-const.c (fold_binary_loc): Move (T)ptr & CST folding...
3698         * match.pd: ... here.
3699
3700 2015-07-03  Gerald Pfeifer  <gerald@pfeifer.com>
3701
3702         PR target/37072
3703         * doc/invoke.texi (i386 and x86-64 Options): -mno-fancy-math-387
3704         is not actually the default on FreeBSD.
3705
3706 2015-07-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3707
3708         * config/rs6000/rs6000-builtin.def (CMPGE_16QI): New built-in
3709         definition.
3710         (CMPGE_8HI): Likewise.
3711         (CMPGE_4SI): Likewise.
3712         (CMPGE_2DI): Likewise.
3713         (CMPGE_U16QI): Likewise.
3714         (CMPGE_U8HI): Likewise.
3715         (CMPGE_U4SI): Likewise.
3716         (CMPGE_U2DI): Likewise.
3717         (CMPLE_16QI): Likewise.
3718         (CMPLE_8HI): Likewise.
3719         (CMPLE_4SI): Likewise.
3720         (CMPLE_2DI): Likewise.
3721         (CMPLE_U16QI): Likewise.
3722         (CMPLE_U8HI): Likewise.
3723         (CMPLE_U4SI): Likewise.
3724         (CMPLE_U2DI): Likewise.
3725         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
3726         overloads for ALTIVEC_BUILTIN_VEC_CMPGE and
3727         ALTIVEC_BUILTIN_VEC_CMPLE.
3728         * config/rs6000/vector.md (vector_ge<mode>): Restrict to
3729         floating-point vector modes.
3730         (vector_nlt<mode>): New define_expand.
3731         (vector_nltu<mode>): Likewise.
3732         (vector_ngt<mode>): Likewise.
3733         (vector_ngtu<mode>): Likewise.
3734
3735 2015-07-02  Segher Boessenkool  <segher@kernel.crashing.org>
3736
3737         PR rtl-optimization/66706
3738         * combine.c (make_compound_operation): If an AND of SUBREG of
3739         LSHIFTRT does not simplify, see if just the AND of SUBREG does.
3740
3741 2015-07-02  Alan Lawrence  <alan.lawrence@arm.com>
3742
3743         * tree-pass.h (make_pass_ch_vect): New.
3744         * passes.def: Add pass_ch_vect just before pass_if_conversion.
3745
3746         * tree-ssa-loop-ch.c (ch_base, pass_ch_vect, pass_data_ch_vect,
3747         pass_ch::process_loop_p, pass_ch_vect::process_loop_p,
3748         make_pass_ch_vect): New.
3749         (pass_ch): Extend ch_base.
3750
3751         (pass_ch::execute): Move all but loop_optimizer_init/finalize to...
3752         (ch_base::copy_headers): ...here.
3753
3754 2015-07-02  Richard Biener  <rguenther@suse.de>
3755
3756         * builtins.c (get_pointer_alignment_1): Handle POINTER_PLUS_EXPR.
3757         * fold-const.c (get_pointer_modulus_and_residue): Remove.
3758         (fold_binary_loc): Implement (T)ptr & CST in terms of
3759         get_pointer_alignment_1.
3760         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop):
3761         Make sure to build the alignment test on a SSA name without
3762         final alignment info valid only after the prologue.
3763
3764 2015-07-02  Hans-Peter Nilsson  <hp@axis.com>
3765
3766         * config/cris/cris.md ("epilogue"): Remove condition.
3767         ("prologue"): Ditto.
3768
3769 2015-07-02  Richard Biener  <rguenther@suse.de>
3770
3771         * tree-ssa-dom.c (build_and_record_new_cond): Add optional
3772         parameter to record a condition that is false.
3773         (record_conditions): When recording an extra NE_EXPR that is
3774         true also record a EQ_EXPR that is false.
3775
3776 2015-07-02  Bin Cheng  <bin.cheng@arm.com>
3777
3778         * tree-ssa-loop-ivopts.c (struct ivopts_data): New field iv_obstack.
3779         (tree_ssa_iv_optimize_init): Initialize iv_obstack.
3780         (alloc_iv): New parameter.  Allocate struct iv using obstack_alloc.
3781         (set_iv, find_interesting_uses_address, add_candidate_1): New
3782         argument to alloc_iv.
3783         (find_interesting_uses_op, find_interesting_uses_cond): Don't
3784         duplicate struct iv.
3785         (free_loop_data): Don't free struct iv explicitly.
3786         (tree_ssa_iv_optimize_finalize): Free iv_obstack.
3787
3788 2015-07-01  DJ Delorie  <dj@redhat.com>
3789
3790         * config/s390/tpf.h (LIBSTDCXX): Change to CPP1.
3791         (LIB_SPEC): Add.
3792         (SUPPORTS_DISCRIMINATOR): Define.
3793
3794 2015-07-01  Richard Sandiford  <richard.sandiford@arm.com>
3795
3796         PR bootstrap/66685
3797         * rtl.c (classify_insn): Only return JUMP_INSN for parallel returns if
3798         there are no CALLs in the same pattern.
3799
3800 2015-07-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3801
3802         PR rtl-optimization/61047
3803         * rtlanal.c (get_initial_register_offset): New function.
3804         (rtx_addr_can_trap_p_1): Check offsets of stack references.
3805
3806 2015-07-01  Richard Biener  <rguenther@suse.de>
3807
3808         * fold-const.c (fold_comparison): Move X - Y CMP 0 -> X CMP Y,
3809         X * C1 CMP 0 -> X CMP 0, X CMP X, ~X CMP ~Y -> Y CMP X and
3810         ~X CMP C -> X CMP' ~C to ...
3811         * match.pd: ... patterns here.
3812
3813 2015-07-01  Nick Clifton  <nickc@redhat.com>
3814
3815         * config/msp430/msp430.md (zero_extendhipsi2): Use MOVX.A to store
3816         a 16-bit value into a 20-bit memory slot.
3817
3818 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
3819
3820         * doc/sourcebuild.texi (AArch64-specific attributes): Document
3821         "aarch64_tiny", "aarch64_small", "aarch64_large",
3822         "aarch64_little_endian", "aarch64_big_endian".
3823
3824 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
3825
3826         * doc/sourcebuild.texi (AArch64-specific attributes): New subsection.
3827         Document "aarch64_small_fpic".
3828
3829 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
3830
3831         * configure.ac: Add check for aarch64 assembler -fpic relocation
3832         modifier support.
3833         * configure: Regenerate.
3834         * config.in: Regenerate.
3835         * config/aarch64/aarch64.c (initialize_aarch64_code_model): Fall back
3836         to -fPIC if not support of -fpic relocation modifier in assembler.
3837
3838 2015-07-01  Richard Sandiford  <richard.sandiford@arm.com>
3839
3840         PR bootstrap/66685
3841         * rtl.c (classify_insn): Handle returns in PARALLELs.
3842
3843 2015-07-01  Eric Botcazou  <ebotcazou@adacore.com>
3844
3845         PR middle-end/66633
3846         * tree-nested.c (convert_nonlocal_omp_clauses): Initialize need_chain
3847         to true if the function is nested and if not optimizing.
3848         (convert_local_omp_clauses): Initialize need_frame to true if the
3849         function contains nested functions and if not optimizing.
3850
3851 2015-07-01  Richard Biener  <rguenther@suse.de>
3852
3853         * fold-const.c (fold_binary_loc): Move ~X ^ X -> -1 and
3854         (X & Y) ^ Y -> ~X & Y transforms to ...
3855         * match.pd: ... here.
3856
3857 2015-07-01  Richard Biener <rguenther@suse.de>
3858
3859         * genmatch.c (expr::gen_transform): Shortcut re-simplifying
3860         of converts to avoid uninteresting noise from the conversion
3861         simplifying patterns.
3862
3863 2015-06-30  Sandra Loosemore <sandra@codesourcery.com>
3864
3865         * config/c6x/c6x.c (try_rename_operands): Do not depend on
3866         gcc_assert evaluating its argument for side-effect.
3867
3868 2015-06-30  Kaz Kojima  <kkojima@gcc.gnu.org>
3869
3870         PR target/64833
3871         * config/sh/sh.md (casesi_worker_1): Set length to 8 when
3872         flag_pic is set.
3873
3874 2015-06-30  Eric Botcazou  <ebotcazou@adacore.com>
3875
3876         * lto-streamer-out.c (class DFS): Adjust hash_scc method.
3877         (DFS::DFS): Pass this_ref_p and ref_p to hash_scc.
3878         (hash_scc): Add this_ref_p and ref_p parameters and pass them
3879         to the inner DFS walk.
3880
3881 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
3882
3883         * target-insns.def (jump): New targetm instruction pattern.
3884         * bb-reorder.c (get_uncond_jump_length): Use targetm.gen_jump
3885         instead of gen_jump.
3886         (fix_up_crossing_landing_pad): Likewise.
3887         (add_labels_and_missing_jumps): Likewise.
3888         (fix_crossing_conditional_branches): Likewise.
3889         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
3890         (force_nonfallthru_and_redirect): Likewise.
3891         * cse.c (cse_insn): Likewise.
3892         * expmed.c (expand_divmod): Likewise.
3893         * expr.c (store_expr_with_bounds, expand_expr_real_2): Likewise.
3894         * haifa-sched.c (init_before_recovery): Likewise.
3895         (sched_create_recovery_edges): Likewise.
3896         * ifcvt.c (find_cond_trap): Likewise.
3897         * optabs.c (expand_doubleword_shift, expand_doubleword_clz): Likewise.
3898         (expand_float, expand_fix): Likewise.
3899         * stmt.c (emit_jump): Likewise.
3900
3901 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
3902
3903         * defaults.h (HAVE_load_multiple, gen_load_multiple)
3904         (HAVE_store_multiple, gen_store_multiple): Delete.
3905         * target-insns.def (load_multiple, store_multiple): New targetm
3906         instruction patterns.
3907         * expr.c (move_block_to_reg, move_block_from_reg): Use them instead
3908         of HAVE_*/gen_* interface.
3909
3910 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
3911
3912         * defaults.h (HAVE_mem_thread_fence, gen_mem_thread_fence)
3913         (HAVE_memory_barrier, gen_memory_barrier, HAVE_mem_signal_fence)
3914         (gen_mem_signal_fence): Delete.
3915         * target-insns.def (mem_signal_fence, mem_thread_fence)
3916         (memory_barrier): New targetm instruction patterns.
3917         * optabs.c (expand_mem_thread_fence): Use them instead of HAVE_*/gen_*
3918         interface.
3919         (expand_mem_signal_fence): Likewise.
3920
3921 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
3922
3923         * defaults.h (HAVE_epilogue, gen_epilogue): Delete.
3924         * target-insns.def (epilogue, prologue, sibcall_prologue): New
3925         targetm instruction patterns.
3926         * alias.c (init_alias_analysis): Use them instead of HAVE_*/gen_*
3927         interface.
3928         * calls.c (expand_call): Likewise.
3929         * cfgrtl.c (cfg_layout_finalize): Likewise.
3930         * df-scan.c (df_get_entry_block_def_set): Likewise.
3931         (df_get_exit_block_use_set): Likewise.
3932         * dwarf2cfi.c (pass_dwarf2_frame::gate): Likewise.
3933         * final.c (final_start_function): Likewise.
3934         * function.c (thread_prologue_and_epilogue_insns): Likewise.
3935         (reposition_prologue_and_epilogue_notes): Likewise.
3936         * reorg.c (find_end_label): Likewise.
3937         * toplev.c (process_options): Likewise.
3938
3939 2015-06-30  David Malcolm  <dmalcolm@redhat.com>
3940
3941         * typed-splay-tree.h: New file.
3942
3943 2015-06-30  Vladimir Makarov  <vmakarov@redhat.com>
3944
3945         PR debug/66691
3946         * lra-int.h (lra_substitute_pseudo): Add a parameter.
3947         (lra_substitute_pseudo_within_insn): Ditto.
3948         * lra.c (lra_substitute_pseudo): Add a parameter.  Simplify subreg
3949         of constant.
3950         (lra_substitute_pseudo_within_insn): Add a parameter.  Transfer it
3951         to lra_substitute_pseudo.
3952         * lra-lives.c (process_bb_lives): Add an argument to
3953         lra_substitute_pseudo_within_insn call.
3954         * lra-constraints.c (inherit_reload_reg, split_reg): Add an
3955         argument to lra_substitute_pseudo and
3956         lra_substitute_pseudo_within_insn calls.
3957         (remove_inheritance_pseudos, undo_optional_reloads): Ditto.
3958
3959 2015-06-30  H.J. Lu  <hongjiu.lu@intel.com>
3960
3961         * configure: Regenerated.
3962
3963 2015-06-30  H.J. Lu  <hongjiu.lu@intel.com>
3964
3965         * config.gcc: Support i[34567]86-*-elfiamcu target.
3966         * config/i386/iamcu.h: New.
3967         * config/i386/i386.opt: Add -miamcu.
3968         * doc/invoke.texi: Document -miamcu.
3969         * common/config/i386/i386-common.c  (ix86_handle_option): Turn
3970         off x87/MMX/SSE/AVX codegen for -miamcu.
3971         * config/i386/i386-c.c (ix86_target_macros_internal): Define
3972         __iamcu/__iamcu__ for -miamcu.
3973         * config/i386/i386.h (PREFERRED_STACK_BOUNDARY_DEFAULT): Set
3974         to MIN_STACK_BOUNDARY if TARGET_IAMCU is true.
3975         (BIGGEST_ALIGNMENT): Set to 32 if TARGET_IAMCU is true.
3976         * config/i386/i386.c (ix86_option_override_internal): Ignore and
3977         warn -mregparm for Intel MCU.  Turn on -mregparm=3 for Intel
3978         MCU by default.  Default long double to 64-bit for Intel MCU.
3979         Turn on -freg-struct-return for Intel MCU.  Issue an error when
3980         -miamcu is used in 64-bit or x32 mode or if x87, MMX, SSE or
3981         AVX is turned on.
3982         (function_arg_advance_32): Pass value whose size is no larger
3983         than 8 bytes in registers for Intel MCU.
3984         (function_arg_32): Likewise.
3985         (ix86_return_in_memory): Return value whose size is no larger
3986         than 8 bytes in registers for Intel MCU.
3987         (iamcu_alignment): New function.
3988         (ix86_data_alignment): Call iamcu_alignment if TARGET_IAMCU is
3989         true.
3990         (ix86_local_alignment): Don't increase alignment for Intel MCU.
3991         (x86_field_alignment): Return iamcu_alignment if TARGET_IAMCU is
3992         true.
3993
3994 2015-06-30  Marek Polacek  <polacek@redhat.com>
3995
3996         * match.pd (X - (X / Y) * Y): Use convert1 and convert2.  Convert
3997         both operands of the resulting expression.
3998
3999         * match.pd (~x | x): Don't use tree_nop_conversion_p.  Build
4000         the final expression with the operand's type and then convert
4001         it to the type of the expression.
4002
4003 2015-06-30  Richard Biener  <rguenther@suse.de>
4004
4005         * fold-const.c (fold_binary_loc): Move ~x & ~y -> ~(x | y) and
4006         ~x | ~y -> ~(x & y), (x & CST) ^ (x & CST2) -> (x & CST) | (x & CST2),
4007         (X | Y) ^ X -> Y & ~ X, ~X ^ ~Y to X ^ Y and ~X ^ C to X ^ ~C ...
4008         * match.pd: ... to patterns here.
4009
4010 2015-06-30  Richard Biener  <rguenther@suse.de>
4011
4012         PR tree-optimization/66704
4013         * tree-vect-data-refs.c (vect_setup_realignment): Use
4014         make_ssa_name for non-SSA name source.
4015
4016 2015-06-30  Jakub Jelinek  <jakub@redhat.com>
4017
4018         PR middle-end/66702
4019         * omp-low.c (simd_clone_adjust): Handle addressable linear
4020         or uniform parameters or non-gimple type uniform parameters.
4021
4022 2015-06-30  Richard Biener  <rguenther@suse.de>
4023
4024         * fold-const.c (fold_unary_loc): Move abs(abs(x)) -> abs(x),
4025         ~ (-A) to A - 1, ~ (A - 1) or ~ (A + -1) to -A and some cases of
4026         ~(X ^ Y) to ~X ^ Y or X ^ ~Y if ~X or ~Y simplify to ...
4027         * match.pd: ... here.
4028         Add a few cases of A - B -> A + (-B) when B "easily" negates.
4029         Move (x & y) | x -> x and friends before
4030         (x | CST1) & CST2 -> (x & CST2) | (CST1 & CST2).
4031
4032 2015-06-30  Eric Botcazou  <ebotcazou@adacore.com>
4033
4034         * config/sparc/leon.md (leon_load): Enable for all LEON variants if
4035         -mfix-ut699 is not specified.
4036         (leon3_load): Rename into...
4037         (ut699_load): ...this.  Enable for all LEON variants if -mfix-ut699
4038         is specified.
4039
4040 2015-06-30  Marek Polacek  <polacek@redhat.com>
4041
4042         * fold-const.c (fold_binary_loc): Move ~X | X folding ...
4043         * match.pd: ... here.
4044
4045 2015-06-30  Richard Biener  <rguenther@suse.de>
4046
4047         * target-insns.def (canonicalize_funcptr_for_compare): Add.
4048         * fold-const.c (build_range_check): Replace uses of
4049         HAVE_canonicalize_funcptr_for_compare.
4050         (fold_widened_comparison): Likewise.
4051         (fold_sign_changed_comparison): Likewise.
4052         * dojump.c: Include "target.h".
4053         (do_compare_and_jump): Replace uses of
4054         HAVE_canonicalize_funcptr_for_compare and
4055         gen_canonicalize_funcptr_for_compare.
4056         * expr.c (do_store_flag): Likewise.
4057
4058 2015-06-30  Tom de Vries  <tom@codesourcery.com>
4059
4060         PR tree-optimization/66652
4061         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
4062         max_loop_iterations to determine if nit + 1 overflows.
4063
4064 2015-06-30  Richard Biener  <rguenther@suse.de>
4065
4066         * tree-vrp.c (register_edge_assert_for_2): Also register
4067         asserts for dominating conversion results.
4068
4069 2015-06-30  Bin Cheng  <bin.cheng@arm.com>
4070
4071         * tree-ssa-loop-ivopts.c (record_sub_use): Don't reset ssa_name
4072         field in struct iv.
4073
4074 2015-06-29  Jack Howarth  <howarth.at.gcc@gmail.com>
4075
4076         PR target/66509
4077         * configure.ac: Fix filds and fildq test for 64-bit.
4078         * configure: Regenerated.
4079
4080 2015-06-29  Nathan Sidwell  <nathan@codesourcery.com>
4081
4082         * config/nvptx/nvptx.md (nvptx_reorg_subreg): New fn, broken out of ...
4083         (nvptx_reorg): Here.  Keep the non-subreg pieces.
4084
4085 2015-06-29  H.J. Lu  <hongjiu.lu@intel.com>
4086
4087         * config/gnu-user.h (GNU_USER_TARGET_ENDFILE_SPEC): Use
4088         PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
4089
4090 2015-06-29  Uros Bizjak  <ubizjak@gmail.com>
4091
4092         * config/i386/i386.md (*jcc_1): Use %! in asm template.
4093         Set attribute "length_nobnd" instead of "length".
4094         (*jcc_2): Ditto.
4095         (jump): Ditto.
4096         (*jcc_1_bnd, *jcc_2_bnd, jump_bnd): Remove insn patterns.
4097
4098 2015-06-29  Sandra Loosemore  <sandra@codesourcery.com>
4099
4100         * config/nios2/nios2.c (nios2_delegitimize_address): Make
4101         assert less restrictive.
4102
4103 2015-06-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4104
4105         PR fortran/66605
4106         * cgraphunit.c (cgraph_node::finalize_function): Do not call
4107         do_warn_unused_parameter.
4108         * function.c (do_warn_unused_parameter): Move from here.
4109         * function.h (do_warn_unused_parameter): Do not declare.
4110
4111 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
4112
4113         PR target/65697
4114         * gcc.target/arm/armv-sync-comp-swap.c: New.
4115         * gcc.target/arm/armv-sync-op-acquire.c: New.
4116         * gcc.target/arm/armv-sync-op-full.c: New.
4117         * gcc.target/arm/armv-sync-op-release.c: New.
4118
4119 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
4120
4121         PR target/65697
4122         * config/armc/arm.c (arm_split_compare_and_swap): For ARMv8, replace an
4123         initial acquire barrier with final barrier.
4124
4125 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
4126
4127         PR target/65697
4128         * config/armc/arm.c (arm_split_atomic_op): For ARMv8, replace an
4129         initial acquire barrier with final barrier.
4130
4131 2015-06-29  Richard Henderson  <rth@redhat.com>
4132
4133         * config/i386/constraints.md (Bf): New constraint.
4134         * config/i386/i386-c.c (ix86_target_macros): Define
4135         __GCC_ASM_FLAG_OUTPUTS__.
4136         * config/i386/i386.c (ix86_md_asm_adjust): Handle =@cc* constraints
4137         as flags outputs.
4138         * doc/extend.texi (FlagOutputOperands): Document them.
4139
4140 2015-06-29  Jiong Wang  <jiong.wang@arm.com>
4141
4142         * config/arch64/aarch64.md (UNSPEC_TLSLE): New enumeration.
4143         * config/arch64/aarch64.md (tlsle_small): Rename to tlsle and use new
4144         unspec name.
4145         (tlsle_small_<mode>): Rename to tlsle_<mode> and use new unspec name.
4146         * config/arch64/aarch64-protos.h (arch64_symbol_type): Rename
4147         SYMBOL_SMALL_TPREL to SYMBOL_TLSLE.
4148         (aarch64_symbol_context): Ditto.
4149         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto
4150         and use new pattern name.
4151         (aarch64_expand_mov_immediate): Ditto.
4152         (aarch64_print_operand): Ditto.
4153         (aarch64_classify_tls_symbol): Ditto.
4154
4155 2015-06-29  Marek Polacek  <polacek@redhat.com>
4156             Marc Glisse  <marc.glisse@inria.fr>
4157
4158         * fold-const.c (fold_binary_loc): Move X - (X / Y) * Y -> X % Y to ...
4159         * match.pd: ... pattern here.
4160
4161 2015-06-29  Tom de Vries  <tom@codesourcery.com>
4162
4163         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Simplify
4164         function structure.
4165
4166 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
4167
4168         * doc/invoke.texi (Aarch64 Options, -march): Split out arch and
4169         feature description, split out the native option, add a link to
4170         the feature documentation, rearrange and slightly rewrite text.
4171         (Aarch64 options, -mcpu): Likewise.
4172         (Aarch64 options, Feature Modifiers): Add an anchor.  Mention
4173         +rdma implies Adv. SIMD.
4174
4175 2015-06-29  Marek Polacek  <polacek@redhat.com>
4176
4177         PR c/66322
4178         * function.c (stack_protect_epilogue): Remove a cast to int.
4179         * doc/invoke.texi: Update -Wswitch-bool description.
4180
4181 2015-06-29  Richard Biener  <rguenther@suse.de>
4182
4183         * genmatch.c (add_operator): Treat ADDR_EXPR as atom.
4184         * fold-const.c (fold_binary_loc): Move &A - &B simplification
4185         via ptr_difference_const ...
4186         * match.pd: ... here.
4187         When matching (X ^ Y) == Y also match with swapped operands.
4188
4189 2015-06-29  Richard Biener  <rguenther@suse.de>
4190
4191         * lto-streamer.h (LTO_major_version): Bump to 5.
4192
4193 2015-06-29  Richard Biener  <rguenther@suse.de>
4194
4195         PR tree-optimization/66677
4196         * tree-vect-stmts.c (vect_transform_stmt): Make assert about
4197         STMT_VINFO_VEC_STMT clobbering less strict.
4198
4199 2015-06-29  Kugan Vivekanandarajah  <kuganv@linaro.org>
4200
4201         PR middle-end/64130
4202         * tree-vrp.c (extract_range_from_binary_expr_1): For unsigned
4203         division, compute max and min when value ranges for dividend and
4204         divisor are available.
4205
4206 2015-06-28  Chung-Lin Tang <cltang@codesourcery.com>
4207             Sandra Loosemore <sandra@codesourcery.com>
4208
4209         * regrename.h (regrename_do_replace): Change to return bool.
4210         * regrename.c (rename_chains): Check return value of
4211         regname_do_replace.
4212         (regrename_do_replace): Re-validate the modified insns and
4213         return bool status.
4214         * config/aarch64/cortex-a57-fma-steering.c (rename_single_chain):
4215         Update to match rename_chains changes.
4216         * config/c6x/c6x.c (try_rename_operands): Assert that
4217         regrename_do_replace returns true.
4218
4219 2015-06-28  Uros Bizjak  <ubizjak@gmail.com>
4220
4221         * config/i386/i386.md (<mode>_ldx): Do not zero-extend non-Pmode
4222         operand 2 here.  Use copy_addr_to_reg to copy non-index
4223         register operand 2 to a temporary.
4224         (<mode>_stx): Ditto for operand 1.
4225         (*<mode>_ldx, *<mode>_stx): Remove enclosing parallel.
4226         * config/i386/i386.c (ix86_load_bounds): Zero-extend non-Pmode ptr here.
4227         (ix86_store_bounds): Ditto.
4228
4229 2015-06-27  Patrick Palka  <ppalka@gcc.gnu.org>
4230
4231         * print-tree.c (print_node) [TREE_VEC]: Print its length.
4232
4233 2015-06-26  Andrew MacLeod  <amacleod@redhat.com>
4234
4235         * gimple.c (gimple_call_set_fndecl): Remove.
4236         * gimple.h (gimple_call_set_fndecl): Relocate to gimple.h and call
4237         build1_loc directly instead of build_fold_addr_expr_loc.
4238
4239 2015-06-26  Richard Sandiford  <richard.sandiford@arm.com>
4240
4241         * hash-map.h (hash_map::traverse): Use the definition of the
4242         Key typedef rather than the typedef itself.
4243
4244 2015-06-26  Martin Jambor  <mjambor@suse.cz>
4245
4246         PR debug/66301
4247         * tree-ssa-pre.c (before_dom_children): Check that dump_file is not
4248         NULL instead of calling dump_enabled_p.
4249
4250 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
4251
4252         * config/aarch64/aarch64.opt: (override): New.
4253         * doc/invoke.texi (override): Document.
4254         * config/aarch64/aarch64.c (aarch64_flag_desc): New
4255         (aarch64_fusible_pairs): Likewise.
4256         (aarch64_tuning_flags): Likewise.
4257         (aarch64_tuning_override_function): Likewise.
4258         (aarch64_tuning_override_functions): Likewise.
4259         (aarch64_parse_one_option_token): Likewise.
4260         (aarch64_parse_boolean_options): Likewise.
4261         (aarch64_parse_fuse_string): Likewise.
4262         (aarch64_parse_tune_string): Likewise.
4263         (aarch64_parse_one_override_token): Likewise.
4264         (aarch64_parse_override_string): Likewise.
4265         (aarch64_override_options): Parse the -override string if it
4266         is present.
4267
4268 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
4269
4270         * config/aarch64/aarch64-protos.h (tune_params): Remove
4271         const from members.
4272         (aarch64_tune_params): Remove const, change to no longer be
4273         a pointer.
4274         * config/aarch64/aarch64.c (aarch64_tune_params): Remove const,
4275         change to no longer be a pointer, initialize to generic_tunings.
4276         (aarch64_min_divisions_for_recip_mul): Change dereference of
4277         aarch64_tune_params to member access.
4278         (aarch64_reassociation_width): Likewise.
4279         (aarch64_rtx_mult_cost): Likewise.
4280         (aarch64_address_cost): Likewise.
4281         (aarch64_branch_cost): Likewise.
4282         (aarch64_rtx_costs): Likewise.
4283         (aarch64_register_move_cost): Likewise.
4284         (aarch64_memory_move_cost): Likewise.
4285         (aarch64_sched_issue_rate): Likewise.
4286         (aarch64_builtin_vectorization_cost): Likewise.
4287         (aarch64_override_options): Take a copy of the selected tuning
4288         struct in to aarch64_tune_params, rather than just setting
4289         a pointer, change dereferences of aarch64_tune_params to member
4290         accesses.
4291         (aarch64_override_options_after_change): Change dereferences of
4292         aarch64_tune_params to member access.
4293         (aarch64_macro_fusion_p): Likewise.
4294         (aarch_macro_fusion_pair_p): Likewise.
4295         * config/aarch64/cortex-a57-fma-steering.c (gate): Likewise.
4296
4297 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
4298
4299         * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Delete.
4300         (aarch64_tune_flags): Likewise.
4301         (AARCH64_TUNE_FMA_STEERING): Likewise.
4302         * config/aarch64/aarch64-cores.def (cortex-a57): Remove reference
4303         to AARCH64_FL_USE_FMA_STEERING_PASS.
4304         (cortex-a57.cortex-a53): Likewise.
4305         (cortex-a72): Use cortexa72_tunings.
4306         (cortex-a72.cortex-a53): Likewise.
4307         (exynos-m1): Likewise.
4308         * config/aarch64/aarch64-protos.h (tune_params): Add
4309         a field: extra_tuning_flags.
4310         * config/aarch64/aarch64-tuning-flags.def: New.
4311         * config/aarch64/aarch64-protos.h (AARCH64_EXTRA_TUNING_OPTION): New.
4312         (aarch64_extra_tuning_flags): Likewise.
4313         (aarch64_tune_params): Declare here.
4314         * config/aarch64/aarch64.c (generic_tunings): Set extra_tuning_flags.
4315         (cortexa53_tunings): Likewise.
4316         (cortexa57_tunings): Likewise.
4317         (thunderx_tunings): Likewise.
4318         (xgene1_tunings): Likewise.
4319         (cortexa72_tunings): New.
4320         * config/aarch64/cortex-a57-fma-steering.c: Include aarch64-protos.h.
4321          (gate): Check against aarch64_tune_params.
4322         * config/aarch64/t-aarch64 (cortex-a57-fma-steering.o): Depend on
4323         aarch64-protos.h.
4324
4325 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
4326
4327         * config/aarch64/aarch64-fusion-pairs.def: New.
4328         * config/aarch64/aarch64-protos.h (aarch64_fusion_pairs): New.
4329         * config/aarch64/aarch64.c (AARCH64_FUSE_NOTHING): Move to
4330         aarch64_fusion_pairs.
4331         (AARCH64_FUSE_MOV_MOVK): Likewise.
4332         (AARCH64_FUSE_ADRP_ADD): Likewise.
4333         (AARCH64_FUSE_MOVK_MOVK): Likewise.
4334         (AARCH64_FUSE_ADRP_LDR): Likewise.
4335         (AARCH64_FUSE_CMP_BRANCH): Likewise.
4336
4337 2015-06-26  Jiong Wang  <jiong.wang@arm.com>
4338
4339         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): New type
4340         SYMBOL_SMALL_GOT_28K.
4341         * config/aarch64/aarch64.md: (ldr_got_small_<mode>): Support new GOT
4342         relocation modifiers.
4343         (unspec): New enum "UNSPEC_GOTMALLPIC28K.
4344         (ldr_got_small_28k_<mode>): New.
4345         (ldr_got_small_28k_sidi): New.
4346         * config/aarch64/iterators.md (got_modifier): New mode iterator.
4347         * config/aarch64/aarch64-otps.h (aarch64_code_model): New model.
4348         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Support
4349         SYMBOL_SMALL_GOT_28K.
4350         (aarch64_rtx_costs): Add costs for new instruction sequences.
4351         (initialize_aarch64_code_model): Initialize new model.
4352         (aarch64_classify_symbol): Recognize new model and new symbol classification.
4353         (aarch64_asm_preferred_eh_data_format): Support new model.
4354         (aarch64_load_symref_appropriately): Generate new instruction
4355         sequences for -fpic.
4356         (TARGET_USE_PSEUDO_PIC_REG): New definition.
4357         (aarch64_use_pseudo_pic_reg): New function.
4358
4359 2015-06-26  Jiong Wang  <jiong.wang@arm.com>
4360
4361         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Rename
4362         SYMBOL_SMALL_GOT to SYMBOL_SMALL_GOT_4G.
4363         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto.
4364         (aarch64_expand_mov_immediate): Ditto.
4365         (aarch64_print_operand): Ditto.
4366         (aarch64_classify_symbol): Ditto.
4367
4368 2015-06-26  Nathan Sidwell  <nathan@codesourcery.com>
4369
4370         * config/nvptx/nvptx.md (call_operation): Remove unused variables.
4371
4372 2015-06-26  Bin Cheng  <bin.cheng@arm.com>
4373
4374         PR bootstrap/66638
4375         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Skip if
4376         assertion failed.  Remove assertion itself.
4377
4378 2015-06-26  Richard Biener  <rguenther@suse.de>
4379
4380         * fold-const.c (fold_binary_loc): Remove -A CMP -B -> A CMP B
4381         and -A CMP CST -> A CMP -CST which is redundant with a pattern
4382         in match.pd.
4383         Move (A | C) == D where C & ~D != 0 -> 0, (X ^ Y) ==/!= 0 -> X ==/!= Y,
4384         (X ^ Y) ==/!= {Y,X} -> {X,Y} ==/!= 0 and
4385         (X ^ C1) op C2 -> X op (C1 ^ C2) to ...
4386         * match.pd: ... patterns here.
4387
4388 2015-06-26  Marek Polacek  <polacek@redhat.com>
4389
4390         * match.pd ((x | y) & ~(x & y) -> x ^ y,
4391         (x | y) & (~x ^ y) -> x & y): New patterns.
4392
4393 2015-06-26  Richard Sandiford  <richard.sandiford@arm.com>
4394
4395         * rtl.h (emit): Add an optional boolean parameter to control
4396         whether barriers are emitted.
4397         * emit-rtl.c (emit): Likewise.
4398         * gensupport.c (get_emit_function): Return null rather than "emit".
4399         * genemit.c (gen_emit_seq): Handle the null return value.
4400         Don't emit barriers after the final instruction in the sequence.
4401         * gentarget-def.c (main): Don't emit barriers after the instruction.
4402
4403 2015-06-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4404
4405         * config/arm/arm.c (arm_output_multireg_pop): Fix use of
4406         TARGET_UNIFIED_ASM.
4407
4408 2015-06-26  Richard Biener  <rguenther@suse.de>
4409
4410         * match.pd: Allow associating FLOAT_TYPE_P when flag_associative_math.
4411
4412 2015-06-26  Richard Biener  <rguenther@suse.de>
4413
4414         * match.pd: Allow (p +p off1) +p off2 to (p +p (off1 + off2))
4415         irrespective on whether the inner operation has a single use
4416         of both off are constant.
4417
4418 2015-06-26  Uros Bizjak  <ubizjak@gmail.com>
4419             Segher Boessenkool  <segher@kernel.crashing.org>
4420
4421         PR target/66412
4422         * config/i386/i386.md (various splitters): Use shallow_copy_rtx
4423         before doing PUT_MODE or PUT_CODE on operands to avoid
4424         in-place RTX modification.
4425
4426 2015-06-25  H.J. Lu  <hongjiu.lu@intel.com>
4427
4428         * gentarget-def.c (def_target_insn): Cast return of strtol to
4429         unsigned int.
4430
4431 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
4432
4433         * gimple.h (gimple_call_set_fn): Move inline function.
4434         * gimple.c (gimple_call_set_fn): Relocate here.
4435
4436 2015-06-25  Oleg Endo  <olegendo@gcc.gnu.org>
4437
4438         PR target/65979
4439         PR target/66611
4440         * config/sh/sh.md (tstsi_t peephole2): Use insn_invalid_p to check if
4441         the replacement insn will work.
4442
4443 2015-06-25  H.J. Lu  <hongjiu.lu@intel.com>
4444
4445         * gcc.c (driver_handle_option): Validate -pie if PIE is enabled
4446         by default.
4447
4448 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
4449
4450         * function.h (ipa_opt_pass, ipa_opt_pass_d): Move forward declarations.
4451         * cgraph.h: Include ipa-ref.h and plugin-api.h.
4452         (ipa_opt_pass, ipa_opt_pass_d)): Relocate forward declarations here.
4453         (symtab_node::address_can_be_compared_p): Move function.
4454         * cgraph.c (symtab_node::address_can_be_compared_p): Relocate function
4455         definition here.
4456         * asan.c: Remove ipa-ref.h and plugin-api.h from include list.
4457         * auto-profile.c: Likewise.
4458         * bb-reorder.c: Likewise.
4459         * builtins.c: Likewise.
4460         * calls.c: Likewise.
4461         * cfgexpand.c: Likewise.
4462         * cgraphbuild.c: Likewise.
4463         * cgraphclones.c: Likewise.
4464         * cgraphunit.c: Likewise.
4465         * combine.c: Likewise.
4466         * coverage.c: Likewise.
4467         * data-streamer-in.c: Likewise.
4468         * data-streamer-out.c: Likewise.
4469         * data-streamer.c: Likewise.
4470         * dbxout.c: Likewise.
4471         * dwarf2out.c: Likewise.
4472         * except.c: Likewise.
4473         * expr.c: Likewise.
4474         * final.c: Likewise.
4475         * fold-const.c: Likewise.
4476         * ggc-page.c: Likewise.
4477         * gimple-fold.c: Likewise.
4478         * gimple-iterator.c: Likewise.
4479         * gimple-pretty-print.c: Likewise.
4480         * gimple-streamer-in.c: Likewise.
4481         * gimple-streamer-out.c: Likewise.
4482         * gimple.c: Likewise.
4483         * gimplify.c: Likewise.
4484         * ipa-chkp.c: Likewise.
4485         * ipa-comdats.c: Likewise.
4486         * ipa-cp.c: Likewise.
4487         * ipa-devirt.c: Likewise.
4488         * ipa-icf-gimple.c: Likewise.
4489         * ipa-icf.c: Likewise.
4490         * ipa-inline-analysis.c: Likewise.
4491         * ipa-inline-transform.c: Likewise.
4492         * ipa-inline.c: Likewise.
4493         * ipa-polymorphic-call.c: Likewise.
4494         * ipa-profile.c: Likewise.
4495         * ipa-prop.c: Likewise.
4496         * ipa-pure-const.c: Likewise.
4497         * ipa-ref.c: Likewise.
4498         * ipa-reference.c: Likewise.
4499         * ipa-split.c: Likewise.
4500         * ipa-utils.c: Likewise.
4501         * ipa-visibility.c: Likewise.
4502         * ipa.c: Likewise.
4503         * langhooks.c: Likewise.
4504         * lto-cgraph.c: Likewise.
4505         * lto-compress.c: Likewise.
4506         * lto-opts.c: Likewise.
4507         * lto-section-in.c: Likewise.
4508         * lto-section-out.c: Likewise.
4509         * lto-streamer-in.c: Likewise.
4510         * lto-streamer-out.c: Likewise.
4511         * lto-streamer.c: Likewise.
4512         * omp-low.c: Likewise.
4513         * opts-global.c: Likewise.
4514         * passes.c: Likewise.
4515         * predict.c: Likewise.
4516         * print-tree.c: Likewise.
4517         * profile.c: Likewise.
4518         * ree.c: Likewise.
4519         * sanopt.c: Likewise.
4520         * stor-layout.c: Likewise.
4521         * symtab.c: Likewise.
4522         * toplev.c: Likewise.
4523         * trans-mem.c: Likewise.
4524         * tree-cfg.c: Likewise.
4525         * tree-chkp.c: Likewise.
4526         * tree-eh.c: Likewise.
4527         * tree-emutls.c: Likewise.
4528         * tree-inline.c: Likewise.
4529         * tree-nested.c: Likewise.
4530         * tree-parloops.c: Likewise.
4531         * tree-pretty-print.c: Likewise.
4532         * tree-profile.c: Likewise.
4533         * tree-sra.c: Likewise.
4534         * tree-ssa-alias.c: Likewise.
4535         * tree-ssa-live.c: Likewise.
4536         * tree-ssa-loop-ivcanon.c: Likewise.
4537         * tree-ssa-loop-ivopts.c: Likewise.
4538         * tree-ssa-pre.c: Likewise.
4539         * tree-ssa-sccvn.c: Likewise.
4540         * tree-ssa-strlen.c: Likewise.
4541         * tree-ssa-structalias.c: Likewise.
4542         * tree-streamer-in.c: Likewise.
4543         * tree-streamer-out.c: Likewise.
4544         * tree-streamer.c: Likewise.
4545         * tree-switch-conversion.c: Likewise.
4546         * tree-tailcall.c: Likewise.
4547         * tree-vect-data-refs.c: Likewise.
4548         * tree-vect-stmts.c: Likewise.
4549         * tree-vectorizer.c: Likewise.
4550         * tree.c: Likewise.
4551         * tsan.c: Likewise.
4552         * ubsan.c: Likewise.
4553         * value-prof.c: Likewise.
4554         * varasm.c: Likewise.
4555         * varpool.c: Likewise.
4556         * config/arm/arm.c: Likewise.
4557         * config/bfin/bfin.c: Likewise.
4558         * config/c6x/c6x.c: Likewise.
4559         * config/cris/cris.c: Likewise.
4560         * config/darwin-c.c: Likewise.
4561         * config/darwin.c: Likewise.
4562         * config/i386/i386.c: Likewise.
4563         * config/i386/winnt.c: Likewise.
4564         * config/microblaze/microblaze.c: Likewise.
4565         * config/mips/mips.c: Likewise.
4566         * config/rs6000/rs6000.c: Likewise.
4567         * config/rx/rx.c: Likewise.
4568         * config/s390/s390.c: Likewise.
4569         * config/tilegx/mul-tables.c: Likewise.
4570
4571 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4572
4573         * config/aarch64/aarch64.c, config/alpha/alpha.c,
4574         config/arm/arm.c, config/avr/avr.c, config/bfin/bfin.c,
4575         config/c6x/c6x.c, config/cr16/cr16.c, config/cris/cris.c,
4576         config/fr30/fr30.c, config/frv/frv.c, config/h8300/h8300.c,
4577         config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
4578         config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
4579         config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
4580         config/microblaze/microblaze.c, config/mips/mips.c,
4581         config/mmix/mmix.c, config/mn10300/mn10300.c,
4582         config/moxie/moxie.c, config/msp430/msp430.c,
4583         config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
4584         config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
4585         config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
4586         config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
4587         config/stormy16/stormy16.c, config/tilegx/tilegx.c,
4588         config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
4589         config/visium/visium.c, config/xtensa/xtensa.c: Add comment above
4590         target-def.h include.
4591         * config/ft32/ft32.c: Likewise.  Fix misapplied hunk.
4592
4593 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4594
4595         * Makefile.in (TARGET_DEF): Add target-insns.def.
4596         (.PRECIOUS, simple_rtl_generated_h): Add insn-target-def.h.
4597         (build/gentarget-def.o): New rule.
4598         (genprogrtl): Add target-def.
4599         * target-insns.def, gentarget-def.c: New files.
4600         * target.def: Add targetm.have_* and targetm.gen_* hooks,
4601         based on the contents of target-insns.def.
4602         * defaults.h (HAVE_simple_return, gen_simple_return): Delete.
4603         (HAVE_return, gen_return): Delete.
4604         * target-def.h: Include insn-target-def.h.
4605         * cfgrtl.c (force_nonfallthru_and_redirect): Use targetm interface
4606         instead of direct calls.  Rely on them to do the appropriate assertions.
4607         * function.c (gen_return_pattern): Likewise.  Return an rtx_insn *.
4608         (convert_jumps_to_returns): Use targetm interface instead of
4609         direct calls.
4610         (thread_prologue_and_epilogue_insns): Likewise.
4611         * reorg.c (find_end_label, dbr_schedule): Likewise.
4612         * shrink-wrap.h (SHRINK_WRAPPING_ENABLED): Likewise.
4613         * shrink-wrap.c (convert_to_simple_return): Likewise.
4614         (try_shrink_wrapping): Use SHRINK_WRAPPING_ENABLED.
4615
4616 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4617
4618         * config/aarch64/aarch64.c, config/alpha/alpha.c, config/arm/arm.c,
4619         config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
4620         config/cr16/cr16.c, config/cris/cris.c, config/fr30/fr30.c,
4621         config/frv/frv.c, config/ft32/ft32.c, config/h8300/h8300.c,
4622         config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
4623         config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
4624         config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
4625         config/microblaze/microblaze.c, config/mips/mips.c, config/mmix/mmix.c,
4626         config/mn10300/mn10300.c, config/moxie/moxie.c, config/msp430/msp430.c,
4627         config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
4628         config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
4629         config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
4630         config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
4631         config/stormy16/stormy16.c, config/tilegx/tilegx.c,
4632         config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
4633         config/visium/visium.c, config/xtensa/xtensa.c: Move target-def.h
4634         includes to end.
4635
4636 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4637
4638         * hash-map-traits.h (simple_hashmap_traits::key_type): New typedef.
4639         (unbounded_int_hashmap_traits::key_type): Likewise.
4640         * hash-map.h (hash_map): Get the key type from the traits.
4641         * hash-traits.h (default_hash_traits): By default, inherit from the
4642         template parameter.
4643         * alias.c (alias_set_traits): Delete.
4644         (alias_set_entry_d::children): Use alias_set_hash as the first
4645         template parameter.
4646         (record_alias_subset): Update accordingly.
4647         * except.c (tree_hash_traits): Delete.
4648         (type_to_runtime_map): Use tree_hash as the first template parameter.
4649         (init_eh): Update accordingly.
4650         * genmatch.c (capture_id_map_hasher): Delete.
4651         (cid_map_t): Use nofree_string_hash as first template parameter.
4652         * ipa-icf.h (symbol_compare_hashmap_traits): Delete.
4653         * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
4654         Use symbol_compare_hash as the first template parameter in
4655         subdivide_hash_map.
4656         * mem-stats.h (mem_usage_pair::mem_alloc_hashmap_traits): Delete.
4657         (mem_usage_pair::mem_map_t): Use mem_location_hash as the first
4658         template parameter.
4659         * passes.c (pass_registry_hasher): Delete.
4660         (name_to_pass_map): Use nofree_string_hash as the first template
4661         parameter.
4662         (register_pass_name): Update accordingly.
4663         * sanopt.c (sanopt_tree_map_traits): Delete.
4664         (sanopt_tree_triplet_map_traits): Delete.
4665         (sanopt_ctx::asan_check_map): Use tree_operand_hash as the first
4666         template parameter.
4667         (sanopt_ctx::vptr_check_map): Use sanopt_tree_triplet_hash as
4668         the first template parameter.
4669         * sese.c (rename_map_hasher): Delete.
4670         (rename_map_type): Use tree_ssa_name_hash as the first template
4671         parameter.
4672         * symbol-summary.h (function_summary::summary_hashmap_traits): Delete.
4673         (function_summary::m_map): Use map_hash as the first template
4674         parameter.
4675         (function_summary::release): Update accordingly.
4676         * tree-if-conv.c (phi_args_hash_traits): Delete.
4677         (predicate_scalar_phi): Use tree_operand_hash as the first template
4678         parameter to phi_arg_map.
4679         * tree-inline.h (dependence_hasher): Delete.
4680         (copy_body_data::dependence_map): Use dependence_hash as the first
4681         template parameter.
4682         * tree-inline.c (remap_dependence_clique): Update accordingly.
4683         * tree-ssa-strlen.c (stridxlist_hash_traits): Delete.
4684         (decl_to_stridxlist_htab): Use tree_decl_hash as the first template
4685         parameter.
4686         (addr_stridxptr): Update accordingly.
4687         * value-prof.c (profile_id_traits): Delete.
4688         (cgraph_node_map): Use profile_id_hash as the first template
4689         parameter.
4690         (init_node_map): Update accordingly.
4691         * config/alpha/alpha.c (string_traits): Delete.
4692         (machine_function::links): Use nofree_string_hash as the first
4693         template parameter.
4694         (alpha_use_linkage, alpha_write_linkage): Update accordingly.
4695         * config/m32c/m32c.c (pragma_traits): Delete.
4696         (pragma_htab): Use nofree_string_hash as the first template parameter.
4697         (m32c_note_pragma_address): Update accordingly.
4698         * config/mep/mep.c (pragma_traits): Delete.
4699         (pragma_htab): Use nofree_string_hash as the first template parameter.
4700         (mep_note_pragma_flag): Update accordingly.
4701         * config/mips/mips.c (mips16_flip_traits): Delete.
4702         (mflip_mips16_htab): Use nofree_string_hash as the first template
4703         parameter.
4704         (mflip_mips16_use_mips16_p): Update accordingly.
4705         (local_alias_traits): Delete.
4706         (mips16_local_aliases): Use nofree_string_hash as the first template
4707         parameter.
4708         (mips16_local_alias): Update accordingly.
4709
4710 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4711
4712         * hash-map-traits.h (default_hashmap_traits): Delete.
4713
4714 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4715
4716         * hash-map-traits.h (unbounded_hashmap_traits): New class.
4717         (unbounded_int_hashmap_traits): Likewise.
4718         * cfgexpand.c (part_traits): Use unbounded_int_hashmap_traits.
4719
4720 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4721
4722         * ipa-icf.h (symbol_compare_hash): New class.
4723         (symbol_compare_hashmap_traits): Use it.
4724         * mem-stats.h (mem_alloc_description::mem_location_hash): New class.
4725         (mem_alloc_description::mem_alloc_hashmap_traits): Use it.
4726         (mem_alloc_description::reverse_mem_map_t): Remove redundant
4727         default_hashmap_traits.
4728         * sanopt.c (sanopt_tree_triplet_hash): New class.
4729         (sanopt_tree_triplet_map_traits): Use it.
4730
4731 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4732
4733         * gengtype-parse.c (require_template_declaration): Allow '+' in
4734         template parameters.  Consolidate cases.
4735         * hash-traits.h (int_hash): New class.
4736         * alias.c (alias_set_hash): New structure.
4737         (alias_set_traits): Use it.
4738         * symbol-summary.h (function_summary::map_hash): New class.
4739         (function_summary::summary_hashmap_traits): Use it.
4740         * tree-inline.h (dependence_hash): New class.
4741         (dependence_hasher): Use it.
4742         * tree-ssa-reassoc.c (oecount_hasher): Use int_hash.
4743         * value-prof.c (profile_id_hash): New class.
4744         (profile_id_traits): Use it.
4745
4746 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4747
4748         * config/mips/mips.c (mips16_flip_traits): Use it.
4749         (local_alias_traits, mips16_local_aliases): Convert from a map of
4750         rtxes to a map of symbol names.
4751         (mips16_local_alias): Update accordingly.
4752
4753 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4754
4755         * hash-traits.h (string_hash, nofree_string_hash): New classes.
4756         * genmatch.c (capture_id_map_hasher): Use nofree_string_hash.
4757         * passes.c (pass_registry_hasher): Likewise.
4758         * config/alpha/alpha.c (string_traits): Likewise.
4759         * config/i386/winnt.c (i386_find_on_wrapper_list): Likewise.
4760         * config/m32c/m32c.c (pragma_traits): Likewise.
4761         * config/mep/mep.c (pragma_traits): Likewise.
4762
4763 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4764
4765         * tree-hash-traits.h (tree_hash): New class.
4766         * except.c: Include tree-hash-traits.h.
4767         (tree_hash_traits): Use tree_hash.
4768
4769 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4770
4771         * tree-hash-traits.h (tree_ssa_name_hasher): New class.
4772         * sese.c: Include tree-hash-traits.h.
4773         (rename_map_hasher): Use tree_ssa_name_hasher.
4774
4775 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4776
4777         * tree-hash-traits.h (tree_decl_hash): New class.
4778         * tree-ssa-strlen.c: Include tree-hash-traits.h.
4779         (stridxlist_hash_traits): Use tree_decl_hash.
4780
4781 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4782
4783         * tree-hash-traits.h: New file.
4784         (tree_operand_hash): New class.
4785         * sanopt.c: Include tree-hash-traits.h.
4786         (sanopt_tree_map_traits): Use tree_operand_hash.
4787         * tree-if-conv.c: Include tree-hash-traits.h.
4788         (phi_args_hash_traits): Use tree_operand_hash.
4789         * tree-ssa-uncprop.c: Include tree-hash-traits.h.
4790         (val_ssa_equiv_hash_traits): Use tree_operand_hash.
4791
4792 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4793
4794         * hash-map-traits.h: Include hash-traits.h.
4795         (simple_hashmap_traits): New class.
4796         * mem-stats.h (hash_map): Change the default traits to
4797         simple_hashmap_traits<default_hash_traits<Key> >.
4798
4799 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4800
4801         * hash-table.h: Update comments.
4802
4803 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4804
4805         * hash-traits.h (default_hash_traits): New structure.
4806         * hash-set.h (default_hashset_traits): Delete.
4807         (hash_set): Use default_hash_traits<Key> instead of
4808         default_hashset_traits.  Delete hash_entry type and use Key directly.
4809         * ipa-devirt.c (pair_traits): Delete.
4810         (default_hash_traits <type_pair>): Override.
4811         (odr_subtypes_equivalent_p): Remove pair_types template parameter.
4812         (odr_types_equivalent_p, add_type_duplicate): Likewise.
4813
4814 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4815
4816         * hash-traits.h (typed_noop_remove): Don't require a pointer type.
4817
4818 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4819
4820         * hash-table.h (has_is_deleted, is_deleted_helper): Delete.
4821         (has_is_empty, is_empty_helper): Delete.
4822         (has_mark_deleted, mark_deleted_helper): Delete.
4823         (has_mark_empty, mark_empty_helper): Delete.
4824         (hash_table::is_deleted): Call the Descriptor unconditionally.
4825         (hash_table::is_empty): Likewise.
4826         (hash_table::mark_deleted): Likewise.
4827         (hash_table::mark_empty): Likewise.
4828
4829 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4830
4831         * cgraph.h (asmname_hasher): Inherit from ggc_ptr_hash.  Remove
4832         redundant typedefs and members.
4833         * coverage.c (counts_entry): Inherit from pointer_hash.  Remove
4834         redundant typedefs.
4835         * dwarf2out.c (cu_hash_table_entry_hasher): Likewise.
4836         * ipa-devirt.c (odr_name_hasher): Likewise.
4837         (polymorphic_call_target_hasher): Likewise.
4838         * ira-costs.c (cost_classes_hasher): Likewise.
4839         * statistics.c (stats_counter_hasher): Likewise.
4840         * trans-mem.c (log_entry_hasher): Likewise.
4841         * tree-ssa-dom.c (expr_elt_hasher): Likewise.
4842         * tree-ssa-sccvn.c (vn_phi_hasher, vn_reference_hasher): Likewise.
4843         * tree-ssa-tail-merge.c (same_succ_def): Likewise.
4844         * var-tracking.c (variable_hasher): Likewise.
4845         * valtrack.h (dead_debug_hash_descr): Inherit from free_ptr_hash.
4846         Remove redundant typedefs and members.
4847
4848 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4849
4850         * hash-traits.h (ggc_cache_hasher): Rename to...
4851         (ggc_cache_remove): ...this and remove typedefs.
4852         (ggc_cache_ptr_hash): New class.
4853         * hash-table.h: Update commentary.
4854         * emit-rtl.c (const_int_hasher): Inherit from ggc_cache_ptr_hash
4855         rather than ggc_cache_hasher.
4856         (const_wide_int_hasher, reg_attr_hasher): Likewise.
4857         (const_double_hasher, const_fixed_hasher): Likewise.
4858         * function.c (insn_cache_hasher): Likewise.
4859         * trans-mem.c (tm_wrapper_hasher): Likewise.
4860         * tree.h (tree_decl_map_cache_hasher): Likewise.
4861         * tree.c (type_cache_hasher, int_cst_hasher): Likewise.
4862         (cl_option_hasher, tree_vec_map_cache_hasher): Likewise.
4863         * ubsan.c (tree_type_map_cache_hasher): Likewise.
4864         * varasm.c (tm_clone_hasher): Likewise.
4865         * config/i386/i386.c (dllimport_hasher): Likewise.
4866         * config/nvptx/nvptx.c (declared_libfunc_hasher): Likewise.
4867         (tree_hasher): Likewise.
4868
4869 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4870
4871         * hash-traits.h (ggc_hasher): Rename to...
4872         (ggc_remover): ...this and remove typedefs.
4873         (ggc_cache_hasher): Update accordingly.  Add typedefs.
4874         (ggc_ptr_hash): New class.
4875         * hash-table.h: Update comment.
4876         * cfgloop.h (loop_exit_hasher): Inherit from ggc_ptr_hash rather than
4877         ggc_hasher.
4878         * cgraph.h (section_name_hasher, cgraph_edge_hasher): Likewise.
4879         (tree_descriptor_hasher): Likewise.
4880         * cgraph.c (function_version_hasher): Likewise.
4881         * dwarf2out.c (indirect_string_hasher, dwarf_file_hasher): Likewise.
4882         (decl_die_hasher, block_die_hasher, decl_loc_hasher): Likewise.
4883         (dw_loc_list_hasher, addr_hasher): Likewise.
4884         * function.h (used_type_hasher): Likewise.
4885         * function.c (temp_address_hasher): Likewise.
4886         * gimple-ssa.h (tm_restart_hasher, ssa_name_hasher): Likewise.
4887         * libfuncs.h (libfunc_hasher): Likewise.
4888         * lto-streamer.h (decl_state_hasher): Likewise.
4889         * optabs.c (libfunc_decl_hasher): Likewise.
4890         * tree-scalar-evolution.c (scev_info_hasher): Likewise.
4891         * varasm.c (section_hasher, object_block_hasher): Likewise.
4892         (const_rtx_desc_hasher): Likewise.
4893         * config/darwin.c (indirection_hasher, cfstring_hasher): Likewise.
4894         * config/rs6000/rs6000.c (toc_hasher, builtin_hasher): Likewise.
4895
4896 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4897
4898         * hash-traits.h (free_ptr_hash): New class.
4899         * dwarf2out.c (decl_table_entry_hasher): Inherit from free_ptr_hash
4900         rather than typed_free_remove.  Remove redudant typedefs.
4901         (external_ref_hasher): Likewise.
4902         * except.c (action_record_hasher, ttypes_filter_hasher): Likewise.
4903         (ehspec_hasher): Likewise.
4904         * ggc-common.c (saving_hasher): Likewise.
4905         * gimplify.c (gimplify_hasher): Likewise.
4906         * haifa-sched.c (delay_i2_hasher): Likewise.
4907         * loop-invariant.c (invariant_expr_hasher): Likewise.
4908         * loop-iv.c (biv_entry_hasher): Likewise.
4909         * loop-unroll.c (iv_split_hasher, var_expand_hasher): Likewise.
4910         * trans-mem.c (tm_mem_map_hasher, tm_memop_hasher): Likewise.
4911         * tree-cfg.c (locus_discrim_hasher): Likewise.
4912         * tree-eh.c (finally_tree_hasher): Likewise.
4913         * tree-into-ssa.c (var_info_hasher): Likewise.
4914         * tree-parloops.c (reduction_hasher, name_to_copy_hasher): Likewise.
4915         * tree-ssa-loop-ivopts.c (iv_inv_expr_hasher): Likewise.
4916         * tree-ssa-phiopt.c (ssa_names_hasher): Likewise.
4917         * tree-ssa-pre.c (expr_pred_trans_d): Likewise.
4918         * tree-ssa-sccvn.c (vn_constant_hasher): Likewise.
4919         * tree-ssa-structalias.c (equiv_class_hasher): Likewise.
4920         (shared_bitmap_hasher): Likewise.
4921         * tree-ssa-threadupdate.c (redirection_data): Likewise.
4922         * tree-vectorizer.h (peel_info_hasher): Likewise.
4923         * tree-vectorizer.c (simduid_to_vf, simd_array_to_simduid): Likewise.
4924         * config/mips/mips.c (mips_lo_sum_offset_hasher): Likewise.
4925
4926 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4927
4928         * hash-table.h: Update comments.
4929         * hash-traits.h (pointer_hash): Don't inherit from typed_noop_remove.
4930         (nofree_ptr_hash): New class.
4931         * asan.c (asan_mem_ref_hasher): Inherit from nofree_ptr_hash rather
4932         than typed_noop_remove.  Remove redudant typedefs.
4933         * attribs.c (attribute_hasher): Likewise.
4934         * cfg.c (bb_copy_hasher): Likewise.
4935         * cselib.c (cselib_hasher): Likewise.
4936         * dse.c (invariant_group_base_hasher): Likewise.
4937         * dwarf2cfi.c (trace_info_hasher): Likewise.
4938         * dwarf2out.c (macinfo_entry_hasher): Likewise.
4939         (comdat_type_hasher, loc_list_hasher): Likewise.
4940         * gcse.c (pre_ldst_expr_hasher): Likewise.
4941         * genmatch.c (id_base): Likewise.
4942         * genrecog.c (test_pattern_hasher): Likewise.
4943         * gimple-ssa-strength-reduction.c (cand_chain_hasher): Likewise.
4944         * haifa-sched.c (delay_i1_hasher): Likewise.
4945         * hard-reg-set.h (simplifiable_subregs_hasher): Likewise.
4946         * ipa-icf.h (congruence_class_group_hash): Likewise.
4947         * ipa-profile.c (histogram_hash): Likewise.
4948         * ira-color.c (allocno_hard_regs_hasher): Likewise.
4949         * lto-streamer.h (string_slot_hasher): Likewise.
4950         * lto-streamer.c (tree_entry_hasher): Likewise.
4951         * plugin.c (event_hasher): Likewise.
4952         * postreload-gcse.c (expr_hasher): Likewise.
4953         * store-motion.c (st_expr_hasher): Likewise.
4954         * tree-sra.c (uid_decl_hasher): Likewise.
4955         * tree-ssa-coalesce.c (coalesce_pair_hasher): Likewise.
4956         (ssa_name_var_hash): Likewise.
4957         * tree-ssa-live.c (tree_int_map_hasher): Likewise.
4958         * tree-ssa-loop-im.c (mem_ref_hasher): Likewise.
4959         * tree-ssa-pre.c (pre_expr_d): Likewise.
4960         * tree-ssa-sccvn.c (vn_nary_op_hasher): Likewise.
4961         * vtable-verify.h (registration_hasher): Likewise.
4962         * vtable-verify.c (vtbl_map_hasher): Likewise.
4963         * config/arm/arm.c (libcall_hasher): Likewise.
4964         * config/i386/winnt.c (wrapped_symbol_hasher): Likewise.
4965         * config/ia64/ia64.c (bundle_state_hasher): Likewise.
4966         * config/sol2.c (comdat_entry_hasher): Likewise.
4967         * fold-const.c (fold): Use nofree_ptr_hash instead of pointer_hash.
4968         (print_fold_checksum, fold_checksum_tree): Likewise.
4969         (debug_fold_checksum, fold_build1_stat_loc): Likewise.
4970         (fold_build2_stat_loc, fold_build3_stat_loc): Likewise.
4971         (fold_build_call_array_loc): Likewise.
4972         * tree-ssa-ccp.c (gimple_htab): Likewise.
4973         * tree-browser.c (tree_upper_hasher): Inherit from nofree_ptr_hash
4974         rather than pointer_type.
4975
4976 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4977
4978         * hash-traits.h (pointer_hash::mark_deleted, pointer_hash::mark_empty)
4979         (pointer_hash::is_deleted, pointer_hash::is_empty): New functions.
4980
4981 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4982
4983         * hash-traits.h (ggc_hasher::remove): Take a reference parameter.
4984         (ggc_hasher::ggc_mx): Likewise.
4985         (ggc_cache_hasher): Inherit from ggc_hasher.  Remove definitions
4986         that duplicate ggc_hasher ones.
4987
4988 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4989
4990         * hash-table.h (hash_table): Add gt_cleare_cache as a friend.
4991         (gt_cleare_cache): Check here for deleted and empty entries.
4992         Replace handle_cache_entry with a call to keep_cache_entry.
4993         * hash-traits.h (ggc_cache_hasher::handle_cache_entry): Delete.
4994         (ggc_cache_hasher::keep_cache_entry): New function.
4995         * trans-mem.c (tm_wrapper_hasher::handle_cache_entry): Delete.
4996         (tm_wrapper_hasher::keep_cache_entry): New function.
4997         * tree.h (tree_decl_map_cache_hasher::handle_cache_entry): Delete.
4998         (tree_vec_map_cache_hasher::keep_cache_entry): New function.
4999         * tree.c (type_cache_hasher::handle_cache_entry): Delete.
5000         (type_cache_hasher::keep_cache_entry): New function.
5001         (tree_vec_map_cache_hasher::handle_cache_entry): Delete.
5002         (tree_vec_map_cache_hasher::keep_cache_entry): New function.
5003         * ubsan.c (tree_type_map_cache_hasher::handle_cache_entry): Delete.
5004         (tree_type_map_cache_hasher::keep_cache_entry): New function.
5005         * varasm.c (tm_clone_hasher::handle_cache_entry): Delete.
5006         (tm_clone_hasher::keep_cache_entry): New function.
5007         * config/i386/i386.c (dllimport_hasher::handle_cache_entry): Delete.
5008         (dllimport_hasher::keep_cache_entry): New function.
5009
5010 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
5011
5012         * hash-table.h: Include hash-traits.h.
5013         (typed_free_remove, typed_noop_remove, pointer_hash, ggc_hasher)
5014         (ggc_cache_hasher): Move to...
5015         * hash-traits.h: ...this new file.
5016
5017 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
5018
5019         * tree-core.h (struct tree_optimization_option): Make opts a pointer to
5020         struct cl_optimization.
5021         * tree.h (TREE_OPTIMIZATION): Return the pointer, not the address of it.
5022         * tree.c (make_node_stat): Allocate cl_optimization struct.
5023         (copy_node_stat): Allocate and copy cl_optimization struct.
5024
5025 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
5026
5027         * function.h (struct incoming_args): Move struct.
5028         (pass_by_reference, reference_callee_copied): Remove prototypes.
5029         * emit-rtl.h (struct incoming_args): Relocate struct here.
5030         * calls.h (pass_by_reference, reference_callee_copied): Relocate
5031         prototypes here.
5032         * function.c (pass_by_reference, reference_callee_copied): Move.
5033         * calls.c (pass_by_reference, reference_callee_copied): Relocate here.
5034         * cfgloop.h: Don't include tm.h or hard-reg-set.h.
5035         * ipa-chkp.c: Include calls.h.
5036
5037 2015-06-25  Andrew Macleod  <amacleod@redhat.com>
5038
5039         * alias.h (alias_set_type): Move typedef.
5040         * coretypes.h (alias_set_type): Relocate typedef here.
5041         * rtl.h: Don't include alias.h.
5042
5043 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
5044
5045         * cgraph.h (cgraph_rtl_info): Move to rtl.h
5046         (cgraph_node): Maintain pointer to struct cgraph_rtl_info instead of
5047         and instance.
5048         * rtl.h (struct cgraph_rtl_info): Define when HARD_REG_SET available.
5049         * cgraph.c (cgraph_node::rtl_info): Allocate cgraph_rtl_info if one
5050         doesn't exist.
5051         * calls.c: Include hard-reg-set.h before rtl.h.
5052         * ira.c: Likewise.
5053
5054 2015-06-25  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
5055             Vladimir Makarov  <vmakarov@redhat.com>
5056
5057         * ira-color.c (assign_hard_reg): Remove unecessary bitmap check.
5058         Add assert.
5059
5060 2015-06-25  Richard Biener  <rguenther@suse.de>
5061
5062         * fold-const.c (fold_binary_loc): Move simplification of
5063         (X <<>> C1) & C2 ...
5064         * match.pd: ... here.
5065
5066 2015-06-25  Eric Botcazou  <ebotcazou@adacore.com>
5067
5068         * lto-streamer-out.c (DFS::hash_scc): Fix typos & formatting glitches.
5069
5070 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
5071
5072         * match.pd: Add patterns for vec_conds between 1 and 0.
5073
5074 2015-06-25  Richard Biener  <rguenther@suse.de>
5075
5076         * tree-vect-stmts.c (vectorizable_conversion): Do not set
5077         STMT_VINFO_VEC_STMT for SLP.
5078         (vectorizable_store): Likewise.
5079         (vectorizable_load): Likewise.
5080         (vect_transform_stmt): Catch SLP vectorization clobbering
5081         STMT_VINFO_VEC_STMT.
5082
5083 2015-06-25  Richard Biener  <rguenther@suse.de>
5084
5085         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Improve debug
5086         dumping.
5087         (vect_create_mask_and_perm): Do not set STMT_VINFO_VEC_STMT and
5088         cleanup resulting dead code and parameters.
5089         (vect_transform_slp_perm_load): Adjust.
5090
5091 2015-06-25  Nick Clifton  <nickc@redhat.com>
5092
5093         * config/bfin/bfin.c (bfin_expand_prologue): Set
5094         current_function_static_stack_size if flag_stack_usage_info is set.
5095         * config/ft32/ft32.c (ft32_expand_prologue): Likewise.
5096         * config/h8300/h8300.c (h8300_expand_prologue): Likewise.
5097         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
5098         * config/m32c/m32c.c (m32c_emit_prologue): Likewise.
5099
5100 2015-06-25  Tom de Vries  <tom@codesourcery.com>
5101
5102         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Don't claim in header
5103         comment that the generated IV is unsigned.
5104
5105 2015-06-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5106
5107         PR target/29693
5108         * config/arm/arm.c (arm_dbx_register_number): Return
5109         DWARF_FRAME_REGISTERS by default.
5110
5111 2015-06-25  Tom de Vries  <tom@codesourcery.com>
5112
5113         * dominance.c (calculate_dominance_info): Fix verify_dominators call
5114         argument.  Call verify_dominator when reusing dominator info.
5115
5116 2015-06-24  Kaz Kojima  <kkojima@gcc.gnu.org>
5117
5118         PR target/66563
5119         * config/sh/sh.md (GOTaddr2picreg): Add a new operand for
5120         an additional element of the unspec vector.  Modify indices
5121         of operands.
5122         (builtin_setjmp_receiver): Pass const0_rtx to gen_GOTaddr2picreg.
5123         * config/sh/sh.c (prepare_move_operands): Pass incremented
5124         const_int to gen_GOTaddr2picreg.
5125         (sh_expand_prologue): Pass const0_rtx to gen_GOTaddr2picreg.
5126
5127 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
5128
5129         * config/aarch64/aarch64.md (<optab><fcvt_target><GPF:mode>2):
5130         Condition on TARGET_FLOAT.
5131
5132 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
5133
5134         * doc/invoke.texi: Clarify AArch64 feature modifiers (no)fp, (no)simd
5135         and (no)crypto.
5136
5137 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
5138
5139         * config/aarch64/aarch64-protos.h (aarch64_err_no_fpadvsimd): New.
5140
5141         * config/aarch64/aarch64.md (mov<mode>/GPF, movtf): Use
5142         aarch64_err_no_fpadvsimd.
5143
5144         * config/aarch64/aarch64.c (aarch64_err_no_fpadvsimd): New.
5145         (aarch64_layout_arg, aarch64_init_cumulative_args): Use
5146         aarch64_err_no_fpadvsimd if !TARGET_FLOAT and we need FP regs.
5147         (aarch64_expand_builtin_va_start, aarch64_setup_incoming_varargs):
5148         Turn error into assert, test TARGET_FLOAT.
5149         (aarch64_gimplify_va_arg_expr): Use aarch64_err_no_fpadvsimd, test
5150         TARGET_FLOAT.
5151
5152 2015-06-24  Aldy Hernandez  <aldyh@redhat.com>
5153
5154         PR debug/66482
5155         * dwarf2out.c (gen_formal_parameter_die): Remove assert.
5156
5157 2015-06-24  Ilya Enkovich  <enkovich.gnu@gmail.com>
5158
5159         * tree-vect-slp.c (vect_build_slp_tree_1): Init vectype.
5160
5161 2015-06-24 Renlin Li <renlin.li@arm.com>
5162
5163         * config/aarch64/aarch64.h(TARGET_CPU_CPP_BUILTINS): Add
5164         __ARM_ALIGN_MAX_PWR, __ARM_ALIGN_MAX_STACK_PWR.
5165
5166 2015-06-24  Richard Biener  <rguenther@suse.de>
5167
5168         * genmatch.c (enum tree_code): Add VIEW_CONVERT[012].
5169         (main): Likewise.
5170         (lower_opt_convert): Support lowering of conditional view_convert.
5171         (parser::parse_operation): Likewise.
5172         (parser::parse_for): Likewise.
5173
5174 2015-06-24  Renlin Li  <renlin.li@arm.com>
5175
5176         * varasm.c (emit_local): Use unsigned int for align variable.
5177
5178 2015-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5179
5180         PR target/63408
5181         * config/arm/arm.c (vfp3_const_double_for_fract_bits): Disable
5182         for negative numbers.
5183
5184 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5185
5186         PR rtl-optimization/66306
5187         * reload.c (find_reloads): Swap the match_dup info for
5188         commutative operands.
5189
5190 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5191
5192         * config/s390/vx-builtins.md
5193         ("vec_scatter_element<mode>_<non_vec_int>")
5194         ("vec_scatter_element<V_HW_64:mode>_SI"): Replace gf mode
5195         attribute with bhfgq.
5196
5197 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5198
5199         * config/s390/s390-builtins.def: Fix vpopct instruction comments.
5200
5201 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5202
5203         * config/s390/s390-builtin-types.def: Add flag to indicate the
5204         options under which the function type is needed.
5205         * config/s390/s390-builtins.def: Add flag to indicate the options
5206         under which the builtin is enabled.
5207         * config/s390/s390-builtins.h: Add flags parameter to macro
5208         definitions.
5209         (bflags_for_builtin): New function.
5210         (flags_for_builtin): Renamed to ...
5211         (opflags_for_builtin): ... this.
5212         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Rename
5213         flags_for_builtin to bflags_for_builtin and
5214         flags_overloaded_builtin_var to opflags_overloaded_builtin_var.
5215         * config/s390/s390.c: Add initialization of bflags_builtin and
5216         opflags_builtin arrays.
5217         Remove code for flags_builtin.
5218         (s390_init_builtins): Only create builtin function types if one of
5219         their flags is active.
5220         Only create builtins if all of their flags are active.
5221         (s390_expand_builtin): Rename flags_for_builtin to
5222         opflags_for_builtin.
5223
5224 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5225
5226         * config/s390/vecintrin.h: Remove internal builtins.
5227
5228 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5229
5230         * config/s390/s390.c (s390_secondary_reload): Fix check for
5231         GENERAL_REGS register class.
5232
5233 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5234
5235         * config/s390/s390.c (s390_support_vector_misalignment): Call
5236         default implementation for !TARGET_VX.
5237
5238 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5239
5240         * config/s390/s390.c (s390_legitimate_constant_p): Add
5241         TARGET_VX check.
5242
5243 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5244
5245         * config/s390/s390.c (s390_vector_abi): New variable definition.
5246         (s390_check_type_for_vector_abi): New function.
5247         (TARGET_ASM_FILE_END): New macro definition.
5248         (s390_asm_file_end): New function.
5249         (s390_function_arg): Call s390_check_type_for_vector_abi.
5250         (s390_gimplify_va_arg): Likewise.
5251         * configure: Regenerate.
5252         * configure.ac: Check for .gnu_attribute Binutils feature.
5253
5254 2015-06-23  Chen Gang  <gang.chen.5i5j@gmail.com>
5255
5256         PR target/65803
5257         * config/bfin/bfin.c (hwloop_optimize): Initialize
5258         JUMP_LABEL for newly created jump.
5259
5260 2015-06-23  Tristan Gingold  <gingold@adacore.com>
5261
5262         * collect-utils.c (collect_wait): Unlink the response file here
5263         instead of...
5264         (do_wait): ...here.
5265         (utils_cleanup): ...and here.
5266
5267 2015-06-23  Richard Sandiford  <richard.sandiford@arm.com>
5268
5269         * df-scan.c: Don't include target-def.h.
5270         * targhooks.c: Likewise.
5271         * config/arm/arm-c.c: Likewise.
5272         * config/i386/i386-c.c: Likewise.
5273         * config/nds32/nds32-cost.c: Likewise.
5274         * config/nds32/nds32-fp-as-gp.c: Likewise.
5275         * config/nds32/nds32-intrinsic.c: Likewise.
5276         * config/nds32/nds32-isr.c: Likewise.
5277         * config/nds32/nds32-md-auxiliary.c: Likewise.
5278         * config/nds32/nds32-memory-manipulation.c: Likewise.
5279         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
5280         * config/nds32/nds32-predicates.c: Likewise.
5281
5282 2015-06-23  Richard Biener  <rguenther@suse.de>
5283
5284         PR tree-optimization/66636
5285         * tree-vect-stmts.c (vectorizable_store): Properly compute the
5286         def type for further defs for strided stores.
5287
5288 2015-06-23  Nathan Sidwell  <nathan@codesourcery.com>
5289
5290         * config/nvptx/nvptx.md (sel_true<mode>, sel_false<mode>): New
5291         conditional selects.
5292         (setcc_int<mode>, setcc_float<mode>): Reformat.
5293
5294 2015-06-23  Marek Polacek  <polacek@redhat.com>
5295
5296         * match.pd ((x + y) - (x | y) -> x & y,
5297         (x + y) - (x & y) -> x | y): New patterns.
5298
5299 2015-06-23  Ludovic Courtès  <ludo@gnu.org>
5300
5301         PR 65711
5302         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Move
5303         '-dynamic-linker' within %{!shared: ...}.
5304
5305 2015-06-23  Uros Bizjak  <ubizjak@gmail.com>
5306
5307         PR target/66560
5308         * config/i386/predicates.md (addsub_vm_operator): New predicate.
5309         (addsub_vs_operator): Ditto.
5310         (addsub_vs_parallel): Ditto.
5311         * config/i386/sse.md (ssedoublemode): Add V4SF and V2DF modes.
5312         (avx_addsubv4df3, avx_addsubv8sf3, sse3_addsubv2df3, sse3_addsubv4sf3):
5313         Put minus RTX before plus and adjust vec_merge selector.
5314         (*avx_addsubv4df3_1, *avx_addsubv4df3_1s, *sse3_addsubv2df3_1)
5315         (*sse_addsubv2df3_1s, *avx_addsubv8sf3_1, *avx_addsubv8sf3_1s)
5316         (*sse3_addsubv4sf3_1, *sse_addsubv4sf3_1s): Remove insn patterns.
5317         (addsub vec_merge splitters): New combiner splitters.
5318         (addsub vec_select/vec_concat splitters): Ditto.
5319
5320 2015-06-23  Bin Cheng  <bin.cheng@arm.com>
5321
5322         PR tree-optimization/66449
5323         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Use
5324         POINTER_PLUS_EXPR for pointers.
5325
5326 2015-06-23  Alan Modra  <amodra@gmail.com>
5327
5328         * rtlanal.c (commutative_operand_precedence): Correct comments.
5329         * simplify-rtx.c (simplify_plus_minus_op_data_cmp): Delete forward
5330         declaration.  Return an int.  Distinguish REG,REG return from
5331         others.
5332         (struct simplify_plus_minus_op_data): Make local to function.
5333         (simplify_plus_minus): Don't set canonicalized if merely sorting
5334         registers.  Avoid packing ops if nothing changes.  White space fixes.
5335
5336 2015-06-22  Pierre-Marie de Rodat  <derodat@adacore.com>
5337
5338         * gcc.c (default_compilers): Pass "-o %g.s" to cc1 for headers even if
5339         -fdump-ada-spec is passed but not if -fsyntax-only is.
5340
5341 2015-06-22  Vladimir Makarov  <vmakarov@redhat.com>
5342
5343         PR bootstrap/63740
5344         * lra-lives.c (process_bb_lives): Check insn copying the same
5345         reload pseudo and don't create a copy for it.
5346
5347 2015-06-22  Tom de Vries  <tom@codesourcery.com>
5348
5349         * tree-parloops.c (transform_to_exit_first_loop_alt): Add update_stmt
5350         for cond_stmt.
5351
5352 2015-06-22  Tom de Vries  <tom@codesourcery.com>
5353
5354         * builtins.def (DEF_GOMP_BUILTIN): Test
5355         'flag_tree_parallelize_loops > 1' instead of
5356         'flag_tree_parallelize_loops'.  Test flag_cilkplus.
5357
5358 2015-06-22  Tom de Vries  <tom@codesourcery.com>
5359
5360         * dominance.c (calculate_dominance_info): Verify dominators if
5361         early-out.
5362
5363 2015-06-22  Marek Polacek  <polacek@redhat.com>
5364
5365         * match.pd ((x ^ y) ^ (x | y) -> x & y,
5366         (x & y) + (x ^ y) -> x | y, (x & y) | (x ^ y) -> x | y,
5367         (x & y) ^ (x ^ y) -> x | y, (x & y) + (x | y) -> x + y,
5368         (x | y) - (x ^ y) -> x & y, (x | y) - (x & y) -> x ^ y): New patterns.
5369
5370 2015-06-22  Uros Bizjak  <ubizjak@gmail.com>
5371
5372         PR target/65871
5373         * config/i386/i386.c (ix86_rtx_costs) <case COMPARE>: Ignore the
5374         cost of embedded comparison.
5375
5376 2015-06-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5377
5378         PR target/65914
5379         * config/rs6000/predicates.md (altivec_register_operand): Permit
5380         virtual stack registers.
5381         (vsx_register_operand): Likewise.
5382         (vfloat_operand): Likewise.
5383         (vint_operand): Likewise.
5384         (vlogical_operand): Likewise.
5385
5386 2015-06-22  Richard Biener  <rguenther@suse.de>
5387
5388         * tree-vectorizer.h (_loop_vec_info): Add scalar_cost_vec
5389         and single_scalar_iteration_cost members.
5390         (LOOP_VINFO_SCALAR_ITERATION_COST): New.
5391         (LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST): Likewise.
5392         (vect_get_single_scalar_iteration_cost): Remove.
5393         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
5394         Use LOOP_VINFO_SCALAR_ITERATION_COST.
5395         * tree-vect-loop.c (destroy_loop_vec_info): Free
5396         scalar_cost_vec.
5397         (vect_get_single_scalar_iteration_cost): Compute result into
5398         LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST and
5399         LOOP_VINFO_SCALAR_ITERATION_COST.  Make static.
5400         (vect_analyze_loop_2): Call vect_get_single_scalar_iteration_cost.
5401         (vect_estimate_min_profitable_iters): Use them.
5402
5403 2015-06-22  Christian Bruel  <christian.bruel@st.com>
5404
5405         PR target/52144
5406         * config/arm/arm.c (add_attribute, arm_insert_attributes): New functions
5407         (TARGET_INSERT_ATTRIBUTES): Define.
5408         (thumb_flipper): New var.
5409         * config/arm/arm.opt (-mflip-thumb): New switch.
5410
5411 2015-06-22  Jan Hubicka  <hubicka@ucw.cz>
5412             Martin Liska  <mliska@suse.cz>
5413
5414         PR ipa/65908
5415         * ipa-icf.c (sem_item::target_supports_symbol_aliases): Remove
5416         construction of arg_types.
5417         (sem_function::sem_function): Likewise.
5418         (sem_function::~sem_function): Remove destruction of arg_types.
5419         (sem_function::compatible_parm_types_p): New function.
5420         (sem_function::equals_wpa): Reorg matching of return values
5421         and parameter types.
5422         (sem_function::equals_private): Reorg mathcing of argument types.
5423         (sem_function::parse_tree_args): Remove.
5424         * ipa-icf.h (init_wpa): Do not call it.
5425         (parse_tree_args): Remove.
5426         (compatible_parm_types_p): Declare.
5427         (result_type): Remove.
5428         (arg_types): Remove.
5429
5430 2015-06-22  Jan Hubicka  <hubicka@ucw.cz>
5431
5432         PR ipa/66351
5433         * ipa-polymorphic-call.c
5434         (ipa_polymorphic_call_context::get_dynamic_type): Fix thinko when
5435         initializing alias oracle; fix formating; set base_alias_set if it
5436         is known.
5437
5438 2015-06-22  Mikhail Maltsev  <maltsevm@gmail.com>
5439
5440         * auto-inc-dec.c (reverse_mem, reverse_inc): Remove.
5441         (parse_add_or_inc): Use std::swap instead of reverse_{mem,inc}.
5442         (find_inc): Likewise.
5443         * combine.c (combine_simplify_rtx): Use std::swap instead of manually
5444         swapping.
5445         * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
5446         * df-scan.c (df_swap_refs): Remove.
5447         (df_sort_and_compress_refs): Use std::swap instead of df_swap_refs.
5448         * dominance.c (link_roots): Use std::swap instead of manually swapping.
5449         * expr.c (expand_expr_real_2, do_store_flag): Likewise.
5450         * fold-const.c (fold_relational_const): Likewise.
5451         * genattrtab.c (simplify_test_exp): Likewise.
5452         * gimple-match-head.c (gimple_resimplify2, gimple_resimplify3,
5453         gimple_simplify): Likewise.
5454         * ifcvt.c (noce_try_abs, find_if_header): Likewise.
5455         * internal-fn.c (expand_addsub_overflow, expand_mul_overflow): Likewise.
5456         * ipa-devirt.c (add_type_duplicate): Likewise.
5457         * loop-iv.c (get_biv_step_1, iv_number_of_iterations): Likewise.
5458         * lra-lives.c (lra_setup_reload_pseudo_preferenced_hard_reg): Likewise.
5459         * lra.c (lra_create_copy): Likewise.
5460         * lto-streamer-out.c (DFS::DFS): Likewise.
5461         * modulo-sched.c (get_sched_window): Likewise.
5462         * omega.c (omega_pretty_print_problem): Likewise.
5463         * optabs.c (prepare_float_lib_cmp, expand_mult_highpart): Likewise.
5464         * reload1.c (reloads_unique_chain_p): Likewise.
5465         * sel-sched-ir.c (exchange_lv_sets, exchange_av_sets): Remove.
5466         (exchange_data_sets): Move logic from exchange_{av,lv}_sets here and
5467         use std::swap.
5468         * simplify-rtx.c (simplify_unary_operation_1): Use std::swap instead of
5469         manually swapping.
5470         * tree-if-conv.c (is_cond_scalar_reduction, predicate_scalar_phi,
5471         predicate_mem_writes): Likewise.
5472         * tree-loop-distribution.c (pg_add_dependence_edges): Likewise.
5473         * tree-predcom.c (combine_chains): Likewise.
5474         * tree-ssa-alias.c (nonoverlapping_component_refs_p,
5475         refs_may_alias_p_1): Likewise.
5476         * tree-ssa-ifcombine.c (recognize_if_then_else): Likewise.
5477         * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
5478         * tree-ssa-loop-niter.c (refine_bounds_using_guard,
5479         number_of_iterations_cond): Likewise.
5480         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
5481         * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
5482         * tree-vect-slp.c (vect_build_slp_tree): Likewise.
5483         * tree-vect-stmts.c (supportable_widening_operation): Likewise.
5484         * tree-vrp.c (extract_range_from_binary_expr_1,
5485         extract_range_from_unary_expr_1): Likewise.
5486
5487 2015-06-20  Marek Polacek  <polacek@redhat.com>
5488
5489         * common.opt (fsanitize-undefined-trap-on-error): Add Driver.
5490
5491 2015-06-19  Kaz Kojima  <kkojima@gcc.gnu.org>
5492
5493         PR target/66591
5494         * config/sh/sh.c (prepare_move_operands): Replace subreg
5495         index term with R0 for base and index addressing.
5496
5497 2015-06-19  Jim Wilson  <jim.wilson@linaro.org>
5498
5499         * config/aarch64/aarch64.md (mov<mode>:GPF): Don't call force_reg if
5500         op1 is an fp zero.
5501         (movsf_aarch64): Change condition from register_operand to
5502         aarch64_reg_or_fp_zero for op1.  Change type for alternative 6 to
5503         load1.  Change type for alternative 7 to store1.
5504         (movdf_aarch64): Likewise.
5505
5506 2015-06-19  James Greenhalgh  <james.greenhalgh@arm.com>
5507
5508         * config/vax/vax.md: Adjust sign/zero extend patterns to
5509         handle SUBREGs in operands[1].
5510
5511 2015-06-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5512
5513         * config/i386/i386.c (ix86_function_versions): Use std::swap instead
5514         of manually swapping.
5515         (expand_vec_perm_interleave2): Likewise.
5516
5517 2015-06-19  Ilya Enkovich  <enkovich.gnu@gmail.com>
5518
5519         * tree-chkp.c (chkp_compute_bounds_for_assignment): Don't
5520         reuse bounds created for abnormal ssa names.
5521
5522 2015-06-19  Jakub Jelinek  <jakub@redhat.com>
5523
5524         * config/nvptx/nvptx.md (allocate_stack): Rename to...
5525         (allocate_stack_<mode>): ... this, and add :P on both
5526         match_operand and unspec.
5527         (allocate_stack): New expander.
5528
5529 2015-06-19  Christian Bruel  <christian.bruel@st.com>
5530
5531         PR target/66541
5532         PR target/52144
5533         * config/arm/arm.c (arm_set_current_function): Handle
5534         explicit default options.
5535
5536 2015-06-18  Uros Bizjak  <ubizjak@gmail.com>
5537
5538         * config/i386/i386.md (*movsicc_noc_zext): New insn.
5539         (zero-extended cmove with mem peephole2): New pattern.
5540         (cmove with mem peephole2): Merge patterns.
5541
5542 2015-06-18  Segher Boessenkool  <segher@kernel.crashing.org>
5543
5544         * config/rs6000/rs6000.h (WORD_REGISTER_OPERATIONS): Delete.
5545
5546 2015-06-18  Steve Ellcey  <sellcey@imgtec.com>
5547
5548         * config/mips/mips.c (mips_rtx_costs): Remove HONOR_NAN check.
5549         * config/mips/mips.md (*madd4<mode>): Ditto.
5550         (*nmadd3<mode>) Ditto.
5551         (*nmadd4<mode>_fastmath): Ditto.
5552         (*nmadd3<mode>_fastmath): Ditto.
5553         (*nmsub4<mode>): Ditto.
5554         (*nmsub3<mode>): Ditto.
5555         (*nmsub4<mode>_fastmath): Ditto.
5556         (*nmsub3<mode>_fastmath): Ditto.
5557
5558 2015-06-18  Michael Matz  <matz@suse.de>
5559
5560         PR middle-end/66253
5561         * tree-vect-stmts.c (vectorizable_store): Implement non-SLP
5562         grouped strided stores.
5563         (vectorizable_load): Don't use the DR from first_stmt in
5564         the non-SLP grouped strided case.
5565
5566 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
5567
5568         PR target/66569
5569         * function.c (assign_bounds): Add arguments assign_regs,
5570         assign_special, assign_bt.
5571         (assign_parms): For vararg functions handle bounds in BT
5572         and special slots after incoming vararg bounds.
5573
5574 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
5575
5576         PR middle-end/66568
5577         * cfgexpand.c (expand_return): Handle missing bounds.
5578         (expand_gimple_stmt_1): Likewise.
5579         * tree-chkp.c (chkp_expand_zero_bounds): New.
5580         * tree-chkp.h (chkp_expand_zero_bounds): New.
5581
5582 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
5583
5584         PR middle-end/66567
5585         * ipa-chkp.c (chkp_maybe_create_clone): Require
5586         functions to be instrumentable.
5587         * tree-chkp.c (chkp_replace_function_pointer): Use
5588         chkp_instrumentable_p instead of attribute check.
5589
5590 2015-06-18  Richard Biener  <rguenther@suse.de>
5591
5592         PR tree-optimization/66510
5593         * tree-vect-stmts.c (vectorizable_load): Properly compute the
5594         number of vector loads for SLP permuted loads.
5595         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Also
5596         check the stride for loop vectorization.
5597         (vect_enhance_data_refs_alignment): Deal with SLP adjusted
5598         vectorization factor.
5599         (vect_analyze_group_access): If the group size is not a power
5600         of two require a epilogue loop.
5601         * tree-vect-loop.c (vect_analyze_loop_2): Move alignment
5602         compute and optimizing and alias test pruning after final
5603         vectorization factor computation.
5604         * tree-vect-slp.c (vect_build_slp_tree_1): Remove check on
5605         vector alignment.
5606         (vect_transform_slp_perm_load): Properly compute the original
5607         number of vector load stmts.
5608
5609 2015-06-18  Uros Bizjak  <ubizjak@gmail.com>
5610
5611         * doc/invoke.texi (-fsanitize-sections): Split @var to avoid
5612         "unlikely character , in @var" warning.
5613
5614 2015-06-17  Uros Bizjak  <ubizjak@gmail.com>
5615
5616         * config/i386/i386.c (ix86_function_arg): Nest TARGET_64BIT code.
5617         (ix86_function_arg_advance): Ditto.
5618         (ix86_pass_by_reference): Ditto.  Rewrite MS_ABI part.
5619
5620 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
5621
5622         * function.h (struct rtl_data): Remove struct and accessor macros.
5623         * emit-rtl.h (struct rtl_data): Relocate to here.
5624         * Makefile.in (GTFILES): Add emit-rtl.h.
5625         * df-core.c: Include emit-rtl.h.
5626         * genattrtab.c: Likewise.
5627         * genconditions.c: Likewise.
5628         * genpreds.c: Likewise.
5629         * genrecog.c: Likewise.
5630         * regcprop.c: Likewise.
5631         * resource.c: Likewise.
5632         * sched-rgn.c: Likewise.
5633         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
5634         * config/i386/winnt.c: Likewise.
5635
5636 2015-06-17  Jakub Jelinek  <jakub@redhat.com>
5637
5638         PR middle-end/66429
5639         * omp-low.c (expand_omp_taskreg, expand_omp_target): Use child_cfun
5640         instead of DECL_STRUCT_FUNCTION (child_fn).  Or in has_simduid_loops
5641         and has_force_vectorize_loops flags from cfun into
5642         child_cfun.
5643         (expand_omp_simd): For broken loop, set cfun->has_simduid_loops
5644         if simduid is non-NULL.
5645         * tree-pass.h (make_pass_simduid_cleanup): New prototype.
5646         * passes.def (pass_simduid_cleanup): Add new pass after loop
5647         passes.
5648         * tree-vectorizer.c (adjust_simduid_builtins): Remove one unnecessary
5649         indirection from htab argument's type.
5650         (shrink_simd_arrays): New function.
5651         (vectorize_loops): Use it.  Adjust adjust_simduid_builtins caller.
5652         Don't call adjust_simduid_builtins if there are no loops.
5653         (pass_data_simduid_cleanup, pass_simduid_cleanup): New variables.
5654         (pass_simduid_cleanup::execute): New method.
5655         (make_pass_simduid_cleanup): New function.
5656
5657 2017-06-17  Andrew MacLeod  <amacleod@redhat.com>
5658
5659         * tree-core.h (tree_target_option): Make opts field a pointer to a
5660         cl_target_option instead of an instance of the struct.
5661         * tree.h (TREE_TARGET_OPTION): Return the pointer, not an address of
5662         the structure.
5663         * tree.c (make_node_stat ): Allocate a cl_target_option struct for
5664         TARGET_OPTION_NODE.
5665         (copy_node_stat): Allocate and copy struct cl_target_option.
5666
5667 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
5668
5669         * tree.h (merge_dllimport_decl_attributes, handle_dll_attribute):
5670         Remove conditional exposure of prototypes.
5671         (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Delete.
5672         * tree.c (anon_aggrname_format, anon_aggrname_p): New.  Replace macro
5673         definitions in tree.h with functions.
5674         * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Use
5675         anon_aggrname_p.
5676         * tree-streamer-out.c (write_ts_decl_minimal_tree_pointers): Likewise.
5677
5678 2015-06-17  Segher Boessenkool  <segher@kernel.crashing.org>
5679
5680         * config/rs6000/rs6000.md (*cmp<mode>_internal1): Rename to...
5681         (*cmp<mode>_signed): ... this.
5682         (*cmpsi_internal2, *cmpdi_internal2): Merge, rename to...
5683         (*cmp<mode>_unsigned): ... this.  Remove %b.
5684
5685 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
5686
5687         * coretypes.h: Include input.h and as-a.h.
5688         * rtl.h: Include input.h and as-a.h for generator files.
5689         * hwint.c: Include coretypes.h, don't include diagnostic-core.h.
5690         * vec.c: Don't include diagnostic-core.h.
5691         * alias.c: Do not include input.h, line-map.h or is-a.h.
5692         * asan.c: Likewise.
5693         * attribs.c: Likewise.
5694         * auto-inc-dec.c: Likewise.
5695         * auto-profile.c: Likewise.
5696         * bb-reorder.c: Likewise.
5697         * bt-load.c: Likewise.
5698         * builtins.c: Likewise.
5699         * caller-save.c: Likewise.
5700         * calls.c: Likewise.
5701         * ccmp.c: Likewise.
5702         * cfg.c: Likewise.
5703         * cfganal.c: Likewise.
5704         * cfgbuild.c: Likewise.
5705         * cfgcleanup.c: Likewise.
5706         * cfgexpand.c: Likewise.
5707         * cfghooks.c: Likewise.
5708         * cfgloop.c: Likewise.
5709         * cfgloop.h: Likewise.
5710         * cfgloopanal.c: Likewise.
5711         * cfgloopmanip.c: Likewise.
5712         * cfgrtl.c: Likewise.
5713         * cgraph.c: Likewise.
5714         * cgraphbuild.c: Likewise.
5715         * cgraphclones.c: Likewise.
5716         * cgraphunit.c: Likewise.
5717         * cilk-common.c: Likewise.
5718         * combine-stack-adj.c: Likewise.
5719         * combine.c: Likewise.
5720         * compare-elim.c: Likewise.
5721         * convert.c: Likewise.
5722         * coverage.c: Likewise.
5723         * cppbuiltin.c: Likewise.
5724         * cprop.c: Likewise.
5725         * cse.c: Likewise.
5726         * cselib.c: Likewise.
5727         * data-streamer-in.c: Likewise.
5728         * data-streamer-out.c: Likewise.
5729         * data-streamer.c: Likewise.
5730         * dbxout.c: Likewise.
5731         * dce.c: Likewise.
5732         * ddg.c: Likewise.
5733         * debug.c: Likewise.
5734         * df-core.c: Likewise.
5735         * df-problems.c: Likewise.
5736         * df-scan.c: Likewise.
5737         * df.h: Likewise.
5738         * dfp.c: Likewise.
5739         * diagnostic-core.h: Likewise.
5740         * diagnostic.c: Likewise.
5741         * dojump.c: Likewise.
5742         * dominance.c: Likewise.
5743         * domwalk.c: Likewise.
5744         * double-int.c: Likewise.
5745         * dse.c: Likewise.
5746         * dumpfile.c: Likewise.
5747         * dumpfile.h: Likewise.
5748         * dwarf2asm.c: Likewise.
5749         * dwarf2cfi.c: Likewise.
5750         * dwarf2out.c: Likewise.
5751         * emit-rtl.c: Likewise.
5752         * et-forest.c: Likewise.
5753         * except.c: Likewise.
5754         * explow.c: Likewise.
5755         * expmed.c: Likewise.
5756         * expr.c: Likewise.
5757         * final.c: Likewise.
5758         * fixed-value.c: Likewise.
5759         * fold-const.c: Likewise.
5760         * function.c: Likewise.
5761         * fwprop.c: Likewise.
5762         * gcc-plugin.h: Likewise.
5763         * gcse.c: Likewise.
5764         * generic-match-head.c: Likewise.
5765         * ggc-page.c: Likewise.
5766         * gimple-builder.c: Likewise.
5767         * gimple-expr.c: Likewise.
5768         * gimple-fold.c: Likewise.
5769         * gimple-iterator.c: Likewise.
5770         * gimple-low.c: Likewise.
5771         * gimple-match-head.c: Likewise.
5772         * gimple-pretty-print.c: Likewise.
5773         * gimple-ssa-isolate-paths.c: Likewise.
5774         * gimple-ssa-strength-reduction.c: Likewise.
5775         * gimple-streamer-in.c: Likewise.
5776         * gimple-streamer-out.c: Likewise.
5777         * gimple-streamer.h: Likewise.
5778         * gimple-walk.c: Likewise.
5779         * gimple.c: Likewise.
5780         * gimplify-me.c: Likewise.
5781         * gimplify.c: Likewise.
5782         * godump.c: Likewise.
5783         * graph.c: Likewise.
5784         * graphite-blocking.c: Likewise.
5785         * graphite-dependences.c: Likewise.
5786         * graphite-interchange.c: Likewise.
5787         * graphite-isl-ast-to-gimple.c: Likewise.
5788         * graphite-optimize-isl.c: Likewise.
5789         * graphite-poly.c: Likewise.
5790         * graphite-scop-detection.c: Likewise.
5791         * graphite-sese-to-poly.c: Likewise.
5792         * graphite.c: Likewise.
5793         * haifa-sched.c: Likewise.
5794         * hw-doloop.c: Likewise.
5795         * ifcvt.c: Likewise.
5796         * init-regs.c: Likewise.
5797         * input.c: Likewise.
5798         * internal-fn.c: Likewise.
5799         * ipa-chkp.c: Likewise.
5800         * ipa-comdats.c: Likewise.
5801         * ipa-cp.c: Likewise.
5802         * ipa-devirt.c: Likewise.
5803         * ipa-icf-gimple.c: Likewise.
5804         * ipa-icf.c: Likewise.
5805         * ipa-inline-analysis.c: Likewise.
5806         * ipa-inline-transform.c: Likewise.
5807         * ipa-inline.c: Likewise.
5808         * ipa-polymorphic-call.c: Likewise.
5809         * ipa-profile.c: Likewise.
5810         * ipa-prop.c: Likewise.
5811         * ipa-pure-const.c: Likewise.
5812         * ipa-ref.c: Likewise.
5813         * ipa-reference.c: Likewise.
5814         * ipa-split.c: Likewise.
5815         * ipa-utils.c: Likewise.
5816         * ipa-visibility.c: Likewise.
5817         * ipa.c: Likewise.
5818         * ira-build.c: Likewise.
5819         * ira-color.c: Likewise.
5820         * ira-conflicts.c: Likewise.
5821         * ira-costs.c: Likewise.
5822         * ira-emit.c: Likewise.
5823         * ira-lives.c: Likewise.
5824         * ira.c: Likewise.
5825         * jump.c: Likewise.
5826         * langhooks.c: Likewise.
5827         * lcm.c: Likewise.
5828         * loop-doloop.c: Likewise.
5829         * loop-init.c: Likewise.
5830         * loop-invariant.c: Likewise.
5831         * loop-iv.c: Likewise.
5832         * loop-unroll.c: Likewise.
5833         * lower-subreg.c: Likewise.
5834         * lra-assigns.c: Likewise.
5835         * lra-coalesce.c: Likewise.
5836         * lra-constraints.c: Likewise.
5837         * lra-eliminations.c: Likewise.
5838         * lra-lives.c: Likewise.
5839         * lra-remat.c: Likewise.
5840         * lra-spills.c: Likewise.
5841         * lra.c: Likewise.
5842         * lto-cgraph.c: Likewise.
5843         * lto-compress.c: Likewise.
5844         * lto-opts.c: Likewise.
5845         * lto-section-in.c: Likewise.
5846         * lto-section-out.c: Likewise.
5847         * lto-streamer-in.c: Likewise.
5848         * lto-streamer-out.c: Likewise.
5849         * lto-streamer.c: Likewise.
5850         * mcf.c: Likewise.
5851         * mode-switching.c: Likewise.
5852         * modulo-sched.c: Likewise.
5853         * omega.c: Likewise.
5854         * omp-low.c: Likewise.
5855         * optabs.c: Likewise.
5856         * opts-global.c: Likewise.
5857         * opts.h: Likewise.
5858         * passes.c: Likewise.
5859         * plugin.c: Likewise.
5860         * postreload-gcse.c: Likewise.
5861         * postreload.c: Likewise.
5862         * predict.c: Likewise.
5863         * pretty-print.h: Likewise.
5864         * print-rtl.c: Likewise.
5865         * print-tree.c: Likewise.
5866         * profile.c: Likewise.
5867         * real.c: Likewise.
5868         * realmpfr.c: Likewise.
5869         * recog.c: Likewise.
5870         * ree.c: Likewise.
5871         * reg-stack.c: Likewise.
5872         * regcprop.c: Likewise.
5873         * reginfo.c: Likewise.
5874         * regrename.c: Likewise.
5875         * regstat.c: Likewise.
5876         * reload.c: Likewise.
5877         * reload1.c: Likewise.
5878         * reorg.c: Likewise.
5879         * resource.c: Likewise.
5880         * rtl-chkp.c: Likewise.
5881         * rtl-error.c: Likewise.
5882         * rtlanal.c: Likewise.
5883         * rtlhooks.c: Likewise.
5884         * sanopt.c: Likewise.
5885         * sched-deps.c: Likewise.
5886         * sched-ebb.c: Likewise.
5887         * sched-rgn.c: Likewise.
5888         * sched-vis.c: Likewise.
5889         * sdbout.c: Likewise.
5890         * sel-sched-dump.c: Likewise.
5891         * sel-sched-ir.c: Likewise.
5892         * sel-sched.c: Likewise.
5893         * sese.c: Likewise.
5894         * shrink-wrap.c: Likewise.
5895         * simplify-rtx.c: Likewise.
5896         * stack-ptr-mod.c: Likewise.
5897         * statistics.c: Likewise.
5898         * stmt.c: Likewise.
5899         * stor-layout.c: Likewise.
5900         * store-motion.c: Likewise.
5901         * streamer-hooks.c: Likewise.
5902         * stringpool.c: Likewise.
5903         * symtab.c: Likewise.
5904         * target-globals.c: Likewise.
5905         * targhooks.c: Likewise.
5906         * toplev.c: Likewise.
5907         * tracer.c: Likewise.
5908         * trans-mem.c: Likewise.
5909         * tree-affine.c: Likewise.
5910         * tree-browser.c: Likewise.
5911         * tree-call-cdce.c: Likewise.
5912         * tree-cfg.c: Likewise.
5913         * tree-cfgcleanup.c: Likewise.
5914         * tree-chkp-opt.c: Likewise.
5915         * tree-chkp.c: Likewise.
5916         * tree-chrec.c: Likewise.
5917         * tree-complex.c: Likewise.
5918         * tree-data-ref.c: Likewise.
5919         * tree-dfa.c: Likewise.
5920         * tree-diagnostic.c: Likewise.
5921         * tree-dump.c: Likewise.
5922         * tree-eh.c: Likewise.
5923         * tree-emutls.c: Likewise.
5924         * tree-if-conv.c: Likewise.
5925         * tree-inline.c: Likewise.
5926         * tree-into-ssa.c: Likewise.
5927         * tree-iterator.c: Likewise.
5928         * tree-loop-distribution.c: Likewise.
5929         * tree-nested.c: Likewise.
5930         * tree-nrv.c: Likewise.
5931         * tree-object-size.c: Likewise.
5932         * tree-outof-ssa.c: Likewise.
5933         * tree-parloops.c: Likewise.
5934         * tree-phinodes.c: Likewise.
5935         * tree-predcom.c: Likewise.
5936         * tree-pretty-print.c: Likewise.
5937         * tree-profile.c: Likewise.
5938         * tree-scalar-evolution.c: Likewise.
5939         * tree-sra.c: Likewise.
5940         * tree-ssa-address.c: Likewise.
5941         * tree-ssa-alias.c: Likewise.
5942         * tree-ssa-ccp.c: Likewise.
5943         * tree-ssa-coalesce.c: Likewise.
5944         * tree-ssa-copy.c: Likewise.
5945         * tree-ssa-copyrename.c: Likewise.
5946         * tree-ssa-dce.c: Likewise.
5947         * tree-ssa-dom.c: Likewise.
5948         * tree-ssa-dse.c: Likewise.
5949         * tree-ssa-forwprop.c: Likewise.
5950         * tree-ssa-ifcombine.c: Likewise.
5951         * tree-ssa-live.c: Likewise.
5952         * tree-ssa-loop-ch.c: Likewise.
5953         * tree-ssa-loop-im.c: Likewise.
5954         * tree-ssa-loop-ivcanon.c: Likewise.
5955         * tree-ssa-loop-ivopts.c: Likewise.
5956         * tree-ssa-loop-manip.c: Likewise.
5957         * tree-ssa-loop-niter.c: Likewise.
5958         * tree-ssa-loop-prefetch.c: Likewise.
5959         * tree-ssa-loop-unswitch.c: Likewise.
5960         * tree-ssa-loop.c: Likewise.
5961         * tree-ssa-math-opts.c: Likewise.
5962         * tree-ssa-operands.c: Likewise.
5963         * tree-ssa-phiopt.c: Likewise.
5964         * tree-ssa-phiprop.c: Likewise.
5965         * tree-ssa-pre.c: Likewise.
5966         * tree-ssa-propagate.c: Likewise.
5967         * tree-ssa-reassoc.c: Likewise.
5968         * tree-ssa-sccvn.c: Likewise.
5969         * tree-ssa-scopedtables.c: Likewise.
5970         * tree-ssa-sink.c: Likewise.
5971         * tree-ssa-strlen.c: Likewise.
5972         * tree-ssa-structalias.c: Likewise.
5973         * tree-ssa-tail-merge.c: Likewise.
5974         * tree-ssa-ter.c: Likewise.
5975         * tree-ssa-threadedge.c: Likewise.
5976         * tree-ssa-threadupdate.c: Likewise.
5977         * tree-ssa-uncprop.c: Likewise.
5978         * tree-ssa-uninit.c: Likewise.
5979         * tree-ssa.c: Likewise.
5980         * tree-ssanames.c: Likewise.
5981         * tree-stdarg.c: Likewise.
5982         * tree-streamer-in.c: Likewise.
5983         * tree-streamer-out.c: Likewise.
5984         * tree-streamer.c: Likewise.
5985         * tree-switch-conversion.c: Likewise.
5986         * tree-tailcall.c: Likewise.
5987         * tree-vect-data-refs.c: Likewise.
5988         * tree-vect-generic.c: Likewise.
5989         * tree-vect-loop-manip.c: Likewise.
5990         * tree-vect-loop.c: Likewise.
5991         * tree-vect-patterns.c: Likewise.
5992         * tree-vect-slp.c: Likewise.
5993         * tree-vect-stmts.c: Likewise.
5994         * tree-vectorizer.c: Likewise.
5995         * tree-vrp.c: Likewise.
5996         * tree.c: Likewise.
5997         * tsan.c: Likewise.
5998         * ubsan.c: Likewise.
5999         * valtrack.c: Likewise.
6000         * value-prof.c: Likewise.
6001         * var-tracking.c: Likewise.
6002         * varasm.c: Likewise.
6003         * varpool.c: Likewise.
6004         * vmsdbgout.c: Likewise.
6005         * vtable-verify.c: Likewise.
6006         * web.c: Likewise.
6007         * wide-int.cc: Likewise.
6008         * xcoffout.c: Likewise.
6009         * common/common-target.h: Do not include input.h, line-map.h or is-a.h.
6010         * common/common-targhooks.c: Likewise.
6011         * config/aarch64/aarch64-builtins.c: Likewise.
6012         * config/aarch64/aarch64.c: Likewise.
6013         * config/alpha/alpha.c: Likewise.
6014         * config/arc/arc.c: Likewise.
6015         * config/arm/aarch-common.c: Likewise.
6016         * config/arm/arm-builtins.c: Likewise.
6017         * config/arm/arm-c.c: Likewise.
6018         * config/arm/arm.c: Likewise.
6019         * config/avr/avr-c.c: Likewise.
6020         * config/avr/avr-log.c: Likewise.
6021         * config/avr/avr.c: Likewise.
6022         * config/bfin/bfin.c: Likewise.
6023         * config/c6x/c6x.c: Likewise.
6024         * config/cr16/cr16.c: Likewise.
6025         * config/cris/cris.c: Likewise.
6026         * config/darwin-c.c: Likewise.
6027         * config/darwin.c: Likewise.
6028         * config/default-c.c: Likewise.
6029         * config/epiphany/epiphany.c: Likewise.
6030         * config/epiphany/mode-switch-use.c: Likewise.
6031         * config/epiphany/resolve-sw-modes.c: Likewise.
6032         * config/fr30/fr30.c: Likewise.
6033         * config/frv/frv.c: Likewise.
6034         * config/ft32/ft32.c: Likewise.
6035         * config/glibc-c.c: Likewise.
6036         * config/h8300/h8300.c: Likewise.
6037         * config/i386/i386-c.c: Likewise.
6038         * config/i386/i386.c: Likewise.
6039         * config/i386/msformat-c.c: Likewise.
6040         * config/i386/winnt-cxx.c: Likewise.
6041         * config/i386/winnt-stubs.c: Likewise.
6042         * config/i386/winnt.c: Likewise.
6043         * config/ia64/ia64-c.c: Likewise.
6044         * config/ia64/ia64.c: Likewise.
6045         * config/iq2000/iq2000.c: Likewise.
6046         * config/lm32/lm32.c: Likewise.
6047         * config/m32c/m32c-pragma.c: Likewise.
6048         * config/m32c/m32c.c: Likewise.
6049         * config/m32r/m32r.c: Likewise.
6050         * config/m68k/m68k.c: Likewise.
6051         * config/mcore/mcore.c: Likewise.
6052         * config/mep/mep-pragma.c: Likewise.
6053         * config/mep/mep.c: Likewise.
6054         * config/microblaze/microblaze-c.c: Likewise.
6055         * config/microblaze/microblaze.c: Likewise.
6056         * config/mips/mips.c: Likewise.
6057         * config/mmix/mmix.c: Likewise.
6058         * config/mn10300/mn10300.c: Likewise.
6059         * config/moxie/moxie.c: Likewise.
6060         * config/msp430/msp430-c.c: Likewise.
6061         * config/msp430/msp430.c: Likewise.
6062         * config/nds32/nds32-cost.c: Likewise.
6063         * config/nds32/nds32-fp-as-gp.c: Likewise.
6064         * config/nds32/nds32-intrinsic.c: Likewise.
6065         * config/nds32/nds32-isr.c: Likewise.
6066         * config/nds32/nds32-md-auxiliary.c: Likewise.
6067         * config/nds32/nds32-memory-manipulation.c: Likewise.
6068         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
6069         * config/nds32/nds32-predicates.c: Likewise.
6070         * config/nds32/nds32.c: Likewise.
6071         * config/nios2/nios2.c: Likewise.
6072         * config/nvptx/nvptx.c: Likewise.
6073         * config/pa/pa.c: Likewise.
6074         * config/pdp11/pdp11.c: Likewise.
6075         * config/rl78/rl78-c.c: Likewise.
6076         * config/rl78/rl78.c: Likewise.
6077         * config/rs6000/rs6000-c.c: Likewise.
6078         * config/rs6000/rs6000.c: Likewise.
6079         * config/rx/rx.c: Likewise.
6080         * config/s390/s390-c.c: Likewise.
6081         * config/s390/s390.c: Likewise.
6082         * config/sh/sh-c.c: Likewise.
6083         * config/sh/sh-mem.cc: Likewise.
6084         * config/sh/sh.c: Likewise.
6085         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
6086         * config/sh/sh_treg_combine.cc: Likewise.
6087         * config/sol2-c.c: Likewise.
6088         * config/sol2-cxx.c: Likewise.
6089         * config/sol2-stubs.c: Likewise.
6090         * config/sol2.c: Likewise.
6091         * config/sparc/sparc-c.c: Likewise.
6092         * config/sparc/sparc.c: Likewise.
6093         * config/spu/spu-c.c: Likewise.
6094         * config/spu/spu.c: Likewise.
6095         * config/stormy16/stormy16.c: Likewise.
6096         * config/tilegx/mul-tables.c: Likewise.
6097         * config/tilegx/tilegx-c.c: Likewise.
6098         * config/tilegx/tilegx.c: Likewise.
6099         * config/tilepro/mul-tables.c: Likewise.
6100         * config/tilepro/tilepro-c.c: Likewise.
6101         * config/tilepro/tilepro.c: Likewise.
6102         * config/v850/v850-c.c: Likewise.
6103         * config/v850/v850.c: Likewise.
6104         * config/vax/vax.c: Likewise.
6105         * config/visium/visium.c: Likewise.
6106         * config/vms/vms-c.c: Likewise.
6107         * config/vms/vms.c: Likewise.
6108         * config/vxworks.c: Likewise.
6109         * config/winnt-c.c: Likewise.
6110         * config/xtensa/xtensa.c: Likewise.
6111
6112 2015-06-17  Robert Suchanek  <robert.suchanek@imgtec.com>
6113
6114         * config/mips/mips.c (mips_ira_change_pseudo_allocno_class): New
6115         function.
6116         (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define macro.
6117
6118 2015-06-17  Richard Biener  <rguenther@suse.de>
6119
6120         PR tree-optimization/66251
6121         * tree-vect-stmts.c (vectorizable_store): Fix gathering of vectorized
6122         stmts for SLP strided stores.
6123
6124         Revert
6125         2015-05-22  Richard Biener  <rguenther@suse.de>
6126
6127         PR tree-optimization/66251
6128         * tree-vect-stmts.c (vectorizable_conversion): Properly
6129         set STMT_VINFO_VEC_STMT even for the SLP case.
6130
6131         2015-05-26  Michael Matz  <matz@suse.de>
6132
6133         PR middle-end/66251
6134         * tree-vect-stmts.c (vect_create_vectorized_demotion_stmts): Always set
6135         STMT_VINFO_VEC_STMT, also with SLP.
6136
6137 2015-06-16  Uros Bizjak  <ubizjak@gmail.com>
6138
6139         PR target/56766
6140         * config/i386/sse.md (*avx_addsubv4df3_1): New insn pattern.
6141         (*avx_addsubv4df3_1s): Ditto.
6142         (*sse3_addsubv2df3_1): Ditto.
6143         (*sse3_addsubv2df3_1s): Ditto.
6144         (*avx_addsubv8sf3_1): Ditto.
6145         (*avx_addsubv8sf3_1s): Ditto.
6146         (*sse3_addsubv4sf3_1): Ditto.
6147         (*sse3_addsubv4sf3_1s): Ditto.
6148
6149 2015-06-16  Steve Ellcey  <sellcey@imgtec.com>
6150
6151         * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): New.
6152         (SYSROOT_SUFFIX_SPEC): Update.
6153         (SYSROOT_HEADERS_SUFFIX_SPEC): New.
6154         (STARTFILE_PREFIX_SPEC): Update.
6155         * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Remove.
6156         (MULTILIB_REQUIRED): New.
6157         (MULTILIB_OSDIRNAMES): New.
6158         * config/mips/t-img-linux (MULTILIB_EXCEPTIONS): Remove.
6159         (MULTILIB_REQUIRED): New.
6160         (MULTILIB_OSDIRNAMES): New.
6161
6162 2015-06-16  Matthew Wahab  <matthew.wahab@arm.com>
6163
6164         * config/aarch64/aarch64-arches.def: Add "armv8.1-a".
6165         * config/aarch64/aarch64-options-extensions.def: Update "fP",
6166         "simd" and "crypto".  Add "lse", "pan", "lor" and "rdma".
6167         * gcc/config/aarch64/aarch64.h (AARCH64_FL_LSE): New.
6168         (AARCH64_FL_PAN): New.
6169         (AARCH64_FL_LOR): New.
6170         (AARCH64_FL_RDMA): New.
6171         (AARCH64_FL_FOR_ARCH8_1): New.
6172         * doc/invoke.texi (AArch64 Options): Add "armv8.1-a" to
6173         -march. Add "lse", "pan", "lor", "rdma" to feature modifiers.
6174
6175 2015-06-16  Martin Liska  <mliska@suse.cz>
6176
6177         * bitmap.c (dump_bitmap_statistics): Fix GNU coding style.
6178         * hash-table.c (void dump_hash_table_loc_statistics): Add missing
6179         guard.
6180
6181 2015-06-16  Richard Biener  <rguenther@suse.de>
6182
6183         * tree-vect-stmts.c (vectorizable_store): Adjust.
6184         (vectorizable_load): Likewise.
6185         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
6186         Simplify.
6187         (vect_create_data_ref_ptr): Likewise.
6188         (bump_vector_ptr): Adjust.
6189
6190 2015-06-16  Richard Biener  <rguenther@suse.de>
6191
6192         * tree-vect-stmts.c (vectorizable_load): Properly start loads
6193         with the first element if this is grouped loads.
6194
6195 2015-06-16  James Greenhalgh  <james.greenhalgh@arm.com>
6196
6197         * config/arm/arm-protos.h (struct tune_params): Rename
6198         log_op_non_sc to log_op_non_short_circuit, and rename enum
6199         values to expand SC to SHORT_CIRCUIT.
6200         * config/arm/arm.c (arm_slowmul_tune): Expand LOG_OP_NON_SC
6201         to LOG_OP_NON_SHORT_CIRCUIT.
6202         (arm_fastmul_tune):Likewise
6203         (arm_strongarm_tune): Likewise.
6204         (arm_xscale_tune): Likewise.
6205         (arm_9e_tune): Likewise.
6206         (arm_marvell_pj4_tune): Likewise.
6207         (arm_v6t2_tune): Likewise.
6208         (arm_cortex_tune): Likewise.
6209         (arm_cortex_a8_tune): Likewise.
6210         (arm_cortex_a7_tune): Likewise.
6211         (arm_cortex_a15_tune): Likewise.
6212         (arm_cortex_a53_tune): Likewise.
6213         (arm_cortex_a57_tune): Likewise.
6214         (arm_xgene1_tune): Likewise.
6215         (arm_cortex_a5_tune): Likewise.
6216         (arm_cortex_a9_tune): Likewise.
6217         (arm_cortex_a12_tune): Likewise.
6218         (arm_v7m_tune): Likewise.
6219         (arm_cortex_m7_tune): Likewise.
6220         (arm_v6m_tune): Likewise.
6221         (arm_fa726te_tune): Likewise.
6222
6223 2015-06-15  David Edelsohn  <dje.gcc@gmail.com>
6224
6225         * altivec.md: Delete UNSPEC_VMLADDUHM.
6226         (mulv4si3_p8): New pattern.
6227         (mulv4si3): Use it for POWER8.
6228         (mulv8hi3): Use vmladduhm with zero addend.
6229         (altivec_vmladduhm): Descriptive RTL.
6230
6231 2015-06-15  Jim Wilson  <jim.wilson@linaro.org>
6232
6233         * config/aarch64/aarch64.md (mov<mode>_aarch64): Change alternative 2
6234         to use neon_move instead of mov_imm.
6235         (movdi_aarch64): Change alternative 14 to use neon_move not fmov.
6236         (movtf_aarch64): Change alternative 4 to use neon_move_q not fconstd.
6237
6238         * config/aarch64/aarch64.c (aarch64_valid_floating_const): Move
6239         aarch64_float_const_zero_rtx_p check before TFmode check.
6240         * config/aarch64/aarch64.md (movtf): Don't call force_reg if op1 is
6241         an fp zero.
6242         (movtf_aarch64): Separate ?rY alternative into two.  Adjust assembly
6243         code and attributes to match.  Change condition from register_operand
6244         to aarch64_reg_or_fp_zero for op1.  Change type for ldp from
6245         neon_load1_2reg to load2.  Change type for stp from neon_store1_2reg
6246         to store2.
6247
6248 2015-06-15  Aldy Hernandez  <aldyh@redhat.com>
6249
6250         PR debug/66535
6251         * dwarf2out.c (gen_subprogram_die): Do not check a parent's tag if
6252         there is no parent.
6253
6254 2015-06-14  Shiva Chen  <shiva0217@gmail.com>
6255
6256         * aarch64.c (aarch64_simd_lane_bounds): Change %ld to %wd for
6257         HOST_WIDE_INT parameter.
6258
6259 2015-06-14  Jan Hubicka  <hubicka@ucw.cz>
6260
6261         PR ipa/66181
6262         * lto-streamer-out.c (hash_tree): Do not hash TYPE_NO_FORCE_BLK.
6263         * tree-streamer-out.c (pack_ts_type_common_value_fields): Do not stream
6264         TYPE_NO_FORCE_BLK.
6265         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Likewise.
6266
6267 2015-06-14  Richard Sandiford  <richard.sandiford@arm.com>
6268
6269         * rtl.h (classify_insn): Declare.
6270         * emit-rtl.c (classify_insn): Move to...
6271         * rtl.c: ...here and add generator support.
6272         * gensupport.h (get_emit_function, needs_barrier_p): Declare.
6273         * gensupport.c (get_emit_function, needs_barrier_p): New functions.
6274         * genemit.c (gen_emit_seq): New function.
6275         (gen_expand, gen_split): Use it.
6276
6277 2015-06-13  Patrick Palka  <ppalka@gcc.gnu.org>
6278
6279         * tree.c (make_vector_stat): Fix comment to state that the
6280         function returns a VECTOR_CST.
6281
6282 2015-06-13  Richard Sandiford  <richard.sandiford@arm.com>
6283
6284         * gensupport.h (add_implicit_parallel): Declare.
6285         * genrecog.c (add_implicit_parallel): Move to...
6286         * gensupport.c (add_implicit_parallel): ...here.
6287         (process_one_cond_exec): Use it.
6288         * genemit.c (gen_insn): Likewise.
6289
6290 2015-06-13  Iain Sandoe  <iain@codesourcery.com>
6291
6292         PR bootstrap/66448
6293         * passes.c (rest_of_decl_compilation): Do not register globals for
6294         early debug if they are declared in built-ins.
6295
6296 2015-06-12  Aldy Hernandez  <aldyh@redhat.com>
6297
6298         * dwarf2out.c (check_die): Protect with ENABLE_CHECKING.
6299
6300 2015-06-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6301
6302         * ifcvt.c (noce_try_store_flag_constants): Use std::swap instead of
6303         manually swapping.
6304         (noce_try_cmove_arith): Likewise.
6305         (noce_get_alt_condition): Likewise.
6306
6307 2015-06-12  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
6308
6309         * common/config/i386/i386-common.c
6310         (OPTION_MASK_ISA_MWAITX_SET): New.
6311         (ix86_handle_option): Handle mwaitx.
6312         * config.gcc (i[34567]86-*-*): Add mwaitxintrin.h,
6313         (x86_64-*-*): Likewise.
6314         * config/i386/mwaitxintrin.h: New header.
6315         * config/i386/cpuid.h (bit_MWAITX):  Define.
6316         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
6317         MWAITX support.
6318         * config/i386/i386.opt (mwaitx): New.
6319         * config/i386/i386-builtin-types.def
6320         (VOID_FTYPE_UNSIGNED_ UNSIGNED_UNSIGNED): New function type.
6321         * config/i386/i386-c.c: Define __MWAITX__ if needed.
6322         * config/i386/i386.c (ix86_target_string): Define -mmwaitx option.
6323         (PTA_MWAITX): New.
6324         (ix86_option_override_internal): Handle new option.
6325         (processor_alias_table): Added PTA_MWAITX.
6326         (ix86_valid_target_attribute_inner_p): Add OPT_mmwaitx.
6327         (ix86_builtins): Add IX86_BUILTIN_MWAITX, IX86_BUILTIN_MONITORX.
6328         (ix86_expand_builtin): Handle IX86_BUILTIN_MWAITX and
6329         IX86_BUILTIN_MONITORX  built-ins.
6330         * config/i386/i386.h (TARGET_MWAITX): New.
6331         * config/i386/i386.md (unspecv): Add UNSPEC_MWAITX and
6332         UNSPEC_MONITORX.
6333         (mwaitx):  New pattern.
6334         (monitorx_<mode>): New pattern.
6335         * config/i386/x86intrin.h: Include mwaitxintrin.h.
6336         * doc/extend.texi: Document monitorx and mwaitx builtins.
6337         * doc/invoke.texi: Document -mmwaitx option.
6338
6339 2015-06-12  Uros Bizjak  <ubizjak@gmail.com>
6340
6341         * emit-rtl.c (need_atomic_barrier_p): Mask model with
6342         MEMMODEL_BASE_MASK.  Remove MEMMODEL_SYNC_* cases.
6343
6344 2015-06-11  David Edelsohn  <dje.gcc@gmail.com>
6345
6346         * dbxout.c (xcoff_debug_hooks): Provide a function for
6347         register_main_translation_unit hook.
6348
6349 2015-06-11  David Edelsohn  <dje.gcc@gmail.com>
6350
6351         * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier): Remove SYNC
6352         variants cases from switch.
6353         (rs6000_post_atomic_barrier): Same.
6354         (rs6000_expand_atomic_compare_and_swap): Use memmodel_base.
6355         (rs6000_expand_atomic_exchange): Same.
6356         (rs6000_expand_atomic_op): Same.
6357         * config/rs6000/sync.md (mem_thread_fence): Use memodel_base. Remove
6358         SYNC variants cases from switch.
6359         (atomic_load): Same.
6360         (atomic_store): Same.
6361
6362 2015-06-11  John David Anglin  <danglin@gcc.gnu.org>
6363
6364         * config/pa/pa.c (pa_output_global_address): Handle LABEL_REF plus
6365         CONST_INT for goto.
6366
6367 2015-06-11  Aldy Hernandez  <aldyh@redhat.com>
6368
6369         PR bootstrap/66448
6370         * dwarf2out.c (check_die): Check for common duplicate attributes.
6371         (add_location_or_const_value_attribute): Do not add duplicate
6372         attributes.
6373         (gen_formal_parameter_die): Do not add DW_AT_artificial the second
6374         time around.
6375         (gen_struct_or_union_type_die): Bail early if TREE_ASM_WRITTEN.
6376         (gen_type_die_with_usage): Call check_die.
6377         (dwarf2out_decl): Only call check_die() when ENABLE_CHECKING.
6378
6379 2015-06-11  Jason Merrill  <jason@redhat.com>
6380
6381         * dwarf2out.c (prune_unused_types): Handle unused top-level limbo
6382         dies.
6383
6384 2015-06-11  Marek Polacek  <polacek@redhat.com>
6385
6386         * match.pd ((x & y) ^ (x | y)): Don't check for single_use.
6387
6388 2015-06-11  Eric Botcazou  <ebotcazou@adacore.com>
6389
6390         PR bootstrap/66252
6391         * config/sparc/sparc.c (hard_regno_mode_classes): Add ??? comment.
6392         * config/sparc/sparc.md (zero_extendsidi2_insn_sp32): Use single order.
6393         (*addx_extend_sp32): Fix pasto.
6394         (*subx_extend): Rename into...
6395         (*subx_extend_sp32): ...this.
6396         (*adddi3_extend_sp32): Add earlyclobber.
6397         (*subdi3_insn_sp32): Likewise.
6398         (*subdi3_extend_sp32): Likewise.
6399         (*and_not_di_sp32): Likewise.
6400         (*or_not_di_sp32): Likewise.
6401         (*xor_not_di_sp32): Likewise.
6402         (*negdi2_sp32): Likewise.
6403         (*one_cmpldi2_sp32): Likewise.
6404
6405 2015-06-11  Pierre-Marie de Rodat  <derodat@adacore.com>
6406
6407         * debug.h (struct gcc_debug_hooks): Add a
6408         register_main_translation_unit hook.
6409         * debug.c (do_nothing_debug_hooks): Provide a function for this
6410         new hook.
6411         * dbxout.c (dbx_debug_hooks): Likewise.
6412         * sdbout.c (sdb_debug_hooks): Likewise.
6413         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
6414         * dwarf2out.c (main_translation_unit): New global variable.
6415         (dwarf2out_register_main_translation_unit): New function
6416         implementing the new hook.
6417         (dwarf2_debug_hooks): Assign
6418         dwarf2out_register_main_translation_unit to this new hook.
6419         (dwarf2out_init): Associate any main translation unit to
6420         comp_unit_die ().
6421
6422 2015-06-11  Marek Polacek  <polacek@redhat.com>
6423
6424         * match.pd ((x & y) ^ (x | y) -> x ^ y): New pattern.
6425
6426 2015-06-11  Marek Polacek  <polacek@redhat.com>
6427
6428         * match.pd: Use single_use throughout.
6429
6430 2015-06-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6431
6432         * config/arm/arm.c (arm_option_params_internal): When optimising
6433         for speed set max_insns_skipped when arm_restrict_it.
6434
6435 2015-06-11  Christian Bruel  <christian.bruel@st.com>
6436
6437         PR target/52144
6438         * config/arm/arm-c.c (arm_cpu_cpp_builtins): Conditionally define
6439          macros in ...
6440         (arm_cpu_builtins): New function.
6441         (arm_pragma_target_parse): Call arm_cpu_builtins.
6442         * config/arm/arm-protos.h (arm_cpu_builtins): Declare.
6443         (arm_register_target_pragmas): Likewise.
6444         * config/arm/arm.h (REGISTER_TARGET_PRAGMAS):
6445          Call arm_register_target_pragmas.
6446         * config/arm/arm-c.c (arm_register_target_pragmas): New function.
6447         (arm_pragma_target_parse): Likewise.
6448
6449 2015-06-10  Kaz Kojima  <kkojima@gcc.gnu.org>
6450
6451         * config/sh/sh.md (tstsi_t): Add '?' modifier to 'r' alternative
6452         of the second operand.
6453
6454 2015-06-10  Uros Bizjak  <ubizjak@gmail.com>
6455
6456         PR target/66473
6457         * config/i386/i386.c (ix86_expand_vector_set): Use gen_int_mode
6458         to prepare mask operand for AVX512 modes.
6459
6460 2015-06-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
6461
6462         PR target/66474
6463         * doc/md.texi (Machine Constraints): Document that on the PowerPC
6464         if you use a constraint that targets a VSX register, you must use
6465         %x<n> in the template.
6466
6467 2015-06-10  Max Filippov  <jcmvbkbc@gmail.com>
6468
6469         * config/xtensa/xtensa.h (TARGET_DEBUG): New definition.
6470         * config/xtensa/xtensa.md (define_attr "type"): New type "trap".
6471         (define_insn "trap"): New definition.
6472
6473 2015-06-10  Richard Biener  <rguenther@suse.de>
6474
6475         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Split
6476         out from ...
6477         (vect_supported_load_permutation_p): ... here.  Handle
6478         supportable permutations in reductions.
6479         * tree-vect-stmts.c (vectorizable_load): Handle SLP permutations
6480         for vectorizing strided group loads.
6481
6482 2015-06-10  Jakub Jelinek  <jakub@redhat.com>
6483
6484         PR target/66470
6485         * config/i386/i386.c (ix86_split_long_move): For collisions
6486         involving direct tls segment refs, move the UNSPEC_TP possibly
6487         wrapped in ZERO_EXTEND out of the address for lea, to each of
6488         the memory loads.
6489
6490 2015-06-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6491
6492         * config/arm/sync.md (*memory_barrier): Use dmb ish instead of
6493         dmb sy. Adjust tabs.
6494
6495 2015-06-10  Tom de Vries  <tom@codesourcery.com>
6496
6497         * omp-low.c (expand_omp_target): Remove duplicate declaration of node.
6498
6499 2015-06-10  Martin Liska  <mliska@suse.cz>
6500
6501         PR bootstrap/66471
6502         * mem-stats-traits.h (enum mem_alloc_origin): Add _ORIGIN suffix for
6503         all enum values in mem_alloc_origin.
6504         * alloc-pool.c (dump_alloc_pool_statistics): Use newly changed enum
6505         name.
6506         * alloc-pool.h (pool_allocator::pool_allocator): Likewise.
6507         * bitmap.c (bitmap_register): Likewise.
6508         (dump_bitmap_statistics): Likewise.
6509         * ggc-common.c (dump_ggc_loc_statistics): Likewise.
6510         (ggc_record_overhead): Likewise.
6511         * hash-map.h: Likewise.
6512         * hash-set.h: Likewise.
6513         * hash-table.c (void dump_hash_table_loc_statistics): Likewise.
6514         * hash-table.h: Likewise.
6515         * vec.c (vec_prefix::register_overhead): Likewise.
6516         (vec_prefix::release_overhead): Likewise.
6517         (dump_vec_loc_statistics): Likewise.
6518
6519 2015-06-09  Christian Bruel  <christian.bruel@st.com>
6520
6521         PR target/52144
6522         * config/arm/arm.opt (THUMB, arm_restrict_it, inline_asm_unified): Save.
6523         * config/arm/arm-protos.h (arm_valid_target_attribute_tree): Declare.
6524         (arm_reset_previous_fndecl, arm_change_mode_p): Likewise.
6525         * config/arm/arm.h (SWITCHABLE_TARGET): Define.
6526         * config/arm/arm.c (arm_reset_previous_fndecl): New functions.
6527         (arm_valid_target_attribute_tree, arm_change_mode_p): Likewise.
6528         (arm_valid_target_attribute_p): Likewise.
6529         (arm_set_current_function, arm_can_inline_p): Likewise.
6530         (arm_valid_target_attribute_rec): Likewise.
6531         (arm_previous_fndecl): New variable.
6532         (TARGET_SET_CURRENT_FUNCTION, TARGET_OPTION_VALID_ATTRIBUTE_P): Define.
6533         (TARGET_CAN_INLINE_P): Define.
6534         (arm_asm_trampoline_template): Emit mode.
6535         (arm_file_start): Don't set unified syntax.
6536         (arm_declare_function_name): Set unified syntax and mode.
6537         (arm_option_override): Init target_option_default_node.
6538         and target_option_current_node.
6539         * config/arm/arm.md (*call_value_symbol): Set mode when possible.
6540         (*call_symbol): Likewise.
6541         * doc/extend.texi: Document ARM/Thumb target attribute.
6542         * doc/invoke.texi: Likewise.
6543
6544 2015-06-09  Alexandre Oliva <aoliva@redhat.com>
6545
6546         Revert:
6547         2015-06-09  Alexandre Oliva <aoliva@redhat.com>
6548         PR rtl-optimization/64164
6549         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
6550         * tree-ssa-copyrename.c: Removed.
6551         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
6552         -ftree-coalesce-vars.
6553         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
6554         * common.opt (ftree-copyrename): Ignore.
6555         (ftree-coalesce-inlined-vars): Likewise.
6556         * doc/invoke.texi: Remove the ignored options above.
6557         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
6558         * tree-ssa-coalesce.h: ... here.
6559         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
6560         headers required by it.
6561         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
6562         across variables when flag_tree_coalesce_vars.  Check register
6563         use and promoted modes to allow coalescing.  Moved to
6564         tree-ssa-coalesce.c.
6565         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
6566         with its member functions to tree-ssa-coalesce.c.
6567         (var_map_base_init): Likewise.  Renamed to
6568         compute_samebase_partition_bases.
6569         (partition_view_normal): Drop want_bases parameter.
6570         (partition_view_bitmap): Likewise.
6571         * tree-ssa-live.h: Adjust declarations.
6572         * tree-ssa-coalesce.c: Include explow.h.
6573         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
6574         default defs at the entry point.
6575         (dump_part_var_map): New.
6576         (compute_optimized_partition_bases): New, called by...
6577         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
6578         of compute_samebase_partition_bases.  Adjust.
6579         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
6580         * cfgexpand.c (leader_merge): New.
6581         (get_rtl_for_parm_ssa_default_def): New.
6582         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
6583         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
6584         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
6585         redundant MEM attr setting.
6586         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
6587         from...
6588         (expand_one_stack_var): ... this.  New wrapper to check and
6589         skip already expanded SSA partitions.
6590         (record_alignment_for_reg_var): New, factored out of...
6591         (expand_one_var): ... this.
6592         (expand_one_ssa_partition): New.
6593         (adjust_one_expanded_partition_var): New.
6594         (expand_one_register_var): Check and skip already expanded SSA
6595         partitions.
6596         (expand_used_vars): Don't create DECLs for anonymous SSA
6597         names.  Expand all SSA partitions, then adjust all SSA names.
6598         (pass::execute): Replace the loops that set
6599         SA.partition_to_pseudo from partition leaders and cleared
6600         DECL_RTL for multi-location variables, and that which used to
6601         rename vars and set attrs, with one that clears DECL_RTL and
6602         checks that PARMs and RESULTs default_defs match DECL_RTL.
6603         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
6604         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
6605         * explow.c (promote_ssa_mode): New.
6606         * explow.h (promote_ssa_mode): Declare.
6607         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
6608         * function.c: Include cfgexpand.h.
6609         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
6610         (use_register_for_parm_decl): Wrapper for the above to
6611         special-case the result_ptr.
6612         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
6613         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
6614         multiple locations.
6615         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
6616         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
6617         (assign_parm_setup_block): Prefer SSA-assigned location.
6618         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
6619         if stack_parm is NULL.
6620         (assign_parm_setup_stack): Prefer SSA-assigned location.
6621         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
6622         rtl before testing for pointer bounds.  Special-case result_ptr.
6623         (expand_function_start): Maybe reset DECL_RTL of result.
6624         Prefer SSA-assigned location for result and static chain.
6625         Factor out DECL_RESULT and SET_DECL_RTL.
6626         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
6627         anonymous SSA names.  Use promote_ssa_mode.
6628         (get_temp_reg): Likewise.
6629         (remove_ssa_form): Adjust.
6630         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
6631         and get its reg_usage for reg invalidation.
6632         (compute_bb_dataflow): Pass it insn.
6633         (emit_notes_in_bb): Likewise.
6634         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
6635         fail assert on conversion between unsigned types.
6636
6637 2015-06-09  Tom de Vries  <tom@codesourcery.com>
6638
6639         PR tree-optimization/65460
6640         * omp-low.c (expand_omp_target): Set parallelized_function on
6641         cgraph_node for child_fn.
6642
6643 2015-06-09  Tom de Vries  <tom@codesourcery.com>
6644
6645         * omp-low.c (finalize_task_copyfn, expand_omp_taskreg): Mark function
6646         parallelized_function before add_new_function.
6647
6648 2015-06-09  Andrew MacLeod  <amacleod@redhat.com>
6649
6650         * gcc-plugin.h: Move decls to plugin.h and include it.
6651         * plugin.h: Relocate decls from gcc-plugin.h
6652         * ggc-page.c: Include required header files.
6653         * passes.c: Likewise.
6654         * cgraphunit.c: Likewise.
6655
6656 2015-06-09  Tom de Vries  <tom@codesourcery.com>
6657
6658         * tree-stdarg.c (expand_ifn_va_arg_1): Handle location.
6659
6660 2015-06-09  Jason Merrill  <jason@redhat.com>
6661
6662         PR bootstrap/66448
6663         * toplev.c (check_global_declaration): Don't warn about a clone.
6664
6665 2015-06-09  Marek Polacek  <polacek@redhat.com>
6666
6667         PR tree-optimization/66299
6668         * match.pd ((CST1 << A) == CST2 -> A == ctz (CST2) - ctz (CST1)
6669         ((CST1 << A) != CST2 -> A != ctz (CST2) - ctz (CST1)): New
6670         patterns.
6671
6672 2015-06-09  Richard Biener  <rguenther@suse.de>
6673
6674         * tree-vect-slp.c (vect_build_slp_tree_1): Remove bailout on gaps.
6675         (vect_analyze_slp_instance): Instead do not falsely drop
6676         load permutations.
6677
6678 2015-06-09  Richard Biener  <rguenther@suse.de>
6679
6680         PR middle-end/66423
6681         * match.pd: Handle A % (unsigned)(1 << B).
6682
6683 2015-06-09  Aldy Hernandez  <aldyh@redhat.com>
6684
6685         * varasm.c (output_object_block_htab): Remove.
6686         (output_object_block_compare): New.
6687         (output_object_blocks): Sort named object_blocks before outputting
6688         them.
6689
6690 2015-06-09  Richard Biener  <rguenther@suse.de>
6691
6692         PR tree-optimization/66419
6693         * tree-vect-slp.c (vect_supported_load_permutation_p): Properly
6694         consider GROUP_GAP when detecting a perfect subchain.
6695
6696 2015-06-09  Nick Clifton  <nickc@redhat.com>
6697
6698         * config/rl78/rl78.c (rl78_select_section): When -mes0 is active
6699         place read only data in the .frodata section.
6700
6701 2015-06-09  Shiva Chen  <shiva0217@gmail.com>
6702
6703         * sync.md (atomic_load<mode>): Add conditional code for lda/ldr
6704         (atomic_store<mode>): Likewise.
6705
6706 2015-06-09  Richard Biener  <rguenther@suse.de>
6707
6708         * cfgloop.c (get_loop_body_in_bfs_order): Fix assert.
6709
6710 2015-06-09  Richard Biener  <rguenther@suse.de>
6711
6712         PR middle-end/66413
6713         * tree-inline.c (insert_init_debug_bind): Unshare value.
6714
6715 2015-06-09  Richard Biener  <rguenther@suse.de>
6716
6717         PR tree-optimization/66396
6718         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
6719         Rename virtual operands.
6720
6721 2015-06-09  Tom de Vries  <tom@codesourcery.com>
6722
6723         * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Don't
6724         always return false.
6725
6726 2015-06-09  Alexandre Oliva <aoliva@redhat.com>
6727
6728         PR rtl-optimization/64164
6729         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
6730         * tree-ssa-copyrename.c: Removed.
6731         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
6732         -ftree-coalesce-vars.
6733         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
6734         * common.opt (ftree-copyrename): Ignore.
6735         (ftree-coalesce-inlined-vars): Likewise.
6736         * doc/invoke.texi: Remove the ignored options above.
6737         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
6738         * tree-ssa-coalesce.h: ... here.
6739         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
6740         headers required by it.
6741         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
6742         across variables when flag_tree_coalesce_vars.  Check register
6743         use and promoted modes to allow coalescing.  Moved to
6744         tree-ssa-coalesce.c.
6745         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
6746         with its member functions to tree-ssa-coalesce.c.
6747         (var_map_base_init): Likewise.  Renamed to
6748         compute_samebase_partition_bases.
6749         (partition_view_normal): Drop want_bases parameter.
6750         (partition_view_bitmap): Likewise.
6751         * tree-ssa-live.h: Adjust declarations.
6752         * tree-ssa-coalesce.c: Include explow.h.
6753         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
6754         default defs at the entry point.
6755         (dump_part_var_map): New.
6756         (compute_optimized_partition_bases): New, called by...
6757         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
6758         of compute_samebase_partition_bases.  Adjust.
6759         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
6760         * cfgexpand.c (leader_merge): New.
6761         (get_rtl_for_parm_ssa_default_def): New.
6762         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
6763         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
6764         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
6765         redundant MEM attr setting.
6766         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
6767         from...
6768         (expand_one_stack_var): ... this.  New wrapper to check and
6769         skip already expanded SSA partitions.
6770         (record_alignment_for_reg_var): New, factored out of...
6771         (expand_one_var): ... this.
6772         (expand_one_ssa_partition): New.
6773         (adjust_one_expanded_partition_var): New.
6774         (expand_one_register_var): Check and skip already expanded SSA
6775         partitions.
6776         (expand_used_vars): Don't create DECLs for anonymous SSA
6777         names.  Expand all SSA partitions, then adjust all SSA names.
6778         (pass::execute): Replace the loops that set
6779         SA.partition_to_pseudo from partition leaders and cleared
6780         DECL_RTL for multi-location variables, and that which used to
6781         rename vars and set attrs, with one that clears DECL_RTL and
6782         checks that PARMs and RESULTs default_defs match DECL_RTL.
6783         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
6784         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
6785         * explow.c (promote_ssa_mode): New.
6786         * explow.h (promote_ssa_mode): Declare.
6787         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
6788         * function.c: Include cfgexpand.h.
6789         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
6790         (use_register_for_parm_decl): Wrapper for the above to
6791         special-case the result_ptr.
6792         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
6793         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
6794         multiple locations.
6795         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
6796         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
6797         (assign_parm_setup_block): Prefer SSA-assigned location.
6798         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
6799         if stack_parm is NULL.
6800         (assign_parm_setup_stack): Prefer SSA-assigned location.
6801         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
6802         rtl before testing for pointer bounds.  Special-case result_ptr.
6803         (expand_function_start): Maybe reset DECL_RTL of result.
6804         Prefer SSA-assigned location for result and static chain.
6805         Factor out DECL_RESULT and SET_DECL_RTL.
6806         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
6807         anonymous SSA names.  Use promote_ssa_mode.
6808         (get_temp_reg): Likewise.
6809         (remove_ssa_form): Adjust.
6810         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
6811         and get its reg_usage for reg invalidation.
6812         (compute_bb_dataflow): Pass it insn.
6813         (emit_notes_in_bb): Likewise.
6814         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
6815         fail assert on conversion between unsigned types.
6816
6817 2015-06-09  Alexandre Oliva <aoliva@redhat.com>
6818
6819         PR debug/58315
6820         * tree-inline.c (reset_debug_binding): New.
6821         (reset_debug_bindings): Likewise.
6822         (expand_call_inline): Call it.
6823
6824 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
6825
6826         * tree.c (gimple_canonical_types_compatible_p): Drop comparsion of
6827         TYPE_STRING_FLAG.
6828
6829 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
6830
6831         * lto-streamer-out.c (lto_output_location): Stream
6832         reserved locations correctly.
6833         * lto-streamer-in.c (lto_output_location): Likewise.
6834
6835 2015-06-08  Andrew MacLeod  <amacleod@redhat.com>
6836
6837         * coretypes.h: Include hash-table.h and hash-set.h for host files.
6838         * ggc.h: Don't include statistics.h>
6839         * hash-map.h: Remove all includes.
6840         * hash-set.h: Likewise.
6841         * hash-table.h: Add statistics.h, inchash.h and hash-map-traits.h to
6842         the include list. Remove <new>.
6843         * inchash.h: Remove all includes.
6844         * mem-stats.h: Likewise.
6845         * vec.h: No special processing for generators or ggc.
6846         * alias.c : Adjust include files.
6847         * alloc-pool.c : Likewise.
6848         * alloc-pool.h : Likewise.
6849         * asan.c : Likewise.
6850         * attribs.c : Likewise.
6851         * auto-inc-dec.c : Likewise.
6852         * auto-profile.c : Likewise.
6853         * bb-reorder.c : Likewise.
6854         * bitmap.c : Likewise.
6855         * bitmap.h : Likewise.
6856         * bt-load.c : Likewise.
6857         * builtins.c : Likewise.
6858         * caller-save.c : Likewise.
6859         * calls.c : Likewise.
6860         * ccmp.c : Likewise.
6861         * cfg.c : Likewise.
6862         * cfganal.c : Likewise.
6863         * cfgbuild.c : Likewise.
6864         * cfgcleanup.c : Likewise.
6865         * cfgexpand.c : Likewise.
6866         * cfghooks.c : Likewise.
6867         * cfgloop.c : Likewise.
6868         * cfgloop.h : Likewise.
6869         * cfgloopanal.c : Likewise.
6870         * cfgloopmanip.c : Likewise.
6871         * cfgrtl.c : Likewise.
6872         * cgraph.c : Likewise.
6873         * cgraphbuild.c : Likewise.
6874         * cgraphclones.c : Likewise.
6875         * cgraphunit.c : Likewise.
6876         * cilk-common.c : Likewise.
6877         * combine-stack-adj.c : Likewise.
6878         * combine.c : Likewise.
6879         * compare-elim.c : Likewise.
6880         * context.c : Likewise.
6881         * convert.c : Likewise.
6882         * coverage.c : Likewise.
6883         * cppbuiltin.c : Likewise.
6884         * cprop.c : Likewise.
6885         * cse.c : Likewise.
6886         * cselib.c : Likewise.
6887         * data-streamer-in.c : Likewise.
6888         * data-streamer-out.c : Likewise.
6889         * data-streamer.c : Likewise.
6890         * data-streamer.h : Likewise.
6891         * dbxout.c : Likewise.
6892         * dce.c : Likewise.
6893         * ddg.c : Likewise.
6894         * debug.c : Likewise.
6895         * df-core.c : Likewise.
6896         * df-problems.c : Likewise.
6897         * df-scan.c : Likewise.
6898         * df.h : Likewise.
6899         * dfp.c : Likewise.
6900         * dojump.c : Likewise.
6901         * dominance.c : Likewise.
6902         * domwalk.c : Likewise.
6903         * double-int.c : Likewise.
6904         * dse.c : Likewise.
6905         * dumpfile.c : Likewise.
6906         * dwarf2asm.c : Likewise.
6907         * dwarf2cfi.c : Likewise.
6908         * dwarf2out.c : Likewise.
6909         * emit-rtl.c : Likewise.
6910         * et-forest.c : Likewise.
6911         * except.c : Likewise.
6912         * except.h : Likewise.
6913         * explow.c : Likewise.
6914         * expmed.c : Likewise.
6915         * expr.c : Likewise.
6916         * final.c : Likewise.
6917         * fixed-value.c : Likewise.
6918         * fold-const.c : Likewise.
6919         * function.c : Likewise.
6920         * fwprop.c : Likewise.
6921         * gcc-plugin.h : Likewise.
6922         * gcc.c : Likewise.
6923         * gcse-common.c : Likewise.
6924         * gcse.c : Likewise.
6925         * genattrtab.c : Likewise.
6926         * genautomata.c : Likewise.
6927         * genconditions.c : Likewise.
6928         * genemit.c : Likewise.
6929         * generic-match-head.c : Likewise.
6930         * genextract.c : Likewise.
6931         * gengtype-state.c : Likewise.
6932         * gengtype.c : Likewise.
6933         * genhooks.c : Likewise.
6934         * genmatch.c : Likewise.
6935         * genmodes.c : Likewise.
6936         * genrecog.c : Likewise.
6937         * gensupport.c : Likewise.
6938         * ggc-common.c : Likewise.
6939         * ggc-internal.h : Likewise.
6940         * ggc-none.c : Likewise.
6941         * ggc-page.c : Likewise.
6942         * gimple-builder.c : Likewise.
6943         * gimple-expr.c : Likewise.
6944         * gimple-fold.c : Likewise.
6945         * gimple-iterator.c : Likewise.
6946         * gimple-low.c : Likewise.
6947         * gimple-match-head.c : Likewise.
6948         * gimple-pretty-print.c : Likewise.
6949         * gimple-ssa-isolate-paths.c : Likewise.
6950         * gimple-ssa-strength-reduction.c : Likewise.
6951         * gimple-ssa.h : Likewise.
6952         * gimple-streamer-in.c : Likewise.
6953         * gimple-streamer-out.c : Likewise.
6954         * gimple-streamer.h : Likewise.
6955         * gimple-walk.c : Likewise.
6956         * gimple.c : Likewise.
6957         * gimplify-me.c : Likewise.
6958         * gimplify.c : Likewise.
6959         * godump.c : Likewise.
6960         * graph.c : Likewise.
6961         * graphds.c : Likewise.
6962         * graphite-blocking.c : Likewise.
6963         * graphite-dependences.c : Likewise.
6964         * graphite-interchange.c : Likewise.
6965         * graphite-isl-ast-to-gimple.c : Likewise.
6966         * graphite-optimize-isl.c : Likewise.
6967         * graphite-poly.c : Likewise.
6968         * graphite-scop-detection.c : Likewise.
6969         * graphite-sese-to-poly.c : Likewise.
6970         * graphite.c : Likewise.
6971         * haifa-sched.c : Likewise.
6972         * hard-reg-set.h : Likewise.
6973         * hw-doloop.c : Likewise.
6974         * ifcvt.c : Likewise.
6975         * inchash.c : Likewise.
6976         * incpath.c : Likewise.
6977         * init-regs.c : Likewise.
6978         * input.c : Likewise.
6979         * internal-fn.c : Likewise.
6980         * ipa-chkp.c : Likewise.
6981         * ipa-comdats.c : Likewise.
6982         * ipa-cp.c : Likewise.
6983         * ipa-devirt.c : Likewise.
6984         * ipa-icf-gimple.c : Likewise.
6985         * ipa-icf.c : Likewise.
6986         * ipa-inline-analysis.c : Likewise.
6987         * ipa-inline-transform.c : Likewise.
6988         * ipa-inline.c : Likewise.
6989         * ipa-polymorphic-call.c : Likewise.
6990         * ipa-profile.c : Likewise.
6991         * ipa-prop.c : Likewise.
6992         * ipa-pure-const.c : Likewise.
6993         * ipa-ref.c : Likewise.
6994         * ipa-reference.c : Likewise.
6995         * ipa-split.c : Likewise.
6996         * ipa-utils.c : Likewise.
6997         * ipa-visibility.c : Likewise.
6998         * ipa.c : Likewise.
6999         * ira-build.c : Likewise.
7000         * ira-color.c : Likewise.
7001         * ira-conflicts.c : Likewise.
7002         * ira-costs.c : Likewise.
7003         * ira-emit.c : Likewise.
7004         * ira-lives.c : Likewise.
7005         * ira.c : Likewise.
7006         * jump.c : Likewise.
7007         * langhooks.c : Likewise.
7008         * lcm.c : Likewise.
7009         * libfuncs.h : Likewise.
7010         * lists.c : Likewise.
7011         * loop-doloop.c : Likewise.
7012         * loop-init.c : Likewise.
7013         * loop-invariant.c : Likewise.
7014         * loop-iv.c : Likewise.
7015         * loop-unroll.c : Likewise.
7016         * lower-subreg.c : Likewise.
7017         * lra-assigns.c : Likewise.
7018         * lra-coalesce.c : Likewise.
7019         * lra-constraints.c : Likewise.
7020         * lra-eliminations.c : Likewise.
7021         * lra-lives.c : Likewise.
7022         * lra-remat.c : Likewise.
7023         * lra-spills.c : Likewise.
7024         * lra.c : Likewise.
7025         * lto-cgraph.c : Likewise.
7026         * lto-compress.c : Likewise.
7027         * lto-opts.c : Likewise.
7028         * lto-section-in.c : Likewise.
7029         * lto-section-out.c : Likewise.
7030         * lto-streamer-in.c : Likewise.
7031         * lto-streamer-out.c : Likewise.
7032         * lto-streamer.c : Likewise.
7033         * lto-streamer.h : Likewise.
7034         * mcf.c : Likewise.
7035         * mode-switching.c : Likewise.
7036         * modulo-sched.c : Likewise.
7037         * omega.c : Likewise.
7038         * omp-low.c : Likewise.
7039         * optabs.c : Likewise.
7040         * opts-global.c : Likewise.
7041         * opts.h : Likewise.
7042         * passes.c : Likewise.
7043         * plugin.c : Likewise.
7044         * postreload-gcse.c : Likewise.
7045         * postreload.c : Likewise.
7046         * predict.c : Likewise.
7047         * print-rtl.c : Likewise.
7048         * print-tree.c : Likewise.
7049         * profile.c : Likewise.
7050         * read-md.c : Likewise.
7051         * read-md.h : Likewise.
7052         * read-rtl.c : Likewise.
7053         * real.c : Likewise.
7054         * realmpfr.c : Likewise.
7055         * recog.c : Likewise.
7056         * ree.c : Likewise.
7057         * reg-stack.c : Likewise.
7058         * regcprop.c : Likewise.
7059         * reginfo.c : Likewise.
7060         * regrename.c : Likewise.
7061         * regstat.c : Likewise.
7062         * reload.c : Likewise.
7063         * reload1.c : Likewise.
7064         * reorg.c : Likewise.
7065         * resource.c : Likewise.
7066         * rtl-chkp.c : Likewise.
7067         * rtl.c : Likewise.
7068         * rtl.h : Likewise.
7069         * rtlanal.c : Likewise.
7070         * rtlhash.c : Likewise.
7071         * rtlhash.h : Likewise.
7072         * rtlhooks.c : Likewise.
7073         * sanopt.c : Likewise.
7074         * sched-deps.c : Likewise.
7075         * sched-ebb.c : Likewise.
7076         * sched-rgn.c : Likewise.
7077         * sched-vis.c : Likewise.
7078         * sdbout.c : Likewise.
7079         * sel-sched-dump.c : Likewise.
7080         * sel-sched-ir.c : Likewise.
7081         * sel-sched-ir.h : Likewise.
7082         * sel-sched.c : Likewise.
7083         * sese.c : Likewise.
7084         * shrink-wrap.c : Likewise.
7085         * shrink-wrap.h : Likewise.
7086         * simplify-rtx.c : Likewise.
7087         * stack-ptr-mod.c : Likewise.
7088         * statistics.c : Likewise.
7089         * stmt.c : Likewise.
7090         * stor-layout.c : Likewise.
7091         * store-motion.c : Likewise.
7092         * stringpool.c : Likewise.
7093         * symtab.c : Likewise.
7094         * target-globals.c : Likewise.
7095         * targhooks.c : Likewise.
7096         * tlink.c : Likewise.
7097         * toplev.c : Likewise.
7098         * tracer.c : Likewise.
7099         * trans-mem.c : Likewise.
7100         * tree-affine.c : Likewise.
7101         * tree-affine.h : Likewise.
7102         * tree-browser.c : Likewise.
7103         * tree-call-cdce.c : Likewise.
7104         * tree-cfg.c : Likewise.
7105         * tree-cfgcleanup.c : Likewise.
7106         * tree-chkp-opt.c : Likewise.
7107         * tree-chkp.c : Likewise.
7108         * tree-chrec.c : Likewise.
7109         * tree-complex.c : Likewise.
7110         * tree-data-ref.c : Likewise.
7111         * tree-dfa.c : Likewise.
7112         * tree-diagnostic.c : Likewise.
7113         * tree-dump.c : Likewise.
7114         * tree-eh.c : Likewise.
7115         * tree-eh.h : Likewise.
7116         * tree-emutls.c : Likewise.
7117         * tree-hasher.h : Likewise.
7118         * tree-if-conv.c : Likewise.
7119         * tree-inline.c : Likewise.
7120         * tree-inline.h : Likewise.
7121         * tree-into-ssa.c : Likewise.
7122         * tree-iterator.c : Likewise.
7123         * tree-loop-distribution.c : Likewise.
7124         * tree-nested.c : Likewise.
7125         * tree-nrv.c : Likewise.
7126         * tree-object-size.c : Likewise.
7127         * tree-outof-ssa.c : Likewise.
7128         * tree-parloops.c : Likewise.
7129         * tree-phinodes.c : Likewise.
7130         * tree-predcom.c : Likewise.
7131         * tree-pretty-print.c : Likewise.
7132         * tree-profile.c : Likewise.
7133         * tree-scalar-evolution.c : Likewise.
7134         * tree-sra.c : Likewise.
7135         * tree-ssa-address.c : Likewise.
7136         * tree-ssa-alias.c : Likewise.
7137         * tree-ssa-ccp.c : Likewise.
7138         * tree-ssa-coalesce.c : Likewise.
7139         * tree-ssa-copy.c : Likewise.
7140         * tree-ssa-copyrename.c : Likewise.
7141         * tree-ssa-dce.c : Likewise.
7142         * tree-ssa-dom.c : Likewise.
7143         * tree-ssa-dse.c : Likewise.
7144         * tree-ssa-forwprop.c : Likewise.
7145         * tree-ssa-ifcombine.c : Likewise.
7146         * tree-ssa-live.c : Likewise.
7147         * tree-ssa-loop-ch.c : Likewise.
7148         * tree-ssa-loop-im.c : Likewise.
7149         * tree-ssa-loop-ivcanon.c : Likewise.
7150         * tree-ssa-loop-ivopts.c : Likewise.
7151         * tree-ssa-loop-manip.c : Likewise.
7152         * tree-ssa-loop-niter.c : Likewise.
7153         * tree-ssa-loop-prefetch.c : Likewise.
7154         * tree-ssa-loop-unswitch.c : Likewise.
7155         * tree-ssa-loop.c : Likewise.
7156         * tree-ssa-math-opts.c : Likewise.
7157         * tree-ssa-operands.c : Likewise.
7158         * tree-ssa-phiopt.c : Likewise.
7159         * tree-ssa-phiprop.c : Likewise.
7160         * tree-ssa-pre.c : Likewise.
7161         * tree-ssa-propagate.c : Likewise.
7162         * tree-ssa-reassoc.c : Likewise.
7163         * tree-ssa-sccvn.c : Likewise.
7164         * tree-ssa-scopedtables.c : Likewise.
7165         * tree-ssa-sink.c : Likewise.
7166         * tree-ssa-strlen.c : Likewise.
7167         * tree-ssa-structalias.c : Likewise.
7168         * tree-ssa-tail-merge.c : Likewise.
7169         * tree-ssa-ter.c : Likewise.
7170         * tree-ssa-threadedge.c : Likewise.
7171         * tree-ssa-threadupdate.c : Likewise.
7172         * tree-ssa-uncprop.c : Likewise.
7173         * tree-ssa-uninit.c : Likewise.
7174         * tree-ssa.c : Likewise.
7175         * tree-ssanames.c : Likewise.
7176         * tree-stdarg.c : Likewise.
7177         * tree-streamer-in.c : Likewise.
7178         * tree-streamer-out.c : Likewise.
7179         * tree-streamer.c : Likewise.
7180         * tree-streamer.h : Likewise.
7181         * tree-switch-conversion.c : Likewise.
7182         * tree-tailcall.c : Likewise.
7183         * tree-vect-data-refs.c : Likewise.
7184         * tree-vect-generic.c : Likewise.
7185         * tree-vect-loop-manip.c : Likewise.
7186         * tree-vect-loop.c : Likewise.
7187         * tree-vect-patterns.c : Likewise.
7188         * tree-vect-slp.c : Likewise.
7189         * tree-vect-stmts.c : Likewise.
7190         * tree-vectorizer.c : Likewise.
7191         * tree-vectorizer.h : Likewise.
7192         * tree-vrp.c : Likewise.
7193         * tree.c : Likewise.
7194         * tsan.c : Likewise.
7195         * ubsan.c : Likewise.
7196         * valtrack.c : Likewise.
7197         * valtrack.h : Likewise.
7198         * value-prof.c : Likewise.
7199         * var-tracking.c : Likewise.
7200         * varasm.c : Likewise.
7201         * varpool.c : Likewise.
7202         * vec.c: Likewise.
7203         * vmsdbgout.c : Likewise.
7204         * vtable-verify.c : Likewise.
7205         * vtable-verify.h : Likewise.
7206         * web.c : Likewise.
7207         * wide-int.cc : Likewise.
7208         * xcoffout.c : Likewise.
7209         * config/aarch64/aarch64-builtins.c : Likewise.
7210         * config/aarch64/aarch64.c : Likewise.
7211         * config/aarch64/cortex-a57-fma-steering.c : Likewise.
7212         * config/alpha/alpha.c : Likewise.
7213         * config/arc/arc.c : Likewise.
7214         * config/arm/aarch-common.c : Likewise.
7215         * config/arm/arm-builtins.c : Likewise.
7216         * config/arm/arm-c.c : Likewise.
7217         * config/arm/arm.c : Likewise.
7218         * config/avr/avr-c.c : Likewise.
7219         * config/avr/avr-log.c : Likewise.
7220         * config/avr/avr.c : Likewise.
7221         * config/bfin/bfin.c : Likewise.
7222         * config/c6x/c6x.c : Likewise.
7223         * config/cr16/cr16.c : Likewise.
7224         * config/cris/cris.c : Likewise.
7225         * config/darwin-c.c : Likewise.
7226         * config/darwin.c : Likewise.
7227         * config/default-c.c : Likewise.
7228         * config/epiphany/epiphany.c : Likewise.
7229         * config/epiphany/mode-switch-use.c : Likewise.
7230         * config/epiphany/resolve-sw-modes.c : Likewise.
7231         * config/fr30/fr30.c : Likewise.
7232         * config/frv/frv.c : Likewise.
7233         * config/ft32/ft32.c : Likewise.
7234         * config/glibc-c.c : Likewise.
7235         * config/h8300/h8300.c : Likewise.
7236         * config/i386/i386-c.c : Likewise.
7237         * config/i386/i386.c : Likewise.
7238         * config/i386/msformat-c.c : Likewise.
7239         * config/i386/winnt-cxx.c : Likewise.
7240         * config/i386/winnt-stubs.c : Likewise.
7241         * config/i386/winnt.c : Likewise.
7242         * config/ia64/ia64-c.c : Likewise.
7243         * config/ia64/ia64.c : Likewise.
7244         * config/iq2000/iq2000.c : Likewise.
7245         * config/lm32/lm32.c : Likewise.
7246         * config/m32c/m32c-pragma.c : Likewise.
7247         * config/m32c/m32c.c : Likewise.
7248         * config/m32r/m32r.c : Likewise.
7249         * config/m68k/m68k.c : Likewise.
7250         * config/mcore/mcore.c : Likewise.
7251         * config/mep/mep-pragma.c : Likewise.
7252         * config/mep/mep.c : Likewise.
7253         * config/microblaze/microblaze-c.c : Likewise.
7254         * config/microblaze/microblaze.c : Likewise.
7255         * config/mips/mips.c : Likewise.
7256         * config/mmix/mmix.c : Likewise.
7257         * config/mn10300/mn10300.c : Likewise.
7258         * config/moxie/moxie.c : Likewise.
7259         * config/msp430/msp430-c.c : Likewise.
7260         * config/msp430/msp430.c : Likewise.
7261         * config/nds32/nds32-cost.c : Likewise.
7262         * config/nds32/nds32-fp-as-gp.c : Likewise.
7263         * config/nds32/nds32-intrinsic.c : Likewise.
7264         * config/nds32/nds32-isr.c : Likewise.
7265         * config/nds32/nds32-md-auxiliary.c : Likewise.
7266         * config/nds32/nds32-memory-manipulation.c : Likewise.
7267         * config/nds32/nds32-pipelines-auxiliary.c : Likewise.
7268         * config/nds32/nds32-predicates.c : Likewise.
7269         * config/nds32/nds32.c : Likewise.
7270         * config/nios2/nios2.c : Likewise.
7271         * config/nvptx/nvptx.c : Likewise.
7272         * config/pa/pa.c : Likewise.
7273         * config/pdp11/pdp11.c : Likewise.
7274         * config/rl78/rl78-c.c : Likewise.
7275         * config/rl78/rl78.c : Likewise.
7276         * config/rs6000/rs6000-c.c : Likewise.
7277         * config/rs6000/rs6000.c : Likewise.
7278         * config/rx/rx.c : Likewise.
7279         * config/s390/s390-c.c : Likewise.
7280         * config/s390/s390.c : Likewise.
7281         * config/sh/sh-c.c : Likewise.
7282         * config/sh/sh-mem.cc : Likewise.
7283         * config/sh/sh.c : Likewise.
7284         * config/sh/sh_optimize_sett_clrt.cc : Likewise.
7285         * config/sh/sh_treg_combine.cc : Likewise.
7286         * config/sol2-c.c : Likewise.
7287         * config/sol2-cxx.c : Likewise.
7288         * config/sol2-stubs.c : Likewise.
7289         * config/sol2.c : Likewise.
7290         * config/sparc/sparc-c.c : Likewise.
7291         * config/sparc/sparc.c : Likewise.
7292         * config/spu/spu-c.c : Likewise.
7293         * config/spu/spu.c : Likewise.
7294         * config/stormy16/stormy16.c : Likewise.
7295         * config/tilegx/mul-tables.c : Likewise.
7296         * config/tilegx/tilegx-c.c : Likewise.
7297         * config/tilegx/tilegx.c : Likewise.
7298         * config/tilepro/mul-tables.c : Likewise.
7299         * config/tilepro/tilepro-c.c : Likewise.
7300         * config/tilepro/tilepro.c : Likewise.
7301         * config/v850/v850-c.c : Likewise.
7302         * config/v850/v850.c : Likewise.
7303         * config/vax/vax.c : Likewise.
7304         * config/visium/visium.c : Likewise.
7305         * config/vms/vms-c.c : Likewise.
7306         * config/vms/vms.c : Likewise.
7307         * config/vxworks.c : Likewise.
7308         * config/winnt-c.c : Likewise.
7309         * config/xtensa/xtensa.c : Likewise.
7310
7311 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
7312
7313         PR lto/65378
7314         * ipa-utils.h (warn_types_mismatch): Update prototype.
7315         * ipa-devirt.c (odr_types_equivalent_p): Add loc1/loc2
7316         parameters.
7317         (type_mismatch_p): New function.
7318         (warn_types_mismatch): Reorg to work better on non-C++ types.
7319         (odr_types_equivalent_p): Add loc1/loc2 parameters.
7320         (add_type_duplicate): Update.
7321
7322 2015-06-08  Tom de Vries  <tom@codesourcery.com>
7323
7324         PR rtl-optimization/66444
7325         * postreload.c (reload_combine): Use get_call_reg_set_usage instead of
7326         call_used_regs.
7327
7328 2015-06-08  Richard Biener  <rguenther@suse.de>
7329
7330         PR tree-optimization/66422
7331         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Split
7332         block after inserted gcc_unreachable.
7333
7334 2015-06-08  Nick Clifton  <nickc@redhat.com>
7335
7336         * config/rx/rx.c (rx_function_value): Do not promote vector types.
7337         (rx_promote_function_mode): Likewise.
7338         * config/rx/rx.h (LIBCALL_VALUE): Likewise.
7339
7340 2015-06-08  Jakub Jelinek  <jakub@redhat.com>
7341
7342         * genattrtab.c (insn_alternatives): Change type from int *
7343         to uint64_t *.
7344         (check_attr_test): Shift ((uint64_t) 1) instead of 1 up.
7345         (get_attr_value): Change type of num_alt to uint64_t.
7346         (compute_alternative_mask): Change return type from
7347         int to uint64_t, shift ((uint64_t) 1) instead of 1 up.
7348         (make_alternative_compare, mk_attr_alt): Change argument type
7349         from int to uint64_t.
7350         (simplify_test_exp): Change type of i from int to uint64_t.
7351         Shift ((uint64_t) 1) instead of 1 up.
7352         (main): Adjust oballocvec first argument from int to uint64_t.
7353         Shift ((uint64_t) 1) instead of 1 up.
7354
7355 2015-06-08  Jan Kratochvil  <jan.kratochvil@redhat.com>
7356
7357         PR other/65366
7358         * gdbhooks.py: Import sys.
7359         (intptr): New function.  Replace int(...) by intptr(...).
7360
7361 2015-06-08  Richard Biener  <rguenther@suse.de>
7362
7363         * tree-vect-stmts.c (vectorizable_load): Compute the pointer
7364         adjustment for gaps at the end of a SLP load group properly.
7365         * tree-vect-slp.c (vect_supported_load_permutation_p): Allow
7366         all permutations we can generate.
7367         (vect_transform_slp_perm_load): Use the correct group-size.
7368
7369 2015-06-08  Marc Glisse  <marc.glisse@inria.fr>
7370
7371         * genmatch.c (expr::gen_transform): For conditions, guess the type
7372         from the second operand.
7373
7374 2015-06-08  Tom de Vries  <tom@codesourcery.com>
7375
7376         PR tree-optimization/66442
7377         * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Add function.
7378         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Return false
7379         if the loop latch is not a singleton.  Use
7380         gimple_seq_nondebug_singleton_p instead of gimple_seq_singleton_p.
7381
7382 2015-06-08  Marek Polacek  <polacek@redhat.com>
7383
7384         PR sanitizer/66452
7385         * toplev.c (check_global_declaration): Don't warn about artificial
7386         decls.
7387
7388 2015-06-08  Tom de Vries  <tom@codesourcery.com>
7389
7390         PR tree-optimization/66436
7391         * cgraphunit.c (cgraph_node::analyze): Don't dump function to gimple
7392         dump file.
7393         * gimplify.c: Add tree-dump.h include.
7394         (gimplify_function_tree): Dump function to gimple dump file.
7395         * stor-layout.c (finalize_size_functions): Don't dump function to gimple
7396         dump file.
7397
7398 2015-06-08  Tom de Vries  <tom@codesourcery.com>
7399
7400         PR tree-optimization/66435
7401         * cgraphunit.c (cgraph_node::add_new_function): Dump message on new
7402         function.
7403
7404 2015-06-06  Jan Hubicka  <hubicka@ucw.cz>
7405
7406         * alias.c (get_alias_set): Be ready for TYPE_CANONICAL
7407         of ptr_type_node to not be ptr_to_node.
7408         * tree.c (gimple_types_compatible_p): Do not match TREE_CODE of
7409         TREE_TYPE of pointers.
7410         * gimple-expr.c (useless_type_conversion): Reorder the check for
7411         function pointers and TYPE_CANONICAL.
7412
7413 2015-06-06  John David Anglin  <danglin@gcc.gnu.org>
7414
7415         PR bootstrap/66319
7416         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Rearrange builtin
7417         defines.  Define _LARGEFILE_SOURCE and _LARGEFILE64_SOURCE for c++.
7418         Define _XOPEN_UNIX and _XOPEN_SOURCE_EXTENDED for c++ if unix95 or
7419         later.
7420         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Likewise.
7421         Define _INCLUDE_STDC_SOURCE_PRE_199901, _INCLUDE_STDC_SOURCE_199901,
7422         _INCLUDE_XOPEN_SOURCE_PRE_500, _INCLUDE_XOPEN_SOURCE_520,
7423         _INCLUDE_XOPEN_SOURCE_PRE_600 and _INCLUDE_XOPEN_SOURCE_600 for c++
7424         and non iso if unix2003.
7425
7426 2015-06-06  Aldy Hernandez  <aldyh@redhat.com>
7427
7428         * dwarf2out.c (gen_lexical_block_die): Initialize stmt_die.
7429
7430 2015-06-06  Richard Sandiford  <richard.sandiford@arm.com>
7431
7432         * emit-rtl.c, expr.c, gcse.c, optabs.c, optabs.h, print-rtl.c,
7433         rtl.h, bb-reorder.c, builtins.c, calls.c, cfgbuild.c, cfgexpand.c,
7434         cfgrtl.c, cilk-common.c, config/i386/i386.md, cse.c, dwarf2cfi.c,
7435         except.c, final.c, function.c, gcse-common.c, genemit.c,
7436         haifa-sched.c, ifcvt.c, jump.c, loop-invariant.c, loop-iv.c,
7437         lra-constraints.c, lra.c, reload1.c, resource.c, rtlanal.c,
7438         sched-deps.c, sched-ebb.c, sel-sched-ir.c, sel-sched.c,
7439         shrink-wrap.c, stmt.c, store-motion.c: Replace rtx base types with
7440         more derived ones.
7441
7442 2015-06-06  Mikhail Maltsev  <maltsevm@gmail.com>
7443
7444         * combine.c (combine_split_insns): Remove cast.
7445         * config/bfin/bfin.c (hwloop_fail): Add cast in try_split call.
7446         * config/sh/sh.c (sh_try_split_insn_simple): Remove cast.
7447         * config/sh/sh_treg_combine.cc (sh_treg_combine::execute): Add cast.
7448         * emit-rtl.c (try_split): Promote type of trial argument to rtx_insn.
7449         * genemit.c (gen_split): Change return type of generated functions to
7450         rtx_insn.
7451         * genrecog.c (get_failure_return): Use NULL instead of NULL_RTX.
7452         (print_subroutine_start): Promote rtx to rtx_insn in gen_split_* and
7453         gen_peephole2_* functions.
7454         (print_subroutine, main): Likewise.
7455         * recog.c (peephole2_optimize): Remove cast.
7456         (peep2_next_insn): Promote return type to rtx_insn.
7457         * recog.h (peep2_next_insn): Fix prototype.
7458         * rtl.h (try_split, split_insns): Likewise.
7459
7460 2015-06-06  DJ Delorie  <dj@redhat.com>
7461
7462         * config/msp430/msp430.c (msp430_asm_integer): Support addition
7463         and subtraction too.
7464
7465 2015-06-05  Kaz Kojima  <kkojima@gcc.gnu.org>
7466
7467         PR target/66410
7468         * config/sh/constraints.md (Sid, Ssd): New memory constraints.
7469         * config/sh/sh.md (*mov<mode>): Use Sid and Ssd alternatives
7470         instead of Snd.  Disparage Sid/z alternative with '^'.
7471
7472 2015-06-05  Aldy Hernandez  <aldyh@redhat.com>
7473
7474         * dwarf2out.c: Remove deferred_locations*.
7475         (dwarf2_debug_hooks): Add early_finish hook.
7476         Remove global_decl hook.
7477         Add early_global_decl and late_global_decl hook.
7478         New global early_dwarf.
7479         New structure set_early_dwarf.
7480         (output_die): Indicate whether a DIE was generated early
7481         when generating assembly with -dA.
7482         (struct limbo_die_struct): Document created_for field.
7483         Remove file_table_last_lookup.
7484         (remove_AT): Return TRUE if successful.
7485         (remove_child_TAG): Clear die_parent.
7486         (reparent_child): New function abstracted from...
7487         (splice_child_die): ...here.
7488         (new_die): ICE if a DIE ends up in limbo too late.
7489         (check_die): New.
7490         (defer_location): Remove.
7491         (add_subscript_info): Reuse DW_TAG_subrange_type if available.
7492         (fill_variable_array_bounds): New.
7493         (decl_start_label): Call fill_variable_array_bounds.
7494         (gen_formal_parameter_die): Rewrite to reuse previously generated
7495         DIEs.
7496         (gen_subprogram_die): Same.
7497         (gen_variable_die): Same.
7498         (gen_const_die): Same.
7499         (gen_label_die): Same.
7500         (gen_lexical_block_die): Same.
7501         (decl_will_get_specification_p): New.
7502         (local_function_static): New.
7503         (gen_struct_or_union_type_die): Fill in variable-length fields.
7504         (gen_typedef_die): Fill in variable-length typedefs.
7505         (gen_tagged_type_die): Gracefully return on error_mark_node.
7506         Handle re-entrancy.
7507         (gen_type_die_with_usage): Handle variable-length types.
7508         Remove duplicate code for ARRAY_TYPE case.
7509         (process_scope_var): Only process imported modules during early
7510         dwarf.
7511         (dwarf2out_early_global_decl): New.
7512         (dwarf2out_late_global_decl): Rename from dwarf2out_global_decl.
7513         (dwarf2out_type_decl): Set early_dwarf while calling
7514         dwarf2out_decl.
7515         (dwarf2out_decl): Verify that we did not recreate a previously
7516         generated DIE.
7517         Do not return on DECL_EXTERNALs in VAR_DECLs.
7518         Abstract some code to local_function_static.
7519         (lookup_filename): Remove use of file_table_last_lookup.
7520         Gracefully exit on missing file_name.
7521         (dwarf2out_finish): Verify limbo list.
7522         Remove deferred_locations_list use.
7523         Move deferred_asm_name and limbo flushing to...
7524         (dwarf2out_early_finish): ...here.  New.
7525         (dwarf2out_c_finalize): Remove set of deferred_location_list,
7526         deferred_asm_name, and file_table_last_lookup.
7527         * cgraph.h (referred_to_p): Add default argument.
7528         * cgraphunit.c (referred_to_p): Add and handle include_self
7529         argument.
7530         (analyze_functions): Add first_time argument.
7531         Call check_global_declaration for all symbols.
7532         Call late_global_decl for nodes for moribund nodes.
7533         (finalize_compilation_unit): Add new argument to
7534         analyze_functions.
7535         Call early_global_decl for functions.
7536         Call early_finish debug hook.
7537         * dbxout.c (dbxout_early_global_decl): New.
7538         (dbxout_late_global_decl): New.  Adapted from dbxout_global_decl.
7539         (dbx_debug_hooks): Add new hooks.
7540         (xcoff_debug_hooks): Same.
7541         * debug.c (do_nothing_debug_hooks): Add early_finish field.
7542         Add early and late debug hooks.
7543         Remove global_decl hook.
7544         * debug.h (struct gcc_debug_hooks): Add early_finish,
7545         early_global_decl, and late_global_decl fields.
7546         Remove global_decl field.
7547         Document gcc_debug_hooks.
7548         * gengtype.c (output_typename): Remove.
7549         * godump.c (go_early_global_decl): New.
7550         (go_late_global_decl): New.
7551         (go_global_decl): Remove.
7552         (dump_go_spec_init): Remove global_decl.  Add
7553         {early,late}_global_decl.
7554         * langhooks-def.h (LANG_HOOKS_WRITE_GLOBALS): Remove.
7555         (LANG_HOOKS_POST_COMPILATION_PARSING_CLEANUPS): New.
7556         * langhooks.c (lhd_warn_unused_global_decl): Adjust comment.
7557         (write_global_declarations): Remove.
7558         (global_decl_processing): New.
7559         * langhooks.h (struct lang_hooks_for_decls): Remove
7560         final_write_globals field.
7561         Add post_compilation_parsing_cleanups field.
7562         * passes.c (rest_of_decl_compilation): Call early_global_decl.
7563         * sdbout.c: Add early and late_global_decl hooks.  Remove
7564         sdbout_global_decl hook.
7565         Add early_finish field for sdb_debug_hooks.
7566         (sdbout_global_decl): Remove.
7567         (sdbout_early_global_decl): New.
7568         (sdbout_late_global_decl): New.
7569         * timevar.def (TV_PHASE_LATE_PARSING_CLEANUPS): New.
7570         * toplev.c (check_global_declaration): Rename from
7571         check_global_declaration_1.
7572         Adapt to use symtab infrastructure.
7573         (check_global_declarations): Remove.
7574         (emit_debug_global_declarations): Remove.
7575         (compile_file): Remove call to final_write_globals langhook.
7576         Run the actual compilation process.
7577         Perform any post compilation parser cleanups.
7578         Generate late debug info.
7579         * toplev.h (check_global_declaration): New.
7580         (check_global_declaration_1): Remove.
7581         (check_global_declarations): Remove.
7582         (write_global_declarations): Remove.
7583         (emit_debug_global_declarations): Remove.
7584         (global_decl_processing): New.
7585         * tree-core.h (struct tree_block): Add DIE field.
7586         * tree.h (BLOCK_DIE): New.
7587         * vmsdbgout.c (vmsdbgout_global_decl): Remove function and its use
7588         throughout.
7589         (vmsdbgout_early_global_decl): New.
7590         (vmsdbgout_late_global_decl): New.
7591         Add early_finish debug hook field to vmsdbg_debug_hooks.
7592         Remove vmsdbgout_decl to vmsdbgout_function_decl.
7593         Add early and late_global_decl debug hooks.
7594
7595 2015-06-05  Julian Brown  <julian@codesourcery.com>
7596             Sandra Loosemore  <sandra@codesourcery.com>
7597
7598         * config/print-sysroot-suffix.sh: Handle MULTILIB_REUSE settings.
7599         * config/t-sysroot-suffix (sysroot-suffix.h): Pass MULTILIB_REUSE
7600         to print-sysroot-suffix.sh script.
7601
7602 2015-06-05  Tom de Vries  <tom@codesourcery.com>
7603
7604         merge from gomp4 branch:
7605         2015-05-28  Tom de Vries  <tom@codesourcery.com>
7606
7607         PR tree-optimization/65443
7608         * tree-parloops.c (replace_imm_uses, replace_uses_in_bb_by)
7609         (replace_uses_in_bbs_by, transform_to_exit_first_loop_alt)
7610         (try_transform_to_exit_first_loop_alt): New function.
7611         (transform_to_exit_first_loop): Use
7612         try_transform_to_exit_first_loop_alt.
7613
7614 2015-06-05  James Greenhalgh  <james.greenhalgh@arm.com>
7615
7616         * builtins.c (expand_builtin_atomic_compare_exchange): Call
7617         emit_cmp_and_jump_insns with the mode of target.
7618
7619 2015-06-05  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
7620
7621         * config/i386/sse.md (sse3_mwait): Swap the operand constriants.
7622
7623 2015-06-04  DJ Delorie  <dj@redhat.com>
7624
7625         * config/msp430/msp430.md (movsi_s): New.  Special case for
7626         storing a 20-bit symbol into a 32-bit register.
7627         * config/msp430/msp430.c (msp430_subreg): Add support for it.
7628         * config/msp430/predicates.md (msp430_symbol_operand): New.
7629
7630 2015-06-04  Sriraman Tallam  <tmsriram@google.com>
7631
7632         * c-family/c-common.c (noplt): New attribute.
7633         (handle_noplt_attribute): New handler.
7634         * calls.c (prepare_call_address): Check for noplt
7635         attribute.
7636         * config/i386/i386.c (ix86_expand_call): Check
7637         for noplt attribute.
7638         (ix86_nopic_noplt_attribute_p): New function.
7639         (ix86_output_call_insn): Output indirect call for non-pic
7640         no plt calls.
7641         * doc/extend.texi (noplt): Document new attribute.
7642         * doc/invoke.texi: Document new attribute.
7643
7644 2015-06-04  Andrew MacLeod  <amacleod@redhat.com>
7645
7646         * coretypes.h: Include machmode.h, signop.h, wide-int.h, double-int.h,
7647         real.h, and fixed-value.h when included in host source files.
7648         * double-int.h: Remove redundant #includes listed above.
7649         * fixed-value.h: Likewise.
7650         * real.h: Likewise.
7651         * wide-int.h: Likewise.
7652         * inchash.h: Likewise.
7653         * rtl.h: Add some include files When included from a generator file.
7654         * target.h: Remove wide-int.h and insn-modes.h from the include list.
7655         * internal-fn.h: Don't include coretypes.h.
7656         * alias.c: Adjust includes for restructured coretypes.h.
7657         * asan.c: Likewise.
7658         * attribs.c: Likewise.
7659         * auto-inc-dec.c: Likewise.
7660         * auto-profile.c: Likewise.
7661         * bb-reorder.c: Likewise.
7662         * bt-load.c: Likewise.
7663         * builtins.c: Likewise.
7664         * caller-save.c: Likewise.
7665         * calls.c: Likewise.
7666         * ccmp.c: Likewise.
7667         * cfg.c: Likewise.
7668         * cfganal.c: Likewise.
7669         * cfgbuild.c: Likewise.
7670         * cfgcleanup.c: Likewise.
7671         * cfgexpand.c: Likewise.
7672         * cfghooks.c: Likewise.
7673         * cfgloop.c: Likewise.
7674         * cfgloop.h: Likewise.
7675         * cfgloopanal.c: Likewise.
7676         * cfgloopmanip.c: Likewise.
7677         * cfgrtl.c: Likewise.
7678         * cgraph.c: Likewise.
7679         * cgraphbuild.c: Likewise.
7680         * cgraphclones.c: Likewise.
7681         * cgraphunit.c: Likewise.
7682         * cilk-common.c: Likewise.
7683         * combine-stack-adj.c: Likewise.
7684         * combine.c: Likewise.
7685         * compare-elim.c: Likewise.
7686         * convert.c: Likewise.
7687         * coverage.c: Likewise.
7688         * cppbuiltin.c: Likewise.
7689         * cprop.c: Likewise.
7690         * cse.c: Likewise.
7691         * cselib.c: Likewise.
7692         * data-streamer-in.c: Likewise.
7693         * data-streamer-out.c: Likewise.
7694         * data-streamer.c: Likewise.
7695         * dbxout.c: Likewise.
7696         * dce.c: Likewise.
7697         * ddg.c: Likewise.
7698         * debug.c: Likewise.
7699         * df-core.c: Likewise.
7700         * df-problems.c: Likewise.
7701         * df-scan.c: Likewise.
7702         * df.h: Likewise.
7703         * dfp.c: Likewise.
7704         * dojump.c: Likewise.
7705         * dominance.c: Likewise.
7706         * domwalk.c: Likewise.
7707         * double-int.c: Likewise.
7708         * dse.c: Likewise.
7709         * dumpfile.c: Likewise.
7710         * dwarf2asm.c: Likewise.
7711         * dwarf2cfi.c: Likewise.
7712         * dwarf2out.c: Likewise.
7713         * dwarf2out.h: Likewise.
7714         * emit-rtl.c: Likewise.
7715         * et-forest.c: Likewise.
7716         * except.c: Likewise.
7717         * explow.c: Likewise.
7718         * expmed.c: Likewise.
7719         * expr.c: Likewise.
7720         * final.c: Likewise.
7721         * fixed-value.c: Likewise.
7722         * fold-const.c: Likewise.
7723         * function.c: Likewise.
7724         * fwprop.c: Likewise.
7725         * gcc-plugin.h: Likewise.
7726         * gcse.c: Likewise.
7727         * generic-match-head.c: Likewise.
7728         * ggc-page.c: Likewise.
7729         * gimple-builder.c: Likewise.
7730         * gimple-expr.c: Likewise.
7731         * gimple-fold.c: Likewise.
7732         * gimple-iterator.c: Likewise.
7733         * gimple-low.c: Likewise.
7734         * gimple-match-head.c: Likewise.
7735         * gimple-pretty-print.c: Likewise.
7736         * gimple-ssa-isolate-paths.c: Likewise.
7737         * gimple-ssa-strength-reduction.c: Likewise.
7738         * gimple-streamer-in.c: Likewise.
7739         * gimple-streamer-out.c: Likewise.
7740         * gimple-streamer.h: Likewise.
7741         * gimple-walk.c: Likewise.
7742         * gimple.c: Likewise.
7743         * gimplify-me.c: Likewise.
7744         * gimplify.c: Likewise.
7745         * godump.c: Likewise.
7746         * graph.c: Likewise.
7747         * graphite-blocking.c: Likewise.
7748         * graphite-dependences.c: Likewise.
7749         * graphite-interchange.c: Likewise.
7750         * graphite-isl-ast-to-gimple.c: Likewise.
7751         * graphite-optimize-isl.c: Likewise.
7752         * graphite-poly.c: Likewise.
7753         * graphite-scop-detection.c: Likewise.
7754         * graphite-sese-to-poly.c: Likewise.
7755         * graphite.c: Likewise.
7756         * haifa-sched.c: Likewise.
7757         * hooks.h: Likewise.
7758         * hw-doloop.c: Likewise.
7759         * ifcvt.c: Likewise.
7760         * incpath.c: Likewise.
7761         * init-regs.c: Likewise.
7762         * internal-fn.c: Likewise.
7763         * ipa-chkp.c: Likewise.
7764         * ipa-comdats.c: Likewise.
7765         * ipa-cp.c: Likewise.
7766         * ipa-devirt.c: Likewise.
7767         * ipa-icf-gimple.c: Likewise.
7768         * ipa-icf.c: Likewise.
7769         * ipa-inline-analysis.c: Likewise.
7770         * ipa-inline-transform.c: Likewise.
7771         * ipa-inline.c: Likewise.
7772         * ipa-polymorphic-call.c: Likewise.
7773         * ipa-profile.c: Likewise.
7774         * ipa-prop.c: Likewise.
7775         * ipa-pure-const.c: Likewise.
7776         * ipa-ref.c: Likewise.
7777         * ipa-reference.c: Likewise.
7778         * ipa-split.c: Likewise.
7779         * ipa-utils.c: Likewise.
7780         * ipa-visibility.c: Likewise.
7781         * ipa.c: Likewise.
7782         * ira-build.c: Likewise.
7783         * ira-color.c: Likewise.
7784         * ira-conflicts.c: Likewise.
7785         * ira-costs.c: Likewise.
7786         * ira-emit.c: Likewise.
7787         * ira-lives.c: Likewise.
7788         * ira.c: Likewise.
7789         * jump.c: Likewise.
7790         * langhooks.c: Likewise.
7791         * lcm.c: Likewise.
7792         * loop-doloop.c: Likewise.
7793         * loop-init.c: Likewise.
7794         * loop-invariant.c: Likewise.
7795         * loop-iv.c: Likewise.
7796         * loop-unroll.c: Likewise.
7797         * lower-subreg.c: Likewise.
7798         * lra-assigns.c: Likewise.
7799         * lra-coalesce.c: Likewise.
7800         * lra-constraints.c: Likewise.
7801         * lra-eliminations.c: Likewise.
7802         * lra-lives.c: Likewise.
7803         * lra-remat.c: Likewise.
7804         * lra-spills.c: Likewise.
7805         * lra.c: Likewise.
7806         * lto-cgraph.c: Likewise.
7807         * lto-compress.c: Likewise.
7808         * lto-opts.c: Likewise.
7809         * lto-section-in.c: Likewise.
7810         * lto-section-out.c: Likewise.
7811         * lto-streamer-in.c: Likewise.
7812         * lto-streamer-out.c: Likewise.
7813         * lto-streamer.c: Likewise.
7814         * mcf.c: Likewise.
7815         * mode-switching.c: Likewise.
7816         * modulo-sched.c: Likewise.
7817         * omega.c: Likewise.
7818         * omp-low.c: Likewise.
7819         * optabs.c: Likewise.
7820         * opts-global.c: Likewise.
7821         * passes.c: Likewise.
7822         * plugin.c: Likewise.
7823         * postreload-gcse.c: Likewise.
7824         * postreload.c: Likewise.
7825         * predict.c: Likewise.
7826         * print-rtl.c: Likewise.
7827         * print-tree.c: Likewise.
7828         * profile.c: Likewise.
7829         * real.c: Likewise.
7830         * realmpfr.c: Likewise.
7831         * realmpfr.h: Likewise.
7832         * recog.c: Likewise.
7833         * ree.c: Likewise.
7834         * reg-stack.c: Likewise.
7835         * regcprop.c: Likewise.
7836         * reginfo.c: Likewise.
7837         * regrename.c: Likewise.
7838         * regs.h: Likewise.
7839         * regstat.c: Likewise.
7840         * reload.c: Likewise.
7841         * reload1.c: Likewise.
7842         * reorg.c: Likewise.
7843         * resource.c: Likewise.
7844         * rtl-chkp.c: Likewise.
7845         * rtlanal.c: Likewise.
7846         * rtlhooks.c: Likewise.
7847         * sanopt.c: Likewise.
7848         * sched-deps.c: Likewise.
7849         * sched-ebb.c: Likewise.
7850         * sched-rgn.c: Likewise.
7851         * sched-vis.c: Likewise.
7852         * sdbout.c: Likewise.
7853         * sel-sched-dump.c: Likewise.
7854         * sel-sched-ir.c: Likewise.
7855         * sel-sched.c: Likewise.
7856         * sese.c: Likewise.
7857         * shrink-wrap.c: Likewise.
7858         * shrink-wrap.h: Likewise.
7859         * simplify-rtx.c: Likewise.
7860         * stack-ptr-mod.c: Likewise.
7861         * statistics.c: Likewise.
7862         * stmt.c: Likewise.
7863         * stor-layout.c: Likewise.
7864         * store-motion.c: Likewise.
7865         * stringpool.c: Likewise.
7866         * symtab.c: Likewise.
7867         * target-globals.c: Likewise.
7868         * targhooks.c: Likewise.
7869         * toplev.c: Likewise.
7870         * tracer.c: Likewise.
7871         * trans-mem.c: Likewise.
7872         * tree-affine.c: Likewise.
7873         * tree-affine.h: Likewise.
7874         * tree-browser.c: Likewise.
7875         * tree-call-cdce.c: Likewise.
7876         * tree-cfg.c: Likewise.
7877         * tree-cfgcleanup.c: Likewise.
7878         * tree-chkp-opt.c: Likewise.
7879         * tree-chkp.c: Likewise.
7880         * tree-chrec.c: Likewise.
7881         * tree-complex.c: Likewise.
7882         * tree-data-ref.c: Likewise.
7883         * tree-dfa.c: Likewise.
7884         * tree-diagnostic.c: Likewise.
7885         * tree-dump.c: Likewise.
7886         * tree-eh.c: Likewise.
7887         * tree-emutls.c: Likewise.
7888         * tree-if-conv.c: Likewise.
7889         * tree-inline.c: Likewise.
7890         * tree-into-ssa.c: Likewise.
7891         * tree-iterator.c: Likewise.
7892         * tree-loop-distribution.c: Likewise.
7893         * tree-nested.c: Likewise.
7894         * tree-nrv.c: Likewise.
7895         * tree-object-size.c: Likewise.
7896         * tree-outof-ssa.c: Likewise.
7897         * tree-parloops.c: Likewise.
7898         * tree-phinodes.c: Likewise.
7899         * tree-predcom.c: Likewise.
7900         * tree-pretty-print.c: Likewise.
7901         * tree-pretty-print.h: Likewise.
7902         * tree-profile.c: Likewise.
7903         * tree-scalar-evolution.c: Likewise.
7904         * tree-sra.c: Likewise.
7905         * tree-ssa-address.c: Likewise.
7906         * tree-ssa-alias.c: Likewise.
7907         * tree-ssa-ccp.c: Likewise.
7908         * tree-ssa-coalesce.c: Likewise.
7909         * tree-ssa-copy.c: Likewise.
7910         * tree-ssa-copyrename.c: Likewise.
7911         * tree-ssa-dce.c: Likewise.
7912         * tree-ssa-dom.c: Likewise.
7913         * tree-ssa-dse.c: Likewise.
7914         * tree-ssa-forwprop.c: Likewise.
7915         * tree-ssa-ifcombine.c: Likewise.
7916         * tree-ssa-live.c: Likewise.
7917         * tree-ssa-loop-ch.c: Likewise.
7918         * tree-ssa-loop-im.c: Likewise.
7919         * tree-ssa-loop-ivcanon.c: Likewise.
7920         * tree-ssa-loop-ivopts.c: Likewise.
7921         * tree-ssa-loop-manip.c: Likewise.
7922         * tree-ssa-loop-niter.c: Likewise.
7923         * tree-ssa-loop-prefetch.c: Likewise.
7924         * tree-ssa-loop-unswitch.c: Likewise.
7925         * tree-ssa-loop.c: Likewise.
7926         * tree-ssa-loop.h: Likewise.
7927         * tree-ssa-math-opts.c: Likewise.
7928         * tree-ssa-operands.c: Likewise.
7929         * tree-ssa-phiopt.c: Likewise.
7930         * tree-ssa-phiprop.c: Likewise.
7931         * tree-ssa-pre.c: Likewise.
7932         * tree-ssa-propagate.c: Likewise.
7933         * tree-ssa-reassoc.c: Likewise.
7934         * tree-ssa-sccvn.c: Likewise.
7935         * tree-ssa-scopedtables.c: Likewise.
7936         * tree-ssa-sink.c: Likewise.
7937         * tree-ssa-strlen.c: Likewise.
7938         * tree-ssa-structalias.c: Likewise.
7939         * tree-ssa-tail-merge.c: Likewise.
7940         * tree-ssa-ter.c: Likewise.
7941         * tree-ssa-threadedge.c: Likewise.
7942         * tree-ssa-threadupdate.c: Likewise.
7943         * tree-ssa-uncprop.c: Likewise.
7944         * tree-ssa-uninit.c: Likewise.
7945         * tree-ssa.c: Likewise.
7946         * tree-ssanames.c: Likewise.
7947         * tree-stdarg.c: Likewise.
7948         * tree-streamer-in.c: Likewise.
7949         * tree-streamer-out.c: Likewise.
7950         * tree-streamer.c: Likewise.
7951         * tree-switch-conversion.c: Likewise.
7952         * tree-tailcall.c: Likewise.
7953         * tree-vect-data-refs.c: Likewise.
7954         * tree-vect-generic.c: Likewise.
7955         * tree-vect-loop-manip.c: Likewise.
7956         * tree-vect-loop.c: Likewise.
7957         * tree-vect-patterns.c: Likewise.
7958         * tree-vect-slp.c: Likewise.
7959         * tree-vect-stmts.c: Likewise.
7960         * tree-vectorizer.c: Likewise.
7961         * tree-vrp.c: Likewise.
7962         * tree.c: Likewise.
7963         * tsan.c: Likewise.
7964         * ubsan.c: Likewise.
7965         * valtrack.c: Likewise.
7966         * value-prof.c: Likewise.
7967         * var-tracking.c: Likewise.
7968         * varasm.c: Likewise.
7969         * varpool.c: Likewise.
7970         * vmsdbgout.c: Likewise.
7971         * vtable-verify.c: Likewise.
7972         * web.c: Likewise.
7973         * wide-int-print.cc: Likewise.
7974         * wide-int-print.h: Likewise.
7975         * wide-int.cc: Likewise.
7976         * xcoffout.c: Likewise.
7977         * config/aarch64/aarch64-builtins.c: Likewise.
7978         * config/aarch64/aarch64.c: Likewise.
7979         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
7980         * config/alpha/alpha.c: Likewise.
7981         * config/arc/arc.c: Likewise.
7982         * config/arm/aarch-common.c: Likewise.
7983         * config/arm/arm-builtins.c: Likewise.
7984         * config/arm/arm-c.c: Likewise.
7985         * config/arm/arm.c: Likewise.
7986         * config/avr/avr-c.c: Likewise.
7987         * config/avr/avr-log.c: Likewise.
7988         * config/avr/avr.c: Likewise.
7989         * config/bfin/bfin.c: Likewise.
7990         * config/c6x/c6x.c: Likewise.
7991         * config/cr16/cr16.c: Likewise.
7992         * config/cris/cris.c: Likewise.
7993         * config/darwin-c.c: Likewise.
7994         * config/darwin.c: Likewise.
7995         * config/default-c.c: Likewise.
7996         * config/epiphany/epiphany.c: Likewise.
7997         * config/epiphany/mode-switch-use.c: Likewise.
7998         * config/epiphany/resolve-sw-modes.c: Likewise.
7999         * config/fr30/fr30.c: Likewise.
8000         * config/frv/frv.c: Likewise.
8001         * config/ft32/ft32.c: Likewise.
8002         * config/glibc-c.c: Likewise.
8003         * config/h8300/h8300.c: Likewise.
8004         * config/i386/i386-c.c: Likewise.
8005         * config/i386/i386.c: Likewise.
8006         * config/i386/msformat-c.c: Likewise.
8007         * config/i386/winnt-cxx.c: Likewise.
8008         * config/i386/winnt-stubs.c: Likewise.
8009         * config/i386/winnt.c: Likewise.
8010         * config/ia64/ia64-c.c: Likewise.
8011         * config/ia64/ia64.c: Likewise.
8012         * config/iq2000/iq2000.c: Likewise.
8013         * config/lm32/lm32.c: Likewise.
8014         * config/m32c/m32c-pragma.c: Likewise.
8015         * config/m32c/m32c.c: Likewise.
8016         * config/m32r/m32r.c: Likewise.
8017         * config/m68k/m68k.c: Likewise.
8018         * config/mcore/mcore.c: Likewise.
8019         * config/mep/mep-pragma.c: Likewise.
8020         * config/mep/mep.c: Likewise.
8021         * config/microblaze/microblaze-c.c: Likewise.
8022         * config/microblaze/microblaze.c: Likewise.
8023         * config/mips/mips.c: Likewise.
8024         * config/mmix/mmix.c: Likewise.
8025         * config/mn10300/mn10300.c: Likewise.
8026         * config/moxie/moxie.c: Likewise.
8027         * config/msp430/msp430-c.c: Likewise.
8028         * config/msp430/msp430.c: Likewise.
8029         * config/nds32/nds32-cost.c: Likewise.
8030         * config/nds32/nds32-fp-as-gp.c: Likewise.
8031         * config/nds32/nds32-intrinsic.c: Likewise.
8032         * config/nds32/nds32-isr.c: Likewise.
8033         * config/nds32/nds32-md-auxiliary.c: Likewise.
8034         * config/nds32/nds32-memory-manipulation.c: Likewise.
8035         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
8036         * config/nds32/nds32-predicates.c: Likewise.
8037         * config/nds32/nds32.c: Likewise.
8038         * config/nios2/nios2.c: Likewise.
8039         * config/nvptx/nvptx.c: Likewise.
8040         * config/pa/pa.c: Likewise.
8041         * config/pdp11/pdp11.c: Likewise.
8042         * config/rl78/rl78-c.c: Likewise.
8043         * config/rl78/rl78.c: Likewise.
8044         * config/rs6000/rs6000-c.c: Likewise.
8045         * config/rs6000/rs6000.c: Likewise.
8046         * config/rx/rx.c: Likewise.
8047         * config/s390/s390-c.c: Likewise.
8048         * config/s390/s390.c: Likewise.
8049         * config/sh/sh-c.c: Likewise.
8050         * config/sh/sh-mem.cc: Likewise.
8051         * config/sh/sh.c: Likewise.
8052         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
8053         * config/sh/sh_treg_combine.cc: Likewise.
8054         * config/sol2-c.c: Likewise.
8055         * config/sol2-cxx.c: Likewise.
8056         * config/sol2-stubs.c: Likewise.
8057         * config/sol2.c: Likewise.
8058         * config/sparc/sparc-c.c: Likewise.
8059         * config/sparc/sparc.c: Likewise.
8060         * config/spu/spu-c.c: Likewise.
8061         * config/spu/spu.c: Likewise.
8062         * config/stormy16/stormy16.c: Likewise.
8063         * config/tilegx/mul-tables.c: Likewise.
8064         * config/tilegx/tilegx-c.c: Likewise.
8065         * config/tilegx/tilegx.c: Likewise.
8066         * config/tilepro/mul-tables.c: Likewise.
8067         * config/tilepro/tilepro-c.c: Likewise.
8068         * config/tilepro/tilepro.c: Likewise.
8069         * config/v850/v850-c.c: Likewise.
8070         * config/v850/v850.c: Likewise.
8071         * config/vax/vax.c: Likewise.
8072         * config/visium/visium.c: Likewise.
8073         * config/vms/vms-c.c: Likewise.
8074         * config/vms/vms.c: Likewise.
8075         * config/vxworks.c: Likewise.
8076         * config/winnt-c.c: Likewise.
8077         * config/xtensa/xtensa.c: Likewise.
8078         * common/config/bfin/bfin-common.c: Likewise.
8079
8080 2015-06-04  Jan Hubicka  <hubicka@ucw.cz>
8081
8082         * tree.h (tree_code_for_canonical_type_merging): New function.
8083         * tree.c (gimple_canonical_types_compatible_p): Use
8084         tree_code_for_canonical_type_merging..
8085
8086 2015-06-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8087
8088         PR c++/66192
8089         PR target/66200
8090         * doc/tm.texi: Regenerate.
8091         * doc/tm.texi.in (TARGET_RELAXED_ORDERING): Delete.
8092         * target.def (TARGET_RELAXED_ORDERING): Likewise.
8093         * config/alpha/alpha.c (TARGET_RELAXED_ORDERING): Likewise.
8094         * config/ia64/ia64.c (TARGET_RELAXED_ORDERING): Likewise.
8095         * config/rs6000/rs6000.c (TARGET_RELAXED_ORDERING): Likewise.
8096         * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Likewise.
8097         * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
8098         * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Likewise.
8099         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Likewise.
8100
8101 2015-06-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8102
8103         * config/aarch64/aarch64.c (aarch64_override_options): Unconditionally
8104         register fma steering pass.
8105         * config/aarch64/cortex-a57-fma-steering.c (gate): Add gating on
8106         AARCH64_TUNE_FMA_STEERING.
8107
8108 2015-06-03  Jan Hubicka  <hubicka@ucw.cz>
8109
8110         * tree.c (verify_type_variant): Verify that type and variant is
8111         compatible.
8112         (gimple_canonical_types_compatible_p): Look for main variants.
8113
8114 2015-06-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
8115
8116         * config.gcc (powerpc*-*-*): Add support for a new configure
8117         option --with-advance-toolchain=<xxx> which overrides using the
8118         default header files, libraries and dynamic linker.
8119
8120         * config/rs6000/linux64.h (SUBSUBTARGET_EXTRA_SPECS): Add new
8121         specs to support the configure --with-advance-toolchain=<xxx>
8122         option.
8123         (INCLUDE_EXTRA_SPEC): Likewise.
8124         (LINK_OS_EXTRA_SPEC32): Likewise.
8125         (LINK_OK_EXTRA_SPEC64): Likewise.
8126         (LINK_OS_NEW_DTAGS_SPEC): Likewise.
8127         (DYNAMIC_LINKER_PREFIX): Likewise.
8128         (CPP_OS_DEFAULT_SPEC): Use the new specs for providing advance
8129         toolchain support.
8130         (GLIBC_DYNAMIC_LINKER32): Likewise.
8131         (GLIBC_DYNAMIC_LINKER64): Likewise.
8132         (LINK_OS_LINUX_SPEC32): Likewise.
8133         (LINK_OS_LINUX_SPEC64): Likewise.
8134
8135         * doc/install.texi (--enable-advance-toolchain=<xx>): Document new
8136         configuration option.
8137
8138 2015-06-03  Uros Bizjak  <ubizjak@gmail.com>
8139
8140         PR target/66275
8141         * config/i386/i386.c (ix86_function_arg_regno): Use ix86_cfun_abi
8142         to determine current function ABI.
8143         (ix86_function_value_regno_p): Ditto.
8144
8145 2015-06-03  Martin Liska  <mliska@suse.cz>
8146
8147         * alloc-pool.h (struct pool_usage): Correct GNU coding style.
8148         * bitmap.h (struct bitmap_usage): Likewise.
8149         * ggc-common.c (struct ggc_usage): Likewise.
8150         * mem-stats.h (struct mem_location): Likewise.
8151         (struct mem_usage): Likewise.
8152         * vec.c (struct vec_usage): Likewise.
8153
8154 2015-06-03  Benigno B. Junior  <bbj@gentoo.org>
8155
8156         * config/netbsd-elf.h (NETBSD_LINK_SPEC_ELF): Turn -symbolic into
8157         -Bsymbolic.
8158
8159 2015-06-02  Andres Tiraboschi  <andres.tiraboschi@tallertechnologies.com>
8160
8161         * doc/plugins.texi (enum plugin_event): New event.
8162         * plugin.c (register_callback): Handle PLUGIN_START_PARSE_FUNCTION
8163         and PLUGIN_FINISH_FUNCTION.
8164         * plugin.def (PLUGIN_START_PARSE_FUNCTION): Add plugin event
8165         (PLUGIN_FINISH_PARSE_FUNCTION): Likewise.
8166
8167 2015-06-03  Richard Biener  <rguenther@suse.de>
8168
8169         * tree-vect-data-refs.c (vect_analyze_group_access): Properly
8170         compute GROUP_GAP for the first element.
8171         * tree-vect-slp.c (vect_build_slp_tree_1): Remove restriction
8172         on in-group gaps.
8173
8174 2015-06-03  Nick Clifton  <nickc@redhat.com>
8175
8176         * config/rl78/rl78-real.md: Add peepholes to avoid a register
8177         copy when calling a function.
8178         * config/rl78/rl78.c (need_to_save): Do not push the frame
8179         pointer in an interrupt handler prologue if it is never used.
8180
8181 2015-06-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8182
8183         * ifcvt (end_ifcvt_sequence): Fix typo in comment above.
8184
8185 2015-06-03  Ilya Enkovich  <ilya.enkovich@intel.com>
8186
8187         * ipa-chkp.c (chkp_maybe_create_clone): Create alias
8188         reference when cloning alias node.
8189
8190 2015-06-03  Martin Liska  <mliska@suse.cz>
8191
8192         * alloc-pool.h (struct pool_usage): Correct space padding.
8193         * ggc-page.c (ggc_print_statistics): Align columns in a report.
8194         * mem-stats.h (struct mem_usage): Add argument to print_dash_line.
8195         * tree.c (dump_tree_statistics): Align columns in a report.
8196
8197 2015-06-03  Martin Liska  <mliska@suse.cz>
8198
8199         * alloc-pool.c (allocate_pool_descriptor): Remove.
8200         (struct pool_output_info): Likewise.
8201         (print_alloc_pool_statistics): Likewise.
8202         (dump_alloc_pool_statistics): Likewise.
8203         * alloc-pool.h (struct pool_usage): New struct.
8204         (pool_allocator::initialize): Change usage of memory statistics
8205         to a new interface.
8206         (pool_allocator::release): Likewise.
8207         (pool_allocator::allocate): Likewise.
8208         (pool_allocator::remove): Likewise.
8209         * mem-stats-traits.h (enum mem_alloc_origin): Add new enum value
8210         for a pool allocator.
8211         * mem-stats.h (struct mem_location): Add new ctor.
8212         (struct mem_usage): Add counter for number of
8213         instances.
8214         (mem_alloc_description::register_descriptor): New overload of
8215         * mem-stats.h (mem_location::to_string): New function.
8216         * bitmap.h (struct bitmap_usage): Use this new function.
8217         * ggc-common.c (struct ggc_usage): Likewise.
8218         the function.
8219
8220 2015-06-03  Richard Sandiford  <richard.sandiford@arm.com>
8221
8222         * defaults.h (SWITCHABLE_TARGET, TARGET_SUPPORTS_WIDE_INT): Move out
8223         of GCC_INSN_FLAGS_H block.
8224
8225 2015-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
8226
8227         * explow.c (plus_constant): Update check after force_const_mem call
8228         to see if the value returned is not a NULL_RTX.
8229
8230 2015-06-03  Ilya Enkovich  <ilya.enkovich@intel.com>
8231
8232         * ipa.c (symbol_table::remove_unreachable_nodes): Don't
8233         remove instumentation thunks calling reachable functions.
8234         * lto-cgraph.c (output_refs): Always output IPA_REF_CHKP.
8235         * lto/lto-partition.c (privatize_symbol_name_1): New.
8236         (privatize_symbol_name): Privatize both decl and orig_decl
8237         names for instrumented functions.
8238         * cgraph.c (cgraph_node::verify_node): Add transparent
8239         alias chain check for instrumented node.
8240
8241 2015-06-03  Marek Polacek  <polacek@redhat.com>
8242
8243         PR c/64223
8244         PR c/29358
8245         * tree.c (attribute_value_equal): Handle attribute format.
8246         (cmp_attrib_identifiers): Factor out of lookup_ident_attribute.
8247
8248 2015-06-03  Richard Biener  <rguenther@suse.de>
8249
8250         PR tree-optimization/63916
8251         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
8252         Forward-propagate non-invariant addresses by splicing their
8253         reference ops if the result isn't going to be used by PRE.
8254         (vn_reference_lookup_3): Remove pointless assert.
8255
8256 2015-06-03  Richard Biener  <rguenther@suse.de>
8257
8258         PR tree-optimization/66375
8259         * tree-scalar-evolution.c (follow_ssa_edge_binary): First
8260         add to the evolution before following SSA edges.
8261
8262 2015-06-03  Bin Cheng  <bin.cheng@arm.com>
8263
8264         * tree-ssa-loop-ivopts.c (dump_iv): New parameter.
8265         (dump_use, dump_cand, find_induction_variables): Pass new argument
8266         to dump_iv.
8267         (record_use): Preserve the ssa name information in IV.
8268
8269 2015-06-03  Richard Sandiford  <richard.sandiford@arm.com>
8270
8271         * genpreds.c (mark_mode_tests): Mark all MATCH_CODEs as
8272         NO_MODE_TEST.
8273         (add_mode_tests): Don't add mode tests if the predicate only
8274         accepts scalar constant integers.  Otherwise, allow the mode
8275         of "op" to be VOIDmode if the predicate does accept such integers.
8276
8277 2015-06-02  Jim Wilson  <jim.wilson@linaro.org>
8278
8279         PR target/66258
8280         * config/aarch64/aarch64.c (aarch64_function_value_regno_p): Change
8281         !TARGET_GENERAL_REGS_ONLY to TARGET_FLOAT.
8282         (aarch64_secondary_reload): Likewise
8283         (aarch64_expand_builtin_va_start): Change TARGET_GENERAL_REGS_ONLY
8284         to !TARGET_FLOAT.
8285         (aarch64_gimplify_va_arg_expr, aarch64_setup_incoming_varargs):
8286         Likewise.
8287
8288 2015-06-03  Kugan Vivekanandarajah  <kuganv@linaro.org>
8289             Zhenqiang Chen  <zhenqiang.chen@linaro.org>
8290
8291         PR target/65768
8292         * cprop.c (try_replace_reg): Check cost of constants before propagating.
8293
8294 2015-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
8295
8296         * config/rs6000/rs6000-modes.def (IFmode): Define IFmode to
8297         provide access to the IBM extended double floating point mode if
8298         long double is IEEE 128-bit floating point.
8299         (KFmode): Define KFmode to provide access to IEEE 128-bit floating
8300         point if long double is the IBM extended double type.
8301
8302         * config/rs6000/rs6000.opt (-mfloat128-none): New switches to
8303         enable adding IEEE 128-bit floating point support.
8304         (-mfloat128-software): Likewise.
8305         (-mfloat128-sw): Likewise.
8306
8307         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Do not allow
8308         128-bit floating point types to occupy any register if
8309         -mlong-double-64.  Do not allow use of IFmode/KFmode unless
8310         -mfloat128-software is enabled.
8311         (rs6000_debug_reg_global): Add IEEE 128-bit floating point debug
8312         support.
8313         (rs6000_option_override_internal): Add -mfloat128-* support.
8314         (rs6000_init_builtins): Setup __ibm128 and __float128 type modes.
8315
8316         * config/rs6000/rs6000.h (rs6000_builtin_type_index): Add ibm128
8317         and float128 type nodes.
8318         (ieee128_float_type_node): Likewise.
8319         (ibm128_float_type_node): Likewise.
8320
8321 2015-06-02  Szabolcs Nagy  <szabolcs.nagy@arm.com>
8322
8323         PR target/66136
8324         * config/aarch64/geniterators.sh: Rewrite in awk.
8325
8326 2015-06-02  Martin Liska  <mliska@suse.cz>
8327
8328         * alloc-pool.h (pool_allocator::pool_allocator): Set implicit
8329         values to avoid -Wmaybe-uninitialized errors.
8330
8331 2015-06-02  Richard Biener  <rguenther@suse.de>
8332
8333         PR debug/65549
8334         * dwarf2out.c (lookup_context_die): New function.
8335         (resolve_addr): Avoid forcing a full DIE for the
8336         target of a DW_TAG_GNU_call_site during late compilation.
8337         Instead create a stub DIE without a type if we have a
8338         context DIE present.
8339
8340 2015-06-02  Uros Bizjak  <ubizjak@gmail.com>
8341
8342         * df-scan.c (df_scan_start_dump): Add space between regno and regname.
8343
8344 2015-06-02  Bin Cheng  <bin.cheng@arm.com>
8345
8346         PR tree-optimization/48052
8347         * cfgloop.h (struct control_iv): New.
8348         (struct loop): New field control_ivs.
8349         * tree-ssa-loop-niter.c : Include "stor-layout.h".
8350         (number_of_iterations_lt): Set no_overflow information.
8351         (number_of_iterations_exit): Init control iv in niter struct.
8352         (record_control_iv): New.
8353         (estimate_numbers_of_iterations_loop): Call record_control_iv.
8354         (loop_exits_before_overflow): New.  Interface factored out of
8355         scev_probably_wraps_p.
8356         (scev_probably_wraps_p): Factor loop niter related code into
8357         loop_exits_before_overflow.
8358         (free_numbers_of_iterations_estimates_loop): Free control ivs.
8359         * tree-ssa-loop-niter.h (free_loop_control_ivs): New.
8360
8361 2015-06-02  Eric Botcazou  <ebotcazou@adacore.com>
8362
8363         * gimplify.c (gimplify_modify_expr): Do not create a DECL_DEBUG_EXPR if
8364         the target doesn't belong to the current function.
8365
8366 2015-06-02  Marek Polacek  <polacek@redhat.com>
8367
8368         PR middle-end/66345
8369         * gimple-fold.c (gimple_fold_builtin_snprintf): Return false if
8370         get_maxval_strlen does not produce an INTEGER_CST.
8371
8372 2015-06-02  Richard Sandiford  <richard.sandiford@arm.com>
8373
8374         * config/arc/constraints.md: Use lower-case names in match_code.
8375         * config/mmix/constraints.md: Likewise.
8376
8377 2015-06-02  Richard Biener  <rguenther@suse.de>
8378
8379         PR tree-optimization/65961
8380         * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove bogus
8381         check and clarify dump message.
8382         (vect_build_slp_tree): If all children are built up from scalars
8383         build up the parent from scalars instead.
8384         * tree-vect-stmts.c (vect_is_simple_use): Cleanup.
8385
8386 2015-06-02  Jan Kratochvil  <jan.kratochvil@redhat.com>
8387
8388         PR other/65366
8389         * gdbhooks.py: Use int(...) instead of long(...).  Use print(...)
8390         instead of print ... .
8391
8392 2015-06-02  Alan Modra  <amodra@gmail.com>
8393
8394         * config/rs6000/vsx.md (vsx_extract_v4sf): Revert accidental
8395         2014-08-11 change.
8396
8397 2015-06-02  Bin Cheng  <bin.cheng@arm.com>
8398
8399         PR tree-optimization/52563
8400         PR tree-optimization/62173
8401         * tree-ssa-loop-ivopts.c (struct iv): New field.  Reorder fields.
8402         (alloc_iv, set_iv): New parameter.
8403         (determine_biv_step): Delete.
8404         (find_bivs): Inline original determine_biv_step.  Pass new
8405         argument to set_iv.
8406         (idx_find_step): Use no_overflow information for conversion.
8407         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop): Let
8408         resolve_mixers handle folded_casts.
8409         (instantiate_scev_name): Change bool parameter to bool pointer.
8410         (instantiate_scev_poly, instantiate_scev_binary): Ditto.
8411         (instantiate_array_ref, instantiate_scev_not): Ditto.
8412         (instantiate_scev_3, instantiate_scev_2): Ditto.
8413         (instantiate_scev_1, instantiate_scev_r): Ditto.
8414         (instantiate_scev_convert, ): Change parameter.  Pass argument
8415         to chrec_convert_aggressive.
8416         (instantiate_scev): Change argument.
8417         (resolve_mixers): New parameter and set it.
8418         (scev_const_prop): New argument.
8419         * tree-scalar-evolution.h (resolve_mixers): New parameter.
8420         * tree-chrec.c (convert_affine_scev): Call chrec_convert instead
8421         of chrec_conert_1.
8422         (chrec_convert): New parameter.  Move definition below.
8423         (chrec_convert_aggressive): New parameter and set it.  Call
8424         convert_affine_scev.
8425         * tree-chrec.h (chrec_convert): New parameter.
8426         (chrec_convert_aggressive): Ditto.
8427
8428 2015-06-01  Eric Botcazou  <ebotcazou@adacore.com>
8429
8430         * gimplify.c (gimplify_modify_expr_rhs): Use simple test on the size.
8431         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Do not remove
8432         the LHS of a no-return call if its type has variable size.
8433         * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
8434         * tree-cfg.c (verify_gimple_call): Accept these no-return calls.
8435
8436 2015-06-01  Andreas Tobler  <andreast@gcc.gnu.org>
8437
8438         * read-rtl.c: Adapt to use HAVE_DECL_ATOLL instead of HAVE_ATOLL.
8439         * config.in: Regenerate.
8440
8441 2015-06-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
8442
8443         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
8444         consecutive accesses within outer-loop with force_vectorize
8445         for references with zero step in inner-loop.
8446
8447 2015-06-01  Vidya Praveen  <vidyapraveen@arm.com>
8448
8449         * Makefile.in: Pick up gcov-dump dependencies from gcc/ directory
8450         rather than from gcc/build directory.
8451
8452 2015-06-01  Matthew Wahab  <matthew.wahab@arm.com>
8453
8454         PR target/65697
8455         * config/aarch64/aarch64.c (aarch64_split_compare_and_swap): Check
8456         for __sync memory models, emit initial loads and final barriers as
8457         appropriate.
8458
8459 2015-06-01  Matthew Wahab  <matthew.wahab@arm.com>
8460
8461         PR target/65697
8462         * config/aarch64/aarch64.c (aarch64_emit_post_barrier):New.
8463         (aarch64_split_atomic_op): Check for __sync memory models, emit
8464         appropriate initial loads and final barriers.
8465
8466 2015-06-01  Vidya Praveen  <vidyapraveen@arm.com>
8467
8468         * Makefile.in: Fix gcov dependencies that should
8469         not point to a build folder.
8470
8471 2015-06-01  Richard Biener  <rguenther@suse.de>
8472
8473         Revert
8474         2015-05-29  Richard Biener  <rguenther@suse.de>
8475
8476         PR tree-optimization/66314
8477         * tree-ssa-threadupdate.c (create_block_for_threading): Add
8478         parameter that says which loop the new block belongs to.
8479         (ssa_create_duplicates): Blocks duplicated for the threaded
8480         path belong to the loop of the thread destination.
8481
8482 2015-06-01  Martin Liska  <mliska@suse.cz>
8483
8484         * sched-deps.c: Include pool-alloc.h before
8485         cselib.h header file is included.
8486
8487 2015-06-01  Richard Biener  <rguenther@suse.de>
8488
8489         * tree-ssa-structalias.c (ipa_pta_execute): Handle address-taken
8490         functions.
8491
8492 2015-06-01  Martin Liska  <mliska@suse.cz>
8493
8494         * alloc-pool.h: Add ATTRIBUTE_UNUSED for
8495         a function local variable.
8496
8497 2015-06-01  Martin Liska  <mliska@suse.cz>
8498
8499         * alloc-pool.c (create_alloc_pool): Remove.
8500         (empty_alloc_pool): Likewise.
8501         (free_alloc_pool): Likewise.
8502         (free_alloc_pool_if_empty): Likewise.
8503         (pool_alloc): Likewise.
8504         (pool_free): Likewise.
8505         * alloc-pool.h: Remove old declarations.
8506
8507 2015-06-01  Martin Liska  <mliska@suse.cz>
8508
8509         * ira-build.c (initiate_allocnos): Use new type-based pool allocator.
8510         (ira_create_object): Likewise.
8511         (ira_create_allocno): Likewise.
8512         (ira_create_live_range): Likewise.
8513         (copy_live_range): Likewise.
8514         (ira_finish_live_range): Likewise.
8515         (ira_free_allocno_costs): Likewise.
8516         (finish_allocno): Likewise.
8517         (finish_allocnos): Likewise.
8518         (initiate_prefs): Likewise.
8519         (ira_create_pref): Likewise.
8520         (finish_pref): Likewise.
8521         (finish_prefs): Likewise.
8522         (initiate_copies): Likewise.
8523         (ira_create_copy): Likewise.
8524         (finish_copy): Likewise.
8525         (finish_copies): Likewise.
8526         (finish_prefs): Likewise.
8527
8528 2015-06-01  Martin Liska  <mliska@suse.cz>
8529
8530         * ipa-cp.c (ipcp_value::add_source): Use new type-based pool allocator.
8531         (allocate_and_init_ipcp_value): Likewise.
8532         (ipcp_lattice::add_value): Likewise.
8533         (merge_agg_lats_step): Likewise.
8534         (ipcp_driver): Likewise.
8535         * ipa-prop.c (ipa_free_all_structures_after_ipa_cp): Likewise.
8536         (ipa_free_all_structures_after_iinln): Likewise.
8537         * ipa-prop.h: Likewise.
8538
8539 2015-06-01  Martin Liska  <mliska@suse.cz>
8540
8541         * ipa-inline-analysis.c (edge_set_predicate): Use new type-based
8542         pool allocator.
8543         (set_hint_predicate): Likewise.
8544         (inline_summary_alloc): Likewise.
8545         (reset_inline_edge_summary): Likewise.
8546         (reset_inline_summary): Likewise.
8547         (set_cond_stmt_execution_predicate): Likewise.
8548         (set_switch_stmt_execution_predicate): Likewise.
8549         (compute_bb_predicates): Likewise.
8550         (estimate_function_body_sizes): Likewise.
8551         (inline_free_summary): Likewise.
8552
8553 2015-06-01  Martin Liska  <mliska@suse.cz>
8554
8555         * ipa-prop.c (ipa_set_jf_constant): Use new type-based pool allocator.
8556         (ipa_edge_duplication_hook): Likewise.
8557         (ipa_free_all_structures_after_ipa_cp): Likewise.
8558         (ipa_free_all_structures_after_iinln): Likewise.
8559
8560 2015-06-01  Martin Liska  <mliska@suse.cz>
8561
8562         * ipa-profile.c (account_time_size): Use new type-based pool allocator.
8563         (ipa_profile_generate_summary): Likewise.
8564         (ipa_profile_read_summary): Likewise.
8565         (ipa_profile): Likewise.
8566
8567 2015-06-01  Martin Liska  <mliska@suse.cz>
8568
8569         * tree-ssa-structalias.c (new_var_info): Use new type-based
8570         pool allocator.
8571         (new_constraint): Likewise.
8572         (init_alias_vars): Likewise.
8573         (delete_points_to_sets): Likewise.
8574
8575 2015-06-01  Martin Liska  <mliska@suse.cz>
8576
8577         * tree-ssa-strlen.c (new_strinfo): Use new type-based pool allocator.
8578         (free_strinfo): Likewise.
8579         (pass_strlen::execute): Likewise.
8580
8581 2015-06-01  Martin Liska  <mliska@suse.cz>
8582
8583         * tree-ssa-sccvn.c (vn_reference_insert): Use new type-based
8584         pool allocator.
8585         (vn_reference_insert_pieces): Likewise.
8586         (vn_phi_insert): Likewise.
8587         (visit_reference_op_call): Likewise.
8588         (copy_phi): Likewise.
8589         (copy_reference): Likewise.
8590         (process_scc): Likewise.
8591         (allocate_vn_table): Likewise.
8592         (free_vn_table): Likewise.
8593
8594 2015-06-01  Martin Liska  <mliska@suse.cz>
8595
8596         * tree-ssa-reassoc.c (add_to_ops_vec): Use new type-based
8597         pool allocator.
8598         (add_repeat_to_ops_vec): Likewise.
8599         (get_ops): Likewise.
8600         (maybe_optimize_range_tests): Likewise.
8601         (init_reassoc): Likewise.
8602         (fini_reassoc): Likewise.
8603
8604 2015-06-01  Martin Liska  <mliska@suse.cz>
8605
8606         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Use new type-based
8607         pool allocator.
8608         (bitmap_set_new): Likewise.
8609         (get_or_alloc_expr_for_constant): Likewise.
8610         (get_or_alloc_expr_for): Likewise.
8611         (phi_translate_1): Likewise.
8612         (compute_avail): Likewise.
8613         (init_pre): Likewise.
8614         (fini_pre): Likewise.
8615
8616 2015-06-01  Martin Liska  <mliska@suse.cz>
8617
8618         * sched-deps.c (create_dep_node): Use new type-based pool allocator.
8619         (delete_dep_node): Likewise.
8620         (create_deps_list): Likewise.
8621         (free_deps_list): Likewise.
8622         (sched_deps_init): Likewise.
8623         (sched_deps_finish): Likewise.
8624
8625 2015-06-01  Martin Liska  <mliska@suse.cz>
8626
8627         * regcprop.c (free_debug_insn_changes): Use new type-based
8628         pool allocator.
8629         (replace_oldest_value_reg): Likewise.
8630         (pass_cprop_hardreg::execute): Likewise.
8631
8632 2015-06-01  Martin Liska  <mliska@suse.cz>
8633
8634         * ira-build.c (initiate_cost_vectors): Use new type-based
8635         pool allocator.
8636         (ira_allocate_cost_vector): Likewise.
8637         (ira_free_cost_vector): Likewise.
8638         (finish_cost_vectors): Likewise.
8639
8640 2015-06-01  Martin Liska  <mliska@suse.cz>
8641
8642         * sel-sched-ir.c (alloc_sched_pools): Use new type-based
8643         pool allocator.
8644         (free_sched_pools): Likewise.
8645         * sel-sched-ir.h (_list_alloc): Likewise.
8646         (_list_remove): Likewise.
8647
8648 2015-06-01  Martin Liska  <mliska@suse.cz>
8649
8650         * stmt.c (add_case_node): Use new type-based pool allocator.
8651         (expand_case): Likewise.
8652         (expand_sjlj_dispatch_table): Likewise.
8653
8654 2015-06-01  Martin Liska  <mliska@suse.cz>
8655
8656         * tree-ssa-math-opts.c (occ_new): Use new type-based pool allocator.
8657         (free_bb): Likewise.
8658         (pass_cse_reciprocals::execute): Likewise.
8659
8660 2015-06-01  Martin Liska  <mliska@suse.cz>
8661
8662         * tree-sra.c (sra_initialize): Use new type-based pool allocator.
8663         (sra_deinitialize) Likewise.
8664         (create_access_1) Likewise.
8665         (build_accesses_from_assign) Likewise.
8666         (create_artificial_child_access) Likewise.
8667
8668 2015-06-01  Martin Liska  <mliska@suse.cz>
8669
8670         * dse.c (get_group_info):Use new type-based pool allocator.
8671         (dse_step0) Likewise.
8672         (free_store_info) Likewise.
8673         (delete_dead_store_insn) Likewise.
8674         (free_read_records) Likewise.
8675         (record_store) Likewise.
8676         (replace_read) Likewise.
8677         (check_mem_read_rtx) Likewise.
8678         (scan_insn) Likewise.
8679         (dse_step1) Likewise.
8680         (dse_step7) Likewise.
8681
8682 2015-06-01  Martin Liska  <mliska@suse.cz>
8683
8684         * df-scan.c (struct df_scan_problem_data):Use new type-based
8685         pool allocator.
8686         (df_scan_free_internal) Likewise.
8687         (df_scan_alloc) Likewise.
8688         (df_grow_reg_info) Likewise.
8689         (df_free_ref) Likewise.
8690         (df_insn_create_insn_record) Likewise.
8691         (df_mw_hardreg_chain_delete) Likewise.
8692         (df_insn_info_delete) Likewise.
8693         (df_free_collection_rec) Likewise.
8694         (df_mw_hardreg_chain_delete_eq_uses) Likewise.
8695         (df_sort_and_compress_mws) Likewise.
8696         (df_ref_create_structure) Likewise.
8697         (df_ref_record) Likewise.
8698
8699 2015-06-01  Martin Liska  <mliska@suse.cz>
8700
8701         * df-problems.c (df_chain_create):Use new type-based pool allocator.
8702         (df_chain_unlink_1) Likewise.
8703         (df_chain_unlink) Likewise.
8704         (df_chain_remove_problem) Likewise.
8705         (df_chain_alloc) Likewise.
8706         (df_chain_free) Likewise.
8707         * df.h (struct dataflow) Likewise.
8708
8709 2015-06-01  Martin Liska  <mliska@suse.cz>
8710
8711         * cselib.c (new_elt_list):Use new type-based pool allocator.
8712         (new_elt_loc_list) Likewise.
8713         (unchain_one_elt_list) Likewise.
8714         (unchain_one_elt_loc_list) Likewise.
8715         (unchain_one_value) Likewise.
8716         (new_cselib_val) Likewise.
8717         (cselib_init) Likewise.
8718         (cselib_finish) Likewise.
8719
8720 2015-06-01  Martin Liska  <mliska@suse.cz>
8721
8722         * config/sh/sh.c (add_constant):Use new type-based pool allocator.
8723         (sh_reorg) Likewise.
8724
8725 2015-06-01  Martin Liska  <mliska@suse.cz>
8726
8727         * cfg.c (initialize_original_copy_tables):Use new type-based
8728         pool allocator.
8729         (free_original_copy_tables) Likewise.
8730         (copy_original_table_clear) Likewise.
8731         (copy_original_table_set) Likewise.
8732
8733 2015-06-01  Martin Liska  <mliska@suse.cz>
8734
8735         * asan.c (asan_mem_ref_get_alloc_pool):Use new type-based
8736         pool allocator.
8737         (asan_mem_ref_new) Likewise.
8738         (free_mem_ref_resources) Likewise.
8739
8740 2015-06-01  Martin Liska  <mliska@suse.cz>
8741
8742         * var-tracking.c (variable_htab_free):Use new type-based
8743         pool allocator.
8744         (attrs_list_clear) Likewise.
8745         (attrs_list_insert) Likewise.
8746         (attrs_list_copy) Likewise.
8747         (shared_hash_unshare) Likewise.
8748         (shared_hash_destroy) Likewise.
8749         (unshare_variable) Likewise.
8750         (var_reg_delete_and_set) Likewise.
8751         (var_reg_delete) Likewise.
8752         (var_regno_delete) Likewise.
8753         (drop_overlapping_mem_locs) Likewise.
8754         (variable_union) Likewise.
8755         (insert_into_intersection) Likewise.
8756         (canonicalize_values_star) Likewise.
8757         (variable_merge_over_cur) Likewise.
8758         (dataflow_set_merge) Likewise.
8759         (remove_duplicate_values) Likewise.
8760         (variable_post_merge_new_vals) Likewise.
8761         (dataflow_set_preserve_mem_locs) Likewise.
8762         (dataflow_set_remove_mem_locs) Likewise.
8763         (variable_from_dropped) Likewise.
8764         (variable_was_changed) Likewise.
8765         (set_slot_part) Likewise.
8766         (clobber_slot_part) Likewise.
8767         (delete_slot_part) Likewise.
8768         (loc_exp_insert_dep) Likewise.
8769         (notify_dependents_of_changed_value) Likewise.
8770         (emit_notes_for_differences_1) Likewise.
8771         (vt_emit_notes) Likewise.
8772         (vt_initialize) Likewise.
8773         (vt_finalize) Likewise.
8774
8775 2015-06-01  Martin Liska  <mliska@suse.cz>
8776
8777         * ira-color.c (init_update_cost_records):Use new type-based
8778         pool allocator.
8779         (get_update_cost_record) Likewise.
8780         (free_update_cost_record_list) Likewise.
8781         (finish_update_cost_records) Likewise.
8782         (initiate_cost_update) Likewise.
8783
8784 2015-06-01  Martin Liska  <mliska@suse.cz>
8785
8786         * lra.c (init_insn_regs): Use new type-based pool allocator.
8787         (new_insn_reg) Likewise.
8788         (free_insn_reg) Likewise.
8789         (free_insn_regs) Likewise.
8790         (finish_insn_regs) Likewise.
8791         (init_insn_recog_data) Likewise.
8792         (init_reg_info) Likewise.
8793         (finish_reg_info) Likewise.
8794         (lra_free_copies) Likewise.
8795         (lra_create_copy) Likewise.
8796         (invalidate_insn_data_regno_info) Likewise.
8797
8798 2015-06-01  Martin Liska  <mliska@suse.cz>
8799
8800         * lra-lives.c (free_live_range): Use new type-based pool allocator.
8801         (free_live_range_list) Likewise.
8802         (create_live_range) Likewise.
8803         (copy_live_range) Likewise.
8804         (lra_merge_live_ranges) Likewise.
8805         (remove_some_program_points_and_update_live_ranges) Likewise.
8806         (lra_live_ranges_init) Likewise.
8807         (lra_live_ranges_finish) Likewise.
8808
8809 2015-06-01  Martin Liska  <mliska@suse.cz>
8810
8811         * et-forest.c (et_new_occ): Use new type-based pool allocator.
8812         (et_new_tree): Likewise.
8813         (et_free_tree): Likewise.
8814         (et_free_tree_force): Likewise.
8815         (et_free_pools): Likewise.
8816         (et_split): Likewise.
8817
8818 2015-06-01  Martin Liska  <mliska@suse.cz>
8819
8820         * alloc-pool.c (struct alloc_pool_descriptor): Move definition
8821         to header file.
8822         * alloc-pool.h (pool_allocator::pool_allocator): New function.
8823         (pool_allocator::release): Likewise.
8824         (inline pool_allocator::release_if_empty): Likewise.
8825         (inline pool_allocator::~pool_allocator): Likewise.
8826         (pool_allocator::allocate): Likewise.
8827         (pool_allocator::remove): Likewise.
8828
8829 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
8830
8831         * sched-deps.c (sched_analyze_2): Replace fuseable with fusible
8832         in comment.
8833
8834 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
8835
8836         * gcc/config/arm/arm-protos.h (tune_params): Rename fuseable_ops
8837         to fusible_ops.
8838         * gcc/config/arm/arm.c (arm_print_tune_info): Likewise.
8839         (arm_macro_fusion_p): Likewise.
8840         (arm_macro_fusion_pair_p): Likewise.
8841
8842 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
8843
8844         * config/aarch64/aarch64-protos.h (tune_params): Rename
8845         fuseable_ops to fusible_ops.
8846         * config/aarch64/aarch64.c (generic_tunings): Rename
8847         fuseable_ops to fusible_ops.
8848         (cortexa53_tunings): Likewise.
8849         (cortexa57_tunings): Likewise.
8850         (thunderx_tunings): Likewise.
8851         (xgene1_tunings): Likewise.
8852         (aarch64_macro_fusion_p): Likewise.
8853         (aarch64_macro_fusion_pair_p): Likewise.
8854
8855 2015-06-01  Dominik Vogt  <vogt@linux.vnet.ibm.com>
8856
8857         * config/s390/driver-native.c: New file.
8858         * config/s390/x-native: New file.
8859         * config.host: Add new files for s390.
8860         * config/s390/s390.h (DRIVER_SELF_SPECS): Add support for -mtune=native
8861         and -march=native
8862         * config.gcc: Likewise.
8863         * config/s390/s390.opt (march): Likewise; add PROCESSOR_NATIVE
8864         * config/s390/s390-opts.h (enum processor_type): Ditto.
8865         * config/s390/s390.c (s390_option_override): Catch unhandled
8866         PROCESSOR_NATIVE
8867
8868 2015-06-01  Ilya Enkovich  <ilya.enkovich@intel.com>
8869
8870         PR target/65527
8871         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Add
8872         redirection for instrumented calls.
8873         * lto-wrapper.c (merge_and_complain): Merge -fcheck-pointer-bounds.
8874         (append_compiler_options): Append -fcheck-pointer-bounds.
8875         * tree-chkp.h (chkp_copy_call_skip_bounds): New.
8876         (chkp_redirect_edge): New.
8877         * tree-chkp.c (chkp_copy_call_skip_bounds): New.
8878         (chkp_redirect_edge): New.
8879
8880 2015-06-01  Richard Biener  <rguenther@suse.de>
8881
8882         PR tree-optimization/66280
8883         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Fix pattern
8884         def-use walking.
8885
8886 2015-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8887
8888         * config/aarch64/aarch64.md
8889         (*<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Change type to
8890         logic_shift_imm.
8891
8892 2015-06-01  Eric Botcazou  <ebotcazou@adacore.com>
8893
8894         * config/i386/winnt.c (i386_pe_encode_section_info) <FUNCTION_DECL>:
8895         Remove obsolete kludge.
8896
8897 2015-06-01  Richard Biener  <rguenther@suse.de>
8898
8899         * tree-ssa-reassoc.c (get_rank): Simplify.
8900
8901 2015-05-31  H.J. Lu  <hongjiu.lu@intel.com>
8902
8903         * configure.ac (NO_PIE_CFLAGS): Check CXXFLAGS instead of CFLAGS.
8904         * configure: Regenerated.
8905
8906 2015-05-31  Mikhail Maltsev  <maltsevm@gmail.com>
8907
8908         * config/cris/cris.h (CRIS_ARCH_CPP_DEFAULT): Fix C++11 compatibility
8909         issue (add space between string literal and macro).
8910         * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Likewise.
8911
8912 2015-05-30  Andreas Schwab  <schwab@linux-m68k.org>
8913
8914         * config/m68k/m68k.h (ASM_PCREL_SPEC): Pass --pcrel also for
8915         implict or explicit -fPIE or -fpie.
8916
8917 2015-05-30  Mike Frysinger  <vapier@gentoo.org>
8918
8919         * gcc/config/alpha/elf.h (ASM_SPEC): Add %{mcpu=*:-m%*}.
8920
8921 2015-05-28  DJ Delorie  <dj@redhat.com>
8922
8923         * expmed.c (extract_bit_field_1): Avoid clobbering a
8924         yet-to-be-used base/index register.
8925
8926 2015-05-30  Jan Hubicka  <hubicka@ucw.cz>
8927
8928         * alias.c (alias_set_entry_d): Add is_pointer and has_pointer.
8929         (alias_stats): Add num_universal.
8930         (alias_set_subset_of): Special case pointers; be ready for NULL
8931         children.
8932         (alias_sets_conflict_p): Special case pointers; be ready for NULL
8933         children.
8934         (init_alias_set_entry): Break out from ...
8935         (record_alias_subset): ... here; propagate new fields;
8936         allocate children only when really needed.
8937         (get_alias_set): Do less generous pointer globbing.
8938         (dump_alias_stats_in_alias_c): Update statistics.
8939
8940 2015-05-30  Alan Modra  <amodra@gmail.com>
8941
8942         * config/rs6000/rs6000.c (split_stack_arg_pointer_used_p): Scan
8943         correct block for use of r12.
8944         (rs6000_expand_split_stack_prologue): Error on r29 asm global reg.
8945
8946 2015-05-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
8947
8948         PR target/66215
8949         * config/s390/s390.c (s390_reorg): Fix placement of post-label NOPs
8950         with -mhotpatch=.
8951
8952 2015-05-29  Jakub Jelinek  <jakub@redhat.com>
8953
8954         PR tree-optimization/66142
8955         * tree-if-conv.c (if_convertible_phi_p): Don't give up on
8956         virtual phis that feed themselves.
8957
8958 2015-05-29  Richard Biener  <rguenther@suse.de>
8959
8960         PR tree-optimization/66314
8961         * tree-ssa-threadupdate.c (create_block_for_threading): Add
8962         parameter that says which loop the new block belongs to.
8963         (ssa_create_duplicates): Blocks duplicated for the threaded
8964         path belong to the loop of the thread destination.
8965
8966 2015-05-29  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
8967
8968         * config/arm/neon-testgen.ml (emit_epilogue): Remove manual call
8969         to cleanup-saved-temps.
8970         * doc/sourcebuild.texi (Clean up generated test files): Expand
8971         introduction.
8972         (dg-keep-saved-temps): Document new proc.
8973         (cleanup-ipa-dump, cleanup-rtl-dump, cleanup-tree-dump,
8974         cleanup-saved-temps): Remove.
8975
8976 2015-05-28  Andreas Tobler  <andreast@gcc.gnu.org>
8977
8978         * configure.ac: Move the atoll check from AC_CHECK_FUNCS to
8979         gcc_AC_CHECK_DECLS.
8980         * configure: Regenerate.
8981
8982 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
8983
8984         * config/nios2/linux.h (CPP_SPEC): Define.
8985
8986 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
8987
8988         * config/microblaze/linux.h (CPP_SPEC): Define.
8989
8990 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
8991
8992         * config/pa/pa-linux.h (CPP_SPEC): Change so -D_REENTRANT is used when
8993         -pthread is specified.
8994
8995 2015-05-28  Richard Biener  <rguenther@suse.de>
8996
8997         * tree-vect-loop.c (vect_fixup_reduc_chain): New function.
8998         (vect_fixup_scalar_cycles_with_patterns): Likewise.
8999         (vect_analyze_loop_2): Call vect_fixup_scalar_cycles_with_patterns
9000         after pattern recog.
9001         (vect_create_epilog_for_reduction): Properly handle reductions
9002         with patterns.
9003         (vectorizable_reduction): Likewise.
9004         * tree-vect-slp.c (vect_analyze_slp_instance): Properly mark
9005         reduction chains.
9006         (vect_get_constant_vectors): Create the correct number of
9007         initial values for reductions.
9008         (vect_schedule_slp_instance): Handle reduction chains that are
9009         type changing properly.
9010         * tree-vect-stmts.c (vect_analyze_stmt): Adjust.
9011
9012 2015-05-28  Richard Biener  <rguenther@suse.de>
9013
9014         PR tree-optimization/66142
9015         * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle non-GIMPLE
9016         values better in memcpy destination handling.  Handle non-aliasing
9017         we discover here.
9018
9019 2015-05-28  Lawrence Velázquez  <vq@larryv.me>
9020
9021         PR target/63810
9022         * config/darwin-c.c (version_components): New global enum.
9023         (parse_version, version_as_legacy_macro)
9024         (version_as_modern_macro, macosx_version_as_macro): New functions.
9025         (version_as_macro): Remove.
9026         (darwin_cpp_builtins): Use new function.
9027
9028 2015-05-28  H.J. Lu  <hongjiu.lu@intel.com>
9029
9030         * builtins.c (expand_builtin_acc_on_device): Mark parameters
9031         with ATTRIBUTE_UNUSED.
9032
9033 2015-05-28  Julian Brown  <julian@codesourcery.com>
9034
9035         PR libgomp/65742
9036
9037         * builtins.c (expand_builtin_acc_on_device): Don't use open-coded
9038         sequence for !ACCEL_COMPILER.
9039
9040 2015-05-28  Nick Clifton  <nickc@redhat.com>
9041
9042         * config/rx/rx.c (push_regs): New function.  Extracts code from...
9043         (rx_expand_prologue): ... here.  Use push_regs to push even small
9044         spans of registers.
9045         (pop_regs): New function.
9046         (rx_expand_epilogue):  Use pop_regs to pop even small spans of
9047         registers.
9048
9049 2015-05-28  Richard Biener  <rguenther@suse.de>
9050
9051         * tree-vectorizer.h (struct _slp_instance): Remove body_cost_vec
9052         member.
9053         (SLP_INSTANCE_BODY_COST_VEC): Remove.
9054         (vect_update_slp_costs_according_to_vf): Likewise.
9055         (vect_slp_analyze_operations): Update prototype.
9056         * tree-vect-loop.c (vect_analyze_loop_2): Remove call to
9057         vect_update_slp_costs_according_to_vf, adjust.
9058         * tree-vect-slp.c (vect_free_slp_instance): Adjust.
9059         (vect_analyze_slp_cost_1): Likewise.
9060         (vect_analyze_slp_cost): Likewise.  Properly deal with
9061         widening reduction ops.  Commit body costs.
9062         (vect_analyze_slp_instance): Adjust.  Do not analyze SLP
9063         cost for loops from here.
9064         (vect_slp_analyze_operations): But do it from here when
9065         the vectorization factor is known and stmts are analyzed.
9066         (vect_bb_vectorization_profitable_p): Simplify.
9067         (vect_slp_analyze_bb_1): Do not compute SLP cost here.
9068         (vect_update_slp_costs_according_to_vf): Remove.
9069
9070 2015-05-27  Magnus Granberg  <zorry@gentoo.org>
9071             H.J. Lu  <hongjiu.lu@intel.com>
9072
9073         * Makefile.in (COMPILER): Add @NO_PIE_CFLAGS@.
9074         (BUILD_CFLAGS): Likewise.
9075         (BUILD_CXXFLAGS): Likewise.
9076         (LINKER): Add @NO_PIE_FLAG@.
9077         (BUILD_LDFLAGS): Likewise.
9078         (libgcc.mvars): Set NO_PIE_CFLAGS to -fno-PIE for
9079         --enable-default-pie.
9080         * common.opt (fPIE): Initialize to -1.
9081         (fpie): Likewise.
9082         (no-pie): New option.
9083         (pie): Replace "Negative(shared)" with "Negative(no-pie)".
9084         * configure.ac: Add --enable-default-pie.
9085         (NO_PIE_CFLAGS): New.  Check if -fno-PIE works.  AC_SUBST.
9086         (NO_PIE_FLAG): New.  Check if -no-pie works.  AC_SUBST.
9087         * defaults.h (DEFAULT_FLAG_PIE): New.  Default PIE to -fPIE.
9088         * gcc.c (NO_PIE_SPEC): New.
9089         (PIE_SPEC): Likewise.
9090         (NO_FPIE1_SPEC): Likewise.
9091         (FPIE1_SPEC): Likewise.
9092         (NO_FPIE2_SPEC): Likewise.
9093         (FPIE2_SPEC): Likewise.
9094         (NO_FPIE2_SPEC): Likewise.
9095         (FPIE_SPEC): Likewise.
9096         (NO_FPIE_SPEC): Likewise.
9097         (NO_FPIC1_SPEC): Likewise.
9098         (FPIC1_SPEC): Likewise.
9099         (NO_FPIC2_SPEC): Likewise.
9100         (FPIC2_SPEC): Likewise.
9101         (NO_FPIC2_SPEC): Likewise.
9102         (FPIC_SPEC): Likewise.
9103         (NO_FPIC_SPEC): Likewise.
9104         (NO_FPIE1_AND_FPIC1_SPEC): Likewise.
9105         (FPIE1_OR_FPIC1_SPEC): Likewise.
9106         (NO_FPIE2_AND_FPIC2_SPEC): Likewise.
9107         (FPIE2_OR_FPIC2_SPEC): Likewise.
9108         (NO_FPIE_AND_FPIC_SPEC): Likewise.
9109         (FPIE_OR_FPIC_SPEC): Likewise.
9110         (LD_PIE_SPEC): Likewise.
9111         (LINK_PIE_SPEC): Handle -no-pie.  Use PIE_SPEC and LD_PIE_SPEC.
9112         * opts.c (finish_options): Update opts->x_flag_pie if it is -1.
9113         * config/darwin.h (PIE_SPEC): Renamed to ...
9114         (DARWIN_PIE_SPEC): This.
9115         (LINK_SPEC): Replace PIE_SPEC with DARWIN_PIE_SPEC.
9116         * config/darwin9.h (PIE_SPEC): Renamed to ...
9117         (DARWIN_PIE_SPEC): This.
9118         * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Use
9119         PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
9120         * config/openbsd.h (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and
9121         FPIE2_OR_FPIC2_SPEC.
9122         * config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
9123         * config/m68k/openbsd.h (ASM_SPEC): Likewise.
9124         * gcc/config/sol2.h (ASM_PIC_SPEC): Likewise.
9125         * config/arm/freebsd.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
9126         * config/arm/netbsd-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
9127         * config/arm/semi.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
9128         * config/cris/linux.h (CRIS_ASM_SUBTARGET_SPEC): Likewise.
9129         * config/m32r/m32r.h (ASM_SPEC): Likewise.
9130         * config/m68k/uclinux.h (DRIVER_SELF_SPECS): Likewise.
9131         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
9132         * config/rs6000/sysv4.h (ASM_SPEC): Likewise.
9133         * config/sparc/freebsd.h (ASM_SPEC): Likewise.
9134         * config/sparc/linux.h (ASM_SPEC): Likewise.
9135         * config/sparc/linux64.h (ASM_SPEC): Likewise.
9136         * config/sparc/netbsd-elf.h (ASM_SPEC): Likewise.
9137         * config/sparc/openbsd64.h (ASM_SPEC): Likewise.
9138         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
9139         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
9140         * config/sparc/sparc.h (ASM_SPEC): Likewise.
9141         * config/sparc/sysv4.h (ASM_SPEC): Likewise.
9142         * config/sparc/vxworks.h (ASM_SPEC): Likewise.
9143         * config/c6x/elf-common.h (ASM_SPEC): Use NO_FPIC2_SPEC,
9144         FPIC2_SPEC, FPIC1_SPEC and FPIC2_SPEC.
9145         * config/c6x/uclinux-elf.h (LINK_SPEC): Use FPIE_SPEC.
9146         * config/frv/frv.h (DRIVER_SELF_SPECS): Use FPIC_SPEC,
9147         NO_FPIC_SPEC and NO_FPIE1_AND_FPIC1_SPEC.
9148         (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and FPIE2_OR_FPIC2_SPEC.
9149         * config/m68k/m68k.h (ASM_PCREL_SPEC): Use FPIC_SPEC and NO_FPIC_SPEC.
9150         * config/mips/gnu-user.h (NO_SHARED_SPECS): Use NO_FPIE_AND_FPIC_SPEC.
9151         * config/mips/vxworks.h (SUBTARGET_ASM_SPEC): Use FPIC_SPEC.
9152         * config/rs6000/freebsd64.h (ASM_SPEC32): Likewise.
9153         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
9154         * config/vax/linux.h (ASM_SPEC): Likewise.
9155         * doc/install.texi: Document --enable-default-pie.
9156         * doc/invoke.texi: Document -no-pie.
9157         * config.in: Regenerated.
9158         * configure: Likewise.
9159
9160 2015-05-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
9161
9162         PR rtl-optimization/66168
9163         * loop-invariant.c (move_invariant_reg): Pass dest rather than reg to
9164         can_move_invariant_reg.
9165
9166 2015-05-27  John David Anglin  <danglin@gcc.gnu.org>
9167
9168         PR target/66148
9169         * config/pa/pa.c (pa_emit_move_sequence): Correct placement of
9170         REG_EQUAL note when doing insert.
9171
9172         * config/pa/pa.c (pa_print_operand): Use HOST_WIDE_INT_PRINT_DEC
9173         instead of "%d" for 'o' operand.
9174
9175 2015-05-27  Nathan Sidwell  <nathan@acm.org>
9176
9177         PR c++/66270
9178         * tree.c (build_pointer_type_for_mode): Canonical type does not
9179         inherit can_alias_all.
9180         (build_reference_type_for_mode): Likewise.
9181
9182 2015-05-27  Eric Botcazou  <ebotcazou@adacore.com>
9183
9184         * expr.h (array_at_struct_end_p): Move to...
9185         (array_ref_element_size): Likewise.
9186         (component_ref_field_offset): Likewise.
9187         * tree.h (array_ref_element_size): ...here.
9188         (array_at_struct_end_p): Likewise.
9189         (component_ref_field_offset): Likewise.
9190         * expr.c (array_ref_element_size): Move to...
9191         (array_ref_low_bound): Likewise.
9192         (array_at_struct_end_p): Likewise.
9193         (array_ref_up_bound): Likewise.
9194         (component_ref_field_offset): Likewise.
9195         * tree.c (array_ref_element_size): ...here.
9196         (array_ref_low_bound): Likewise.
9197         (array_ref_up_bound): Likewise.
9198         (array_at_struct_end_p): Likewise.
9199         (component_ref_field_offset): Likewise.
9200
9201 2015-05-27  Gregor Richards  <gregor.richards@uwaterloo.ca>
9202             Szabolcs Nagy  <szabolcs.nagy@arm.com>
9203
9204         * config/aarch64/aarch64-linux.h (MUSL_DYNAMIC_LINKER): Define.
9205
9206 2015-05-27  Jason Merrill  <jason@redhat.com>
9207
9208         PR bootstrap/66304
9209         * configure.ac: Use ACX_PROG_CXX_WARNING_OPTS,
9210         ACX_PROG_CXX_WARNING_ALMOST_PEDANTIC, and
9211         ACX_PROG_CXX_WARNINGS_ARE_ERRORS.
9212
9213 2015-05-22  Aditya Kumar  <hiraditya@msn.com>
9214
9215         * auto-profile.c (afdo_calculate_branch_prob): Break once has_sample
9216         is true.
9217
9218         * statistics.c (statistics_fini_pass): Print pass name.
9219
9220 2015-05-27  Richard Biener  <rguenther@suse.de>
9221
9222         PR tree-optimization/66272
9223         Revert parts of
9224         2014-08-15  Richard Biener  <rguenther@suse.de>
9225
9226         PR tree-optimization/62031
9227         * tree-data-ref.c (dr_analyze_indices): Do not set
9228         DR_UNCONSTRAINED_BASE.
9229         (dr_may_alias_p): All indirect accesses have to go the
9230         formerly DR_UNCONSTRAINED_BASE path.
9231         * tree-data-ref.h (struct indices): Remove
9232         unconstrained_base member.
9233         (DR_UNCONSTRAINED_BASE): Remove.
9234
9235 2015-05-27  Aldy Hernandez  <aldyh@redhat.com>
9236
9237         * dwarf2out.c: Remove block_map.
9238         (gen_call_site_die): Replace block_map use with BLOCK_DIE.
9239         (gen_lexical_block_die): Same.
9240         (dwarf2out_function_decl): Remove block_map use.
9241         (dwarf2out_c_finalize): Same.
9242         * tree-core.h (struct tree_block): Add die field.
9243         * tree.h (BLOCK_DIE): New.
9244
9245 2015-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9246
9247         PR target/65358
9248         * expr.c (memory_load_overlap): New function.
9249         (emit_push_insn): When pushing partial args to the stack would
9250         clobber the register part load the overlapping part into a pseudo
9251         and put it into the hard reg after pushing.  Change return type
9252         to bool.  Add bool argument.
9253         * expr.h (emit_push_insn): Change return type to bool.
9254         Add bool argument.
9255         * calls.c (expand_call): Cancel sibcall optimization when encountering
9256         partial argument on targets with ARGS_GROW_DOWNWARD and
9257         !STACK_GROWS_DOWNWARD.
9258         (emit_library_call_value_1): Update callsite of emit_push_insn.
9259         (store_one_arg): Likewise.
9260
9261 2015-05-27  Gregor Richards  <gregor.richards@uwaterloo.ca>
9262
9263         * config/arm/linux-eabi.h (MUSL_DYNAMIC_LINKER): Define.
9264
9265 2015-05-27  Martin Liska  <mliska@suse.cz>
9266
9267         * Makefile.in: Add additional dependencies related to memory report
9268         enhancement.
9269         * alloc-pool.c (allocate_pool_descriptor): Use new ctor.
9270         * bitmap.c (struct bitmap_descriptor_d): Remove.
9271         (struct loc): Likewise.
9272         (struct bitmap_desc_hasher): Likewise.
9273         (bitmap_desc_hasher::hash): Likewise.
9274         (bitmap_desc_hasher::equal): Likewise.
9275         (get_bitmap_descriptor): Likewise.
9276         (bitmap_register): User new memory descriptor API.
9277         (register_overhead): Likewise.
9278         (bitmap_find_bit): Register nsearches and search_iter statistics.
9279         (struct bitmap_output_info): Remove.
9280         (print_statistics): Likewise.
9281         (dump_bitmap_statistics): Use new memory descriptor.
9282         * bitmap.h (struct bitmap_usage): New class.
9283         * genmatch.c: Extend header file inclusion.
9284         * genpreds.c: Likewise.
9285         * ggc-common.c (struct ggc_usage): New class.
9286         (struct ggc_loc_desc_hasher): Remove.
9287         (ggc_loc_desc_hasher::hash): Likewise.
9288         (ggc_loc_desc_hasher::equal): Likewise.
9289         (struct ggc_ptr_hash_entry): Likewise.
9290         (struct ptr_hash_hasher): Likewise.
9291         (ptr_hash_hasher::hash): Likewise.
9292         (ptr_hash_hasher::equal): Likewise.
9293         (make_loc_descriptor): Likewise.
9294         (ggc_prune_ptr): Likewise.
9295         (dump_ggc_loc_statistics): Use new memory descriptor.
9296         (ggc_record_overhead): Likewise.
9297         (ggc_free_overhead): Likewise.
9298         (final_cmp_statistic): Remove.
9299         (cmp_statistic): Likewise.
9300         (ggc_add_statistics): Liekwise.
9301         (ggc_prune_overhead_list): Likewise.
9302         * hash-map-traits.h: New file.
9303         * hash-map.h (struct default_hashmap_traits): Move the traits to a
9304         separate header file.
9305         * hash-set.h: Pass memory statistics info to ctor.
9306         * hash-table.c (void dump_hash_table_loc_statistics): New function.
9307         * hash-table.h (hash_table::hash_table): Add new ctor arguments.
9308         (hash_table::~hash_table): Register memory release operation.
9309         (hash_table::alloc_entries): Handle memory allocation operation.
9310         (hash_table::expand): Likewise.
9311         * inchash.c (iterative_hash_hashval_t): Move implementation to header
9312         file.
9313         (iterative_hash_host_wide_int): Likewise.
9314         * inchash.h (class hash): Likewise.
9315         * mem-stats-traits.h: New file.
9316         * mem-stats.h: New file.
9317         (mem_location): Add new class.
9318         (mem_usage): Likewise.
9319         (mem_alloc_description): Likewise.
9320         * sese.c: Add new header file inclusision.
9321         * toplev.c (dump_memory_report): Add report for hash_table, hash_map
9322         and hash_set.
9323         * tree-sra.c: Add new header file inclusision.
9324         * vec.c (struct vec_descriptor): Remove.
9325         (hash_descriptor): Likewise.
9326         (struct vec_usage): Likewise.
9327         (struct ptr_hash_entry): Likewise.
9328         (hash_ptr): Likewise.
9329         (eq_ptr): Likewise.
9330         (vec_prefix::register_overhead): Use new memory descriptor API.
9331         (vec_prefix::release_overhead): Likewise.
9332         (add_statistics): Remove.
9333         (dump_vec_loc_statistics): Use new memory descriptor API.
9334         * vec.h (struct vec_prefix): Likewise.
9335         (va_heap::reserve): Likewise.
9336         (va_heap::release): Likewise.
9337         * emit-rtl.c (gen_raw_REG): Fix passing MEM_STAT.
9338
9339 2015-05-27  Richard Biener  <rguenther@suse.de>
9340
9341         * tree-vect-stmts.c (vectorizable_load): Initialize slp_perm
9342         earlier and remove ??? comment.
9343         (vect_analyze_stmt): If we are analyzing a pure SLP stmt
9344         and got called from loop analysis bail out.  Always pass the SLP
9345         node to the vectorizable_* functions.
9346         * tree-vect-loop.c (vect_analyze_loop_operations): Remove
9347         the premature SLP check here.
9348         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Dump hybrid
9349         detected SLP stmts.
9350         (vect_detect_hybrid_slp_1): Likewise.
9351
9352 2015-05-26  Jeff Law  <law@redhat.com>
9353
9354         * combine.c (find_split_point): Verify that the shift count is a
9355         constant when choosing (plus (ashift ...)) as a split point.
9356
9357         * tree-ssa-threadupdate.c: Replace 8 space sequences with tabs.
9358         No functional changes.
9359
9360 2015-05-26  Jan Hubicka  <hubicka@ucw.cz>
9361
9362         * ipa-polymorphic-call.c
9363         (ipa_polymorphic_call_context::get_dynamic_type): Short circuit the
9364         case when call target is already known.
9365
9366 2015-05-26  Oleg Endo  <olegendo@gcc.gnu.org>
9367
9368         PR target/65979
9369         * config/sh/sh.md (tstsi_t peephole2): Use gen_rtx_SET and
9370         take into account the case that operands[1] and operands[2]
9371         are the same register.
9372
9373 2015-05-26  Michael Matz  <matz@suse.de>
9374
9375         PR middle-end/66251
9376
9377         * tree-vect-stmts.c (vect_model_store_cost): Handled strided group
9378         stores.
9379         (vect_create_vectorized_demotion_stmts): Always set
9380         STMT_VINFO_VEC_STMT, also with SLP.
9381         (vectorizable_store): Handle strided group stores.
9382
9383 2015-05-26  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
9384
9385         PR target/66049
9386         * config/aarch64/aarch64.md
9387         (*adds_shift_imm_<mode>):  New pattern.
9388         (*subs_shift_imm_<mode>):  Likewise.
9389         (*adds_<optab><ALLX:mode>_shift_<GPI:mode>):  Likewise.
9390         (*subs_<optab><ALLX:mode>_shift_<GPI:mode>): Likewise.
9391         (*add_uxt<mode>_shift2): Likewise.
9392         (*add_uxtsi_shift2_uxtw): Likewise.
9393         (*sub_uxt<mode>_shift2): Likewise.
9394         (*sub_uxtsi_shift2_uxtw): Likewise.
9395
9396 2015-05-26  David Edelsohn  <dje.gcc@gmail.com>
9397
9398         * config/rs6000/constraints.md (Y, U): Use match_test.
9399
9400 2015-05-26  Christian Bruel  <christian.bruel@st.com>
9401
9402         PR target/52144
9403         * config/arm/arm.c (arm_option_check_internal)
9404         (arm_option_params_internal): Check opts->target_flags to set macros.
9405         (TREE_TARGET_ARM, TREE_TARGET_THUMB)
9406         (TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Replace with...
9407         (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
9408         (builtin_define): Replaced with def_or_undef_macro.
9409         * config/arm/arm.h (TREE_TARGET_ARM, TREE_TARGET_THUMB)
9410         TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Redefine with...
9411         (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
9412         (TARGET_32BIT_P, TARGET_ARM_QBIT_P, TARGET_ARM_SAT_P, TARGET_IDIV_P)
9413         (TARGET_HAVE_LDREX_P, TARGET_HAVE_LDREXBH_P, TARGET_HAVE_LDREXD_P)
9414         (TARGET_ARM_FEATURE_LDREX_P)
9415         (TARGET_DSP_MULTIPLY_P, TARGET_INT_SIMD_P): New macros.
9416         * config/arm/arm-c.c (def_or_undef_macro): New function.
9417         (arm_cpu_cpp_builtins): Use def_or_undef_macro for macros definition.
9418
9419 2015-05-26  Christian Bruel  <christian.bruel@st.com>
9420
9421         * c-common.h (builtin_define_with_int_value)
9422         (builtin_define_type_sizeof): Declare.
9423         * c-cppbuiltin.c (builtin_define_with_int_value)
9424         (builtin_define_type_sizeof): Externalize.
9425         (builtin_define_std): Cleanup declaration.
9426         * config/arm/arm-protos.h (arm_cpu_cpp_builtins): Declare.
9427         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Move macro defines into...
9428         * config/arm/arm-c.c (arm_cpu_cpp_builtins): New function.
9429         (builtin_define, builtin_assert): New macros.
9430
9431 2015-05-26  Richard Biener  <rguenther@suse.de>
9432
9433         PR tree-optimization/66142
9434         * tree-ssa-sccvn.c (vn_reference_lookup_3): Manually compare
9435         MEM_REFs for the same base address.
9436
9437 2015-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9438
9439         PR ipa/66181
9440         * tree.c (verify_type_variant): Do not check TYPE_NO_FORCE_BLK.
9441
9442 2015-05-26  Jason Merrill  <jason@redhat.com>
9443
9444         * configure.ac: Set CXXFLAGS for ISL test.
9445         * configure: Regenerate.
9446
9447         * configure.ac: Use C++ for all tests.  Use AC_CHECK_DECLS for
9448         strstr and basename.
9449         * configure: Regenerate.
9450
9451 2015-05-26  Richard Biener  <rguenther@suse.de>
9452
9453         * fold-const.c (fold_binary_loc): Move X % -Y -> X % Y and
9454         X % C -> X & (C - 1) for C being a power-of two to ...
9455         * match.pd: ... patterns.
9456
9457 2015-05-26  Marc Glisse  <marc.glisse@inria.fr>
9458
9459         * match.pd (swapped_tcc_comparison): New operator list.
9460         (-A CMP -B): New simplification.
9461         * fold-const.c (fold_comparison): Remove corresponding code.
9462
9463 2015-05-26  Richard Sandiford  <richard.sandiford@arm.com>
9464
9465         * caller-save.c (init_caller_save): Base temporary register numbers
9466         on LAST_VIRTUAL_REGISTER + 1 rather than FIRST_PSEUDO_REGISTER.
9467         * cfgloopanal.c (init_set_costs): Likewise.
9468         * dojump.c (prefer_and_bit_test): Likewise.
9469         * expr.c (init_expr_target): Likewise.
9470         * ira.c (setup_prohibited_mode_move_regs): Likewise.
9471         * lower-subreg.c (init_lower_subreg): Likewise.
9472         * postreload.c (reload_cse_regs_1): Likewise.
9473
9474 2015-05-26  Richard Sandiford  <richard.sandiford@arm.com>
9475
9476         * gensupport.h (compute_test_codes): Declare.
9477         * gensupport.c (compute_predicate_codes): Rename to...
9478         (compute_test_codes): ...this.  Generalize error message.
9479         (process_define_predicate): Update accordingly.
9480         * genpreds.c (compute_maybe_allows): Delete.
9481         (add_constraint): Use compute_test_codes to determine whether
9482         something can accept a SUBREG, REG or MEM.
9483
9484 2015-05-26  Torvald Riegel  <triegel@redhat.com>
9485
9486         * doc/extend.texi (__atomic Builtins): Use 'memory order' instead of
9487         'memory model' to align with C++11; fix description of memory orders;
9488         fix a few typos.
9489
9490 2015-05-26  Richard Biener  <rguenther@suse.de>
9491
9492         * tree-vect-loop.c (vect_update_vf_for_slp): Split out from ...
9493         (vect_analyze_loop_operations): ... here.  Remove slp parameter,
9494         detect whether we apply SLP.  Remove call to
9495         vect_update_slp_costs_according_to_vf.
9496         (vect_analyze_loop_2): Call vect_update_vf_for_slp and
9497         vect_update_slp_costs_according_to_vf from here.  Dispatch
9498         to vect_slp_analyze_operations to analyze SLP stmts.
9499         * tree-vect-slp.c (vect_slp_analyze_node_operations): Drop
9500         unused bb_vec_info parameter, adjust assert.
9501         (vect_slp_analyze_operations): Pass in the slp instance tree
9502         instead of bb_vec_info.
9503         (vect_slp_analyze_bb_1): Adjust call to vect_slp_analyze_operations.
9504         * tree-vectorizer.h (vect_slp_analyze_operations): Declare.
9505
9506 2015-05-25  Alexander Monakov  <amonakov@ispras.ru>
9507
9508         * config/i386/i386.h (enum reg_class): Move CLOBBERED_REGS prior to
9509         Q_REGS.  Expand comment.
9510         (REG_CLASS_NAMES): Ditto.
9511         (REG_CLASS_CONTENTS): Ditto.
9512
9513 2015-05-25  Uros Bizjak  <ubizjak@gmail.com>
9514
9515         PR target/66274
9516         * config/i386/i386.c (print_reg): Only print "r" for TARGET_64BIT
9517         when LEGACY_INT_REGNO_P is processed.
9518
9519 2015-05-25  Alexander Monakov  <amonakov@ispras.ru>
9520
9521         * config/i386/i386.c (ix86_function_ok_for_sibcall): Check flag_plt.
9522
9523 2015-05-25  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
9524
9525         * config/avr/avr.c (avr_out_load_psi_reg_no_disp_tiny): Restore base
9526         register if not marked dead/unused, before return.
9527
9528 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
9529
9530         PR lto/66180
9531         * ipa-devirt.c (type_with_linkage): Check that TYPE_STUB_DECL
9532         is set; check for assembler name at LTO time.
9533         (type_in_anonymous_namespace): Remove hacks, check that all
9534         anonymous types are called "<anon>"
9535         (odr_type_p): Simplify; add check for "<anon>"
9536         (odr_subtypes_equivalent): Add odr_type_p check.
9537         * tree.c (need_assembler_name_p): Even anonymous namespace needs
9538         assembler name.
9539
9540 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
9541
9542         * ipa-utils.h (method_class_type): Remove.
9543         * cgraphunit.c (walk_polymorphic_call_targets): Use
9544         TYPE_METHOD_BASETYPE.
9545         * ipa-devirt.c (type_in_anonymous_namespace_p): Check that it is called
9546         on main variants only.
9547         (method_class_type): Remove.
9548         (update_type_inheritance_graph): Use TYPE_METHOD_BASETYPE.
9549         (build_type_inheritance_graph): Likewise.
9550         * ipa-icf.c (sem_function::equals_wpa): Likewise.
9551         * pa-polymorphic-call.c (decl_maybe_in_construction_p,
9552         check_stmt_for_type_change): Use TYPE_METHOD_BASETYPE.
9553
9554 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
9555
9556         * tree.c (prototype_p, virtual_method_call_p, obj_type_ref_class,
9557         is_typedef_decl, typedef_variant_p): Constify.
9558         * tree.h (prototype_p, virtual_method_call_p, obj_type_ref_class,
9559         is_typedef_decl, typedef_variant_p): Constify.
9560
9561 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9562
9563         * defaults.h (gen_tablejump): New function.
9564         (HAVE_tablejump): Add default value.
9565         * expr.c: Adjust.
9566         * stmt.c: Likewise.
9567
9568 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9569
9570         * defaults.h (gen_store_multiple): New function.
9571         (HAVE_store_multiple): Add default value.
9572         * expr.c (move_block_from_reg): Adjust.
9573
9574 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9575
9576         * defaults.h (gen_load_multiple): New function.
9577         (HAVE_load_multiple): Add default value.
9578         * expr.c (move_block_to_reg): Adjust.
9579
9580 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9581
9582         * defaults.h (gen_mem_signal_fence): New function.
9583         (HAVE_mem_signal_fence): Add default value.
9584         * optabs.c: Adjust.
9585
9586 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9587
9588         * defaults.h (gen_memory_barrier): New function.
9589         (HAVE_memory_barrier): Add default value.
9590         * optabs.c: Adjust.
9591
9592 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9593
9594         * defaults.h (gen_mem_thread_fence): New function.
9595         (HAVE_mem_thread_fence): Add default definition.
9596         * optabs.c: Adjust.
9597
9598 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9599
9600         * combine.c (find_split_point): Check the value of HAVE_lo_sum
9601         instead of if it is defined.
9602         (combine_simplify_rtx): Likewise.
9603         * lra-constraints.c (process_address_1): Likewise.
9604         * config/darwin.c: Adjust.
9605         * genconfig.c (main): Always define HAVE_lo_sum.
9606
9607 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
9608
9609         * genmatch.c (parser::parse_operation): Reject expanding
9610         operator-list inside 'for'.
9611
9612 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
9613
9614         * genmatch.c (parser::parse_for): Reject iterator if used as
9615         operator-list.
9616
9617 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
9618
9619         * genmatch.c (parser::parse_operator_list): Check for CPP_CLOSE_PAREN
9620         after end of id-list.
9621
9622 2015-05-22  Jan Hubicka  <hubicka@ucw.cz>
9623
9624         * tree.c (gimple_canonical_types_compatible_p): Sanity check that
9625         we do not try to compute canonical type for type that does not need
9626         alias set.
9627         (verify_type): Drop FIXME for METHOD_TYPE, update FIXME for
9628         FUNCITON_TYPE.
9629         * tree.h (type_with_alias_set_p): New.
9630
9631 2015-05-22  Jan Hubicka  <hubicka@ucw.cz>
9632
9633         * tree.c (gimple_canonical_types_compatible_p):  Do not compare
9634         function attributes.
9635         (verify_type): Remove METHOD_TYPE FIXME; update FUNCTION_TYPE.
9636
9637 2015-05-22  Jim Wilson  <jim.wilson@linaro.org>
9638
9639         * Makefile.in (check_gcc_parallelize): Delete.
9640         (lang_checks_parallelized): Update comment.
9641
9642 2015-05-22  Mikhail Maltsev  <maltsevm@gmail.com>
9643
9644         PR rtl-optimization/66237
9645         * bb-reorder.c (fix_crossing_conditional_branches): Fix wrong
9646         location of an "as_a" cast.
9647
9648 2015-05-22  Jeff Law  <law@redhat.com>
9649
9650         * config/pa/pa.md (non-canonical shift-add insns): Remove.
9651         (peepholes with non-canonical RTL sources): Remove.
9652         (peepholes for indexed stores of FP regs in integer modes): Match and
9653         generate canonical RTL.
9654
9655 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
9656
9657         PR tree-optimization/63387
9658         * match.pd ((X /[ex] A) * A -> X): Remove unnecessary condition.
9659         ((x ord x) & (y ord y) -> (x ord y),
9660         (x ord x) & (x ord y) -> (x ord y)): New simplifications.
9661         * fold-const.c (tree_unary_nonnegative_warnv_p) <ABS_EXPR>: Handle
9662         vectors like scalars.
9663
9664 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
9665
9666         * convert.c (convert_to_integer, convert_to_vector): Include the
9667         types in the error message.
9668
9669 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
9670
9671         * match.pd ((x | y) & ~x -> y & ~x, (x & y) | ~x -> y | ~x): New
9672         simplifications.
9673
9674 2015-05-22  Jeff Law  <law@redhat.com>
9675
9676         * config/pa/pa.md (integer_indexed_store splitters): Use
9677         mem_shadd_operand.  Use ASHIFT rather than MULT in the resulting
9678         insns -- adjusting the constant 2nd operand accordingly.
9679
9680         * combine.c (try_combine): Canonicalize (plus (mult X pow2) Y) into
9681         (plus (ashift X log2) Y) if it is a split point.
9682
9683         * config/pa/pa.c (mem_shadd_or_shadd_rtx_p): New function factoredx
9684         out of hppa_legitimize_address to handle both forms of a multiply
9685         by 2, 4 or 8.
9686         (hppa_legitimize_address): Use mem_shadd_or_shadd_rtx_p.
9687         Always generate the ASHIFT variant as the result is not directly
9688         used in a MEM.  Update comments and refactor slightly to improve
9689         readability.
9690
9691 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9692
9693         PR target/65491
9694         * config/aarch64/aarch64.c (aarch64_short_vector_p): Move above
9695         aarch64_composite_type_p.  Remove check for aarch64_composite_type_p.
9696         (aarch64_composite_type_p): Return false if given type and mode are
9697         for a short vector.
9698
9699 2015-05-22  Richard Biener  <rguenther@suse.de>
9700
9701         * tree-vectorizer.h (struct _slp_oprnd_info): Add second_pattern
9702         member.
9703         * tree-vect-loop.c (vect_analyze_loop_operations): Look at
9704         patterns when determining whether SLP is pure.
9705         (vect_is_slp_reduction): Remove check for pattern stmts.
9706         (vect_is_simple_reduction_1): Remove dead code.
9707         * tree-vect-slp.c (vect_create_oprnd_info): Initialize second_pattern.
9708         (vect_get_and_check_slp_defs): Pass in the stmt number.
9709         Allow the first def in a reduction to be not a pattern stmt when
9710         the rest of the stmts def are patterns.
9711         (vect_build_slp_tree_1): Allow tcc_expression codes like
9712         SAD_EXPR and DOT_PROD_EXPR.
9713         (vect_build_slp_tree): Adjust.
9714         (vect_analyze_slp): Refactor and move BB vect error message ...
9715         (vect_slp_analyze_bb_1): ... here.
9716
9717 2015-05-22  Aldy Hernandez  <aldyh@redhat.com>
9718
9719         * tree-switch-conversion.c (build_one_array): Set DECL_IGNORED_P
9720         for CSWTCH temporary.
9721
9722 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9723
9724         * config/arm/arm.c (arm_new_rtx_costs): Handle UNSPEC_VOLATILE.
9725         (arm_unspec_cost): Allow UNSPEC_VOLATILE.  Do not recurse inside
9726         unknown unspecs.
9727
9728 2015-05-22  Richard Biener  <rguenther@suse.de>
9729
9730         PR tree-optimization/66251
9731         * tree-vect-stmts.c (vectorizable_conversion): Properly
9732         set STMT_VINFO_VEC_STMT even for the SLP case.
9733
9734 2015-05-22  Marek Polacek  <polacek@redhat.com>
9735
9736         * doc/extend.texi: Use @pxref instead of @xref.
9737
9738 2015-05-22  hiraditya  <hiraditya@msn.com>
9739
9740         * gimple.h (gimple_expr_type): Refactor to make it concise. Remove
9741         redundant if.
9742
9743 2015-05-22  Richard Biener  <rguenther@suse.de>
9744
9745         PR tree-optimization/65701
9746         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
9747         Move peeling cost models into one place.  Peel for alignment
9748         for single loads only if an aligned load is cheaper than
9749         an unaligned load.
9750
9751 2015-05-22  Marek Polacek  <polacek@redhat.com>
9752
9753         PR c/47043
9754         * doc/extend.texi (Enumerator Attributes): New section.
9755         Document syntax of enumerator attributes.
9756
9757 2015-05-22  Richard Biener  <rguenther@suse.de>
9758
9759         * tree-vect-loop.c (get_reduction_op): New function.
9760         (vect_model_reduction_cost): Use it, add reduc_index parameter.
9761         Make ready for BB reductions.
9762         (vect_create_epilog_for_reduction): Use get_reduction_op.
9763         (vectorizable_reduction): Init reduc_index to a valid value.
9764         Adjust vect_model_reduction_cost call.
9765         * tree-vect-slp.c (vect_get_constant_vectors): Use the proper
9766         operand for reduction defaults.  Add SAD_EXPR support.
9767         Assert we have a neutral op for SLP reductions.
9768         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): When
9769         walking pattern stmt ops only recurse to SSA names.
9770
9771 2015-05-22  Richard Biener  <rguenther@suse.de>
9772
9773         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Replace
9774         assert with guard, remove check on detected reduction.
9775         (vect_recog_sad_pattern): Likewise.
9776         (vect_recog_widen_sum_pattern): Likewise.
9777
9778 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9779
9780         * config/aarch64/arm_neon.h (vaeseq_u8): Add __extension__ and
9781         __always_inline__ attribute.
9782         (vaesdq_u8): Likewise.
9783         (vaesmcq_u8): Likewise.
9784         (vaesimcq_u8): Likewise.
9785         (vsha1cq_u32): Likewise.
9786         (vsha1mq_u32): Likewise.
9787         (vsha1pq_u32): Likewise.
9788         (vsha1h_u32): Likewise.
9789         (vsha1su0q_u32): Likewise.
9790         (vsha1su1q_u32): Likewise.
9791         (vsha256hq_u32): Likewise.
9792         (vsha256h2q_u32): Likewise.
9793         (vsha256su0q_u32): Likewise.
9794         (vsha256su1q_u32): Likewise.
9795         (vmull_p64): Likewise.
9796         (vmull_high_p64): Likewise.
9797
9798 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9799
9800         * final.c (final_scan_insn): Don't check HAVE_peephole with the
9801         preprocessor.
9802         * output.h: Likewise.
9803         * genconfig.c (main): Alwways define HAVE_peephole.
9804         * genpeep.c: Don't emit checks of HAVE_peephole.
9805
9806 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9807
9808         * combine.c, expmed.c, expr.c, optabs.c optabs.h, toplev.c: DOn't
9809         check HAVE_conditional_move with the preprocessor.
9810
9811 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9812
9813         * genconfig.c (main): Always define HAVE_conditional_move.
9814         * combine.c, expmed.c, expr.c, ifcvt.c, optabs.c, optabs.h,
9815         toplev.c, tree-ssa-phiopt.c: Don't check if HAVE_conditional_move
9816         is defined.
9817
9818 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9819
9820         * combine.c, df-problems.c, df-scan.c, emit-rtl.c, reginfo.c,
9821         reload.c, rtlanal.c: Remove comparison of ARG_FRAME_POINTER_REGNUM
9822         and FRAME_POINTER_REGNUM with the preprocessor.
9823
9824 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9825
9826         * defaults.h: Add default for STACK_PUSH_CODE.
9827         * expr.c: Don't redefine STACK_PUSH_CODE.
9828         * recog.c: Likewise.
9829
9830 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9831
9832         * builtins.c, dwarf2cfi.c, explow.c, expr.c, recog.c,
9833         sched-deps.c: Use if instead of preprocessor checks with
9834         STACK_GROWS_DOWNWARD.
9835
9836 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9837
9838         * *.c: Check the value of STACK_GROWS_DOWNWARD rather than if it
9839         is defined.
9840         * config/**/*.h: Define STACK_GROWS_DOWNWARD to an integer.
9841         * defaults.h: Provide default for STACK_GROWS_DOWNWARD.
9842         * doc/tm.texi.in: Update references to STACK_GROWS_DOWNWARD.
9843         * doc/tm.texi: Regenerate.
9844
9845 2015-05-21  H.J. Lu  <hongjiu.lu@intel.com>
9846
9847         PR target/66232
9848         * config/i386/constraints.md (Bg): New constraint for GOT memory
9849         operand.
9850         * config/i386/i386.md (*call_got_x32): New pattern.
9851         (*call_value_got_x32): Likewise.
9852         * config/i386/predicates.md (GOT_memory_operand): New predicate.
9853
9854 2015-05-21  Jakub Jelinek  <jakub@redhat.com>
9855
9856         PR tree-optimization/66233
9857         * match.pd (ocvt (icvt@1 @0)): Don't handle vector types.
9858         Simplify.
9859
9860 2015-05-21  Jeff Law  <law@redhat.com>
9861
9862         * config/pa/pa.md (add-with-constant splitter): Use ASHIFT rather
9863         than MULT for shadd sequences.
9864
9865 2015-05-08  Jan Hubicka  <hubicka@ucw.cz>
9866
9867         * alias.c (alias_stats): New static var.
9868         (alias_sets_conflict_p, alias_sets_must_conflict_p): Update stats.
9869         (dump_alias_stats_in_alias_c): New function.
9870         * alias.h (dump_alias_stats_in_alias_c): Declare.
9871         * tree-ssa-alias.c (dump_alias_stats): Call it.
9872
9873 2015-05-08  Michael Matz  <matz@suse.de>
9874
9875         * tree-vectorizer.h (struct _stmt_vec_info): Rename stride_load_p
9876         to strided_p.
9877         (STMT_VINFO_STRIDE_LOAD_P): Rename to ...
9878         (STMT_VINFO_STRIDED_P): ... this.
9879         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust.
9880         (vect_verify_datarefs_alignment): Likewise.
9881         (vect_enhance_data_refs_alignment): Likewise.
9882         (vect_analyze_data_ref_access): Likewise.
9883         (vect_analyze_data_refs): Accept strided stores.
9884         * tree-vect-stmts.c (vect_model_store_cost): Count strided stores.
9885         (vect_model_load_cost): Adjust for macro rename.
9886         (vectorizable_mask_load_store): Likewise.
9887         (vectorizable_load): Likewise.
9888         (vectorizable_store): Open code strided stores.
9889
9890 2015-05-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9891
9892         * doc/sourcebuild.texi (7.2.3.9 Other hardware attributes):
9893         Document sqrt_insn.
9894
9895 2015-05-21  Richard Biener  <rguenther@suse.de>
9896
9897         PR c++/66211
9898         * match.pd: Guard pattern optimzing (int)(float)int
9899         conversions to apply only on GIMPLE.
9900
9901 2015-05-21  Jeff Law  <law@redhat.com>
9902
9903         * combine.c (find_split_point): Handle ASHIFT like MULT to encourage
9904         multiply-accumulate/shift-add insn generation.
9905
9906 2015-05-21  Oleg Endo  <olegendo@gcc.gnu.org>
9907
9908         PR target/54236
9909         * config/sh/sh.md (*round_int_even): Reject pattern if operands[0] and
9910         operands[1] are the same.
9911
9912 2015-05-21  Ilya Enkovich  <enkovich.gnu@gmail.com>
9913
9914         PR middle-end/66221
9915         * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Use
9916         build_distinct_type_copy to copy bounds.
9917
9918 2015-05-21  Thomas Schwinge  <thomas@codesourcery.com>
9919
9920         * genrecog.c (MAX_DEPTH, MIN_NUM_STATEMENTS, MAX_NUM_STATEMENTS):
9921         Change to unsigned int.
9922
9923 2015-05-20  Jeff Law  <law@redhat.com>
9924
9925         * config/pa/pa.c (pa_print_operand): New 'o' output modifier.
9926         (pa_mem_shadd_constant_p): Renamed from pa_shadd_constant_p.
9927         (pa_shadd_constant_p): Allow constants for shadd insns rather
9928         than valid scaling constants for memory addresses.
9929         * config/pa/pa-protos.h (pa_mem_shadd_constant_p): Add prototype.
9930         * config/pa/predicates.md (mem_shadd_operand): New predicate.
9931         * config/pa/pa.md (shift-add insns using MULT): Use mem_shadd_operand.
9932         (shift-add insns using ASHIFT): New patterns.
9933
9934 2015-05-20  Mikhail Maltsev  <maltsevm@gmail.com>
9935
9936         * bb-reorder.c (set_edge_can_fallthru_flag): Use rtx_jump_insn where
9937         feasible.
9938         (fix_up_fall_thru_edges): Likewise.
9939         (fix_crossing_conditional_branches): Likewise. Promote jump targets
9940         from to rtx_insn to rtx_code_label where feasible.
9941         * bt-load.c (move_btr_def): Remove as-a cast of the value returned by
9942         gen_move_insn (returned type changed to rtx_insn).
9943         * builtins.c (expand_errno_check): Fix arguments of
9944         do_compare_rtx_and_jump (now expects rtx_code_label).
9945         (expand_builtin_acc_on_device): Likewise.
9946         * cfgcleanup.c (try_simplify_condjump): Add cast when calling
9947         invert_jump (now exprects rtx_jump_insn).
9948         * cfgexpand.c (label_rtx_for_bb): Promote return type to rtx_code_label.
9949         (construct_init_block): Use rtx_code_label.
9950         * cfgrtl.c (block_label): Promote return type to rtx_code_label.
9951         (try_redirect_by_replacing_jump): Use cast to rtx_jump_insn when
9952         calling redirect_jump.
9953         (patch_jump_insn): Likewise.
9954         (redirect_branch_edge): Likewise.
9955         (force_nonfallthru_and_redirect): Likewise.
9956         (fixup_reorder_chain): Explicitly use rtx_jump_insn instead of rtx_insn
9957         when suitable.
9958         (rtl_lv_add_condition_to_bb): Update call of do_compare_rtx_and_jump.
9959         * cfgrtl.h: Promote return type of block_label to rtx_code_label.
9960         * config/bfin/bfin.c (hwloop_optimize): Fix call of emit_label_before.
9961         * config/i386/i386.c (ix86_emit_cmove): Explicitly use rtx_code_label
9962         to store the value retured by gen_label_rtx.
9963         * config/mips/mips.c (mips16_split_long_branches): Promote rtx_insn to
9964         rtx_jump_insn.
9965         * config/sh/sh.c (gen_far_branch): Likewise. Fix call of invert_jump.
9966         (split_branches): Fix calls of redirect_jump.
9967         * dojump.c (jumpifnot): Promote argument type from rtx to
9968         rtx_code_label.
9969         (jumpifnot_1): Likewise.
9970         (jumpif): Likewise.
9971         (jumpif_1): Likewise.
9972         (do_jump_1): Likewise.
9973         (do_jump): Likewise. Use rtx_code_label when feasible.
9974         (do_jump_by_parts_greater_rtx): Likewise.
9975         (do_jump_by_parts_zero_rtx): Likewise.
9976         (do_jump_by_parts_equality_rtx): Likewise.
9977         (do_compare_rtx_and_jump): Likewise.
9978         * dojump.h: Update function prototypes.
9979         * dse.c (emit_inc_dec_insn_before): Remove case (gen_move_insn now
9980         returns rtx_insn).
9981         * emit-rtl.c (emit_jump_insn_before_noloc): Promote return type to
9982         rtx_jump_insn.
9983         (emit_label_before): Likewise.
9984         (emit_jump_insn_after_noloc): Likewise.
9985         (emit_jump_insn_after_setloc): Likewise.
9986         (emit_jump_insn_after): Likewise
9987         (emit_jump_insn_before_setloc): Likewise.
9988         (emit_jump_insn_before): Likewise.
9989         (emit_label_before): Promote return type to rtx_code_label.
9990         (emit_label): Likewise.
9991         * except.c (sjlj_emit_dispatch_table): Use jump_target_rtx.
9992         * explow.c (emit_stack_save): Use gen_move_insn_uncast instead of
9993         gen_move_insn.
9994         (emit_stack_restore): Likewise.
9995         * expmed.c (emit_store_flag_force): Fix calls of do_compare_rtx_and_jump.
9996         (do_cmp_and_jump): Likewise.
9997         * expr.c (expand_expr_real_2): Likewise. Promote some local variables
9998         from rtx to rtx_code_label.
9999         (gen_move_insn_uncast): New function.
10000         * expr.h: Update return type of gen_move_insn (promote to rtx_insn).
10001         * function.c (convert_jumps_to_returns): Fix call of redirect_jump.
10002         * gcse.c (pre_insert_copy_insn): Use rtx_insn instead of rtx.
10003         * ifcvt.c (dead_or_predicable): Use rtx_jump_insn when calling
10004         invert_jump_1 and redirect_jump_1.
10005         * internal-fn.c (expand_arith_overflow_result_store): Fix call of
10006         do_compare_rtx_and_jump.
10007         (expand_addsub_overflow): Likewise.
10008         (expand_neg_overflow): Likewise.
10009         (expand_mul_overflow): Likewise.
10010         * ira.c (split_live_ranges_for_shrink_wrap): Use rtx_insn for
10011         return value of gen_move_insn.
10012         * jump.c (redirect_jump): Promote argument from rtx to rtx_jump_insn.
10013         * loop-doloop.c (add_test): Use rtx_code_label.
10014         (doloop_modify): Likewise.
10015         (doloop_optimize): Likewise.
10016         * loop-unroll.c (compare_and_jump_seq): Promote rtx to rtx_code_label.
10017         * lra-constraints.c (emit_spill_move): Remove cast of value returned
10018         by gen_move_insn.
10019         (inherit_reload_reg): Add cast when calling dump_insn_slim.
10020         (split_reg): Likewise.
10021         * modulo-sched.c (schedule_reg_moves): Remove cast of value returned by
10022         gen_move_insn.
10023         * optabs.c (expand_binop_directly): Remove casts of values returned by
10024         maybe_gen_insn.
10025         (expand_unop_direct): Likewise.
10026         (expand_abs): Likewise.
10027         (maybe_emit_unop_insn): Likewise.
10028         (maybe_gen_insn): Promote return type to rtx_insn.
10029         * optabs.h: Update prototype of maybe_gen_insn.
10030         * postreload-gcse.c (eliminate_partially_redundant_load): Remove
10031         redundant cast.
10032         * recog.c (struct peep2_insn_data): Promote type of insn field to
10033         rtx_insn.
10034         (peep2_reinit_state): Use NULL instead of NULL_RTX.
10035         (peep2_attempt): Remove casts of insn in peep2_insn_data.
10036         (peep2_fill_buffer): Promote argument from rtx to rtx_insn
10037         * recog.h (struct insn_gen_fn): Promote return types of function
10038         pointers and operator ().from rtx to rtx_insn.
10039         * reorg.c (fill_simple_delay_slots): Promote rtx_insn to rtx_jump_insn.
10040         (fill_eager_delay_slots): Likewise.
10041         (relax_delay_slots): Likewise.
10042         (make_return_insns): Likewise.
10043         (dbr_schedule): Likewise.
10044         (optimize_skips): Likewise.
10045         (reorg_redirect_jump): Likewise.
10046         (fill_slots_from_thread): Likewise.
10047         * reorg.h: Update prototypes.
10048         * resource.c (find_dead_or_set_registers): Use dyn_cast to
10049         rtx_jump_insn instead of check.  Use it's jump_target method.
10050         * rtl.h (rtx_jump_insn::jump_label): Define new method.
10051         (rtx_jump_insn::jump_target): Define new method.
10052         (rtx_jump_insn::set_jump_target): Define new method.
10053         * rtlanal.c (tablejump_p): Promote type of one local variable.
10054         * sched-deps.c (sched_analyze_2): Promote rtx to rtx_insn_list.
10055         (sched_analyze_insn): Likewise.
10056         * sched-vis.c (print_insn_with_notes): Promote rtx to rtx_insn.
10057         (print_insn): Likewise.
10058         * stmt.c (label_rtx): Promote return type to rtx_insn.
10059         (force_label_rtx): Likewise.
10060         (jump_target_rtx): Define new function.
10061         (expand_label): Use it, get rid of one cast.
10062         (expand_naked_return): Promote rtx to rtx_code_label.
10063         (do_jump_if_equal): Fix do_compare_rtx_and_jump call.
10064         (expand_case): Use rtx_code_label instread of rtx where feasible.
10065         (expand_sjlj_dispatch_table): Likewise.
10066         (emit_case_nodes): Likewise.
10067         * stmt.h: Declare jump_target_rtx.  Update prototypes.  Fix comments.
10068         * store-motion.c (insert_store): Make use of new return type of
10069         gen_move_insn and remove a cast.
10070         (replace_store_insn): Likewise.
10071
10072 2015-05-20  Max Filippov  <jcmvbkbc@gmail.com>
10073
10074         * config/xtensa/xtensa.c (init_alignment_context): Replace MULT
10075         by BITS_PER_UNIT with ASHIFT by exact_log2 (BITS_PER_UNIT).
10076
10077 2015-05-20  Jeff Law  <law@redhat.com>
10078
10079         * tree-ssa-threadupdate.c (mark_threaded_blocks): Properly
10080         dispose of the jump thread path when the jump threading
10081         opportunity is cancelled.
10082
10083 2015-05-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10084
10085         * diagnostic.c (diagnostic_print_caret_line): Fix off-by-one error
10086         when printing the caret character.
10087
10088 2015-05-20  Marek Polacek  <polacek@redhat.com>
10089
10090         * cfgexpand.c (expand_debug_expr): Use UNARY_CLASS_P.
10091
10092 2015-05-20  Marek Polacek  <polacek@redhat.com>
10093
10094         * expr.c (expand_cond_expr_using_cmove): Use COMPARISON_CLASS_P.
10095         * gimple-expr.c (gimple_cond_get_ops_from_tree): Likewise.
10096         * gimple-fold.c (canonicalize_bool): Likewise.
10097         (same_bool_result_p): Likewise.
10098         * tree-if-conv.c (parse_predicate): Likewise.
10099
10100 2015-05-20  Marek Polacek  <polacek@redhat.com>
10101
10102         * gimple-fold.c (fold_const_aggregate_ref_1): Use DECL_P.
10103         * gimplify.c (gimplify_modify_expr_rhs): Likewise.
10104
10105 2015-05-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10106
10107         * config/aarch64/aarch64.c (aarch64_class_max_nregs):
10108         Use UNITS_PER_VREG and UNITS_PER_WORD instead of their direct
10109         values.
10110
10111 2015-05-20  Robert Suchanek  <robert.suchanek@imgtec.com>
10112
10113         * config/mips/mips.h (micromips_globals): Declare.
10114
10115 2015-05-20  David Malcolm  <dmalcolm@redhat.com>
10116
10117         * timevar.def (TV_INITIALIZE_RTL): New.
10118         * toplev.c (initialize_rtl): Use an auto_timevar to account this
10119         function's time to TV_INITIALIZE_RTL.
10120
10121 2015-05-20  Ilya Enkovich  <enkovich.gnu@gmail.com>
10122
10123         * tree-chkp.c (chkp_maybe_copy_and_register_bounds): Remove useless
10124         gimple_build_nop calls.
10125         (chkp_find_bounds_for_elem): Likewise.
10126         (chkp_get_zero_bounds): Likewise.
10127         (chkp_get_none_bounds): Likewise.
10128         (chkp_get_bounds_by_definition): Likewise.
10129         (chkp_generate_extern_var_bounds): Likewise.
10130         (chkp_get_bounds_for_decl_addr): Likewise.
10131         (chkp_get_bounds_for_string_cst): Likewise.
10132
10133 2015-05-20  Bin Cheng  <bin.cheng@arm.com>
10134
10135         PR tree-optimization/65447
10136         * tree-ssa-loop-ivopts.c (struct iv_use): New fields.
10137         (dump_use, dump_uses): Support to dump sub use.
10138         (record_use): New parameters to support sub use.  Remove call to
10139         dump_use.
10140         (record_sub_use, record_group_use): New functions.
10141         (compute_max_addr_offset, split_all_small_groups): New functions.
10142         (group_address_uses, rewrite_use_address): New functions.
10143         (strip_offset): New declaration.
10144         (find_interesting_uses_address): Call record_group_use.
10145         (add_candidate): New assertion.
10146         (infinite_cost_p): Move definition forward.
10147         (add_costs): Check INFTY cost and return immediately.
10148         (get_computation_cost_at): Clear setup cost and dependent bitmap
10149         for sub uses.
10150         (determine_use_iv_cost_address): Compute cost for sub uses.
10151         (rewrite_use_address_1): Rename from old rewrite_use_address.
10152         (free_loop_data): Free sub uses.
10153         (tree_ssa_iv_optimize_loop): Call group_address_uses.
10154
10155 2015-05-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
10156             Jim Wilson  <jim.wilson@linaro.org>
10157
10158         * config/arm/aarch-common-protos.h (struct mem_cost_table): Added
10159         new  fields loadv and storev.
10160         * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
10161         Initialize loadv and storev.
10162         * config/arm/aarch-cost-tables.h (generic_extra_costs): Likewise.
10163         (cortexa53_extra_costs): Likewise.
10164         (cortexa57_extra_costs): Likewise.
10165         (xgene1_extra_costs): Likewise.
10166         * config/aarch64/aarch64.c (aarch64_rtx_costs): Update vector
10167         rtx_costs.
10168
10169 2015-05-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
10170
10171         * config/arm/arm.c (cortexa9_extra_costs): Initialize loadv and
10172          storev.
10173         (cortexa8_extra_costs): Likewise.
10174         (cortexa5_extra_costs): Likewise.
10175         (cortexa7_extra_costs): Likewise.
10176         (cortexa12_extra_costs): Likewise.
10177         (cortexa15_extra_costs): Likewise.
10178         (v7m_extra_costs): Likewise.
10179
10180 2015-05-20  Jeff Law  <law@redhat.com>
10181
10182         * tree-ssa-threadupdate.c (thread_single_edge): Use delete_jump_thread
10183         instead of open-coded version.  Also delete the jump thread created
10184         within this function.
10185
10186 2015-05-20  Alan Modra  <amodra@gmail.com>
10187
10188         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Return
10189         stack adjusting insn.  Formatting.
10190         (rs6000_emit_prologue): Track stack adjusting insn, and use of
10191         r12.  If possible, emit first -fsplit-stack arg pointer insn
10192         before stack adjust.  Don't use r12 to save cr if split-stack.
10193
10194 2015-05-20  Alan Modra  <amodra@gmail.com>
10195
10196         * common/config/rs6000/rs6000-common.c (TARGET_SUPPORTS_SPLIT_STACK):
10197         Define.
10198         (rs6000_supports_split_stack): New function.
10199         * gcc/config/rs6000/rs6000.c (machine_function): Add
10200         split_stack_arg_pointer.
10201         (TARGET_EXTRA_LIVE_ON_ENTRY, TARGET_INTERNAL_ARG_POINTER): Define.
10202         (setup_incoming_varargs): Use crtl->args.internal_arg_pointer
10203         rather than virtual_incoming_args_rtx.
10204         (rs6000_va_start): Likewise.
10205         (split_stack_arg_pointer_used_p): New function.
10206         (rs6000_emit_prologue): Set up arg pointer for -fsplit-stack.
10207         (morestack_ref): New var.
10208         (gen_add3_const, rs6000_expand_split_stack_prologue,
10209         rs6000_internal_arg_pointer, rs6000_live_on_entry,
10210         rs6000_split_stack_space_check): New functions.
10211         (rs6000_elf_file_end): Call file_end_indicate_split_stack.
10212         * gcc/config/rs6000/rs6000.md (UNSPEC_STACK_CHECK): Define.
10213         (UNSPECV_SPLIT_STACK_RETURN): Define.
10214         (split_stack_prologue, load_split_stack_limit,
10215         load_split_stack_limit_di, load_split_stack_limit_si,
10216         split_stack_return, split_stack_space_check): New expands and insns.
10217         * gcc/config/rs6000/rs6000-protos.h
10218         (rs6000_expand_split_stack_prologue): Declare.
10219         (rs6000_split_stack_space_check): Declare.
10220
10221 2015-05-20  Alan Modra  <amodra@gmail.com>
10222
10223         * config/rs6000/rs6000.c (struct rs6000_stack): Correct comments.
10224         (direct_return): Test vrsave_size rather than vrsave_mask.
10225         (rs6000_emit_prologue): Likewise.  Remove redundant altivec tests.
10226         (rs6000_emit_epilogue): Likewise.
10227
10228 2015-05-20  Alan Modra  <amodra@gmail.com>
10229
10230         * config/rs6000/rs6000.c (rs6000_stack_info): Don't zero offsets
10231         when not saving registers.
10232         (debug_stack_info): Adjust to omit printing unused offsets,
10233         as before.
10234         (rs6000_emit_epilogue): Adjust use_backchain_to_restore_sp
10235         expression.
10236
10237 2015-05-19  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10238
10239         PR c++/65835
10240         * config/i386/winnt.c (struct wrapped_symbol_hasher): Change
10241         value_type to const char *.
10242
10243 2015-05-19  Sandra Loosemore  <sandra@codesourcery.com>
10244
10245         * config.gcc [powerpc*-*-linux*]: Allow --enable-targets=all
10246         to build a biarch toolchain again.
10247
10248 2015-05-19  Jan Hubicka  <hubicka@ucw.cz>
10249
10250         * ipa-devirt.c (type_in_anonymous_namespace_p): Return true
10251         or implicit declarations.
10252         (odr_type_p): Check that TYPE_NAME is TYPE_DECL before looking
10253         into it.
10254         (get_odr_type): Check type has linkage before adding bases.
10255         (register_odr_type): Check that type has linkage before adding it.
10256         (type_known_to_have_no_deriavations_p): Rename to ..
10257         (type_known_to_have_no_derivations_p): This one.
10258         * ipa-utils.h (type_known_to_have_no_deriavations_p): Rename to ..
10259         (type_known_to_have_no_derivations_p): This one.
10260         * ipa-polymorphic-call.c
10261         (ipa_polymorphic_call_context::restrict_to_inner_type): Check that
10262         type has linkage.
10263
10264 2015-05-19  Eric Botcazou  <ebotcazou@adacore.com>
10265
10266         * stor-layout.c (finalize_type_size): Use AGGREGATE_TYPE_P.
10267         (layout_type): Use RECORD_OR_UNION_TYPE_P.
10268
10269 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10270
10271         * config/s390/s390.c (s390_vector_bool_type_p): New function.
10272         (s390_invalid_binary_op): New function.
10273         (TARGET_INVALID_BINARY_OP): Define macro.
10274
10275 2015-05-19  David Sherwood  <david.sherwood@arm.com>
10276
10277         * loop-invariant.c (create_new_invariant): Don't calculate address cost
10278         if mode is not a scalar integer.
10279         (get_inv_cost): Increase computational cost for unused invariants.
10280
10281 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10282
10283         * config.gcc: Add vecintrin.h to extra_headers.  Add s390-c.o to
10284         c_target_objs and cxx_target_objs.  Add t-s390 to tmake_file.
10285         * config/s390/s390-builtin-types.def: New file.
10286         * config/s390/s390-builtins.def: New file.
10287         * config/s390/s390-builtins.h: New file.
10288         * config/s390/s390-c.c: New file.
10289         * config/s390/s390-modes.def: Add modes CCVEQANY, CCVH,
10290         CCVHANY, CCVHU, CCVHUANY, CCVFHANY, CCVFHEANY.
10291         * config/s390/s390-protos.h (s390_expand_vec_compare_cc)
10292         (s390_cpu_cpp_builtins, s390_register_target_pragmas): Add
10293         prototypes.
10294         * config/s390/s390.c (s390-builtins.h, s390-builtins.def):
10295         Include.
10296         (flags_builtin, flags_overloaded_builtin_var, s390_builtin_types)
10297         (s390_builtin_fn_types, s390_builtin_decls, code_for_builtin): New
10298         variable definitions.
10299         (s390_const_operand_ok): New function.
10300         (s390_expand_builtin): Rewrite.
10301         (s390_init_builtins): New function.
10302         (s390_handle_vectorbool_attribute): New function.
10303         (s390_attribute_table): Add s390_vector_bool attribute.
10304         (s390_match_ccmode_set): Handle new cc modes CCVH, CCVHU.
10305         (s390_branch_condition_mask): Generate masks for new modes.
10306         (s390_expand_vec_compare_cc): New function.
10307         (s390_mangle_type): Add mangling for vector bool types.
10308         (enum s390_builtin): Remove.
10309         (s390_atomic_assign_expand_fenv): Rename constants for sfpc and
10310         efpc builtins.
10311         * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Call
10312         s390_cpu_cpp_builtins.
10313         (REGISTER_TARGET_PRAGMAS): New macro.
10314         * config/s390/s390.md: Define more UNSPEC_VEC_* constants.
10315         (insn_cmp mode attribute): Add new CC modes.
10316         (s390_sfpc, s390_efpc): Rename patterns to sfpc and efpc.
10317         (lcbb): New pattern definition.
10318         * config/s390/s390intrin.h: Include vecintrin.h.
10319         * config/s390/t-s390: New file.
10320         * config/s390/vecintrin.h: New file.
10321         * config/s390/vector.md: Include vx-builtins.md.
10322         * config/s390/vx-builtins.md: New file.S/390 zvector builtin
10323         support.
10324
10325 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10326
10327         * config/s390/s390-modes.def: Add new modes CCVEQ, CCVFH, and
10328         CCVFHE.
10329         * config/s390/s390.c (s390_match_ccmode_set): Handle new modes.
10330         (s390_select_ccmode): Likewise.
10331         (s390_canonicalize_comparison): Swap operands if necessary.
10332         (s390_expand_vec_compare_scalar): Expand DFmode compare using
10333         single element vector instructions.
10334         (s390_emit_compare): Call s390_expand_vec_compare_scalar.
10335         (s390_branch_condition_mask): Generate CC masks for the new modes.
10336         * config/s390/s390.md (v0, vf, vd): New mode attributes.
10337         (VFCMP, asm_fcmp, insn_cmp): New mode iterator and attributes.
10338         (*vec_cmp<insn_cmp>df_cconly, *fixuns_truncdfdi2_z13)
10339         (*fix_trunc<BFP:mode><GPR:mode>2_bfp, *floatunsdidf2_z13)
10340         (*floatuns<GPR:mode><FP:mode>2, *extendsfdf2_z13)
10341         (*extend<DSF:mode><BFP:mode>2): New insn definition.
10342         (fix_trunc<BFP:mode><GPR:mode>2_bfp, loatuns<GPR:mode><FP:mode>2)
10343         (extend<DSF:mode><BFP:mode>2): Turn into expander.
10344         (floatdi<mode>2, truncdfsf2, add<mode>3, sub<mode>3, mul<mode>3)
10345         (div<mode>3, *neg<mode>2, *abs<mode>2, *negabs<mode>2)
10346         (sqrt<mode>2): Add vector instruction.
10347
10348 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10349
10350         * config/s390/constraints.md (j00, jm1, jxx, jyy, v): New
10351         constraints.
10352         * config/s390/predicates.md (const0_operand, constm1_operand)
10353         (constable_operand): Accept vector operands.
10354         * config/s390/s390-modes.def: Add supported vector modes.
10355         * config/s390/s390-protos.h (s390_cannot_change_mode_class)
10356         (s390_function_arg_vector, s390_contiguous_bitmask_vector_p)
10357         (s390_bytemask_vector_p, s390_expand_vec_strlen)
10358         (s390_expand_vec_compare, s390_expand_vcond)
10359         (s390_expand_vec_init): Add prototypes.
10360         * config/s390/s390.c (VEC_ARG_NUM_REG): New macro.
10361         (s390_vector_mode_supported_p): New function.
10362         (s390_contiguous_bitmask_p): Mask out the irrelevant bits.
10363         (s390_contiguous_bitmask_vector_p): New function.
10364         (s390_bytemask_vector_p): New function.
10365         (s390_split_ok_p): Vector regs don't work either.
10366         (regclass_map): Add VEC_REGS.
10367         (s390_legitimate_constant_p): Handle vector constants.
10368         (s390_cannot_force_const_mem): Handle CONST_VECTOR.
10369         (legitimate_reload_vector_constant_p): New function.
10370         (s390_preferred_reload_class): Handle CONST_VECTOR.
10371         (s390_reload_symref_address):  Likewise.
10372         (s390_secondary_reload): Vector memory instructions only support
10373         short displacements.  Rename reload*_nonoffmem* to reload*_la*.
10374         (s390_emit_ccraw_jump): New function.
10375         (s390_expand_vec_strlen): New function.
10376         (s390_expand_vec_compare): New function.
10377         (s390_expand_vcond): New function.
10378         (s390_expand_vec_init): New function.
10379         (s390_dwarf_frame_reg_mode): New function.
10380         (print_operand): Handle addresses with 'O' and 'R' constraints.
10381         (NR_C_MODES, constant_modes): Add vector modes.
10382         (s390_output_pool_entry): Handle vector constants.
10383         (s390_hard_regno_mode_ok): Handle vector registers.
10384         (s390_class_max_nregs): Likewise.
10385         (s390_cannot_change_mode_class): New function.
10386         (s390_invalid_arg_for_unprototyped_fn): New function.
10387         (s390_function_arg_vector): New function.
10388         (s390_function_arg_float): Remove size variable.
10389         (s390_pass_by_reference): Handle vector arguments.
10390         (s390_function_arg_advance): Likewise.
10391         (s390_function_arg): Likewise.
10392         (s390_return_in_memory): Vector values are returned in a VR if
10393         possible.
10394         (s390_function_and_libcall_value): Handle vector arguments.
10395         (s390_gimplify_va_arg): Likewise.
10396         (s390_call_saved_register_used): Consider the arguments named.
10397         (s390_conditional_register_usage): Disable v16-v31 for non-vec
10398         targets.
10399         (s390_preferred_simd_mode): New function.
10400         (s390_support_vector_misalignment): New function.
10401         (s390_vector_alignment): New function.
10402         (TARGET_STRICT_ARGUMENT_NAMING, TARGET_DWARF_FRAME_REG_MODE)
10403         (TARGET_VECTOR_MODE_SUPPORTED_P)
10404         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN)
10405         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
10406         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT)
10407         (TARGET_VECTOR_ALIGNMENT): Define target macro.
10408         * config/s390/s390.h (FUNCTION_ARG_PADDING): Define macro.
10409         (FIRST_PSEUDO_REGISTER): Increase value.
10410         (VECTOR_NOFP_REGNO_P, VECTOR_REGNO_P, VECTOR_NOFP_REG_P)
10411         (VECTOR_REG_P): Define macros.
10412         (FIXED_REGISTERS, CALL_USED_REGISTERS)
10413         (CALL_REALLY_USED_REGISTERS, REG_ALLOC_ORDER)
10414         (HARD_REGNO_CALL_PART_CLOBBERED, REG_CLASS_NAMES)
10415         (FUNCTION_ARG_REGNO_P, FUNCTION_VALUE_REGNO_P, REGISTER_NAMES):
10416         Add vector registers.
10417         (CANNOT_CHANGE_MODE_CLASS): Call C function.
10418         (enum reg_class): Add VEC_REGS, ADDR_VEC_REGS, GENERAL_VEC_REGS.
10419         (SECONDARY_MEMORY_NEEDED): Allow SF<->SI mode moves without
10420         memory.
10421         (DBX_REGISTER_NUMBER, FIRST_VEC_ARG_REGNO, LAST_VEC_ARG_REGNO)
10422         (SHORT_DISP_IN_RANGE, VECTOR_STORE_FLAG_VALUE): Define macro.
10423         * config/s390/s390.md (UNSPEC_VEC_*): New constants.
10424         (VR*_REGNUM): New constants.
10425         (ALL): New mode iterator.
10426         (INTALL): Remove mode iterator.
10427         Include vector.md.
10428         (movti): Implement TImode moves for VRs.
10429         Disable TImode splitter for VR targets.
10430         Implement splitting TImode GPR<->VR moves.
10431         (reload*_tomem_z10, reload*_toreg_z10): Replace INTALL with ALL.
10432         (reload<mode>_nonoffmem_in, reload<mode>_nonoffmem_out): Rename to
10433         reload<mode>_la_in, reload<mode>_la_out.
10434         (*movdi_64, *movsi_zarch, *movhi, *movqi, *mov<mode>_64dfp)
10435         (*mov<mode>_64, *mov<mode>_31): Add vector instructions.
10436         (TD/TF mode splitter): Enable for GPRs only (formerly !FP).
10437         (mov<mode> SF SD): Prefer lder, lde for loading.
10438         Add lrl and strl instructions.
10439         Add vector instructions.
10440         (strlen<mode>): Rename old strlen<mode> to strlen_srst<mode>.
10441         Call s390_expand_vec_strlen on z13.
10442         (*cc_to_int): Change predicate to nonimmediate_operand.
10443         (addti3): Rename to *addti3.  New expander.
10444         (subti3): Rename to *subti3.  New expander.
10445         * config/s390/vector.md: New file.
10446
10447 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10448
10449         * common/config/s390/s390-common.c (processor_flags_table): Add
10450         z13.
10451         * config.gcc: Add z13.
10452         * config/s390/s390-opts.h (enum processor_type): Add
10453         PROCESSOR_2964_Z13.
10454         * config/s390/s390.c (s390_adjust_priority): Check for
10455         PROCESSOR_2964_Z13.
10456         (s390_reorg): Likewise.
10457         (s390_sched_reorder): Likewise.
10458         (s390_sched_variable_issue): Likewise.
10459         (s390_loop_unroll_adjust): Likewise.
10460         (s390_option_override): Likewise. Default to -mvx when available.
10461         * config/s390/s390.h (enum processor_flags): Add PF_Z13 and PF_VX.
10462         (TARGET_CPU_Z13, TARGET_CPU_VX, TARGET_Z13, TARGET_VX)
10463         (TARGET_VX_ABI): Define macros.
10464         macros.
10465         (TARGET_DEFAULT): Add MASK_OPT_VX.
10466         * config/s390/s390.md ("cpu" attribute): Add z13.
10467         ("cpu_facility" attribute): Add vec.
10468         * config/s390/s390.opt (processor_type): Add z13.
10469         (mvx): New options.
10470         * doc/invoke.texi: Add z13 option for -march.
10471
10472 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10473
10474         * config/s390/predicates.md (shift_count_or_setmem_operand): Add
10475         mode check to make sure that only scalar integer values are
10476         accepted.
10477
10478 2015-05-19  Jan Hubicka  <hubicka@ucw.cz>
10479
10480         * tree.c (verify_type_variant): Fix #undef.
10481         (gimple_canonical_types_compatible_p): Move here from lto.c
10482         (verify_type): Verify TYPE_CANONICAL compatibility.
10483         * tree.h (gimple_canonical_types_compatible_p): Declare.
10484
10485 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
10486
10487         PR middle-end/66199
10488         * tree.h (OMP_TEAMS_COMBINED): Define.
10489         * gimplify.c (enum gimplify_omp_var_data): Add
10490         GOVD_LINEAR_LASTPRIVATE_NO_OUTER.
10491         (enum omp_region_type): Add ORT_COMBINED_TEAMS.
10492         (omp_notice_variable): Accept both ORT_TEAMS
10493         and ORT_COMBINED_TEAMS.  Don't recurse if
10494         GOVD_LINEAR_LASTPRIVATE_NO_OUTER is set and either
10495         GOVD_LINEAR is set, or GOVD_LASTPRIVATE without
10496         GOVD_FIRSTPRIVATE.
10497         (omp_no_lastprivate): New function.
10498         (gimplify_scan_omp_clauses): For OMP_CLAUSE_LASTPRIVATE
10499         and OMP_CLAUSE_LINEAR, if omp_no_lastprivate, don't
10500         notice_outer and set appropriate bits, otherwise make
10501         sure default(none) combined constructs won't complain.
10502         (gimplify_adjust_omp_clauses): Remove OMP_CLAUSE_LINEAR
10503         outer special casing, for OMP_CLAUSE_LASTPRIVATE if
10504         omp_no_lastprivate either remove the clause or turn it
10505         into OMP_CLAUSE_PRIVATE.
10506         (gimplify_omp_for): Fix up handling of implicit
10507         lastprivate or linear iterators.
10508         (gimplify_omp_workshare): For OMP_TEAMS_COMBINED use
10509         ORT_COMBINED_TEAMS.
10510         * omp-low.c (lower_omp_for_lastprivate): For combined
10511         for simd use fd.loop.n2 from the for rather than simd.
10512
10513 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10514
10515         * config/cris/cris.c (cris_expand_prologue): Use gen_raw_REG
10516         instead of gen_rtx_raw_REG.
10517         (cris_expand_epilogue): Likewise.
10518         * config/microblaze/microblaze.c (microblaze_classify_address):
10519         Likewise.
10520         * config/sparc/sparc.md: Likewise.
10521
10522 2015-05-19  Uros Bizjak  <ubizjak@gmail.com>
10523
10524         * config/alpha/alpha.c (alpha_legitimize_reload_address)
10525         (alpha_preferred_reload_class, alpha_legitimate_constant_p): Use
10526         CONST_INT_P, CONST_SCALAR_INT_P and CONST_DOUBLE_P predicates.
10527         (alpha_split_reload_pair) <case CONST_INT, case CONST_WIDE_INT>:
10528         Use CASE_CONST_SCALAR_INT.
10529         (print_operand) <case 'M'>: Use mode_width_operand to check the
10530         value of the constant.
10531         * config/alpha/alpha.md (movti): Use CONST_SCALAR_INT_P predicate.
10532         * config/alpha/predicates.md (input_operand): Use general_operand
10533         instead of match_code as operand check.
10534         (symbolic_operand): Use match_code with subexpression digits.
10535         * config/alpha/constraints.md (Q): Ditto.
10536
10537 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10538
10539         * optabs.c (expand_vec_perm): Don't re-use SEL as target operand.
10540
10541 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10542
10543         * config/s390/s390.c (s390_secondary_reload): Fix check for
10544         load/store relative.
10545
10546 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10547
10548         * recog.h: Increase MAX_RECOG_ALTERNATIVES.  Change type of
10549         alternative_mask to uint64_t.
10550
10551 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
10552
10553         PR tree-optimization/66187
10554         * match.pd ((bit_and (plus/minus (convert @0) (convert @1)) mask)):
10555         Pass TYPE_SIGN to tree_int_cst_min_precision.  If
10556         !TYPE_OVERFLOW_WRAPS, ensure @4 is non-negative.
10557
10558 2015-05-19  David Malcolm  <dmalcolm@redhat.com>
10559
10560         * diagnostic.c (diagnostic_report_current_module): Strengthen
10561         local "new_map" from const line_map * to
10562         const line_map_ordinary *.
10563         * genmatch.c (error_cb): Likewise for local "map".
10564         (output_line_directive): Likewise for local "map".
10565         * input.c (expand_location_1): Likewise for local "map".
10566         Pass NULL rather than &map to
10567         linemap_unwind_to_first_non_reserved_loc, since the value is never
10568         read from there, and the value written back not read from here.
10569         (is_location_from_builtin_token): Strengthen local "map" from
10570         const line_map * to const line_map_ordinary *.
10571         (dump_location_info): Strengthen locals "map" from
10572         line_map *, one to const line_map_ordinary *, the other
10573         to const line_map_macro *.
10574         * tree-diagnostic.c (loc_map_pair): Strengthen field "map" from
10575         const line_map * to const line_map_macro *.
10576         (maybe_unwind_expanded_macro_loc): Add a call to
10577         linemap_check_macro when writing to the "map" field of the
10578         loc_map_pair.
10579         Introduce local const line_map_ordinary * "ord_map", using it in
10580         place of "map" in the part of the function where we know we have
10581         an ordinary map.  Strengthen local "m" from const line_map * to
10582         const line_map_ordinary *.
10583
10584 2015-05-19  Nick Clifton  <nickc@redhat.com>
10585
10586         PR target/66156
10587         * config/msp430/msp430.md (zero_extendhisi2): Add support for
10588         separate source and destination registers.
10589
10590 2015-05-19  Richard Biener  <rguenther@suse.de>
10591
10592         PR tree-optimization/66165
10593         * tree-vect-slp.c (vect_supported_load_permutation_p): Add guard
10594         for no load permutation.
10595
10596         PR tree-optimization/66185
10597         * tree-vect-slp.c (vect_build_slp_tree): Properly roll back
10598         when building the SLP node from scalars.
10599
10600 2015-05-19  Eric Botcazou  <ebotcazou@adacore.com>
10601             Tristan Gingold  <gingold@adacore.com>
10602
10603         * insn-notes.def (UPDATE_SJLJ_CONTEXT): New note.
10604         * builtins.c (expand_builtin_update_setjmp_buf): Make global.
10605         (expand_stack_restore): Call record_new_stack_level.
10606         (expand_stack_save): Do not call do_pending_stack_adjust.
10607         * builtins.h (expand_builtin_update_setjmp_buf): Declare.
10608         * calls.c (expand_call): Call record_new_stack_level for alloca.
10609         * except.c (sjlj_mark_call_sites): Expand builtin_update_setjmp_buf
10610         wherever a NOTE_INSN_UPDATE_SJLJ_CONTEXT note is present.
10611         (update_sjlj_context): New global function.
10612         * except.h (update_sjlj_context): Declare.
10613         * explow.c (record_new_stack_level): New global function.
10614         (allocate_dynamic_stack_space): Call record_new_stack_level.
10615         * explow.h (record_new_stack_level): Declare.
10616         * final.c (final_scan_insn): Deal with NOTE_INSN_UPDATE_SJLJ_CONTEXT.
10617         * cfgrtl.c (duplicate_insn_chain): Likewise.
10618
10619 2015-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10620
10621         * calls.c: Always define STACK_GROWS_DOWNWARD as 0 or 1.
10622         (mem_overlaps_already_clobbered_arg_p): Rewrite ifdef
10623         STACK_GROWS_DOWNWARD as normal if.
10624         (expand_call): Likewise.
10625
10626 2015-05-19  Oleg Endo  <olegendo@gcc.gnu.org>
10627
10628         PR target/54236
10629         * config/sh/sh.md (*round_int_even): New insn_and_split and
10630         accompanying new unnamed split.
10631
10632 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10633
10634         * bitmap.c (bitmap_set_range): Handle count==1 specially.
10635         (bitmap_clear_range): Likewise.
10636         * cfgcleanup.c (mark_effect): Use bitmap_clear_range and
10637         bitmap_set_range unconditionally.
10638         * df-problems.c (df_simulate_one_insn_forwards): Likewise.
10639         * df-scan.c (df_mark_reg): Likewise.
10640         * haifa-sched.c (setup_ref_regs): Likewise.
10641         * sched-rgn.c (update_live_1): Likewise.
10642
10643 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10644
10645         * regs.h (END_HARD_REGNO): Delete.
10646         (END_REGNO): Move to...
10647         * rtl.h: ...here.
10648         * bt-load.c (note_btr_set): Use END_REGNO instead of END_HARD_REGNO.
10649         * caller-save.c (mark_set_regs): Likewise.
10650         * combine.c (move_deaths, distribute_notes): Likewise.
10651         * cse.c (invalidate, invalidate_for_call): Likewise.
10652         * df-scan.c (df_ref_record): Likewise.
10653         * postreload-gcse.c (reg_changed_after_insn_p): Likewise.
10654         (record_last_reg_set_info): Likewise.
10655         * reg-stack.c (convert_regs_exit): Likewise.
10656         * reload.c (reg_overlap_mentioned_for_reload_p): Likewise.
10657         * resource.c (update_live_status): Likewise.
10658         * rtlanal.c (find_reg_fusage, find_regno_fusage): Likewise.
10659
10660 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10661
10662         * rtl.h (reg_info): Add an nregs field.
10663         (REG_NREGS): Use it.
10664         (SET_REGNO_RAW): Delete.
10665         (set_regno_raw): New function.
10666         * regs.h (END_HARD_REGNO): Make equivalent to END_REGNO.
10667         (END_REGNO): Redefine in terms of REG_NREGS.
10668         * read-rtl.c (read_rtx_code): Call set_regno_raw instead of
10669         SET_REGNO_RAW.
10670         * emit-rtl.c (set_mode_and_regno): Likewise.
10671         * df-scan.c (df_ref_change_reg_with_loc): Use set_mode_and_regno
10672         instead of SET_REGNO_RAW.
10673
10674 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10675
10676         * rtl.h (PUT_MODE_RAW): New macro.
10677         (PUT_REG_NOTE_KIND): Use it.
10678         (set_mode_and_regno): Declare.
10679         (gen_raw_REG): Change regno to "unsigned int".
10680         (gen_rtx_REG): Change "unsigned" to "unsigned int".
10681         (PUT_MODE): Forward to PUT_MODE_RAW for generators, otherwise
10682         use set_mode_and_regno to change the mode of registers.
10683         * gengenrtl.c (gendef): Use PUT_MODE_RAW.
10684         * emit-rtl.c (set_mode_and_regno): New function.
10685         (gen_raw_REG): Change regno to unsigned int.  Use set_mode_and_regno.
10686         * caller-save.c (reg_save_code): Use set_mode_and_regno.
10687         * expr.c (init_expr_target): Likewise.
10688         * ira.c (setup_prohibited_mode_move_regs): Likewise.
10689         * postreload.c (reload_cse_simplify_operands): Likewise.
10690
10691 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10692
10693         * caller-save.c (init_caller_save): Use word_mode and
10694         FIRST_PSEUDO_REGISTER when creating temporary rtxes.
10695         * expr.c (init_expr_target): Likewise.
10696         * ira.c (setup_prohibited_mode_move_regs): Likewise.
10697         * postreload.c (reload_cse_regs_1): Likewise.
10698
10699 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10700
10701         * rtl.def (REG): Change format to "r".
10702         * rtl.h (rtunion): Remove rt_reg.
10703         (reg_info): New structure.
10704         (rtx_def): Add reg field to main union.
10705         (X0REGATTR): Delete.
10706         (REG_CHECK): New macro.
10707         (SET_REGNO_RAW, rhs_regno, REG_ATTRS): Use it.
10708         * rtl.c (rtx_format): Document "r".
10709         (rtx_code_size): Handle REG specially.
10710         * gengenrtl.c (special_format): Return true for formats
10711         that include 'r'.
10712         * gengtype.c (adjust_field_rtx_def): Handle 'r' fields.
10713         Deal with REG_ATTRS after the field loop.
10714         * emit-rtl.c (gen_raw_REG): Call rtx_alloc_stat directly.
10715         * expmed.c (init_expmed): Call gen_raw_REG instead of
10716         gen_rtx_raw_REG.
10717         * expr.c (init_expr_target): Likewise.
10718         * regcprop.c (maybe_mode_change): Likewise.
10719         * varasm.c (make_decl_rtl): Likewise.
10720         * final.c (leaf_renumber_regs_insn): Return early after
10721         handling REGs.
10722         * genemit.c (gen_exp): Handle 'r' fields.
10723         * genpeep.c (match_rtx): Likewise.
10724         * gensupport.c (subst_pattern_match): Likewise.
10725         (get_alternatives_number, collect_insn_data, alter_predicate_for_insn)
10726         (alter_constraints, subst_dup): Likewise.
10727         * read-rtl.c (read_rtx_code): Likewise.
10728         * print-rtl.c (print_rtx): Likewise.
10729         * genrecog.c (find_operand, find_matching_operand): Likewise.
10730         (validate_pattern, match_pattern_2): Likewise.
10731         (parameter::UINT, rtx_test::REGNO_FIELD): New enum values.
10732         (rtx_test::regno_field): New function.
10733         (operator ==, safe_to_hoist_p, transition_parameter_type)
10734         (parameter_type_string, print_parameter_value)
10735         (print_nonbool_test, print_test): Handle new enum values.
10736         * cselib.c (rtx_equal_for_cselib_1): Handle REG specially.
10737         * lra-constraints.c (operands_match_p): Likewise.
10738
10739 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10740
10741         * df.h (df_ref_change_reg_with_loc): Remove old_regno parameter.
10742         Change type of new_regno to unsigned int.
10743         * df-scan.c (df_ref_change_reg_with_loc_1): Change type of
10744         new_regno to unsigned int.
10745         (df_ref_change_reg_with_loc): Remove old_regno parameter.
10746         Change type of new_regno to unsigned int.  Use SET_REGNO_RAW.
10747         * rtl.h (SET_REGNO): Update call to df_ref_change_reg_with_loc.
10748         (SET_REGNO_RAW): Add space after ",".
10749
10750 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10751
10752         * rtl.h (REG_NREGS): New macro
10753         * alias.c (record_set): Use it.
10754         * cfgcleanup.c (mark_effect): Likewise.
10755         * combine.c (likely_spilled_retval_1): Likewise.
10756         (likely_spilled_retval_p, can_change_dest_mode): Likewise.
10757         (move_deaths, distribute_notes): Likewise.
10758         * cselib.c (cselib_record_set): Likewise.
10759         * df-problems.c (df_simulate_one_insn_forwards): Likewise.
10760         * df-scan.c (df_mark_reg): Likewise.
10761         * dse.c (look_for_hardregs): Likewise.
10762         * dwarf2out.c (reg_loc_descriptor): Likewise.
10763         (multiple_reg_loc_descriptor): Likewise.
10764         * expr.c (write_complex_part, read_complex_part): Likewise.
10765         (emit_move_complex): Likewise.
10766         * haifa-sched.c (setup_ref_regs): Likewise.
10767         * ira-lives.c (mark_hard_reg_live): Likewise.
10768         * lra.c (lra_set_insn_recog_data): Likewise.
10769         * mode-switching.c (create_pre_exit): Likewise.
10770         * postreload.c (reload_combine_recognize_const_pattern): Likewise.
10771         (reload_combine_recognize_pattern): Likewise.
10772         (reload_combine_note_use, move2add_record_mode): Likewise.
10773         (reload_cse_move2add): Likewise.
10774         * reg-stack.c (subst_stack_regs_pat): Likewise.
10775         * regcprop.c (kill_value, copy_value): Likewise.
10776         (copyprop_hardreg_forward_1): Likewise.
10777         * regrename.c (verify_reg_in_set, scan_rtx_reg): Likewise.
10778         (build_def_use): Likewise.
10779         * sched-deps.c (mark_insn_reg_birth, mark_reg_death): Likewise.
10780         (deps_analyze_insn): Likewise.
10781         * sched-rgn.c (check_live_1, update_live_1): Likewise.
10782         * sel-sched.c (count_occurrences_equiv): Likewise.
10783         * valtrack.c (dead_debug_insert_temp): Likewise.
10784
10785 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10786
10787         * cfgcleanup.c (mentions_nonequal_regs): Use END_REGNO.
10788         * dse.c (note_add_store): Likewise.
10789         * ira-lives.c (mark_hard_reg_dead): Likewise.
10790         * loop-invariant.c (mark_reg_store): Likewise.
10791         (mark_reg_death): Likewise.
10792         * postreload.c (reload_combine): Likewise.
10793         (reload_combine_note_store): Likewise.
10794         (reload_combine_note_use): Likewise.
10795         * recog.c (peep2_reg_dead_p): Likewise.
10796
10797 2015-05-19  Alan Modra  <amodra@gmail.com>
10798
10799         * config/rs6000/predicates.md (gpc_reg_operand): Don't allow all
10800         hard registers numbered greater or equal to ARG_POINTER_REGNUM.
10801         (reg_or_neg_short_operand, fix_trunc_dest_operand): Delete
10802         unused predicates.
10803         * config/rs6000/altivec.md (save_vregs_*, restore_vregs_*):
10804         Use altivec_register_operand.  Make insn predicate TARGET_ALTIVEC.
10805         * config/rs6000/rs6000.md (extzvdi_internal2): Use cc_reg_operand.
10806         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Expand comment.
10807
10808 2015-05-19  Sameera Deshpande  <Sameera.Deshpande@imgtec.com>
10809
10810         * config/mips/mips.md (JOIN_MODE): New mode iterator.
10811         (join2_load_Store<JOIN_MODE:mode>): New pattern.
10812         (join2_loadhi): Likewise.
10813         (define_peehole2): Add peephole2 patterns to join 2 HI/SI/SF/DF-mode
10814         load-load and store-stores.
10815         * config/mips/mips.opt (mload-store-pairs): New option.
10816         (TARGET_LOAD_STORE_PAIRS): New macro.
10817         * config/mips/mips.h (ENABLE_LD_ST_PAIRS): Likewise.
10818         * config/mips/mips-protos.h (mips_load_store_bonding_p): New prototype.
10819         * config/mips/mips.c (mips_load_store_bonding_p): New function.
10820
10821 2015-05-19  Mikhail Maltsev  <maltsevm@gmail.com>
10822
10823         * bb-reorder.c (fix_up_fall_thru_edges): Use std::swap instead of
10824         explicit swaps.
10825         * dojump.c (do_compare_rtx_and_jump): Likewise.
10826         * expmed.c (emit_store_flag_1): Likewise.
10827         * fibonacci_heap.h (fibonacci_heap::union_with): Likewise.
10828         * final.c (sprint_ul): Use std::reverse for reversing a string.
10829         * fold-const.c (extract_muldiv_1): Use std::swap.
10830         * genmodes.c (emit_mode_int_n): Likewise.
10831         * ifcvt.c (dead_or_predicable): Likewise.
10832         * ira-build.c (ira_merge_live_ranges): Likewise.
10833         (swap_allocno_copy_ends_if_necessary): Likewise.
10834         * ira.c (ira_setup_alts): Likewise.
10835         * loop-iv.c (iv_analyze_expr): Likewise.
10836         (implies_p): Likewise.
10837         (canon_condition): Likewise.
10838         * lra-constraints.c (swap_operands): Likewise.
10839         * lra-lives.c (lra_merge_live_ranges): Likewise.
10840         * omega.c (swap): Remove.
10841         (bswap): Remove.
10842         (omega_unprotect_1): Use std::swap.
10843         (omega_solve_geq): Likewise.
10844         * optabs.c (expand_binop_directly): Likewise.
10845         (expand_binop): Likewise.
10846         (emit_conditional_move): Likewise.
10847         (emit_conditional_add): Likewise.
10848         * postreload.c (reload_cse_simplify_operands): Likewise.
10849         * reg-stack.c (emit_swap_insn): Likewise.
10850         (swap_to_top): Likewise.
10851         (compare_for_stack_reg): Likewise.
10852         (subst_asm_stack_regs): Likewise.
10853         * reload.c (find_reloads): Likewise.
10854         * reload1.c (gen_reload_chain_without_interm_reg_p): Likewise.
10855         * sel-sched.c (invoke_reorder_hooks): Likewise.
10856         (create_block_for_bookkeeping): Likewise.
10857         * tree-data-ref.c (lambda_matrix_row_exchange): Remove.
10858         (lambda_matrix_right_hermite): Use std::swap.
10859         * tree-ssa-coalesce.c (sort_coalesce_list): Likewise.
10860         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
10861         * tree-ssa-loop-ivopts.c (iv_ca_delta_reverse): Likewise.
10862         * tree-ssa-math-opts.c (is_widening_mult_p): Likewise.
10863         * tree-ssa-phiopt.c (hoist_adjacent_loads): Likewise.
10864         * tree-ssa-reassoc.c (linearize_expr_tree): Likewise.
10865         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
10866         * tree-vrp.c (compare_ranges): Likewise.
10867         * var-tracking.c (add_with_sets): Likewise.
10868         (vt_find_locations): Likewise.
10869
10870 2015-05-18  Andreas Tobler  <andreast@gcc.gnu.org>
10871
10872         * config/freebsd-spec.h (FBSD_STARTFILE_SPEC): Add the bits to build
10873         pie executables.
10874         (FBSD_ENDFILE_SPEC): Likewise.
10875         * config/i386/freebsd.h (STARTFILE_SPEC): Remove and use the one from
10876         config/freebsd-spec.h.
10877         (ENDFILE_SPEC): Likewise.
10878
10879 2015-05-18  Uros Bizjak  <ubizjak@gmail.com>
10880             Richard Henderson  <rth@redhat.com>
10881
10882         PR target/57032
10883         * config/alpha/constraints.md (Q): Rewrite as define_memory_constraint.
10884         Check for a memory location that is not a reference (using an AND)
10885         to an unaligned location here.
10886         * config/alpha/predicates.md (normal_memory_operand): Remove.
10887
10888 2015-05-18  Alex Velenko  <Alex.Velenko@arm.com>
10889
10890         * config/arm/arm.md (andsi_not_shiftsi_si_scc): New pattern.
10891         (andsi_not_shiftsi_si_scc_no_reuse): New pattern.
10892
10893 2015-05-18  Robert Suchanek  <robert.suchanek@imgtec.com>
10894
10895         * config/mips/mips.c (micromips_globals): New variable.
10896         (mips_set_compression_mode): Save and reinitialize target-dependent
10897         state for microMIPS.
10898
10899 2015-05-18  Martin Liska  <mliska@suse.cz>
10900
10901         * dbgcnt.def: Add new counter.
10902         * ipa-icf.c (sem_item_optimizer::merge_classes): Use the counter.
10903
10904 2015-05-18  Martin Liska  <mliska@suse.cz>
10905
10906         * dbgcnt.def: Sort counters.
10907         * opts.c (common_handle_option): Do not compile if
10908         -fdbg-cnt-list is enabled.
10909
10910 2015-05-18  Tom de Vries  <tom@codesourcery.com>
10911
10912         * gimplify.c (gimplify_modify_expr): Remove do_deref handling.
10913         (gimplify_va_arg_expr): Remove do_deref handling.  Remove adding of
10914         address operator to va_list operand.
10915         * tree-stdarg.c (expand_ifn_va_arg_1): Do deref of va_list operand
10916         unconditionally.
10917         * config/i386/i386.c (ix86_gimplify_va_arg): Remove deref on va_list
10918         operand.
10919         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Same.
10920         * config/s390/s390.c (s390_gimplify_va_arg): Same.
10921         * config/spu/spu.c (spu_gimplify_va_arg_expr): Same.
10922
10923 2015-05-18  Tom de Vries  <tom@codesourcery.com>
10924
10925         * tree-ssa-tail-merge.c: Fix whitespace.
10926
10927 2015-05-17  Jim Wilson  <jim.wilson@linaro.org>
10928
10929         * doc/invoke.texi (ARM Options, mtune): Add generic-armv7-a,
10930         cortex-a17, and cortex-a17.cortex-a7.
10931
10932 2015-05-17  Oleg Endo  <olegendo@gcc.gnu.org>
10933
10934         PR target/54236
10935         * config/sh/sh.md (*addc_2r_t): Use ashift instead of mult.
10936
10937 2015-05-17  Uros Bizjak  <ubizjak@gmail.com>
10938
10939         PR target/66174
10940         * config/i386/i386.c (expand_vec_perm_blend): Enable HImode and
10941         QImode inner modes for TARGET_AVX512BW.  Force mask operand
10942         to a register for AVX512F modes.
10943
10944 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
10945
10946         * toplev.c (emit_debug_global_declarations): Do not output debug info
10947         when doing slim LTO objects.
10948
10949 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
10950
10951         * ipa-utils.h (warn_types_mismatch, odr_or_derived_type_p,
10952         odr_types_equivalent_p): Declare.
10953         (odr_type_p): Use gcc_checking_assert.
10954         (type_in_anonymous_namespace_p) Declare.
10955         (type_with_linkage_p): Declare.
10956         * common.opt (Wlto-type-mismatch): New warning.
10957         * ipa-devirt.c (compound_type_base): New function.
10958         (odr_or_derived_type_p): New function.
10959         (odr_types_equivalent_p): New function.
10960         (add_type_duplicate): Simplify.
10961         (type_with_linkage_p): Add hack to prevent false positives on C types
10962         (type_in_anonymous_namespace_p): Likewise.
10963         * tree.c (need_assembler_name_p): Use type_with_linkage.
10964         * tree.h (type_in_anonymous_namespace_p): Remove.
10965         * doc/invoke.texi (-Wlto-type-mismatch): Document
10966
10967 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
10968
10969         * tree.c (verify_type_variant): Verify tree_base and type_common flags.
10970         (verify_type): Verify STRING_FLAG.
10971
10972 2015-05-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10973
10974         PR fortran/44054
10975         * tree-pretty-print.c (percent_K_format): Replace locus pointer
10976         with accessor function.
10977         * tree-diagnostic.c (diagnostic_report_current_function): Use
10978         diagnostic_location function.
10979         (maybe_unwind_expanded_macro_loc): Likewise.
10980         (virt_loc_aware_diagnostic_finalizer): Likewise.
10981         (default_tree_printer): Replace locus pointer with accessor function.
10982         * diagnostic.c (diagnostic_initialize): Initialize caret_chars array.
10983         (diagnostic_set_info_translated): Initialize second location.
10984         (diagnostic_build_prefix): Use CARET_LINE_MARGIN.
10985         (diagnostic_show_locus): Handle two locations. Call
10986         diagnostic_print_caret_line.
10987         (diagnostic_print_caret_line): New.
10988         (default_diagnostic_starter): Use diagnostic_location function.
10989         (diagnostic_report_diagnostic): Use diagnostic_location function.
10990         (verbatim): Do not set text.locus.
10991         * diagnostic.h (struct diagnostic_info): Remove location field.
10992         (struct diagnostic_context): Make caret_chars an array of two.
10993         (diagnostic_location): New inline.
10994         (diagnostic_expand_location): Handle two locations.
10995         (diagnostic_same_line): New inline.
10996         (diagnostic_print_caret_line): Declare.
10997         (CARET_LINE_MARGIN): New constant.
10998         * pretty-print.c (pp_printf): Do not set text.locus.
10999         (pp_verbatim): Do not set text.locus.
11000         * pretty-print.h (MAX_LOCATIONS_PER_MESSAGE): New constant.
11001         (struct text_info): Replace locus pointer with locations
11002         array. Add accessor functions.
11003
11004 2015-05-16  Kugan Vivekanandarajah  <kuganv@linaro.org>
11005             Zhenqiang Chen  <zhenqiang.chen@linaro.org>
11006
11007         PR target/65768
11008         * config/arm/arm.h (DONT_EARLY_SPLIT_CONSTANT): New macro.
11009         * config/arm/arm.md (subsi3, andsi3, iorsi3, xorsi3, movsi): Keep some
11010          large constants in register instead of splitting them.
11011
11012 2015-05-16  Uros Bizjak  <ubizjak@gmail.com>
11013
11014         PR target/66140
11015         * config/alpha/alpha.c (get_aligned_mem): Also look for reload
11016         replacements in memory addresses.
11017         (get_unaligned_address): Ditto.
11018
11019 2015-05-16  James Bowman  <james.bowman@ftdichip.com>
11020
11021         * config/ft32/*: New files for FT32 port.
11022         * doc/install.texi: Add FT32 information.
11023         * doc/invoke.texi: Add FT32 information.
11024         * doc/md.texi: Add FT32 information.
11025         * doc/contrib.texi: Self added.
11026
11027 2015-05-15  Marc Glisse  <marc.glisse@inria.fr>
11028
11029         PR tree-optimization/64454
11030         * match.pd ((X % Y) % Y, (X % Y) < Y): New patterns.
11031         (-1 - A -> ~A): Remove unnecessary condition.
11032
11033 2015-05-15  Gregor Richards  <gregor.richards@uwaterloo.ca>
11034
11035         * config/i386/linux.h (MUSL_DYNAMIC_LINKER): Define.
11036         * config/i386/linux64.h (MUSL_DYNAMIC_LINKER32): Define.
11037         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32): Define.
11038
11039 2015-05-15  Ilya Enkovich  <ilya.enkovich@intel.com>
11040
11041         * ipa-chkp.h (chkp_wrap_function): New.
11042         * ipa-chkp.c (chkp_wrap_function): Remove 'static'.
11043         (chkp_wrap_function_name): New.
11044         (chkp_build_instrumented_fndecl): Use chkp_wrap_function_name
11045         to get wrapper name.
11046         * lto-cgraph.c: Include ipa-chkp.h.
11047         (input_cgraph_1): Avoid alias chain for wrappers.
11048
11049 2015-05-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
11050
11051         PR middle-end/66134
11052         * tree-chkp.c (chkp_get_orginal_bounds_for_abnormal_copy): New.
11053         (chkp_maybe_copy_and_register_bounds): Don't copy abnormal copy.
11054
11055 2015-05-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11056
11057         * config/aarch64/aarch64.h (AARCH64_TUNE_SLOWMUL): Delete.
11058         (AARCH64_FL_SLOWMUL): Delete.
11059         (AARCH64_FL_CRC): Redefine to 1<<3.
11060         (AARCH64_FL_USE_FMA_STEERING_PASS): Redefine to 1<<4.
11061
11062 2015-05-15  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11063
11064         * config/arm/arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Add appropriate
11065         casting.
11066
11067 2015-05-15  Uros Bizjak  <ubizjak@gmail.com>
11068
11069         * config/alpha/alpha.md (extendqidi2): Use general_operand
11070         instead of some_operand for operand[1] predicate.
11071         (extendhidi2): Ditto.
11072         (cbranchdi4): Use general_operand instead of some_operand
11073         for operand[1] and operands[2] predicates.
11074         (cstoredi4): Ditto.
11075         * config/alpha/predicates.md (some_operand): Remove unused predicate.
11076         (some_ni_operand): Ditto.
11077
11078 2015-05-15  Uros Bizjak  <ubizjak@gmail.com>
11079
11080         * config/alpha/alpha.c (alpha_extract_integer): Do not handle
11081         CONST_WIDE_INT and CONST_DOUBLE.  Assert CONST_INT_P (x).
11082         (alpha_legitimate_constant_p) <case CONST_WIDE_INT>: Check high and
11083         low part of the constant using alpha_emit_set_const_1.
11084         (alpha_expand_mov): Do not handle CONST_WIDE_INT and CONST_DOUBLE.
11085
11086 2015-05-14  Rohit Arul Raj  <rohitrulraj@freescale.com>
11087
11088         * varasm.c (output_constant_pool_1): Pass down alignment from
11089         constant pool entry's descriptor to output_constant_pool_2.
11090         (output_object_block): Add comment prior to call to
11091         output_constant_pool_1.
11092
11093 2015-05-14  Vladimir Makarov  <vmakarov@redhat.com>
11094
11095         PR rtl-optimization/65862
11096         * target.def (ira_change_pseudo_allocno_class): New hook.
11097         * targhooks.c (default_ira_change_pseudo_allocno_class): Default
11098         value of the hook.
11099         * targhooks.h (default_ira_change_pseudo_allocno_class): New extern.
11100         * doc/tm.texi.in (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Add the
11101         hook.
11102         * ira-costs.c (find_costs_and_classes): Call the hook and change
11103         classes when it is necessary.
11104         * doc/tm.texi: Update.
11105
11106 2015-05-14  Alexander Monakov  <amonakov@ispras.ru>
11107
11108         * config/i386/i386.md (sibcall_memory): Check that register with
11109         callee address is not also used as one of the arguments, instead
11110         of checking that it is not live after the sibcall.
11111         (sibcall_pop_memory): Ditto.
11112         (sibcall_value_memory): Ditto.
11113         (sibcall_value_pop_memory): Ditto.
11114
11115 2015-05-14  Marc Glisse  <marc.glisse@inria.fr>
11116
11117         * generic-match-head.c (types_match): Handle non-types.
11118         * gimple-match-head.c (types_match): Likewise.
11119         * match.pd: Remove unnecessary TREE_TYPE for types_match.
11120
11121 2015-05-14  Wilco Dijkstra  <wdijkstr@arm.com>
11122
11123         * config/aarch64/aarch64.md (absdi2): Optimize abs expansion.
11124         (csneg3<mode>_insn): Enable expansion of pattern.
11125
11126 2015-05-14  Nick Clifton  <nickc@redhat.com>
11127
11128         * config/rl78/rl78.c (rl78_select_section): Select the correct
11129         default section based upon the category of the decl.
11130
11131 2015-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
11132
11133         PR rtl-optimization/30967
11134         * config/rs6000/rs6000.c (rs6000_rtx_costs): Don't consider
11135         destination mode for the cost of scc patterns.
11136
11137 2015-05-13  Uros Bizjak  <ubizjak@gmail.com>
11138
11139         * config/i386/i386.md (*mul<mode>3_1): Merge with *mulhi3_1
11140         using SWIM248 mode iterator.
11141         (*mulv<mode>4): Use x86_64_sext_operand for operand[2] constraint.
11142         (*mulvhi4): mark operand[1] as commutative.  Use nonimmediate_operand
11143         for operand[2] constraint.
11144         (*mulv<mode>4_1): Merge with *mulvhi4_1 using SWI248 mode iterator.
11145
11146 2015-05-13  Jakub Jelinek  <jakub@redhat.com>
11147
11148         PR middle-end/66133
11149         * omp-low.c (expand_omp_taskreg): For GIMPLE_OMP_TASK expansion,
11150         make sure it is never noreturn, even when the task body does not
11151         return.
11152         (lower_omp_taskreg): For GIMPLE_OMP_TASK, emit GIMPLE_OMP_CONTINUE
11153         right before GIMPLE_OMP_RETURN.
11154         (make_gimple_omp_edges): Accept GIMPLE_OMP_CONTINUE as ->cont
11155         for GIMPLE_OMP_TASK.  For GIMPLE_OMP_RETURN corresponding to
11156         GIMPLE_OMP_TASK add an EDGE_ABNORMAL edge from entry to exit.
11157
11158 2015-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11159
11160         * params.def (PARAM_MAX_POW_SQRT_DEPTH): New param.
11161         * tree-ssa-math-opts.c: Include params.h
11162         (pow_synth_sqrt_info): New struct.
11163         (representable_as_half_series_p): New function.
11164         (get_fn_chain): Likewise.
11165         (print_nested_fn): Likewise.
11166         (dump_fractional_sqrt_sequence): Likewise.
11167         (dump_integer_part): Likewise.
11168         (expand_pow_as_sqrts): Likewise.
11169         (gimple_expand_builtin_pow): Use above to attempt to expand
11170         pow as series of square roots.  Removed now unused variables.
11171
11172 2015-05-13  Uros Bizjak  <ubizjak@gmail.com>
11173
11174         * config/alpha/alpha.c (alpha_emit_set_long_const): Remove c1 argument.
11175         (alpha_extract_integer): Redeclare as static HOST_WIDE_INT.
11176         Remove *p0 and *p1 arguments.  Rewrite function.
11177         (alpha_legitimate_constant_p): Update call to alpha_extract_integer.
11178         (alpha_split_const_mov): Update calls to alpha_extract_integer and
11179         alpha_emit_set_long_const.
11180         (alpha_expand_epilogue): Update calls to alpha_emit_set_long_const.
11181         (alpha_output_mi_thunk_osf): Ditto.
11182         * config/alpha/alpha.md (movti): Do not check operands[1]
11183         for CONST_DOUBLE.
11184
11185 2015-05-13  Richard Biener  <rguenther@suse.de>
11186
11187         PR tree-optimization/66129
11188         * tree-vect-slp.c (vect_build_slp_tree): Make sure all ops are
11189         commutative.
11190         (vect_schedule_slp_instance): Fix typo.
11191
11192 2015-05-13  David Malcolm  <dmalcolm@redhat.com>
11193
11194         * common.opt (fdump-internal-locations): New option.
11195         * input.c: Include diagnostic-core.h.
11196         (get_end_location): New function.
11197         (write_digit): New function.
11198         (write_digit_row): New function.
11199         (dump_location_range): New function.
11200         (dump_labelled_location_range): New function.
11201         (dump_location_info): New function.
11202         * input.h (dump_location_info): New prototype.
11203         * toplev.c (compile_file): Handle flag_dump_locations.
11204
11205 2015-05-13  Eric Botcazou  <ebotcazou@adacore.com>
11206
11207         * gimple-expr.h (is_gimple_constant): Reorder.
11208         * tree-ssa-propagate.c (before_dom_children): Use inline accessor.
11209
11210 2015-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
11211
11212         * combine.c (simplify_set): When generating a CC set, if the
11213         source already is in the correct mode, do not wrap it in a
11214         compare.  Simplify the rest of that code.
11215
11216 2015-05-13  Richard Biener  <rguenther@suse.de>
11217
11218         PR tree-optimization/66123
11219         * tree-ssa-dom.c (propagate_rhs_into_lhs): Check if we found
11220         a taken edge.
11221
11222 2015-05-13  Richard Biener  <rguenther@suse.de>
11223
11224         PR middle-end/66110
11225         * alias.c (alias_sets_conflict_p): Do not treat has_zero_child
11226         specially.
11227         * Makefile.in (dfp.o-warn): Add -Wno-strict-aliasing.
11228
11229 2015-05-13  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
11230
11231         * doc/install.texi: Bump latest automake 1.11 version to 1.11.6.
11232         * aclocal.m4: Regenerated with automake-1.11.6.
11233
11234 2015-05-13  Tom de Vries  <tom@codesourcery.com>
11235
11236         PR tree-optimization/66010
11237         * gimplify.h (gimplify_va_arg_internal): Remove declaration.
11238         * gimplify.c (gimplify_va_arg_internal): Remove and inline into ...
11239         * tree-stdarg.c (expand_ifn_va_arg_1): ... here.  Choose between lval
11240         and rval based on do_deref.
11241
11242 2015-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
11243
11244         PR target/65103
11245         * config/i386/i386.c (ix86_rtx_costs): We want to propagate
11246         link time constants into adress expressions and therefore set
11247         their cost to 0.
11248
11249 2015-05-13  Jakub Jelinek  <jakub@redhat.com>
11250
11251         PR target/66112
11252         * config/i386/i386.md (mulv<mode>4, umulv<mode>4, *umulv<mode>4):
11253         Use SWI248 iterator instead of SWI.
11254         (*mulv<mode>4_1): Use SWI48 instead of SWI.  Simplify output template.
11255         Use eq_attr "alternative" "0" instead of match_test in
11256         length_immediate attribute computation.
11257         (*mulvhi4, *mulvhi4_1): New define_insns.
11258
11259         PR target/66112
11260         * internal-fn.c (get_min_precision): Use UNSIGNED instead of
11261         SIGNED to get precision of non-negative value.
11262
11263 2015-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
11264
11265         PR target/66048
11266         * function.c (diddle_return_value_1): Process bounds first.
11267         * config/i38/i386.c (ix86_function_value_regno_p): Add bnd1
11268         register.
11269
11270 2015-05-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
11271
11272         PR rtl-optimization/64616
11273         * loop-invariant.c (can_move_invariant_reg): New.
11274         (move_invariant_reg): Call above new function to decide whether
11275         instruction can just be moved, skipping creation of temporary
11276         register.
11277
11278 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
11279
11280         PR target/pr66047.c
11281         * i386.c (ix86_function_sseregparm): Only return -1 if local function
11282         with implied regparm is called from -mno-sse function.
11283         (init_cumulative_args): Output error if ix86_function_sseregparm
11284         return -1 and SSE register would be needed.
11285         (function_arg_advance_32): Likewise.
11286         (function_arg_32): Likewise.
11287         * i386.h (ix86_args): Add decl field.
11288
11289 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
11290
11291         PR ipa/65873
11292         * ipa-inline.c (can_inline_edge_p): Allow early inlining of always
11293         inlines across optimization boundary.
11294
11295 2015-05-12  Jason Merrill  <jason@redhat.com>
11296
11297         * config/mmix/mmix.c, config/msp430/msp430.c: Add space between
11298         string literal and macro name.
11299
11300 2015-05-12  Steve Ellcey  <sellcey@imgtec.com>
11301
11302         * config/mips/mips.c (mips_print_operand): Remove 'y' operand code.
11303         * config/mips/mips.md (<GPR:d>lsa): Rewrite with shift operator.
11304         * config/mips/predicates.md (const_immlsa_operand): Remove log call.
11305
11306 2015-05-12  David Malcolm  <dmalcolm@redhat.com>
11307
11308         * doc/invoke.texi (Warning Options): Add -Wmisleading-indentation.
11309         (-Wmisleading-indentation): New option.
11310         * Makefile.in (C_COMMON_OBJS): Add c-family/c-indentation.o.
11311
11312 2015-05-12  Uros Bizjak  <ubizjak@gmail.com>
11313
11314         * config/alpha/alpha.h (TARGET_SUPPORTS_WIDE_INT): New define.
11315         * config/alpha/alpha.c (alpha_rtx_costs): Handle CONST_WIDE_INT.
11316         (alpha_extract_integer): Ditto.
11317         (alpha_legitimate_constant_p): Ditto.
11318         (alpha_split_tmode_pair): Ditto.
11319         (alpha_preferred_reload_class): Add CONST_WIDE_INT.
11320         (alpha_expand_mov): Ditto.
11321         (print_operand): Remove handling of 'H' modifier.
11322         <case 'm'>: Remove CONST_DOUBLE handling.
11323         (summarize_insn): Handle CONST_WIDE_INT.
11324         * config/alpha/alpha.md (*andsi_internal): Remove H constraint.
11325         (anddi3): Ditto.
11326         (movti): Handle CONST_WIDE_INT.
11327         * config/alpha/constraints.md ('H'): Remove constraint definition.
11328         ('G'): Do not match MODE_FLOAT class.
11329         * config/alpha/predicates.md (const0_operand): Also match
11330         const_wide_int.
11331         (non_add_const_operand): Ditto.
11332         (non_zero_const_operand): Ditto.
11333         (some_operand): Ditto.
11334         (input_operand): Ditto.  Handle CONST_WIDE_INT.
11335         (and_operand): Do not match const_double.
11336         * config/alpha/sync.md (fetchop_constr): Remove H constraint.
11337
11338 2015-05-12  Andrew MacLeod  <amacleod@redhat.com>
11339
11340         PR target/65697
11341         * coretypes.h (MEMMODEL_SYNC, MEMMODEL_BASE_MASK): New macros.
11342         (enum memmodel): Add SYNC_{ACQUIRE,RELEASE,SEQ_CST}.
11343         * tree.h (memmodel_from_int, memmodel_base, is_mm_relaxed,
11344         is_mm_consume,is_mm_acquire, is_mm_release, is_mm_acq_rel,
11345         is_mm_seq_cst, is_mm_sync): New accessor functions.
11346         * builtins.c (expand_builtin_sync_operation,
11347         expand_builtin_compare_and_swap): Use MEMMODEL_SYNC_SEQ_CST.
11348         (expand_builtin_sync_lock_release): Use MEMMODEL_SYNC_RELEASE.
11349         (get_memmodel,  expand_builtin_atomic_compare_exchange,
11350         expand_builtin_atomic_load, expand_builtin_atomic_store,
11351         expand_builtin_atomic_clear): Use new accessor routines.
11352         (expand_builtin_sync_synchronize): Use MEMMODEL_SYNC_SEQ_CST.
11353         * optabs.c (expand_compare_and_swap_loop): Use MEMMODEL_SYNC_SEQ_CST.
11354         (maybe_emit_sync_lock_test_and_set): Use new accessors and
11355         MEMMODEL_SYNC_ACQUIRE.
11356         (expand_sync_lock_test_and_set): Use MEMMODEL_SYNC_ACQUIRE.
11357         (expand_mem_thread_fence, expand_mem_signal_fence, expand_atomic_load,
11358         expand_atomic_store): Use new accessors.
11359         * emit-rtl.c (need_atomic_barrier_p): Add additional enum cases.
11360         * tsan.c (instrument_builtin_call): Update check for memory model beyond
11361         final enum to use MEMMODEL_LAST.
11362         * c-family/c-common.c: Use new accessor for memmodel_base.
11363         * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap): Use new
11364         accessors.
11365         * config/aarch64/atomics.md (atomic_load<mode>,atomic_store<mode>,
11366         arch64_load_exclusive<mode>, aarch64_store_exclusive<mode>,
11367         mem_thread_fence, *dmb): Likewise.
11368         * config/alpha/alpha.c (alpha_split_compare_and_swap,
11369         alpha_split_compare_and_swap_12): Likewise.
11370         * config/arm/arm.c (arm_expand_compare_and_swap,
11371         arm_split_compare_and_swap, arm_split_atomic_op): Likewise.
11372         * config/arm/sync.md (atomic_load<mode>, atomic_store<mode>,
11373         atomic_loaddi): Likewise.
11374         * config/i386/i386.c (ix86_destroy_cost_data, ix86_memmodel_check):
11375         Likewise.
11376         * config/i386/sync.md (mem_thread_fence, atomic_store<mode>): Likewise.
11377         * config/ia64/ia64.c (ia64_expand_atomic_op): Add new memmodel cases and
11378         use new accessors.
11379         * config/ia64/sync.md (mem_thread_fence, atomic_load<mode>,
11380         atomic_store<mode>, atomic_compare_and_swap<mode>,
11381         atomic_exchange<mode>): Use new accessors.
11382         * config/mips/mips.c (mips_process_sync_loop): Likewise.
11383         * config/pa/pa.md (atomic_loaddi, atomic_storedi): Likewise.
11384         * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier,
11385         rs6000_post_atomic_barrier): Add new cases.
11386         (rs6000_expand_atomic_compare_and_swap): Use new accessors.
11387         * config/rs6000/sync.md (mem_thread_fence): Add new cases.
11388         (atomic_load<mode>): Add new cases and use new accessors.
11389         (store_quadpti): Add new cases.
11390         * config/s390/s390.md (mem_thread_fence, atomic_store<mode>): Use new
11391         accessors.
11392         * config/sparc/sparc.c (sparc_emit_membar_for_model): Use new accessors.
11393         * doc/extend.texi: Update docs to indicate 16 bits are used for memory
11394         model, not 8.
11395
11396 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
11397
11398         * ipa-devirt.c (type_with_linkage_p): New function.
11399         (type_in_anonymous_namespace_p): Move here from tree.c; assert that
11400         type has linkage.
11401         (odr_type_p): Move here from ipa-utils.h; use type_with_linkage_p.
11402         (can_be_name_hashed_p): Simplify.
11403         (hash_odr_name): Check that type has linkage before checking if it is
11404         anonymous.
11405         (types_same_for_odr): Likewise.
11406         (odr_name_hasher::equal): Likewise.
11407         (odr_subtypes_equivalent_p): Likewise.
11408         (warn_types_mismatch): Likewise.
11409         (get_odr_type): Likewise.
11410         (odr_types_equivalent_p): Fix checking of TYPE_MAIN_VARIANT.
11411         * ipa-utils.h (odr_type_p): Move offline.
11412         * tree.c (need_assembler_name_p): Fix handling of types
11413         without linkages.
11414         (type_in_anonymous_namespace_p): Move to ipa-devirt.c
11415
11416 2015-05-12  David Malcolm  <dmalcolm@redhat.com>
11417
11418         * timevar.c (timevar_enable): Delete in favor of...
11419         (g_timer): New global.
11420         (struct timevar_def): Move to timevar.h inside class timer.
11421         (struct timevar_stack_def): Likewise.
11422         (timevars): Delete global in favor of field "m_timevars" within
11423         class timer in timevar.h
11424         (stack): Likewise, in favor of field "m_stack".
11425         (unused_stack_instances): Likewise, in favor of field
11426         "m_unused_stack_instances".
11427         (start_time): Likewise, in favor of field "m_start_time".
11428         (get_time): Eliminate check for timevar_enable.
11429         (timer::timer): New function, built from part of timevar_init.
11430         (timevar_init): Rewrite idempotency test from using
11431         "timevar_enable" bool to using dynamic allocation of "g_timer".
11432         Move rest of implementation into timer's constructor.
11433         (timevar_push_1): Rename to...
11434         (timer::push): ...this, adding "m_" prefixes to variables that
11435         are now fields of timer.
11436         (timevar_pop_1): Likewise, rename to...
11437         (timer::pop): ...this, and add "m_" prefixes.
11438         (timevar_start): Replace test for "timevar_enable" with one for
11439         "g_timer", and move bulk of implementation to...
11440         (timer::start): ...here, adding "m_" prefixes.
11441         (timevar_stop): Likewise, from here...
11442         (timer::stop): ...to here.
11443         (timevar_cond_start): Likewise, from here...
11444         (timer::cond_start): ...to here.
11445         (timevar_cond_stop): Likewise, from here...
11446         (timer::cond_stop): ...to here.
11447         (validate_phases): Rename to...
11448         (timer::validate_phases): ...this, and add "m_" prefixes.  Make
11449         locals "total" and "tv" const.
11450         (timevar_print): Rename to...
11451         (timer::print): ...this, and add "m_" prefixes.  Make locals
11452         "total" and "tv" const.  Eliminate test for timevar_enable.
11453         * timevar.h (timevar_enable): Eliminate.
11454         (g_timer): New declaration.
11455         (timevar_push_1): Eliminate.
11456         (timevar_pop_1): Eliminate.
11457         (timevar_print): Eliminate.
11458         (class timer): New class.
11459         (timevar_push): Rewrite to use g_timer.
11460         (timevar_pop): Likewise.
11461         * toplev.c (toplev::~toplev): Likewise.
11462
11463 2015-05-12  Richard Earnshaw  <rearnsha@arm.com>
11464
11465         * arm-protos.h (arm_sched_autopref): Delete.
11466         (tune_params): Re-organize, use enums for flag values.
11467         (FUSE_OPS): New macro.
11468         * arm.c (ARM_PREFETCH_NOT_BENEFICIAL): Update.
11469         (ARM_PREFETCH_BENEFICIAL): Likewise.
11470         (ARM_FUSE_NOTHING, ARM_FUSE_MOVW_MOVT): Delete.
11471         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
11472         (arm_xscale_tune, arm_9e_tune, arm_marvell_pj4_tune)
11473         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a8_tune)
11474         (arm_cortex_a7_tune, arm_cortex_a15_tune, arm_cortex_a53_tune)
11475         (arm_cortex_a57_tune,  arm_xgene1_tune, arm_cortex_a5_tune)
11476         (arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune)
11477         (arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune): Use new
11478         format.
11479         (arm_option_override, thumb2_reorg, arm_print_tune_info)
11480         (aarch_macro_fusion_pair_p): Update uses of current_tune.
11481         * arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Likewise.
11482
11483 2015-05-12  Sandra Loosemore  <sandra@codesourcery.com>
11484
11485         * config/nios2/nios2.md (trap, ctrapsi4): Use "trap" instead of
11486         "break".
11487
11488 2015-05-12  Chung-Lin Tang  <cltang@codesourcery.com>
11489             Sandra Loosemore <sandra@codesourcery.com>
11490
11491         * config/nios2/nios2.h (enum reg_class): Add IJMP_REGS enum
11492         value.
11493         (REG_CLASS_NAMES): Add "IJMP_REGS".
11494         (REG_CLASS_CONTENTS): Add new entry for IJMP_REGS.
11495         * config/nios2/nios2.md (indirect_jump,*tablejump): Adjust to
11496         use new "c" register constraint.
11497         * config/nios2/constraint.md (c): New register constraint
11498         corresponding to IJMP_REGS.
11499
11500 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
11501
11502         * config/rs6000/rs6000.md (*rotlsi3_internal4, *rotlsi3_internal5,
11503         *rotlsi3_internal6, rlwinm, 5 unnamed define_insns, and 6
11504         define_splits): Delete, revamp, transmogrify into ...
11505         (*rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
11506         *ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
11507         *lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
11508         New.
11509
11510 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
11511
11512         * config/rs6000/rs6000.md (rs6000_adjust_atomic_subword): Use
11513         gen_ashlsi3 and gen_andsi3 instead of gen_rlwinm.
11514
11515 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
11516
11517         * config/rs6000/rs6000.md (extzv): FAIL for SImode.
11518         (extzvsi_internal, *extzvsi_internal1, *extzvsi_internal2,
11519         *rotlsi3_internal7le, *rotlsi3_internal7be, *rotlsi3_internal8le,
11520         *rotlsi3_internal8be, *rotlsi3_internal9le, *rotlsi3_internal9be,
11521         *rotlsi3_internal10le, *rotlsi3_internal10be, *rotlsi3_internal11le,
11522         *rotlsi3_internal11be, *rotlsi3_internal12le, *rotlsi3_internal12be,
11523         *lshiftrt_internal1le, *lshiftrt_internal1be, *lshiftrt_internal2le,
11524         *lshiftrt_internal2be, *lshiftrt_internal3le, *lshiftrt_internal3be,
11525         *lshiftrt_internal4le, *lshiftrt_internal4be, *lshiftrt_internal5le,
11526         *lshiftrt_internal5be, *lshiftrt_internal5le, *lshiftrt_internal5be,
11527         *rotldi3_internal7le, *rotldi3_internal7be, *rotldi3_internal8le,
11528         *rotldi3_internal8be, *rotldi3_internal9le, *rotldi3_internal9be,
11529         *rotldi3_internal10le, *rotldi3_internal10be, *rotldi3_internal11le,
11530         *rotldi3_internal11be, *rotldi3_internal12le, *rotldi3_internal12be,
11531         *rotldi3_internal13le, *rotldi3_internal13be, *rotldi3_internal14le,
11532         *rotldi3_internal14be, *rotldi3_internal15le, *rotldi3_internal15be,
11533         and 30 corresponding splitters): Delete.
11534
11535 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
11536
11537         * config/rs6000/rs6000.md (define_split for bswaphi): Don't use
11538         zero_extract.
11539
11540 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
11541
11542         * combine.c (recog_for_combine_1): New function, factored out
11543         from recog_for_combine.
11544         (change_zero_ext): New function.
11545         (recog_for_combine): If recog fails, try again with the pattern
11546         modified by change_zero_ext; if that still fails, restore the
11547         pattern.
11548
11549 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
11550
11551         * combine.c (get_undo_marker): New function.
11552         (undo_to_marker): New function, largely factored out from ...
11553         (undo_all): ... this.  Adjust.
11554
11555 2015-05-12  Richard Biener  <rguenther@suse.de>
11556
11557         PR tree-optimization/66101
11558         * tree-ssa-dce.c (remove_dead_stmt): Properly mark loops for
11559         fixup if we turn a loop exit edge to a fallthru edge.
11560
11561 2015-05-12  Richard Biener  <rguenther@suse.de>
11562
11563         PR tree-optimization/37021
11564         * tree-vectorizer.h (struct _slp_tree): Add two_operators flag.
11565         (SLP_TREE_TWO_OPERATORS): New define.
11566         * tree-vect-slp.c (vect_create_new_slp_node): Initialize
11567         SLP_TREE_TWO_OPERATORS.
11568         (vect_build_slp_tree_1): Allow two mixing plus/minus in an
11569         SLP node.
11570         (vect_build_slp_tree): Adjust.
11571         (vect_analyze_slp_cost_1): Likewise.
11572         (vect_schedule_slp_instance): Vectorize mixing plus/minus by
11573         emitting two vector stmts and mixing the results.
11574
11575 2015-05-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>
11576
11577         * call.c (print_z_candidates): Remove dead code.
11578
11579 2015-05-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11580
11581         * config/s390/2827.md: Split zEC12_simple into zEC12_simple_int
11582         and zEC12_simple_fp.
11583         * config/s390/s390.c (s390_issue_rate): Set issue rate for zEC12
11584         to 1.
11585
11586 2015-05-12  Tom de Vries  <tom@codesourcery.com>
11587
11588         PR tree-optimization/66010
11589         * gimplify.c (gimplify_modify_expr): Handle new do_deref argument of
11590         ifn_va_arg.
11591         * gimplify.h (gimplify_va_arg_internal): Remove loc parameter.
11592         (gimplify_va_arg_internal): Remove loc parameter.  Assert no array-typed
11593         va_lists are passed, and remove corresponding handling.
11594         (gimplify_va_arg_expr): Only take address of ap if necessary.  Add
11595         do_deref argument to ifn_va_arg.
11596         * tree-stdarg.c (expand_ifn_va_arg_1): Handle new do_deref argument of
11597         ifn_va_arg.
11598
11599 2015-05-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11600
11601         PR target/65955
11602         * config/arm/arm.md (movcond_addsi): Check that operands[2] is a
11603         REG before taking its REGNO.
11604
11605 2015-05-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
11606
11607         * combine.c i(set_nonzero_bits_and_sign_copies): Split code updating
11608         rsp->sign_bit_copies and rsp->nonzero_bits into ...
11609         (update_rsp_from_reg_equal): This.  Also use REG_EQUAL note on src if
11610         present to get more accurate information about the number of sign bit
11611         copies and non zero bits.
11612
11613 2015-05-12  Richard Biener  <rguenther@suse.de>
11614
11615         * tree-vect-slp.c (vect_build_slp_tree_1): For BB vectorization
11616         do not allow unrolling.
11617
11618 2015-05-11  Richard Henderson  <rth@redhat.com>
11619
11620         * config/i386/i386-modes.def (CCP): New.
11621         * config/i386/i386.c (put_condition_code): Handle it.
11622         (ix86_match_ccmode, ix86_cc_modes_compatible): Likewise.
11623
11624 2015-05-11  Richard Henderson  <rth@redhat.com>
11625
11626         * target.def (md_asm_clobbers): Replace with...
11627         (md_asm_adjust): this.
11628         * tm.texi.in (TARGET_MD_ASM_CLOBBERS): Remove.
11629         (TARGET_MD_ASM_ADJUST): New.
11630         * tm.texi: Rebuild.
11631         * hooks.c (hook_tree_tree_tree_tree_3rd_identity): Remove.
11632         * hooks.h (hook_tree_tree_tree_tree_3rd_identity): Remove.
11633         * system.h (TARGET_MD_ASM_CLOBBERS): Poison.
11634
11635         * cfgexpand.c (check_operand_nalternatives): Accept vector of
11636         constraints instead of lists of outputs and inputs.
11637         (expand_asm_stmt): Save and restore input_location around the
11638         body of the function.  Move asm data into vectors instead of
11639         building tree lists.  Generate cleanup sequences as needed,
11640         rather than waiting til the end.  Use new md_asm_adjust hook.
11641
11642         * config/vxworks.c: Include vec.h before target.h.
11643         * gimple.c: Likewise.
11644         * incpath.c: Likewise.
11645         * mode-switching.c: Likewise.
11646
11647         * config/cris/cris.c (cris_md_asm_clobbers): Convert to...
11648         (cris_md_asm_adjust): this.
11649         (TARGET_MD_ASM_CLOBBERS): Remove.
11650         (TARGET_MD_ASM_ADJUST): New.
11651         * config/i386/i386.c (ix86_md_asm_clobbers): Convert to...
11652         (ix86_md_asm_adjust): this.
11653         (TARGET_MD_ASM_CLOBBERS): Remove.
11654         (TARGET_MD_ASM_ADJUST): New.
11655         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): Convert to...
11656         (mn10300_md_asm_adjust): this.
11657         (TARGET_MD_ASM_CLOBBERS): Remove.
11658         (TARGET_MD_ASM_ADJUST): New.
11659         * config/rs6000/rs6000.c (rs6000_md_asm_clobbers): Convert to...
11660         (rs6000_md_asm_adjust): this.
11661         (TARGET_MD_ASM_CLOBBERS): Remove.
11662         (TARGET_MD_ASM_ADJUST): New.
11663         * config/visium/visium.c (visium_md_asm_clobbers): Convert to...
11664         (visium_md_asm_adjust): this.
11665         (TARGET_MD_ASM_CLOBBERS): Remove.
11666         (TARGET_MD_ASM_ADJUST): New.
11667
11668 2015-05-11  Richard Henderson  <rth@redhat.com>
11669
11670         * gimplify.c (gimplify_asm_expr): Set gimple_asm_volatile_p
11671         if noutputs is zero.
11672         * cfgexpand.c (expand_asm_stmt): Use gimple_asm_volatile_p unchanged.
11673
11674         * cfgexpand.c (expand_asm_operands): Merge into...
11675         (expand_asm_stmt): ... here.
11676
11677         * cfgexpand.c (expand_asm_operands): Don't call
11678         resolve_asm_operand_names.
11679         * stmt.c (resolve_asm_operand_names): Clarify block comment.
11680
11681 2015-05-11  Jan Hubicka  <hubicka@ucw.cz>
11682
11683         * dwarf2out.c (gen_member_die): Sanity check that we access
11684         TYPE_MAIN_VARIANT for TYPE_METHODS.
11685         * function.c (use_register_for_decl): Look for TYPE_MAIN_VARIANT when
11686         checking TYPE_METHODS.
11687         * tree.c (free_lang_data_in_type): See TYPE_METHODS to error_mark_node
11688         if non-null.
11689         (build_distinct_type_copy): Clear TYPE_METHODS.
11690         (verify_type_variant): Verify that TYPE_METHODS is NULL for variants.
11691         (verify_type): Allow TYPE_METHODS to be error_mark_node.
11692         * tree.def: Update docs of TYPE_STUB_DECL and TYPE_METHODS.
11693
11694 2015-05-11  Eric Botcazou  <ebotcazou@adacore.com>
11695
11696         * emit-rtl.c (emit_pattern_after_setloc): Add missing guard.
11697         (emit_pattern_before_setloc): Likewise.
11698
11699 2015-05-11  Richard Sandiford  <richard.sandiford@arm.com>
11700
11701         * genrecog.c (match_pattern_1): Expect the pattern to be a SEQUENCE
11702         for define_peephole2s.
11703         (get_peephole2_pattern): New function.
11704         (main): Use it.  Call validate_pattern.
11705
11706 2015-05-11  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
11707
11708         * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Use
11709         LAST_CALLEE_SAVED_REG instead of hard-coded register number.
11710         (Last callee saved reg is different for AVR_TINY architecture)
11711
11712 2015-05-11  Uros Bizjak  <ubizjak@gmail.com>
11713
11714         * config/i386/i386.c (ix86_loop_unroll_adjust): Use PATTERN (insn)
11715         when looking for memory references.
11716
11717 2015-05-11  Alexander Monakov  <amonakov@ispras.ru>
11718
11719         PR target/65753
11720         * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow PIC sibcalls
11721         via function pointers.
11722
11723 2015-05-11  Alexander Monakov  <amonakov@ispras.ru>
11724
11725         * calls.c (prepare_call_address): Transform PLT call to GOT lookup and
11726         indirect call by forcing address into a pseudo with -fno-plt.
11727         * common.opt (flag_plt): New option.
11728         * doc/invoke.texi (Code Generation Options): Add -fno-plt.
11729         ([-fno-plt]): Document.
11730
11731 2015-05-11  Markus Trippelsdorf  <markus@trippelsdorf.de>
11732
11733         PR bootstrap/66105
11734         * config/rs6000/option-defaults.h: Add space between string literal
11735         and macro name.
11736
11737 2015-05-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>
11738
11739         * gcc.target/arm/pr64616.c: Test dump rather than assembly to work
11740         accross ARM targets.
11741
11742 2015-05-11  Christian Bruel  <christian.bruel@st.com>
11743
11744         * config/arm/arm-protos.h (thumb_code, thumb1_code): Remove.
11745         * config/arm/vxworks.h (thumb_code): Replace with TARGET_THUMB.
11746
11747 2015-05-11  Richard Sandiford  <richard.sandiford@arm.com>
11748
11749         PR rtl-optimization/66076
11750         * rtlanal.c (generic_subrtx_iterator <T>::add_single_to_queue):
11751         Don't grow the heap array if it is already big enough from a
11752         previous iteration.
11753
11754 2015-05-11  Christian Bruel  <christian.bruel@st.com>
11755
11756         * config/arm/arm-protos.h (arm_declare_function_name): Declare.
11757         (is_called_in_ARM_mode): Remove.
11758         * config/arm/arm.c (is_called_in_ARM_mode): Declare static bool.
11759         (arm_declare_function_name): Moved from from ARM_DECLARE_FUNCTION_NAME.
11760         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Call
11761          arm_declare_function_name.
11762
11763 2015-05-11  Christian Bruel  <christian.bruel@st.com>
11764
11765         * config/arm/arm.c (arm_option_override): Reoganized and split into :
11766         (arm_option_params_internal); New function.
11767         (arm_option_check_internal): New function.
11768         (arm_option_override_internal): New function.
11769         (thumb_code, thumb1_code): Remove.
11770         * config/arm/arm.h (TREE_TARGET_THUMB, TREE_TARGET_THUMB1): New macros.
11771         (TREE_TARGET_THUM2, TREE_TARGET_ARM): Likewise.
11772         (thumb_code, thumb1_code): Remove.
11773         * config/arm/arm.md (is_thumb, is_thumb1): Check TARGET flag.
11774
11775 2015-05-11  Uros Bizjak  <ubizjak@gmail.com>
11776
11777         * config/alpha/alpha.c (alpha_emit_set_const_1)
11778         (alpha_emit_set_long_const, alpha_extract_integer)
11779         (alpha_legitimate_constant_p, alpha_split_const_mov)
11780         (alpha_expand_block_clear, alpha_expand_zap_mask, print_operand):
11781         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
11782         (alpha_emit_set_const_1): Change "(HOST_WIDE_INT) 1" to
11783         HOST_WIDE_INT_1U.
11784         * config/alpha/predicates.md (mode_mask_operand): Do not match
11785         const_double RTX.
11786         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
11787         * config/alpha/alpha.md (abstf, *abstf_internal, UNSPEC_ZAP splitter):
11788         Change "(HOST_WIDE_INT) 1" to HOST_WIDE_INT_1U.
11789         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
11790         (*negtf_internal): Use gen_int_mode instead of immed_double_const.
11791
11792 2015-05-11  Jakub Jelinek  <jakub@redhat.com>
11793
11794         PR target/65780
11795         * config/s390/linux.h (TARGET_BINDS_LOCAL_P): Define to
11796         default_binds_local_p_2.
11797         * config/arm/linux-elf.h (TARGET_BINDS_LOCAL_P): Likewise.
11798         * config/aarch64/aarch64-linux.h (TARGET_BINDS_LOCAL_P): Likewise.
11799
11800 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
11801
11802         * tree.c (verify_type_variant): Check TYPE_VALUES_RAW and TYPE_PRECISION
11803
11804 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
11805
11806         Patch by Richard Biener
11807         * coverage.c (coverage_obj_init): Delay building of type variant
11808         until the type is finished.
11809
11810 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
11811
11812         * ipa-devirt.c (warn_types_mismatch): Do not ICE when warning about
11813         mismatch between C and C++ type; compoare correctly ARG_TYPES
11814         for non-prototypes and output correctly parameter index for METHOD_TYPE.
11815         (odr_types_equivalent_p): Fix wording of warning about attributes;
11816         it is OK to match prototype and non-prototype.
11817
11818 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
11819
11820         * tree.c (free_lang_data_in_type): Free TREE_PURPOSE of
11821         TYPE_ARG_TYPES list.
11822         (verify_type): Permit non-NULL TREE_PURPOSE in non-LTO builds.
11823         * tree.def (FUNCTION_TYPE): Document TREE_PURPOSE in TYPE_ARG_TYPES
11824
11825 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
11826
11827         * tree.c (verify_type): Verify TYPE_BINFO and TYPE_VALUES_RAW.
11828         * tree.h (is_lang_specific): Constify.
11829
11830 2015-05-09  Marc Glisse  <marc.glisse@inria.fr>
11831
11832         PR tree-optimization/64454
11833         * tree-vrp.c (extract_range_from_binary_expr_1) <TRUNC_MOD_EXPR>:
11834         Rewrite.
11835
11836 2015-05-08  Jason Merrill  <jason@redhat.com>
11837
11838         * bitmap.c, c/c-aux-info.c, cfg.c, cfghooks.c, cgraph.c,
11839         config/aarch64/aarch64.md config/alpha/vms.h, config/darwin.c,
11840         config/darwin.h, config/darwin9.h, config/elfos.h,
11841         config/i386/bsd.h, config/ia64/ia64.c, config/lm32/lm32.h,
11842         config/microblaze/microblaze.h, config/mips/mips.h,
11843         config/mmix/mmix.c, config/msp430/msp430.c, config/nios2/nios2.h,
11844         config/nvptx/nvptx.c, config/nvptx/nvptx.h, config/pa/pa.c,
11845         config/pa/pa.h, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
11846         config/rs6000/xcoff.h, config/rx/rx.h, config/s390/s390.h,
11847         config/sparc/sol2.h, config/sparc/sparc.h, config/visium/visium.h,
11848         cppbuiltin.c, defaults.h, doc/invoke.texi, dwarf2cfi.c,
11849         dwarf2out.c, final.c, gcc.c, gcov-dump.c, gcov.c, ipa-cp.c,
11850         ipa-inline.c, ipa-polymorphic-call.c, ipa-profile.c, ipa-prop.c,
11851         ira-color.c, ira.c, loop-doloop.c, loop-iv.c, mcf.c,
11852         modulo-sched.c, predict.c, profile.c, stor-layout.c, toplev.c,
11853         tree-ssa-reassoc.c, value-prof.c, wide-int-print.cc: Add space
11854         between string literal and macro name.
11855
11856 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11857
11858         * jump.c: Change argument types to rtx_insn *.
11859         * rtl.h: Adjust.
11860
11861 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11862
11863         * lra-constraints.c: Change argument type to rtx_insn *.
11864
11865 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11866
11867         * df-problems.c: Change argument type to rtx_insn *.
11868
11869 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11870
11871         * combine.c: Change argument type to rtx_insn *.
11872
11873 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11874
11875         * rtl.h: Adjust.
11876         * rtlanal.c: Change argument type to rtx_insn *.
11877
11878 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11879
11880         * sched-deps.c: Change argument types to rtx_insn *.
11881         * sched-int.h: Adjust.
11882
11883 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11884
11885         * dwarf2cfi.c: Change argument type to rtx_insn *.
11886
11887 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11888
11889         * ira.c (decrease_live_ranges_number): Changetype of local
11890         variable to rtx_insn *.
11891         * recog.c: Change argument types to rtx_insn *.
11892         * recog.h: Adjust.
11893
11894 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11895
11896         * reorg.c: Change argument types to rtx_insn *.
11897
11898 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11899
11900         * ira-color.c: Change argument types to rtx_insn *.
11901         * lra-eliminations.c: Likewise.
11902         * ira.h: Adjust.
11903
11904 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11905
11906         * gcse.c: Change argument types to rtx_insn *.
11907
11908 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11909
11910         * cse.c (cse_change_cc0_mode): Change argument type to rtx_insn *.
11911
11912 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11913
11914         * emit-rtl.c (emit_debug_insn_before): Change argument type to
11915         rtx_insn *.
11916         * rtl.h: Adjust.
11917
11918 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11919
11920         * emit-rtl.c (emit_note_before): Change argument type to rtx_insn *.
11921         * rtl.h: Adjust.
11922
11923 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11924
11925         * emit-rtl.c (emit_note_after): Change argument type to rtx_insn *.
11926         * rtl.h: Adjust.
11927
11928 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11929
11930         * emit-rtl.c (prev_cc0_setter): Change argument type to rtx_insn *.
11931         * rtl.h: Adjust.
11932
11933 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11934
11935         * rtlanal.c (noop_move_p): Change argument type to rtx_insn *.
11936         * rtl.h: Adjust.
11937
11938 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11939
11940         * rtlanal.c (add_shallow_copy_of_reg_note): Change argument type
11941         to rtx_insn *.
11942         * rtl.h: Adjust.
11943
11944 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11945
11946         * rtlanal.c (remove_reg_equal_equiv_notes): Change argument type
11947         to rtx_insn *.
11948         * rtl.h: Likewise.
11949
11950 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11951
11952         * except.c (can_nonlocal_goto): Change type of argument to
11953         rtx_insn *.
11954         * rtl.h: Adjust.
11955
11956 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11957
11958         * rtlanal.c (computed_jump_p): Cange argument type to rtx_insn *.
11959         * rtl.h: Adjust.
11960
11961 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11962
11963         * rtlanal.c (in_insn_list_p): Renamed from in_expr_list_p.
11964         * cfgrtl.c (can_delete_label_p): Adjust.
11965         * rtl.h: likewise.
11966
11967 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11968
11969         * reorg.c (stop_search_p): Change argument to rtx_insn *.
11970
11971 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11972
11973         * except.c (make_reg_eh_region_note): Change argument to
11974         rtx_insn *.
11975         (make_reg_eh_region_note_nothrow_nononlocal): Likewise.
11976         * except.h: Adjust.
11977
11978 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11979
11980         * mode-switching.c (commit_mode_sets): Change type of local
11981         variable from rtx to rtx_insn *.
11982
11983 2015-05-08  Jim Wilson  <jim.wilson@linaro.org>
11984
11985         * doc/install.texi (--enable-languages): Add missing jit and lto info.
11986         Add ^ to grep command.
11987         * doc/match-and-simplify.texi (GIMPLE API): Add missing fourth tree
11988         arg to last gimple_simplify declaration.  Add missing gimple_build
11989         declaration for built-in function case with four tree args.
11990
11991 2015-05-08  Gregor Richards  <gregor.richards@uwaterloo.ca>
11992             Szabolcs Nagy  <szabolcs.nagy@arm.com>
11993
11994         * config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Define.
11995         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Define.
11996         (GNU_USER_DYNAMIC_LINKERN32): Update.
11997
11998 2015-05-08  Richard Biener  <rguenther@suse.de>
11999
12000         PR tree-optimization/66036
12001         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
12002         Handle strided group loads.
12003         (vect_verify_datarefs_alignment): Likewise.
12004         (vect_enhance_data_refs_alignment): Likewise.
12005         (vect_analyze_group_access): Likewise.
12006         (vect_analyze_data_ref_access): Likewise.
12007         (vect_analyze_data_ref_accesses): Likewise.
12008         * tree-vect-stmts.c (vect_model_load_cost): Likewise.
12009         (vectorizable_load): Likewise.
12010
12011 2015-05-08  Segher Boessenkool  <segher@kernel.crashing.org>
12012
12013         * config/rs6000/rs6000.md: Require operand inequality in one
12014         of the peepholes.
12015
12016 2015-05-08  Richard Sandiford  <richard.sandiford@arm.com>
12017             Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
12018
12019         * config/i386/i386.md (<mode>_ldx, *<mode>_ldx): Remove mode
12020         from (set ...).
12021         * config/rx/rx.md (movdi, movdf): Likewise.
12022         Likewise for define_peephole2s.
12023
12024 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
12025
12026         * config/aarch64/arm_neon.h (vceq_s64, vceq_u64, vceqz_s64, vceqz_u64,
12027         vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64, vcgtz_s64, vcle_s64,
12028         vcle_u64, vclez_s64, vclt_s64, vclt_u64, vcltz_s64, vtst_s64,
12029         vtst_u64): Rewrite using gcc vector extensions.
12030
12031 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
12032
12033         * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>,
12034         vcond<mode><mode>, vcondu<mode><mode>): Add DImode variant.
12035
12036 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
12037
12038         * optabs.c (vector_compare_rtx): Handle RTL operands having VOIDmode.
12039
12040 2015-05-08  Szabolcs Nagy  <szabolcs.nagy@arm.com>
12041
12042         * config/glibc-stdint.h (OPTION_MUSL): Define.
12043         (INT_FAST16_TYPE, INT_FAST32_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE):
12044         Change the definition based on OPTION_MUSL for 64 bit targets.
12045         * config/linux.h (OPTION_MUSL): Redefine.
12046         * config/alpha/linux.h (OPTION_MUSL): Redefine.
12047         * config/rs6000/linux.h (OPTION_MUSL): Redefine.
12048         * config/rs6000/linux64.h (OPTION_MUSL): Redefine.
12049
12050 2015-05-08  Gregor Richards  <gregor.richards@uwaterloo.ca>
12051             Szabolcs Nagy  <szabolcs.nagy@arm.com>
12052
12053         * config.gcc (LIBC_MUSL): New tm_defines macro.
12054         * config/linux.h (OPTION_MUSL): Define.
12055         (MUSL_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER32,)
12056         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32,)
12057         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
12058         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
12059         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
12060         * config/linux.opt (mmusl): New option.
12061         * doc/invoke.texi (GNU/Linux Options): Document -mmusl.
12062         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
12063         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
12064         * configure: Regenerate.
12065
12066 2015-05-08  H.J. Lu  <hongjiu.lu@intel.com>
12067             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
12068
12069         PR target/48904
12070         * config.gcc (x86_64-*-knetbsd*-gnu): Add i386/knetbsd-gnu64.h.
12071         * config/i386/knetbsd-gnu64.h: New file.
12072
12073 2015-05-08  Marek Polacek  <polacek@redhat.com>
12074
12075         PR c/64918
12076         * doc/invoke.texi: Document -Woverride-init-side-effects.
12077
12078 2015-05-07  Marek Polacek  <polacek@redhat.com>
12079
12080         PR c/65179
12081         * doc/invoke.texi: Document -Wshift-negative-value.
12082
12083 2015-05-06  Aditya Kumar  <hiraditya@msn.com>
12084
12085         * gcov-tool.c (do_merge): Refactore to remove int ret.
12086         * ipa-icf.c (sem_item::hash_referenced_symbol_properties): Change
12087         !type == FUNC to type != FUNC.
12088         * reload.h (struct target_reload): Changee to type of
12089         x_spill_indirect_levels from bool to unsigned char.
12090
12091 2015-05-07  Richard Sandiford  <richard.sandiford@arm.com>
12092
12093         * rtl.h (always_void_p): New function.
12094         * gengenrtl.c (always_void_p): Likewise.
12095         (genmacro): Don't add a mode parameter to gen_rtx_foo if rtxes
12096         with code foo are always VOIDmode.
12097         * genemit.c (gen_exp): Update gen_rtx_foo calls accordingly.
12098         * builtins.c, caller-save.c, calls.c, cfgexpand.c, combine.c,
12099         compare-elim.c, config/aarch64/aarch64.c,
12100         config/aarch64/aarch64.md, config/alpha/alpha.c,
12101         config/alpha/alpha.md, config/arc/arc.c, config/arc/arc.md,
12102         config/arm/arm-fixed.md, config/arm/arm.c, config/arm/arm.md,
12103         config/arm/ldrdstrd.md, config/arm/thumb2.md, config/arm/vfp.md,
12104         config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
12105         config/c6x/c6x.md, config/cr16/cr16.c, config/cris/cris.c,
12106         config/cris/cris.md, config/darwin.c, config/epiphany/epiphany.c,
12107         config/epiphany/epiphany.md, config/fr30/fr30.c, config/frv/frv.c,
12108         config/frv/frv.md, config/h8300/h8300.c, config/i386/i386.c,
12109         config/i386/i386.md, config/i386/sse.md, config/ia64/ia64.c,
12110         config/ia64/vect.md, config/iq2000/iq2000.c,
12111         config/iq2000/iq2000.md, config/lm32/lm32.c, config/lm32/lm32.md,
12112         config/m32c/m32c.c, config/m32r/m32r.c, config/m68k/m68k.c,
12113         config/m68k/m68k.md, config/mcore/mcore.c, config/mcore/mcore.md,
12114         config/mep/mep.c, config/microblaze/microblaze.c,
12115         config/mips/mips.c, config/mips/mips.md, config/mmix/mmix.c,
12116         config/mn10300/mn10300.c, config/msp430/msp430.c,
12117         config/nds32/nds32-memory-manipulation.c, config/nds32/nds32.c,
12118         config/nds32/nds32.md, config/nios2/nios2.c, config/nvptx/nvptx.c,
12119         config/pa/pa.c, config/pa/pa.md, config/rl78/rl78.c,
12120         config/rs6000/altivec.md, config/rs6000/rs6000.c,
12121         config/rs6000/rs6000.md, config/rs6000/vector.md,
12122         config/rs6000/vsx.md, config/rx/rx.c, config/rx/rx.md,
12123         config/s390/s390.c, config/s390/s390.md, config/sh/sh.c,
12124         config/sh/sh.md, config/sh/sh_treg_combine.cc,
12125         config/sparc/sparc.c, config/sparc/sparc.md, config/spu/spu.c,
12126         config/spu/spu.md, config/stormy16/stormy16.c,
12127         config/tilegx/tilegx.c, config/tilegx/tilegx.md,
12128         config/tilepro/tilepro.c, config/tilepro/tilepro.md,
12129         config/v850/v850.c, config/v850/v850.md, config/vax/vax.c,
12130         config/visium/visium.c, config/xtensa/xtensa.c, cprop.c, dse.c,
12131         expr.c, gcse.c, ifcvt.c, ira.c, jump.c, lower-subreg.c,
12132         lra-constraints.c, lra-eliminations.c, lra.c, postreload.c, ree.c,
12133         reg-stack.c, reload.c, reload1.c, reorg.c, sel-sched.c,
12134         var-tracking.c: Update calls accordingly.
12135
12136 2015-05-07  Segher Boessenkool  <segher@kernel.crashing.org>
12137
12138         PR middle-end/192
12139         PR middle-end/54303
12140         * varasm.c (function_mergeable_rodata_prefix): New function.
12141         (mergeable_string_section): Use it.
12142         (mergeable_constant_section): Use it.
12143
12144 2015-05-07  Jeff Law  <law@redhat.com>
12145
12146         PR target/39726
12147         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
12148         simplifier to narrow arithmetic.
12149         * generic-match-head.c: (types_match, single_use): New functions.
12150         * gimple-match-head.c: (types_match, single_use): New functions.
12151
12152 2015-05-07  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
12153
12154         * combine.c (make_compound_operation): Remove checks for PLUS/MINUS
12155         rtx type.
12156
12157 2015-05-07  Richard Biener  <rguenther@suse.de>
12158
12159         PR tree-optimization/66002
12160         * passes.def: Schedule another pass_merge_phi after ifcombine, right
12161         before phiopt.
12162
12163 2015-05-07  Marek Polacek  <polacek@redhat.com>
12164             Martin Uecker  <uecker@eecs.berkeley.edu>
12165
12166         * doc/invoke.texi: Document -fsanitize=bounds-strict.
12167         * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS_STRICT, or it
12168         into SANITIZE_NONDEFAULT.
12169         * opts.c (common_handle_option): Handle -fsanitize=bounds-strict.
12170
12171 2015-05-07  Uros Bizjak  <ubizjak@gmail.com>
12172
12173         PR target/66015
12174         * config/alpha/alpha.c (alpha_override_options_after_change): New.
12175         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
12176         (alpha_override_options): Move align_loops, align_jumps and
12177         align_functions handling into alpha_override_options_after_change.
12178
12179 2015-05-06  Sandra Loosemore  <sandra@codesourcery.com>
12180             Chris Jones  <chrisj@nvidia.com>
12181             Joshua Conner  <jconner@nvidia.com>
12182
12183         * config/arm/unknown-elf.h (STARTFILE_SPEC): Add conditional
12184         linking of crtfastmath.o.
12185         * config/arm/linux-eabi.h (STARTFILE_SPEC): Likewise.
12186
12187 2015-05-06  Segher Boessenkool  <segher@kernel.crashing.org>
12188
12189         * config/rs6000/rs6000.md (cstore<mode>4_signed_imm): New expander.
12190         (cstore<mode>4_unsigned_imm): New expander.
12191         (cstore<mode>4): Remove empty constraint strings.  Use the new
12192         expanders.
12193
12194 2015-05-06  Yvan Roux  <yvan.roux@linaro.org>
12195
12196         PR target/64208
12197         * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Cleanup redundant
12198         alternatives.
12199
12200 2015-05-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>
12201
12202         * config/aarch64/geniterators.sh: Use standard BRE in sed.
12203
12204 2015-05-06  Alan Modra  <amodra@gmail.com>
12205
12206         PR target/66033
12207         * config/rs6000/rs6000.md (nop): Use an unspec pattern.
12208         (UNSPEC_NOP): Define.
12209         (reload_vsx_from_gpr<mode>): Add missing DONE.
12210         (reload_gpr_from_vsx<mode>): Likewise.
12211         * config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
12212         (vsx_div_v2di, vsx_udiv_v2di): Likewise.
12213
12214 2015-05-06  Christian Bruel  <christian.bruel@st.com>
12215
12216         PR target/66015
12217         * config/aarch64/aarch64.c (aarch64_override_options): Move align_loops,
12218         align_jumps, align_functions into aarch64_override_options_after_change.
12219
12220 2015-05-06  Richard Biener  <rguenther@suse.de>
12221
12222         * tree-vect-slp.c (vect_supported_load_permutation_p): Use
12223         vect_transform_slp_perm_load to check if we support a permutation
12224         for basic-block vectorization.
12225
12226 2015-05-06  Nick Clifton  <nickc@redhat.com>
12227
12228         * config/rl78/rl78.c (need_to_save): Save register 22 if it is
12229         used, even if it is not being used as a frame pointer.
12230
12231 2015-05-05  Jason Merrill  <jason@redhat.com>
12232
12233         * dwarf2out.c (gen_member_die): Don't emit anything for an
12234         anonymous class constructor.
12235
12236 2015-05-05  David Malcolm  <dmalcolm@redhat.com>
12237
12238         * auto-profile.c (afdo_find_equiv_class): Fix indentation so
12239         that it reflects the block structure.
12240         (afdo_propagate_edge): Likewise.
12241         (afdo_calculate_branch_prob): Likewise.
12242         (afdo_annotate_cfg): Likewise.
12243         * cfgcleanup.c (equal_different_set_p): Likewise.
12244         (try_crossjump_to_edge): Likewise.
12245         * cgraph.c (cgraph_node::verify_node): Likewise.
12246         * cgraphunit.c (expand_all_functions): Likewise.
12247         * config/i386/i386.c (ix86_expand_copysign): Likewise.
12248         (exact_dependency_1): Likewise.
12249         * dwarf2asm.c (dw2_output_indirect_constants): Likewise.
12250         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Likewise.
12251         * gensupport.c (process_define_subst): Likewise.
12252         * lto-wrapper.c (merge_and_complain): Likewise.
12253         * tree-if-conv.c (if_convertible_bb_p): Likewise.
12254         * tree-ssa-loop-prefetch.c (find_or_create_group): Likewise.
12255         * tree-ssa-tail-merge.c (gsi_advance_fw_nondebug_nonlocal): Likewise.
12256         * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
12257         * tree-vect-loop.c (vectorizable_reduction): Likewise.
12258         * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
12259         * tree-vect-stmts.c (vectorizable_shift): Likewise.
12260         * tree-vrp.c (vrp_finalize): Likewise.
12261         * tree.c (variably_modified_type_p): Likewise.
12262
12263 2015-05-05  Jack Howarth  <howarth.at.gcc@gmail.com>
12264
12265         * config.gcc: Use darwin9.h, darwin10.h and darwin12.h
12266         on darwin12 and later.
12267         * config/darwin12.h (LINK_GCC_C_SEQUENCE_SPEC): Add
12268         file to pass -rdynamic on darwin12 and later.
12269         * config/darwin.opt (rdynamic): Add.
12270
12271 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
12272
12273         * doc/extend.texi (C Extensions): Update menu for moved Variable
12274         Attributes and Type Attributes sections.
12275
12276 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
12277
12278         PR target/65990
12279         * config/i386/i386.c (ix86_parse_stringop_strategy_string): Error out
12280         if rep_8byte stringop strategy was specified for 32-bit target.
12281
12282 2015-05-05  Ilya Tocar  <ilya.tocar@intel.com>
12283
12284         PR target/65915
12285         * config/i386/i386.md (vector convert to float spltiter): Check for
12286         xmm16+, when splitting scalar float conversion.
12287         * config/i386/sse.md (sse2_cvtsi2sd): Support EVEX version.
12288
12289 2015-05-05  Nick Clifton  <nickc@redhat.com>
12290
12291         * config/msp430/msp430-opts.h (enum msp430_regions): New.
12292         * config/msp430/msp430.c (msp430_override_options): Complain if
12293         -mcode-region or -mdata-region is used on a non MSP430X.
12294         (msp430_section_attr): New function.  Checks lower, upper and
12295         either attributes.
12296         (msp430_attribute_table): Add lower, upper and either.
12297         (gen_prefix): New function.  Generates a prefix for a section
12298         name.
12299         (msp430_select_section): New function - handles the choice of
12300         section for an object.  Takes into account memory region
12301         attributes and options.
12302         (msp430_function_section): Use gen_prefix.
12303         (TARGET_SECTION_TYPE_FLAGS): Define.
12304         (msp430_section_type_flags): New function.
12305         (TARGET_ASM_UNIQUE_SECTION): Define.
12306         (msp430_unique_section): New function.
12307         (msp430_output_aligned_decl_common): New function.
12308         (msp430_do_not_relax_short_jumps): New function.
12309         * config/msp430/msp430.h (USE_SELECT_SECTION_FOR_FUNCTIONS):
12310         Define.
12311         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
12312         * config/msp430/msp430-protos.h
12313         (msp430_do_not_relax_short_jumps): New prototype.
12314         (msp430_output_aligned_decl_common): New prototype.
12315         * config/msp430/msp430.md (length): New attribute.
12316         (cbranchhi4_real): If msp430_do_not_relax_short_jumps is true
12317         then use a long code sequence for short jumps.
12318         * config/msp430/msp430.opt (mcode-region): New.
12319         (mdata-region): New.
12320         * doc/invoke.texi: Document new options.
12321         * doc/extend.texi: Document new attributes.
12322
12323 2015-05-05  Matthew Wahab  <matthew.wahab@arm.com>
12324
12325         * gcc/config/aarch64-protos.h (struct cpu_branch_cost): New.
12326         (tune_params): Add field branch_costs.
12327         (aarch64_branch_cost): Declare.
12328         * gcc/config/aarch64.c (generic_branch_cost): New.
12329         (generic_tunings): Set field cpu_branch_cost to generic_branch_cost.
12330         (cortexa53_tunings): Likewise.
12331         (cortexa57_tunings): Likewise.
12332         (thunderx_tunings): Likewise.
12333         (xgene1_tunings): Likewise.
12334         (aarch64_branch_cost): Define.
12335         * gcc/config/aarch64/aarch64.h (BRANCH_COST): Redefine.
12336
12337 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
12338
12339         * config/i386/i386.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1
12340         and HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1.
12341         * config/i386/i386.md: Ditto.
12342         * config/i386/winnt.c: Ditto.
12343
12344 2015-05-05  Matthew Wahab  <matthew.wahab@arm.com>
12345
12346         * doc/extend.texi (__atomic Builtins): Move implementation details
12347         to the end of the description, rewrite opening paragraphs, state
12348         difference with __sync builtins, state C11/C++11 assumptions,
12349         weaken itemized descriptions, add explanation of memory model
12350         behaviour, expand description of compare-exchange, simplify text.
12351
12352 2015-05-05  Renlin Li  <renlin.li@arm.com>
12353
12354         * config/aarch64/aarch64.md (add<mode>3): Use mov when allowed.
12355
12356 2015-05-05  Yvan Roux  <yvan.roux@linaro.org>
12357
12358         * config/aarch64/aarch64-elf-raw.h (CA53_ERR_843419_SPEC): Define.
12359         (LINK_SPEC): Include CA53_ERR_843419_SPEC.
12360         * config/aarch64/aarch64-linux.h (CA53_ERR_843419_SPEC): Define.
12361         (LINK_SPEC): Include CA53_ERR_843419_SPEC.
12362         * config/aarch64/aarch64.opt (mfix-cortex-a53-843419): New option.
12363         * configure: Regenerate.
12364         * configure.ac: Add --enable-fix-cortex-a53-843419 option.
12365         * doc/install.texi (aarch64*-*-*): Document new
12366         --enable-fix-cortex-a53-843419 option.
12367         * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-843419
12368         and -mno-fix-cortex-a53-843419 options.
12369
12370 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
12371
12372         PR target/65871
12373         * config/i386/i386.md (*bmi_andn_<mode>_ccno): New pattern.
12374
12375 2015-05-04  Jan Hubicka  <hubicka@ucw.cz>
12376
12377         * tree.c (verify_type): Check various uses of TYPE_MAXVAL;
12378         fix overactive TYPE_MIN_VALUE check and add FIXME for type
12379         compatibility problems.
12380
12381 2015-05-04  Ajit Agarwal  <ajitkum@xilinx.com>
12382
12383         * config/microblaze/microblaze.md (cbranchsi4): Added immediate
12384         constraints.
12385         (cbranchsi4_reg): New.
12386         * config/microblaze/microblaze.c
12387         (microblaze_expand_conditional_branch_reg): New.
12388         * config/microblaze/microblaze-protos.h
12389         (microblaze_expand_conditional_branch_reg): New prototype.
12390
12391 2015-05-04  Ajit Agarwal  <ajitkum@xilinx.com>
12392
12393         * config/microblaze/microblaze.md (peephole2): New.
12394
12395 2015-05-04  Jeff Law  <law@redhat.com>
12396
12397         Revert:
12398         2015-05-04  Jeff Law  <law@redhat.com>
12399
12400         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
12401         simplifier to narrow arithmetic.
12402         * generic-match-head.c: (types_match, single_use): New functions.
12403         * gimple-match-head.c: (types_match, single_use): New functions.
12404
12405 2015-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
12406
12407         PR target/65987
12408         * config/sh/sh.c (output_far_jump): Take into account crossing jumps.
12409         (split_branches): Likewise.
12410
12411 2015-05-04  Sandra Loosemore  <sandra@codesourcery.com>
12412
12413         * common.opt (fdelete-null-pointer-checks): Init to -1.
12414         * config/nios2/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define to
12415         override flag_delete_null_pointer_checks default.
12416         * doc/invoke.texi (-fdelete-null-pointer-checks): Clarify
12417         behavior re address zero.  Better document target-specific behavior.
12418         (-fisolate-errneous-paths-dereference): Mention relationship to
12419         -fdelete-null-pointer-checks.
12420
12421 2015-05-04  Jakub Jelinek  <jakub@redhat.com>
12422
12423         PR tree-optimization/65984
12424         * ubsan.c: Include tree-cfg.h.
12425         (instrument_bool_enum_load): Use stmt_ends_bb_p instead of
12426         stmt_could_throw_p test, rename can_throw variable to ends_bb.
12427
12428 2015-05-04  Uros Bizjak  <ubizjak@gmail.com>
12429
12430         * config/i386/i386.c: Change GET_CODE (...) == CONST_DOUBLE check
12431         to CONST_DOUBLE_P predicate.
12432         (standard_sse_constant_p): Return 0 for !TARGET_SSE.
12433         (ix86_legitimate_constant_p) <case CONST_WIDE_INT>: For 32bit targets,
12434         allow only operands that satisfy standard_sse_constant_p predicate.
12435         * config/i386/i386.md: Change GET_CODE (...) == CONST_DOUBLE check
12436         to CONST_DOUBLE_P predicate.
12437
12438 2015-05-04  Jeff Law  <law@redhat.com>
12439
12440         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
12441         simplifier to narrow arithmetic.
12442         * generic-match-head.c: (types_match, single_use): New functions.
12443         * gimple-match-head.c: (types_match, single_use): New functions.
12444
12445 2015-05-04  Andreas Tobler  <andreast@gcc.gnu.org>
12446
12447         * config/arm/arm.c: Restore bootstrap.
12448
12449 2015-05-04  Uros Bizjak  <ubizjak@gmail.com>
12450
12451         * config/i386/i386.h (TARGET_SUPPORTS_WIDE_INT): New define.
12452         * config/i386/i386.c (ix86_legitimate_constant_p): Handle TImode
12453         as CONST_WIDE_INT, not CONST_DOUBLE.
12454         (ix86_cannot_force_const_mem): Handle CONST_WIDE_INT.
12455         (output_pic_addr_const): Do not handle VOIDmode CONST_DOUBLEs.
12456         (ix86_find_base_term): Do not check for CONST_DOUBLE.
12457         (ix86_print_operand): Do not handle non-FPmode CONST_DOUBLEs.
12458         (ix86_build_signbit_mask): Rewrite using wide ints.
12459         (ix86_split_to_parts) [HOST_BITS_PER_WIDE_INT < 64]: Remove.
12460         (ix86_rtx_costs): Handle CONST_WIDE_INT.
12461         (find_constant): Ditto.
12462         * config/i386/i386.md (bts, btr, btc peepholes): Rewrite
12463         using gen_int_mode.
12464         * config/i386/predicates.md (x86_64_immediate_operand)
12465         <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
12466         (x86_64_zext_immediate_operand): Remove CONST_DOUBLE handling.
12467         <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
12468         (const0_operand): Also match const_wide_int.
12469         (constm1_operand): Ditto.
12470         (const1_operand): Ditto.
12471
12472 2015-05-04  Richard Biener  <rguenther@suse.de>
12473
12474         PR tree-optimization/65965
12475         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Split
12476         store groups at gaps.
12477
12478 2015-05-04  Richard Biener  <rguenther@suse.de>
12479
12480         PR tree-optimization/65935
12481         * tree-vect-slp.c (vect_build_slp_tree): If we swapped operands
12482         then make sure to apply that swapping to the IL.
12483
12484 2015-05-04  Jakub Jelinek  <jakub@redhat.com>
12485
12486         * Makefile.in (PATCHLEVEL_c): New variable.
12487         (DATESTAMP_s, REVISION_s): If PATCHLEVEL_c is not 0,
12488         expand the same way as if DEVPHASE_c was non-empty.
12489
12490 2015-05-04  Kai Tietz  <ktietz@redhat.com>
12491
12492         PR target/65559
12493         * lto-wrapper.c (run_gcc): Open filename
12494         in binary-mode.
12495
12496 2015-05-03  Sandra Loosemore  <sandra@codesourcery.com>
12497
12498         * doc/extend.texi (Variable Attributes, Type Attributes):  Move
12499         sections up in file, to immediately after the Function Attributes
12500         section.
12501
12502 2015-05-02  Jan Hubicka  <hubicka@ucw.cz>
12503
12504         * tree.c (verify_type): Check various uses of TYPE_MINVAL.
12505
12506 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12507
12508         * tree-outof-ssa.c (emit_partition_copy): Return rtx_insn *.
12509         (insert_partition_copy_on_edge): Adjust.
12510         (insert_rtx_to_part_on_edge): Likewise.
12511         (insert_part_to_rtx_on_edge): Likewise.
12512
12513 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12514
12515         * function.c (set_return_jump_label): Change type of argument to
12516         rtx_insn *.
12517         * function.h (set_return_jump_label): Adjust.
12518
12519 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12520
12521         * reload.h (struct reg_equivs_t): Change type of init to
12522         rtx_insn *.
12523         * ira.c (fix_reg_equiv_init): Adjust.
12524         * reload1.c (eliminate_regs_1): Likewise.
12525         (init_eliminable_invariants): Likewise.
12526
12527 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12528
12529         * cselib.c (fp_setter_insn): Take a rtx_insn *.
12530         * cselib.h (fp_setter_insn): Adjust.
12531
12532 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12533
12534         * recog.c (struct validate_replace_src_data): Change type of
12535         insn field to rtx_insn *.
12536         (validate_replace_src_group): Change type of argument to rtx_insn *.
12537         * recog.h (validate_replace_src_group): Adjust.
12538
12539 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12540
12541         * haifa-sched.c: Change the type of some variables to rtx_insn *.
12542         * sched-deps.c: Likewise.
12543         * sched-int.h: Likewise.
12544         * sched-rgn.c: Likewise.
12545         * sel-sched.c: Likewise.
12546
12547 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12548
12549         to rtx_insn *.
12550         * config/i386/i386.c: Change the type of some arguments to
12551         rtx_insn *.
12552         * config/arm/arm.c: Likewise.
12553
12554 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12555
12556         * lra-constraints.c: Change type of some arguments to rtx_insn *.
12557
12558 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12559
12560         * regcprop.c (kill_autoinc_value): Change type of argument to
12561         rtx_insn *.
12562
12563 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12564
12565         * genrecog.c (print_subroutine): Adjust.
12566         * recog.c (get_bool_attr_mask_uncached): Likewise.
12567         * recog.h (struct recog_data_d): Change the type of insn to
12568         rtx_insn *.
12569
12570 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12571
12572         * dwarf2cfi.c (add_cfi_insn): Change type to rtx_insn *.
12573
12574 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12575
12576         * df-problems.c (df_set_note): Change type of argument to
12577         rtx_insn *.
12578
12579 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12580
12581         * builtins.c (expand_builtin_trap): Change type of local
12582         variable to rtx_insn *.
12583         (add_sched_insns_for_speculation): Likewise.
12584         (ix86_emit_save_regs): Likewise.
12585         (get_scratch_register_on_entry): Likewise.
12586         (ix86_emit_restore_reg_using_pop): Likewise.
12587         (ix86_emit_leave): Likewise.
12588         (ix86_emit_restore_regs_using_mov): Likewise.
12589         (ix86_expand_epilogue): Likewise.
12590         Likewise.
12591         (rl78_alloc_physical_registers_umul): Likewise.
12592         * cselib.c (discard_useless_locs): Likewise.
12593         (cselib_invalidate_regno): Likewise.
12594         (cselib_invalidate_mem): Likewise.
12595         * function.c (expand_function_start): Likewise.
12596         (emit_use_return_register_into_block): Likewise.
12597         * gcse.c: Likewise.
12598         * haifa-sched.c (ok_for_early_queue_removal): Likewise.
12599         * ifcvt.c (noce_get_alt_condition): Likewise.
12600         * loop-doloop.c (doloop_condition_get): Likewise.
12601         * lra-constraints.c (inherit_in_ebb): Likewise.
12602         * modulo-sched.c (sms_schedule_by_order): Likewise.
12603         * recog.c (next_insn_tests_no_inequality): Likewise.
12604         * reorg.c (emit_delay_sequence): Likewise.
12605         (update_reg_dead_notes): Likewise.
12606         (fix_reg_dead_note): Likewise.
12607         (fill_slots_from_thread): Likewise.
12608         (delete_computation): Likewise.
12609
12610 2015-05-01  Sandra Loosemore  <sandra@codesourcery.com>
12611
12612         * doc/extend.texi (Variable Attributes): Add menu and proper
12613         @nodes to subsections.  Move Microsoft Windows attributes to
12614         their own subsection.
12615         (Type Attributes): Reorganize introduction to remove duplicate
12616         list of attributes.  Add menu and proper @nodes to subsections.
12617         Alphabetize the main table of common attributes.
12618
12619 2015-05-01  Rasmus Villemoes  <rv@rasmusvillemoes.dk>
12620
12621         * match.pd: New simplification patterns.
12622         (x + (x & 1))  -> ((x + 1) & ~1)
12623         (x & ~(x & y)) -> ((x & ~y))
12624         (x | ~(x | y)) -> ((x | ~y))
12625
12626 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12627
12628         * target.def (attribute_table): Mention that struct attribute_spec
12629         is defined in tree-core.h rather than tree.h
12630         * doc/tm.texi: Regenerate.
12631
12632 2015-05-01  Richard Sandiford  <richard.sandiford@arm.com>
12633
12634         * genrecog.c (test): Rename to rtx_test.  Update rest of file
12635         accordingly.
12636
12637 2015-05-01  Andreas Schwab  <schwab@linux-m68k.org>
12638
12639         PR translation/65959
12640         * params.h (DEFPARAM): Rename msgid to nocmsgid.
12641
12642 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
12643
12644         * gcc/config/aarch64/aarch64-protos.h (tune_params):
12645         Add min_div_recip_mul_sf and min_div_recip_mul_df fields.
12646         * gcc/config/aarch64/aarch64.c (aarch64_min_divisions_for_recip_mul):
12647         Return value depending on target.
12648         (generic_tunings): Initialize new target settings.
12649         (cortexa53_tunings): Likewise.
12650         (cortexa57_tunings): Likewise.
12651         (thunderx_tunings): Likewise.
12652         (xgene1_tunings): Likewise.
12653
12654 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
12655
12656         * gcc/config/arm/aarch-cost-tables.h (cortexa53_extra_costs):
12657         Make Cortex-A53 shift costs more accurate.
12658
12659 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12660
12661         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle FLOAT and
12662         UNSIGNED_FLOAT.
12663
12664 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
12665
12666         * gcc/config/aarch64/aarch64.c (aarch64_rtx_costs):
12667         Calculate cost of op0 and op1 in PLUS and MINUS cases.
12668
12669 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12670
12671         * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
12672         Add cost of op0 in the compare-with-fpzero case.
12673
12674 2015-04-30  David Malcolm  <dmalcolm@redhat.com>
12675
12676         * builtins.c (fold_builtin_1): Remove spurious second
12677         semicolon.
12678         * cgraph.h (symtab_node::get_availability): Likewise.
12679         * opts.c (common_handle_option): Remove spurious second semicolon.
12680         * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
12681         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
12682
12683 2015-04-30  Caroline Tice  <cmtice@google.com>
12684
12685         PR gcov-profile/65929
12686         * config/elfos.h (ASM_DECLARE_COLD_FUNCTION_NAME): New macro definition.
12687         (ASM_DECLARE_COLD_FUNCTION_SIZE): New macro definition.
12688         * doc/tm.texi.in (ASM_DECLARE_COLD_FUNCTION_NAME): Document new macro.
12689         (ASM_DECLARE_COLD_FUNCTION_SIZE): Document new macro.
12690         * doc/tm.texi: Regenerate.
12691         * final.c (final_scan_insn):  Use ASM_DECLARE_COLD_FUNCTION_NAME
12692         instead of ASM_DECLARE_FUNCTION_NAME for cold partition name.
12693         * varasm.c (assemble_end_function):  Use ASM_DECLARE_COLD_FUNCTION_SIZE
12694         instead of ASM_DECLARE_FUNCTION_SIZE for cold partition size.
12695
12696 2015-04-30  Marek Polacek  <polacek@redhat.com>
12697
12698         * varasm.c (handle_cache_entry): Fix logic.
12699
12700 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12701
12702         * config/aarch64/aarch64.md (*extr<mode>5_insn_alt): New pattern.
12703         (*extrsi5_insn_uxtw_alt): Likewise.
12704         * config/aarch64/aarch64.c (aarch64_extr_rtx_p): New function.
12705         (aarch64_rtx_costs, IOR case): Use above to properly cost extr
12706         operations.
12707
12708 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12709
12710         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle pattern for
12711         fabd in ABS case.
12712
12713 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12714
12715         * config/aarch64/aarch64.md
12716         (*eor_one_cmpl_<SHIFT:optab><mode>3_alt): New pattern.
12717         (*eor_one_cmpl_<SHIFT:optab>sidi3_alt_ze): Likewise.
12718         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle MVN-shift
12719         appropriately.  Handle alternative EON form.
12720
12721 2015-04-30  Renlin Li  <renlin.li@arm.com>
12722
12723         * config/aarch64/aarch64-simd.md (vec_shr): Defined as an unspec.
12724         * config/aarch64/iterators.md (unspec): Add UNSPEC_VEC_SHR.
12725
12726 2015-04-30  Jan Hubicka  <hubicka@ucw.cz>
12727
12728         PR ipa/65873
12729         * ipa-inline.c (can_inline_edge_p): It is safe to inline across
12730         -fstrict-aliasing boundaries.
12731
12732 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12733
12734         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Handle MNEG
12735         and [SU]MNEGL patterns.
12736
12737 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12738
12739         * config/aarch64/aarch64.c (aarch64_shift_p): New function.
12740         (aarch64_rtx_mult_cost): Update comment to reflect that it also handles
12741         combined arithmetic-shift ops.  Properly handle all shift and extend
12742         operations that can occur in combination with PLUS/MINUS.
12743         Rename maybe_fma to compound_p.
12744         (aarch64_rtx_costs): Use aarch64_shift_p when costing compound
12745         arithmetic and shift operations.
12746
12747 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12748
12749         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use extend_arith
12750         rather than arith_shift cost when costing ADD/MINUS of an
12751         extended value.
12752
12753 2015-04-30  Jan Hubicka  <hubicka@ucw.cz>
12754
12755         PR lto/65948
12756         * ipa-devirt.c (odr_types_equivalent_p): NULLPTR_TYPE is equivalent
12757         to itself.
12758
12759 2015-04-30  Richard Sandiford  <richard.sandiford@arm.com>
12760
12761         * genrecog.c (simplify_tests): Check that CONST_INT and XWINT tests
12762         are for the same position.
12763
12764 2015-04-29  Aditya Kumar  <hiraditya@hotmail.com>
12765
12766         * tree-vectorizer.c (set_uid_loop_bbs): New.  Factored out of
12767         vectorize_loops.
12768         (vectorize_loops): Use it.
12769
12770 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
12771
12772         * ipa-devirt.c (odr_subtypes_equivalent_p): Compare TYPE_NAME only
12773         for aggregate types.
12774         (register_odr_type): Be ready for MAIN_VARIANT of ODR type
12775         type to be non_ODR.
12776         * tree.c (need_assembler_name_p): Compute mangled name for
12777         non-fundamental types and integer types.
12778
12779 2015-04-29  Mikhail Maltsev  <maltsevm@gmail.com>
12780
12781         * dojump.c (do_compare_rtx_and_jump): Use std::swap instead of
12782         manual swaps.
12783         * expr.c (expand_expr_real_2): Likewise.
12784
12785 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
12786
12787         * tree.c (build_common_builtin_nodes): Do not build
12788         __builtin_alloca_with_align as equivalent of library alloca.
12789
12790 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
12791
12792         * dwarf2out.c (gen_type_die_with_usage): Call verify_type.
12793         * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Do not produce
12794         bugus variants.
12795         * tree.c: Include print-tree.h and ipa-utils.h
12796         (free_lang_data_in_type): Clear TYPE_VFIELD leaked by C FE.
12797         (free_lang_data_in_cgraph): Call verify_type.
12798         (verify_type_variant): New function.
12799         (verify_type): New function.
12800         * tree.h (verify_type): Declare.
12801
12802 2015-04-29  Steve Ellcey  <sellcey@imgtec.com>
12803
12804         * config/mips/mips-cpus.def: (mips4): Change default processor
12805         from PROCESSOR_R8000 to PROCESSOR_R10000.
12806
12807 2015-04-29  Petar Jovanovic  <petar.jovanovic@rt-rk.com>
12808
12809         * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Fix the macro to use
12810         la/jalr instead of jal.
12811
12812 2015-04-29  Uros Bizjak  <ubizjak@gmail.com>
12813
12814         PR target/65871
12815         * config/i386/i386.md (*bmi_bextr_<mode>_ccz): New pattern.
12816         (*bmi2_bzhi_<mode>3_1_ccz): Ditto.
12817         (setcc+movzbl peephole2): Check also clobbered reg.
12818         (setcc+andl peephole2): Ditto.
12819
12820 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
12821
12822         PR libgomp/65099
12823         * config/nvptx/mkoffload.c (target_ilp32): New variable.
12824         (main): Set it depending on "-foffload-abi=[...]".
12825         (compile_native, main): Use it to pass "-m32" or "-m64" to the
12826         compiler.
12827
12828 2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>
12829
12830         PR target/65770
12831         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>,
12832         vec_store_lanesci_lane<mode>, vec_store_lanesxi_lane<mode>):
12833         Flip lane index back at assembly time for bigendian.
12834
12835 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
12836
12837         * tree.h (OMP_STANDALONE_CLAUSES): New macro.
12838         * gimplify.c (gimplify_omp_workshare): Use it.
12839
12840 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
12841
12842         * Makefile.in (build/genrecog.o): Depend on inchash.h.
12843         (build/genrecog$(build_exeext): Depend on build/hash-table.o and
12844         build/inchash.o
12845         * genrecog.c: Rewrite most of the code except for the third page.
12846
12847 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
12848
12849         * inchash.h, inchash.c: Include bconfig.h for build objects.
12850         * Makefile.in (build/inchash.o): New rule.
12851
12852 2015-04-29  Yvan Roux  <yvan.roux@linaro.org>
12853
12854         PR target/65924
12855         * config/arm/thumb2.md (*thumb2_addsi3_compare0_scratch): Fix operand
12856         number in type attribute expression.
12857
12858 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
12859
12860         * loop-iv.c (canon_condition): Generalize to all types of integer
12861         constant.
12862
12863 2015-04-29  Bernhard Reuther-Fischer  <aldot@gcc.gnu.org>
12864
12865         * gimple-walk.c: Prune duplicate or unneeded includes.
12866         (walk_gimple_asm): Only call parse_input_constraint or
12867         parse_output_constraint if their findings are used.
12868         Honour parse_input_constraint and parse_output_constraint
12869         result.
12870
12871 2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>
12872
12873         * config/arm/neon.md (vec_shl<mode>, vec_shr<mode>): Remove.
12874
12875 2015-04-29  Tom de Vries  <tom@codesourcery.com>
12876
12877         PR tree-optimization/65893
12878         * passes.def (pass_all_optimizations): Move pass_stdarg to after
12879         pass_dce.
12880
12881 2015-04-29  Richard Biener  <rguenther@suse.de>
12882
12883         * tree-vect-data-refs.c (vect_analyze_group_access): Properly
12884         compute GROUP_SIZE for basic-block SLP.
12885         * tree-vect-slp.c (vect_get_place_in_interleaving_chain): Properly
12886         take into account gaps.
12887         (vect_get_mask_element): Properly reject references to previous
12888         vectors.
12889         (vect_transform_slp_perm_load): Likewise.
12890
12891 2015-04-29  Christian Bruel  <christian.bruel@st.com>
12892
12893         PR target/64835
12894         * config/i386/i386.c (ix86_default_align): New function.
12895         (ix86_override_options_after_change): Call ix86_default_align.
12896         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New hook.
12897         (ix86_override_options_after_change): New function.
12898
12899 2015-04-28  Jeff Law  <law@redhat.com>
12900
12901         * tree-ssa-dom.c (record_equality); Fix comment typos.
12902
12903 2015-04-28  Tom de Vries  <tom@codesourcery.com>
12904
12905         PR tree-optimization/65887
12906         * gimplify.c (gimplify_modify_expr): Remove ifn_va_arg ap fixup.
12907
12908 2015-04-28  Sandra Loosemore  <sandra@codesourcery.com>
12909
12910         * doc/extend.texi (Declaring Attributes of Functions): Split into
12911         subsections by target.  Alphabetize the table of common attributes.
12912         Rewrite some of the introductory text to reflect the new structure.
12913         Update some cross-references to point to the new subsections.
12914         (Attribute Syntax): Put paragraph about "__" naming here.  Remove
12915         duplicate copies in the discussion of function, label, and type
12916         attributes.
12917
12918 2015-04-28  Dominique d'Humieres  <dominiq@lps.ens.fr>
12919
12920         PR bootstrap/65910
12921         * varasm.c (assemble_end_function): Guard ASM_DECLARE_FUNCTION_SIZE.
12922
12923 2015-04-28  Jason Merrill  <jason@redhat.com>
12924
12925         PR c++/65734
12926         * stor-layout.c (layout_type): Layout the TYPE_MAIN_VARIANT.
12927         (finalize_type_size): Respect TYPE_USER_ALIGN.
12928         (layout_type) [ARRAY_TYPE]: Likewise.
12929
12930 2015-04-28  Yvan Roux  <yvan.roux@linaro.org>
12931
12932         * config/arm/arm.md (*arm_movt): Fix type attribute.
12933         (*cmpsi_shiftsi): Likewise.
12934         (*cmpsi_shiftsi_swp): Likewise.
12935         (*movsicc_insn): Likewise.
12936         (*cond_move): Likewise.
12937         (*if_plus_move): Likewise.
12938         (*if_move_plus): Likewise.
12939         (*if_arith_move): Likewise.
12940         (*if_move_arith): Likewise.
12941         (*if_shift_move): Likewise.
12942         (*if_move_shift): Likewise.
12943         (*arm_movtas_ze): Likewise.
12944         * config/arm/thumb2.md (*thumb2_movsicc_insn): Fix alternative
12945         redundancy and type attribute.
12946         (*thumb2_movsi_insn): Fix type attribute.
12947         (*thumb2_addsi_short): Likewise.
12948         (thumb2_addsi3_compare0): Likewise.
12949         (*thumb2_addsi3_compare0_scratch): Merge alternatives and fix
12950         attributes accordingly.
12951
12952 2015-04-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
12953
12954         PR other/65911
12955         * function.c (pad_to_arg_alignment): Add parentheses.
12956
12957 2015-04-28  Uros Bizjak  <ubizjak@gmail.com>
12958
12959         * config/frv/frv.h (CRT_GET_RFIB_DATA): Move definition to
12960         libgcc/config/frv/elf-lib.h.
12961
12962 2015-04-28  Tom de Vries  <tom@codesourcery.com>
12963
12964         * tree-call-cdce.c: Fix example in header comment.
12965
12966 2015-04-28  Richard Biener  <rguenther@suse.de>
12967
12968         PR tree-optimization/62283
12969         * tree-vect-slp.c (vect_build_slp_tree): When the SLP build
12970         fails fatally and we are vectorizing a basic-block simply
12971         cause the child to be constructed piecewise.
12972         (vect_analyze_slp_cost_1): Adjust.
12973         (vect_detect_hybrid_slp_stmts): Likewise.
12974         (vect_bb_slp_scalar_cost): Likewise.
12975         (vect_get_constant_vectors): For piecewise constructed
12976         constants place them after the last def.
12977         (vect_get_slp_defs): Adjust.
12978         * tree-vect-stmts.c (vect_is_simple_use): Detect in-BB
12979         externals for basic-block vectorization.
12980
12981 2015-04-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
12982
12983         PR target/63503
12984         * config.gcc: Add cortex-a57-fma-steering.o to extra_objs for
12985         aarch64-*-*.
12986         * config/aarch64/t-aarch64: Add a rule for cortex-a57-fma-steering.o.
12987         * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Define.
12988         (AARCH64_TUNE_FMA_STEERING): Likewise.
12989         * config/aarch64/aarch64-cores.def: Set
12990         AARCH64_FL_USE_FMA_STEERING_PASS for cores with dynamic steering of
12991         FMUL/FMADD instructions.
12992         * config/aarch64/aarch64.c (aarch64_register_fma_steering): Declare.
12993         (aarch64_override_options): Include cortex-a57-fma-steering.h.  Call
12994         aarch64_register_fma_steering () if AARCH64_TUNE_FMA_STEERING is true.
12995         * config/aarch64/cortex-a57-fma-steering.h: New file.
12996         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
12997
12998 2015-04-28  Richard Sandiford  <richard.sandiford@arm.com>
12999
13000         * gensupport.c (std_preds): Add missing codes to address_operand entry.
13001
13002 2015-04-28  Richard Biener  <rguenther@suse.de>
13003
13004         PR tree-optimization/65851
13005         * tree-ssa-ccp.c (set_lattice_value): Perform a meet when
13006         changing CONSTANT to CONSTANT non-copy.  Get new_val by reference.
13007         (ccp_lattice_meet): Remove stray argument.  Use operand_equal_p
13008         rather than simple_cst_equal as the latter doesn't handle COMPLEX_CST.
13009         (ccp_visit_phi_node): Adjust.
13010         (evaluate_stmt): For simplifications to SSA names return its
13011         lattice value if that isn't VARYING.  Return immediately when
13012         simplified to a constant.
13013         (visit_assignment): Adjust.
13014         (ccp_visit_stmt): Likewise.
13015
13016 2015-04-28  Tom de Vries  <tom@codesourcery.com>
13017
13018         PR tree-optimization/65818
13019         * tree-stdarg.c (expand_ifn_va_arg_1): Ensure that side-effects are
13020         evaluated.
13021
13022 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13023
13024         * calls.c (save_fixed_argument_area): Don't check
13025         ARGS_GROW_DOWNWARD with the preprocessor.
13026         (restore_fixed_argument_area): Likewise.
13027         (mem_overlaps_already_clobbered_arg_p): Likewise.
13028         (check_sibcall_argument_overlap): Likewise.
13029         (expand_call): Likewise.
13030         (emit_library_call_value_1): Likewise.
13031         (store_one_arg): Likewise.
13032         * function.c (assign_parms): Likewise.
13033         (locate_and_pad_parm): Likewise.
13034         (pad_to_arg_alignment): Likewise.
13035         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
13036
13037 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13038
13039         * config/pa/pa.h (ARGS_GROW_DOWNWARD): Define to 1.
13040         * defaults.h (ARGS_GROW_DOWNWARD): Define it to 0 by default.
13041         * calls.c (save_fixed_argument_area): Don't chekc if
13042         ARGS_GROW_DOWNWARD is defined.
13043         (restore_fixed_argument_area): Likewise.
13044         (mem_overlaps_already_clobbered_arg_p): Likewise.
13045         (check_sibcall_argument_overlap): Likewise.
13046         (expand_call): Likewise.
13047         (emit_library_call_value_1): Likewise.
13048         (store_one_arg): Likewise.
13049         * function.c (assign_parms): Likewise.
13050         (locate_and_pad_parm): Likewise.
13051         (pad_to_arg_alignment): Likewise.
13052         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
13053
13054 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13055
13056         * defaults.h (gen_epilogue): New function.
13057         * alias.c (init_alias_analysis): don't check if HAVE_epilogue is
13058         defined.
13059         * cfgrtl.c (cfg_layout_finalize): Likewise.
13060         * df-scan.c: Likewise.
13061         * function.c (thread_prologue_and_epilogue_insns): Likewise.
13062         (reposition_prologue_and_epilogue_notes): Likewise.
13063         * reorg.c (find_end_label): Likewise.
13064         * toplev.c: Likewise.
13065
13066 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13067
13068         * bb-reorder.c (HAVE_return): Don't check if its undefined.
13069         * defaults.h (gen_simple_return): New function.
13070         (gen_simple_return): Likewise.
13071         (HAVE_return): Add default definition to false.
13072         (HAVE_simple_return): Likewise.
13073         * cfgrtl.c (force_nonfallthru_and_redirect): Remove checks if
13074         HAVE_return and HAVE_simple_return are defined.
13075         * function.c (gen_return_pattern): Likewise.
13076         (convert_jumps_to_returns): Likewise.
13077         (thread_prologue_and_epilogue_insns): Likewise.
13078         * reorg.c (find_end_label): Likewise.
13079         (dbr_schedule): Likewise.
13080         * shrink-wrap.c: Likewise.
13081         * shrink-wrap.h: Likewise.
13082
13083 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13084
13085         * defaults.h (EPILOGUE_USES): Add default definition of false.
13086         * df-scan.c (EPILOGUE_USES): Remove check if its undefined.
13087         * resource.c (init_resource_info): Likewise.
13088
13089 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13090
13091         * defaults.h (PCC_BITFIELD_TYPE_MATTERS): Add default definition
13092         to false.
13093         * dwarf2out.c (field_byte_offset): REmove check if
13094         PCC_BITFIELD_TYPE_MATTERS is defined.
13095         * stor-layout.c (layout_decl): Likewise.
13096         (update_alignment_for_field): Likewise.
13097         (place_field): Likewise.
13098
13099 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13100
13101         * defaults.h (HARD_REGNO_RENAME_OK): Add default definition to
13102         true.
13103         * regrename.c (check_new_reg_p): Remove check if
13104         HARD_REGNO_RENAME_OK is defined.
13105         * sel-sched.c (sel_hard_regno_rename_ok): Likewise.
13106
13107 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13108
13109         * calls.c (prepare_call_address): Remove ifdef NO_FUNCTION_CSE.
13110         * cse.c (fold_rtx): Likewise.
13111         * config/alpha/alpha.h (NO_FUNCTION_CSE): Define to 1.
13112         * config/arc/arc.h (NO_FUNCTION_CSE): Likewise.
13113         * config/avr/avr.h (NO_FUNCTION_CSE): Likewise.
13114         * config/cr16/cr16.h (NO_FUNCTION_CSE): Likewise.
13115         * config/epiphany/epiphany.h (NO_FUNCTION_CSE): Likewise.
13116         * config/frv/frv.h (NO_FUNCTION_CSE): Likewise.
13117         * config/h8300/h8300.h (NO_FUNCTION_CSE): Likewise.
13118         * config/i386/i386.h (NO_FUNCTION_CSE): Likewise.
13119         * config/ia64/ia64.h (NO_FUNCTION_CSE): Likewise.
13120         * config/lm32/lm32.h (enum reg_class) (NO_FUNCTION_CSE):
13121         * Likewise.
13122         * config/m32r/m32r.h (NO_FUNCTION_CSE): Likewise.
13123         * config/mep/mep.h (NO_FUNCTION_CSE): Likewise.
13124         * config/mn10300/mn10300.h (NO_FUNCTION_CSE): Likewise.
13125         * config/nds32/nds32.h (NO_FUNCTION_CSE): Likewise.
13126         * config/nios2/nios2.h (NO_FUNCTION_CSE): Likewise.
13127         * config/pa/pa.h (NO_FUNCTION_CSE): Likewise.
13128         * config/rs6000/rs6000.h (NO_FUNCTION_CSE): Likewise.
13129         * config/s390/s390.h (NO_FUNCTION_CSE): Likewise.
13130         * config/sparc/sparc.h (NO_FUNCTION_CSE): Likewise.
13131         * config/spu/spu.h (NO_FUNCTION_CSE): Likewise.
13132         * config/stormy16/stormy16.h (NO_FUNCTION_CSE): Likewise.
13133         * config/v850/v850.h (NO_FUNCTION_CSE): Likewise.
13134         * defaults.h (NO_FUNCTION_CSE): Provide default definition to 0.
13135         * doc/tm.texi: Regenerate.
13136         * doc/tm.texi.in: Document NO_FUNCTION_CSE is always defined to
13137         either true or false.
13138
13139 2015-04-27  Jeff Law  <law@redhat.com>
13140
13141         PR tree-optimization/65217
13142         * tree-ssa-dom.c (record_equality): Given two SSA_NAMEs, if just one
13143         of them has a single use, make sure it is the LHS of the implied
13144         copy.
13145
13146 2015-04-28  Alan Modra  <amodra@gmail.com>
13147
13148         PR target/65810
13149         * config/rs6000/rs6000.c (POWERPC64_TOC_POINTER_ALIGNMENT): Define.
13150         (offsettable_ok_by_alignment): Use minimum of decl and toc
13151         pointer alignment.  Replace dead code with assertion.
13152         (use_toc_relative_ref): Add mode arg.  Return false in -mcmodel=medium
13153         case if size exceeds toc pointer alignment.
13154         (rs6000_legitimize_reload_address): Update use_toc_relative_ref call.
13155         (rs6000_emit_move): Likewise.
13156         * configure.ac: Add linker toc pointer alignment check.
13157         * configure: Regenerate.
13158         * config.in: Regenerate.
13159
13160 2015-04-27  Yoshinori Sato <ysato@users.sourceforge.jp>
13161
13162         * config.gcc: Add h8300-*-linux.
13163         * config/h8300/linux.h: New.
13164         * config/h8300/t-linux: New.
13165         * config/h8300/h8300.c (h8300_option_override): Normal mode
13166         is not supported for h8300-*-linux.
13167         (h8300_file_start): Target priority change.
13168         (get_shift_alg): Likewise.
13169         (h8300_shift_need_scratch_p): Likewise.
13170         * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Likewise.
13171         * config/h8300/h8300.md (define_peephole2): Remove duplicate condition.
13172
13173 2015-04-27  Caroline Tice  <cmtice@google.com>
13174
13175         * final.c (final_scan_insn):  Output cold_function_name as function
13176         type.
13177         * varasm.c (cold_function_name):  Make global.
13178         (assemble_start_function):  Re-set cold_function_name.
13179         (assemble_end_function): Output cold partition size.
13180         * varasm.h (cold_function_name):  Declare global.
13181
13182 2015-04-27  Ilya Tocar  <ilya.tocar@intel.com>
13183
13184         * config/i386/i386.h (EXT_REX_SSE_REG_P): New.
13185         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed): Use "v"
13186         constraint.
13187         (*movxi_internal_avx512f): Ditto.
13188         (define_split): Check for xmm16+, when splitting scalar float_extend.
13189         (*extendsfdf2_mixed): Use "v" constraint.
13190         (define_split): Check for xmm16+, when splitting scalar float_truncate.
13191         (*truncdfsf_fast_sse): Use "v" constraint.
13192         (fix_trunc<MODEF:mode><SWI48:mode>_sse): Ditto.
13193         (*float<SWI48:mode><MODEF:mode>2_sse): Ditto.
13194         (define_peephole2): Check for xmm16+, when converting scalar
13195         float_truncate.
13196         (define_peephole2): Check for xmm16+, when converting scalar
13197         float_extend.
13198         (*fop_<mode>_comm_mixed): Use "v" constraint.
13199         (*fop_<mode>_comm_sse): Ditto.
13200         (*fop_<mode>_1_mixed): Ditto.
13201         (*sqrt<mode>2_sse): Ditto.
13202         (*ieee_s<ieee_maxmin><mode>3): Ditto.
13203
13204 2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13205
13206         * combine.c (simplify_if_then_else): Use std::swap instead
13207         of manually swapping.
13208         (known_cond): Likewise.
13209         (simplify_comparison): Likewise.
13210
13211 2015-04-27  Peter Bergner  <bergner@vnet.ibm.com>
13212
13213         PR target/64579
13214         * config/rs6000/htm.md: Remove all define_expands.
13215         (UNSPECV_HTM_TABORTDC, UNSPECV_HTM_TABORTDCI, UNSPECV_HTM_TABORTWC,
13216         UNSPECV_HTM_TABORTWCI): Remove.
13217         (UNSPECV_HTM_TABORTXC, UNSPECV_HTM_TABORTXCI, UNSPECV_HTM_TTEST): New.
13218         (tabort_internal, tbegin_internal, tcheck_internal, tend_internal,
13219         trechkpt_internal, treclaim_internal, tsr_internal): Rename from this...
13220         (tabort, tbegin, tcheck, tend, trechkpt, treclaim, tsr): ...to this.
13221         (tabortdc_internal, tabortdci_internal, tabortwc_internal,
13222         tabortwci_internal): Remove define_insns.
13223         (tabort<wd>c, tabort<wd>ci): New define_insns.
13224         (tabort): Use gpc_reg_operand.
13225         (tcheck): Remove operand.
13226         (htm_mfspr_<mode>, htm_mtspr_<mode>): Use GPR mode macro.
13227         * config/rs6000/htmxlintrin.h (__TM_end): Use _HTM_TRANSACTIONAL as
13228         expected value.
13229         * config/rs6000/rs6000-builtin.def (BU_HTM_SPR0): Remove.
13230         (BU_HTM_SPR1): Rename to BU_HTM_V1.  Remove use of RS6000_BTC_SPR.
13231         (tabort, tabortdc, tabortdci, tabortwc, tabortwci, tbegin,
13232         tcheck, tend, tendall, trechkpt, treclaim, tresume, tsuspend,
13233         tsr, ttest): Pass in the RS6000_BTC_CR attribute.
13234         (get_tfhar, set_tfhar, get_tfiar, set_tfiar, get_texasr, set_texasr,
13235         get_texasru, set_texasru): Pass in the RS6000_BTC_SPR attribute.
13236         (tcheck): Remove builtin argument.
13237         * config/rs6000/rs6000.c (rs6000_htm_spr_icode): Use TARGET_POWERPC64
13238         not TARGET_64BIT.
13239         (htm_expand_builtin): Fix usage of expandedp.  Disallow usage of the
13240         tabortdc and tabortdci builtins when not in 64-bit mode.
13241         Modify code to handle the loss of the HTM define_expands.
13242         Emit code to copy the CR register to TARGET.
13243         (htm_init_builtins): Modify code to handle the loss of the HTM
13244         define_expands.
13245         * config/rs6000/rs6000.h (RS6000_BTC_32BIT): Delete.
13246         (RS6000_BTC_64BIT): Likewise.
13247         (RS6000_BTC_CR): New macro.
13248         * doc/extend.texi: Update documentation for htm builtins.
13249
13250 2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13251
13252         * simplify-rtx.c (simplify_gen_binary): Use std::swap instead
13253         of manually swapping.
13254         (simplify_associative_operation): Likewise.
13255         (simplify_binary_operation): Likewise.
13256         (simplify_plus_minus): Likewise.
13257         (simplify_relational_operation): Likewise.
13258         (simplify_ternary_operation): Likewise.
13259
13260 2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>
13261
13262         * config/stormy16/predicates.md (xs_hi_general_operand): Delete.
13263         (xs_hi_nonmemory_operand): Remove error.
13264         * config/stormy16/stormy16.md (movhi, movhi_internal): Use
13265         general_operand rather than xs_hi_general_operand.
13266
13267 2015-04-27  Richard Biener  <rguenther@suse.de>
13268
13269         * tree-ssa-dom.c (record_equivalences_from_phis): Valueize PHI arg.
13270         (record_equivalences_from_stmt): Valueize rhs.
13271         (record_equality): Canonicalize x and y order via
13272         tree_swap_operands_p.  Do not swap operands for same loop depth.
13273
13274 2015-04-27  Georg-Johann Lay  <avr@gjlay.de>
13275
13276         PR target/65296
13277         PR target/65895
13278         * config/avr/gen-avr-mmcu-specs.c (print_mcu): Close file.
13279         Add hint how to use own spec file.
13280
13281 2015-04-27  Jakub Jelinek  <jakub@redhat.com>
13282
13283         PR tree-optimization/65875
13284         * tree-vrp.c (update_value_range): If in is_new case setting
13285         old_vr to VR_VARYING, also set new_vr to it.  Remove
13286         old_vr->type == VR_VARYING test.
13287         (vrp_visit_phi_node): Return SSA_PROP_VARYING instead of
13288         SSA_PROP_INTERESTING if update_value_range returned true,
13289         but new range is VR_VARYING.
13290
13291 2015-04-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>
13292
13293         * combine.c (sign_extend_short_imm): New.
13294         (set_nonzero_bits_and_sign_copies): Use above new function for sign
13295         extension of src short immediate.
13296         (reg_nonzero_bits_for_combine): Likewise for tem.
13297
13298 2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>
13299
13300         * stor-layout.c (self_referential_component_ref_p): New predicate.
13301         (copy_self_referential_tree_r): Use it.
13302         (self_referential_size): Punt for simple operations directly involving
13303         self-referential component references.
13304         * tree-cfg.c (dump_function_to_file): Add missing final curly bracket.
13305
13306 2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>
13307
13308         * ipa-icf.c (icf_handled_component_p): Remove redundant tests.
13309
13310 2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>
13311
13312         * vec.h (vec): Make splice arguments const.  Update definitions
13313         accordingly.
13314
13315 2015-04-27  Yvan Roux  <yvan.roux@linaro.org>
13316
13317         * config/arm/arm.md (*arm_subsi3_insn): Fixed redundant
13318         alternatives.
13319
13320 2015-04-26  Tom de Vries  <tom@codesourcery.com>
13321
13322         PR tree-optimization/65826
13323         * internal-fn.def: Mark VA_ARG with ECF_LEAF.
13324
13325 2015-04-24  Steve Ellcey  <sellcey@imgtec.com>
13326
13327         * config/mips/mips.md: (*madd4<mode>) Remove accum_in attribute.
13328         (*madd3<mode>): Ditto.
13329         (*msub4<mode>): Ditto.
13330         (*msub3<mode>): Ditto.
13331         (*nmadd4<mode>): Ditto.
13332         (*nmadd3<mode>): Ditto.
13333         (*nmadd4<mode>_fastmath): Ditto.
13334         (*nmadd3<mode>_fastmath): Ditto.
13335         (*nmsub4<mode>): Ditto.
13336         (*nmsub3<mode>): Ditto.
13337         (*nmsub4<mode>_fastmath): Ditto.
13338         (*nmsub3<mode>_fastmath): Ditto.
13339
13340 2015-04-24  Jason Merrill  <jason@redhat.com>
13341
13342         PR c++/50800
13343         * tree.c (build_reference_type_for_mode): Don't pass can_alias_all
13344         down when building TYPE_CANONICAL.
13345         (build_pointer_type_for_mode): Likewise.
13346
13347 2015-04-24  Chen Gang  <gang.chen.5i5j@gmail.com>
13348
13349         * genrecog.c (validate_pattern): Check matching constraint refers
13350         to a lower numbered operand.
13351
13352 2015-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
13353
13354         PR target/65849
13355         * config/rs6000/rs6000.opt (-mvsx-align-128): Make options that
13356         save to independent variables use the Save attribute.  This will
13357         allow these options to be modified with the #pragma/attribute
13358         target support.
13359         (-mallow-movmisalign): Likewise.
13360         (-mallow-df-permute): Likewise.
13361         (-msched-groups): Likewise.
13362         (-malways-hint): Likewise.
13363         (-malign-branch-targets): Likewise.
13364         (-mvectorize-builtins): Likewise.
13365         (-msave-toc-indirect): Likewise.
13366
13367         * config/rs6000/rs6000.c (rs6000_opt_masks): Add more options that
13368         can be set via the #pragma/attribute target support.
13369         (rs6000_opt_vars): Likewise.
13370         (rs6000_inner_target_options): If VSX was set, also set
13371         -mno-avoid-indexed-addresses.
13372
13373 2015-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13374
13375         * config/arm/iterators.md (shiftable_ops): Rename to...
13376         (SHIFTABLE_OPS): ... This.  Update use in comments.
13377         (ior_xor): Rename to...
13378         (IOR_XOR): ... This.
13379         (vqh_ops): Rename to...
13380         (VQH_OPS): ... This.
13381         (vqhs_ops): Rename to...
13382         (VQHS_OPS): ... This.
13383         (rshifts): Rename to...
13384         (RSHIFTS): ... This.
13385         (returns): Rename to...
13386         (RETURNS): ... This.
13387         * config/arm/arm.md: Update uses of the above.
13388         * config/arm/neon.md: Likewise.
13389
13390 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13391
13392         * config.host (case ${host}): Add aarch64*-*-linux case.
13393         * config/aarch64/aarch64-cores.def: Add IMPLEMENTER_ID and PART_NUMBER
13394         fields to all the cores.
13395         * config/aarch64/aarch64-elf.h (DRIVER_SELF_SPECS):
13396         Add MCPU_MTUNE_NATIVE_SPECS.
13397         * config/aarch64/aarch64-option-extensions.def: Add FEATURE_STRING
13398         field to all extensions.
13399         * config/aarch64/aarch64-opts.h: Adjust definition of AARCH64_CORE.
13400         * config/aarch64/aarch64.c: Adjust definition of AARCH64_CORE.
13401         Adjust definition of AARCH64_OPT_EXTENSION.
13402         * config/aarch64/aarch64.h: Adjust definition of AARCH64_CORE.
13403         (MCPU_MTUNE_NATIVE_SPECS): Define.
13404         * config/aarch64/driver-aarch64.c: New file.
13405         * config/aarch64/x-arch64: New file.
13406         * doc/invoke.texi (AArch64 Options): Document native value for -mcpu,
13407         -mtune and -march.
13408
13409 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
13410             Wei Mi  <wmi@google.com>
13411
13412         * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple): New.
13413         * config/i386/i386.c (extract_base_offset_in_addr): New function.
13414         (ix86_operands_ok_for_move_multiple): Ditto.
13415         * config/i386/sse.md (movsd/movhpd to movupd peephole2): New pattern.
13416         (movlpd/movhpd to movupd peephole2): Ditto.
13417
13418 2015-04-24  Marek Polacek  <polacek@redhat.com>
13419
13420         PR c/61534
13421         * input.h (from_macro_expansion_at): Define.
13422
13423         PR c/63357
13424         * doc/invoke.texi: Update description of -Wlogical-op.
13425
13426 2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
13427
13428         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): fix
13429         ternary operator in fprintf and harmonize spacing.
13430
13431 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
13432
13433         * config/i386/sse.md (*vec_widen_smult_even_v8si<mask_name>):
13434         Mark operand1 commutative.
13435
13436 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
13437
13438         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Do not allow both
13439         input operands in memory.
13440         (*vec_concatv2si_sse4_1): Ditto.
13441         (*vec_concatv2df): Ditto, except for SSE3 and equal input operands.
13442         (vec_extract_lo_<mode><mask_name>): Change operand 1 predicate to
13443         register_operand.
13444         (vec_extract_hi_v32hi): Ditto.
13445         (vec_extract_hi_v64hi): Ditto.
13446         (<mask_codefor>avx512f_unpckhpd512<mask_name>): Ditto.
13447
13448 2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
13449             Steven Bosscher <steven@gcc.gnu.org>
13450
13451         PR rtl-optimization/34503
13452         * cprop.c (cprop_reg_p): New.
13453         (hash_scan_set): Use above function to check if register can be
13454         propagated.
13455         (find_avail_set): Return up to two sets, one whose source is a
13456         register and one whose source is a constant.  Sets are returned in an
13457         array passed as parameter rather than as a return value.
13458         (cprop_insn): Use a do while loop rather than a goto.  Try each of the
13459         sets returned by find_avail_set, starting with the one whose source is
13460         a constant. Use cprop_reg_p to check if register can be propagated.
13461         (do_local_cprop): Use cprop_reg_p to check if register can be
13462         propagated.
13463         (implicit_set_cond_p): Likewise.
13464
13465 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
13466
13467         * ipa-icf.c (sem_function::equals_wpa): Compare thunk info.
13468         (sem_function::equals): IGNORED_NODES parameter is now unused;
13469         update call of equals_private.
13470         (sem_function::equals_private): Do not call equals_wpa; skip
13471         gimple body matching if there is no body.
13472         (sem_function::init): Add logic to hash tthunk info.
13473         (sem_function::parse): Also parse thunks.
13474         * ipa-icf.h (equals_private): Update declaration.
13475
13476 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13477
13478         * config/rs6000/altivec.md (*altivec_lvx_<mode>_internal): Remove
13479         asterisk from name so this can be generated directly.
13480         (*altivec_stvx_<mode>_internal): Likewise.
13481         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Add assert
13482         that this is never called during or after reload/lra.
13483         (rs6000_frame_related): Remove split_reg
13484         argument and logic that references it.
13485         (emit_frame_save): Remove last parameter from call to
13486         rs6000_frame_related.
13487         (rs6000_emit_prologue): Remove last parameter from eight calls to
13488         rs6000_frame_related.  Force generation of stvx instruction for
13489         Altivec register saves.  Remove split_reg handling, which is no
13490         longer needed.
13491         (rs6000_emit_epilogue):  Force generation of lvx instruction for
13492         Altivec register restores.
13493
13494 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13495
13496         * config/rs6000/rs6000.opt (mcrypto): Change option description to
13497         match category changes in ISA 2.07B.
13498
13499 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13500
13501         * config/arm/iterators.md (GTGE, GTUGEU, COMPARISONS): New code
13502         iterators.
13503         (cmp_op, cmp_type): New code attributes.
13504         (NEON_VCMP, NEON_VACMP): New int iterators.
13505         (cmp_op_unsp): New int attribute.
13506         * config/arm/neon.md (neon_vc<cmp_op><mode>): New define_expand.
13507         (neon_vceq<mode>): Delete.
13508         (neon_vc<cmp_op><mode>_insn): New pattern.
13509         (neon_vc<cmp_op_unsp><mode>_insn_unspec): Likewise.
13510         (neon_vcgeu<mode>): Delete.
13511         (neon_vcle<mode>): Likewise.
13512         (neon_vclt<mode>: Likewise.
13513         (neon_vcage<mode>): Likewise.
13514         (neon_vcagt<mode>): Likewise.
13515         (neon_vca<cmp_op><mode>): New define_expand.
13516         (neon_vca<cmp_op><mode>_insn): New pattern.
13517         (neon_vca<cmp_op_unsp><mode>_insn_unspec): Likewise.
13518
13519 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
13520
13521         * tree.h (attribute_value_equal): Declare.
13522         * tree.c (attribute_value_equal): Export.
13523
13524 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
13525
13526         * ipa-icf.c (sem_item::compare_attributes): New function.
13527         (sem_item::compare_referenced_symbol_properties): Compare variable
13528         attributes.
13529         (sem_item::hash_referenced_symbol_properties): Record DECL_ALIGN.
13530         (sem_function::param_used_p): New function.
13531         (sem_function::equals_wpa): Fix attribute comparsion; match
13532         parameter type codes; do not compare paremter flags when
13533         they are not used; compare edge flags; compare indirect calls.
13534         (sem_item::update_hash_by_addr_refs): Hash reference type.
13535         (sem_function::equals_private): Do not match DECL_ATTRIBUTES.
13536         (sem_variable::equals_wpa): Do not match DECL_ALIGN; match
13537         reference use type.
13538         (sem_item_optimizer::update_hash_by_addr_refs): Use param_used_p.
13539         * ipa-icf.h (compare_attributes, param_used_p): Declare.
13540
13541 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
13542
13543         * ipa-icf.c (symbol_compare_collection::symbol_compare_collection):
13544         cleanup.
13545         (sem_function::get_hash): Do not hash DECL_DISREGARD_INLINE_LIMITS,
13546         DECL_DECLARED_INLINE_P and DECL_IS_OPERATOR_NEW.
13547         (sem_item::compare_referenced_symbol_properties): New.
13548         (sem_item::hash_referenced_symbol_properties): New.
13549         (sem_item::compare_cgraph_references): Rename to ...
13550         (sem_item::compare_symbol_references): ... this one; use
13551         compare_referenced_symbol_properties.
13552         (sem_function::equals_wpa): Do not compare
13553         DECL_DISREGARD_INLINE_LIMITS, DECL_DECLARED_INLINE_P,
13554         DECL_IS_OPERATOR_NEW; compare pointer sizes.
13555         (sem_item::update_hash_by_addr_refs): Call
13556         hash_referenced_symbol_properties.
13557         (sem_item::update_hash_by_local_refs): Cleanup.
13558         (sem_function::merge): Do not mix up symbol properties.
13559         (sem_variable::equals_wpa): Use compare_symbol_references.
13560         * ipa-icf.h (sem_item::compare_referenced_symbol_properties): New.
13561         (sem_item::hash_referenced_symbol_properties): New.
13562         (sem_item::compare_symbol_references): New.
13563         (sem_item::compare_cgraph_references): Remove.
13564
13565 2015-04-23  Kwok Cheung Yeung  <kcy@codesourcery.com>
13566
13567         PR target/26702
13568         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL):
13569         Emit size of local.
13570
13571 2015-04-23  Nick Clifton  <nickc@redhat.com>
13572
13573         * config/rl78/rl78.c (rl78_preferred_reload_class): Add
13574         ATTRIBUTE_UNUSED to x parameter.
13575         * config/rl78/rl78-opts.h (enum rl78_mul_types): Remove unused MUL_RL78.
13576
13577 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13578
13579         * config/rs6000/crypto.md (crypto_vpmsum<CR_char>): Change
13580         TARGET_CRYPTO to TARGET_P8_VECTOR>
13581         (crypto_vpermxor_<mode>): Likewise.
13582         * config/rs6000/rs6000-builtin.def (BU_CRYPTO_2A): New #define.
13583         (BU_CRYPTO_3A): Likewise.
13584         (BU_CRYPTO_OVERLOAD_2A): Rename from BU_CRYPTO_OVERLOAD_2.
13585         (BU_CRYPTO_OVERLOAD_3A): New #define.
13586         (VPMSUMB): Change from BU_CRYPTO_2 to BU_CRYPTO_2A.
13587         (VPMSUMH): Likewise.
13588         (VPMSUMW): Likewise.
13589         (VPMSUMD): Likewise.
13590         (VPERMXOR_V2DI): Change from BU_CRYPTO_3 to BU_CRYPTO_3A.
13591         (VPERMXOR_V4SI): Likewise.
13592         (VPERMXOR_V8HI): Likewise.
13593         (VPERMXOR_V16QI): Likewise.
13594         (VPMSUM): Change from BU_CRYPTO_OVERLOAD_2 to
13595         BU_CRYPTO_OVERLOAD_2A.
13596         (VPERMXOR): Change from BU_CRYPTO_OVERLOAD3 to
13597         BU_CRYPTO_OVERLOAD_3A.
13598         * config/rs6000/rs6000.opt (mcrypto): Change description of
13599         option.
13600
13601 2015-04-23  Richard Biener  <rguenther@suse.de>
13602
13603         * passes.def: Remove copy propagation passes run directly after CCP.
13604         * tree-ssa-ccp.c (get_value_for_expr): Fall back to a COPY for
13605         SSA names.
13606         (ccp_visit_phi_node): Rework to handle first executable edge
13607         specially.
13608
13609 2015-04-23  Matthew Wahab  <matthew.wahab@arm.com>
13610
13611         * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
13612         (ARM_LEGITIMIZE_RELOAD_ADDRESS): Remove.
13613         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Remove.
13614         * config/arm/arm.c (arm_legimitimize_reload_address): Remove.
13615         (thumb_legimitimize_reload_address): Remove.
13616         * config/arm/arm-protos.h (arm_legimitimize_reload_address):
13617         Remove.
13618         (thumb_legimitimize_reload_address): Remove.
13619
13620 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13621
13622         * conditions.h (CC_STATUS_INIT): Gate on #ifndef CC_STATUS_INIT.
13623
13624 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13625
13626         * config/arm/arm.md (load_multiple): Reject operand 2 greater than
13627         MAX_LDM_STM_OPS.
13628         (store_multiple): Likewise.
13629
13630 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13631
13632         * config/arm/arm-protos.h (struct tune_params): Add issue_rate field.
13633         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune,
13634         arm_strongarm_tune, arm_xscale_tune, arm_9e_tune, arm_v6t2_tune,
13635         arm_cortex_tune, arm_cortex_a8_tune, arm_cortex_a7_tune,
13636         arm_cortex_a15_tune, arm_cortex_a53_tune, arm_cortex_a57_tune,
13637         arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune,
13638         arm_fa726te_tune arm_cortex_a5_tune, arm_xgene1_tune):
13639         Specify issue_rate value.
13640         (arm_issue_rate): Look up issue rate from tuning structs. Remove
13641         large switch statement.
13642         (arm_marvell_pj4_tune): New struct.
13643         * config/arm/arm-cores.def (marvell-pj4): Use arm_marvell_pj4_tune
13644         struct.
13645
13646 2015-04-23  Richard Biener  <rguenther@suse.de>
13647
13648         * tree-vect-slp.c (vect_find_first_load_in_slp_instance): Remove.
13649         (vect_find_last_store_in_slp_instance): Rename to ...
13650         (vect_find_last_scalar_stmt_in_slp): ... this and generalize.
13651         (vect_analyze_slp_cost_1): Use vector_load for constant defs
13652         and vec_construct for external defs when estimating prologue cost.
13653         (vect_analyze_slp_instance): Do not init SLP_INSTANCE_FIRST_LOAD_STMT.
13654         Compute costs here only when vectorizing loops.
13655         (vect_slp_analyze_bb_1): Compute SLP cost here, after vector types
13656         have been determined.
13657         (vect_schedule_slp_instance): Simplify vectorized code placement
13658         and prepare for in-BB external defs.
13659         * tree-vectorizer.h (struct _slp_instance): Remove first_load member.
13660         (SLP_INSTANCE_FIRST_LOAD_STMT): Remove.
13661         * tree-vect-stmts.c (vect_model_store_cost): Remove PURE_SLP_STMT
13662         guard.
13663         (vect_model_load_cost): Likewise.
13664         (vectorizable_store): Instead add it here.
13665         (vectorizable_load): Likewise.
13666         (vect_is_simple_use): Dump def type textually.
13667
13668 2015-04-23  Richard Biener  <rguenther@suse.de>
13669
13670         * cfgexpand.c (expand_gimple_stmt_1): Use ops.code.
13671         * cfgloop.c (verify_loop_structure): Verify the root loop node.
13672         * except.c (duplicate_eh_regions): Call get_eh_region_from_lp_number_fn
13673         instead of get_eh_region_from_lp_number.
13674         * loop-init.c (fix_loop_structure): If we removed a loop, reset
13675         the SCEV cache.
13676
13677 2015-04-23  Anton Blanchard  <anton@samba.org>
13678
13679         * config/rs6000/rs6000.c (rs6000_output_function_prologue): No
13680         need for -mprofile-kernel to save LR to stack.
13681
13682 2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13683
13684         * config/rs6000/rs6000.c (rtx_is_swappable_p): Commentary
13685         adjustments.
13686         (insn_is_swappable_p): Return 1 for a convert from double to
13687         single precision when all of its uses are splats of BE element
13688         zero.
13689
13690 2015-04-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
13691
13692         * ira-costs.c (record_operand_costs): Fix typo (remove redundant code).
13693
13694 2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13695
13696         PR target/65456
13697         * config/rs6000/rs6000.c (rs6000_option_override_internal):  For
13698         VSX + POWER8, enable TARGET_ALLOW_MOVMISALIGN and
13699         TARGET_EFFICIENT_UNALIGNED_VSX if not selected by command line
13700         option.
13701         (rs6000_builtin_mask_for_load): Return 0 for targets with
13702         efficient unaligned VSX accesses so that the vectorizer will use
13703         direct unaligned loads.
13704         (rs6000_builtin_support_vector_misalignment): Always return true
13705         for targets with efficient unaligned VSX accesses.
13706         (rs6000_builtin_vectorization_cost): Cost of unaligned loads and
13707         stores on targets with efficient unaligned VSX accesses is almost
13708         always the same as the cost of an aligned load or store, so model
13709         it that way.
13710         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Return 0 for
13711         unaligned vectors if we have efficient unaligned VSX accesses.
13712         * config/rs6000/rs6000.opt (mefficient-unaligned-vector): New
13713         undocumented option.
13714
13715 2015-04-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13716
13717         Revert:
13718         2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>
13719
13720         * config.gcc (LIBC_MUSL): New tm_defines macro.
13721         * config/linux.h (OPTION_MUSL): Define.
13722         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
13723         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
13724         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
13725
13726         * config/linux.opt (mmusl): New option.
13727         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
13728         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
13729
13730         * configure: Regenerate.
13731
13732 2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>
13733
13734         * config.gcc (LIBC_MUSL): New tm_defines macro.
13735         * config/linux.h (OPTION_MUSL): Define.
13736         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
13737         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
13738         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
13739
13740         * config/linux.opt (mmusl): New option.
13741         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
13742         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
13743
13744         * configure: Regenerate.
13745
13746 2015-04-22  Yury Gribov  <y.gribov@samsung.com>
13747
13748         * doc/invoke.texi (-fsanitize-sections): Update description.
13749         * asan.c (set_sanitized_sections): Parse incoming arg.
13750         (section_sanitized_p): Support wildcards.
13751
13752 2015-04-22  Tom de Vries  <tom@codesourcery.com>
13753
13754         PR tree-optimization/65823
13755         * gimplify.c (gimplify_modify_expr): Use operand_equal_p to test for
13756         equality between ap_copy and ap.
13757
13758 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13759
13760         PR target/47098
13761         * config/openbsd-oldgas.h (OBSD_LIB_SPEC): Add.
13762
13763 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13764
13765         PR target/47122
13766         * config.gcc (vax-*-openbsd*): Fix name of pthread spec header.
13767
13768 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13769
13770         PR target/55144
13771         * config.gcc (bfin*-linux-uclibc*): Prepend tmake_file and
13772         remove already contained t-files.
13773
13774 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13775
13776         * tree-tailcall.c (suitable_for_tail_opt_p, find_tail_calls):
13777         Remove unneeded forward declarations.
13778         (suitable_for_tail_call_opt_p): Commentary typo fix.
13779
13780 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13781
13782         * varasm.c (emit_bss): Remove redundant guard.
13783
13784 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13785
13786         * config/c6x/c6x.h (TARGET_CPU_CPP_BUILTINS): Add unk_isa.
13787
13788 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13789
13790         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Add BFIN_CPU_UNKNOWN.
13791
13792 2015-04-22  Hale Wang  <hale.wang@arm.com>
13793             Terry Guo  <terry.guo@arm.com>
13794
13795         PR rtl-optimization/64818
13796         * combine.c (can_combine_p): Don't combine user-specified
13797         register if it is in an asm input.
13798
13799 2015-04-21  Jan Hubicka  <hubicka@ucw.cz>
13800
13801         PR ipa/65076
13802         * passes.def (early_optimizations): Add pass_dse.
13803
13804 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13805
13806         * defaults.h (INSN_REFERENCES_ARE_DELAYED): New definition.
13807         * reorg.c (redundant_insn): Remove ifdef
13808         INSN_REFERENCES_ARE_DELAYED.
13809         * resource.c (mark_referenced_resources): Likewise.
13810
13811 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13812
13813         * defaults.h (INSN_SETS_ARE_DELAYED): New definition.
13814         * reorg.c (redundant_insn): Remove ifdef INSN_SETS_ARE_DELAYED.
13815         * resource.c (mark_set_resources): Likewise.
13816
13817 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13818
13819         * caller-save.c (insert_one_insn): Remove ifdef HAVE_cc0.
13820         * cfgcleanup.c (flow_find_cross_jump): Likewise.
13821         (flow_find_head_matching_sequence): Likewise.
13822         (try_head_merge_bb): Likewise.
13823         * combine.c (can_combine_p): Likewise.
13824         (try_combine): Likewise.
13825         (distribute_notes): Likewise.
13826         * df-problems.c (can_move_insns_across): Likewise.
13827         * final.c (final): Likewise.
13828         * gcse.c (insert_insn_end_basic_block): Likewise.
13829         * ira.c (find_moveable_pseudos): Likewise.
13830         * reorg.c (try_merge_delay_insns): Likewise.
13831         (fill_simple_delay_slots): Likewise.
13832         (fill_slots_from_thread): Likewise.
13833         * sched-deps.c (sched_analyze_2): Likewise.
13834
13835 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13836
13837         * df-scan.c (df_get_entry_block_def_set): Remove #ifdef
13838         PIC_OFFSET_TABLE_REGNUM.
13839
13840 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13841
13842         * alias.c (init_alias_target): Remove ifdef
13843         * HARD_FRAME_POINTER_IS_FRAME_POINTER.
13844         * df-scan.c (df_insn_refs_collect): Likewise.
13845         (df_get_regular_block_artificial_uses): Likewise.
13846         (df_get_eh_block_artificial_uses): Likewise.
13847         (df_get_entry_block_def_set): Likewise.
13848         (df_get_exit_block_use_set): Likewise.
13849         * emit-rtl.c (gen_rtx_REG): Likewise.
13850         * ira.c (ira_setup_eliminable_regset): Likewise.
13851         * reginfo.c (init_reg_sets_1): Likewise.
13852         * regrename.c (rename_chains): Likewise.
13853         * reload1.c (reload): Likewise.
13854         (eliminate_regs_in_insn): Likewise.
13855         * resource.c (mark_referenced_resources): Likewise.
13856         (init_resource_info): Likewise.
13857
13858 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13859
13860         * defaults.h (MASK_RETURN_ADDR): New definition.
13861         * except.c (expand_builtin_extract_return_addr): Remove ifdef
13862         MASK_RETURN_ADDR.
13863
13864 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13865
13866         * defaults.h (RETURN_ADDR_OFFSET): New definition.
13867         * except.c (expand_builtin_extract_return_addr): Remove ifdef
13868         RETURN_ADDR_OFFSET.
13869         (expand_builtin_frob_return_addr): Likewise.
13870
13871 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13872
13873         * cfgrtl.c (rtl_merge_blocks): Change #if HAVE_cc0 to if (HAVE_cc0)
13874         (try_redirect_by_replacing_jump): Likewise.
13875         (rtl_tidy_fallthru_edge): Likewise.
13876         * combine.c (insn_a_feeds_b): Likewise.
13877         (find_split_point): Likewise.
13878         (simplify_set): Likewise.
13879         * cprop.c (cprop_jump): Likewise.
13880         * cse.c (cse_extended_basic_block): Likewise.
13881         * df-problems.c (can_move_insns_across): Likewise.
13882         * function.c (emit_use_return_register_into_block): Likewise.
13883         * haifa-sched.c (sched_init): Likewise.
13884         * ira.c (find_moveable_pseudos): Likewise.
13885         * loop-invariant.c (find_invariant_insn): Likewise.
13886         * lra-constraints.c (curr_insn_transform): Likewise.
13887         * postreload.c (reload_combine_recognize_const_pattern):
13888         * Likewise.
13889         * reload.c (find_reloads): Likewise.
13890         * reorg.c (delete_scheduled_jump): Likewise.
13891         (steal_delay_list_from_target): Likewise.
13892         (steal_delay_list_from_fallthrough): Likewise.
13893         (redundant_insn): Likewise.
13894         (fill_simple_delay_slots): Likewise.
13895         (fill_slots_from_thread): Likewise.
13896         (delete_computation): Likewise.
13897         * sched-rgn.c (add_branch_dependences): Likewise.
13898
13899 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13900
13901         * genconfig.c (main): Always define HAVE_cc0.
13902         * caller-save.c (insert_one_insn): Change ifdef HAVE_cc0 to #if
13903         HAVE_cc0.
13904         * cfgcleanup.c (flow_find_cross_jump): Likewise.
13905         (flow_find_head_matching_sequence): Likewise.
13906         (try_head_merge_bb): Likewise.
13907         * cfgrtl.c (rtl_merge_blocks): Likewise.
13908         (try_redirect_by_replacing_jump): Likewise.
13909         (rtl_tidy_fallthru_edge): Likewise.
13910         * combine.c (do_SUBST_MODE): Likewise.
13911         (insn_a_feeds_b): Likewise.
13912         (combine_instructions): Likewise.
13913         (can_combine_p): Likewise.
13914         (try_combine): Likewise.
13915         (find_split_point): Likewise.
13916         (subst): Likewise.
13917         (simplify_set): Likewise.
13918         (distribute_notes): Likewise.
13919         * cprop.c (cprop_jump): Likewise.
13920         * cse.c (cse_extended_basic_block): Likewise.
13921         * df-problems.c (can_move_insns_across): Likewise.
13922         * final.c (final): Likewise.
13923         (final_scan_insn): Likewise.
13924         * function.c (emit_use_return_register_into_block): Likewise.
13925         * gcse.c (insert_insn_end_basic_block): Likewise.
13926         * haifa-sched.c (sched_init): Likewise.
13927         * ira.c (find_moveable_pseudos): Likewise.
13928         * loop-invariant.c (find_invariant_insn): Likewise.
13929         * lra-constraints.c (curr_insn_transform): Likewise.
13930         * optabs.c (prepare_cmp_insn): Likewise.
13931         * postreload.c (reload_combine_recognize_const_pattern):
13932         * Likewise.
13933         * reload.c (find_reloads): Likewise.
13934         (find_reloads_address_1): Likewise.
13935         * reorg.c (delete_scheduled_jump): Likewise.
13936         (steal_delay_list_from_target): Likewise.
13937         (steal_delay_list_from_fallthrough): Likewise.
13938         (try_merge_delay_insns): Likewise.
13939         (redundant_insn): Likewise.
13940         (fill_simple_delay_slots): Likewise.
13941         (fill_slots_from_thread): Likewise.
13942         (delete_computation): Likewise.
13943         (relax_delay_slots): Likewise.
13944         * sched-deps.c (sched_analyze_2): Likewise.
13945         * sched-rgn.c (add_branch_dependences): Likewise.
13946
13947 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13948
13949         * combine.c (find_single_use): Remove HAVE_cc0 ifdef for code
13950         that is trivially ded on non cc0 targets.
13951         (simplify_set): Likewise.
13952         (mark_used_regs_combine): Likewise.
13953         * cse.c (new_basic_block): Likewise.
13954         (fold_rtx): Likewise.
13955         (cse_insn): Likewise.
13956         (cse_extended_basic_block): Likewise.
13957         (set_live_p): Likewise.
13958         * rtlanal.c (canonicalize_condition): Likewise.
13959         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
13960
13961 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13962
13963         * conditions.h: Define macros even if HAVE_cc0 is undefined.
13964         * emit-rtl.c: Define functions even if HAVE_cc0 is undefined.
13965         * final.c: Likewise.
13966         * jump.c: Likewise.
13967         * recog.c: Likewise.
13968         * recog.h: Declare functions even when HAVE_cc0 is undefined.
13969         * sched-deps.c (sched_analyze_2): Always compile case for cc0.
13970
13971 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13972
13973         * defaults.h: New definition of EH_RETURN_DATA_REGNO.
13974         * except.c: Remove definition of EH_RETURN_DATA_REGNO.
13975         * builtins.c (expand_builtin): Remove check if
13976         EH_RETURN_DATA_REGNO is defined.
13977         * df-scan.c (df_bb_refs_collect): Likewise.
13978         (df_get_exit_block_use_set): Likewise.
13979         * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
13980         * ira-lives.c (process_bb_node_lives): Likewise.
13981         * lra-lives.c (process_bb_lives): Likewise.
13982
13983 2015-04-21  Uros Bizjak  <ubizjak@gmail.com>
13984
13985         * config/i386/i386.md (ARGP_REG, FRAME_REG, BND2_REG, BND3_REG,
13986         FIRST_PSEUDO_REG): New.
13987         * config/i386/i386.h (STACK_POINTER_REGNUM): Define to SP_REG.
13988         (ARG_POINTER_REGNUM): Define to ARGP_REG.
13989         (FRAME_POINTER_REGNUM): Define to FRAME_REG.
13990         (HARD_FRAME_POINTER_REGNUM): Define to BP_REG.
13991         (FIRST_PSEUDO_REGISTER): Define to FIRST_PSEUDO_REG.
13992         (FIRST_INT_REG): New.
13993         (LAST_INT_REG): New.
13994         (FIRST_*_REG): Define using *_REG.
13995         (LAST_*_REG): Ditto.
13996         (QI_REGNO_P): Define using FIRST_QU_REG and LAST_QI_REG.
13997         (LEGACY_INT_REGNO_P): Define using FIRST_INT_REG and LAST_INT_REG.
13998         (FIRST_FLOAT_REG): Define to FIRST_STACK_REG.
13999
14000 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14001
14002         * expmed.c: (synth_mult): Only assume overlapping
14003         shift with previous steps in alg_sub_t_m2 case.
14004
14005 2015-04-21  Richard Biener  <rguenther@suse.de>
14006
14007         PR tree-optimization/65650
14008         * tree-ssa-ccp.c (valid_lattice_transition): Allow lattice
14009         transitions involving copies.
14010         (set_lattice_value): Adjust for copy lattice state.
14011         (ccp_lattice_meet): Do not merge UNDEFINED and a copy to the copy
14012         if that doesn't dominate the merge point.
14013         (bit_value_unop): Adjust what we treat as varying mask.
14014         (bit_value_binop): Likewise.
14015         (bit_value_assume_aligned): Likewise.
14016         (evaluate_stmt): When we simplified to a SSA name record a copy
14017         instead of dropping to varying.
14018         (visit_assignment): Simplify.
14019
14020         * gimple-match.h (gimple_simplify): Add another callback.
14021         * gimple-fold.c (fold_stmt_1): Adjust caller.
14022         (gimple_fold_stmt_to_constant_1): Likewise - pass valueize
14023         for the 2nd callback.
14024         * gimple-match-head.c (gimple_simplify): Add a callback that is
14025         used to valueize the stmt operands and use it that way.
14026
14027 2015-04-21  Richard Biener  <rguenther@suse.de>
14028
14029         PR tree-optimization/65788
14030         * tree-ssa-ccp.c (evaluate_stmt): Evaluate to UNDEFINED early.
14031
14032 2015-04-21  Richard Biener  <rguenther@suse.de>
14033
14034         * config/i386/i386.c (ix86_builtin_vectorization_cost): Scale
14035         vec_construct cost by vec_stmt_cost.
14036
14037 2015-04-21  Richard Biener  <rguenther@suse.de>
14038
14039         * cfghooks.h (create_basic_block): Replace with two overloads
14040         for RTL and GIMPLE.
14041         (split_block): Likewise.
14042         * cfghooks.c (split_block): Rename to ...
14043         (split_block_1): ... this.
14044         (split_block): Add two type-safe overloads for RTL and GIMPLE.
14045         (split_block_after_labels): Call split_block_1.
14046         (create_basic_block): Rename to ...
14047         (create_basic_block_1): ... this.
14048         (create_basic_block): Add two type-safe overloads for RTL and GIMPLE.
14049         (create_empty_bb): Call create_basic_block_1.
14050         * cfgrtl.c (fixup_fallthru_exit_predecessor): Use
14051         split_block_after_labels.
14052         * omp-low.c (expand_parallel_call): Likewise.
14053         (expand_omp_target): Likewise.
14054         (simd_clone_adjust): Likewise.
14055         * tree-chkp.c (chkp_get_entry_block): Likewise.
14056         * cgraphunit.c (init_lowered_empty_function): Use the GIMPLE
14057         create_basic_block overload.
14058         (cgraph_node::expand_thunk): Likewise.
14059         * tree-cfg.c (make_blocks): Likewise.
14060         (handle_abnormal_edges): Likewise.
14061         * tree-inline.c (copy_bb): Likewise.
14062
14063 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14064
14065         * config/aarch64/aarch64.md (*<NLOGICAL:optab>_one_cmplsidi3_ze):
14066         New pattern.
14067         (*xor_one_cmplsidi3_ze): Likewise.
14068
14069 2015-04-21  Thomas Preud'homme  <thomas.preudhomme@arm.com>
14070
14071         * df-core.c (df_finish_pass): Iterate over df->problems_by_index[] and
14072         use df_remove_problem rather than manually removing problems, leaving
14073         holes in df->problems_in_order[].
14074
14075 2015-04-21  Tom de Vries  <tom@codesourcery.com>
14076
14077         PR tree-optimization/65802
14078         * internal-fn.def (VA_ARG): Add ECF_NOTROW to flags.
14079
14080 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14081
14082         * common/config/aarch64/aarch64-common.c (AARCH64_CPU_NAME_LENGTH):
14083         Increase to 128.
14084         (aarch64_rewrite_selected_cpu): Do not chop off extensions starting
14085         at '.'.  Assert that there's enough space for everything.
14086
14087 2015-04-21  Uros Bizjak  <ubizjak@gmail.com>
14088
14089         PR tree-optimization/64950
14090         Revert:
14091         2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
14092
14093         PR target/41089
14094         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
14095         as volatile.
14096
14097 2015-04-20  Shiva Chen  <shiva0217@gmail.com>
14098
14099         PR rtl-optimization/64916
14100         * cfgcleanup.c (values_equal_p): New function.
14101         (can_replace_by): Use it.
14102
14103 2015-04-20  Paolo Carlini  <paolo.carlini@oracle.com>
14104
14105         PR c++/65801
14106         * doc/invoke.texi ([-Wnarrowing]): Update.
14107
14108 2015-04-20  Jeff Law  <law@redhat.com>
14109
14110         PR tree-optimization/65658
14111         * tree-ssa-threadupdate.c (redirection_block_p): Remove
14112         redundant test for GIMPLE_ASSIGN in last change.
14113
14114 2015-04-20  Uros Bizjak  <ubizjak@gmail.com>
14115
14116         * config/i386/i386.c (set_pic_reg_ever_live): Remove.
14117         (legitimize_pic_address): Do not call set_pic_reg_ever_live.
14118         (legitimize_tls_address): Ditto.
14119         (ix86_expand_move): Ditto.
14120         (ix86_expand_binary_operator): Remove reload_in_progress checks.
14121         (ix86_expand_unary_operator): Ditto.
14122         * config/i386/predicates.md (index_register_operand): Ditto.
14123
14124 2015-04-20  Selim Belbachir  <selim.belbachir@fr.thalesgroup.com>
14125
14126         * reorg.c (try_merge_delay_insns): Improve correctness checking
14127         for targets with multiple delay slots.
14128
14129 2015-04-20  Jeff Law  <law@redhat.com>
14130
14131         PR tree-optimization/65658
14132         * tree-ssa-threadupdate.c (redirection_block_p): Ignore clobber
14133         statements too.
14134
14135 2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>
14136
14137         * config/aarch64/aarch64.c (aarch64_simd_emit_pair_result_insn): Delete.
14138         * config/aarch64/aarch64-protos.h (aarch64_simd_emit_pair_result_insn):
14139         Delete.
14140
14141 2015-04-20  Jakub Jelinek  <jakub@redhat.com>
14142
14143         PR debug/65807
14144         * dwarf2out.c (add_AT_wide): Clear attr.dw_attr_val.val_entry.
14145
14146 2015-04-20  Richard Biener  <rguenther@suse.de>
14147
14148         * gimple-fold.h (gimple_build): Remove optional valueize arguments.
14149         * gimple-fold.c (gimple_build_valueize): New function.
14150         (gimple_build): Always use gimple_build_valueize as valueize hook.
14151
14152 2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>
14153
14154         PR target/64134
14155         * config/aarch64/aarch64.c (aarch64_expand_vector_init): Load constant
14156         and overwrite variable parts if <= 1/2 the elements are variable.
14157
14158 2015-04-19  Vladimir Makarov  <vmakarov@redhat.com>
14159
14160         PR rtl-optimization/65805
14161         * lra-eliminations.c (lra_eliminate_regs_1): Add new assert.
14162         Don't use difference of offset and previous offset if
14163         update_sp_offset is non-zero.
14164         (eliminate_regs_in_insn): Ditto.
14165         * lra-spills.c (remove_pseudos): Exchange 4th and 6th args in
14166         lra_eliminate_regs_1 call.
14167         * lra-constraints.c (get_equiv_with_elimination): Ditto.
14168
14169 2015-04-18  Trevor Saunders  <tsaunders@mozilla.com>
14170
14171         * hash-table.h: Remove version of hash_table that stored value_type *.
14172         * asan.c, attribs.c, bitmap.c, cfg.c, cgraph.h, config/arm/arm.c,
14173         config/i386/winnt.c, config/ia64/ia64.c, config/mips/mips.c,
14174         config/sol2.c, coverage.c, cselib.c, dse.c, dwarf2cfi.c,
14175         dwarf2out.c, except.c, gcse.c, genmatch.c, ggc-common.c,
14176         gimple-ssa-strength-reduction.c, gimplify.c, haifa-sched.c,
14177         hard-reg-set.h, hash-map.h, hash-set.h, ipa-devirt.c, ipa-icf.h,
14178         ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
14179         loop-iv.c, loop-unroll.c, lto-streamer.h, plugin.c, postreload-gcse.c,
14180         reginfo.c, statistics.c, store-motion.c, trans-mem.c, tree-cfg.c,
14181         tree-eh.c, tree-hasher.h, tree-into-ssa.c, tree-parloops.c,
14182         tree-sra.c, tree-ssa-coalesce.c, tree-ssa-dom.c, tree-ssa-live.c,
14183         tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c,
14184         tree-ssa-pre.c, tree-ssa-reassoc.c, tree-ssa-sccvn.c,
14185         tree-ssa-structalias.c, tree-ssa-tail-merge.c,
14186         tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
14187         valtrack.h, var-tracking.c, vtable-verify.c, vtable-verify.h: Adjust.
14188
14189 2015-04-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14190             Jakub Jelinek  <jakub@redhat.com>
14191
14192         PR target/65787
14193         * config/rs6000/rs6000.c (rtx_is_swappable_p): Ensure that a
14194         subsequent SH_NONE operand does not overwrite an existing *special
14195         value.
14196         (adjust_extract): Handle case where a vec_extract operation is
14197         wrapped in a PARALLEL.
14198
14199 2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>
14200
14201         PR target/65780
14202         * config/i386/i386.c (ix86_binds_local_p): Define only if
14203         TARGET_MACHO and TARGET_DLLIMPORT_DECL_ATTRIBUTES are false.
14204
14205 2015-04-17  Jeff Law  <law@redhat.com>
14206
14207         PR tree-optimization/47679
14208         * Makefile.in (OBJS); Add tree-ssa-scopedtables.o.
14209         * tree-ssa-scopedtables.c: New file.
14210         * tree-ssa-scopedtables.h: New file.
14211         * tree-ssa-dom.c: Include tree-ssa-scopedtables.h.
14212         (const_and_copies): Change name/type.
14213         (record_const_or_copy): Move into tree-ssa-scopedtables.c
14214         (record_const_or_copy_1): Similarly.
14215         (restore_vars_to_original_value): Similarly.
14216         (pass_dominator::execute): Create and destroy const_and_copies table.
14217         (thread_across_edge): Update passing of const_and_copies.
14218         (record_temporary_equivalence): Use method calls rather than
14219         manipulating const_and_copies directly.
14220         (record_equality, cprop_into_successor_phis): Similarly.
14221         (dom_opt_dom_walker::before_dom_children): Similarly.
14222         (dom_opt_dom_walker::after_dom_children): Similarly.
14223         (eliminate_redundant_computations): Similarly.
14224         * tree-ssa-threadedge.c (remove_temporary_equivalences): Delete.
14225         (record_temporary_equivalence): Likewise.
14226         (invalidate_equivalences): Likewise.
14227         (record_temporary_equivalences_from_phis): Update due to type
14228         change of const_and_copies.  Use method calls rather than
14229         manipulating the stack directly.
14230         (record_temporary_equivalences_from_stmts_at_dest): Likewise.
14231         (thread_through_normal_block, thread_across_edge): Likewise.
14232         (thread_across_edge): Likewise.
14233         * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
14234         * tree-vrp.c: Include tree-ssa-scopedtables.h.  Change type
14235         of equiv_stack.
14236         (identify_jump_threads): Update due to type change of equiv_stack.
14237         (finalize_jump_threads): Delete the equiv_stack when complete.
14238
14239 2015-04-17  Uros Bizjak  <ubizjak@gmail.com>
14240
14241         * config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
14242         * config/i386/i386.c (ix86_legitimize_reload_address): Ditto.
14243         * config/i386/i386-protos.h (ix86_legitimize_reload_address): Ditto.
14244
14245 2015-04-17  Andreas Tobler  <andreast@gcc.gnu.org>
14246
14247         PR target/65535
14248         * config.gcc: Exit with a comment when we do not have a major version
14249         number for the FreeBSD target.
14250
14251 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
14252
14253         PR target/65689
14254         * genpreds.c (struct constraint_data): Add maybe_allows_reg and
14255         maybe_allows_mem bitfields.
14256         (maybe_allows_none_start, maybe_allows_none_end,
14257         maybe_allows_reg_start, maybe_allows_reg_end, maybe_allows_mem_start,
14258         maybe_allows_mem_end): New variables.
14259         (compute_maybe_allows): New function.
14260         (add_constraint): Use it to initialize maybe_allows_reg and
14261         maybe_allows_mem fields.
14262         (choose_enum_order): Sort the non-is_register/is_const_int/is_memory/
14263         is_address constraints such that those that allow neither mem nor
14264         reg come first, then those that only allow reg but not mem, then
14265         those that only allow mem but not reg, then the rest.
14266         (write_allows_reg_mem_function): New function.
14267         (write_tm_preds_h): Call it.
14268         * stmt.c (parse_output_constraint, parse_input_constraint): Use
14269         the generated insn_extra_constraint_allows_reg_mem function
14270         instead of always setting *allows_reg = true; *allows_mem = true;
14271         for unknown extra constraints.
14272
14273 2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>
14274
14275         PR target/65780
14276         * output.h (default_binds_local_p_3): New.
14277         * varasm.c (default_binds_local_p_3): Make it public.  Take an
14278         argument to indicate if common symbol may be local.  If common
14279         symbol may be local, treat non-external variable as defined
14280         locally.
14281         (default_binds_local_p_2): Pass !flag_pic to default_binds_local_p_3.
14282         (default_binds_local_p_1): Pass false to default_binds_local_p_3.
14283         * config/i386/i386.c (ix86_binds_local_p): New.
14284         (TARGET_BINDS_LOCAL_P): Replace default_binds_local_p_2 with
14285         ix86_binds_local_p.
14286
14287 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
14288
14289         PR debug/65771
14290         * dwarf2out.c (mem_loc_descriptor): For CONST, fallback to
14291         trying mem_loc_descriptor on XEXP (rtl, 0).
14292
14293 2015-04-17  Martin Liska  <mliska@suse.cz>
14294
14295         * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
14296         Release symbol_compare_collection.
14297         * ipa-reference.c: Add TODO that a vector should be released.
14298
14299 2015-04-17  Sivanupandi Pitchumani <Pitchumani.Sivanupandi@atmel.com>
14300
14301         PR target/65296
14302         * config/avr/gen-avr-mmcu-specs.c (*avrlibc_startfile): Adjust
14303         to new AVR-LibC file layout (bug #44574).
14304         (*avrlibc_devicelib): Same.
14305         * config/avr/avr-mcus.def: Adjust comments.
14306         * config/avr/avr.opt (nodevicelib): Adjust help.
14307
14308 2015-04-17  Alan Lawrence  <alan.lawrence@arm.com>
14309
14310         * config/aarch64/arm_neon.h (vdup_n_f32): Remove forward declaration.
14311
14312 2015-04-17  Patrick Palka  <ppalka@gcc.gnu.org>
14313
14314         PR c++/64527
14315         * gimplify.c (gimplify_init_constructor): Always emit a
14316         side-effecting constructor.
14317
14318 2015-04-17  Tom de Vries  <tom@codesourcery.com>
14319
14320         PR tree-optimization/64950
14321         * gimplify.c (gimplify_function_tree): Tentatively set PROP_gimple_lva
14322         in cfun->curr_properties.
14323         (gimplify_va_arg_expr): Clear PROP_gimple_lva in cfun->curr_properties
14324         if we generate an IFN_VA_ARG.
14325         * tree-inline.c (expand_call_inline): Reset PROP_gimple_lva in dest
14326         function if PROP_gimple_lva is not set in src function.
14327
14328 2015-04-17  Tom de Vries  <tom@codesourcery.com>
14329             Michael Matz  <matz@suse.de>
14330
14331         PR tree-optimization/64950
14332         * gimple-iterator.c (update_modified_stmts): Remove static.
14333         * gimple-iterator.h (update_modified_stmts): Declare.
14334         * gimplify.c (gimplify_modify_expr): Handle IFN_VA_ARG.
14335         (gimplify_va_arg_internal): New function.
14336         (gimplify_va_arg_expr): Use IFN_VA_ARG.
14337         * gimplify.h (gimplify_va_arg_internal): Declare.
14338         * internal-fn.c (expand_VA_ARG): New unreachable function.
14339         * internal-fn.def (VA_ARG): New DEF_INTERNAL_FN.
14340         * tree-stdarg.c (gimple_call_ifn_va_arg_p, expand_ifn_va_arg_1)
14341         (expand_ifn_va_arg): New function.
14342         (pass_data_stdarg): Add PROP_gimple_lva to properties_provided field.
14343         (pass_stdarg::execute): Call expand_ifn_va_arg.
14344         (pass_data_lower_vaarg): New pass_data.
14345         (pass_lower_vaarg): New gimple_opt_pass.
14346         (pass_lower_vaarg::gate, pass_lower_vaarg::execute)
14347         (make_pass_lower_vaarg): New function.
14348         * cfgexpand.c (pass_data_expand): Add PROP_gimple_lva to
14349         properties_required field.
14350         * passes.def (all_passes): Add pass_lower_vaarg.
14351         * tree-pass.h (PROP_gimple_lva): Add define.
14352         (make_pass_lower_vaarg): Declare.
14353
14354 2015-04-17  Tom de Vries  <tom@codesourcery.com>
14355
14356         * fold-const.c (operand_equal_p): Handle INTERNAL_FNs.
14357         * calls.c (call_expr_flags): Same.
14358
14359 2015-04-17  Tom de Vries  <tom@codesourcery.com>
14360
14361         * tree-stdarg.c (optimize_va_list_gpr_fpr_size): Factor out of ...
14362         (pass_stdarg::execute): ... here.
14363
14364 2015-04-17  Tom de Vries  <tom@codesourcery.com>
14365             Michael Matz  <matz@suse.de>
14366
14367         * tree-cfg.c (make_blocks_1): Factor out of ...
14368         (make_blocks): ... here.
14369         (make_edges_bb): Factor out of ...
14370         (make_edges): ... here.
14371         (gimple_find_sub_bbs): New function.
14372         * tree-cfg.h (gimple_find_sub_bbs): Declare.
14373
14374 2015-04-17  Tom de Vries  <tom@codesourcery.com>
14375
14376         * tree.c (free_lang_data): Disable lang_hooks.gimplify_expr.
14377
14378 2015-04-17  Yury Gribov  <y.gribov@samsung.com>
14379
14380         * asan.c (set_sanitized_sections): New function.
14381         (section_sanitized_p): Ditto.
14382         (asan_protect_global): Optionally sanitize user-defined
14383         sections.
14384         * asan.h (set_sanitized_sections): Declare new function.
14385         * common.opt (fsanitize-sections): New option.
14386         * doc/invoke.texi (-fsanitize-sections): Document new option.
14387         * opts-global.c (handle_common_deferred_options): Handle new
14388         option.
14389
14390 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
14391
14392         PR debug/65771
14393         * dwarf2out.c (loc_list_from_tree): Return NULL
14394         for DEBUG_EXPR_DECL.
14395
14396 2015-04-17  Christian Bruel  <christian.bruel@st.com>
14397
14398         * ipa-inline.c (can_inline_edge_p): Allow inlining of functions with
14399         same attributes.
14400
14401 2015-04-16  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
14402
14403         * ira-color.c (setup_left_conflict_sizes_p): Do not process
14404         node itself when computing left conflict subnode size.
14405
14406 2015-04-16  Uros Bizjak  <ubizjak@gmail.com>
14407
14408         * config/i386/predicates.md (register_mixssei387nonimm_operand): New.
14409         * config/i386/i386.md (*fop_<mode>_1_mixed): Merge with
14410         *fop_<mode>_1_sse using enabled attribute.  Use
14411         register_mixssei387nonimm_operand operand 1 predicate. Change
14412         alternative 3 constraints from "x" to "v".
14413
14414 2015-04-16  Richard Biener  <rguenther@suse.de>
14415
14416         PR tree-optimization/65774
14417         * tree-ssa-ccp.c (evaluate_stmt): Constrain types we invoke
14418         bit-value tracking on.
14419
14420 2015-04-16  Richard Biener  <rguenther@suse.de>
14421
14422         PR tree-optimization/64277
14423         * tree-vrp.c (check_array_ref): Fix anti-range handling,
14424         simplify upper bound handling.
14425         (search_for_addr_array): Simplify.
14426         (check_array_bounds): Handle ADDR_EXPRs here.
14427         (check_all_array_refs): Simplify.
14428
14429 2015-04-16  Uros Bizjak  <ubizjak@gmail.com>
14430
14431         * config/i386/i386.c (print_reg): Rewrite function.
14432
14433 2015-04-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14434
14435         * config/s390/s390.h (IRA_HARD_REGNO_ADD_COST_MULTIPLIER):
14436         Invert the condition.
14437
14438 2015-04-16  Renlin Li  <renlin.li@arm.com>
14439
14440         * simplify-rtx.c (simplify_unary_operation_1): Fix a typo. Enable two
14441         simplifications for UNSIGNED_FLOAT.
14442
14443 2015-04-16  Nick Clifton  <nickc@redhat.com>
14444
14445         * config/rl78/rl78-opts.h (enum rl78_mul_types): Add MUL_G14 and
14446         MUL_UNINIT.
14447         (enum rl78_cpu_type): New.
14448         * config/rl78/rl78-virt.md (attr valloc): Add divhi and divsi.
14449         (umulhi3_shift_virt): Remove m constraint from operand 1.
14450         (umulqihi3_virt): Likewise.
14451         * config/rl78/rl78.c (rl78_option_override): Add code to process
14452         -mcpu and -mmul options.
14453         (rl78_alloc_physical_registers): Add code to handle divhi and
14454         divsi valloc attributes.
14455         (set_origin): Likewise.
14456         * config/rl78/rl78.h (RL78_MUL_G14): Define.
14457         (TARGET_G10, TARGET_G13, TARGET_G14): Define.
14458         (TARGET_CPU_CPP_BUILTINS): Define __RL78_MUL_xxx__ and
14459         __RL78_Gxx__.
14460         (ASM_SPEC): Pass -mcpu on to assembler.
14461         * config/rl78/rl78.md (mulqi3): Add a clobber of AX.
14462         (mulqi3_rl78): Likewise.
14463         (mulhi3_g13): Likewise.
14464         (mulhi3): Generate the G13 or G14 versions of the insn directly.
14465         (mulsi3): Likewise.
14466         (mulhi3_g14): Add clobbers of AX and BC.
14467         (mulsi3_g14): Likewise.
14468         (mulsi3_g13): Likewise.
14469         (udivmodhi4, udivmodhi4_g14, udivmodsi4): New patterns.
14470         (udivmodsi4_g14, udivmodsi4_g13): New patterns.
14471         * config/rl78/rl78.opt (mmul): Initialise value to
14472         RL78_MUL_UNINIT.
14473         (mcpu): New option.
14474         (m13, m14, mrl78): New option aliases.
14475         * config/rl78/t-rl78 (MULTILIB_OPTIONS): Add mg13 and mg14.
14476         (MULTILIB_DIRNAMES): Add g13 and g14.
14477         * doc/invoke.texi: Document -mcpu and -mmul options.
14478
14479 2015-04-16  Richard Biener  <rguenther@suse.de>
14480
14481         * tree-ssa-ccp.c (likely_value): See if we have operands that
14482         are marked as never simulate again and return CONSTANT in this
14483         case.
14484         * tree-ssa-propagate.c (simulate_stmt): Mark stmts that do
14485         not have any operands that will be simulated again as
14486         not being simulated again.
14487
14488 2015-04-15  Uros Bizjak  <ubizjak@gmail.com>
14489
14490         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed):
14491         Merge with *cmpi<FPCMP:unord><MODEF:mode>_sse using enabled attribute.
14492         (*extendsfdf2_mixed): Merge with *extendsfdf2_sse using enabled
14493         attribute.
14494         (*truncdfsf_fast_mixed): Merge with *truncdfsf_fast_sse using
14495         enabled attribute.
14496         (*float<SWI48:mode><MODEF:mode>2_mixed): Rename from
14497         *float<SWI48:mode><MODEF:mode>2_sse.
14498         (*absneg<mode>2_mixed): Merge with *absneg<mode>2_sse using
14499         enabled attribute.
14500         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_sse using
14501         enabled attribute.
14502
14503 2015-04-15  Tom de Vries  <tom@codesourcery.com>
14504
14505         PR other/65487
14506         * function.c (push_dummy_function): New function.
14507         (init_dummy_function_start): Use push_dummy_function.
14508         (pop_dummy_function): New function.  Factored out of ...
14509         (expand_dummy_function_end): ... here.
14510         * function.h (push_dummy_function, pop_dummy_function): Declare.
14511         * passes.c (pass_manager::dump_passes): Use push_dummy_function and
14512         pop_dummy_function.
14513         * tree-chkp.c (chkp_gate): Handle cgraph_node::get (cfun->decl) == NULL.
14514
14515 2015-04-15  Jeff Law  <law@redhat.com>
14516
14517         PR tree-optimization/47679
14518         * tree-ssa-dom.c (build_and_record_new_cond): Moved to avoid
14519         need for forward declaration in upcoming changes.
14520         (record_conditions, record_edge_info): Likewise.
14521
14522         PR rtl-optimization/42522
14523         * cse.c (fold_rtx): Try to simplify a ZERO_EXTRACT or
14524         SIGN_EXTRACT as a whole object rather than simplifying
14525         its operand.
14526
14527 2015-04-15  Jakub Jelinek  <jakub@redhat.com>
14528
14529         PR ipa/65765
14530         * ipa-icf-gimple.c (func_checker::compare_bb): For GIMPLE_NOP
14531         and GIMPLE_PREDICT use break instead of return true. For
14532         GIMPLE_EH_DISPATCH, compare dispatch region.
14533
14534 2015-04-14  Matthew Wahab  <matthew.wahab@arm.com>
14535
14536         * doc/extend.texi (__sync Builtins): Simplify some text.  Update
14537         details about the implementation.  Make clear preference for
14538         __atomic builtins.  Reduce possibility of future change.
14539
14540 2015-04-15  Nick Clifton  <nickc@redhat.com>
14541
14542         * config/rx/rx.opt (mallow-string-insns): New option.
14543         * config/rx/rx.c (RX_BUILTIN_RMPA): Disable the use of this
14544         builtin if string instructions are denied.
14545         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Define
14546         __RX_ALLOW_STRING_INSNS__ or __RX_DISALLOW_STRING_INSNS__, as
14547         appropriate.
14548         (ASM_SPEC): Pass -mno-allow-string-insns on to the assembler.
14549         * config/rx/rx.md (movstr): Enable pattern only if string
14550         instructions are allowed.
14551         (rx_movstr, rx_strend, movmemsi, rx_movmem): Likewise.
14552         (cmpstrnsi, cmpstrsi, rx_cmpstrn, rmpa): Likewise.
14553         * config/rx/t-rx (MULTILIB_OPTIONS): Add mno-allow-string-insns.
14554         (MULTILIB_DIRNAMES): Add no-strings.
14555         * doc/invoke.texi: Document -mno-allow-string-insns.
14556
14557 2015-04-15  Alan Modra  <amodra@gmail.com>
14558
14559         PR target/65408
14560         PR target/58744
14561         PR middle-end/36043
14562         * calls.c (load_register_parameters): Don't load past end of
14563         mem unless suitably aligned.
14564
14565 2015-04-15  Nick Clifton  <nickc@redhat.com>
14566
14567         * config/rl78/rl78.c (rl78_expand_prologue): Mark large stack
14568         decrement instruction as being frame related.
14569         (rl78_print_operand_1): Handle 'p' modifier to add +0 to HL
14570         based addresses.
14571         If zero extending a function address enclose the operation in
14572         %code(...).
14573         (rl78_preferred_reload_class): New function.
14574         (TARGET_PREFERRED_RELOAD_CLASS): Define.
14575         * config/rl78/rl78.md: Remove useless constraints in expanders.
14576         (mulqi3_rl78): Remove + qualifier on input-only operand 1.
14577         (mulhi3_rl78): Likewise.
14578         (mulhi3_g13): Likewise.
14579         (mulsi3_rl78): Likewise.
14580         (es_addr): Move to before the multiply patterns.
14581
14582 2015-04-15  Alan Modra  <amodra@gmail.com>
14583
14584         * function.h (struct emit_status): Delete x_first_insn, x_last_insn
14585         and sequence_stack.  Add seq.
14586         (seq_stack): Delete.
14587         * function.c (prepare_function_start): Don't access x_last_insn.
14588         * emit-rtl.h (get_current_sequence, get_topmost_sequence): New.
14589         (get_insns, set_first_insn, get_last_insn, set_last_insn): Use them.
14590         * emit_rtl.c (start_sequence, push_topmost_sequence,
14591         pop_topmost_sequence, end_sequence, in_sequence_p, init_emit): Use
14592         sequence accessors.
14593         (get_last_insn_anywhere, add_insn_after_nobb, add_insn_before_nobb,
14594         remove_insn): Likewise.  Simplify.
14595         * config/m32c/m32c.c (m32c_leaf_function_p): Use push_topmost_sequence
14596         and pop_topmost_sequence.
14597         (m32c_function_needs_enter): Use get_topmost_sequence.  Ignore
14598         debug insns.
14599         * config/rs6000/rs6000.c (rs6000_call_aix): Use get_current_sequence.
14600
14601 2015-04-14  Yvan Roux  <yvan.roux@linaro.org>
14602
14603         PR target/65729
14604         * lra-constraints.c (prohibited_class_reg_set_mode_p): Restore and fix
14605         the assertiion.
14606
14607 2015-04-14  Uros Bizjak  <ubizjak@gmail.com>
14608
14609         * config/i386/i386.h (LEGACY_INT_REG_P): New define.
14610         (LEGACY_INT_REGNO_P): Ditto.
14611         (GENERAL_REGNO_P): Use LEGACY_INT_REGNO_P.
14612         (ANY_MASK_REG_P): Remove.
14613         (BND_REG_P): Rename from ANY_BND_REG_P.
14614         * config/i386/i386.c (print_reg): Use LEGACY_INT_REG_P to print
14615         legacy integer registers.  Do not handle MMX_REG_P in a special way.
14616         Merge 64byte and 32byte SSE handling.
14617
14618 2015-04-14  Nick Clifton  <nickc@redhat.com>
14619
14620         * expr.c (expand_assignment): Force an address offset computation
14621         into a register before changing its mode.
14622         (expand_expr_real_1): Likewise.
14623
14624 2015-04-14  Alan Lawrence  <alan.lawrence@arm.com>
14625
14626         * config/aarch64/arm_neon.h (vst1_lane_f32, vst1_lane_f64,
14627         vst1_lane_p8, vst1_lane_p16, vst1_lane_s8, vst1_lane_s16,
14628         vst1_lane_s32, vst1_lane_s64, vst1_lane_u8, vst1_lane_u16,
14629         vst1_lane_u32, vst1_lane_u64, vst1q_lane_f32, vst1q_lane_f64,
14630         vst1q_lane_p8, vst1q_lane_p16, vst1q_lane_s8, vst1q_lane_s16,
14631         vst1q_lane_s32, vst1q_lane_s64, vst1q_lane_u8, vst1q_lane_u16,
14632         vst1q_lane_u32, vst1q_lane_u64): Reimplement with pointer dereference
14633         and __aarch64_vget_lane_any.
14634
14635 2015-04-14  Jakub Jelinek  <jakub@redhat.com>
14636
14637         PR rtl-optimization/65761
14638         * cfgrtl.c (rtl_split_edge): For EDGE_CROSSING split, use
14639         get_last_bb_insn (after) instead of NEXT_INSN (BB_END (after)).
14640
14641 2015-04-14  Richard Biener  <rguenther@suse.de>
14642
14643         * graphite-scop-detection.c: Do not include cp/cp-tree.h.
14644         (graphite_can_represent_scev): Use POINTER_TYPE_P.
14645
14646 2015-04-14  Richard Biener  <rguenther@suse.de>
14647
14648         PR tree-optimization/65758
14649         * tree-ssa-ccp.c (get_value_from_alignment): Adjust mask test
14650         against -1.
14651         (ccp_lattice_meet): Likewise.
14652         (bit_value_unop): Likewise.
14653         (bit_value_binop): Likewise.
14654         (bit_value_assume_aligned): Likewise.
14655
14656 2015-04-14  Christian Bruel  <christian.bruel@st.com>
14657
14658         * execute_dwarf2_frame (dw_frame_pointer_regnum): Reinitialize for each
14659         function.
14660
14661 2015-04-14  Marc Glisse  <marc.glisse@inria.fr>
14662
14663         PR tree-optimization/63387
14664         * match.pd ((x unord x) | (y unord y) -> (x unord y),
14665         (x unord x) | (x unord y) -> (x unord y)): New simplifications.
14666
14667 2015-04-14  Uros Bizjak  <ubizjak@gmail.com>
14668
14669         * config/i386/predicates.md (any_QIreg_operand): Rename from
14670         q_regs_operand.  Do not process subregs.
14671         (QIreg_operand): Use QI_REGNO_P predicate.
14672         (ext_QIreg_operand): Ditto.
14673         (ext_register_operand): Ditto.
14674         * config/i386/i386.md (TEST splitters): Use QIreg_operand predicate.
14675         (AND splitters): Ditto.
14676         (AND with -65536 splitter): Add SWI48 mode for operand 0.
14677         (AND with -256 splitter): Use any_QIreg_operand predicate and
14678         SWI248 mode for operand 0.
14679         (AND with -65281 splitter): Use QIreg_operand predicate and SWI248
14680         mode for operand 0.
14681         (SETCC + MOVZBL peepholes): Update for renamed any_QIreg_operand.
14682
14683 2015-04-13  Gerald Pfeifer  <gerald@pfeifer.com>
14684
14685         * doc/plugins.texi: Rewrite first introductory paragraph.
14686
14687 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
14688
14689         * tree-vrp.c (nonnull_arg_p): THIS pointers and references are non-zero.
14690         (gimple_stmt_nonzero_warnv_p): Reference return values are non-zero.
14691
14692 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
14693
14694         * ipa-profie.c (ipa_profile): Check number of parameters
14695         and possible polymorphic call targets before
14696         devirtualizing.
14697
14698 2015-04-13  Uros Bizjak  <ubizjak@gmail.com>
14699
14700         * config/i386/i386.md (*bmi2_umul<mode><dwi>3_1): Merge from
14701         *bmi2_umulsidi3_1 and *bmi2_umulditi3_1 using DWIH mode iterator.
14702
14703 2015-04-13  Richard Biener  <rguenther@suse.de>
14704
14705         PR tree-optimization/65204
14706         * tree-ssa-ccp.c (evaluate_stmt): Always evaluate address
14707         takens for bit-CCP.
14708
14709 2015-04-13  Richard Biener  <rguenther@suse.de>
14710
14711         PR target/65660
14712         * config/i386/i386.c (bdver1_cost): Double cond_taken_branch_cost
14713         and cond_not_taken_branch_cost to 4 and 2.
14714         (bdver2_cost): Likewise.
14715         (bdver3_cost): Likewise.
14716         (bdver4_cost): Likewise.
14717
14718 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
14719
14720         * hash-table.h (hash_table constructor): Add mem stats.
14721         (alloc_entries): Likewise.
14722
14723 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
14724
14725         * ipa-cp.c (ipcp_driver): Relase prev_edge.
14726         * passes.c (execute_one_pass): Only add transform if pass has one.
14727
14728 2015-04-12  Joseph Myers  <joseph@codesourcery.com>
14729
14730         * config/i386/i386.c (ix86_option_override_internal): Don't set
14731         -fprefetch-loop-arrays if optimizing for size.
14732
14733 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
14734             Gerald Pfeifer  <gerald@pfeifer.com>
14735
14736         * doc/contrib.texi (Contributors): Add Martin Jambor and
14737         Michael Matz.
14738
14739 2015-04-12  Jakub Jelinek  <jakub@redhat.com>
14740
14741         * BASE-VER: Set to 6.0.0.
14742
14743         PR tree-optimization/65747
14744         * ipa-icf-gimple.c (func_checker::compare_operand): Use compare_operand
14745         rather than compare_ssa_name for OBJ_TYPE_REF_OBJECT.
14746
14747 2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
14748
14749         * doc/invoke.texi (-Wmemset-transposed-args): Break a long
14750         sentence.  Improve grammar.
14751
14752 2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
14753
14754         * doc/contrib.texi (Contributors): Add Maxim Kuvyrkov.
14755
14756 2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
14757
14758         PR ipa/65743
14759         * ipa-inline-transform.c (speculation_removed): Remove static var.
14760         (check_speculations): New function.
14761         (clone_inlined_nodes): Do not check spculations.
14762         (inline_call): Call check_speculations.
14763         * ipa-prop.c (ipa_make_edge_direct_to_target): Do not
14764         consider non-invariants.
14765
14766 2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
14767             Martin Liska  <mliska@suse.cz>
14768
14769         PR ipa/65722
14770         * ipa-icf.c (sem_item::compare_cgraph_references): function and
14771         variable can not match.
14772         (sem_item::update_hash_by_addr_refs): Fix handling of virtual tables.
14773         (sem_variable::equals_wpa): Fix checking of DECL_FINAL_P patch.
14774
14775 2015-04-11  Jakub Jelinek  <jakub@redhat.com>
14776
14777         PR tree-optimization/65735
14778         * tree-ssa-threadedge.c (fsm_find_control_statement_thread_paths):
14779         Remove visited_phis argument, add visited_bbs, avoid recursing into the
14780         same bb rather than just into the same phi node.
14781         (thread_through_normal_block): Adjust caller.
14782
14783 2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
14784
14785         * doc/contrib.texi (Contributors): Add Ira Rosen.
14786
14787 2015-04-11  Benno Schulenberg  <bensberg@justemail.net>
14788
14789         * gcov.c (find_source): Fix miswording in error message.
14790         * config/i386/i386.c (ix86_handle_cconv_attribute): Likewise.
14791         (ix86_expand_sse_comi_round): Fix typo in error message.
14792
14793 2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
14794
14795         * doc/contrib.texi (Contributors): Add Laurynas Biveinis.
14796
14797 2015-04-10  Gerald Pfeifer  <gerald@pfeifer.com>
14798
14799         * doc/contrib.texi (Contributors): Update Joe Buck's entry.
14800
14801 2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>
14802
14803         PR target/65710
14804         * lra-assigns.c (spill_for): Update smallest_bad_spills_num.
14805         Print bad_spills_num and insn_pseudos_num.
14806
14807 2015-04-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14808
14809         PR target/65694
14810         * config/arm/arm.c (arm_canonicalize_comparison): Use ARM_SIGN_EXTEND
14811         when creating +1 values for SImode.
14812
14813 2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>
14814
14815         PR target/65729
14816         * lra-constraints.c (prohibited_class_reg_set_mode_p): Comment the
14817         assert.
14818
14819 2015-04-10  Jakub Jelinek  <jakub@redhat.com>
14820             Iain Sandoe  <iain@codesourcery.com>
14821
14822         PR target/65351
14823         * configure: Regenerate.
14824
14825 2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>
14826
14827         PR target/65671
14828         * config/i386/sse.md: Generate vextract32x4 if AVX-512DQ is disabled.
14829
14830 2015-04-09  Gerald Pfeifer  <gerald@pfeifer.com>
14831
14832         * doc/contrib.texi (Contributors): Add John Marino.
14833
14834 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
14835
14836         PR tree-optimization/65709
14837         * ubsan.c (instrument_mem_ref): Use TREE_TYPE (base) instead of
14838         TREE_TYPE (TREE_TYPE (t)).
14839
14840 2015-04-09  Vladimir Makarov  <vmakarov@redhat.com>
14841
14842         PR target/65710
14843         * lra-int.h (lra_bad_spill_regno_start): New.
14844         * lra.c (lra_bad_spill_regno_start): New.
14845         (lra): Set up lra_bad_spill_regno_start.  Set up
14846         lra_constraint_new_regno_start unconditionally.
14847         * lra-assigns.c (spill_for): Use lra_bad_spill_regno_start for
14848         spill preferences.
14849
14850 2015-04-09  Marek Polacek  <polacek@redhat.com>
14851             Jakub Jelinek  <jakub@redhat.com>
14852
14853         PR middle-end/65554
14854         * gimple-fold.c (gimple_fold_builtin_memory_op): Update comment.
14855         (fold_ctor_reference): Use STRIP_USELESS_TYPE_CONVERSION instead
14856         of STRIP_NOPS.
14857
14858 2015-04-09  Segher Boessenkool  <segher@kernel.crashing.org>
14859
14860         PR rtl-optimization/65693
14861         * combine.c (is_parallel_of_n_reg_sets): Move outside of
14862         #ifndef HAVE_cc0.
14863
14864 2015-04-09  Georg-Johann Lay  <avr@gjlay.de>
14865
14866         PR target/65296
14867         * config/avr/driver-avr.c (avr_devicespecs_file): Don't specify a
14868         device specs file if "device-specs%s" didn't resolve to a path.
14869
14870 2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>
14871
14872         PR target/65676
14873         * config/i386/i386.c (fixup_modeless_constant): New.
14874         (ix86_expand_args_builtin): Fixup modeless constant operand.
14875         (ix86_expand_round_builtin): Ditto.
14876         (ix86_expand_special_args_builtin): Ditto.
14877         (ix86_expand_builtin): Ditto.
14878
14879 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
14880
14881         PR target/65693
14882         * config/i386/i386.md (*udivmod<mode>4_pow2): Allow
14883         any pow2 integer in between 2 and 0x80000000U inclusive.
14884
14885 2015-04-08  Segher Boessenkool  <segher@kernel.crashing.org>
14886
14887         PR rtl-optimization/65693
14888         * combine.c (is_parallel_of_n_reg_sets): Change first argument
14889         from an rtx_insn * to an rtx.
14890         (try_combine): Adjust both callers.  Use it once more.
14891
14892 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
14893
14894         * tree-chkp.c (chkp_find_const_bounds_var): Remove.
14895         (chkp_make_static_const_bounds): Search existing
14896         symbol by assembler name.  Use make_decl_one_only.
14897         (chkp_get_zero_bounds_var): Remove node search which
14898         is now performed in chkp_make_static_const_bounds.
14899         (chkp_get_none_bounds_var): Likewise.
14900
14901 2015-04-08  Michael Witten  <mfwitten@gmail.com>
14902
14903         * doc/extend.texi (Attribute Syntax): Add a trailing semicolon
14904         to an example.
14905
14906 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
14907
14908         * tree.h (CONVERT_EXPR_P): Commentary typo fix.
14909
14910 2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>
14911
14912         * doc/extend.texi (__sync Builtins): Fix grammar.
14913
14914 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
14915
14916         * doc/cfg.texi (GIMPLE statement iterators): Fix typo.
14917
14918 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
14919
14920         * varasm.c (emit_local): Move definition of align.
14921
14922 2015-04-08  Julian Brown  <julian@codesourcery.com>
14923
14924         * config/nvptx/mkoffload.c (process): Support variable mapping.
14925
14926 2015-03-27  Trevor Saunders  <tbsaunde@tbsaunde.org>
14927
14928         * config/alpha/alpha.c (alpha_use_linkage): Change type of slot to
14929         alpha_links **.
14930         (alpha_write_one_linkage): Correct typo.
14931
14932 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
14933
14934         * ipa-comdats.c (propagate_comdat_group): Walk through thunks.
14935
14936 2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>
14937
14938         * doc/install.texi (bootstrap-lto-noplugin): Rewrite.
14939
14940 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
14941
14942         * tree-chkp.h (chkp_insert_retbnd_call): New.
14943         * tree-chkp.c (chkp_insert_retbnd_call): New.
14944         * ipa-split.c (insert_bndret_call_after): Remove.
14945         (split_function): Use chkp_insert_retbnd_call.
14946         * cgraphunit.c (cgraph_node::expand_thunk): Build returned
14947         bounds for instrumented functions.
14948
14949 2015-04-07  Jan Hubicka  <hubicka@ucw.cz>
14950
14951         PR ipa/65540
14952         * calls.c (initialize_argument_information): When producing tail
14953         call also turn SSA_NAMES passed by references to original PARM_DECLs
14954
14955 2015-04-07  Vladimir Makarov  <vmakarov@redhat.com>
14956
14957         PR target/65648
14958         * lra-remat.c (do_remat): Process input and non-input insn
14959         registers separately.
14960
14961 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
14962
14963         PR debug/65678
14964         * valtrack.c (debug_lowpart_subreg): New function.
14965         (dead_debug_insert_temp): Use it.
14966
14967         PR middle-end/65680
14968         * expr.c (get_inner_reference): Handle bit_offset that doesn't fit
14969         into signed HOST_WIDE_INT the same as negative bit_offset.
14970
14971 2015-04-07  Ilya Enkovich  <ilya.enkovich@intel.com>
14972
14973         * ipa-comdats.c (ipa_comdats): Visit all thunks
14974         to set proper comdat group.
14975
14976 2015-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14977
14978         PR target/65489
14979         * config/arm/arm.c (arm_legitimate_constant_p_1): Remove restriction
14980         on constants for NEON VSTRUCT modes.
14981
14982 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
14983             Iain Sandoe  <iain@codesourcery.com>
14984
14985         PR target/65351
14986         * configure: Regenerate.
14987
14988 2015-04-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
14989
14990         PR target/65614
14991         * config/rs6000/rs6000.c (struct processor_costs): Add cost field
14992         for SF->DF conversions to make FLOAT_EXTEND more expensive, so
14993         that LFD is used to load double constants instead of LFS.  Add
14994         defaults for all costs structures.  Add comments for missing
14995         initialization fields.
14996         (size32_cost): Likewise.
14997         (size64_cost): Likewise.
14998         (rs64a_cost): Likewise.
14999         (mpccore_cost): Likewise.
15000         (ppc403_cost): Likewise.
15001         (ppc405_cost): Likewise.
15002         (ppc440_cost): Likewise.
15003         (ppc476_cost): Likewise.
15004         (ppc601_cost): Likewise.
15005         (ppc603_cost): Likewise.
15006         (ppc604_cost): Likewise.
15007         (ppc604e_cost): Likewise.
15008         (ppc620_cost): Likewise.
15009         (ppc630_cost): Likewise.
15010         (ppccell_cost): Likewise.
15011         (ppc750_cost): Likewise.
15012         (ppc7450_cost): Likewise.
15013         (ppc8540_cost): Likewise.
15014         (ppce300c2c3_cost): Likewise.
15015         (ppce500mc_cost): Likewise.
15016         (ppce500mc64_cost): Likewise.
15017         (ppce5500_cost): Likewise.
15018         (ppce6500_cost): Likewise.
15019         (titan_cost): Likewise.
15020         (power4_cost): Likewise.
15021         (power6_cost): Likewise.
15022         (power7_cost): Likewise.
15023         (power8_cost): Likewise.
15024         (ppca2_cost): Likewise.
15025         (rs6000_rtx_costs): Make FLOAT_EXTEND use SFDF_convert field.
15026
15027         * config/rs6000/rs6000.md (extendsfdf2_fpr): Generate XSCPSGNDP
15028         instead of XXLOR to copy SFmode to clear out dirty bits created
15029         when SFmode denormals are generated.
15030         (mov<mode>_hardfloat, FMOVE32 case): Likewise.
15031         (truncdfsf2_fpr): Add support for ISA 2.07 XSRSP instruction.
15032
15033 2015-04-06  Evandro Menezes  <e.menezes@samsung.com>
15034
15035         * doc/invoke.texi (AARCH64/mtune): Add exynos-m1 as an option.
15036         * config/aarch64/aarch64-cores.def (exynos-m1): New core.
15037         * config/aarch64/aarch64-tune.md: Regenerate.
15038
15039 2015-04-06  Evandro Menezes  <e.menezes@samsung.com>
15040
15041         * doc/invoke.texi (ARM/mtune): Add "exynos-m1" as an option.
15042         * config/arm/arm.c (arm_issue_rate): Specify "3" for "exynosm1".
15043         * config/arm/arm-cores.def (exynos-m1): New core.
15044         * config/arm/arm-tune.md: Regenerate.
15045         * config/arm/arm-tables.opt: Add entry for "exynos-m1".
15046         * config/arm/bpabi.h: Likewise.
15047
15048 2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>
15049
15050         * ipa-cp (set_single_call_flag): Remove too
15051         restrictive assert.
15052
15053 2015-04-06  Ilya Verbin  <ilya.verbin@intel.com>
15054
15055         * config/i386/intelmic-mkoffload.c (generate_host_descr_file): Call
15056         GOMP_offload_unregister from the destructor.
15057
15058 2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>
15059
15060         * ipa-chkp.c (chkp_maybe_create_clone): Reset cdtor
15061         flags for instrumentation thunk.
15062         (chkp_produce_thunks): Likewise.
15063
15064 2015-04-05  Martin Liska  <mliska@suse.cz>
15065
15066         PR ipa/65665
15067         * ipa-icf.c (sem_function::equals_wpa): Verify that IPA CP
15068         has computed data structure.
15069         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
15070
15071 2015-04-04  Jan Hubicka  <hubicka@ucw.cz>
15072
15073         * invoke.texi (inline-unit-growth): Increase growth to 20%
15074         * params.def (PARAM_INLINE_UNIT_GROWTH): Likewise.
15075
15076 2015-04-04  Vladimir Makarov  <vmakarov@redhat.com>
15077
15078         PR target/65647
15079         * lra-int.h (LRA_MAX_REMATERIALIZATION_PASSES): New.  Add its
15080         value checking.
15081         (lra_rematerialization_iter): New.
15082         * lra.c (lra): Initialize lra_rematerialization_iter.
15083         Stop updating lra_constraint_new_regno_start after switching of
15084         inheritance and rematerialization.
15085         * lra-remat.c (lra_rematerialization_iter): New.
15086         (lra_remat): Add printing pass iteration.  Do rematerialization
15087         only first LRA_MAX_REMATERIALIZATION_PASSES iterations.
15088
15089 2015-04-04  Richard Biener  <rguenther@suse.de>
15090
15091         PR tree-optimization/64909
15092         PR tree-optimization/65660
15093         * tree-vectorizer.h (vect_get_known_peeling_cost): Adjust
15094         to take a cost vector for scalar iteration cost.
15095         (vect_get_single_scalar_iteration_cost): Likewise.
15096         * tree-vect-loop.c (vect_get_single_scalar_iteration_cost):
15097         Compute the scalar iteration cost into a cost vector.
15098         (vect_get_known_peeling_cost): Use the scalar cost vector to
15099         account for the cost of the peeled iterations.
15100         (vect_estimate_min_profitable_iters): Likewise.
15101         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
15102         Likewise.
15103
15104 2015-04-04  Alan Modra  <amodra@gmail.com>
15105
15106         PR target/65576
15107         PR target/65240
15108         * config/rs6000/predicates.md (zero_reg_mem_operand): Exclude
15109         0.0 constant unless TARGET_VSX.
15110         * config/rs6000/rs6000.md (extenddftf2_internal): Remove last
15111         alternative.
15112
15113 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
15114
15115         PR ipa/65654
15116         * ipa-inline-transform.c (inline_call): Skip sanity check to work
15117         around the ICE
15118
15119 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
15120
15121         PR ipa/65655
15122         * ipa-inline-analysis.c (edge_set_predicate): Do not redirect
15123         speculative indirect edges to avoid ordering issue.
15124
15125 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
15126
15127         PR ipa/65076
15128         * ipa-inline.c (edge_badness): Add combined size to the denominator.
15129
15130 2015-04-03  Jakub Jelinek  <jakub@redhat.com>
15131
15132         * omp-low.c (scan_omp_parallel, scan_omp_task, scan_omp_target): Set
15133         TYPE_ARTIFICIAL on the .omp_data* types.
15134
15135 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
15136
15137         * cgraphunit.c (cgraph_node::expand_thunk): Don't expand
15138         instrumentation thunks.
15139
15140 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
15141
15142         * config/i386/i386.c (ix86_expand_call): Avoid nested
15143         PARALLEL in returned call value.
15144
15145 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
15146
15147         * lto-cgraph.c (input_cgraph_1): Always link instrumented
15148         assembler name with original one.
15149
15150 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
15151
15152         * config/i386/i386.c (ix86_register_priority): Use AX_REG.
15153
15154 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
15155
15156         Revert parts of r216820.
15157         * config/i386/i386.md (movqi_internal): Correct type calculation
15158         for alternatives 3 and 5.
15159
15160 2015-04-02  Jakub Jelinek  <jakub@redhat.com>
15161
15162         PR preprocessor/61977
15163         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Don't
15164         predefine __vector/__bool/__pixel macros nor context sensitive
15165         macros for CLK_ASM.
15166         * config/spu/spu-c.c (spu_cpu_cpp_builtins): Similarly.
15167
15168 2015-04-02  John David Anglin  <danglin@gcc.gnu.org>
15169
15170         * config/pa/pa.c (pa_output_move_double): Directly handle register
15171         indexed memory operand.  Simplify handling of scaled register indexed
15172         memory operands.
15173
15174 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
15175
15176         PR driver/65444
15177         * config/i386/linux-common.h (MPX_SPEC): New.
15178         (CHKP_SPEC): Add MPX_SPEC.
15179         * doc/invoke.texi (-fcheck-pointer-boudns): Document
15180         possible issues with '-z bndplt' support in linker.
15181
15182 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
15183
15184         * config/i386/sync.md (UNSPEC_FILD_ATOMIC, UNSPEC_FIST_ATOMIC): New.
15185         (loaddi_via_fpu): Use UNSPEC_FILD_ATOMIC.
15186         (storedi_via_fpu): Use UNSPEC_FIST_ATOMIC.
15187         * reg-stack.c (get_true_reg): Change UNSPEC_LDA to UNSPEC_FILD_ATOMIC.
15188         (subst_stack_regs_pat): Change UNSPEC_STA to UNSPEC_FIST_ATOMIC.
15189
15190 2015-04-01  Uros Bizjak  <ubizjak@gmail.com>
15191
15192         * config/i386/sync.md (UNSPEC_MOVA): Remove.
15193         (atomic_load<mode>): Change operand 0 predicate to
15194         nonimmediate_operand and fix up the destination when needed.
15195         Use UNSPEC_LDA.
15196         (atomic_loaddi_fpu): Use UNSPEC_LDA.
15197         (atomic_store<mode>): Change operand 1 predicate to
15198         nonimmendate_operand and move the source to register when needed.
15199         Use UNSPEC_STA.
15200         (atomic_store<mode>_1): Use UNSPEC_STA.
15201         (atomic_storedi_fpu): Change operand 1 to nonimmediate_operand.
15202         Fix moves from memory operand.  Use UNSPEC_STA.
15203
15204 2015-04-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
15205
15206         * expmed.c (strict_volatile_bitfield_p): Check that the access will
15207         not cross a MODESIZE boundary.
15208         (store_bit_field, extract_bit_field): Added assertions in the
15209         strict volatile bitfields code path.
15210
15211 2015-04-01  Max Ostapenko  <m.ostapenko@partner.samsung.com>
15212
15213         PR target/65624
15214         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_builtin):
15215         Increase args array size by one to avoid buffer overflow.
15216
15217 2015-03-31  Jan Hubicka  <hubicka@ucw.cz>
15218
15219         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
15220         split_part.
15221         * ipa-inline.c (edge_badness): Add wrapper penalty.
15222         (sum_callers): Move up.
15223         (inline_small_functions): Set single_caller.
15224         * ipa-inline.h (inline_summary): Add single_caller.
15225         * ipa-split.c (split_function): Set split_part.
15226         (cgraph_node::create_clone): Do not shadow decl; copy split_part.
15227         * cgraph.h (cgraph_node): Add split_part.
15228
15229 2015-03-31  Uros Bizjak  <ubizjak@gmail.com>
15230
15231         PR target/58945
15232         * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
15233         Do not split operands 0 and operands 2 to halfmode.
15234         (atomic_compare_and_swap<mode>): Update for
15235         atomic_compare_and_swap<dwi>_doubleword changes.
15236
15237 2015-03-31  Jan Hubicka  <hubicka@ucw.cz>
15238
15239         * tree.c (need_assembler_name_p): Artificial types have no ODR names.
15240         * ipa-devirt.c (warn_odr): Do not try to apply ODR cache when
15241         no caching is done.
15242
15243 2015-03-31  Martin Liska  <mliska@suse.cz>
15244
15245         PR ipa/65557
15246         * ipa-icf.c (sem_function::equals_wpa): Check if IPA CP
15247         has already filled up function summary.
15248         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
15249
15250 2015-03-31  Richard Biener  <rguenther@suse.de>
15251
15252         * tree-sra.c (create_access_replacement): Drop under-/over-alignment
15253         of types.
15254
15255 2015-03-31  Dominik Vogt  <vogt@linux.vnet.ibm.com>
15256
15257         * config/s390/s390.c (s390_function_num_hotpatch_hw): Allow hotpatching
15258         nested functions.
15259         (s390_reorg): Adapt to new signature of s390_function_num_hotpatch_hw.
15260         (s390_asm_output_function_label): Adapt to new signature of
15261         s390_function_num_hotpatch_hw
15262         Optimise the code generating assembler output.
15263         Add comments to assembler file.
15264
15265 2015-03-31  Richard Biener  <rguenther@suse.de>
15266
15267         PR middle-end/65626
15268         * tree-cfgcleanup.c (fixup_noreturn_call): Only split the block
15269         of the noreturn call so it is last and cleanup_control_flow_bb
15270         can do the CFG part.
15271
15272 2015-03-31  Ilya Enkovich  <ilya.enkovich@intel.com>
15273
15274         PR target/65531
15275         * ipa-chkp.c (chkp_maybe_create_clone): Don't set
15276         same_comdat_group for external symbols.
15277         * symtab.c (symtab_node::verify_symtab_nodes): Avoid
15278         infinite same_comdat_group traversal loop.
15279
15280 2015-03-31  Jakub Jelinek  <jakub@redhat.com>
15281
15282         PR plugins/61176
15283         * Makefile.in (install-plugin): Add all gcc/*.{h,def} files
15284         automatically to $headers.
15285
15286 2015-03-30  Jakub Jelinek  <jakub@redhat.com>
15287
15288         PR ipa/65610
15289         * ipa-utils.h (inlined_polymorphic_ctor_dtor_block_p): Declare.
15290         * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p): New
15291         function.
15292         (decl_maybe_in_construction_p, noncall_stmt_may_be_vtbl_ptr_store):
15293         Use it.
15294         * ipa-prop.c (param_type_may_change_p): Likewise.
15295         * tree-ssa-live.c: Include ipa-utils.h and its dependencies.
15296         (remove_unused_scope_block_p): Add in_ctor_dtor_block
15297         argument.  Before inlining, preserve
15298         inlined_polymorphic_ctor_dtor_block_p blocks and the outermost block
15299         with FUNCTION_DECL BLOCK_ABSTRACT_ORIGIN inside of them.  Adjust
15300         recursive calls.
15301         (remove_unused_locals): Adjust remove_unused_scope_block_p caller.
15302
15303 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
15304
15305         PR ipa/65076
15306         * ipa-inline.c (edge_badness): Base denominator on callee's
15307         grwoth squared.
15308
15309 2015-03-27  Martin Jambor  <mjambor@suse.cz>
15310
15311         PR ipa/65478
15312         * params.def (PARAM_IPA_CP_RECURSION_PENALTY) : New.
15313         (PARAM_IPA_CP_SINGLE_CALL_PENALTY): Likewise.
15314         * ipa-prop.h (ipa_node_params): New flags node_within_scc and
15315         node_calling_single_call.
15316         * ipa-cp.c (count_callers): New function.
15317         (set_single_call_flag): Likewise.
15318         (initialize_node_lattices): Count callers and set single_flag_call if
15319         necessary.
15320         (incorporate_penalties): New function.
15321         (good_cloning_opportunity_p): Use it, dump new flags.
15322         (propagate_constants_topo): Set node_within_scc flag if appropriate.
15323         * doc/invoke.texi (ipa-cp-recursion-penalty,
15324         ipa-cp-single-call-pentalty): Document.
15325
15326 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
15327
15328         PR ipa/65588
15329         * symtab.c (symtab_node::get_partitioning_class): Register vars
15330         are duplicated.
15331         * varpool.c (symbol_table::output_variables) Do not assemble unefined
15332         decls for non-symbols.
15333
15334 2015-03-27  H.J. Lu  <hongjiu.lu@intel.com>
15335
15336         PR target/65248
15337         * output.h (default_binds_local_p_2): New.
15338         * varasm.c (default_binds_local_p_2): Renamed to ...
15339         (default_binds_local_p_3): This.  Don't return true on protected
15340         data symbol if protected data may be external.
15341         (default_binds_local_p): Use default_binds_local_p_3.
15342         (default_binds_local_p_1): Likewise.
15343         (default_binds_local_p_2): New.
15344         * config/i386/i386.c (TARGET_BINDS_LOCAL_P): Set to
15345         default_binds_local_p_2 if TARGET_MACHO is undefined.
15346
15347 2015-03-27  Jakub Jelinek  <jakub@redhat.com>
15348
15349         PR target/65593
15350         * config/i386/i386.c (legitimize_pic_address): If base
15351         is SYMBOL_REF or LABEL_REF using %rip addressing, force
15352         it to reg to avoid PLUS of SYMBOL_REF/LABEL_REF and register.
15353
15354 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
15355
15356         PR target/65531
15357         * symtab.c (symtab_node::verify_symtab_nodes): Fix verification of
15358         comdat groups.
15359
15360 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
15361
15362         PR ipa/65600
15363         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Fix the case
15364         of optimized out indirect call.
15365         (redirect_to_unreachable): Always build symbol table node for
15366         BUILT_IN_UNREACHABLE
15367
15368 2015-03-27  Vladimir Makarov  <vmakarov@redhat.com>
15369
15370         PR target/65407
15371         * ira-costs.c (record_reg_classes): Process all constraint string
15372         containing 0-9.
15373
15374 2015-03-27  Bernd Schmidt  <bernds@codesourcery.com>
15375
15376         * config/c6x/c6x.md (movmisalign<mode>): Use MEM_P, not
15377         memory_operand.
15378
15379         PR target/65052
15380         * config/c6x/constraints.md (S3): New constraint.
15381         * config/c6x/c6x.md (real_jump): Use it.
15382
15383 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
15384
15385         PR middle-end/65595
15386         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Only
15387         do redirection if the call is not optimized out.
15388
15389 2015-03-27  Ilya Enkovich  <ilya.enkovich@intel.com>
15390
15391         PR target/65495
15392         * c-family/c.opt (fcheck-pointer-bounds): List supported languages.
15393         (fchkp-check-incomplete-type): Add LTO.
15394         (fchkp-zero-input-bounds-for-main): Likewise.
15395         (fchkp-first-field-has-own-bounds): Likewise.
15396         (fchkp-narrow-bounds): Likewise.
15397         (fchkp-narrow-to-innermost-array): Likewise.
15398         (fchkp-use-static-bounds): Likewise.
15399         (fchkp-use-static-const-bounds): Likewise.
15400         (fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
15401
15402 2015-03-27  Marek Polacek  <polacek@redhat.com>
15403
15404         * gimple-iterator.h (gsi_prev_nondebug): Fix typo.
15405
15406 2015-03-27  Marek Polacek  <polacek@redhat.com>
15407
15408         PR sanitizer/65583
15409         * ubsan.c (ubsan_create_edge): New function.
15410         (instrument_bool_enum_load): Call it.
15411         (instrument_nonnull_arg): Likewise.
15412         (instrument_nonnull_return): Likewise.
15413         (instrument_object_size): Likewise.
15414
15415 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
15416
15417         * lto-streamer.h (class lto_location_cache): Turn loc_cache into
15418         auto_vec.
15419
15420 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
15421
15422         PR lto/65536
15423         * lto-streamer.h (class lto_location_cache): New.
15424         (struct data_in): Add location_cache.
15425         (lto_input_location): Update prototype.
15426         (stream_input_location_now): New.
15427         * streamer-hooks.h (struct streamer_hooks): Make input_location to take
15428         pointer to location.
15429         (stream_input_location): Update.
15430         * ipa-devirt.c: Include streamer-hooks.h and lto-streamer.h
15431         (warn_odr): Apply location cache before warning.
15432         (lto_input_location): Update prototype.
15433         * gimple-streamer-in.c (input_phi, input_gimple_stmt):
15434         Use stream_input_location_now.
15435         * lto-streamer-in.c (lto_location_cache::current_cache): New static
15436         variable.
15437         (lto_location_cache::cmp_loc): New function.
15438         (lto_location_cache::apply_location_cache): New function.
15439         (lto_location_cache::accept_location_cache): New function.
15440         (lto_location_cache::revert_location_cache): New function.
15441         (lto_location_cache::input_location): New function.
15442         (lto_input_location): Do location caching.
15443         (stream_input_location_now): New function.
15444         (input_eh_region, input_struct_function_base): Use
15445         stream_input_location_now.
15446         (lto_data_in_create): use new.
15447         (lto_data_in_delete): Use delete.
15448         * tree-streamer-in.c (unpack_ts_block_value_fields,
15449         unpack_ts_omp_clause_value_fields, streamer_read_tree_bitfields,
15450         lto_input_ts_exp_tree_pointers): Update for cached location api.
15451
15452 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
15453
15454         PR ipa/65076
15455         * passes.def: Add pass_nothrow.
15456         * ipa-pure-const.c: (pass_data_nothrow): New.
15457         (pass_nothrow): New.
15458         (pass_nothrow::execute): New.
15459         (make_pass_nothrow): New.
15460         * tree-pass.h (make_pass_nothrow): Declare.
15461
15462 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
15463
15464         * ipa-inline-analysis.c (redirect_to_unreachable): Be prepared for
15465         edge to change by speculation resolution or redirection.
15466         (edge_set_predicate): Likewise.
15467         (inline_summary_t::duplicate): Likewise.
15468         (remap_edge_summaries): Likewise.
15469
15470 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
15471
15472         * ipa-inline.c (check_maybe_up, check_maybe_down, check_match):
15473         New macros.
15474         (can_inline_edge_p): Relax option matching for always inline functions.
15475
15476 2015-03-26  Uros Bizjak  <ubizjak@gmail.com>
15477
15478         PR target/65561
15479         * config/i386/sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm):
15480         Check operand 4 and operand 0 for equality.
15481         (avx512f_vextract<shuffletype>32x4_1_maskm):
15482         Check operand 6 and operand 0 for equality.
15483         (vec_extract_lo_<mode>_maskm): Check operand 2 and operand 0
15484         for equality.
15485         (vec_extract_hi_<mode>_maskm): Ditto.
15486
15487 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
15488
15489         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Do not bring
15490         dead calls back to live.
15491         (cgraph_edge::verify_count_and_frequency): Move cgraph/cfg frequency
15492         cross check to ...
15493         (cgraph_node::verify_node): ... here; verify only callee edges,
15494         not caller.
15495         * cif-code.def (CILK_SPAWN): New code.
15496
15497 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
15498
15499         * ipa-inline-analysis.c (redirect_to_unreachable): New function.
15500         (edge_set_predicate): Use it to mark unreachable edges.
15501         (inline_summary_t::duplicate): Remove unnecesary code.
15502         (remap_edge_summaries): Likewise.
15503         (dump_inline_summary): Report contains_cilk_spawn.
15504         (compute_inline_parameters): Compute contains_cilk_spawn.
15505         (inline_read_section, inline_write_summary): Stream
15506         contains_cilk_spawn.
15507         * ipa-inline.c (can_inline_edge_p): Do not touch
15508         DECL_STRUCT_FUNCTION that may not be available;
15509         use CIF_CILK_SPAWN for cilk; fix optimization attribute checks;
15510         remove check for callee_fun->can_throw_non_call_exceptions and
15511         replace it by optimization attribute check; check for flag_exceptions.
15512         * ipa-inline-transform.c (inline_call): Maintain
15513         DECL_FUNCTION_PERSONALITY
15514         * ipa-inline.h (inline_summary): Add contains_cilk_spawn.
15515
15516 2015-03-26  Jakub Jelinek  <jakub@redhat.com>
15517
15518         PR tree-optimization/65551
15519         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use
15520         TYPE_PRECISION only for INTEGRAL_TYPE_P types.
15521
15522 2015-03-26  Richard Biener  <rguenther@suse.de>
15523
15524         PR middle-end/65555
15525         * tree-cfg.c (verify_gimple_call): Do not require a call to
15526         have no LHS if it wasn't recognized as control altering yet.
15527
15528 2015-03-26  Jakub Jelinek  <jakub@redhat.com>
15529
15530         PR tree-optimization/64715
15531         * passes.def: Add another instance of pass_object_sizes before ccp1.
15532         * tree-object-size.c (pass_object_sizes::execute): In
15533         first_pass_instance, only handle __bos (, 1) and __bos (, 3)
15534         calls, and keep the call in the IL, as {MIN,MAX}_EXPR of the
15535         __bos result and the computed constant.  Remove redundant
15536         checks, obsoleted by gimple_call_builtin_p test.
15537
15538         * var-tracking.c (variable_tracking_main_1): Don't track
15539         variables for targetm.no_register_allocation targets.
15540
15541 2015-03-26  Oleg Endo  <olegendo@gcc.gnu.org>
15542
15543         * config/sh/t-linux (DEFAULT_ENDIAN, MULTILIB_EXCEPTIONS): Remove.
15544         * config/sh/t-sh (MULTILIB_EXCEPTIONS): Handle default endian.
15545
15546 2015-03-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
15547
15548         PR target/65569
15549         * config/rs6000/rs6000.md (extenddftf2_fprs): On VSX systems use
15550         XXLXOR to create 0.0.  On pre-VSX systems make sure the constant
15551         0.0 is correctly setup.
15552         (extenddftf2_internal): Likewise.
15553
15554 2015-03-25  Sebastian Pop  <s.pop@samsung.com>
15555
15556         PR tree-optimization/65177
15557         * tree-ssa-threadupdate.c (verify_seme): Renamed verify_jump_thread.
15558         (bb_in_bbs): New.
15559         (duplicate_seme_region): Renamed duplicate_thread_path.  Redirect all
15560         edges not adjacent on the path to the original code.
15561
15562 2015-03-25  Uros Bizjak  <ubizjak@gmail.com>
15563
15564         PR bootstrap/65537
15565         * doc/install.texi (Building a native compiler): Document new
15566         bootstrap-lto-noplugin configuration.  Mention that bootstrap-lto
15567         configuration assumes that the host supports the linker plugin.
15568
15569 2015-03-25  Ilya Enkovich  <ilya.enkovich@intel.com>
15570
15571         PR target/65508
15572         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Set static
15573         chain for generated call.
15574
15575 2015-03-25  Richard Biener  <rguenther@suse.de>
15576
15577         * passes.c (pass_manager::execute_early_local_passes): Guard
15578         execution of pass_chkp_instrumentation_passes with
15579         flag_check_pointer_bounds.
15580         (pass_chkp_instrumentation_passes::gate): Likewise.
15581
15582 2015-03-25  Martin Liska  <mliska@suse.cz>
15583
15584         PR tree-optimization/65538
15585         * symbol-summary.h (function_summary::~function_summary):
15586         Relese memory for allocated summaries.
15587         (function_summary::release): New function.
15588
15589 2015-03-25  Jakub Jelinek  <jakub@redhat.com>
15590
15591         PR lto/65515
15592         * lto-streamer-out.c (DFS::worklist): New struct.
15593         (DFS::worklist_vec): New data member.
15594         (DFS::next_dfs_num): Remove.
15595         (DFS::DFS): Rewritten using worklist instead of recursion,
15596         using most of code from DFS::DFS_write_tree.
15597         (DFS::DFS_write_tree_body): Remove SINGLE_P argument, don't
15598         pass it to DFS_write_tree calls.
15599         (DFS::DFS_write_tree): Remove SINGLE_P argument, after
15600         quick initial checks push it into worklist_vec and return.
15601
15602 2015-03-25  Richard Biener  <rguenther@suse.de>
15603
15604         PR middle-end/65519
15605         * genmatch.c (expr::gen_transform): Re-write to avoid
15606         using gimple_build.
15607
15608 2015-03-25  Bin Cheng  <bin.cheng@arm.com>
15609
15610         * doc/sourcebuild.texi (arm_tune_string_ops_prefer_neon): New.
15611
15612 2015-03-25  Bin Cheng  <bin.cheng@arm.com>
15613
15614         * config/arm/arm.opt (print_tune_info): New option.
15615         * config/arm/arm.c (arm_print_tune_info): New function.
15616         (arm_file_start): Call arm_print_tune_info.
15617         * config/arm/arm-protos.h (struct tune_params): Add comment.
15618         * doc/invoke.texi (@item -mprint-tune-info): New item.
15619         (-mtune): mention it in ARM Option Summary.
15620
15621 2015-03-25  DJ Delorie  <dj@redhat.com>
15622
15623         * config/rl78/rl78.c (rl78_print_operand_1): Move 'p' test to
15624         correct clause.
15625
15626 2015-03-24  Jan Hubicka  <hubicka@ucw.cz>
15627             Martin Liska  <mliska@suse.cz>
15628
15629         * ipa-icf-gimple.h (return_with_result): Add missing colon to dump.
15630         * ipa-icf.c (sem_function::get_hash): Hash new declaration properties.
15631         (sem_item::add_type): New function.
15632         (sem_function::hash_stmt): Add TREE_TYPE of gimple_op.
15633         (sem_function::compare_polymorphic_p): Do not consider indirect calls.
15634         (sem_item_optimizer::update_hash_by_addr_refs): Add ODR type to hash.
15635         (sem_function::equals_wpa): Fix typo.
15636         * ipa-icf.h (sem_item::add_type): New function.
15637         (symbol_compare_hashmap_traits): Replace hashing of pointer with symbol
15638         order.
15639
15640 2015-03-24  Jakub Jelinek  <jakub@redhat.com>
15641
15642         PR tree-optimization/65533
15643         * tree-vect-slp.c (vect_build_slp_tree): Before re-trying
15644         with swapped operands, call vect_free_slp_tree on
15645         SLP_TREE_CHILDREN of child and truncate the SLP_TREE_CHILDREN
15646         vector.
15647
15648 2015-03-24  Richard Biener  <rguenther@suse.de>
15649
15650         PR middle-end/65517
15651         * tree-cfg.c (remove_edge_and_dominated_blocks): Mark loops
15652         for fixup if necessary.
15653
15654 2015-03-23  Sandra Loosemore  <sandra@codesourcery.com>
15655
15656         * doc/extend.texi (Function Attributes): Add @cindex entries
15657         for all attributes and regularize their format.  Delete text
15658         about long-obsolete 68HC11 and 68HC12 targets.  Move misplaced
15659         information about "eightbit_data", "tiny_data", and "model"
15660         variable attributes to the Variable Attributes section.  Fix
15661         some obvious typos and copy-editing issues.
15662         (Variable Attributes, Type Attributes): Likewise add/fix
15663         @cindex entries for all attributes.
15664
15665 2015-03-23  Jakub Jelinek  <jakub@redhat.com>
15666
15667         PR target/65523
15668         * tree-chkp.c (chkp_build_returned_bound): Ignore
15669         ERF_RETURNS_ARG calls if they have fewer than needed arguments.
15670
15671 2015-03-23  Oleg Endo  <olegendo@gcc.gnu.org>
15672
15673         PR target/65505
15674         * config/sh/predicates.md (simple_mem_operand,
15675         displacement_mem_operand): Add test for reg.
15676         (short_displacement_mem_operand): Test for displacement_mem_operand
15677         before invoking sh_disp_addr_displacement.
15678         * config/sh/constraints.md (Sdd, Sra): Simplify.
15679         * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1):
15680         Remove redundant displacement_mem_operand tests.
15681
15682 2015-03-23  Georg-Johann Lay  <avr@gjlay.de>
15683
15684         PR target/65296
15685         * config/avr/driver-avr.c (avr_devicespecs_file): Allow to specify
15686         the same -mmcu=MCU more than once.
15687
15688 2015-03-23  Jakub Jelinek  <jakub@redhat.com>
15689
15690         PR bootstrap/65522
15691         * ipa-devirt.c: Remove duplicate demangle.h include.
15692
15693         PR target/65504
15694         * config/i386/i386.c (ix86_copy_addr_to_reg): Set REG_POINTER
15695         on the pseudo.
15696         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Set
15697         REG_POINTER on *destptr after adjusting it for prologue size.
15698
15699         PR ipa/65521
15700         * ipa-icf.c (sem_item::update_hash_by_addr_refs): Hash
15701         ultimate_alias_target ()->order ints instead of
15702         ultimate_alias_target () pointers.
15703
15704 2015-03-23  Richard Biener  <rguenther@suse.de>
15705
15706         PR tree-optimization/65518
15707         * tree-vect-stmts.c (vectorizable_load): Reject single-element
15708         interleaving cases we generate absymal code for.
15709
15710 2015-03-23  Richard Biener  <rguenther@suse.de>
15711
15712         PR tree-optimization/65494
15713         * tree-vect-slp.c (vect_build_slp_tree): Do not (re-)allocate
15714         matches here.
15715         (vect_analyze_slp_instance): But do that here, always and once.
15716
15717 2015-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15718
15719         * expmed.c (synth_mult): Fix comment about multiplying by T-1 and
15720         adding T or multiplying by T+1 and subracting T.
15721
15722 2015-03-22  Jeff Law  <law@redhat.com>
15723
15724         PR rtl-optimization/64317
15725         * Makefile.in (OBJS): Add gcse-common.c
15726         * gcse.c: Include gcse-common.h
15727         (struct modify_pair_s): Move structure definition to gcse-common.h
15728         (compute_transp): Move function to gcse-common.c.
15729         (canon_list_insert): Similarly.
15730         (record_last_mem_set_info): Break out some code and put it into
15731         gcse-common.c.  Call into the new common code.
15732         (compute_local_properties): Pass additional arguments to compute_transp.
15733         * postreload-gcse.c: Include gcse-common.h and df.h
15734         (modify_mem_list_set, blocks_with_calls): New variables.
15735         (modify_mem_list, canon_modify_mem_list, transp): Likewise.
15736         (get_bb_avail_insn): Pass in the expression index too.
15737         (alloc_mem): Allocate memory for the new bitmaps and lists.
15738         (free_mem): Free memory for the new bitmaps and lists.
15739         (insert_expr_in_table): Record a bitmap index for each entry we
15740         add to the table.
15741         (record_last_mem_set_info): Call into common code in gcse-common.c.
15742         (get_bb_avail_insn): If no available insn was found in the requested
15743         BB.  If BB has a single predecessor, see if the expression is
15744         transparent in BB and available in that single predecessor.
15745         (compute_expr_transp): New wrapper for compute_transp.
15746         (eliminate_partially_redundant_load): Pass expression's bitmap_index
15747         to get_bb_avail_insn.  Compute next_pred_bb_end a bit later.
15748         (gcse_after_reload_main): If there are elements in the hash table,
15749         then compute transparency for all the elements in the hash table.
15750         * gcse-common.h: New file.
15751         * gcse-common.c: New file.
15752
15753 2015-03-22  Sandra Loosemore  <sandra@codesourcery.com>
15754
15755         * doc/cpp.texi (Search Path): Hyphenate "command-line" when used
15756         as an adjective.
15757         (System Headers): Likewise.
15758         (Ifdef): Likewise.
15759         (Traditional macros): Likewise.
15760         (Invocation): Likewise.
15761         (Option Index): Likewise.
15762         * doc/cppopts.texi (-M): Likewise.
15763         (-finput-charset): Likewise.
15764         (--help): Likewise.
15765         * doc.invoke.texi (AVR Options): Likewise.
15766         (V850 Options): Likewise.
15767
15768 2015-03-22  Jan Hubicka  <hubicka@ucw.cz>
15769
15770         PR ipa/65475
15771         * ipa-devirt.c: Include demangle.h
15772         (odr_type_d): Add field rtti_broken.
15773         (odr_subtypes_equivalent_p): Do not require name to match.
15774         (compare_virtual_tables): Fix typo; if type already has ODR violation,
15775         bypass the tests; be ready for function referneces in vtables that are
15776         not DECL_VIRTUAL; make warnings to be OPT_Wodr.
15777         (warn_odr): Give up for nameless types.
15778         (warn_types_mismatch): Report mismatch in mangled names;
15779         report mismatch in anonymous namespaces; look into component types to
15780         give useful error; report when mismatch is dragged in from other ODR
15781         type.
15782         (odr_types_equivalent_p): Match types for being polymorphic; avoid
15783         duplicated diagnostics.
15784         (add_type_duplicate): Reorder checks so more informative ones come
15785         first; fix typo; do not output "the extra base is defined here" when
15786         we did not warn.
15787         (BINFO_N_BASE_BINFOS): Relax sanity check.
15788
15789 2015-03-22  Martin Liska  <mliska@suse.cz>
15790             Jakub Jelinek  <jakub@redhat.com>
15791
15792         * config/i386/i386.c (def_builtin): Set deferred_isa_values for
15793         masks that can potentially include a builtin.
15794         (ix86_add_new_builtins): Introduce fast filter for isa values
15795         that cannot trigger builtin inclusion.
15796
15797 2015-03-22  Martin Liska  <mliska@suse.cz>
15798
15799         * ipa-icf.c (sem_item::update_hash_by_addr_refs): New function.
15800         (sem_item::update_hash_by_local_refs): Likewise.
15801         (sem_variable::get_hash): Empty line is fixed.
15802         (sem_item_optimizer::execute): Include adding of hash references.
15803         (sem_item_optimizer::update_hash_by_addr_refs): New function.
15804         (sem_item_optimizer::build_hash_based_classes): Use local hash.
15805         * ipa-icf.h (sem_item::update_hash_by_addr_refs): New function.
15806         (sem_item::update_hash_by_local_refs): Likewise.
15807
15808 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
15809
15810         PR ipa/65502
15811         * ipa-comdats.c (enqueue_references): Walk through thunks.
15812         (ipa_comdats): Likewise.
15813         (set_comdat_group_1): New function.
15814
15815 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
15816
15817         PR ipa/65475
15818         * ipa-devirt.c (add_type_duplicate): Prevail polymorphic type over
15819         non-polymorphic
15820
15821 2015-03-22  Dave Korn  <dave.korn.cygwin@gmail.com>
15822             Gerald Pfeifer  <gerald@pfeifer.com>
15823
15824         * doc/contrib.texi (Contributors): Update entry for Danny Smith.
15825
15826 2015-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
15827             Sandra Loosemore  <sandra@codesourcery.com>
15828
15829         * config/nios2/nios2-protos.h (nios2_adjust_call_address): Adjust
15830         function parameter declaration.
15831         * config/nios2/nios2.md (call,call_value,sibcall,sibcall_value):
15832         Update arguments to nios2_adjust_call_address().
15833         (sibcall_internal): Rename from *sibcall.
15834         (sibcall_value_internal): Rename from *sibcall_value.
15835         * config/nios2/nios2.c (nios2_emit_add_constant): New function.
15836         (nios2_large_got_address): Add target temp reg parameter.
15837         (nios2_got_address): Adjust call to nios2_large_got_address, add
15838         force_reg around it.
15839         (nios2_load_pic_address): Add target temp reg parameter, replace call
15840         to nios2_got_address with corresponding code.
15841         (nios2_legitimize_constant_address): Update call to
15842         nios2_load_pic_address.
15843         (nios2_adjust_call_address): Add temp reg parameter, update PIC case
15844         to use temp reg for PIC loading purposes.
15845         (nios2_asm_output_mi_thunk): Implement TARGET_ASM_OUTPUT_MI_THUNK.
15846         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
15847         (TARGET_ASM_OUTPUT_MI_THUNK): Likewise.
15848
15849 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
15850
15851         * doc/invoke.texi (-fno-diagnostics-show-caret): Fix
15852         usage of "the @option{...}".
15853         (-Wopenmp-simd): Likewise.
15854         (-fsanitize-recover): Likewise.
15855         (-fsanitize-undefined-trap-on-error): Likewise.
15856         (-flto): Likewise.
15857         (tracer-dynamic-coverage-feedback): Likewise.
15858         (reorder-block-duplicate-feedback): Likewise.
15859         (loop-unroll-jam-size): Likewise.
15860         (-B): Likewise.
15861         (-I-): Likewise.
15862         (-mabs=legacy): Likewise.
15863         (-mupper-regs-df): Likewise.
15864         (-mupper-regs-sf): Likewise.
15865         (-mpointers-to-nested-functions): Likewise.
15866
15867 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
15868
15869         * doc/extend.texi (Cilk Plus Builtins): Add markup.
15870
15871 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
15872
15873         * doc/invoke.texi (-fcheck-pointer-bounds): Copy-edit, add
15874         additional index entries and cross-references.
15875         (-fchkp-check-incomplete-type): Likewise.
15876         (-fchkp-first-field-has-own-bounds): Likewise.
15877         (-fchkp-narrow-to-innermost-array): Likewise.
15878         (-fchkp-use-fast-string-functions): Likewise.
15879         (-fchkp-use-nochk-string-functions): Likewise.
15880         (-fchkp-use-static-const-bounds): Likewise.
15881         (-fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
15882         (-fchkp-instrument-marked-only): Likewise.
15883         (-fchkp-use-wrappers): Likewise.
15884         (-static-libmpx): Likewise.
15885         (-static-libmpxwrappers): Likewise.
15886         * doc/extend.texi (bnd_legacy): Likewise.
15887         (bnd_instrument): Likewise.
15888         (bnd_variable_size): Likewise.
15889         (Pointer Bounds Checker builtins): Likewise.
15890
15891 2015-03-21  Tom de Vries  <tom@codesourcery.com>
15892
15893         PR tree-optimization/65458
15894         * cgraph.c (cgraph_node::dump): Handle parallelized_function field.
15895         * cgraph.h (cgraph_node): Add parallelized_function field.
15896         * lto-cgraph.c (lto_output_node): Write parallelized_function field.
15897         (input_overwrite_node): Read parallelized_function field.
15898         * omp-low.c (expand_omp_taskreg, finalize_task_copyfn): Set
15899         parallelized_function on cgraph_node for child_fn.
15900         * tree-parloops.c: Add include of plugin-api.h, ipa-ref.h and cgraph.h.
15901         Remove include of gt-tree-parloops.h.
15902         (parallelized_functions): Remove static variable.
15903         (parallelized_function_p): Rewrite using parallelized_function field of
15904         cgraph_node.
15905         (create_loop_fn): Remove adding to parallelized_functions.
15906         * Makefile.in (GTFILES): Remove tree-parloops.c
15907
15908 2015-03-20  Vladimir Makarov  <vmakarov@redhat.com>
15909
15910         PR rtl-optimization/64366
15911         * lra.c (lra_update_insn_regno_info): Consider regs in
15912         CALL_INSN_FUNCTION_USAGE memory.
15913
15914 2015-03-20  Richard Biener  <rguenther@suse.de>
15915
15916         PR middle-end/64715
15917         * tree-chrec.c (chrec_fold_poly_cst): Use useless_type_conversion_p
15918         for type comparison and gcc_checking_assert.
15919         (chrec_fold_plus_poly_poly): Likewise.
15920         (chrec_fold_multiply_poly_poly): Likewise.
15921         (chrec_convert_1): Likewise.
15922         * gimplify.c (gimplify_expr): Remove premature folding of
15923         &X + CST to &MEM[&X, CST].
15924
15925 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
15926
15927         * ipa-inline.c (can_inline_edge_p): Short circuit if inline_failed
15928         already is final.
15929         (ipa_inline): Recompute inline_failed codes.
15930         * cif-code.def (FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
15931         USES_COMDAT_LOCAL, ATTRIBUTE_MISMATCH, UNREACHABLE): Declare as
15932         CIF_FINAL_ERROR.
15933
15934 2015-03-20  Uros Bizjak  <ubizjak@gmail.com>
15935
15936         PR rtl-optimization/60851
15937         * recog.c (constrain_operands): Accept a pseudo register before reload
15938         for LRA enabled targets.
15939
15940 2015-03-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
15941
15942         PR target/65240
15943         * config/rs6000/predicates.md (easy_fp_constant): Remove special
15944         -ffast-math handling that kept non-0 constants live in the RTL
15945         until reload.  Remove logic testing the number of instructions it
15946         took to create a constant in a GPR that was never used, due to a
15947         test for soft-float earlier.
15948         (memory_fp_constant): Delete, no longer used.
15949
15950         * config/rs6000/rs6000.md (mov<MODE>_hardfloat): Remove
15951         alternatives for loading non-0 constants into GPRs for hard
15952         floating point that is no longer needed due to changes in
15953         easy_fp_constant.  Add support for loading 0.0 into GPRs.
15954         (mov<mode>_hardfloat32): Likewise.
15955         (mov<mode>_hardfloat64): Likewise.
15956         (mov<mode>_64bit_dm): Likewise.
15957         (movtd_64bit_nodm): Likewise.
15958         (pre-reload move FP constant define_split): Delete define_split,
15959         since it is no longer used.
15960         (extenddftf2_internal): Remove GHF constraints that are not valid
15961         for extenddftf2.
15962
15963 2015-03-19  Vladimir Makarov  <vmakarov@redhat.com>
15964
15965         PR rtl-optimization/63491
15966         * lra-constraints.c (check_and_process_move): Use src instead of
15967         sreg.  Remove some dead code.
15968
15969 2015-03-19  Jan Hubicka  <hubicka@ucw.cz>
15970
15971         PR ipa/65380
15972         * ipa-icf.c (sem_function::merge): Do not merge DECL_EXTERNAL symbols.
15973         (sem_variable::merge): Likewise.
15974
15975 2015-03-19  Martin Liska  <mliska@suse.cz>
15976
15977         PR ipa/65465
15978         * cgraphunit.c (cgraph_node::create_wrapper): Correctly reset
15979         all fields of cgraph_thunk_info.
15980
15981 2015-03-19  Ilya Enkovich  <ilya.enkovich@intel.com>
15982
15983         * ipa-chkp.c (chkp_maybe_create_clone): Don't try to
15984         clone instrumented thunks.
15985
15986 2015-03-19  Richard Biener  <rguenther@suse.de>
15987
15988         Revert
15989         2015-03-10  Richard Biener  <rguenther@suse.de>
15990
15991         PR middle-end/63155
15992         * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
15993         * tree-ssa-coalesce.c: Include timevar.h.
15994         (attempt_coalesce): Handle graph being NULL.
15995         (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
15996         Split out abnormal coalescing to ...
15997         (perform_abnormal_coalescing): ... this function.
15998         (coalesce_ssa_name): Perform abnormal coalescing without computing
15999         live/conflict.
16000         (verify_ssa_coalescing_worker): New function.
16001         (verify_ssa_coalescing): Likewise.
16002
16003 2015-03-19  Bernd Edlinger  <bernd.edlinger@hotmail.de>
16004             Jakub Jelinek  <jakub@redhat.com>
16005
16006         PR sanitizer/65400
16007         * tsan.c (instrument_gimple): Clear tail call flag on
16008         calls.
16009
16010 2015-03-19  Jakub Jelinek  <jakub@redhat.com>
16011
16012         PR sanitizer/65400
16013         * ipa-split.c (find_return_bb): Allow TSAN_FUNC_EXIT internal
16014         call in the return bb.
16015         (find_split_points): Add RETURN_BB argument, don't call
16016         find_return_bb.
16017         (split_function): Likewise.  Add ADD_TSAN_FUNC_EXIT argument,
16018         if true append TSAN_FUNC_EXIT internal call after the call to
16019         the split off function.
16020         (execute_split_functions): Call find_return_bb here.
16021         Don't optimize if TSAN_FUNC_EXIT is found in unexpected places.
16022         Adjust find_split_points and split_function calls.
16023
16024 2015-03-18  DJ Delorie  <dj@redhat.com>
16025
16026         * config/rl78/rl78-virt.md (andqi3_virt): Allow far operands.
16027         (iorqi3_virt): Likewise.
16028
16029 2015-03-18  Tom de Vries  <tom@codesourcery.com>
16030
16031         * tree-parloops.c (parallelize_loops): Make static.
16032         * tree-parloops.h (parallelize_loops): Remove extern declaration.
16033
16034 2015-03-18  Andrew Stubbs  <ams@codesourcery.com>
16035
16036         PR middle-end/64491
16037         Revert:
16038         2014-11-20  Andrew Stubbs  <ams@codesourcery.com>
16039
16040         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Warn if a loop
16041         condition would be removed due to undefined behaviour.
16042
16043 2015-03-18  Martin Liska  <mliska@suse.cz>
16044
16045         PR ipa/65432
16046         * cgraph.c (cgraph_node::get_create): Remove unnecessary
16047         xstrdup_for_dump wrapper.
16048         * ipa-icf.c (sem_item::dump): Use symtab_node::name instead of
16049         sem_item::name.
16050         (sem_function::equals): Wrap symtab_node::name and symtab_node::asm_name
16051         with xstrdup_for_dump.
16052         (sem_variable::equals): Likewise.
16053         (sem_item_optimizer::read_section): Use symtab_node::name instead of
16054         sem_item::name.
16055         (sem_item_optimizer::parse_funcs_and_vars): Likewise.
16056         (sem_item_optimizer::merge_classes): Wrap symtab_node::name and
16057         symtab_node::asm_name with xstrdup_for_dump.
16058         (congruence_class::dump): Use symtab_node::name instead of
16059         sem_item::name.
16060         * ipa-icf.h (symtab_node::name): Remove.
16061         (symtab_node::asm_name): Likewise.
16062
16063 2015-03-18  Jakub Jelinek  <jakub@redhat.com>
16064
16065         PR tree-optimization/65450
16066         * tree-vect-data-refs.c (vect_duplicate_ssa_name_ptr_info): New
16067         function.
16068         (vect_create_addr_base_for_vector_ref, vect_create_data_ref_ptr): Use
16069         it instead of duplicate_ssa_name_ptr_info.
16070
16071         PR target/65222
16072         * doc/invoke.texi: Add knl as x86 -march=/-mtune= CPU type.
16073
16074 2015-03-18  Richard Biener  <rguenther@suse.de>
16075
16076         * tree-data-ref.h (struct access_matrix): Remove.
16077         (AM_LOOP_NEST, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
16078         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
16079         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT): Likewise.
16080         (am_vector_index_for_loop): Likewise.
16081         (struct data_reference): Remove access_matrix member.
16082         (DR_ACCESS_MATRIX): Remove.
16083         (lambda_vector_new): Add comment.
16084         (lambda_matrix_new): Use XOBNEWVEC.
16085
16086 2015-03-18  Richard Biener  <rguenther@suse.de>
16087
16088         * tree-ssa-loop-ch.c (pass_data_ch): Remove TODO_cleanup_cfg.
16089         (pass_ch::execute): Cleanup the CFG only if we did sth.
16090         * tree-vect-generic.c (pass_data_lower_vector): Remove TODO_cleanup_cfg.
16091
16092 2015-03-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16093
16094         * expmed.c (synth_mult): Use std::swap instead of manually
16095         swapping algorithms.
16096
16097 2015-03-18  Jakub Jelinek  <jakub@redhat.com>
16098
16099         PR target/65078
16100         * config/i386/sse.md (movsi/movdi -> vec_extract_*_0 splitter): New.
16101
16102 2015-03-16  Georg-Johann Lay  <avr@gjlay.de>
16103
16104         PR target/65296
16105         * config/avr/avr.opt (-nodevicelib): New option.
16106         * doc/invoke.texi (AVR Options): Document it.
16107         * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC) [avr1]: Don't link
16108         libgcc.a, libc.a, libm.a.
16109         * config/avr/specs.h: Same.
16110         * config/avr/gen-avr-mmcu-specs.c (print_mcu): Don't print specs
16111         which don't (directly) depend on the device.  Print more help.
16112         (*avrlibc_devicelib) [-nodevicelib]: Don't link libdev.a.
16113         (*cpp): Don't define __AVR_DEV_LIB_NAME__.
16114         * config/avr/driver-avr.c: Remove -nodevicelib from option list in
16115         case of an error.
16116         (avr_devicespecs_file): Use suffix "%s" instead of absolute path
16117         for specs file name.
16118         * config/avr/avr-arch.h (avr_mcu_t) [.library_name]: Remove.
16119         * config/avr/avr-mcus.def: Adjust initializers and comments.
16120
16121 2015-03-16  Jan Hubicka  <hubicka@ucw.cz>
16122
16123         * tree-sra.c (ipa_sra_preliminary_function_checks): Use
16124         DECL_ONE_ONLY to check if decl is one only.
16125         * ipa-split.c (consider_split): Limit splitt of one only functions.
16126
16127 2015-03-16  Jakub Jelinek  <jakub@redhat.com>
16128
16129         PR tree-optimization/65427
16130         * tree-vect-generic.c (do_cond, expand_vector_scalar_condition): New
16131         functions.
16132         (expand_vector_operations_1): Handle BLKmode vector COND_EXPR.
16133
16134 2015-03-16  Marek Polacek  <polacek@redhat.com>
16135
16136         * cgraph.h (add_new_static_var): Remove declaration.
16137         * varpool.c (add_new_static_var): Remove function.
16138
16139 2015-03-16  Jakub Jelinek  <jakub@redhat.com>
16140
16141         * omp-low.c (expand_omp_target): Use auto_vec<tree, 11>
16142         instead of vec<tree> * with vec_alloc and release for args.
16143         Adjust all users.
16144
16145         PR middle-end/65431
16146         * omp-low.c (delete_omp_context): Only splay_tree_delete
16147         reduction_map in GIMPLE_OMP_TARGET is_gimple_omp_offloaded
16148         is_gimple_omp_oacc contexts.  Don't look at ctx->outer.
16149
16150 2015-03-16  Max Ostapenko  <m.ostapenko@partner.samsung.com>
16151
16152         PR sanitizer/64820
16153         * cfgexpand.c (align_base): New function.
16154         (alloc_stack_frame_space): Call it.
16155         (expand_stack_vars): Align prev_frame to be sure
16156         data->asan_vec elements aligned properly.
16157
16158 2015-03-16  Eric Botcazou  <ebotcazou@adacore.com>
16159
16160         PR middle-end/65409
16161         * expr.c (store_field): Do not do a direct block copy if the source is
16162         a PARALLEL with BLKmode.
16163
16164 2015-03-16  Tom de Vries  <tom@codesourcery.com>
16165
16166         PR middle-end/65414
16167         Revert:
16168         2015-03-12  Tom de Vries  <tom@codesourcery.com>
16169
16170         PR rtl-optimization/64895
16171         * lra-lives.c (check_pseudos_live_through_calls): Use
16172         actual_call_used_reg_set instead of call_used_reg_set, if available.
16173
16174 2015-03-16  Alan Modra  <amodra@gmail.com>
16175
16176         PR target/63150
16177         * config/rs6000/rs6000.md (bswapdi2): Remove one scratch reg.
16178         Modify Z->r bswapdi splitter to use dest in place of scratch.
16179         In r->Z and Z->r bswapdi splitter rename word_high, word_low
16180         to word1, word2 and rearrange logic to suit.
16181         (bswapdi2_64bit): Remove early clobber on Z->r alternative.
16182         (bswapdi2_ldbrx): Likewise.  Remove '??' on r->r.
16183         (bswapdi2_32bit): Remove early clobber on Z->r alternative.
16184         Add one '?' on r->r.  Modify Z->r splitter to avoid need for
16185         early clobber.
16186
16187 2015-03-14  Jakub Jelinek  <jakub@redhat.com>
16188
16189         PR tree-optimization/65369
16190         * tree-vect-stmts.c (vectorizable_load) <case dr_explicit_realign>:
16191         Set bump to vs * TYPE_SIZE_UNIT (elem_type) - 1 instead of
16192         (vs - 1) * TYPE_SIZE_UNIT (elem_type).
16193
16194         PR tree-optimization/65418
16195         * tree-ssa-reassoc.c (extract_bit_test_mask): If there
16196         are casts in the first PLUS_EXPR operand, ensure tbias and
16197         *totallowp are in the inner type.
16198
16199         PR rtl-optimization/65401
16200         * combine.c (rtx_equal_for_field_assignment_p): Add widen_x
16201         argument.  If true, adjust_address_nv of x with big-endian
16202         correction for the mode widening to GET_MODE (y).
16203         (make_field_assignment): Don't do MEM mode widening here.
16204         Use MEM_P instead of GET_CODE == MEM.
16205
16206 2015-03-13  Ilya Verbin  <ilya.verbin@intel.com>
16207
16208         * varpool.c (varpool_node::get_create): Don't set 'offloadable' flag for
16209         the external decls.
16210
16211 2015-03-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16212
16213         PR target/64600
16214         * config/arm/arm.c (arm_gen_constant, AND case): Use
16215         ARM_SIGN_EXTEND when constructing AND mask.
16216
16217 2015-03-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16218
16219         * graph.c (print_graph_cfg): Make function names visible and append
16220         parenthesis to it.  Also make groups of basic blocks belonging to the
16221         same function visible.
16222
16223 2015-03-12  Richard Biener  <rguenther@suse.de>
16224
16225         PR middle-end/44563
16226         * tree-inline.c (gimple_expand_calls_inline): Walk BB backwards
16227         to avoid quadratic behavior with inline expansion splitting blocks.
16228         * tree-cfgcleanup.c (cleanup_tree_cfg_bb): Do not merge block
16229         with the successor if the predecessor will be merged with it.
16230         * tree-cfg.c (gimple_can_merge_blocks_p): We can't merge the
16231         entry block with its successor.
16232
16233 2015-03-13  Richard Biener  <rguenther@suse.de>
16234
16235         PR middle-end/44563
16236         * tree-cfgcleanup.c (split_bb_on_noreturn_calls): Remove.
16237         (cleanup_tree_cfg_1): Do not call it.
16238         (execute_cleanup_cfg_post_optimizing): Fixup the CFG here.
16239         (fixup_noreturn_call): Mark the stmt as control altering.
16240         * tree-cfg.c (execute_fixup_cfg): Do not dump the function
16241         here.
16242         (pass_data_fixup_cfg): Produce a dump file.
16243         * tree-ssa-dom.c: Include tree-cfgcleanup.h.
16244         (need_noreturn_fixup): New global.
16245         (pass_dominator::execute): Fixup queued noreturn calls.
16246         (optimize_stmt): Queue calls that became noreturn for fixup.
16247         * tree-ssa-forwprop.c (pass_forwprop::execute): Likewise.
16248         * tree-ssa-pre.c: Include tree-cfgcleanup.h.
16249         (el_to_fixup): New global.
16250         (eliminate_dom_walker::before_dom_childre): Queue calls that
16251         became noreturn for fixup.
16252         (eliminate): Fixup queued noreturn calls.
16253         * tree-ssa-propagate.c: Include tree-cfgcleanup.h.
16254         (substitute_and_fold_dom_walker): New member stmts_to_fixup.
16255         (substitute_and_fold_dom_walker::before_dom_children): Queue
16256         alls that became noreturn for fixup.
16257         (substitute_and_fold): Fixup queued noreturn calls.
16258
16259 2015-03-12  Jan Hubicka  <hubicka@ucw.cz>
16260
16261         * ipa-icf.c (sem_function::equals_wpa): Match CXX_CONSTRUCTOR_P
16262         and CXX_DESTURCTOR_P. For consutrctors match ODR type of class they
16263         are building; for methods check ODR type of class they belong to if
16264         they may lead to a polymorphic call.
16265         (sem_function::compare_polymorphic_p): Be bit smarter about testing
16266         when function may lead to a polymorphic call.
16267         (sem_function::compare_type_list): Remove.
16268         (sem_variable::equals): Update use of compatible_types_p.
16269         (sem_variable::parse_tree_refs): Remove.
16270         (sem_item_optimizer::filter_removed_items): Do not filter out CXX
16271         cdtor.
16272         * ipa-icf-gimple.c (func_checker::compare_decl): Do polymorphic
16273         matching here.
16274         (func_checker::compatible_polymorphic_types_p): Break out from ...
16275         (unc_checker::compatible_types_p): ... here.
16276         * ipa-icf-gimple.h (func_checker::compatible_polymorphic_types_p):
16277         Declare.
16278         (unc_checker::compatible_types_p): Update.
16279         * ipa-icf.h (compare_type_list, parse_tree_refs, compare_sections):
16280         Remove.
16281
16282 2015-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16283
16284         PR rtl-optimization/65235
16285         * simplify-rtx.c (simplify_binary_operation_1, VEC_SELECT case):
16286         When first element of vec_concat is const_int, calculate its size
16287         using second element.
16288
16289 2015-03-12  Richard Biener  <rguenther@suse.de>
16290
16291         PR middle-end/65270
16292         * fold-const.c (operand_equal_p): Fix ordering of resetting
16293         OEP_ADDRESS_OF and checking for it in the [TARGET_]MEM_REF case.
16294
16295 2015-03-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>
16296
16297         * config/s390/s390.c (s390_reorg): Move code to output nops after label
16298         to s390_reorg ().
16299         (s390_asm_output_function_label): Likewise.
16300         * config/s390/s390.c (s390_asm_output_function_label):
16301         Fix function label alignment with -mhtopatch.
16302         * config/s390/s390.md ("unspecv"): New values UNSPECV_NOP_2_BYTE,
16303         UNSPECV_NOP_4_BYTE and UNSPECV_NOP_6_BYTE
16304         ("nop_2_byte"): New define_insn.
16305         ("nop_4_byte"): Likewise.
16306         ("nop_6_byte"): Likewise.
16307         * doc/extend.texi (hotpatch): hotpatch attribute doc fixes.
16308         * doc/invoke.texi (-mhotpatch): -mhotpatch doc fixes.
16309
16310 2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>
16311
16312         PR target/65103
16313         * config/i386/i386.c (ix86_address_cost): Fix cost of a PIC
16314         register.
16315
16316 2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>
16317
16318         PR target/65044
16319         * toplev.c (process_options): Restrict Pointer Bounds Checker
16320         usage with Address Sanitizer.
16321
16322 2015-03-12  Richard Biener  <rguenther@suse.de>
16323
16324         * tree-cfg.c (gimple_split_block): Remove loop finding stmt
16325         to split on.
16326         * omp-low.c (expand_omp_taskreg): Split block before removing
16327         the stmt.
16328         (expand_omp_target): Likewise.
16329         * ubsan.c (ubsan_expand_null_ifn): Adjust stmt if we replaced it.
16330         * tree-parloops.c (create_call_for_reduction_1): Pass a proper
16331         stmt to split_block.
16332
16333 2015-03-12  Tom de Vries  <tom@codesourcery.com>
16334
16335         PR rtl-optimization/64895
16336         * lra-lives.c (check_pseudos_live_through_calls): Use
16337         actual_call_used_reg_set instead of call_used_reg_set, if available.
16338
16339 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
16340
16341         * cgraph.c (cgraph_node::release_body): Free function_in_decl_state.
16342         (cgraph_node::remove): Likewise.
16343         (cgraph_node::get_untransformed_body): Likewise.
16344         * varpool.c (varpool_node::remove): Likewise.
16345         (varpool_node::get_constructor): Add sanity check.
16346
16347 2015-03-11  Sandra Loosemore  <sandra@codesourcery.com>
16348
16349         * doc/invoke.texi (-fgnu89-inline): Remove discussion about
16350         old GCC versions.
16351         (-fabi-compat-version): Likewise.
16352         (-ffriend-injection): Likewise.
16353         (-Wdeclaration-after-statement): Likewise.
16354         (-fomit-frame-pointer): Likewise.
16355         (-ftree-coalesce-inlined-vars): Likewise.
16356         (-fvisibility=): Likewise.
16357         * doc/extend.texi (Typeof): Likewise.
16358         (Zero Length): Likewise.
16359         (Escaped Newlines): Likewise.
16360         (Compound Literals): Likewise.
16361         (Function Attributes): Likewise.
16362         (Label Attributes): Likewise.
16363         (Type Attributes): Likewise.
16364         (Function Names): Likewise.
16365         (Other Builtins): Likewise.
16366         (Function Specific Option Pragmas): Likewise.
16367         (C++ Interface): Likewise.
16368
16369 2015-03-11  Thomas Schwinge  <thomas@codesourcery.com>
16370
16371         * config/nvptx/nvptx.h (LIBSTDCXX): Define to "gcc".
16372
16373 2015-03-11  Marek Polacek  <polacek@redhat.com>
16374
16375         PR tree-optimization/65388
16376         * tree-ssa-tail-merge.c (same_succ_def::equal): Fix typo in comparison.
16377
16378 2015-03-10  Georg-Johann Lay  <avr@gjlay.de>
16379
16380         PR target/65296
16381         * configure.ac [avr]: Check as for options -mrmw, --mlink-relax.
16382         * configure: Regenerate.
16383         * config.in: Regenerate.
16384         * doc/invoke.texi (AVR Options) [-mrmw]: Document it.
16385         [-mn-flash]: Document it.
16386         [__AVR_ARCH__]: Document avrtiny.
16387
16388         * config/avr/gen-avr-mmcu-specs.c (config.h): Include it.
16389         (*asm_relax): Only define spec if HAVE_AS_AVR_MLINK_RELAX_OPTION.
16390         (*asm_rmw): Only define spec if HAVE_AS_AVR_MRMW_OPTION.
16391
16392 2015-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16393
16394         * doc/invoke.texi: Add missing cpu values (z196, zEC12).
16395
16396 2015-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
16397
16398         PR target/65242
16399         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Do not
16400         allow reloads of PLUS in floating point/VSX registers.
16401
16402 2015-03-11  Junmo Park  <junmoz.park@samsung.com>
16403
16404         * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Add
16405         crypto_sha256_fast.
16406         (cortex_a57_crypto_complex): Add crypto_sha256_slow.
16407
16408 2015-03-11  Richard Biener  <rguenther@suse.de>
16409
16410         PR tree-optimization/65310
16411         * tree-sra.c (build_ref_for_offset): Also preserve larger
16412         alignment.
16413
16414 2015-03-11  Marat Zakirov  <m.zakirov@samsung.com>
16415
16416         * asan.c (instrument_derefs): Disable instrumentation on asan-globals=0.
16417
16418 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
16419
16420         PR target/65368
16421         * config/i386/i386.md (bmi2_bzhi_<mode>3): Removed define_insn,
16422         new define_expand.
16423         (*bmi2_bzhi_<mode>3, *bmi2_bzhi_<mode>3_1): New define_insns.
16424
16425 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
16426
16427         * ipa-icf.c (sem_function::equals_wpa): Move here some checks from ...
16428         (sem_function::equals_wpa): ... here.
16429
16430 2015-03-10  Marek Polacek  <polacek@redhat.com>
16431             Jakub Jelinek  <jakub@redhat.com>
16432
16433         PR sanitizer/65367
16434         * ubsan.c (ubsan_expand_objsize_ifn): Update GSI instead of GSI_ORIG
16435         when only removing the statement.  Handle expanding UBSAN_OBJECT_SIZE
16436         separately.
16437
16438 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
16439
16440         PR target/65286
16441         * config/rs6000/t-linux: For powerpc64* target set
16442         MULTILIB_OSDIRNAMES instead of MULTIARCH_DIRNAME.
16443
16444 2015-03-10  Richard Biener  <rguenther@suse.de>
16445
16446         PR middle-end/44563
16447         * tree-inline.c (copy_cfg_body): Skip block mapped to entry/exit
16448         for redirect_all_calls.
16449
16450 2015-03-10  Marek Polacek  <polacek@redhat.com>
16451
16452         * gdbinit.in (pcfun): Define and document.
16453
16454 2015-03-10  Ilya Verbin  <ilya.verbin@intel.com>
16455
16456         * config/i386/intelmic-mkoffload.c: Include intelmic-offload.h instead
16457         of libgomp-plugin.h.
16458         (find_target_compiler): Support a case when the path to gcc is
16459         specified in the PATH env var, so COLLECT_GCC doesn't contain a path.
16460         (generate_host_descr_file): Use GOMP_DEVICE_INTEL_MIC from
16461         intelmic-offload.h instead of OFFLOAD_TARGET_TYPE_INTEL_MIC from
16462         libgomp-plugin.h.
16463         (main): Use GCC_INSTALL_NAME as target_driver_name.
16464         * config/i386/t-intelmic (CFLAGS-mkoffload.o): Add GCC_INSTALL_NAME
16465         define.
16466         (mkoffload.o): Remove obsolete include path and defines.
16467         (mkoffload$(exeext)): Use $(LINKER) instead of $(COMPILER).
16468
16469 2015-03-10  Richard Biener  <rguenther@suse.de>
16470
16471         PR middle-end/63155
16472         * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
16473         * tree-ssa-coalesce.c: Include timevar.h.
16474         (attempt_coalesce): Handle graph being NULL.
16475         (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
16476         Split out abnormal coalescing to ...
16477         (perform_abnormal_coalescing): ... this function.
16478         (coalesce_ssa_name): Perform abnormal coalescing without computing
16479         live/conflict.
16480         (verify_ssa_coalescing_worker): New function.
16481         (verify_ssa_coalescing): Likewise.
16482
16483 2015-03-10  Georg-Johann Lay  <avr@gjlay.de>
16484
16485         PR target/65296
16486         * config.gcc (extra_options) [avr]: Remove.
16487         (extra_gcc_objs) [avr]: Use driver-avr.o, avr-devices.o.
16488         (tm_file) [avr]: Add avr/specs.h after avr/avr.h.
16489         (tm_defines) [avr-*-rtems*]: Add WITH_RTEMS.
16490
16491         * config/avr/avr.opt (config/avr/avr-arch.h): Remove include.
16492         (-mmcu=): Add Var and MissingArgError properties.
16493         (-march=): Remove.
16494         * config/avr/genmultilib.awk: Use -mmcu= instead of -march=.
16495         * config/avr/t-multilib: Regenerate.
16496         * config/avr/specs.h: New file.
16497         * config/avr/driver-avr.c: New file.
16498         * config/avr/genopt.sh: Remove file.
16499         * config/avr/avr-tables.opt: Remove file.
16500         * config/avr/predicates.md (avr_current_arch): Rename to avr_arch.
16501         * config/avr/avr-c.c: Same.
16502         * avr-arch.h: Same.
16503         (avr_current_device): Remove proto.
16504         * config/avr/avr.h (avr_current_arch): Rename to avr_arch.
16505         (AVR_HAVE_8BIT_SP): Don't depend on avr_current_device.
16506         (EXTRA_SPEC_FUNCTIONS): Define.
16507         (avr_devicespecs_file): New specs function proto.
16508         (DRIVER_SELF_SPECS): Use device-specs-file spec function.
16509         * config/avr/avr.c (avr_current_arch): Rename to avr_arch.
16510         (avr_current_device): Remove definition and usage.
16511         (avr_set_core_architecture): New static function.
16512         (avr_option_override): Use it.
16513         * config/avr/avr-devices.c (diagnostic.h, avr-arch.h): Include them.
16514         (mcu_name): New static array.
16515         (comparator, avr_archs_str, avr_mcus_str): New static functions.
16516         (avr_inform_devices, avr_inform_core_architectures): New functions.
16517         * config/avr/gen-avr-mmcu-specs.c (avr-arch.h, specs.h): Include.
16518         (avrlibc.h) [WITH_AVRLIBC]: Include.
16519         (../rtems.h, rtems.h) [WITH_RTEMS]: Include.
16520         (print_mcu): Rewrite from scratch.
16521         * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC, STARTFILE_SPEC):
16522         Forward to avr-specific specs defined in device-specs file.
16523         * config/avr/t-avr (driver-avr.o): New rule.
16524         (avr-devices.o): Depend on avr-arch.h.
16525         (avr-mcus): No more depend on avr-tables.opt.
16526         (avr-tables.opt): Remove rule.
16527         (install-device-specs): Use INSTALL_DATA, not INSTALL_PROGRAM.
16528
16529 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
16530
16531         * c-family/c.opt (fchkp-use-wrappers): New.
16532         * ipa-chkp.c (CHKP_WRAPPER_SYMBOL_PREFIX): New.
16533         (chkp_wrap_function): New.
16534         (chkp_build_instrumented_fndecl): Support wrapped
16535         functions.
16536         * doc/invoke.texi (-fcheck-pointer-bounds): New.
16537         (-fchkp-check-incomplete-type): New.
16538         (-fchkp-first-field-has-own-bounds): New.
16539         (-fchkp-narrow-bounds): New.
16540         (-fchkp-narrow-to-innermost-array): New.
16541         (-fchkp-optimize): New.
16542         (-fchkp-use-fast-string-functions): New.
16543         (-fchkp-use-nochk-string-functions): New.
16544         (-fchkp-use-static-bounds): New.
16545         (-fchkp-use-static-const-bounds): New.
16546         (-fchkp-treat-zero-dynamic-size-as-infinite): New.
16547         (-fchkp-check-read): New.
16548         (-fchkp-check-write): New.
16549         (-fchkp-store-bounds): New.
16550         (-fchkp-instrument-calls): New.
16551         (-fchkp-instrument-marked-only): New.
16552         (-fchkp-use-wrappers): New.
16553         (-static-libmpx): New.
16554         (-static-libmpxwrappers): New.
16555
16556 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
16557
16558         * config/i386/linux-common.h (LIBMPX_WRAPPERSSPEC): New.
16559         (CHKP_SPEC): Add wrappers library.
16560         * c-family/c.opt (static-libmpxwrappers): New.
16561
16562 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
16563
16564         * config/i386/linux-common.h (LIBMPX_LIBS): New.
16565         (LIBMPX_SPEC): New.
16566         (CHKP_SPEC): New.
16567         * gcc.c (CHKP_SPEC): New.
16568         (LINK_COMMAND_SPEC): Add CHKP_SPEC.
16569         * c-family/c.opt (static-libmpx): New.
16570
16571 2015-03-10  Richard Biener  <rguenther@suse.de>
16572
16573         PR middle-end/44563
16574         * cgraph.h (struct cgraph_edge_hasher): Add hash overload
16575         for compare_type.
16576         * cgraph.c (cgraph_edge_hasher::hash): Inline htab_hash_pointer.
16577         (cgraph_update_edge_in_call_site_hash): Use cgraph_edge_hasher::hash.
16578         (cgraph_add_edge_to_call_site_hash): Likewise.
16579         (cgraph_node::get_edge): Likewise.
16580         (cgraph_edge::set_call_stmt): Likewise.
16581         (cgraph_edge::remove_caller): Likewise.
16582
16583 2015-03-10  Chung-Ju Wu  <jasonwucj@gmail.com>
16584
16585         * config/nds32/nds32.h (callee_saved_regs_size): Rename to ...
16586         (callee_saved_gpr_regs_size): ... this.
16587         (callee_saved_regs_first_regno): Rename to ...
16588         (callee_saved_first_gpr_regno): ... this.
16589         (callee_saved_regs_last_regno) Rename to ...
16590         (callee_saved_last_gpr_regno): ... this.
16591         * config/nds32/nds32.c (nds32_compute_stack_frame): Adjust renamed
16592         variables.
16593         (nds32_initial_elimination_offset): Likewise.
16594         (nds32_expand_prologue): Likewise.
16595         (nds32_expand_epilogue): Likewise.
16596         (nds32_expand_prologue_v3push): Likewise.
16597         (nds32_expand_epilogue_v3pop): Likewise.
16598         * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
16599         Adjust renamed variables.
16600         (nds32_output_stack_pop): Likewise.
16601
16602 2015-03-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16603
16604         * dominance.c (nearest_common_dominator_for_set): Fix A_Dominated_by_B
16605         code in comment.
16606
16607 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
16608
16609         PR rtl-optimization/65321
16610         * cfgexpand.c (expand_debug_expr): Ensure shift amount isn't wider
16611         than shift mode.
16612         * var-tracking.c (use_narrower_mode): Likewise.
16613
16614 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
16615
16616         PR tree-optimization/65355
16617         * varasm.c (notice_global_symbol): Do not produce RTL.
16618         * symtab.c (symtab_node::can_increase_alignment_p): Check for section
16619         anchor.
16620         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Do not
16621         check for section anchors.
16622
16623 2015-03-10  Alan Modra  <amodra@gmail.com>
16624
16625         PR target/65286
16626         * config.gcc (powerpc*-*-linux*): Arrange for powerpc64le-linux
16627         to be single-arch by default.  Set cpu_is_64bit for powerpc64
16628         given --with-cpu=native.
16629         * config/rs6000/t-fprules: Do not set default MULTILIB vars.
16630         * config/rs6000/t-linux (MULTIARCH_DIRNAME): Support powerpc64
16631         and powerpc64le.
16632         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Test
16633         rs6000_isa_flags rather than TARGET_64BIT.
16634
16635 2015-03-09  Yoshinori Sato  <ysato@users.sourceforge.jp>
16636             Kaz Kojima  <kkojima@gcc.gnu.org>
16637
16638         * config/sh/t-linux (MULTILIB_EXCEPTIONS): Define for m2a cases.
16639
16640 2015-03-09  Jakub Jelinek  <jakub@redhat.com>
16641
16642         PR lto/65361
16643         * ipa-devirt.c (add_type_duplicate): Don't use DECL_CONTEXT
16644         on a TREE_BINFO, instead use BINFO_TYPE.
16645
16646 2015-03-09  Richard Biener  <rguenther@suse.de>
16647
16648         PR middle-end/65270
16649         * tree-core.h (enum operand_equal_flag): Add OEP_ADDRESS_OF.
16650         * fold-const.c (operand_equal_p): When recursing for ADDR_EXPRs
16651         operand set OEP_ADDRESS_OF.  Clear it when recursing to non-bases
16652         of that.  When comparing dereferences compare alignment.
16653         When comparing MEM_REFs or TARGET_MEM_REFs compare dependence info.
16654
16655 2015-03-08  Jan Hubicka  <hubicka@ucw.cz>
16656
16657         * ipa-inline-analysis.c (check_callers): Check
16658         node->can_remove_if_no_direct_calls_and_refs_p.
16659         (growth_likely_positive): Reorganize to call
16660         can_remove_if_no_direct_calls_p later.
16661         * cgraph.h (will_be_removed_from_program_if_no_direct_calls_p,
16662         will_be_removed_from_program_if_no_direct_calls_p): Add
16663         will_inline parameter.
16664         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p,
16665         cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
16666         Handle inliner case correctly.
16667
16668 2015-03-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16669
16670         PR tree-optimization/63743
16671         * cfgexpand.c (reorder_operands): Also reorder if only second operand
16672         had its definition forwarded by TER.
16673
16674 2015-03-08  Jan Hubicka  <hubicka@ucw.cz>
16675
16676         PR lto/65316
16677         * ipa-utils.h (types_odr_comparable): Add strict argument.
16678         * ipa-devirt.c: Fix whitespace;
16679         (odr_hasher): Remove.
16680         (odr_name_hasher, odr_vtable_hasher): New hashers.
16681         (can_be_name_hashed_p): New predicate.
16682         (hash_type_name): remove.
16683         (hash_odr_name): New.
16684         (odr_name_hasher::hash): new.
16685         (can_be_vtable_hashed_p): New.
16686         (hash_odr_vtable): New.
16687         (odr_vtable_hasher::hash): New.
16688         (types_same_for_odr): Add strict parameter.
16689         (types_odr_comparable): Likewise.
16690         (odr_name_hasher::equal): New.
16691         (odr_vtable_hasher::equal): New.
16692         (odr_name_hasher::remove): New.
16693         (odr_hash_type): Change to hash_table<odr_name_hasher>.
16694         (odr_vtable_hash_type): New.
16695         (odr_vtable_hash): New.
16696         (odr_subtypes_equivalent_p): Do strict comparsion.
16697         (add_type_duplicate): Merge type names; cleanup; avoid type
16698         duplicates.
16699         (register_odr_type): Initialize vtable hash.
16700         (build_type_inheritance_graph): Likewise
16701         (get_odr_type): Reorg to use two hashes.
16702         (dump_possible_polymorphic_call_targets): Move sanity check after debug
16703         output.
16704         (ipa_devirt): Dump type_inheritance_graph.
16705         (types_same_for_odr): Add strict mode.
16706
16707 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
16708
16709         PR ipa/65334
16710         * cgraph.h (symtab_node): Add definition_alignment,
16711         can_increase_alignment_p and increase_alignment.
16712         * symtab.c (symtab_node::can_increase_alignment_p,
16713         increase_alignment_1, symtab_node::increase_alignment,
16714         symtab_node::definition_alignment): New.
16715         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Use
16716         can_increase_alignment_p.
16717         * tree-vectorizer.c (increase_alignment): Use increase_alignment.
16718         * tree-vect-stmts.c (ensure_base_align): Likewise.
16719         * varasm.c (function_section_1): Use definition_alignment.
16720         (assemble_start_function): Likewise.
16721         (emit_local): likewise.
16722         (build_constant_desc): Likewsie.
16723         (output_constant_def_contents): Likewise.
16724         (place_block_symbol): Likewise.
16725         (output_object_block): Likewise.
16726
16727 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
16728
16729         PR ipa/65316
16730         * tree.c (free_lang_data_in_type): Be sure to keep BINFO_VTABLE
16731         when outputting debug.
16732
16733 2015-03-07  Marek Polacek  <polacek@redhat.com>
16734             Martin Uecker  <uecker@eecs.berkeley.edu>
16735
16736         PR sanitizer/65280
16737         * doc/invoke.texi: Update description of -fsanitize=bounds.
16738
16739 2015-03-06  Wilco Dijkstra  <wilco.dijkstra@arm.com>
16740
16741         * tree-ssa-phiopt.c (neg_replacement): Remove.
16742         (tree_ssa_phiopt_worker): Remove negate optimization.
16743
16744 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
16745
16746         PR ipa/65302
16747         * value-prof.c (gimple_ic): Pure dead eh edges when needed.
16748
16749 2015-03-06  Richard Biener  <rguenther@suse.de>
16750
16751         PR middle-end/64928
16752         * tree-ssa-live.h (struct tree_live_info_d): Add livein_obstack
16753         and liveout_obstack members.
16754         (calculate_live_on_exit): Remove.
16755         (calculate_live_ranges): Change declaration.
16756         * tree-ssa-live.c (liveness_bitmap_obstack): Remove global var.
16757         (new_tree_live_info): Adjust.
16758         (calculate_live_ranges): Delete livein when not wanted.
16759         (calculate_live_ranges): Do not initialize liveness_bitmap_obstack.
16760         Deal with partly deleted live info.
16761         (loe_visit_block): Remove temporary bitmap by using
16762         bitmap_ior_and_compl_into.
16763         (live_worklist): Adjust accordingly.
16764         (calculate_live_on_exit): Make static.
16765         * tree-ssa-coalesce.c (coalesce_ssa_name): Tell calculate_live_ranges
16766         we do not need livein.
16767
16768 2015-03-06  Jonathan Wakely  <jwakely@redhat.com>
16769
16770         * real.c (real_from_string): Fix typo in assertion.
16771
16772 2015-03-06  Alex Velenko  <alex.velenko@arm.com>
16773
16774         * ChangeLog (2015-03-05): Reflect Richard Henderson as actual author of
16775         the patch.
16776
16777 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
16778
16779         * ipa-icf.c (sem_variable::equals_wpa): Check FINAL flags.
16780
16781 2015-03-05  Vladimir Makarov  <vmakarov@redhat.com>
16782
16783         PR target/64342
16784         * lra-assigns.c (find_hard_regno_for): Rename to
16785         find_hard_regno_for_1.  Add a new parameter.
16786         (find_hard_regno_for): New function using find_hard_regno_for_1.
16787
16788 2015-03-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
16789
16790         PR rtl-optimization/65067
16791         * expmed.c (store_bit_field, extract_bit_field): Reworked the
16792         strict volatile bitfield handling.
16793
16794 2015-03-05  Martin Liska  <mliska@suse.cz>
16795
16796         PR ipa/65318
16797         * ipa-icf.c (sem_variable::equals): Compare variables types.
16798
16799 2015-03-05  Richard Henderson  <rth@redhat.com>
16800
16801         PR target/65121
16802         * config/arm/arm.c (arm_function_in_section_p): Fix predicate to
16803         correctly check weak symbol binding.
16804
16805 2015-03-05  Steve Ellcey  <sellcey@imgtec.com>
16806
16807         PR middle-end/65315
16808         * cfgexpand.c (expand_stack_vars): Update large_align to maximum
16809         needed alignment.
16810
16811 2015-03-05  Martin Liska  <mliska@suse.cz>
16812
16813         * ipa-inline.c (inline_small_functions): Set default value to
16814         prevent warning during bootstrap.
16815         * tree.h: Add pragma guard that ignores false positives during
16816         bootstrap.
16817
16818 2015-03-05  Richard Biener  <rguenther@suse.de>
16819
16820         PR tree-optimization/65310
16821         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
16822         Properly preserve alignment of the base of the access.
16823
16824 2015-03-05  Richard Biener  <rguenther@suse.de>
16825
16826         PR ipa/65270
16827         * ipa-icf-gimple.c (func_checker::compare_memory_operand):
16828         Compare dependence info.
16829
16830 2015-03-05  Richard Biener  <rguenther@suse.de>
16831
16832         PR middle-end/65233
16833         * ipa-polymorphic-call.c: Include tree-ssa-operands.h and
16834         tree-into-ssa.h.
16835         (walk_ssa_copies): Revert last chage.  Instead do not walk
16836         SSA names registered for SSA update.
16837
16838 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
16839
16840         PR ipa/65270
16841         * ipa-icf.c (sem_item::compare_cgraph_references): Compare
16842         vtable references for their containing type.
16843         (sem_function::equals_wpa): Compare TYPE_RESTRICT
16844         and type attributes.
16845
16846 2015-03-04  Eric Botcazou  <ebotcazou@adacore.com>
16847
16848         * fold-const.c (round_up_loc): Cast divisor to signed on all paths
16849         before negating it.
16850         * stor-layout.c (finalize_record_size): Revert latest change.
16851
16852 2015-03-04  Andreas Tobler  <andreast@gcc.gnu.org>
16853
16854         * config/rs6000/t-freebsd64: Remove 32-bit soft-float multilibs.
16855
16856 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
16857
16858         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p): Rewrite
16859         for correct comdat handling.
16860         (cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
16861         Likewise.
16862         * cgraph.h (call_for_symbol_and_aliases): Fix formating.
16863         (used_from_object_file_p_worker): Remove.
16864         (cgraph_node::only_called_directly_or_alised): Add
16865         used_from_object_file_p.
16866         * ipa-inline-analysis.c (growth_likely_positive): Optimie.
16867         * ipa-inline-transform.c (can_remove_node_now_p_1): Use
16868         can_remove_if_no_direct_calls_and_refs_p.
16869
16870 2015-03-04  Nick Clifton  <nickc@redhat.com>
16871
16872         * config/rl78/rl78.h (enum reg_class): Remove real registers from
16873         General register class.
16874         * config/rl78/rl78-real.md: Replace general register constraints
16875         with real+virtual register constraints.
16876
16877 2015-03-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16878
16879         * config/s390/s390.c (s390_expand_builtin): Exlude non-htm builtins
16880         from checking for -mhtm option.
16881
16882 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
16883
16884         * tree-sra.c (convert_callers): Use call_for_symbol_and_aliases.
16885         (struct ipa_sra_check_caller_data): Add has_thunk field.
16886         (ipa_sra_check_caller): Check for thunk.
16887         (ipa_sra_preliminary_function_checks): Give up on function with
16888         thunks.
16889         (ipa_early_sra): Use call_for_symbol_and_aliases.
16890
16891 2015-03-03  Kaz Kojima  <kkojima@gcc.gnu.org>
16892
16893         PR target/65249
16894         * config/sh/sh.md (symGOT_load): Use R0 reg for operands[2] when
16895         called for __stack_chk_guard symbol.
16896
16897 2015-03-03  DJ Delorie  <dj@redhat.com>
16898
16899         * config/rl78/rl78-real.md (*addqi_real): Allow SADDR types for
16900         inc/dec.
16901         (*addhi3_real): Likewise.
16902         * config/rl78/rl78-virt.md (*inc<mode>3_virt): Additional
16903         pattern to match incrementing memory.
16904         * config/rl78/predicates.md (rl78_1_2_operand): New.
16905         * config/rl78/rl78.c (rl78_force_nonfar_3): Allow far mem-mem if
16906         it's the same and only mem.
16907         (rl78_alloc_physical_registers_op2): If there's effectively only
16908         one MEM, transcode it into HL.
16909         (rl78_far_p): Reject addresses that aren't legitimate.
16910
16911 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
16912
16913         * fold-const.c (round_up_loc): Cast divisor to HOST_WIDE_INT before
16914         negating it.
16915
16916         * tree-sra.c (pa_sra_preliminary_function_checks): Fix typo in message.
16917
16918 2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
16919
16920         Implement call0 ABI for xtensa
16921         * config/xtensa/constraints.md ("a" constraint): Include stack
16922         pointer in case of call0 ABI.
16923         ("q" constraint): Make empty in case of call0 ABI.
16924         ("D" constraint): Include stack pointer in case of call0 ABI.
16925         * config/xtensa/xtensa-protos.h (xtensa_set_return_address,
16926         xtensa_expand_epilogue, xtensa_regno_to_class): Add new function
16927         prototypes.
16928         * config/xtensa/xtensa.c (xtensa_callee_save_size): New
16929         variable.
16930         (xtensa_regno_to_class): Make it a local variable in the
16931         function xtensa_regno_to_class.
16932         (xtensa_function_epilogue, TARGET_ASM_FUNCTION_EPILOGUE): Remove
16933         macro, function prototype and implementation.
16934         (reg_nonleaf_alloc_order): Make it a local variable in the
16935         function order_regs_for_local_alloc.
16936         (xtensa_conditional_register_usage): New function.
16937         (TARGET_CONDITIONAL_REGISTER_USAGE): Define macro.
16938         (xtensa_valid_move): Allow direct moves to stack pointer
16939         register in call0 ABI.
16940         (xtensa_setup_frame_addresses): Only spill register windows in
16941         windowed ABI.
16942         (xtensa_emit_call): Emit call(x)8 or call(x)0 in windowed and
16943         call0 ABI respectively.
16944         (xtensa_function_arg_1): Only mark a7 register for copying in
16945         windowed ABI.
16946         (xtensa_call_save_reg): New function.
16947         (compute_frame_size): Add space for callee saved register
16948         storage to the frame size in call0 ABI.
16949         (xtensa_expand_prologue): Generate code to set up stack frame
16950         and save callee-saved registers in call0 ABI.
16951         (xtensa_expand_epilogue): New function.
16952         (xtensa_set_return_address): New function.
16953         (xtensa_return_addr): Calculate return address in call0 ABI.
16954         (xtensa_builtin_saveregs): Only mark a7 register for copying and
16955         emit copying code in windowed ABI.
16956         (order_regs_for_local_alloc): Add preferred register allocation
16957         order for non-leaf function in call0 ABI.
16958         (xtensa_static_chain): Add atatic chain passing for call0 ABI.
16959         (xtensa_asm_trampoline_template): Add trampoline generation for
16960         call0 ABI.
16961         (xtensa_trampoline_init): Add trampoline initialization for
16962         call0 ABI.
16963         (xtensa_conditional_register_usage, xtensa_regno_to_class): New
16964         functions.
16965         * config/xtensa/xtensa.h (TARGET_WINDOWED_ABI): New macro.
16966         (TARGET_CPU_CPP_BUILTINS): Add built-in define for call0 ABI.
16967         (CALL_USED_REGISTERS): Modify to encode both windowed and call0
16968         ABI call-used registers.
16969         (HARD_FRAME_POINTER_REGNUM): Add frame pointer for call0 ABI.
16970         (INCOMING_REGNO, OUTGOING_REGNO): Use argument unchanged in
16971         call0 ABI.
16972         (REG_CLASS_CONTENTS): Include all registers into the preferred
16973         reload registers set, adjust the set in the
16974         xtensa_conditional_register_usage.
16975         (xtensa_regno_to_class): Drop variable declaration.
16976         (REGNO_REG_CLASS): Redefine to use xtensa_regno_to_class
16977         function.
16978         (WINDOW_SIZE): Define as 8 or 0 for windowed and call0 ABI
16979         respectively.
16980         (FUNCTION_PROFILER): Add _mcount call for call0 ABI.
16981         (TRAMPOLINE_SIZE): Define trampoline size for call0 ABI.
16982         (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 in call0 ABI.
16983         (ASM_OUTPUT_POOL_PROLOGUE): Always generate literal pool
16984         location in call0 ABI.
16985         (EH_RETURN_STACKADJ_RTX): New definition, use a10 for passing
16986         stack adjustment size when handling exception.
16987         (CRT_CALL_STATIC_FUNCTION): Add definition for call0 ABI.
16988         * config/xtensa/xtensa.md (A9_REG, UNSPECV_BLOCKAGE): New
16989         definitions.
16990         ("return" pattern): Generate ret.n/ret in call0 ABI.
16991         ("epilogue" pattern): Expand epilogue.
16992         ("nonlocal_goto" pattern): Use default in call0 ABI.
16993         ("eh_return" pattern): Move implementation to eh_set_a0_windowed,
16994         emit eh_set_a0_* depending on ABI.
16995         ("eh_set_a0_windowed" pattern): Former eh_return pattern.
16996         ("eh_set_a0_call0", "blockage"): New patterns.
16997
16998 2015-03-03  Martin Liska  <mliska@suse.cz>
16999
17000         PR ipa/65287
17001         * ipa-icf.c (sem_variable::parse): Skip all alias variables.
17002
17003 2015-03-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
17004
17005         PR 65138/target
17006         * config/rs6000/rs6000-tables.opt: Regenerate table.
17007
17008 2015-03-03  Renlin Li  <renlin.li@arm.com>
17009
17010         * doc/md.texi (@item ^): Change ? into ^.
17011
17012 2015-03-03  H.J. Lu  <hongjiu.lu@intel.com>
17013
17014         * doc/tm.texi: Regenerated.
17015
17016 2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
17017
17018         * builtins.c (expand_builtin_return_addr): Add
17019         RETURN_ADDR_IN_PREVIOUS_FRAME to 'if' condition, remove
17020         surrounding #ifdef.
17021         * config/sparc/sparc.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Change
17022         definition to 1.
17023         * config/xtensa/xtensa.h (RETURN_ADDR_IN_PREVIOUS_FRAME):
17024         Likewise.
17025         * defaults.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 if
17026         undefined.
17027         * doc/tm.texi.in (RETURN_ADDR_IN_PREVIOUS_FRAME): Update
17028         paragraph.
17029
17030 2015-03-03  Martin Jambor  <mjambor@suse.cz>
17031             Eric Botcazou  <ebotcazou@adacore.com>
17032
17033         * tree-sra.c (ipa_sra_check_caller_data): New type.
17034         (has_caller_p): Removed.
17035         (ipa_sra_check_caller): New function.
17036         (ipa_sra_preliminary_function_checks): Use it.
17037
17038 2015-03-03  Martin Liska  <mliska@suse.cz>
17039
17040         * ipa-icf.c (sem_item_optimizer::merge_classes): Use bit or
17041         instead of if branch.
17042
17043 2015-03-03  Martin Liska  <mliska@suse.cz>
17044
17045         PR ipa/65282
17046         * ipa-icf.c (sem_variable::equals): Fix wrong condition.
17047
17048 2015-03-23  Jeff Law  <law@redhat.com>
17049
17050         PR tree-optimization/65241
17051         * tree-ssa-dom.c (lookup_avail_expr): Only modify the avail_expr
17052         hash table if INSERT is true.
17053
17054 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
17055
17056         PR target/65296
17057         * config.gcc (extra_gcc_objs) [avr-*-rtems*]: Remove.
17058
17059 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
17060
17061         PR target/64331
17062         * config/avr/avr.c (context.h, tree-pass.h): Include them.
17063         (avr_pass_data_recompute_notes): New static variable.
17064         (avr_pass_recompute_notes): New class.
17065         (avr_register_passes): New static function.
17066         (avr_option_override): Call it.
17067
17068 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
17069
17070         Fix various problems with specs file generation.
17071
17072         PR target/65296
17073         * config.gcc (extra_gcc_objs) [avr]: Remove.
17074         * config/avr/driver-avr.c: Remove file.
17075         * config/avr/t-avr (driver-avr.o): Remove rule.
17076         (gen-avr-mmcu-specs): Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD and
17077         INCLUDES to build.  Depend on TM_H.
17078         * config/avr/gen-avr-mmcu-specs.c: Tidy up code.  Fix various
17079         build warnings.  Fix non-matching types and non-existing %-codes.
17080         (tm.h): Include.
17081         (*lib) [!WITH_AVRLIBC]: Don't link libdev.a.
17082         (*libgcc) [WITH_AVRLIBC]: Add "-lm".
17083         * config/avr/avrlibc.h (LIBGCC_SPEC): Remove definition.
17084         * config/avr/avr.h (DRIVER_SELF_SPECS): Fix handling of -march=.
17085         (CPP_SPEC, CC1PLUS_SPEC, ASM_SPEC, LINK_SPEC, LIB_SPEC)
17086         (LIBGCC_SPEC): Remove definitions.
17087
17088 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
17089
17090         * config/ia64/ia64.c (expand_vec_perm_interleave_2): Use gen_raw_REG
17091         to create a register in testing mode.
17092
17093 2015-03-03  Martin Liska  <mliska@suse.cz>
17094             Jan Hubicka  <hubicka@ucw.cz>
17095
17096         PR ipa/65263
17097         * cgraph.c (cgraph_node::has_thunk_p): New function.
17098         * cgraph.h (cgraph_node::has_thunk_p: Likewise.
17099         * ipa-icf.c (redirect_all_callers): Do not redirect thunks.
17100         (sem_function::merge): Assert is changed.
17101
17102 2015-03-03  Martin Liska  <mliska@suse.cz>
17103             Martin Jambor  <mjambor@suse.cz>
17104
17105         PR ipa/65087
17106         * ipa-icf.c (sem_item_optimizer::execute): Change function
17107         return value to boolean.
17108         (sem_item_optimizer::merge_classes): Likewise.
17109         (ipa_icf_driver): Return TODO_remove_functions in case there's
17110         a merge operation processed.
17111         * ipa-icf.h: Change function return value to boolean.
17112
17113 2015-03-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
17114
17115         PR 65138/target
17116         * config/rs6000/rs6000-cpus.def (powerpc64le): Add new generic
17117         processor type for 64-bit little endian PowerPC.
17118
17119         * config/rs6000/rs6000.c (rs6000_option_override_internal): If
17120         -mdebug=reg, print TARGET_DEFAULT.  Fix logic to use
17121         TARGET_DEFAULT if there is no default cpu.  Fix -mdebug=reg
17122         printing built-in mask so it does not pass NULL pointers.
17123
17124         * doc/invoke.texi (IBM RS/6000 and PowerPC options): Document
17125         -mcpu=powerpc64le.
17126
17127 2015-03-02  Steve Ellcey  <sellcey@imgtec.com>
17128
17129         PR target/58158
17130         * config/mips/mips.md (mov<mode>cc): Change ISA_HAS_SEL check to
17131         !ISA_HAS_FP_CONDMOVE.
17132
17133 2015-03-02  Aldy Hernandez  <aldyh@redhat.com>
17134
17135         * config/i386/i386.md (*udivmod<mode>4_pow2): Remove
17136         reload_completed.
17137
17138 2015-03-02  Ulrich Drepper  <drepper@gmail.com>
17139
17140         * doc/invoke.texi (Options for Code Generation Conventions):
17141         Fix URL of DSO paper.
17142
17143 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
17144
17145         PR ipa/65130
17146         * ipa-inline.c (check_callers): Looks for recursion.
17147         (inline_to_all_callers): Give up on uninlinable or recursive edges.
17148         * ipa-inline-analysis.c (inline_summary_t::duplicate): Do not update
17149         summary of inline clones.
17150         (do_estimate_growth_1): Fix recursion check.
17151
17152 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
17153
17154         PR ipa/64988
17155         * ipa-inline-transform.c (clone_inlined_nodes): Do not dissolve
17156         comdat groups.
17157
17158 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
17159             Aldy Hernandez  <aldyh@redhat.com>
17160
17161         PR lto/65276
17162         * ipa-devirt.c (add_type_duplicate): Remove odr_violated assert
17163         when checking TYPE_BINFO.
17164
17165 2015-03-02  Richard Biener  <rguenther@suse.de>
17166
17167         PR ipa/65270
17168         * ipa-icf-gimple.c: Include builtins.h.
17169         (func_checker::compare_memory_operand): Compare base alignment.
17170
17171 2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>
17172
17173         PR target/65184
17174         * gcc/config/i386/i386.c (ix86_pass_by_reference) Bounds
17175         are never passed by reference.
17176
17177 2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>
17178
17179         PR target/65183
17180         * tree-chkp.c (chkp_check_lower): Don't check against
17181         zero bounds for already instrumented functions.
17182         (chkp_check_upper): Likewise.
17183         (chkp_fini): Clean pass local data to avoid wrong reusage.
17184
17185 2015-02-28  Martin Liska  <mliska@suse.cz>
17186             Jan Hubicka  <hubicka@ucw.cz>
17187
17188         * ipa-icf.c (sem_variable::equals): Improve debug output;
17189         get variable constructor.
17190         (sem_variable::parse): Do not filter out too early; give up on
17191         volatile and register vars.
17192         (sem_item_optimizer::filter_removed_items): Filter out nonreadonly
17193         variables.
17194         * ipa-icf.h (sem_variable::init): Do not set ctor.
17195         (sem_variable::ctor): Remove.
17196
17197 2015-03-01  Aldy Hernandez  <aldyh@redhat.com>
17198
17199         PR middle-end/65233
17200         * ipa-polymorphic-call.c (walk_ssa_copies): Handle empty PHIs.
17201
17202 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
17203
17204         * ipa-icf.c: Include stor-layout.h
17205         (sem_function::compare_cgraph_references): Rename to ...
17206         (sem_item::compare_cgraph_references): ... this one.
17207         (sem_variable::equals_wpa): New function
17208         (sem_variable::equals): Do not check stuff already verified by
17209         equals_wpa.
17210         (sem_variable::equals): Reorg based on varasm.c:compare_constant.
17211         * ipa-icf.h (sem_item): Add compare_cgraph_references.
17212         (sem_function): Remove compare_cgraph_references.
17213         (sem_variable): Turns equals_wpa into non-inline.
17214
17215 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
17216
17217         * ipa-icf.c (sem_function::init): Fix formating; skip GIMPLE_PREDICT.
17218         (sem_item::add_expr): New function.
17219         (sem_function::hash_stmt): Handle operands of most statements.
17220         (sem_variable::get_hash): Hash the actual constructor.
17221         * ipa-icf.h (sem_item): Add add_expr.
17222         (sem_function): Update prototype of hash_stmt
17223
17224 2015-02-28  Martin Liska  <mliska@suse.cz>
17225             Jan Hubicka  <hubicka@ucw.cz>
17226
17227         PR ipa/65245
17228         * ipa-icf-gimple.c (func_checker::compare_function_decl):
17229         Remove.
17230         (func_checker::compare_variable_decl): Skip symtab vars.
17231         (func_checker::compare_cst_or_decl): Update.
17232         * ipa-icf.c (sem_function::parse): Do not consider aliases.
17233         (sem_function::compare_cgraph_references): Add ADDRESS parameter;
17234         use correct symtab predicates.
17235         (sem_function::equals_wpa): Update uses of compare_cgraph_references.
17236         (sem_variable::parse):  Update comment.
17237         (sem_item_optimizer::build_graph): Consider ultimate aliases
17238         for references.
17239
17240 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
17241
17242         * ipa-icf-gimple.c (func_checker::compare_operand): Fix handling
17243         of OBJ_TYPE_REF.
17244
17245 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
17246
17247         * ipa-icf.c (sem_function::merge): Fix handling of COMDAT.
17248         (sem_variable::merge) Likewise.
17249
17250 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
17251
17252         * ipa-inline.c (can_inline_edge_p): Match opt_for_fn on inline
17253         target; also match flag_ipa_devirt.
17254
17255 2015-03-01  Martin Liska  <mliska@suse.cz>
17256             Jan Hubicka  <hubicka@ucw.cz>
17257
17258         * ipa-icf-gimple.c (func_checker::compare_variable_decl):
17259         Validate variable alignment.
17260         * ipa-icf.c (sem_function::equals_private): Be more precise
17261         about non-common function attributes.
17262         (sem_variable::equals): Likewise.
17263
17264 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
17265
17266         PR ipa/65237
17267         * ipa-icf.c (sem_function::merge): Do not attempt to produce alias
17268         across COMDAT group boundary.
17269
17270 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
17271
17272         PR ipa/65232
17273         * ipa-icf.c (clear_decl_rtl): New function.
17274         (sem_function::merge): Clear RTL before forming alias.
17275         (sem_variable::merge): Clear RTL before forming alias.
17276
17277 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
17278
17279         PR ipa/65236
17280         * cgraphunit.c (cgraph_node::expand_thunk): Enable return slot opt.
17281
17282 2015-02-28  Xingxing Pan  <xxingpan@marvell.com>
17283
17284         * config/aarch64/aarch64.md: (mov<mode>_aarch64): Change type
17285         to neon_to_gp<q>.
17286
17287 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
17288
17289         * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): Fix
17290         a typo in the description.
17291
17292 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
17293
17294         PR target/64317
17295         * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
17296         * params.h (LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
17297         * lra-constraints.c: Include "params.h".
17298         (EBB_PROBABILITY_CUTOFF): Use
17299         LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF.
17300         (lra_inheritance): Use '<' instead of '<=' for
17301         EBB_PROBABILITY_CUTOFF.
17302         * doc/invoke.texi (lra-inheritance-ebb-probability-cutoff):
17303         Document change.
17304
17305 2015-02-27  Martin Liska  <mliska@suse.cz>
17306
17307         * ipa-icf.h (struct symbol_compare_hashmap_traits): Add missing
17308         vector length condition.
17309
17310 2015-02-27  Sandra Loosemore  <sandra@codesourcery.com>
17311
17312         * doc/extend.texi (x86 transactional memory intrinsics):
17313         Reorganize discussion of _xbegin.  Clarify that the return
17314         value is a bit mask.  Expand example and move to end of section.
17315
17316 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
17317             Aldy Hernandez  <aldyh@redhat.com>
17318
17319         PR rtl-optimization/65220
17320         * config/i386/i386.md (*udivmod<mode>4_pow2): New.
17321
17322 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
17323
17324         PR target/65032
17325         * lra-remat.c (update_scratch_ops): New.
17326         (do_remat): Call it.
17327         * lra.c (lra_register_new_scratch_op): New. Take code from ...
17328         (remove_scratches): ... here.
17329         * lra-int.h (lra_register_new_scratch_op): New prototype.
17330
17331 2015-02-27  Marek Polacek  <polacek@redhat.com>
17332
17333         PR c/65040
17334         * doc/invoke.texi: Update to reflect that -Wformat=2 doesn't enable
17335         -Wformat-signedness anymore.
17336
17337 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17338
17339         * config/s390/s390.c: (s390_atomic_assign_expand_fenv): New
17340         function.
17341         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define macro.
17342
17343 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17344
17345         * config/s390/s390.c (enum s390_builtin):
17346         Add S390_BUILTIN_S390_SFPC and S390_BUILTIN_S390_EFPC.
17347         (code_for_builtin): Add CODE_FOR_s390_sfpc and CODE_FOR_s390_efpc.
17348         (s390_init_builtins): Generate new builtin functions.
17349         * config/s390/s390.md (UNSPECV_SFPC, UNSPECV_EFPC): New constants.
17350         (s390_sfpc, s390_efpc): New pattern definitions.
17351
17352 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17353
17354         * config/s390/s390.c: (enum s390_builtin, s390_expand_builtin):
17355         Rename S390_BUILTIN_max to S390_BUILTIN_MAX.
17356         (s390_builtin_decls): New array.
17357         (s390_init_builtins): Put builtin decls into s390_builtin_decls.
17358         (s390_builtin_decl): New function.
17359         (TARGET_BUILTIN_DECL): Define macro.
17360
17361 2015-02-27  Richard Biener  <rguenther@suse.de>
17362
17363         PR middle-end/63175
17364         * builtins.c (get_object_alignment_2): Make sure to re-apply
17365         the ANDed mask after recursing to its operand gets us a new
17366         misalignment bit position.
17367
17368 2015-02-26  Jan Hubicka  <hubicka@ucw.cz>
17369             Martin Liska  <mliska@suse.cz>
17370
17371         PR bootstrap/65150
17372         * ipa-icf.c (symbol_compare_collection::symbol_compare_colleciton):
17373         Use address_matters_p.
17374         (redirect_all_callers, set_addressable): New functions.
17375         (sem_function::merge): Reorganize and fix merging issues.
17376         (sem_variable::merge): Likewise.
17377         (sem_variable::compare_sections): Remove.
17378         * common.opt (fmerge-all-constants, fmerge-constants): Remove
17379         Optimization flag.
17380         * symtab.c (symtab_node::resolve_alias): When alias has aliases,
17381         redirect them.
17382         (symtab_node::make_decl_local): Set ADDRESSABLE bit when
17383         decl is used.
17384         (address_matters_1): New function.
17385         (symtab_node::address_matters_p): New function.
17386         * cgraph.c (cgraph_edge::verify_corresponds_to_fndecl): Fix
17387         check for merged flag.
17388         * cgraph.h (address_matters_p): Declare.
17389         (symtab_node::address_taken_from_non_vtable_p): Remove.
17390         (symtab_node::address_can_be_compared_p): New method.
17391         (ipa_ref::address_matters_p): Move here from ipa-ref.c; simplify.
17392         * ipa-visibility.c (symtab_node::address_taken_from_non_vtable_p):
17393         Remove.
17394         (comdat_can_be_unshared_p_1) Use address_matters_p.
17395         (update_vtable_references): Fix formating.
17396         * ipa-ref.c (ipa_ref::address_matters_p): Move inline.
17397         * cgraphunit.c (cgraph_node::create_wrapper): Drop UNINLINABLE flag.
17398         * cgraphclones.c: Preserve merged and icf_merged flags.
17399
17400 2015-02-26  Sandra Loosemore  <sandra@codesourcery.com>
17401
17402         * doc/extend.texi (Function Attributes): Fix spelling and typos.
17403         (Label Attributes): Likewise.
17404         (Cilk Plus Builtins): Likewise.
17405         (ARC SIMD Built-in Functions): Likewise.
17406         (ARM C Language Extensions (ACLE)): Likewise.
17407         (PowerPC Built-in Functions): Likewise.
17408         (PowerPC Hardware Transactional Memory Built-in Functions):
17409         Likewise.
17410
17411 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
17412
17413         PR tree-optimization/65216
17414         * tree-ssa-reassoc.c (rewrite_expr_tree): Force creation of
17415         new stmt and new SSA_NAME for lhs whenever the arguments have
17416         changed and weren't just swapped.  Fix comment typo.
17417
17418         PR tree-optimization/65215
17419         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Return false
17420         for PDP endian targets.
17421         (perform_symbolic_merge, find_bswap_or_nop_1, find_bswap_or_nop):
17422         Fix up formatting issues.
17423         (bswap_replace): Likewise.  For BYTES_BIG_ENDIAN, if the final access
17424         size is smaller than the original, adjust MEM_REF offset by the
17425         difference of sizes.  Use is_gimple_mem_ref_addr instead of
17426         is_gimple_min_invariant test to avoid adding address temporaries.
17427
17428 2015-02-26  Martin Liska  <mliska@suse.cz>
17429             Jan Hubicka  <hubicka@ucw.cz>
17430
17431         PR ipa/64693
17432         * ipa-icf.c (symbol_compare_collection::symbol_compare_collection): New.
17433         (sem_item_optimizer::subdivide_classes_by_sensitive_refs): New function.
17434         (sem_item_optimizer::process_cong_reduction): Include division by
17435         sensitive references.
17436         * ipa-icf.h (struct symbol_compare_hashmap_traits): New class.
17437         * ipa-ref.c (ipa_ref::address_matters_p): New function.
17438         * ipa-ref.h (ipa_ref::address_matters_p): Likewise.
17439
17440 2015-02-26  Georg-Johann Lay  <avr@gjlay.de>
17441
17442         PR target/65192
17443         * config/avr/avr-protos.h (tiny_valid_direct_memory_access_range):
17444         Remove.
17445         * config/avr/avr.c: Same.
17446         (avr_legitimate_address_p) <AVR_TINY, CONSTANT_ADDRESS_P>:
17447         Refuse any constant address not in 0..0xbf.
17448         * config/avr/avr.md (*mov<mode>, *movsf): Remove
17449         tiny_valid_direct_memory_access_range from insn conditions.
17450         (mov<mode>): Don't special-case expansion of avrtiny addresses.
17451
17452 2015-02-26  Oleg Endo  <olegendo@gcc.gnu.org>
17453
17454         PR target/61142
17455         * config/sh/sh.c (sh_check_add_incdec_notes): New function.
17456         * config/sh/sh-protos.h (sh_check_add_incdec_notes): Declare it.
17457         * config/sh/predicates.md (const_logical_operand): New predicate.
17458         * config/sh/sh.md: Add new peephole2 patterns.
17459
17460 2015-02-26  Marek Polacek  <polacek@redhat.com>
17461
17462         PR ipa/65008
17463         * ipa-inline.c (early_inliner): Recompute inline parameters.
17464
17465 2015-02-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
17466
17467         PR target/65171
17468         * config/rs6000/rs6000.c (rs6000_analyze_swaps): Ensure
17469         instructions with TImode operands are included in the analysis.
17470
17471 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
17472
17473         * tree-ssa-threadupdate.c (dump_jump_thread_path): Print all edges
17474         of an EDGE_FSM_THREAD.
17475
17476 2015-02-25  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
17477
17478         * config/rs6000/htm.md (tcheck): Fix assembly encoding.
17479
17480 2015-02-25  Aldy Hernandez  <aldyh@redhat.com>
17481
17482         PR debug/46102
17483         * dwarf2out.c (dwarf2out_init): Disable -feliminate-dwarf2-dups.
17484
17485 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
17486
17487         PR tree-optimization/65048
17488         * tree-ssa-threadupdate.c (valid_jump_thread_path): New.
17489         (thread_through_all_blocks): Call valid_jump_thread_path.
17490         Remove invalid FSM jump-thread paths.
17491
17492 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
17493
17494         * passes.c (ipa_write_summaries_1): Call lto_output_init_mode_table.
17495         (ipa_write_optimization_summaries): Likewise.
17496         * tree-streamer.h: Include data-streamer.h.
17497         (streamer_mode_table): Declare extern variable.
17498         (bp_pack_machine_mode, bp_unpack_machine_mode): New inline functions.
17499         * lto-streamer-out.c (lto_output_init_mode_table,
17500         lto_write_mode_table): New functions.
17501         (produce_asm_for_decls): Call lto_write_mode_table when streaming
17502         offloading LTO.
17503         * lto-section-in.c (lto_section_name): Add "mode_table" entry.
17504         (lto_create_simple_input_block): Add mode_table argument to the
17505         lto_input_block constructors.
17506         * ipa-prop.c (ipa_prop_read_section, read_replacements_section):
17507         Likewise.
17508         * data-streamer-in.c (string_for_index): Likewise.
17509         * ipa-inline-analysis.c (inline_read_section): Likewise.
17510         * ipa-icf.c (sem_item_optimizer::read_section): Likewise.
17511         * lto-cgraph.c (input_cgraph_opt_section): Likewise.
17512         * lto-streamer-in.c (lto_read_body_or_constructor,
17513         lto_input_toplevel_asms): Likewise.
17514         (lto_input_mode_table): New function.
17515         * tree-streamer-out.c (pack_ts_fixed_cst_value_fields,
17516         pack_ts_decl_common_value_fields, pack_ts_type_common_value_fields):
17517         Use bp_pack_machine_mode.
17518         * real.h (struct real_format): Add name field.
17519         * lto-streamer.h (enum lto_section_type): Add LTO_section_mode_table.
17520         (class lto_input_block): Add mode_table member.
17521         (lto_input_block::lto_input_block): Add mode_table_ argument,
17522         initialize mode_table.
17523         (struct lto_file_decl_data): Add mode_table field.
17524         (lto_input_mode_table, lto_output_init_mode_table): New prototypes.
17525         * tree-streamer-in.c (unpack_ts_fixed_cst_value_fields,
17526         unpack_ts_decl_common_value_fields,
17527         unpack_ts_type_common_value_fields): Call bp_unpack_machine_mode.
17528         * tree-streamer.c (streamer_mode_table): New variable.
17529         * real.c (ieee_single_format, mips_single_format,
17530         motorola_single_format, spu_single_format, ieee_double_format,
17531         mips_double_format, motorola_double_format,
17532         ieee_extended_motorola_format, ieee_extended_intel_96_format,
17533         ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format,
17534         ibm_extended_format, mips_extended_format, ieee_quad_format,
17535         mips_quad_format, vax_f_format, vax_d_format, vax_g_format,
17536         decimal_single_format, decimal_double_format, decimal_quad_format,
17537         ieee_half_format, arm_half_format, real_internal_format): Add name
17538         field.
17539         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
17540
17541 2015-02-26  Yuri Rumyantsev  <ysrumyan@gmail.com>
17542
17543         PR target/65161
17544         * config/i386/i386.c (ix86_sched_reorder): Skip instruction
17545         reordering for selective scheduling.
17546
17547 2015-02-26  Terry Guo  <terry.guo@arm.com>
17548
17549         * config/arm/arm-cores.def (cortex-m7): Add flag FL_NO_VOLATILE_CE.
17550         * config/arm/arm-protos.h (FL_NO_VOLATILE_CE): New flag.
17551         (arm_arch_no_volatile_ce): Declare new global variable.
17552         * config/arm/arm.c (arm_arch_no_volatile_ce): New global variable.
17553         (arm_option_override): Assign value to arm_arch_no_volatile_ce.
17554         * config/arm/arm.h (arm_arch_no_volatile_ce): Declare it.
17555         (TARGET_NO_VOLATILE_CE): New macro.
17556         * config/arm/arm.md (arm_comparison_operator): Disabled if not allow
17557         volatile memory access in IT block
17558
17559 2015-02-25  Kai Tietz  <ktietz@redhat.com>
17560
17561         PR tree-optimization/61917
17562         * tree-vect-loop.c (vectorizable_reduction): Handle obvious case
17563         that reduc_def_stmt is null.
17564
17565 2015-02-25  Martin Liska  <mliska@suse.cz>
17566
17567         * ipa-icf-gimple.c (func_checker::compare_variable_decl): Compare
17568         hard register variables.
17569
17570 2015-02-25  Kai Tietz  <ktietz@redhat.com>
17571
17572         PR target/64212
17573         * symtab.c (symtab::make_decl_local): Set DECL_IMPORT_P explicit to 0.
17574         (symtab::noninterposable_alias): Likewise.
17575
17576 2015-02-25  Ilya Enkovich  <ilya.enkovich@intel.com>
17577
17578         PR target/65167
17579         * gcc/config/i386/i386.c (ix86_function_arg_regno_p): Support
17580         bounds registers.
17581         (avoid_func_arg_motion): Add dependencies for BNDSTX insns.
17582
17583 2015-02-25  Alan Lawrence  <alan.lawrence@arm.com>
17584
17585         PR target/64997
17586         * config/aarch64/aarch64.md (*xor_one_cmpl<mode>3): Use FP_REGNUM_P
17587         as split condition; force split via '#' in output pattern.
17588
17589 2015-02-25  Richard Biener  <rguenther@suse.de>
17590             Kai Tietz  <ktietz@redhat.com>
17591
17592         PR tree-optimization/61917
17593         * tree-vect-loop.c (vectorizable_reduction): Allow
17594         vect_internal_def without reduction to exit graceful.
17595
17596 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
17597
17598         PR target/65196
17599         * config/avr/avr.c (avr_adjust_insn_length): Call recog_memoized
17600         only with NONDEBUG_INSN_P.
17601
17602 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
17603
17604         Use variadic macros with avr-log.c.
17605
17606         * config/avr/avr-protos.h (avr_vdump): New prototype.
17607         (avr_log_set_caller_e, avr_log_set_caller_f): Remove protos.
17608         (avr_edump, avr_fdump, avr_dump): (Re)define to use avr_vdump.
17609         * config/avr/avr-log.c: Adjust comments.
17610         (avr_vdump): New function.
17611         (avr_vadump): Pass caller as 2nd argument instead of format string.
17612         (avr_log_caller, avr_log_fdump_e, avr_log_fdump_f)
17613         (avr_log_set_caller_e, avr_log_set_caller_f): Remove.
17614
17615 2015-02-25  Jakub Jelinek  <jakub@redhat.com>
17616
17617         PR lto/64374
17618         * target.def (target_option_stream_in): New target hook.
17619         * tree-streamer-in.c (streamer_read_tree_bitfields): Invoke
17620         targetm.target_option.post_stream_in if non-NULL.
17621         * doc/tm.texi.in: Add @hook TARGET_OPTION_POST_STREAM_IN.
17622         * doc/tm.texi: Updated.
17623         * config/i386/i386.c (ix86_function_specific_post_stream_in): New
17624         function.
17625         (TARGET_OPTION_POST_STREAM_IN): Redefine.
17626
17627 2015-02-24  Jeff Law  <law@redhat.com>
17628
17629         PR target/65117
17630         * config/xtensa/xtensa.md (zero_cost_loop_start): Reverse numbering
17631         of operand 0 and operand 2.
17632         (zero_cost_loop_end, loop_end): Similarly.
17633
17634 2015-02-24  Aldy Hernandez  <aldyh@redhat.com>
17635
17636         * gimple.h (gimple_build_assign): Rename CXX_MEM_STAT_DECL to
17637         CXX_MEM_STAT_INFO.
17638
17639 2015-02-24  DJ Delorie  <dj@redhat.com>
17640
17641         * config/rl78/rl78-protos.h (rl78_split_movsi): Accept a mode as well.
17642         * config/rl78/rl78-expand.md (movsf): New, same as movsi.
17643         * config/rl78/rl78.c (rl78_split_movsi): Accept a mode, use it
17644         instead of hardcoding SImode.
17645
17646 2015-02-24  Bernd Schmidt  <bernds@codesourcery.com>
17647
17648         * omp-low.c (create_omp_child_function): Tag entrypoint
17649         functions with a special attribute.
17650
17651 2015-02-24  Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
17652
17653         PR target/65058
17654         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Drop unused variable.
17655
17656 2015-02-24  Vladimir Makarov  <vmakarov@redhat.com>
17657
17658         PR rtl-optimization/65123
17659         * lra-remat.c (operand_to_remat): Check hard regs in insn
17660         definition too.
17661
17662 2015-02-24  Nick Clifton  <nickc@redhat.com>
17663
17664         * config/v850/v850.h (ASM_SPEC): Pass -msoft-float/-mhard-float on
17665         to the assembler.
17666
17667 2015-02-24  Thomas Schwinge  <thomas@codesourcery.com>
17668
17669         PR libgomp/64625
17670         * omp-builtins.def (BUILT_IN_GOACC_DATA_START): Specify as
17671         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR, not
17672         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR.
17673         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_UPDATE): Specify as
17674         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR, not
17675         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR.
17676         (BUILT_IN_GOACC_PARALLEL): Specify as
17677         BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR, not
17678         BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR.
17679         * builtin-types.def
17680         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
17681         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
17682         Remove function types.
17683         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR)
17684         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR)
17685         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
17686         New function types.
17687
17688 2015-02-24  Georg-Johann Lay  <avr@gjlay.de>
17689
17690         * config/avr/stdfix.h [__WITH_AVRLIBC__]: Include <stdfix-avrlibc.h>.
17691
17692 2015-02-24  Jakub Jelinek  <jakub@redhat.com>
17693
17694         PR tree-optimization/65170
17695         * wide-int.cc (wi::mul_internal): For the umul_ppmm optimization,
17696         if val[1] < 0, clear also val[2] and return 3.
17697
17698 2015-02-24  Alan Modra  <amodra@gmail.com>
17699
17700         PR target/65172
17701         * config/rs6000/rs6000.c (get_memref_parts): Only return true
17702         when *base is a reg.  Handle nested plus addresses.  Simplify
17703         pre_modify test.
17704
17705 2015-02-22  Max Filippov  <jcmvbkbc@gmail.com>
17706
17707         * config/xtensa/xtensa.h (CONSTANT_ALIGNMENT, DATA_ALIGNMENT):
17708         use natural alignment when optimizing for size.
17709
17710 2015-02-23  Kaz Kojima  <kkojima@gcc.gnu.org>
17711
17712         PR target/65153
17713         * config/sh/sh.md (movsicc_true+3): Remove peephole.
17714         * config/sh/sh-protos.h (replace_n_hard_rtx): Don't declare.
17715         * config/sh/sh.c (replace_n_hard_rtx): Remove.
17716
17717 2015-02-23  Richard Sandiford  <richard.sandiford@arm.com>
17718
17719         PR fortran/63427
17720         * wide-int.cc (wi::from_mpz): Cope with unwrapped values that are
17721         too big for a wide_int.  Implement missing wrapping operation.
17722
17723 2015-02-23  Oleg Endo  <olegendo@gcc.gnu.org>
17724
17725         PR target/65163
17726         * config/sh/sh.md (swapbsi2, related peephole2): Use const_int -65536
17727         instead of const_int 4294901760.
17728
17729 2015-02-23  Georg-Johann Lay  <avr@gjlay.de>
17730
17731         * config/avr/t-avr: Fix typo in comment.
17732
17733 2015-02-21  Richard Sandiford  <richard.sandiford@arm.com>
17734
17735         * doc/rtl.texi (fma): Clarify documentation.
17736
17737 2015-02-20  Aldy Hernandez  <aldyh@redhat.com>
17738
17739         PR debug/58123
17740         * gimplify.c (gimplify_expr): Prefer location of TRY_FINALLY_EXPR
17741         over input_location.
17742
17743 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
17744
17745         * tree-streamer-in.c (unpack_ts_decl_common_value_fields,
17746         unpack_ts_type_common_value_fields): If ACCEL_COMPILER,
17747         restrict alignments to absolute_biggest_alignment.
17748         * config/i386/i386.c (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT):
17749         Define.
17750         * doc/tm.texi.in (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT): Add.
17751         * doc/tm.texi: Regenerate.
17752         * target.def (absolute_biggest_alignment): New DEFHOOKPOD.
17753
17754 2015-02-20  Vladimir Makarov  <vmakarov@redhat.com>
17755
17756         PR target/64172
17757         * ira-color.c (color_pass): Prevent splitting multi-register pseudos.
17758
17759 2015-02-20  Richard Biener  <rguenther@suse.de>
17760
17761         PR tree-optimization/65136
17762         * tree-ssa-propagate.c: Include cfgloop.h.
17763         (replace_phi_args_in): Avoid replacing loop latch edge PHI
17764         arguments with constants.
17765
17766 2015-02-20  Jakub Jelinek  <jakub@redhat.com>
17767             Martin Liska  <mliska@suse.cz>
17768
17769         PR target/63892
17770         * ipa-icf.c (sem_function::merge): If DECL_COMDAT_GROUP (alias->decl),
17771         don't try to create_thunk if stdarg_p.  If
17772         !sem_item::target_supports_symbol_aliases_p (), similarly, and try to
17773         redirect_callers if possible.
17774         (sem_item_optimizer::execute): Call unregister_hooks here...
17775         (ipa_icf_driver): ... instead of here.
17776
17777 2015-02-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17778
17779         * config/aarch64/aarch64.md (*aarch64_lshr_sisd_or_int_<mode>3):
17780         Mark operand 0 as earlyclobber in 2nd alternative.
17781         (1st define_split below *aarch64_lshr_sisd_or_int_<mode>3):
17782         Write negated shift amount into QI lowpart operand 0 and use it
17783         in the shift step.
17784         (2nd define_split below *aarch64_lshr_sisd_or_int_<mode>3): Likewise.
17785
17786 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
17787
17788         * cgraph.h (clone_function_name_1): Declare.
17789         * cgraphclones.c (clone_function_name_1): New function.
17790         (clone_function_name): Use it.
17791         * lto-partition.c: Include "stringpool.h".
17792         (must_not_rename, maybe_rewrite_identifier)
17793         (validize_symbol_for_target): New static functions.
17794         (privatize_symbol_name): Use must_not_rename.
17795         (promote_symbol): Call validize_symbol_for_target.
17796         (lto_promote_cross_file_statics): Likewise.
17797         (lto_promote_statics_nonwpa): Likewise.
17798
17799 2015-02-20  Georg-Johann Lay  <avr@gjlay.de>
17800
17801         PR target/64452
17802         * config/avr/avr.md (pushhi_insn): New insn.
17803         (push<mode>1): Push virtual regs in one chunk using pushhi1_insn.
17804
17805 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
17806             Jakub Jelinek  <jakub@redhat.com>
17807
17808         * tree-streamer.c (preload_common_nodes): Don't preload
17809         TI_VA_LIST* for offloading.
17810         * tree-stdarg.c (pass_stdarg::gate): Disable for ACCEL_COMPILER
17811         in_lto_p.
17812
17813 2015-02-19  John David Anglin  <danlgin@gcc.gnu.org>
17814
17815         * config/pa/pa.c (pa_emit_move_sequence): Always force
17816         (const (plus (symbol) (const_int))) to const mem.  Put REG_EQUAL
17817         note on insn.
17818
17819         * config/pa/pa.c (pa_reloc_rw_mask): New function.
17820         (TARGET_ASM_RELOC_RW_MASK): Define.
17821         (pa_cannot_force_const_mem): Revert previous change.
17822
17823 2015-02-19  Martin Jambor  <mjmabor@suse.cz>
17824             Jan Hubicka  <hubicka@ucw.cz>
17825
17826         PR ipa/65028
17827         * ipa-cp.c (propagate_alignment_accross_jump_function): Fix propagation
17828         across jump functions.
17829
17830 2015-02-19  Uros Bizjak  <ubizjak@gmail.com>
17831
17832         * config/alpha/alpha.c (alpha_in_small_data_p): Reject common symbols.
17833
17834 2015-02-19  Sandra Loosemore  <sandra@codesourcery.com>
17835
17836         * doc/extend.texi (x86 transactional memory intrinsics): Copy-edit.
17837
17838 2015-02-19  Richard Henderson  <rth@redhat.com>
17839
17840         PR middle-end/65074
17841         * varasm.c (default_binds_local_p_2): Don't test node->definition;
17842         test DECL_EXTERNAL independent of symtab_node.
17843
17844 2015-02-19  Jakub Jelinek  <jakub@redhat.com>
17845
17846         PR lto/65012
17847         * varpool.c (varpool_node::get_constructor): Return early
17848         if this->lto_file_data is NULL.
17849
17850 2015-02-19  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
17851
17852         * haifa-sched.c (enum rfs_decision, rfs_str): Remove RFS_DEBUG.
17853         (rank_for_schedule_debug): Update.
17854         (ready_sort): Make static.  Move sorting logic to ...
17855         (ready_sort_debug, ready_sort_real): New static functions.
17856         (schedule_block): Sort both debug insns and real insns in preparation
17857         for ready list trimming.  Improve debug output.
17858         * sched-int.h (ready_sort): Remove global declaration.
17859
17860 2015-02-18  Trevor Saunders  <tsaunders@mozilla.com>
17861
17862         * ipa-icf.c (sem_function::equals_private): Adjust.
17863         (sem_function::bb_dict_test): Take a vec<int> * instead of
17864         auto_vec<int>.
17865         * ipa-icf.h (bb_dict_test): Likewise.
17866
17867 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
17868
17869         PR gcov-profile/64634
17870         * tree-eh.c (frob_into_branch_around): Fix up typos
17871         in function comment.
17872         (lower_catch): Put eh_seq resulting from EH lowering of
17873         the cleanup sequence after the cleanup rather than before it.
17874
17875 2015-02-18  Tom de Vries  <tom@codesourcery.com>
17876
17877         * common.opt (fstdarg-opt): New option.
17878         * tree-stdarg.c (pass_stdarg::gate): Use flag_stdarg_opt.
17879         * doc/invoke.texi (@item Optimization Options): Add -fstdarg-opt.
17880         (@item -fstdarg-opt): New item.
17881
17882 2015-02-18  H.J. Lu  <hongjiu.lu@intel.com>
17883
17884         PR target/65064
17885         * config/ia64/predicates.md (sdata_symbolic_operand): Return false
17886         for common symbols.
17887
17888 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
17889
17890         * config/i386/t-intelmic (mkoffload.o): Remove dependency on
17891         insn-modes.h.
17892         (ALL_HOST_OBJS): Add mkoffload.o.
17893         * config/nvptx/t-nvptx (ALL_HOST_OBJS): Likewise.
17894
17895 2015-02-18  Jan Hubicka  <hubicka@ucw.cz>
17896
17897         * ipa-devirt.c (odr_subtypes_equivalent_p): Fix formating.
17898         (compare_virtual_tables): Be smarter about skipping typeinfos;
17899         do sane output on virtual table table mismatch.
17900         (warn_odr): Be ready for forward declarations of enums;
17901         output sane info on base mismatch and virtual table mismatch.
17902         (add_type_duplicate): Fix code choosing prevailing type; do not ICE
17903         when only one type is polymorphic.
17904         (get_odr_type): Fix hashtable corruption.
17905         (dump_odr_type): Dump mangled names.
17906
17907 2015-02-18  Richard Biener  <rguenther@suse.de>
17908
17909         PR tree-optimization/65063
17910         * tree-predcom.c (determine_unroll_factor): Return 1 if we
17911         have replaced looparound PHIs.
17912
17913 2015-02-18  Martin Liska  <mliska@suse.cz>
17914
17915         * lto-streamer.c (lto_streamer_init): Encapsulate
17916         streamer_check_handled_ts_structures with checking macro.
17917
17918 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
17919
17920         PR ipa/65087
17921         * cgraphclones.c (cgraph_node::create_virtual_clone): Only copy
17922         section if !implicit_section.
17923         (cgraph_node::create_version_clone_with_body): Likewise.
17924         * trans-mem.c (ipa_tm_create_version): Likewise.
17925
17926 2015-02-18  Richard Biener  <rguenther@suse.de>
17927
17928         PR tree-optimization/62217
17929         * tree-ssa-dom.c (cprop_operand): Avoid propagating copies
17930         into BIVs.
17931
17932 2015-02-18  Marek Polacek  <polacek@redhat.com>
17933
17934         PR sanitizer/65081
17935         * ubsan.c (OBJSZ_MAX_OFFSET): Define.
17936         (ubsan_expand_objsize_ifn): Don't emit run-time check if the offset
17937         is in range [-16K, -1].  Don't issue run-time error if
17938         (ptr > ptr + offset).
17939
17940 2015-02-18  Thomas Schwinge  <thomas@codesourcery.com>
17941
17942         * doc/install.texi (nvptx-*-none): New section.
17943         * doc/invoke.texi (Nvidia PTX Options): Likewise.
17944         * config/nvptx/nvptx.opt: Update.
17945
17946         * config/nvptx/mkoffload.c (parse_env_var, free_array_of_ptrs)
17947         (access_check): New functions, copied from
17948         config/i386/intelmic-mkoffload.c.
17949         (main): For non-installed testing, look in all COMPILER_PATHs for
17950         GCC_INSTALL_NAME.
17951
17952         * config/nvptx/nvptx.h (GOMP_SELF_SPECS): Define macro.
17953
17954 2015-02-18  Andrew Pinski  <apinski@cavium.com>
17955             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
17956
17957         * config/aarch64/aarch64.c (*aarch64_load_symref_appropriately):
17958         Check whether the destination of SYMBOL_SMALL_TPREL is Pmode.
17959
17960 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
17961
17962         * ipa-visibility.c (function_and_variable_visibility): Only
17963         check locality if node is not already local.
17964         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
17965         call_for_symbol_and_aliases instead of
17966         call_for_symbol_thunks_and_aliases.
17967         (ipa_inline): Likewise.
17968         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
17969         first walk aliases.
17970         * ipa.c (symbol_table::remove_unreachable_nodes): Use
17971         call_for_symbol_and_aliases.
17972         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
17973         (ipa_propagate_frequency_1): Use it; use opt_for_fn
17974         (ipa_propagate_frequency): Update.
17975         (ipa_profile): Add opt_for_fn gueards.
17976
17977 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
17978
17979         * config/sh/sh.opt (mcbranch-force-delay-slot): New option.
17980         * doc/invoke.texi (SH options): Document it.
17981         * config/sh/sh.c (sh_insn_length_adjustment): Check
17982         TARGET_CBRANCH_FORCE_DELAY_SLOT instead of sh_cpu_attr == CPU_SH2E.
17983
17984 2015-02-17  H.J. Lu  <hongjiu.lu@intel.com>
17985
17986         * common.opt (fipa-cp-alignment): New.
17987         * ipa-cp.c (ipcp_store_alignment_results): Check
17988         flag_ipa_cp_alignment.
17989         * opts.c (default_options_table): Enable -fipa-cp-alignment for
17990         -O2.
17991         (enable_fdo_optimizations): Set x_flag_ipa_cp_alignment.
17992         * doc/invoke.texi: Document -fipa-cp-alignment.
17993
17994 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
17995
17996         PR target/64793
17997         * config/sh/sh.md (cbranch define_delay): Set annulled true branch insn
17998         to nil.  Adjust comments.
17999
18000 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
18001
18002         * ipa-visibility.c (function_and_variable_visibility): Only
18003         check locality if node is not already local.
18004         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
18005         call_for_symbol_and_aliases instead of
18006         call_for_symbol_thunks_and_aliases.
18007         (ipa_inline): Likewise.
18008         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
18009         first walk aliases.
18010         * ipa.c (symbol_table::remove_unreachable_nodes): Use
18011         call_for_symbol_and_aliases.
18012         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
18013         (ipa_propagate_frequency_1): Use it; use opt_for_fn
18014         (ipa_propagate_frequency): Update.
18015         (ipa_profile): Add opt_for_fn guards.
18016
18017 2015-02-17  Thomas Schwinge  <thomas@codesourcery.com>
18018
18019         * config/nvptx/mkoffload.c (parse_file): Fix logic error in
18020         skipping of "strange" tokens.
18021
18022 2015-02-17  Jeff Law  <law@redhat.com>
18023
18024         * tree-vrp.c (identify_jump_threads): Use last_stmt.  Remove
18025         obsolete comment.
18026
18027 2015-02-17  James Greenhalgh  <james.greenhalgh@arm.com>
18028
18029         * haifa-sched.c (recompute_todo_spec): Treat SCHED_GROUP_P
18030         as forcing a HARD_DEP between instructions, thereby
18031         disallowing rewriting to break dependencies.
18032
18033 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
18034
18035         * symtab.c (symtab_node::verify_base): Verify body_removed->!definiton
18036         * lto-cgraph.c (lto_output_varpool_node): Do not keep definition of
18037         variables in boundary that have no inlitalizer encoded and are
18038         not aliases.
18039         * varasm.c (default_binds_local_p_2): External definitions do not
18040         count as definitions here.
18041
18042 2015-02-16  Jeff Law  <law@redhat.com>
18043
18044         PR tree-optimization/64823
18045         * tree-vrp.c (identify_jump_threads): Handle blocks with no real
18046         statements.
18047         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
18048         threading through blocks with PHIs, but no statements.
18049         (thread_through_normal_block): Distinguish between blocks where
18050         we did not process all the statements and blocks with no statements.
18051
18052 2015-02-16  Jakub Jelinek  <jakub@redhat.com>
18053             James Greenhalgh  <james.greenhalgh@arm.com>
18054
18055         PR ipa/64963
18056         * cgraphclones.c (cgraph_node::create_virtual_clone): Copy
18057         section if not linkonce.  Fix up formatting.
18058         (cgraph_node::create_version_clone_with_body): Copy section.
18059         * trans-mem.c (ipa_tm_create_version): Likewise.
18060
18061 2015-02-16  Richard Biener  <rguenther@suse.de>
18062
18063         PR tree-optimization/65077
18064         * tree-ssa-structalias.c (get_constraint_for_1): Handle
18065         IMAGPART_EXPR, REALPART_EXPR and BIT_FIELD_REF.
18066         (find_func_aliases): Allow float values to carry pointers again.
18067
18068 2015-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
18069
18070         * doc/install.texi (Specific): Reorder targets list to put
18071         aarch64 in alphabetical order.  Add a link to aarch64*-*-*
18072         from the top menu.
18073
18074 2015-02-16  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
18075             David Edelsohn  <dje.gcc@gmail.com>
18076
18077         PR target/65058
18078         * config/rs6000/rs6000.c (rs6000_output_symbol_ref): Append storage
18079         mapping class to external variable or function reference.
18080         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Do not append storage
18081         mapping class.
18082
18083 2015-02-16  David Eelsohn  <dje.gcc@gmail.com>
18084
18085         PR target/53348
18086         * config/rs6000/rs6000.c (rs6000_declare_alias): Only use
18087         ASM_WEAKEN_DECL if defined.
18088
18089 2015-02-16  Richard Biener  <rguenther@suse.de>
18090
18091         PR lto/65015
18092         * varasm.c (default_file_start): For LTO produced units
18093         emit <artificial> as file directive.
18094
18095 2015-02-16  Richard Biener  <rguenther@suse.de>
18096
18097         PR tree-optimization/63593
18098         * tree-predcom.c (execute_pred_commoning_chain): Delay removing
18099         stmts and releasing SSA names until...
18100         (execute_pred_commoning): ... after processing all chains.
18101
18102 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
18103
18104         PR ipa/65059
18105         * ipa-comdats.c (ipa_comdats): Do not categorize thunks to
18106         external functions.
18107
18108 2015-02-15  Sandra Loosemore  <sandra@codesourcery.com>
18109
18110         * doc/bugreport.texi: Adjust section titles throughout the file
18111         to use "Title Case".
18112         * doc/extend.texi: Likewise.
18113         * doc/gcov.texi: Likewise.
18114         * doc/implement-c.texi: Likewise.
18115         * doc/implement-cxx.texi: Likewise.
18116         * doc/invoke.texi: Likewise.
18117         * doc/objc.texi: Likewise.
18118         * doc/standards.texi: Likewise.
18119         * doc/trouble.texi: Likewise.
18120
18121 2015-02-15  Jan Hubicka  <hubicka@ucw.cz>
18122
18123         * cgraph.h (symtab_node::has_aliases_p): Simplify.
18124         (symtab_node::call_for_symbol_and_aliases): Use has_aliases_p
18125         * tree.c (lookup_binfo_at_offset): Make static.
18126         (get_binfo_at_offset): Do not shadow offset; add explanatory
18127         comment.
18128
18129 2015-02-15  John David Anglin  <danglin@gcc.gnu.org>
18130
18131         * config/pa/pa.c (pa_secondary_reload): Request a secondary reload
18132         for all floading point loads and stores except those using a register
18133         index address.
18134         * config/pa/pa.md: Add new patterns to load a lo_sum DLT operand
18135         to a register.
18136
18137 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
18138
18139         * ipa-inline-analysis.c (growth_data): Add uninlinable field.
18140         (do_estimate_growth_1): Record if any uninlinable edge was seen.
18141         (estimate_growth): Handle uninlinable edges correctly.
18142         (check_callers): New.
18143         (growth_likely_positive): Handle aliases correctly.
18144
18145 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
18146
18147         * ipa-chkp.c: Use iterate_direct_aliases.
18148         * symtab.c (resolution_used_from_other_file_p): Move inline.
18149         (symtab_node::create_reference): Fix formating.
18150         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
18151         (symtab_node::iterate_reference): Move inline.
18152         (symtab_node::iterate_referring): Move inline.
18153         (symtab_node::iterate_direct_aliases): Move inline.
18154         (symtab_node::used_from_object_file_p_worker): Inline into ...
18155         (symtab_node::used_from_object_file_p): ... this one; move inline.
18156         (symtab_node::call_for_symbol_and_aliases): Move inline;
18157         use iterate_direct_aliases.
18158         (symtab_node::call_for_symbol_and_aliases_1): New method.
18159         (cgraph_node::call_for_symbol_and_aliases): Move inline;
18160         use iterate_direct_aliases.
18161         (cgraph_node::call_for_symbol_and_aliases_1): New method.
18162         (varpool_node::call_for_node_and_aliases): Rename to ...
18163         (varpool_node::call_for_symbol_and_aliases): ... this one; Move inline;
18164         use iterate_direct_aliases.
18165         (varpool_node::call_for_symbol_and_aliases_1): New method.
18166         * ipa.c (ipa_single_use): Use iterate_direct_aliases.
18167         (ipa_discover_readonly_nonaddressable_var): Update.
18168         * ipa-devirt.c: Fix formating.
18169         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_and_refs_p):
18170         Move inline.
18171         (cgraph_node::call_for_symbol_and_aliases): Move inline.
18172         (cgraph_node::call_for_symbol_and_aliases_1): New function..
18173         * cgraph.h (used_from_object_file_p_worker): Remove.
18174         (resolution_used_from_other_file_p): Move inline.
18175         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
18176         (symtab_node::iterate_reference): Move inline.
18177         (symtab_node::iterate_referring): Move inline.
18178         (symtab_node::iterate_direct_aliases): Move inline.
18179         (symtab_node::used_from_object_file_p_worker): Inline into ...
18180         (symtab_node::used_from_object_file_p): Move inline.
18181         * tree-emutls.c (ipa_lower_emutls): Update.
18182         * varpool.c (varpool_node::call_for_symbol_and_aliases_1): New method.
18183         (varpool_node::call_for_node_and_aliases): Remove.
18184
18185 2015-02-14  Jakub Jelinek  <jakub@redhat.com>
18186
18187         PR tree-optimization/62209
18188         * tree-ssa-reassoc.c (update_range_test): If stmt is a PHI and
18189         op == range->exp, insert seq and gimplified code after labels
18190         instead of after the phi.
18191
18192 2015-02-13  Jeff Law  <law@redhat.com>
18193
18194         PR bootstrap/65060
18195         Revert my change for tree-optimization/64823.
18196
18197 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
18198
18199         PR tree-optimization/65053
18200         * tree-ssa-phiopt.c (value_replacement): When moving assign before
18201         cond, either reset VR on lhs or set it to phi result VR.
18202
18203 2015-02-13  Jeff Law  <law@redhat.com>
18204
18205         PR tree-optimization/64823
18206         * tree-vrp.c (identify_jump_threads): Handle blocks with no statements.
18207         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
18208         threading through blocks with PHIs, but no statements.
18209         (thread_through_normal_block): Distinguish between blocks where
18210         we did not process all the statements and blocks with no statements.
18211
18212         PR rtl-optimization/47477
18213         * match.pd (convert (plus/minus (convert @0) (convert @1): New
18214         simplifier to narrow arithmetic.
18215
18216 2015-02-13  Jan Hubicka  <hubicka@ucw.cz>
18217
18218         PR ipa/65028
18219         * ipa-prop.c (update_indirect_edges_after_inlining): Do not drop
18220         polymorphic call info when type is not known to be preserved.
18221
18222 2015-02-13  Maritn Jambor  <mjambor@suse.cz>
18223
18224         PR ipa/65028
18225         * ipa-inline-transform.c (mark_all_inlined_calls_cdtor): New function.
18226         (inline_call): Use it.
18227
18228 2015-02-13  Thomas Schwinge  <thomas@codesourcery.com>
18229
18230         * config/nvptx/offload.h (ACCEL_COMPILER_acc_device): Define to
18231         GOMP_DEVICE_NVIDIA_PTX.
18232
18233 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
18234
18235         PR ipa/65034
18236         * stmt.c (emit_case_nodes): Use void_type_node instead of
18237         NULL_TREE as LABEL_DECL type.
18238
18239 2015-02-13  John David Anglin  <danglin@gcc.gnu.org>
18240
18241         * config/pa/constraints.md: Change "Q" and "T" constraints to memory
18242         constraints.
18243         * config/pa/pa.c (pa_cannot_force_const_mem): Don't allow constant
18244         symbolic references to data to be forced to constant memory on the
18245         SOM target.
18246
18247 2015-02-13  Ilya Enkovich  <ilya.enkovich@intel.com>
18248
18249         PR tree-optimization/65002
18250         * tree-cfg.c (pass_data_fixup_cfg): Don't update
18251         SSA on start.
18252         * tree-sra.c (some_callers_have_no_vuse_p): New.
18253         (ipa_early_sra): Reject functions whose callers
18254         assume function is read only.
18255
18256 2015-02-13  Richard Biener  <rguenther@suse.de>
18257
18258         PR lto/65015
18259         * dwarf2out.c (dwarf2out_finish): Use <artificial> as DW_AT_name
18260         for LTO produced CUs.
18261
18262 2015-02-13  Bin Cheng  <bin.cheng@arm.com>
18263
18264         PR tree-optimization/64705
18265         * tree-ssa-loop-niter.h (expand_simple_operations): New parameter.
18266         * tree-ssa-loop-niter.c (expand_simple_operations): New parameter.
18267         * tree-ssa-loop-ivopts.c (extract_single_var_from_expr): New.
18268         (find_bivs, find_givs_in_stmt_scev): Pass new argument to
18269         expand_simple_operations.
18270
18271 2015-02-13  H.J. Lu  <hongjiu.lu@intel.com>
18272             Richard Henderson  <rth@redhat.com>
18273
18274         PR rtl/32219
18275         * cgraphunit.c (cgraph_node::finalize_function): Set definition
18276         before notice_global_symbol.
18277         (varpool_node::finalize_decl): Likewise.
18278         * varasm.c (default_binds_local_p_2): Rename from
18279         default_binds_local_p_1, add weak_dominate argument.  Use direct
18280         returns instead of assigning to local variable.  Unify varpool and
18281         cgraph paths via symtab_node.  Reject undef weak variables before
18282         testing visibility.  Reorder tests for simplicity.
18283         (default_binds_local_p): Use default_binds_local_p_2.
18284         (default_binds_local_p_1): Likewise.
18285         (decl_binds_to_current_def_p): Unify varpool and cgraph paths
18286         via symtab_node.
18287         (default_elf_asm_output_external): Emit visibility when specified.
18288
18289 2015-02-13  Alan Modra  <amodra@gmail.com>
18290
18291         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Fix typo in
18292         code setting up r11 for out-of-line fp restore.
18293
18294 2015-02-13  Eric Botcazou  <ebotcazou@adacore.com>
18295
18296         * config/visium/visium.opt (msv-mode): Add RejectNegative and Report.
18297         (muser-mode): Likewise.
18298
18299 2015-02-13  Alan Modra  <amodra@gmail.com>
18300
18301         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Use addsi3_carry
18302         or adddi3_carry when restoring frame_reg_rtx from r0 after restvr.
18303
18304 2015-02-12  David Howells  <dhowells@redhat.com>
18305
18306         * tree-sra.c (dump_dereferences_table): Avoid -Wformat-security
18307         warning.
18308         * tree-ssa-uninit.c (dump_predicates): Likewise.
18309         * opts.c (print_filtered_help): Likewise.
18310
18311 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
18312
18313         * dwarf2out.c (output_die): Use "%s", name instead of name to
18314         avoid -Wformat-security warning.
18315
18316         * dwarf2asm.c (dw2_asm_output_vms_delta): Only define
18317         if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
18318         * dwarf2out.c (output_die): Use dw2_asm_output_vms_delta
18319         only if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
18320
18321 2015-02-12  Jason Merrill  <jason@redhat.com>
18322
18323         * common.opt (-flifetime-dse): New.
18324
18325 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
18326
18327         PR sanitizer/65019
18328         * ubsan.c (ubsan_expand_objsize_ifn): Always return true.
18329
18330         PR tree-optimization/65014
18331         * fold-const.c (fold_binary_loc): When creating {L,R}ROTATE_EXPR,
18332         use original second operand of arg0 or arg1 instead of
18333         that adjusted by STRIP_NOPS.
18334
18335 2015-02-11  Jeff Law  <law@redhat.com>
18336
18337         PR target/63347
18338         * haifa-sched.c (prune_ready_list): If we have a SCHED_GROUP_P insn
18339         that needs to be queued, just queue it for a single cycle.
18340
18341 2015-02-11  Jan Hubicka  <hubicka@ucw.cz>
18342
18343         * ipa.c (symbol_table::remove_unreachable_nodes): Avoid releasing
18344         bodies of thunks; comment on why.
18345         * symtab.c (symtab_node::get_partitioning_class): Aliases of extern
18346         symbols are extern.
18347
18348 2015-02-11  Richard Henderson  <rth@redhat.com>
18349
18350         PR sanitize/65000
18351         * tree-eh.c (mark_reachable_handlers): Mark source and destination
18352         regions of __builtin_eh_copy_values.
18353
18354 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
18355
18356         PR middle-end/65003
18357         * varasm.c (place_block_symbol): Assert that DECL_RTL of the
18358         ultimate alias is MEM with SYMBOL_REF satisfying
18359         SYMBOL_REF_HAS_BLOCK_INFO_P as its operand.  Don't pass the MEM
18360         to place_block_symbol, but instead pass the SYMBOL_REF operand of it.
18361
18362 2015-02-11  Thomas Schwinge  <thomas@codesourcery.com>
18363
18364         * config/nvptx/mkoffload.c: Include "diagnostic.h" instead of
18365         "diagnostic-core.h".
18366         (main): Initialize progname, and call diagnostic_initialize.
18367
18368         * config/nvptx/mkoffload.c (process): Refer to __OFFLOAD_TABLE__
18369         instead of __OPENMP_TARGET__.
18370
18371         * config/nvptx/mkoffload.c: Include "gomp-constants.h".
18372         (process): Use its GOMP_DEVICE_NVIDIA_PTX instead of (wrongly)
18373         hard-coding PTX_ID.
18374
18375 2015-02-11  H.J. Lu  <hongjiu.lu@intel.com>
18376
18377         * doc/sourcebuild.texi (pie_enabled): Document.
18378
18379 2015-02-11  Martin Liska  <mliska@suse.cz>
18380
18381         PR ipa/64813
18382         * cgraphunit.c (cgraph_node::expand_thunk): Do not create
18383         a return value for call to a function that is noreturn.
18384
18385 2015-02-11  Richard Biener  <rguenther@suse.de>
18386
18387         PR lto/65015
18388         * dwarf2out.c (gen_producer_string): Drop -fltrans-output-list
18389         and -fresolution.
18390
18391 2015-02-11  Andrew Pinski  <apinski@cavium.com>
18392
18393         PR target/64893
18394         * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
18395         Change the first argument type to size_type_node and add another
18396         size_type_node.
18397         (aarch64_simd_expand_builtin): Handle the new argument to
18398         AARCH64_SIMD_BUILTIN_LANE_CHECK and don't ICE but rather
18399         print an out when the first two arguments are not
18400         nonzero integer constants.
18401         * config/aarch64/arm_neon.h (__AARCH64_LANE_CHECK):
18402         Pass the sizeof directly to __builtin_aarch64_im_lane_boundsi.
18403
18404 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
18405
18406         PR target/61925
18407         * config/i386/i386.c (ix86_reset_to_default_globals): Removed.
18408         (ix86_reset_previous_fndecl): Restore it here, unconditionally.
18409         (ix86_set_current_function): Rewritten.
18410         (ix86_add_new_builtins): Temporarily clear current_target_pragma
18411         when creating builtin fndecls.
18412
18413 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
18414
18415         PR ipa/65005
18416         * ipa-visibility.c (cgraph_node::non_local_p): Turn into static
18417         function.
18418         * symtab.c (symtab_node::verify_base): Remove check that non-definitions
18419         have no comdat group.
18420         * lto-cgraph.c (lto_output_node): Always output thunk and alias info.
18421         (lto_output_varpool_node): Always output alias info.
18422         (output_refs): Output refs of boundary aliases, too.
18423         (compute_ltrans_boundary): Add alias and thunk target into boundaries.
18424         (output_symtab): Output call eges in thunks in boundary.
18425         (get_alias_symbol): Remove.
18426         (input_node, input_varpool_node): Do not special case weakrefs.
18427         * ipa.c (symbol_table::remove_unreachable_nodes): Do not remove
18428         alias and thunks targets in the boundary; do not take removed symbols
18429         from their comdat groups.
18430         * cgraph.c (cgraph_node::local_info): Look through aliases and thunks.
18431         (cgraph_node::global_info): Remove.
18432         (cgraph_node::rtl_info): Look through aliases and thunks.
18433         * cgrpah.h (global_info): Remove.
18434         (non_local_p): Remove.
18435
18436 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
18437             Sandra Loosemore  <sandra@codesourcery.com>
18438
18439         * doc/invoke.texi (x86 Options [-masm=dialect]): Add cross-references
18440         to inline asm.  List dialects in proper order.
18441
18442 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
18443             Sandra Loosemore  <sandra@codesourcery.com>
18444
18445         * doc/extend.texi (Loop-Specific Pragmas): Fix grammar error.
18446
18447 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
18448
18449         * doc/extend.texi (Symbol-Renaming Pragmas): Restore (slightly
18450         modified) reference to Solaris.
18451
18452 2015-02-10  Sandra Loosemore  <sandra@codesourcery.com>
18453
18454         * doc/extend.texi (Extended Asm): Fix typos.
18455
18456 2015-02-10  Jakub Jelinek  <jakub@redhat.com>
18457
18458         PR sanitizer/65004
18459         * ubsan.c (ubsan_expand_vptr_ifn): Always return true.
18460
18461 2015-02-10  Oleg Endo  <olegendo@gcc.gnu.org>
18462
18463         PR target/64661
18464         * config/sh/sh-protos.h (TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
18465         TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
18466         TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): Add parentheses.
18467         * config/sh/constraints.md (Ara, Add): New constraints.
18468         * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1): New
18469         predicates.
18470         (atomic_compare_and_swap<mode>, atomic_exchange<mode>): Use
18471         atomic_mem_operand_0.  Don't use force_reg on the memory address.
18472         (atomic_compare_and_swapsi_hard): Use atomic_mem_operand_0 predicate and
18473         Sra constraint.  Convert to insn_and_split.  Add workaround for
18474         PR 64974.
18475         (atomic_compare_and_swap<mode>_hard): Copy to
18476         atomic_compare_and_swap<mode>_hard_1.  Convert to insn_and_split.
18477         Use atomic_mem_operand_0 predicate.
18478         (atomic_compare_and_swap<mode>_soft_gusa,
18479         atomic_exchange<mode>_soft_gusa): Use atomic_mem_operand_0 predicate and
18480         AraAdd constraints.
18481         (atomic_compare_and_swap<mode>_soft_tcb,
18482         atomic_compare_and_swap<mode>_soft_imask,
18483         atomic_exchange<mode>_soft_tcb, atomic_exchange<mode>_soft_imask): Use
18484         atomic_mem_operand_0 predicate and SraSdd constraints.
18485         (atomic_exchangesi_hard) Use atomic_mem_operand_0 predicate and Sra
18486         constraint.
18487         (atomic_exchange<mode>_hard): Copy to atomic_exchange<mode>_hard_1.
18488         Convert to insn_and_split.  Use atomic_mem_operand_0 predicate.
18489         (atomic_fetch_<fetchop_name><mode>, atomic_fetch_nand<mode>,
18490         atomic_<fetchop_name>_fetch<mode>): Use atomic_mem_operand_1.  Don't use
18491         force_reg on the memory address.
18492         (atomic_fetch_<fetchop_name>si_hard, atomic_fetch_notsi_hard,
18493         atomic_fetch_nandsi_hard, atomic_<fetchop_name>_fetchsi_hard,
18494         atomic_not_fetchsi_hard, atomic_nand_fetchsi_hard): Use
18495         atomic_mem_operand_1 predicate and Sra constraint.
18496         (atomic_fetch_<fetchop_name><mode>_hard): Copy to
18497         atomic_fetch_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
18498         Use atomic_mem_operand_1 predicate.
18499         (atomic_<fetchop_name><mode>_hard): Copy to
18500         atomic_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
18501         Use atomic_mem_operand_1 predicate.
18502         (atomic_fetch_nand<mode>_hard): Copy to atomic_fetch_nand<mode>_hard_1.
18503         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
18504         (atomic_nand<mode>_hard): Copy to atomic_nand<mode>_hard_1.  Convert to
18505         insn_and_split.  Use atomic_mem_operand_1 predicate.
18506         (atomic_<fetchop_name>_fetch<mode>_hard): Copy to
18507         atomic_<fetchop_name>_fetch<mode>_hard_1.  Convert to insn_and_split.
18508         Use atomic_mem_operand_1 predicate.
18509         (atomic_nand_fetch<mode>_hard): Copy to atomic_nand_fetch<mode>_hard_1.
18510         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
18511         (atomic_fetch_not<mode>_hard, atomic_not_fetch<mode>_hard): Replace mems
18512         in generated insn with original mem operand before emitting the insn.
18513         (atomic_fetch_<fetchop_name><mode>_soft_gusa,
18514         atomic_fetch_not<mode>_soft_gusa, atomic_fetch_nand<mode>_soft_gusa,
18515         atomic_<fetchop_name>_fetch<mode>_soft_gusa,
18516         atomic_not_fetch<mode>_soft_gusa, atomic_nand_fetch<mode>_soft_gusa):
18517         Use atomic_mem_operand_1 predicate and AraAdd constraints.
18518         (atomic_fetch_<fetchop_name><mode>_soft_tcb,
18519         atomic_<fetchop_name><mode>_soft_tcb, atomic_fetch_not<mode>_soft_tcb,
18520         atomic_not<mode>_soft_tcb, atomic_fetch_<fetchop_name><mode>_soft_imask,
18521         atomic_fetch_not<mode>_soft_imask, atomic_fetch_nand<mode>_soft_tcb,
18522         atomic_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask,
18523         atomic_<fetchop_name>_fetch<mode>_soft_tcb,
18524         atomic_not_fetch<mode>_soft_tcb,
18525         atomic_<fetchop_name>_fetch<mode>_soft_imask,
18526         atomic_not_fetch<mode>_soft_imask, atomic_nand_fetch<mode>,
18527         atomic_nand_fetch<mode>_soft_tcb, atomic_nand_fetch<mode>_soft_imask):
18528         Use atomic_mem_operand_1 predicate and SraSdd constraints.
18529
18530 2015-02-10  Uros Bizjak  <ubizjak@gmail.com>
18531
18532         * config/alpha/alpha.md (reload_out<mode>_aligned): Make operands 2
18533         and 3 earlyclobber operands.
18534
18535 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
18536
18537         * common.opt (fstack-reuse): Mark as optimization.
18538
18539 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
18540
18541         PR ipa/64982
18542         * cgraphunit.c (cgraph_node::expand_thunk): Look for stdarg thunks.
18543
18544 2015-02-10  Trevor Saunders  <tsaunders@mozilla.com>
18545
18546         PR tree-optimization/64326
18547         * cfghooks.c (make_forwarder_block): Cap frequency of created block.
18548
18549 2015-02-10  Rainer Emrich  <rainer@emrich-ebersheim.de>
18550
18551         PR gcov-profile/61889
18552         * gcov-tool.c: Remove wrong #if !defined(_WIN32)
18553
18554 2015-02-10  Richard Biener  <rguenther@suse.de>
18555
18556         PR tree-optimization/64995
18557         * tree-ssa-sccvn.c (set_ssa_val_to): Assert that the
18558         value we use is final.
18559         (visit_reference_op_store): Always valueize op.
18560         (visit_use): Properly valueize vuses.
18561
18562 2015-02-10  Richard Biener  <rguenther@suse.de>
18563
18564         PR tree-optimization/64909
18565         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Properly
18566         pass a scalar-stmt count estimate to the cost model.
18567         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Likewise.
18568
18569 2015-02-10  Alexander Monakov  <amonakov@ispras.ru>
18570
18571         * doc/invoke.texi (-fvar-tracking-assignments): Clarify that VTA is
18572         enabled by default together with var-tracking.
18573
18574 2015-02-10  Nick Clifton  <nickc@redhat.com>
18575
18576         * config/rl78/rl78.c: Remove DIV attribute code accidentally
18577         included in previous rl78 commit.
18578
18579 2015-02-10  Richard Biener  <rguenther@suse.de>
18580
18581         * tree-streamer.h (streamer_read_tree_bitfields): Adjust.
18582         * tree-streamer-in.c (streamer_read_tree_bitfields): Do not
18583         return the bitpack.
18584
18585 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
18586
18587         PR gcov-profile/61889
18588         * config.in: regenerate.
18589         * configure.in: Likewise.
18590         * configure.ac: Check for ftw.h.
18591         * gcov-tool.c: Check for ftw.h before using nftw.
18592
18593 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
18594
18595         PR lto/64076
18596         * ipa-visibility.c (update_visibility_by_resolution_info): Only
18597         assert when not in lto mode.
18598
18599 2015-02-09  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
18600
18601         * ira-color.c (setup_left_conflict_sizes_p): Simplify
18602         initialization/assignment of conflict_size.
18603
18604 2015-02-09  Jan Hubicka  <hubicka@ucw.cz>
18605
18606         PR ipa/64978
18607         * ipa-cp.c (gather_caller_stats): Skip thunks.
18608         (propagate_constants_topo): Skip aliases.
18609
18610 2015-02-09  Kaz Kojima  <kkojima@gcc.gnu.org>
18611
18612         PR target/64761
18613         * config/sh/sh.c (sh_option_override): Don't change
18614         -freorder-blocks-and-partition to -freorder-blocks even when
18615         unwinding is enabled.
18616         (sh_can_follow_jump): Return false if the followee jump is
18617         a crossing jump when -freorder-blocks-and-partition is specified.
18618         * config/sh/sh.md (*jump_compact_crossing): New insn.
18619
18620 2015-02-09  Joern Rennecke  <joern.rennecke@embecosm.com>
18621             Kaz Kojima  <kkojima@gcc.gnu.org>
18622
18623         PR target/64761
18624         * config/sh/sh-protos.h (sh_can_redirect_branch): Don't declare.
18625         * config/sh/sh.c (TARGET_CAN_FOLLOW_JUMP): Redefine.
18626         (sh_can_redirect_branch): Rename to ...
18627         (sh_can_follow_jump): ... this.  Constify argument types.
18628         * config/sh/sh.h (MD_CAN_REDIRECT_BRANCH): Don't define.
18629         * doc/tm.texi.in (MD_CAN_REDIRECT_BRANCH): Remove documentation.
18630         * reorg.c (steal_delay_list_from_target): Use targetm.can_follow_jump.
18631         * doc/tm.texi: Regenerate.
18632
18633 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
18634
18635         PR sanitizer/64981
18636         * builtins.c (expand_builtin): Call targetm.expand_builtin
18637         for BUILT_IN_MD builtins regardless of asan_intercepted_p.
18638
18639 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
18640
18641         PR ipa/61548
18642         * tree-emutls.c (ipa_lower_emutls): Avoid duplicates in TLS_VARS.
18643
18644 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
18645
18646         PR ipa/63566
18647         * ipa-icf.c (set_local): New function.
18648         (sem_function::merge): Use it.
18649
18650 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
18651
18652         * ipa-devirt.c (odr_types_equivalent_p): Fix formating.
18653         (add_type_duplicate): Fix comparison of BINFOs.
18654
18655 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
18656
18657         * ipa-polymorphic-call.c (ipa_polymorphic_call_context): Avoid ICE
18658         on getting VOID pointer.
18659
18660 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
18661
18662         PR target/64979
18663         * tree-stdarg.c (pass_stdarg::execute): Scan phi node args for
18664         va_list escapes.
18665
18666 2015-02-09  Richard Biener  <rguenther@suse.de>
18667
18668         * genmatch.c (replace_id): Copy expr_type.
18669
18670 2015-02-09  Richard Biener  <rguenther@suse.de>
18671
18672         * tree-streamer.h (streamer_pack_tree_bitfields): Remove.
18673         (streamer_write_tree_bitfields): Declare.
18674         * tree-streamer-in.c (unpack_ts_base_value_fields): Inline,
18675         properly unpack padding.
18676         (unpack_value_fields): Inline ...
18677         (streamer_read_tree_bitfields): ... here.
18678         * tree-streamer-out.c (pack_ts_base_value_fields): Inline
18679         and properly add padding bits.
18680         (streamer_pack_tree_bitfields): Fold into ...
18681         (streamer_write_tree_bitfields): ... this new function,
18682         exposing the bitpack object.
18683         * lto-streamer-out.c (lto_write_tree_1): Call
18684         streamer_write_tree_bitfields.
18685
18686 2015-02-09  Richard Biener  <rguenther@suse.de>
18687
18688         PR tree-optimization/54000
18689         * tree-ssa-looo-ivopts.c: Include tree-vectorizer.h.
18690         (struct ivopts_data): Add loop_loc member.
18691         (tree_ssa_iv_optimize_loop): Dump loop location.
18692         (create_new_ivs): Likewise, also dump number of IVs generated.
18693
18694 2015-02-09  Martin Liska  <mliska@suse.cz>
18695
18696         * ipa-icf.c (sem_item_optimizer::register_hooks): Register hooks
18697         just if not yet registered.
18698         (ipa_icf_generate_summary): Register callgraph hooks.
18699
18700 2015-02-08  Andrew Pinski  <apinski@cavium.com>
18701
18702         * config/aarch64/aarch64.c (gty_dummy): Delete.
18703
18704 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
18705
18706         PR ipa/63566
18707         * ipa-visibility.c (cgraph_node::non_local_p): Accept aliases.
18708         (cgraph_node::local_p): Remove thunk related FIXME.
18709
18710 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
18711
18712         PR ipa/63566
18713         * i386.c (ix86_function_regparm): Look through aliases to see if callee
18714         is local and optimized.
18715         (ix86_function_sseregparm): Likewise; also use target's SSE math
18716         settings; error out instead of silently generating wrong code
18717         on mismatches.
18718         (init_cumulative_args): Look through aliases.
18719
18720 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
18721
18722         PR ipa/63566
18723         * ipa-split.c (execute_split_functions): Split if function has aliases.
18724
18725 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
18726
18727         PR ipa/63566
18728         * cgraphunit.c (cgraph_node::analyze): Be sure target of thunk is
18729         aliases before trying to expand it.
18730         (cgraph_node::expand_thunk): Fix formating.
18731
18732 2015-02-07  Sandra Loosemore  <sandra@codesourcery.com>
18733
18734         * doc/extend.texi (Function Attributes [naked]): Copy-edit.
18735         (Using Assembly Language with C): Expand introduction.
18736         (Basic Asm): Copy-edit.  Add more information about uses of
18737         basic asm.
18738         (Extended Asm): Copy-edit.  Document new escape syntax and
18739         %l[label] syntax.
18740         (Global Reg Vars): Copy-edit.
18741         (Local Reg Vars): Likewise.
18742
18743 2015-02-06  David Edelsohn  <dje.gcc@gmail.com>
18744
18745         PR debug/2714
18746         PR bootstrap/64256
18747         * xcoffout.h (DBX_CONTIN_LENGTH): Define as 16384.
18748         (DBX_CONTIN_CHAR): Define.
18749
18750 2015-02-06  Sebastian Pop  <s.pop@samsung.com>
18751             Brian Rzycki  <b.rzycki@samsung.com>
18752
18753         PR tree-optimization/64878
18754         * tree-ssa-threadedge.c: Include tree-ssa-loop.h.
18755         (fsm_find_control_statement_thread_paths): Add parameter seen_loop_phi.
18756         Stop recursion at loop phi nodes after having visited a loop phi node.
18757
18758 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
18759
18760         * toplev.c (process_options): Change flag_ipa_ra before creating
18761         optimization_{default,current}_node.
18762
18763         PR ipa/64896
18764         * cgraphunit.c (cgraph_node::expand_thunk): If
18765         restype is not is_gimple_reg_type nor the thunk_fndecl
18766         returns aggregate_value_p, set restmp to a temporary variable
18767         instead of resdecl.
18768
18769 2015-02-06  Vladimir Makarov  <vmakarov@redhat.com>
18770
18771         * lra.c (lra_emit_add): Fix a typo in using disp instead of base.
18772
18773 2015-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
18774
18775         PR target/64205
18776         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
18777         add a general secondary reload handler for SDmode, unless we have
18778         both read/write support for SDmode.
18779
18780 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
18781
18782         PR middle-end/64937
18783         * dwarf2out.c (set_block_abstract_flags, set_decl_abstract_flags):
18784         Replace setting argument with abstract_vec, always set BLOCK_ABSTRACT
18785         or DECL_ABSTRACT_P flags to 1 rather than to setting, and if it wasn't
18786         1 before, push it to abstract_vec.
18787         (dwarf2out_abstract_function): Adjust caller.  Don't call
18788         set_decl_abstract_flags second time, instead clear BLOCK_ABSTRACT or
18789         DECL_ABSTRACT_P flags for all abstract_vec elts.
18790
18791 2015-02-06  Renlin Li  <renlin.li@arm.com>
18792
18793         * tree-ssa-forwprop.c (execute): Keep location info while rewrite
18794         complex gimple.
18795         * tree-ssa.c (execute_update_addresses_taken): Likewise.
18796
18797 2015-02-06  Jeff Law  <law@redhat.com>
18798
18799         PR target/64889
18800         * config/h8300/h8300.c (push): New argument "in_prologue".
18801         Pass "in_prologue" along to "F".
18802         (h8300_push_pop): Corresponding changes.
18803         (h8300_expand_prologue): Likewise.
18804         (h8300_swap_into_er6): Likewise.  Do not set RTX_FRAME_RELATED_P.
18805
18806 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
18807
18808         PR rtl-optimization/64957
18809         PR debug/64817
18810         * simplify-rtx.c (simplify_binary_operation_1): Use ~cval for
18811         IOR rather than for AND.
18812
18813 2015-02-06  Eric Botcazou  <ebotcazou@adacore.com>
18814
18815         PR target/62631
18816         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Use the mininum of costs
18817         of shift-add and (add + shift) operations.  Rename local variable.
18818
18819 2015-02-05  Jeff Law  <law@redhat.com>
18820
18821         PR target/17306
18822         * config/h8300/constraints.md (U): Correctly dectect
18823         "eightbit_data" memory addresses.
18824         * config/h8300/h8300.c (eightbit_constant_address_p): Also
18825         handle (const (plus (symbol_ref (x)))) where x is declared
18826         as an 8-bit data memory address.
18827         * config/h8300/h8300.md (call, call_value): Correctly detect
18828         "funcvec" functions.
18829
18830         PR target/43264
18831         * config/h8300/h8300.c (get_shift_alg): Fix ASHIFTRT by
18832         24 to 28 bits for the H8/300.
18833
18834 2015-02-06  Alan Modra  <amodra@gmail.com>
18835
18836         PR target/64876
18837         * config/rs6000/rs6000.c (chain_already_loaded): New function.
18838         (rs6000_call_aix): Use it.
18839
18840 2015-02-05  Jan Hubicka <hubicka@ucw.cz>
18841
18842         * ipa-cp.c (ipa_value_from_jfunc, ipa_context_from_jfunc): Add bounds
18843         check.
18844
18845 2015-02-05  Joern Rennecke  <joern.rennecke@embecosm.com>
18846
18847         * config/h8300/constraints.md ("U" constraint): Use strict
18848         variant of REG_OK_FOR_BASE_P after reload has started.
18849
18850 2015-02-04  Mantas Mikaitis  <mantas.mikaitis@arm.com>
18851
18852         * config/arm/arm.h (TARGET_NEON_FP): Removed conditional definition,
18853         define to zero if !TARGET_NEON.
18854         (TARGET_ARM_FP): Added !TARGET_SOFT_FLOAT into conditional definition.
18855
18856 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
18857             Trevor Saunders  <tsaunders@mozilla.com>
18858
18859         PR ipa/61548
18860         * tree-emultls.c (new_emutls_decl): Resolve alias after creating it.
18861
18862 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
18863
18864         PR ipa/61548
18865         * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering issue
18866         when removing varpool nodes.
18867
18868 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
18869
18870         PR ipa/61548
18871         * varpool.c (varpool_node::remove): Fix order of variables.
18872
18873 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
18874
18875         PR ipa/64686
18876         * ipa-inline.c (inline_small_functions): Fix ordering issue between
18877         speculation resolution and key updates.
18878
18879 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
18880
18881         * ipa-prop.c (update_indirect_edges_after_inlining): By more careful
18882         about not letting any speculative edges unupdated.
18883
18884 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
18885
18886         PR gcov/64123
18887         * gcov-io.c (gcov_var): Export.
18888
18889 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
18890
18891         PR middle-end/64922
18892         * ipa-prop.c (update_indirect_edges_after_inlining): Correctly update
18893         edges that become speculative.
18894
18895 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
18896
18897         * dwarf2out.c (is_fortran): Also return true for DW_LANG_Fortran03
18898         or DW_LANG_Fortran08.
18899         (lower_bound_default): Return 1 for DW_LANG_Fortran03 or
18900         DW_LANG_Fortran08.
18901         (gen_compile_unit_die): Handle "GNU Fortran2003" and
18902         "GNU Fortran2008" language strings.
18903         * dbxout.c (get_lang_number): Use lang_GNU_Fortran.
18904         * langhooks.h (lang_GNU_Fortran): New prototype.
18905         * langhooks.c (lang_GNU_Fortran): New function.
18906         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
18907         lang_GNU_Fortran.
18908
18909 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
18910
18911         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P): Fix off-by-one error.
18912         (RTX_OK_FOR_OLO10_P): Likewise.
18913
18914 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
18915
18916         * tree-ssa-loop-ivopts.c (get_address_cost): Use right mode for offset.
18917
18918 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
18919
18920         PR middle-end/64922
18921         * gimple.c: Include gimple-ssa.h.
18922         (maybe_remove_unused_call_args): New function.
18923         * gimple.h (maybe_remove_unused_call_args): Declare.
18924         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
18925         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
18926         * gimple-fold.c (gimple_fold_call): Likewise.
18927
18928 2015-02-04  H.J. Lu  <hongjiu.lu@intel.com>
18929
18930         PR rtl-optimization/64905
18931         * lra-eliminations.c (setup_can_eliminate): Clear hard frame
18932         pointer alignment if it isn't needed.
18933
18934 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
18935
18936         * config/aarch64/aarch64-cores.def: Add cortex-a72 and
18937         cortex-a72.cortex-a53.
18938         * config/aarch64/aarch64-tune.md: Regenerate.
18939         * doc/invoke.texi (AArch64 Options/-mtune): Add "cortex-a72".
18940
18941 2015-02-04  Nick Clifton  <nickc@redhat.com>
18942
18943         * config/rl78/rl78.c (rl78_note_reg_set): Note the use of REGs
18944         inside a MEM.
18945
18946 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
18947
18948         * builtins.def (DEF_BUILTIN_CHKP): Define if not defined.
18949         (DEF_LIB_BUILTIN_CHKP, DEF_EXT_LIB_BUILTIN_CHKP): Redefine.
18950         (DEF_CHKP_BUILTIN): Define using DEF_BUILTIN_CHKP instead
18951         of DEF_BUILTIN.
18952         (BUILT_IN_MEMCPY, BUILT_IN_MEMMOVE, BUILT_IN_MEMSET, BUILT_IN_STRCAT,
18953         BUILT_IN_STRCHR, BUILT_IN_STRCPY, BUILT_IN_STRLEN): Use
18954         DEF_LIB_BUILTIN_CHKP macro instead of DEF_LIB_BUILTIN.
18955         (BUILT_IN_MEMCPY_CHK, BUILT_IN_MEMMOVE_CHK, BUILT_IN_MEMPCPY_CHK,
18956         BUILT_IN_MEMPCPY, BUILT_IN_MEMSET_CHK, BUILT_IN_STPCPY_CHK,
18957         BUILT_IN_STPCPY, BUILT_IN_STRCAT_CHK, BUILT_IN_STRCPY_CHK): Use
18958         DEF_EXT_LIB_BUILTIN_CHKP macro instead of DEF_EXT_LIB_BUILTIN.
18959         * tree-core.h (enum built_in_function): In between
18960         BEGIN_CHKP_BUILTINS and END_CHKP_BUILTINS only define enum values
18961         for builtins that use DEF_BUILTIN_CHKP macro.
18962
18963 2015-02-04  Alexandre Oliva <aoliva@redhat.com>
18964
18965         PR debug/64817
18966         * cfgexpand.c (expand_debug_expr): Compute unsignedp from
18967         operands for tcc_comparison exprs.  Fix typos.
18968
18969         PR debug/64817
18970         * simplify-rtx.c (simplify_binary_operation_1): Simplify one
18971         of two XORs that have an intervening AND or IOR.
18972
18973         PR debug/64817
18974         * simplify-rtx.c (simplify_binary_operation_1): Rewrite
18975         simplification of XOR of AND to not allocate new rtx before
18976         committing to a simplification.
18977
18978 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18979
18980         * config/aarch64/aarch64-ldpstp.md: Use std::swap instead of
18981         manual swaps in all peepholes.
18982
18983 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18984
18985         * config/aarch64/aarch64.c (aarch64_evpc_ext): Use std::swap instead
18986         of manual swapping implementation.
18987         (aarch64_expand_vec_perm_const_1): Likewise.
18988
18989 2015-02-04  James Greenhalgh <james.greenhalgh@arm.com>
18990
18991         * config/aarch64/aarch64.c (NAMED_PARAM): Delete it.
18992         (generic_addrcost_table): Remove NAMED_PARAM.
18993         (cortexa57_addrcost_table): Likewise.
18994         (xgene1_addrcost_table): Likewise.
18995         (generic_regmove_table): Likewise.
18996         (cortexa53_regmove_table): Likewise.
18997         (xgene1_regmove_table): Likewise.
18998         (generic_vector_table): Likewise.
18999         (cortexa57_vector_table): Likewise.
19000         (xgene1_vector_table): Likewise.
19001         (generic_tunings): Likewise.
19002         (cortexa53_tunings): Likewise.
19003         (cortexa57_tunings): Likewise.
19004         (xgene1_tunings): Likewise.
19005
19006 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
19007
19008         * config/arm/arm-cores.def: Add cortex-a72 and
19009         cortex-a72.cortex-a53.
19010         * config/arm/bpabi.h (BE8_LINK_SPEC): Likewise.
19011         * config/arm/t-aprofile (MULTILIB_MATCHES): Likewise.
19012         * config/arm/arm-tune.md: Regenerate.
19013         * config/arm/arm-tables.opt: Add entries for "cortex-a72" and
19014         "cortex-a72.cortex-a53".
19015         * doc/invoke.texi (ARM Options/-mtune): Likewise.
19016
19017 2015-02-04  Nick Clifton  <nickc@redhat.com>
19018
19019         PR target/64408
19020         * config/fr30/predicates.md (di_operand): Add SUBREG to the list
19021         of accepted codes.
19022         (nonimmediate_di_operand): Likewise.
19023
19024         * config/msp430/msp430.c (msp430_use_f5_series_hwmult): Add more
19025         prefixes of known F5 using MSP430 MCUs.
19026
19027 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19028
19029         * config/aarch64/aarch64-simd-builtins.def (sqrt): Use BUILTIN_VDQF_DF.
19030         * config/aarch64/arm_neon.h (vsqrt_f64): Use __builtin_aarch64_sqrtdf
19031         instead of __builtin_sqrt.
19032
19033 2015-02-04  Ilya Enkovich  <ilya.enkovich@intel.com>
19034
19035         * varasm.c (do_assemble_alias): Follow transparent alias
19036         chain for target.
19037         (default_assemble_visibility): Follow transparent alias
19038         chain for decl name.
19039
19040 2015-02-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
19041
19042         PR middle-end/62103
19043         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use TYPE_PRECISION
19044         to compute size of referenced value in the constant case.
19045
19046 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
19047
19048         PR rtl-optimization/64756
19049         * cse.c (invalidate_dest): New function.
19050         (cse_insn): Use it.  If dest != SET_DEST (sets[i].rtl) and
19051         HASH (SET_DEST (sets[i].rtl), mode) computation sets do_not_record,
19052         invalidate and do not record it.
19053
19054 2015-02-03  Oleg Endo  <olegendo@gcc.gnu.org>
19055
19056         PR target/64660
19057         * config/sh/sync.md (atomic_<fetchop_name><mode>_hard,
19058         atomic_not<mode>_hard, atomic_<fetchop_name><mode>_soft_tcb,
19059         atomic_not<mode>_soft_tcb, atomic_nand<mode>_hard,
19060         atomic_nand<mode>_soft_tcb): New insns.
19061         (atomic_fetch_<fetchop_name>si_hard): Convert to insn_and_split.
19062         Split into atomic_<fetchop_name>_fetchsi_hard if operands[0] is unused.
19063         (define_insn "atomic_fetch_notsi_hard): Convert to insn_and_split.
19064         Split into atomic_not_fetchsi_hard if operands[0] is unused.
19065         (atomic_fetch_<fetchop_name><mode>_hard): Convert to insn_and_split.
19066         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
19067         (atomic_fetch_not<mode>_hard): Convert to insn_and_split.  Split into
19068         atomic_not<mode>_hard if operands[0] is unused.
19069         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Convert to
19070         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_gusa
19071         if operands[0] is unused.
19072         (atomic_fetch_not<mode>_soft_gusa): Convert to insn_and_split.  Split
19073         into atomic_not_fetch<mode>_soft_gusa if operands[0] is unused.
19074         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Convert to insn_and_split.
19075         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
19076         unused.
19077         (atomic_fetch_not<mode>_soft_tcb): Convert to insn_and_split.  Split
19078         into atomic_not<mode>_soft_tcb if operands[0] is unused.
19079         (atomic_fetch_<fetchop_name><mode>_soft_imask): Convert to
19080         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_imask
19081         if operands[0] is unused.
19082         (atomic_fetch_not<mode>_soft_imask): Convert to insn_and_split.  Split
19083         into atomic_not_fetch<mode>_soft_imask is operands[0] is unused.
19084         (atomic_fetch_nandsi_hard): Convert to insn_and_split.  Split into
19085         atomic_nand_fetchsi_hard if operands[0] is unused.
19086         (atomic_fetch_nand<mode>_hard): Convert to insn_and_split.  Split into
19087         atomic_nand<mode>_hard if operands[0] is unused.
19088         (atomic_fetch_nand<mode>_soft_gusa): Convert to insn_and_split.  Split
19089         into atomic_nand_fetch<mode>_soft_gusa if operands[0] is unused.
19090         (atomic_fetch_nand<mode>_soft_tcb): Convert to insn_and_split.  Split
19091         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
19092         (atomic_fetch_nand<mode>_soft_imask): Convert to insn_and_split.  Split
19093         into atomic_nand_fetch<mode>_soft_imask if operands[0] is unused.
19094         (atomic_<fetchop_name>_fetch<mode>_hard): Convert to insn_and_split.
19095         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
19096         (atomic_not_fetch<mode>_hard): Convert to insn_and_split.  Split into
19097         atomic_not<mode>_hard if operands[0] is unused.
19098         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Convert to insn_and_split.
19099         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
19100         unused.
19101         (atomic_not_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
19102         into atomic_not<mode>_soft_tcb if operands[0] is unused.
19103         (atomic_nand_fetch<mode>_hard): Convert to insn_and_split.  Split into
19104         atomic_nand<mode>_hard if operands[0] is unused.
19105         (atomic_nand_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
19106         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
19107
19108 2015-02-03  David Malcolm  <dmalcolm@redhat.com>
19109
19110         PR jit/64810
19111         * Makefile.in (GCC_OBJS): Add gcc-main.o.
19112         * gcc-main.c: New file, containing "main" taken from gcc.c.
19113         * gcc.c (do_self_spec): Free decoded_options.
19114         (class driver): Move declaration to gcc.h.
19115         (main): Move declaration and implementation to new file
19116         gcc-main.c.
19117         (driver_get_configure_time_options): New function.
19118         * gcc.h (class driver): Move this declaration here, from
19119         gcc.c.
19120         (driver_get_configure_time_options): New declaration.
19121
19122 2015-02-03  Jan Hubicka  <hubicka@ucw.cz>
19123
19124         * ipa-inline-analysis.c (simple_edge_hints): Fix check for
19125         cross-module inlining.
19126         * cgraph.h (cgraph_node): Add flag merged.
19127         * ipa-icf.c (sem_function::merge): Maintain it.
19128
19129 2015-02-03  Richard Sandiford  <richard.sandiford@arm.com>
19130
19131         * config/arm/arm.c (thumb2_reorg): Test UNARY_P and BINARY_P
19132         instead of OBJECT_P.
19133
19134 2015-02-03  Eric Botcazou  <ebotcazou@adacore.com>
19135
19136         PR target/62631
19137         * config/sparc/sparc.h (TARGET_HARD_MUL): Remove TARGET_V8PLUS.
19138         (TARGET_HARD_MUL32): Rewrite based on TARGET_HARD_MUL.
19139         * config/sparc/sparc.c (sparc_rtx_costs) <MULT>: Return costs based on
19140         int_mulX for integers in 64-bit mode if TARGET_HARD_MUL is not set.
19141
19142 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
19143
19144         PR other/63504
19145         * combine.c (reg_n_sets_max): New variable.
19146         (can_change_dest_mode, reg_nonzero_bits_for_combine,
19147         reg_num_sign_bit_copies_for_combine, get_last_value_validate,
19148         get_last_value): Use REG_N_SETS only on pseudos < reg_n_sets_max.
19149         (try_combine): Use INC_REG_N_SETS only on pseudos < reg_n_sets_max.
19150         (rest_of_handle_combine): Initialize reg_n_sets_max.
19151
19152 2015-02-02  Jan Hubicka  <hubicka@ucw.cz>
19153
19154         * ipa-inline.c (early_inliner): Skip inlining only in always_inlined;
19155         if some always_inline was inlined, apply changes before inlining
19156         heuristically.
19157
19158 2015-02-02  David Malcolm  <dmalcolm@redhat.com>
19159
19160         PR jit/64810
19161         * config/arm/arm.c (arm_option_override): Set
19162         arm_selected_arch/cpu/tune to NULL on entry.
19163
19164 2015-02-02  Tejas Belagod  <tejas.belagod@arm.com>
19165             Andrew Pinski  <pinskia@gcc.gnu.org>
19166             Jakub Jelinek  <jakub@gcc.gnu.org>
19167
19168         PR target/64231
19169         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix large
19170         integer typing for small model. Use IN_RANGE.
19171
19172 2015-02-02  Richard Biener  <rguenther@suse.de>
19173
19174         * tree-ssa-ccp.c (valueize_op_1): Always allow valueizing default-defs.
19175         * tree-vrp.c (vrp_valueize_1): Likewise.
19176
19177 2015-02-02  Alan Modra  <amodra@gmail.com>
19178
19179         * config/rs6000/rs6000.c (rs6000_call_aix): Use unspec rather
19180         than mem for toc_restore.
19181         * config/rs6000/rs6000.md (UNSPEC_TOCSLOT): Define.
19182         (call_indirect_aix, call_value_indirect_aix): Adjust to suit.
19183         (call_indirect_elfv2, call_value_indirect_elfv2): Likewise.
19184
19185 2015-02-01  David Edelsohn  <dje.gcc@gmail.com>
19186
19187         PR target/64047
19188         * config/rs6000/rs6000.c (rs6000_set_current_function): Handle
19189         explicit default options.
19190
19191 2015-02-01  Jan Hubicka  <hubicka@ucw.cz>
19192
19193         PR ipa/64872
19194         * ipa-utils.c (ipa_merge_profiles): Add release argument.
19195         * ipa-icf.c (sem_function::merge): Do not release body when merging.
19196         * ipa-utils.h (ipa_merge_profiles): Update prototype.
19197
19198 2015-02-01  Jakub Jelinek  <jakub@redhat.com>
19199
19200         PR debug/64817
19201         * cfgexpand.c (deep_ter_debug_map): New variable.
19202         (avoid_deep_ter_for_debug): New function.
19203         (expand_debug_expr): If TERed SSA_NAME is in
19204         deep_ter_debug_map, use the corresponding DEBUG_EXPR_DECL
19205         instead of trying to expand SSA_NAME's def stmt.
19206         (expand_debug_locations): When expanding debug bind
19207         of a DEBUG_EXPR_DECL to corresponding SSA_NAME,
19208         temporarily remove the DEBUG_EXPR_DECL from deep_ter_debug_map's
19209         value.
19210         (pass_expand::execute): Call avoid_deep_ter_for_debug on
19211         all debug bind stmts.  Delete deep_ter_debug_map after
19212         expand_debug_location if non-NULL and clear it.
19213
19214 2015-02-01  Oleg Endo  <olegendo@gcc.gnu.org>
19215
19216         PR target/64851
19217         * config/sh/sync.md (atomic_fetch_notsi_hard,
19218         atomic_fetch_not<mode>_hard, atomic_fetch_not<mode>_soft_gusa,
19219         atomic_fetch_not<mode>_soft_tcb, atomic_fetch_not<mode>_soft_imask,
19220         atomic_not_fetchsi_hard, atomic_not_fetch<mode>_hard,
19221         atomic_not_fetch<mode>_soft_gusa, atomic_not_fetch<mode>_soft_tcb,
19222         atomic_not_fetch<mode>_soft_imask): New insns.
19223
19224 2015-02-01  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
19225
19226         * haifa-sched.c (INSN_RFS_DEBUG_ORIG_ORDER): New access macro.
19227         (rank_for_schedule_debug): Split from ...
19228         (rank_for_schedule): ... this.
19229         (ready_sort): Sort DEBUG_INSNs separately from normal INSNs.
19230         * sched-int.h (struct _haifa_insn_data): New field rfs_debug_orig_order.
19231
19232 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
19233
19234         * doc/md.texi (Machine Constraints): Alphabetize table by target.
19235         * doc/extend.texi (x86 Variable Attributes): Move section to
19236         correct alphabetization after renaming.
19237         (x86 Type Attributes): Likewise.
19238         (Target Builtins): Re-alphabetize menu.
19239         (x86 Built-in Functions): Move section to correct alphabetization
19240         after renaming.
19241         (x86 transactional memory intrinsics): Likewise.
19242         * doc/invoke.texi (Option Summary): Re-alphabetize x86 Options
19243         and x86 Windows Options in table and menu.
19244         (x86 Options): Move section to correct alphabetization after
19245         renaming.
19246         (x86 Windows Options): Likewise.
19247
19248 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
19249
19250         * doc/extend.texi: Use "x86", "x86-32", and "x86-64" as the
19251         preferred names of the architecture and its 32- and 64-bit
19252         variants.
19253         * doc/invoke.texi: Likewise.
19254         * doc/md.texi: Likewise.
19255
19256 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
19257
19258         PR target/64882
19259         * config/i386/predicates.md (address_no_seg_operand): Reject
19260         non-CONST_INT_P operands in invalid mode.
19261
19262 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
19263
19264         * config/i386/i386.md (*prefetch_prefetchw1): Remove mode of
19265         address_operand 0.  Rename from *prefetch_prefetchwt1_<mode>.
19266         * config/i386/predicates.md (address_no_seg_operand): Call
19267         address_operand with VOIDmode.
19268         (vsib_address_operand): Ditto.
19269         (address_mpx_no_base_operand): Ditto.
19270         (address_mpx_no_index_operand): Ditto.
19271
19272 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
19273
19274         PR target/64688
19275         * lra-constraints.c (original_subreg_reg_mode): New.
19276         (simplify_operand_subreg): Try to simplify subreg of const.  Use
19277         original_subreg_reg_mode for it.
19278         (swap_operands): Update original_subreg_reg_mode.
19279         (curr_insn_transform): Set up original_subreg_reg_mode.
19280
19281 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
19282
19283         PR target/64617
19284         * lra-constraints.c (prohibited_class_reg_set_mode_p): New
19285         function.
19286         (process_alt_operands): Use it.
19287         (curr_insn_transform): Check the optional reload pseudo class is
19288         ok for the mode.
19289
19290 2015-01-30  Joseph Myers  <joseph@codesourcery.com>
19291
19292         * diagnostic.c (fatal_error (const char *, ...)): Remove function.
19293         * diagnostic-core.h (fatal_error (const char *, ...)): Remove
19294         prototype.
19295         * toplev.h (init_asm_output): Update comment on use of
19296         UNKNOWN_LOCATION with fatal_error.
19297         * cgraph.c, collect-utils.c, collect2.c, config/arc/arc.c,
19298         config/arc/arc.md, config/avr/avr.c, config/c6x/c6x.h,
19299         config/darwin.c, config/host-darwin.c, config/i386/host-cygwin.c,
19300         config/i386/intelmic-mkoffload.c, config/nios2/nios2.c,
19301         config/nvptx/mkoffload.c, config/nvptx/nvptx.h,
19302         config/rs6000/host-darwin.c, config/rs6000/rs6000.c,
19303         config/s390/s390.c, gcc.c, gcov-io.h, gcov-tool.c, ggc-common.c,
19304         ggc-page.c, graph.c, ipa-inline-analysis.c, ipa-reference.c,
19305         lto-cgraph.c, lto-section-in.c, lto-streamer-in.c, lto-streamer.c,
19306         lto-wrapper.c, objc/objc-act.c, opts.c, passes.c, plugin.c,
19307         tlink.c, toplev.c, tree-streamer-in.c, varpool.c: All callers of
19308         fatal_error changed to pass input_location as first argument.
19309
19310 2015-01-30  Martin Liska  <mliska@suse.cz>
19311
19312         * tree.h: Change GCC_VERSION >= 4004 to GCC_VERSION >= 4006
19313         in #pragma GCC diagnostic guards.
19314
19315 2015-01-30  Richard Biener  <rguenther@suse.de>
19316
19317         PR tree-optimization/64829
19318         * tree-vect-patterns.c (vect_handle_widen_op_by_const): Do
19319         not add a widening conversion pattern but hand off extra
19320         widenings to callers.
19321         (vect_recog_widen_mult_pattern): Handle extra widening produced
19322         by vect_handle_widen_op_by_const.
19323         (vect_recog_widen_shift_pattern): Likewise.
19324         (vect_pattern_recog_1): Remove excess vertical space in dumping.
19325         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
19326         (vect_init_vector_1): Likewise.
19327         (vect_get_vec_def_for_operand): Likewise.
19328         (vect_finish_stmt_generation): Likewise.
19329         (vectorizable_load): Likewise.
19330         (vect_analyze_stmt): Likewise.
19331         (vect_is_simple_use): Likewise.
19332
19333 2015-01-29  Jeff Law  <law@redhat.com>
19334
19335         * combine.c (try_combine): Fix typo in comment.
19336
19337 2015-01-29  Segher Boessenkool  <segher@kernel.crashing.org>
19338
19339         PR target/64580
19340         * config.rs6000/rs6000.c (compute_vrsave_mask): Reverse loop order.
19341         (rs6000_stack_info): Add assert.
19342         (rs6000_output_savres_externs): New function, split off from...
19343         (rs6000_output_function_prologue): ... here.  Do not call it for
19344         thunks.
19345
19346 2015-01-29  Jeff Law  <law@redhat.com>
19347
19348         PR target/15184
19349         * combine.c (try_combine): If I0 is a memory load and I3 a store
19350         to a related address, increase the "goodness" of doing a 4-insn
19351         combination with I0-I3.
19352         (make_field_assignment): Handle SUBREGs in the ior+and case.
19353
19354 2015-01-29  Yuri Rumyantsev  <ysrumyan@gmail.com>
19355
19356         PR tree-optimization/64746
19357         * tree-if-conv.c (mask_exists): New function.
19358         (predicate_mem_writes): Save created mask with given size for further
19359         use.
19360         (stmt_is_root_of_bool_pattern): Remove argument VAR and store to it.
19361         (ifcvt_repair_bool_pattern): Collect all statements that are root
19362         of bool pattern and use iterative algorithm to remove multiple uses
19363         of predicates, display number of required iterations.
19364
19365 2015-01-29  Richard Biener  <rguenther@suse.de>
19366
19367         PR tree-optimization/64853
19368         * tree-vrp.c (vrp_valueize_1): Do not return anything if the
19369         stmt will get simulated again.
19370         * tree-ssa-ccp.c (valueize_op_1): Likewise.
19371
19372 2015-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19373
19374         * config/arm/arm.c (arm_emit_multi_reg_pop): Simplify definition of
19375         return_in_pc.  Remove redundant assignments.
19376         (thumb2_emit_ldrd_pop): Simplify definition of return_in_pc.
19377         (arm_expand_epilogue): Don't compare boolean with true in if condition.
19378
19379 2015-01-29  Uros Bizjak  <ubizjak@gmail.com>
19380
19381         * config/i386/i386.c (ix86_mode_after): Make static.
19382
19383 2015-01-29  Richard Biener  <rguenther@suse.de>
19384
19385         PR tree-optimization/64844
19386         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Always
19387         dump cost model analysis.
19388         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
19389         Do not register adjusted load/store costs here.
19390
19391 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
19392             Uros Bizjak  <ubizjak@gmail.com>
19393
19394         * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): New.
19395         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Simplify by
19396         using x86_use_pseudo_pic_reg.
19397         * config/i386/i386.c (ix86_conditional_register_usage): Remove
19398         support for fixed PIC register.
19399         (ix86_use_pseudo_pic_reg): Not static any more.
19400
19401 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
19402
19403         PR middle-end/64805
19404         * ipa-inline.c (early_inliner): Rebuild IPA_REF_CHKP reference
19405         to avoid error in cgraph node verification.
19406
19407 2015-01-29  Marek Polacek  <polacek@redhat.com>
19408
19409         * doc/standards.texi: Reflect that the default for C is gnu11.
19410
19411 2015-01-29  Kaz Kojima  <kkojima@gcc.gnu.org>
19412
19413         PR target/64761
19414         * reorg.c (switch_text_sections_between_p): New function.
19415         (relax_delay_slots): Call it when testing if the jump insn
19416         is removable.  Use targetm.can_follow_jump when testing if
19417         the conditional branch can follow an unconditional jump.
19418
19419 2015-01-27  Caroline Tice  <cmtice@google.com>
19420
19421         Committing VTV Cywin/Ming patch for Patrick Wollgast
19422         * config/i386/cygwin.h (STARTFILE_SPEC): Add vtv_start.o,
19423         if -fvtable-verify=preinit/std is used.
19424         * config/i386/mingw-w64.h (STARTFILE_SPEC): Likewise.
19425         * config/i386/mingw32.h (STARTFILE_SPEC): Likewise.
19426         * config/i386/cygwin.h (ENDFILE_SPEC): Add vtv_end.o,
19427         if -fvtable-verify=preinit/std is used.
19428         * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
19429         * config/i386/cygwin.h (LIB_SPEC): Pass -lvtv and -lpsapi,
19430         if -fvtable-verify=preinit/std is used.
19431         * config/i386/mingw-w64.h (LIB_SPEC): Likewise.
19432         * config/i386/mingw32.h (LIB_SPEC): Likewise.
19433         * varasm.c (assemble_variable): Add code to properly set the comdat
19434         section and name for the .vtable_map_vars section in case the
19435         target is PE or COFF.
19436
19437 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
19438
19439         PR ipa/64801
19440         * cgraphunit.c (init_lowered_empty_function): Add CoUNT parameter;
19441         make sane BB profile.
19442         (cgraph_node::expand_thunk): Make sane BB profile.
19443         (cgraph_node::create_wrapper): Do not set call_stmt_cannot_inline_p.
19444         * cgraph.h (init_lowered_empty_function): Update prototype.
19445         * config/i386/i386.c (make_resolver_func): Update call.
19446         * predict.c (gate): Disable branch prediction pass if
19447         profile is already there.
19448
19449 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
19450
19451         * optc-save-gen.awk: flag_fp_contract_mode is no longer speical.
19452         * opth-gen.awk: Likewise.
19453         * common.opt: Mark flag_fp_contract_mode as Optimization.
19454
19455 2015-01-29  Bernd Edlinger  <bernd.edlinger@hotmail.de>
19456
19457         * config/i386/cygwin.h (LIBGCJ_SONAME): Set libgcj version to -16.
19458         * config/i386/mingw32.h (LIBGCJ_SONAME): Set libgcj version to -16.
19459
19460 2015-01-28  Oleg Endo  <olegendo@gcc.gnu.org>
19461
19462         PR target/64659
19463         * config/sh/predicates.md (atomic_arith_operand,
19464         atomic_logical_operand): Remove.
19465         * config/sh/sync.md (fetchop_predicate, fetchop_constraint): Remove.
19466         (atomic_arith_operand_0): New predicate.
19467         (atomic_compare_and_swap<mode>): Use arith_reg_dest for output values.
19468         Use atomic_arith_operand_0 for input values.
19469         (atomic_compare_and_swapsi_hard, atomic_compare_and_swap<mode>_hard,
19470         atomic_compare_and_swap<mode>_soft_gusa,
19471         atomic_compare_and_swap<mode>_soft_tcb,
19472         atomic_compare_and_swap<mode>_soft_imask): Use arith_reg_dest and
19473         arith_reg_operand instead of register_operand.
19474         (atomic_exchange<mode>): Use arith_reg_dest for output value.  Use
19475         atomic_arith_operand_0 for newval input.
19476         (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
19477         atomic_exchange<mode>_soft_gusa, atomic_exchange<mode>_soft_tcb,
19478         atomic_exchange<mode>_soft_imask): Use arith_reg_dest and
19479         arith_reg_operand instead of register_operand.
19480         (atomic_arith_operand_1, atomic_logical_operand_1): New predicates.
19481         fetchop_predicate_1, fetchop_constraint_1_llcs,
19482         fetchop_constraint_1_gusa, fetchop_constraint_1_tcb,
19483         fetchop_constraint_1_imask): New code iterator attributes.
19484         (atomic_fetch_<fetchop_name><mode>): Use arith_reg_dest instead of
19485         register_operand.  Use fetchop_predicate_1.
19486         (atomic_fetch_<fetchop_name>si_hard,
19487         atomic_fetch_<fetchop_name><mode>_hard): Use arith_reg_dest instead of
19488         register_operand.  Use fetchop_predicate_1, fetchop_constraint_1_llcs.
19489         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Use arith_reg_dest
19490         and arith_reg_operand instead of register_operand.  Use
19491         fetchop_predicate_1, fetchop_constraint_1_gusa.
19492         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Use arith_reg_dest
19493         and arith_reg_operand instead of register_operand.  Use
19494         fetchop_predicate_1, fetchop_constraint_1_tcb.  Adjust asm sequence
19495         to allow R0 usage.
19496         (atomic_fetch_<fetchop_name><mode>_soft_imask): Use arith_reg_dest
19497         and arith_reg_operand instead of register_operand.  Use
19498         fetchop_predicate_1, fetchop_constraint_1_imask.  Adjust asm sequence
19499         to allow R0 usage.
19500         (atomic_fetch_nand<mode>): Use arith_reg_dest instead of
19501         register_operand.  Use atomic_logical_operand_1.
19502         (atomic_fetch_nandsi_hard, atomic_fetch_nand<mode>_hard,
19503         atomic_fetch_nand<mode>_soft_gusa): Use arith_reg_dest and
19504         arith_reg_operand instead of register_operand.
19505         (atomic_fetch_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask):
19506         Use arith_reg_dest and arith_reg_operand instead of register_operand.
19507         Use logical_operand and rK08.  Adjust asm sequence to allow R0 usage.
19508         (atomic_<fetchop_name>_fetch<mode>): Use arith_reg_dest instead of
19509         register_operand.  Use fetchop_predicate_1.
19510         (atomic_<fetchop_name>_fetchsi_hard,
19511         atomic_<fetchop_name>_fetch<mode>_hard): Use arith_reg_dest and
19512         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
19513         fetchop_constraint_1_llcs.
19514         (atomic_<fetchop_name>_fetch<mode>_soft_gusa): Use arith_reg_dest and
19515         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
19516         fetchop_constraint_1_gusa.
19517         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Use arith_reg_dest and
19518         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
19519         fetchop_constraint_1_tcb.  Adjust asm sequence to allow R0 usage.
19520         (atomic_<fetchop_name>_fetch<mode>_soft_imask): Use arith_reg_dest and
19521         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
19522         fetchop_constraint_1_imask.  Adjust asm sequence to allow R0 usage.
19523         (atomic_nand_fetch<mode>): Use arith_reg_dest instead of
19524         register_operand.  Use atomic_logical_operand_1.
19525         (atomic_nand_fetchsi_hard, atomic_nand_fetch<mode>_hard,
19526         atomic_nand_fetch<mode>_soft_gusa): Use arith_reg_dest and
19527         arith_reg_operand instead of register_operand.
19528         (atomic_nand_fetch<mode>_soft_tcb): Use arith_reg_dest and
19529         arith_reg_operand instead of register_operand.  Use logical_operand
19530         and K08.  Adjust asm sequence to allow R0 usage.
19531         (atomic_nand_fetch<mode>_soft_imask): Use arith_reg_dest and
19532         arith_reg_operand instead of register_operand.  Use logical_operand
19533         and K08.
19534
19535 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
19536
19537         PR other/63504
19538         * dwarf2out.c (add_AT_wide, mem_loc_descriptor, loc_descriptor):
19539         Use ggc_alloc<wide_int> instead of ggc_cleared_alloc<wide_int>.
19540         (attr_checksum, attr_checksum_ordered, hash_loc_operands): Checksum
19541         only get_full_len HOST_WIDE_INTs from get_val () array rather than
19542         all bits in *val_wide.
19543
19544 2015-01-28  Jan Hubicka  <hubicka@ucw.cz>
19545
19546         * varpool.c (tls_model_names): Fix names.
19547         (varpool_node::dump): Dump tls- prefix for tls models.
19548
19549 2015-01-28  Thomas Schwinge  <thomas@codesourcery.com>
19550             Bernd Schmidt  <bernds@codesourcery.com>
19551             Nathan Sidwell  <nathan@codesourcery.com>
19552
19553         * config/nvptx/mkoffload.c: New file.
19554         * config/nvptx/t-nvptx: Add build rules for it.
19555         * config.gcc <nvptx-*> [$enable_as_accelerator = yes]
19556         (extra_programs): Add mkoffload.
19557         * config/nvptx/nvptx.c (nvptx_record_offload_symbol): New
19558         function.
19559         (TARGET_RECORD_OFFLOAD_SYMBOL): Define macro to use it.
19560
19561 2015-01-28  Yuri Rumyantsev  <ysrumyan@gmail.com>
19562
19563         PR middle-end/64809
19564         * cfgexpand.c (reorder_operands): Skip debug gimples.
19565
19566 2015-01-28  Ilya Enkovich  <ilya.enkovich@intel.com>
19567
19568         PR tree-optimization/64277
19569         * tree-ssa-loop-niter.c (record_nonwrapping_iv): Use base
19570         range info when possible to refine estimation.
19571
19572 2015-01-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
19573
19574         PR tree-optimization/64718
19575         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Make bswap_type
19576         be a 16bit unsigned integer when n->range is 16.
19577         (bswap_replace): Convert src to that type if necessary for all bswap
19578         sizes.  Fix rotation right notation in nearby comment.  Use bswap_type
19579         set in pass_optimize_bswap::execute ().
19580
19581 2015-01-28  James Greenhalgh  <james.greenhalgh@arm.com>
19582
19583         * config/aarch64/aarch64-simd.md (aarch64_abs<mode>): New.
19584         * config/aarch64/aarch64-simd-builtins.def (abs): Split by
19585         integer and floating point variants.
19586         * config/aarch64/iterators.md (unspec): Add UNSPEC_ABS.
19587
19588 2015-01-28  Robert Suchanek  <robert.suchanek@imgtec.com>
19589
19590         * config/mips/mips.c (mips_hard_regno_mode_ok_p): Prohibit accumulators
19591         for all vector modes.
19592
19593 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
19594
19595         PR bootstrap/64612
19596         * doc/sourcebuild.texi (comdat_group): Document.
19597
19598 2015-01-28  Terry Guo  <terry.guo@arm.com>
19599
19600         * config/arm/thumb1.md (*thumb1_movpc_insn): New insn pattern.
19601
19602 2015-01-27  David Malcolm  <dmalcolm@redhat.com>
19603
19604         * toplev.c (print_version): Add param "show_global_state", and
19605         only print GGC and plugin information if it is true.
19606         (init_asm_output): Pass in "true" for the new param when calling
19607         print_version.
19608         (process_options): Likewise.
19609         (toplev::main): Likewise.
19610         * toplev.h (print_version): Add new param to decl.
19611
19612 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
19613
19614         PR ipa/60871
19615         PR ipa/64139
19616         * tree.c (lookup_binfo_at_offset): New function.
19617         (get_binfo_at_offset): Use it.
19618
19619 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
19620
19621         PR ipa/64282
19622         * gimple-fold.c (gimple_get_virt_method_for_vtable): Remove assert
19623         on vtable being vtable.
19624
19625 2015-01-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
19626
19627         * doc/extend.texi: s/390: Update documentation of hotpatch attribute.
19628         * doc/invoke.texi (-mhotpatch): s/390: Update documentation of
19629         -mhotpatch= option.
19630         * config/s390/s390.opt (mhotpatch): s/390: Remove -mhotpatch and
19631         -mno-hotpatch options.  Change syntax of -mhotpatch= option.
19632         * config/s390/s390.c (s390_hotpatch_trampoline_halfwords_default):
19633         Renamed.
19634         (s390_hotpatch_trampoline_halfwords_max): Renamed.
19635         (s390_hotpatch_hw_max): New name.
19636         (s390_hotpatch_trampoline_halfwords): Renamed.
19637         (s390_hotpatch_hw_before_label): New name.
19638         (get_hotpatch_attribute): Removed.
19639         (s390_hotpatch_hw_after_label): New name.
19640         (s390_handle_hotpatch_attribute): Add second parameter to hotpatch
19641         attribute.
19642         (s390_attribute_table): Ditto.
19643         (s390_function_num_hotpatch_trampoline_halfwords): Renamed.
19644         (s390_function_num_hotpatch_hw): New name.
19645         Remove special handling of inline functions and hotpatching.
19646         Return number of nops before and after the function label.
19647         (s390_can_inline_p): Removed.
19648         (s390_asm_output_function_label): Emit a configurable number of nops
19649         after the function label.
19650         (s390_option_override): Update -mhotpatch= syntax and remove -mhotpatch.
19651         (TARGET_CAN_INLINE_P) Removed.
19652         (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): New.
19653
19654 2015-01-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19655             Jiong Wang  <jiong.wang@arm.com>
19656
19657         * config/aarch64/aarch64.md (tb<optab><mode>1): Clobber CC reg instead
19658         of scratch reg.
19659         (cb<optab><mode>1): Likewise.
19660         * config/aarch64/iterators.md (bcond): New define_code_attr.
19661
19662 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19663
19664         * config/s390/s390.c (s390_memory_move_cost): Increase costs for
19665         memory accesses.
19666
19667 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19668
19669         * config/s390/s390.c (s390_register_move_cost): Increase costs for
19670         FPR->GPR moves.
19671
19672 2015-01-27  Richard Biener  <rguenther@suse.de>
19673
19674         * tree-vrp.c (update_value_range): Intersect the range with
19675         old recorded SSA name range information.
19676
19677 2015-01-27  Nick Clifton  <nickc@redhat.com>
19678
19679         * config/rl78/rl78.c (rl78_expand_prologue): In G10 mode push the
19680         BC, DE and HL registers directly, not via AX.
19681         When decrementing the stack pointer by a large amount, transfer SP
19682         into AX and perform the subtraction there.
19683         (rl78_expand_epilogue): Perform the inverse of the above
19684         enhancements.
19685
19686 2015-01-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19687
19688         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Remove.
19689
19690 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
19691             Yury Gribov  <y.gribov@samsung.com>
19692
19693         PR ubsan/64741
19694         * ubsan.c (ubsan_source_location): Refactor code.
19695         (ubsan_type_descriptor): Update type size. Refactor code.
19696
19697 2015-01-27  Richard Biener  <rguenther@suse.de>
19698
19699         PR tree-optimization/56273
19700         PR tree-optimization/59124
19701         PR tree-optimization/64277
19702         * tree-vrp.c (vrp_finalize): Emit array-bound warnings only
19703         from the first VRP pass.
19704
19705 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
19706
19707         PR ipa/64776
19708         * cgraphunit.c (cgraph_node::expand_thunk): If not this_adjusting,
19709         handle the first argument in the same loop as all the other arguments.
19710
19711         PR rtl-optimization/61058
19712         * jump.c (cleanup_barriers): Update basic block boundaries
19713         if BLOCK_FOR_INSN is non-NULL on PREV.
19714
19715 2015-01-27  Ilya Enkovich  <ilya.enkovich@intel.com>
19716
19717         * tree-chkp.c (chkp_call_returns_bounds_p): Fix handling of
19718         bounds narrowing, already instrumented calls and calls to
19719         not instrumentable functions.
19720
19721 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
19722
19723         PR tree-optimization/64807
19724         * wide-int.cc (wi::divmod_internal): Clear
19725         b_dividend[dividend_blocks_needed].
19726
19727 2015-01-26  DJ Delorie  <dj@redhat.com>
19728
19729         * config/rl78/rl78.c (move_elim_pass): Don't optimize away
19730         volatile memory references.
19731
19732 2015-01-26  Oleg Endo  <olegendo@gcc.gnu.org>
19733
19734         PR target/49263
19735         * config/sh/sh.c (sh_split_treg_set_expr): Invoke emit_insn before
19736         remove_insn.
19737         * config/sh/sh.md (tstsi_t): Don't try to optimize constant with right
19738         shifts if it already fits into K08.
19739
19740 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
19741
19742         PR ipa/64730
19743         * ipa-inline.c (inline_small_functions): Print "unknown" even
19744         if edge->call_stmt is non-NULL, but has builtins or unknown
19745         location.
19746
19747         PR middle-end/64421
19748         * omp-low.c (simd_clone_mangle): If DECL_ASSEMBLER_NAME starts
19749         with asterisk, skip the first character.
19750
19751 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
19752
19753         PR target/64806
19754         * config/i386/i386 (feature_priority): Revert the last P_POPCNT
19755         order change.
19756
19757 2015-01-26  Uros Bizjak  <ubizjak@gmail.com>
19758
19759         PR target/64795
19760         * config/i386/i386.md (*movdi_internal): Also check operand 0
19761         to determine TYPE_LEA operand.
19762         (*movsi_internal): Ditto.
19763
19764 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
19765
19766         * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add
19767         OPTION_MASK_QUAD_MEMORY_ATOMIC.
19768
19769 2015-01-26  Renlin Li  <renlin.li@arm.com>
19770
19771         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Correct
19772         the comment.
19773         * config/aarch64/aarch64.md (tlsle_small_<mode>): Add left shift 12-bit
19774         for higher part.
19775
19776 2015-01-26  Richard Biener  <rguenther@suse.de>
19777
19778         PR middle-end/64764
19779         * tree-ssa-uninit.c (is_pred_expr_subset_of): Handle
19780         combining two BIT_AND_EXPR predicates.
19781
19782 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
19783
19784         PR bootstrap/64754
19785         * tree-ssa-structalias.c (new_var_info): Initialize ruid.
19786
19787 2015-01-26  Terry Guo  <terry.guo@arm.com>
19788
19789         * config/arm/arm.c (arm_file_start): Update the assignment of
19790         Tag_ABI_HardFP_use.
19791
19792 2015-01-25  James Greenhalgh  <james.greenhalgh@arm.com>
19793
19794         * config/arm/arm-cores.def (cortex-a57): Use the new Cortex-A57
19795         pipeline model.
19796         config/arm/arm.md: Include the new Cortex-A57 model.
19797         (generic_sched): Don't use generic_sched when tuning for
19798         Cortex-A57.
19799
19800 2015-01-25  Allan Sandfeld Jensen  <sandfeld@kde.org>
19801             Uros Bizjak  <ubizjak@gmail.com>
19802
19803         * config/i386/i386.c (get_builtin_code_for_version): Add
19804         support for BMI and BMI2 multiversion functions.
19805
19806 2015-01-25  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
19807
19808         * emit-rtl.h (store_bit_field): Move prototype to expmed.h.
19809         (extract_bit_field): Likewise.
19810         (extract_low_bits): Likewise.
19811         (expand_mult): Likewise.
19812         (expand_mult_highpart_adjust): Likewise.
19813
19814 2015-01-24  H.J. Lu  <hongjiu.lu@intel.com>
19815
19816         * config/i386/driver-i386.c (host_detect_local_cpu): Check new
19817         Silvermont, Haswell, Broadwell and Knights Landing model numbers.
19818         * config/i386/i386.c (processor_model): Add
19819         M_INTEL_COREI7_BROADWELL.
19820         (arch_names_table): Add "broadwell".
19821
19822 2015-01-24  Oleg Endo  <olegendo@gcc.gnu.org>
19823
19824         PR target/49263
19825         PR target/53987
19826         PR target/64345
19827         PR target/59533
19828         PR target/52933
19829         PR target/54236
19830         PR target/51244
19831         * config/sh/sh-protos.h
19832         (sh_extending_set_of_reg::can_use_as_unextended_reg,
19833         sh_extending_set_of_reg::use_as_unextended_reg,
19834         sh_is_nott_insn, sh_movt_set_dest, sh_movrt_set_dest, sh_is_movt_insn,
19835         sh_is_movrt_insn, sh_insn_operands_modified_between_p,
19836         sh_reg_dead_or_unused_after_insn, sh_in_recog_treg_set_expr,
19837         sh_recog_treg_set_expr, sh_split_treg_set_expr): New functions.
19838         (sh_treg_insns): New class.
19839         * config/sh/sh.c (TARGET_LEGITIMATE_COMBINED_INSN): Define target hook.
19840         (scope_counter): New class.
19841         (sh_legitimate_combined_insn, sh_is_nott_insn, sh_movt_set_dest,
19842         sh_movrt_set_dest, sh_reg_dead_or_unused_after_insn,
19843         sh_extending_set_of_reg::can_use_as_unextended_reg,
19844         sh_extending_set_of_reg::use_as_unextended_reg, sh_recog_treg_set_expr,
19845         sh_in_recog_treg_set_expr, sh_try_split_insn_simple,
19846         sh_split_treg_set_expr): New functions.
19847         (addsubcosts): Handle treg_set_expr.
19848         (sh_rtx_costs): Handle IF_THEN_ELSE and ZERO_EXTRACT.
19849         (sh_rtx_costs): Use arith_reg_operand in SIGN_EXTEND and ZERO_EXTEND.
19850         (sh_rtx_costs): Handle additional bit test patterns in EQ and AND cases.
19851         (sh_insn_operands_modified_between_p): Make non-static.
19852         * config/sh/predicates.md (zero_extend_movu_operand): Allow
19853         simple_mem_operand in addition to displacement_mem_operand.
19854         (zero_extend_operand): Don't allow zero_extend_movu_operand.
19855         (treg_set_expr, treg_set_expr_not_const01,
19856         arith_reg_or_treg_set_expr): New predicates.
19857         * config/sh/sh.md (tstsi_t): Use arith_reg_operand and
19858         arith_or_int_operand instead of logical_operand.  Convert to
19859         insn_and_split.  Try to optimize constant operand in splitter.
19860         (tsthi_t, tstqi_t): Fold into *tst<mode>_t.  Convert to insn_and_split.
19861         (*tstqi_t_zero): Delete.
19862         (*tst<mode>_t_subregs): Add !sh_in_recog_treg_set_expr split condition.
19863         (tstsi_t_and_not): Delete.
19864         (tst<mode>_t_zero_extract_eq): Rename to *tst<mode>_t_zero_extract.
19865         Convert to insn_and_split.
19866         (unnamed split, tstsi_t_zero_extract_xor,
19867         tstsi_t_zero_extract_subreg_xor_little,
19868         tstsi_t_zero_extract_subreg_xor_big): Delete.
19869         (*tstsi_t_shift_mask): New insn_and_split.
19870         (cmpeqsi_t, cmpgesi_t): Add new split for const_int 0 operands and try
19871         to recombine with surrounding insns when splitting.
19872         (*negtstsi): Add !sh_in_recog_treg_set_expr condition.
19873         (cmp_div0s_0, cmp_div0s_1, *cmp_div0s_0, *cmp_div0s_1): Rewrite as ...
19874         (cmp_div0s, *cmp_div0s_1, *cmp_div0s_2, *cmp_div0s_3, *cmp_div0s_4,
19875         *cmp_div0s_5, *cmp_div0s_6): ... these new insn_and_split patterns.
19876         (*cbranch_div0s: Delete.
19877         (*addc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
19878         Try to recombine with surrounding insns when splitting.  Add operand
19879         order variants.
19880         (*addc_t_r, *addc_r_t): Use treg_set_expr_not_const01.
19881         (*addc_r_r_1, *addc_r_lsb, *addc_r_r_lsb, *addc_r_lsb_r, *addc_r_msb,
19882         *addc_r_r_msb, *addc_2r_msb): Delete.
19883         (*addc_2r_lsb): Rename to *addc_2r_t.  Use treg_set_expr.  Add operand
19884         order variant.
19885         (*addc_negreg_t): New insn_and_split.
19886         (*subc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
19887         Try to recombine with surrounding insns when splitting.
19888         Add operand order variants.
19889         (*subc_negt_reg, *subc_negreg_t, *reg_lsb_t, *reg_msb_t): New
19890         insn_and_split patterns.
19891         (*rotcr): Use arith_reg_or_treg_set_expr.  Try to recombine with
19892         surrounding insns when splitting.
19893         (unnamed rotcr split): Use arith_reg_or_treg_set_expr.
19894         (*rotcl): Likewise.  Add zero_extract variant.
19895         (*ashrsi2_31): New insn_and_split.
19896         (*negc): Convert to insn_and_split.  Use treg_set_expr.
19897         (*zero_extend<mode>si2_disp_mem): Update comment.
19898         (movrt_negc, *movrt_negc, nott): Add !sh_in_recog_treg_set_expr split
19899         condition.
19900         (*mov_t_msb_neg, mov_neg_si_t): Use treg_set_expr.  Try to recombine
19901         with surrounding insns when splitting.
19902         (any_treg_expr_to_reg): New insn_and_split.
19903         (*neg_zero_extract_0, *neg_zero_extract_1, *neg_zero_extract_2,
19904         *neg_zero_extract_3, *neg_zero_extract_4, *neg_zero_extract_5,
19905         *neg_zero_extract_6, *zero_extract_0, *zero_extract_1,
19906         *zero_extract_2): New single bit zero extract patterns.
19907         (bld_reg, *bld_regqi): Fold into bld<mode>_reg.
19908         (*get_thread_pointersi, store_gbr, *mov<mode>_gbr_load,
19909         *mov<mode>_gbr_load, *mov<mode>_gbr_load, *mov<mode>_gbr_load,
19910         *movdi_gbr_load): Use arith_reg_dest instead of register_operand for
19911         set destination.
19912         (set_thread_pointersi, load_gbr): Use arith_reg_operand instead of
19913         register_operand for set source.
19914
19915 2015-01-23  Jan Hubicka  <hubicka@ucw.cz>
19916
19917         * i386.opt (prefetch_sse): New targetsave.
19918         * i386.c (ix86_function_specific_save): Save prefetch_sse.
19919         (ix86_function_specific_restore): Restore prefetch_sse and initialize
19920         ix86_cost/ix86_tune_cost.
19921
19922 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
19923
19924         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
19925         Support the JIT by using 0 as the language type.
19926
19927 2015-01-23  Vladimir Makarov  <vmakarov@redhat.com>
19928
19929         PR target/64317
19930         * lra-lives.c (make_hard_regno_born): Add parameter.  Don't make
19931         REAL_PIC_OFFSET_TABLE_REGNUM conflicting with pic offset pseudo.
19932         (mark_regno_live, process_bb_lives): Pass new parameter value to
19933         make_hard_regno_born.
19934
19935 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
19936
19937         PR rtl-optimization/63637
19938         PR rtl-optimization/60663
19939         * cse.c (merge_equiv_classes): Set new_elt->cost to MAX_COST
19940         if elt->cost is MAX_COST for ASM_OPERANDS.
19941         (find_sets_in_insn): Fix up comment typo.
19942         (cse_insn): Don't set src_volatile for all non-volatile
19943         ASM_OPERANDS in PARALLELs, but just those with multiple outputs
19944         or with "memory" clobber.  Set elt->cost to MAX_COST
19945         for ASM_OPERANDS in PARALLEL.  Set src_elt->cost to MAX_COST
19946         if new_src is ASM_OPERANDS and elt->cost is MAX_COST.
19947
19948 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
19949
19950         * config/i386/sse.md (sse2_loadld): Set attribute isa to sse2 for
19951         alternative 1.
19952
19953 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
19954
19955         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Move definition to
19956         libgcc/config/i386/elf-lib.h.
19957
19958 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
19959
19960         PR driver/64737
19961         * gcc.c (print_configuration): Don't print a blank line at the end
19962         here...
19963         (run_attempt): ... but here unstead.
19964
19965         PR middle-end/64734
19966         * omp-low.c (scan_sharing_clauses): Don't ignore
19967         OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION GOMP_MAP_POINTER clauses
19968         on target data/update constructs.
19969
19970 2015-01-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
19971
19972         PR target/50928
19973         * config/m32c/m32c.c (encode_pattern_1): Removed gcc_unreachable here.
19974         (DEBUG_RELOAD): Removed define.
19975         (m32c_limit_reload_class): Enable traces with if DEBUG0.
19976         (m32c_function_arg): Added a type cast.
19977         (m32c_legitimize_reload_address): Push A_REGS reload with PSImode.
19978         * config/m32c/addsub.md (addsi3_1): Specify the mode of all arguments.
19979         * config/m32c/bitops.md (andqi3_16): Likewise.
19980         * config/m32c/mov.md (m32c_immd_dbl_mov): Likewise.
19981         (push_a01_l): Likewise.
19982
19983 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
19984
19985         PR jit/64721
19986         * main.c (main): Construct toplev instances with init_signals=true.
19987         * toplev.c (general_init): Add param "init_signals", and use it to
19988         conditionalize the calls to signal and host_hooks.extra_signals.
19989         (toplev::toplev): Add param "init_signals".
19990         (toplev::main): When invoking general_init, pass m_init_signals
19991         to control whether signal-handlers are installed.
19992         * toplev.h (toplev::toplev): Add param "init_signals".
19993         (toplev::m_init_signals): New field.
19994
19995 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
19996
19997         PR jit/64722
19998         * emit-rtl.c (init_emit_regs): Set pic_offset_table_rtx to
19999         NULL_RTX before testing PIC_OFFSET_TABLE_REGNUM, since the
20000         latter may be affected by the former (e.g. on i686).
20001
20002 2015-01-23  Martin Liska  <mliska@suse.cz>
20003
20004         * tree.h (tree_vec_elt_check): Workaround -Wstrict-overflow
20005         false positive during profiledbootstrap.
20006
20007 2015-01-23  Tom de Vries  <tom@codesourcery.com>
20008
20009         PR libgomp/64672
20010         * lto-opts.c (lto_write_options): Output non-explicit conservative
20011         -fno-openacc.
20012         * lto-wrapper.c (merge_and_complain): Handle merging -fopenacc.
20013         (append_compiler_options): Pass -fopenacc through.
20014
20015 2015-01-23  Tom de Vries  <tom@codesourcery.com>
20016
20017         PR libgomp/64707
20018         * lto-opts.c (lto_write_options): Output non-explicit conservative
20019         -fno-openmp.
20020         * lto-wrapper.c (merge_and_complain): Handle merging -fopenmp.
20021         (append_compiler_options): Pass -fopenmp through.
20022
20023 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
20024
20025         PR debug/64511
20026         * dwarf2out.c (struct dw_loc_descr_node): Add chain_next
20027         GTY markup.
20028
20029         * diagnostic-core.h (internal_error_no_backtrace): New prototype.
20030         * diagnostic.def (DK_ICE_NOBT): New kind.
20031         * diagnostic.c (diagnostic_action_after_output): Handle DK_ICE_NOBT
20032         like DK_ICE, but never print backtrace.
20033         (diagnostic_report_diagnostic): Handle DK_ICE_NOBT like DK_ICE.
20034         (internal_error_no_backtrace): New function.
20035         * gcc.c (execute): Use internal_error_no_backtrace instead of
20036         internal_error.
20037
20038 2015-01-22  Jeff Law  <law@redhat.com>
20039
20040         PR target/52076
20041         * config/m68k/m68k.md (xorsi3_internal): Twiddle constraints to
20042         improve code density for small immediate to memory case.
20043         (insv): Better handle bitfield assignments when the field is
20044         being set to all ones.
20045         * config/m68k/predicates.md (reg_or_pow2_m1_operand): New
20046         operand predicate.
20047
20048 2015-01-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20049             Jakub Jelinek  <jakub@redhat.com>
20050
20051         PR middle-end/64729
20052         * gcc.c (LINK_SSP_SPEC): Handle -fstack-protector-explicit
20053         for !TARGET_LIBC_PROVIDES_SSP version and
20054         -fstack-protector-{all,strong,explicit} otherwise.
20055         * config/freebsd.h (LINK_SSP_SPEC): Handle
20056         -fstack-protector-{strong,explicit}.
20057
20058 2015-01-22  Jan Hubicka  <hubicka@ucw.cz>
20059             H.J. Lu  <hongjiu.lu@intel.com>
20060
20061         PR ipa/64694
20062         * ipa-inline.c (inline_small_functions): Fix thinko in maintenance of
20063         heap.
20064
20065 2015-01-22  Wei Mi  <wmi@google.com>
20066
20067         PR rtl-optimization/64557
20068         * dse.c (record_store): Call get_addr for mem_addr.
20069         (check_mem_read_rtx): Likewise.
20070
20071 2015-01-22  Eric Botcazou  <ebotcazou@adacore.com>
20072
20073         * fold-const.c (const_binop): Add early return for non-tcc_binary.
20074
20075 2015-01-22  Chen Gang  <gang.chen.5i5j@gmail.com>
20076
20077         * toplev.c (init_local_tick): Process the failure when read
20078         fails for random_seed.
20079
20080         * ubsan.c (ubsan_type_descriptor): Use 'pretty_print' for
20081         'pretty_name' to avoid memory overflow.
20082
20083 2015-01-22  Richard Biener  <rguenther@suse.de>
20084
20085         PR middle-end/64728
20086         * tree-ssa-coalesce.c (coalesce_partitions): Do not perform
20087         abnormal coalescing on undefined SSA names.
20088
20089 2015-22-01  Uros Bizjak  <ubizjak@gmail.com>
20090
20091         PR target/64688
20092         PR target/64477
20093         * config/i386/sse.md (vec_set<mode>_0): Use (Yi/r/C) constraints
20094         for alternative 3.
20095         (*vec_dup<mode>): Use (Yi/$r) constraints for alternative 1.
20096
20097 2015-01-22  Trevor Saunders  <tsaunders@mozilla.com>
20098
20099         PR middle-end/63325
20100         * fold-const.c (fold_checksum_tree): Don't include value of
20101         expr->decl_with_vis.symtab_node in the checksum.
20102
20103 2015-01-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20104
20105         * config/s390/s390.md (atomic code attribute): Fix typo "ior" -> "or".
20106
20107 2015-01-22  Max Ostapenko  <m.ostapenko@partner.samsung.com>
20108
20109         PR driver/64690
20110         * gcc.c (insert_comments): New function.
20111         (try_generate_repro): Call it.
20112         (append_text): Removed.
20113
20114 2015-01-22  Richard Biener  <rguenther@suse.de>
20115
20116         * ipa-inline.c (can_inline_edge_p): Disable inlining of edges
20117         with IL incompatible options.  Properly honor user optimize
20118         attributes.
20119
20120 2015-01-21  Segher Boessenkool  <segher@kernel.crashing.org>
20121
20122         PR rtl-optimization/64682
20123         * combine.c (distribute_notes): When moving a death note for
20124         a register that is set in the new I2, make sure to put it
20125         before that new I2.
20126
20127 2015-01-21  David Edelsohn  <dje.gcc@gmail.com>
20128
20129         * config/rs6000/rs6000.c (rs6000_file_start): Use rs6000_isa_flags
20130         not TARGET_DEFAULT.
20131
20132 2015-01-21  Jakub Jelinek  <jakub@redhat.com>
20133
20134         PR debug/64511
20135         * simplify-rtx.c (simplify_relational_operation_1): Don't try to
20136         optimize (eq/ne (and (side_effects) (const_int 0)) (const_int 0))
20137         into (eq/ne (and (not (side_effects)) (const_int 0)) (const_int 0)).
20138
20139         PR sanitizer/64706
20140         * doc/invoke.texi (-fsanitize=vptr): Document.
20141
20142         PR rtl-optimization/62078
20143         * dse.c: Include cfgcleanup.h.
20144         (rest_of_handle_dse): For -fnon-call-exceptions, if DSE removed
20145         anything call purge_all_dead_edges and cleanup_cfg at the end
20146         of the pass.
20147
20148 2015-01-21  Jan Hubicka  <hubicka@ucw.cz>
20149
20150         * ipa-utils.c (ipa_merge_profiles): Avoid ICE on mismatch in indirect
20151         edges.
20152
20153 2015-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
20154
20155         * gimplify.c (gimplify_function_tree): Check the no_sanitize_thread
20156         decl attribute.
20157
20158 2015-01-21  David Sherwood  <david.sherwood@arm.com>
20159             Tejas Belagod <Tejas.Belagod@arm.com>
20160
20161         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Removed.
20162         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class): Removed.
20163         * config/aarch64/aarch64-protos.h (aarch64_cannot_change_mode_class):
20164         Removed.
20165
20166 2015-01-21  David Sherwood  <david.sherwood@arm.com>
20167             Tejas Belagod <Tejas.Belagod@arm.com>
20168
20169         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist)
20170         (aarch64_reverse_mask): New decls.
20171         * config/aarch64/iterators.md (UNSPEC_REV_REGLIST): New enum.
20172         (insn_count): New mode_attr.
20173         * config/aarch64/aarch64-simd.md (vec_store_lanesoi, vec_store_lanesci)
20174         (vec_store_lanesxi, vec_load_lanesoi, vec_load_lanesci)
20175         (vec_load_lanesxi): Made ABI compliant for Big Endian targets.
20176         (aarch64_rev_reglist, aarch64_simd_ld2, aarch64_simd_ld3)
20177         (aarch64_simd_ld4, aarch64_simd_st2, aarch64_simd_st3)
20178         (aarch64_simd_st4): New patterns.
20179         * config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist)
20180         (aarch64_reverse_mask): New functions.
20181
20182 2015-01-21  Richard Sandiford  <richard.sandiford@arm.com>
20183
20184         * config/aarch64/aarch64-protos.h (aarch64_simd_disambiguate_copy):
20185         Declare.
20186         * config/aarch64/aarch64.c (aarch64_classify_address): Allow extra
20187         addressing modes for BE.
20188         (aarch64_print_operand): Add 'R' specifier.
20189         (aarch64_simd_disambiguate_copy): Delete.
20190         (aarch64_simd_emit_reg_reg_move): New function.
20191         * config/aarch64/aarch64-simd.md: Use aarch64_simd_emit_reg_reg_move
20192         in define_splits for structural moves.
20193         (mov<mode>): Use less restrictive predicates.
20194         (*aarch64_mov<mode>): Simplify and only allow for LE.
20195         (*aarch64_be_movoi, *aarch64_be_movci, *aarch64_be_movxi): New.
20196
20197 2015-01-21  Alan Hayward  <alan.hayward@arm.com>
20198
20199         * rtlanal.c (subreg_get_info): Exit early for simple and common cases.
20200
20201 2015-01-21  Richard Henderson  <rth@redhat.com>
20202
20203         PR target/64669
20204         * ccmp.c (used_in_cond_stmt_p): Remove.
20205         (expand_ccmp_expr): Don't use it.
20206
20207 2015-01-21  Nick Clifton  <nickc@redhat.com>
20208
20209         * config/rl78/rl78.c (rl78_calculate_death_notes): Look inside
20210         PARALLELs.
20211
20212 2015-01-21  Richard Biener  <rguenther@suse.de>
20213
20214         PR middle-end/64313
20215         * tree-core.h (builtin_info, builtin_info_type): Turn from
20216         an object with two arrays into an array of an object with
20217         decl and two flags, implicit_p and declared_p.
20218         * tree.h (builtin_decl_explicit, builtin_decl_implicit,
20219         set_builtin_decl, set_builtin_decl_implicit_p,
20220         builtin_decl_explicit_p, builtin_decl_implicit_p): Adjust.
20221         (set_builtin_decl_declared_p, builtin_decl_declared_p): New functions.
20222         * builtins.c (builtin_info): Adjust.
20223         * gimplify.c (gimplify_addr_expr): References to builtins
20224         that have been declared by the user makes them eligible for
20225         use by the compiler.  Call set_builtin_decl_implicit_p on them.
20226
20227 2015-01-20  Jeff Law  <law@redhat.com>
20228
20229         PR target/59946
20230         * config/m68k/m68k.md (Comparison expanders and patterns): Do not
20231         allow pc-relative addresses in operand predicates or constraints.
20232
20233 2015-01-21  Bin Cheng  <bin.cheng@arm.com>
20234
20235         * config/arm/arm.c (arm_cortex_a53_tune, arm_cortex_a57_tune): Prefer
20236         neon on aarch32 processors for stringops.
20237
20238 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
20239
20240         PR ipa/63576
20241         * ipa-utils.c (ipa_merge_profiles): Merge speculative edges.
20242
20243 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
20244
20245         PR lto/45375
20246         * ipa-inline.c: Include lto-streamer.h
20247         (report_inline_failed_reason): Output source file differences and
20248         flags on optimization/target node mismatch.
20249         (can_inline_edge_p): Consider caller to be the outer inline function;
20250         be less restrictive about matching opimize and optimize_size attributes.
20251         (inline_account_function_p): Break out from ...
20252         (inline_small_functions): ... here.
20253         * ipa-inline-transform.c (clone_inlined_nodes): Use
20254         inline_account_function_p.
20255         (inline_call): Use optimize attribution; use inline_account_function_p.
20256         (inline_transform): Use opt_for_fn.
20257         * ipa-inline.h (inline_account_function_p): Declare.
20258
20259 2015-01-20  Jakub Jelinek  <jakub@redhat.com>
20260
20261         PR debug/64663
20262         * dwarf2out.c (decl_piece_node): Don't put bitsize into
20263         mode if bitsize <= 0.
20264         (decl_piece_bitsize, adjust_piece_list, add_var_loc_to_decl,
20265         dw_sra_loc_expr): Use HOST_WIDE_INT instead of int for bit
20266         sizes and positions.
20267
20268 2015-01-20  Chung-Lin Tang  <cltang@codesourcery.com>
20269
20270         * config/nios2/nios2.c (nios2_asm_file_end): Implement
20271         TARGET_ASM_FILE_END hook for adding .note.GNU-stack section when
20272         needed.
20273         (TARGET_ASM_FILE_END): Define.
20274
20275 2015-01-20  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
20276
20277         * config/arm/arm-protos.h (enum arm_sched_autopref): New constants.
20278         (struct tune_params): Use the enum.
20279         * arm.c (arm_*_tune): Update.
20280         (arm_option_override): Update.
20281
20282 2015-01-20  Richard Biener  <rguenther@suse.de>
20283
20284         PR ipa/64684
20285         * ipa-reference.c (add_static_var): Inline ...
20286         (analyze_function): ... here after splitting out from ...
20287         (is_proper_for_analysis): ... this.
20288
20289 2015-01-20  Matthew Wahab  <matthew.wahab@arm.com>
20290
20291         PR target/64149
20292         * config/arm/arm.opt: Remove lra option and arm_lra_flag variablesle.
20293         * config/arm/arm.h (MODE_BASE_REG_CLASS): Remove use of arm_lra_flagag,
20294         replace the conditional with it's true branch.
20295         * config/arm/arm.config (TARGET_LRA_P): Set to hook_bool_void_true.
20296         (arm_lra_p): Remove.
20297
20298 2015-01-20  Eric Botcazou  <ebotcazou@adacore.com>
20299
20300         * config/visium/visium.h (LIB_SPEC): Adjust in default case.
20301
20302 2015-01-20  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
20303
20304         * config/tilegx/mul-tables.c: Move symtab.h include after
20305         coretypes.h include.
20306         * config/tilepro/mul-tables.c: Add includes hashtab.h, hash-set.h,
20307         vec.h, machmode.h, tm.h, hard-reg-set.h, input.h, function.h, rtl.h,
20308         flags.h, statistics.h, double-int.h, real.h, fixed-value.h, alias.h,
20309         wide-int.h, inchash.h, tree.h, insn-config.h, expmed.h, dojump.h,
20310         explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
20311
20312 2015-01-20  Igor Zamyatin  <igor.zamyatin@intel.com>
20313
20314         PR bootstrap/64676
20315         Revert:
20316         2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
20317
20318         PR rtl-optimization/64081
20319         * loop-iv.c (def_pred_latch_p): New function.
20320         (latch_dominating_def): Allow specific cases with non-single
20321         definitions.
20322         (iv_get_reaching_def): Likewise.
20323         (check_complex_exit_p): New function.
20324         (check_simple_exit): Use check_complex_exit_p to allow certain cases
20325         with exits not executing on any iteration.
20326
20327 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
20328
20329         PR lto/45375
20330         * i386.c (ix86_option_override_internal): Use ix86_tune_cost
20331         to set branch cost.
20332
20333 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
20334
20335         PR lto/45375
20336         * i386.c (gate): Check flag_expensive_optimizations and
20337         optimize_size.
20338         (ix86_option_override_internal): Drop optimize_size condition
20339         on MASK_ACCUMULATE_OUTGOING_ARGS, MASK_VZEROUPPER,
20340         MASK_AVX256_SPLIT_UNALIGNED_LOAD, MASK_AVX256_SPLIT_UNALIGNED_STORE,
20341         MASK_PREFER_AVX128.
20342         (ix86_avx256_split_vector_move_misalign,
20343         ix86_avx256_split_vector_move_misalign): Check optimize_insn_for_speed.
20344         * sse.md (all uses of TARGET_PREFER_AVX128): Add
20345         optimize_insn_for_speed_p check.
20346
20347 2015-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
20348
20349         * config/mips/mips.h (FP_ASM_SPEC): New define.
20350         (ASM_SPEC): Remove floating-point options and use FP_ASM_SPEC
20351         instead.
20352
20353 2015-01-19  Oleg Endo  <olegendo@gcc.gnu.org>
20354
20355         PR target/53988
20356         * config/sh/sh-protos.h (sh_find_set_of_reg): Make sure not to return
20357         nullptr for insn when reaching the first insn.
20358         * config/sh/sh.c (sh_unspec_insn_p): Rewrite using subrtx_iterator.
20359         (sh_insn_operands_modified_between_p): Add nullptr check.
20360         (sh_find_extending_set_of_reg): Fix log message.  Don't accept
20361         sign extending mem load if the insn contains any UNSPEC or
20362         UNSPEC_VOLATILE.
20363
20364 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
20365
20366         * params.def (inline-unit-growth): Drop to 15%.
20367         * invoke.texi (inline-unit-growth): Document change.
20368
20369 2015-01-19  Martin Liska  <mliska@suse.cz>
20370
20371         PR ipa/64668
20372         * ipa-icf-gimple.c (func_checker::compare_operand): Call proper
20373         function for second argument of OBJ_TYPE_REF.
20374
20375 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
20376
20377         PR ipa/64218
20378         * ipa-inline.c (want_inline_function_to_all_callers_p): Fix check
20379         whether function is an alias.
20380
20381 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
20382
20383         * ipa-devirt.c (ipa_devirt): Drop polymorphic call info in hopeless
20384         cases.
20385
20386 2015-01-19  Vladimir Makarov  <vmakarov@redhat.com>
20387
20388         PR rtl-optimization/64671
20389         * lra-remat.c (operand_to_remat): Don't consider jump and call
20390         insns.
20391
20392 2015-01-19  David Edelsohn  <dje.gcc@gmail.com>
20393
20394         PR target/59828
20395         * config/rs6000/default64.h: Include rs6000-cpus.def.
20396         (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use ISA 2.7 (POWER8).
20397         (TARGET_DEFAULT) [BIG_ENDIAN]: Use POWER4.
20398         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add POWER7
20399         and POWER8.
20400         * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Always default to
20401         POWER8.
20402         * config/rs6000/rs6000.c (rs6000_file_start): Emit .machine
20403         pseudo-op to specify assembler dialect.
20404
20405 2015-01-19  Martin Liska  <mliska@suse.cz>
20406
20407         PR ipa/64664
20408         * ipa-icf.c (sem_item_optimizer::filter_removed_items):
20409         Handle safe potentially removed nodes during filtering.
20410
20411 2015-01-19  Martin Liska  <mliska@suse.cz>
20412
20413         * doc/extend.texi (no_icf): Add new attribute description.
20414         * ipa-icf.c (sem_item_optimizer::merge_classes): Handle cases
20415         where the pass attempts to merge a function with no_icf attribute.
20416
20417 2015-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
20418
20419         PR target/64532
20420         * doc/md.texi (ARM Options): Document register constraints.
20421
20422 2015-01-19  Jiong Wang  <jiong.wang@arm.com>
20423             Andrew Pinski  <apinski@cavium.com>
20424
20425         PR target/64304
20426         * config/aarch64/aarch64.md (define_insn "*ashl<mode>3_insn"): Deleted.
20427         (ashl<mode>3): Don't expand if operands[2] is not constant.
20428
20429 2015-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20430
20431         PR target/64448
20432         * config/aarch64/aarch64-simd.md (aarch64_simd_bsl<mode>_internal):
20433         Match xor-and-xor RTL pattern.
20434
20435 2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
20436
20437         PR rtl-optimization/64081
20438         * loop-iv.c (def_pred_latch_p): New function.
20439         (latch_dominating_def): Allow specific cases with non-single
20440         definitions.
20441         (iv_get_reaching_def): Likewise.
20442         (check_complex_exit_p): New function.
20443         (check_simple_exit): Use check_complex_exit_p to allow certain cases
20444         with exits not executing on any iteration.
20445
20446 2015-01-19  Jakub Jelinek  <jakub@redhat.com>
20447
20448         * common.opt (fgraphite): Fix a typo.
20449
20450 2015-01-19  Felix Yang  <felix.yang@huawei.com>
20451
20452         * config/aarch64/aarch64-simd.md (aarch64_<maxmin_uns>p<mode>): New
20453         pattern.
20454         * config/aarch64/aarch64-simd-builtins.def (smaxp, sminp, umaxp,
20455         uminp, smax_nanp, smin_nanp): New builtins.
20456         * config/aarch64/arm_neon.h (vpmax_s8, vpmax_s16, vpmax_s32,
20457         vpmax_u8, vpmax_u16, vpmax_u32, vpmaxq_s8, vpmaxq_s16, vpmaxq_s32,
20458         vpmaxq_u8, vpmaxq_u16, vpmaxq_u32, vpmax_f32, vpmaxq_f32, vpmaxq_f64,
20459         vpmaxqd_f64, vpmaxs_f32, vpmaxnm_f32, vpmaxnmq_f32, vpmaxnmq_f64,
20460         vpmaxnmqd_f64, vpmaxnms_f32, vpmin_s8, vpmin_s16, vpmin_s32, vpmin_u8,
20461         vpmin_u16, vpmin_u32, vpminq_s8, vpminq_s16, vpminq_s32, vpminq_u8,
20462         vpminq_u16, vpminq_u32, vpmin_f32, vpminq_f32, vpminq_f64, vpminqd_f64,
20463         vpmins_f32, vpminnm_f32, vpminnmq_f32, vpminnmq_f64, vpminnmqd_f64,
20464         vpminnms_f32): Rewrite using builtin functions.
20465
20466 2015-01-19  Thomas Schwinge  <thomas@codesourcery.com>
20467
20468         PR libgomp/64625
20469         * omp-low.c (offload_symbol_decl): Remove variable.
20470         (get_offload_symbol_decl): Remove function.
20471         (expand_omp_target): For BUILT_IN_GOMP_TARGET,
20472         BUILT_IN_GOMP_TARGET_DATA, BUILT_IN_GOMP_TARGET_UPDATE pass NULL
20473         instead of &__OFFLOAD_TABLE__, for BUILT_IN_GOACC_DATA_START,
20474         BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL,
20475         BUILT_IN_GOACC_UPDATE don't pass it at all.
20476
20477 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
20478
20479         * tree-sra.c (some_callers_have_mismatched_arguments_p): Allow thunk
20480         callers.
20481
20482 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
20483
20484         * ipa-chkp.c (chkp_produce_thunks): Add early param
20485         to split thunks production into two passes.  Keep
20486         'always_inline' function bodies after the first pass.
20487         (pass_data_ipa_chkp_early_produce_thunks): New.
20488         (pass_ipa_chkp_early_produce_thunks): New.
20489         (pass_ipa_chkp_produce_thunks::execute): Adjust to new
20490         chkp_produce_thunks signature.
20491         (make_pass_ipa_chkp_early_produce_thunks): New.
20492         * passes.def (pass_ipa_chkp_early_produce_thunks): New.
20493         (pass_ipa_chkp_produce_thunks): Move after local optimizations.
20494         * tree-pass.h (make_pass_ipa_chkp_early_produce_thunks): New.
20495
20496 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
20497
20498         * cgraph.c (cgraph_node::dump): Dump profile flags.
20499
20500 2015-01-18  Oleg Endo  <olegendo@gcc.gnu.org>
20501
20502         PR target/64652
20503         * config/sh/sh.md (udivsi3_i4, divsi3_i4): Make use of sfunc address
20504         reg appear first in the parallel.
20505
20506 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
20507
20508         * ipa-reference.c (set_reference_optimization_summary,
20509         ipa_reference_get_not_written_global): Do nothing if ipa-reference is
20510         disabled.
20511         (ignore_module_statics): New static var.
20512         (propagate_bits): If ipa-reference is disabled, do not look into local
20513         properties.
20514         (analyze_function): Disable analysis when ipa_reference is disabled.
20515         (generate_summary): Do not dump when reference is disabled;
20516         collect vars accessed from functions with ipa-reference disabled.
20517         (get_read_write_all_from_node): When ipa-reference is disabled, use the
20518         node flags.
20519         (gate): Enable for LTO.
20520         (ignore_edge_p): New function.
20521         (propagate): Skip functions w/o ipa-reference analysis.
20522         * optc-save-gen.awk: Handle optimize_debug correctly.
20523         * opth-gen.awk: Likewise.
20524         * common.opt (fauto-inc-dec, fdelete-dead-exceptions, ffunction-cse,
20525         fgraphite, fstrict-volatile-bitfields, fira-algorithm, fira-region,
20526         fira-share-save-slots, fira-share-spill-slots,
20527         fmodulo-sched-allow-regmoves, fpartial-inlining,
20528         sched-stalled-insns, fsched-stalled-insns-dep, fstrict-overflow,
20529         ftracer, ftree-parallelize-loops, fassociative-math,
20530         freciprocal-math, fvect-cost-model, fsimd-cost-model): Mark as
20531         Optimization
20532         (fauto-profile, fcommon, fdata-sections, fipa-icf-variables,
20533         ftoplevel-reorder, funit-at-a-time, fwhole-program): Do not mark as
20534         Optimization.
20535         * ipa-icf.c (gate, sem_item_optimizer::filter_removed_items):
20536         Fix for IPA.
20537
20538 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
20539
20540         PR ipa/64378
20541         * ipa-prop.c (try_make_edge_direct_virtual_call): Clear speculative
20542         flag correctly.
20543         * ipa-cp.c (ipa_get_indirect_edge_target_1): Handle speculation.
20544
20545 2015-01-18  Sandra Loosemore  <sandra@codesourcery.com>
20546
20547         * doc/invoke.texi ([-funroll-loops], [-funroll-all-loops]):
20548         Remove duplicate option listings.
20549
20550 2015-01-18  Felix Yang  <felix.yang@huawei.com>
20551
20552         * auto-profile.c (afdo_find_equiv_class): Remove unnecessary test.
20553         (autofdo_source_profile::get_callsite_total_count,
20554         function_instance::get_function_instance_by_decl,
20555         string_table::get_index, string_table::get_index_by_decl,
20556         afdo_vpt_for_early_inline, afdo_callsite_hot_enough_for_early_inline):
20557         Fix comment typos. Reformatting and minor code rearrangement.
20558
20559 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
20560
20561         * config/rs6000/rs6000.md (probe_stack): Delete.
20562         (probe_stack_address): New.
20563
20564 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
20565
20566         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use TARGET_32BIT
20567         to test for 32-bit ABIs, not !TARGET_POWERPC64.
20568
20569 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
20570
20571         * config/rs6000/rs6000.c (rs6000_parallel_return): New function.
20572         (rs6000_function_value): Use it.  Handle SCmode and TCmode as well,
20573         for TARGET_32BIT && TARGET_POWERPC64.  Fix another BITS_PER_WORD
20574         snafu.
20575         (rs6000_libcall_value): Use the new function.
20576
20577 2015-01-17  Sandra Loosemore  <sandra@codesourcery.com>
20578
20579         * doc/invoke.texi ([-ftracer]): Remove duplicate option listing.
20580
20581 2015-01-17  Eric Botcazou  <ebotcazou@adacore.com>
20582
20583         * reorg.c (fill_simple_delay_slots): If TARGET_FLAGS_REGNUM is valid,
20584         implement a more precise life analysis for it during backward scan.
20585
20586 2015-01-17  Jan Kratochvil  <jan.kratochvil@redhat.com>
20587
20588         * dwarf2out.c (gen_producer_string): Ignore also OPT_fpreprocessed.
20589
20590 2015-01-17  Bernd Schmidt  <bernds@codesourcery.com>
20591
20592         PR rtl-optimization/52773
20593         * calls.c (emit_library_call_value): When pushing arguments use
20594         stack_pointer_rtx rather than virtual_outgoing_args_rtx in
20595         CALL_INSN_FUNCTION_USAGE.  Only emit one of use of the magic
20596         stack pointer reference into CALL_INSN_FUNCTION_USAGE.
20597
20598 2015-01-17  Jeff Law  <law@redhat.com>
20599
20600         PR rtl-optimization/32790
20601         * reginfo.c (reg_scan_mark_refs): Look for ZERO_EXTRACT,
20602         not ZERO_EXTEND in SET_DESTs.
20603
20604 2015-01-17  Alan Modra  <amodra@gmail.com>
20605
20606         * cprop.c (do_local_cprop): Revert last change.
20607
20608 2015-01-16  DJ Delorie  <dj@redhat.com>
20609             Nick Clifton  <nickc@redhat.com>
20610
20611         * config/rl78/rl78-real.md (addqi3_real): Allow volatiles.
20612         (addhi3_real): Likewise.  Fix [HL+0] syntax.
20613         (subqi3_real): Likewise.
20614         (subhi3_real): Likewise.
20615         (cbranchqi4_real): Likewise.  Allow saddr,#imm.
20616         (cbranchhi4_real): Likewise.
20617         (cbranchhi4_real_inverted): Likewise.
20618         (cbranchsi4_real_lt): Likewise.
20619         (cbranchsi4_real_ge): Likewise.
20620         (cbranchsi4_real_ge): Likewise.
20621         * config/rl78/rl78-virt.md (add<mode>3_virt): Likewise.
20622         (sub<mode>3_virt): Likewise.
20623         (cbranchqi4_virt): Likewise.
20624         (cbranchhi4_virt): Likewise.
20625         * config/rl78/rl78.c (rl78_print_operand_1): 'p' modifier means
20626         always use '[reg+imm]' even when imm is zero.
20627         * config/rl78/predicates.md (rl78_volatile_memory_operand): New.
20628         (rl78_general_operand): New.
20629         (rl78_nonimmediate_operand): New.
20630         (rl78_nonfar_operand): Use them.
20631         (rl78_nonfar_nonimm_operand): Likewise.
20632         (rl78_stack_based_mem): Fix.
20633         * config/rl78/constraints.md (Ibqi): New.
20634         (IBqi): New.
20635         (Wsa): New.
20636         (Wsf): New.
20637         (Cs1): Fix.
20638         * config/rl78/rl78-expand.md (andqi3): Accept volatiles.
20639         (iorqi3): Likewise.
20640         (xorqi3): Likewise.
20641         * config/rl78/rl78-protos.h (rl78_sfr_p): New.
20642
20643         * config/rl78/constrains (Qs8): New constraint.
20644         * config/rl78/rl78.c (rl78_flags_already_set): New function.
20645         * config/rl78/rl78-protos.h (rl78_flags_already_set): New prototype.
20646         * config/rl78/rl78-real.md (update_Z): New attribute.
20647         Update patterns to set it.
20648         (cbranchqi4_real): Call rl78_flags_already_set() to determine if a
20649         shorter compare and branch sequence can be used.
20650         (cbranchhi4_real): Likewise.
20651         (cbranchhi4_real_inverted): Likewise.
20652
20653         * config/rl78/predicates.md (uword_operand): Allow symbol_refs.
20654         * config/rl78/rl78-c.c (rl78_register_pragmas): Register __near
20655         address space.
20656         * config/rl78/rl78.c (rl78_get_name_encoding): New.
20657         (rl78_option_override): Allow -mes0 only if C.
20658         (characterize_address): Support subregs of symbol_refs.
20659         (rl78_addr_space_address_mode): Move.  Add __near.
20660         (rl78_far_p): Likewise.
20661         (rl78_addr_space_pointer_mode): Likewise.
20662         (rl78_as_legitimate_address): Likewise.
20663         (rl78_addr_space_subset_p): Likewise.
20664         (rl78_addr_space_convert): Likewise.
20665         (rl78_print_operand_1): Support 16-bit addressing of 32-bit
20666         symbols with -mes0.
20667         (transcode_memory_rtx): Don't copy ES if -mes0.  Allow symbol[BC]
20668         addressing.
20669         (rl78_alloc_physical_registers_op1): Change logic to prefer
20670         symbol[BC] addressing.
20671         (frodata_section): New.
20672         (rl78_asm_init_sections): Initialize it.
20673         (rl78_select_section): Put __far readonly symbols in .frodata.
20674         (rl78_make_type_far): New.
20675         (rl78_insert_attributes): Force all readonly symbols to be
20676         __far when -mes0.
20677         (rl78_asm_out_integer): New.
20678         * config/rl78/rl78.h (ADDR_SPACE_NEAR): New.
20679         * config/rl78/rl78.opt (-mes0): New.
20680
20681         * config/rl78/rl78.h (ASM_OUTPUT_LABELREF): New.
20682         (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
20683         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
20684         * config/rl78/rl78-protos.h (rl78_output_labelref): New.
20685         (rl78_saddr_p): New.
20686         (rl78_output_aligned_common): New.
20687         * config/rl78/rl78.c (rl78_output_symbol_ref): Strip encodings.
20688         (rl78_handle_saddr_attribute): New.
20689         (rl78_handle_naked_attribute): New.
20690         (rl78_attribute_table): Add saddr.
20691         (rl78_print_operand_1): Don't print '!' on saddr operands.
20692         (rl78_print_operand_1): Strip encodings.
20693         (rl78_sfr_p): New.
20694         (rl78_strip_name_encoding): New.
20695         (rl78_attrlist_to_encoding): New.
20696         (rl78_encode_section_info): New.
20697         (rl78_asm_init_sections): New.
20698         (rl78_select_section): New.
20699         (rl78_output_labelref): New.
20700         (rl78_output_aligned_common): New.
20701         (rl78_asm_out_integer): New.
20702         (rl78_asm_ctor_dtor): New.
20703         (rl78_asm_constructor): New.
20704         (rl78_asm_destructor): New.
20705
20706         * config/rl78/rl78-real.md (movqi_es): Rename to movqi_to_es.
20707         * config/rl78/rl78.c (rl78_expand_epilogue): Update.
20708         (transcode_memory_rtx): Update.
20709         (rl78_expand_epilogue): Use A_REG instead of 0.
20710
20711 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
20712
20713         * config/arm/arm-protos.h (struct tune_params): New field
20714         sched_autopref_queue_depth.
20715         * config/arm/arm.c (sched-int.h): Include header.
20716         (arm_first_cycle_multipass_dfa_lookahead_guard,)
20717         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define hook.
20718         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,)
20719         (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,)
20720         (arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,)
20721         (arm_cortex_a53_tune, arm_cortex_a57_tune, arm_xgene1_tune,)
20722         (arm_cortex_a5_tune, arm_cortex_a9_tune, arm_cortex_a12_tune,)
20723         (arm_v7m_tune, arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune):
20724         Specify sched_autopref_queue_depth value.  Enabled for A15 and A57.
20725         * config/arm/t-arm (arm.o): Update.
20726         * haifa-sched.c (update_insn_after_change): Update.
20727         (rank_for_schedule): Use auto-prefetcher model, if requested.
20728         (autopref_multipass_init): New static function.
20729         (autopref_rank_for_schedule): New rank_for_schedule heuristic.
20730         (autopref_multipass_dfa_lookahead_guard_started_dump_p): New static
20731         variable for debug dumps.
20732         (autopref_multipass_dfa_lookahead_guard_1): New static helper function.
20733         (autopref_multipass_dfa_lookahead_guard): New global function that
20734         implements TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD hook.
20735         (init_h_i_d): Update.
20736         * params.def (PARAM_SCHED_AUTOPREF_QUEUE_DEPTH): New tuning knob.
20737         * sched-int.h (enum autopref_multipass_data_status): New const enum.
20738         (autopref_multipass_data_): Structure for auto-prefetcher data.
20739         (autopref_multipass_data_def, autopref_multipass_data_t): New typedefs.
20740         (struct _haifa_insn_data:autopref_multipass_data): New field.
20741         (INSN_AUTOPREF_MULTIPASS_DATA): New access macro.
20742         (autopref_multipass_dfa_lookahead_guard): Declare.
20743
20744 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
20745
20746         * rtlanal.c (get_base_term): Handle SCRATCH.
20747
20748 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
20749
20750         * config/aarch64/aarch64.c
20751         (aarch64_sched_first_cycle_multipass_dfa_lookahead): Implement hook.
20752         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
20753         * config/arm/arm.c
20754         (arm_first_cycle_multipass_dfa_lookahead): Implement hook.
20755         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
20756
20757 2015-01-17  Alan Modra  <amodra@gmail.com>
20758
20759         * cprop.c (do_local_cprop): Disallow replacement of fixed
20760         hard registers.
20761
20762 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20763
20764         PR target/62066
20765         * config/arm/arm-builtins.c (arm_expand_neon_args): Call va_end before
20766         early return 0.
20767
20768 2015-01-16  Bernd Edlinger  <bernd.edlinger@hotmail.de>
20769
20770         * sanitizer.def (BUILT_IN_TSAN_VPTR_UPDATE): Fixed parameters.
20771         * tsan.c (instrument_expr): Fixed parameters of __tsan_vptr_update.
20772
20773 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20774
20775         * config/arm/arm.md: Move comment about splitting Thumb1 patterns to...
20776         * config/arm/thumb1.md: ... Here.
20777
20778 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
20779
20780         * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Disallow
20781         TImode for TARGET_32BIT.
20782
20783 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
20784
20785         * config/rs6000/rs6000.c (TARGET_LIBGCC_CMP_RETURN_MODE,
20786         TARGET_LIBGCC_SHIFT_COUNT_MODE, TARGET_UNWIND_WORD_MODE): Implement
20787         as ...
20788         (rs6000_abi_word_mode): New function.
20789
20790 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
20791
20792         * config/rs6000/rs6000.c (rs6000_va_start): Use MIN_UNITS_PER_WORD
20793         instead of UNITS_PER_WORD to describe the size of stack slots.
20794
20795 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
20796
20797         * config/rs6000/rs6000.c (TARGET_PROMOTE_FUNCTION_MODE): Implement
20798         as rs6000_promote_function_mode.  Move comment to there.
20799         (rs6000_promote_function_mode): New function.
20800
20801 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
20802
20803         * config/rs6000/rs6000.h (PROMOTE_MODE): Correct test for when -m32
20804         -mpowerpc64 is active.
20805
20806 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
20807
20808         PR middle-end/64353
20809         * tree-cfg.c (pass_data_fixup_cfg): Update SSA for
20810         virtuals on start.
20811
20812 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
20813
20814         * config/arm/cortex-a57.md: Remove duplicate of file accidentally
20815         introduced in revision 219724.
20816
20817 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20818             Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
20819
20820         PR target/64263
20821         * config/aarch64/aarch64.md (*movsi_aarch64): Don't split if the
20822         destination is not a GP reg.
20823         (*movdi_aarch64): Likewise.
20824
20825 2015-01-16  David Edelsohn  <dje.gcc@gmail.com>
20826
20827         PR target/64623
20828         * config/rs6000/default64.h: Revert ISA change.
20829
20830 2015-01-16  Richard Biener  <rguenther@suse.de>
20831
20832         PR middle-end/64614
20833         * tree-ssa-uninit.c: Include tree-cfg.h.
20834         (MAX_SWITCH_CASES): New define.
20835         (convert_control_dep_chain_into_preds): Handle switch statements.
20836         (is_pred_expr_subset_of): Handle x == CST vs. (x & CST) != 0.
20837         (normalize_one_pred_1): Do not split bit-manipulations.
20838         Record (x & CST).
20839
20840 2015-01-16  Richard Biener  <rguenther@suse.de>
20841
20842         PR tree-optimization/64568
20843         * tree-ssa-forwprop.c (pass_forwprop::execute): Guard
20844         complex load rewriting for TARGET_MEM_REFs.
20845
20846 2015-01-16  Uros Bizjak  <ubizjak@gmail.com>
20847
20848         * builtins.c (expand_builtin_acc_on_device): Check target for NULL.
20849
20850 2015-01-16  Matthew Wahab  <matthew.wahab@arm.com>
20851
20852         PR target/64149
20853         * config/aarch64/aarch64.opt: Remove lra option and aarch64_lra_flag
20854         variable.
20855         * config/aarch64/aarch64.c (TARGET_LRA_P): Set to hook_bool_void_true.
20856         (aarch64_lra_p): Remove.
20857
20858 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
20859
20860         PR target/64363
20861         * ipa-chkp.h (chkp_instrumentable_p): New.
20862         * ipa-chkp.c: Include tree-inline.h.
20863         (chkp_instrumentable_p): New.
20864         (chkp_maybe_create_clone): Use chkp_instrumentable_p.
20865         Fix processing of not instrumentable functions.
20866         (chkp_versioning): Use chkp_instrumentable_p. Warn about
20867         not instrumentable functions.
20868         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Use
20869         chkp_instrumentable_p.
20870         * tree-inline.h (copy_forbidden): New.
20871         * tree-inline.c (copy_forbidden): Not static anymore.
20872
20873 2015-01-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20874
20875         * optc-save-gen.awk (cl_target_option_print_diff): Mark indent,
20876         ptr1, ptr2 unused.
20877
20878 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
20879
20880         * lra-constraints.c (curr_insn_transform): Change a reload pseudo of
20881         type OP_OUT to OP_INOUT.
20882
20883 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
20884
20885         * simplify-rtx.c (simplify_replace_fn_rtx): Simplify (lo_sum
20886         (high x) y) to y if x and y have the same base.
20887
20888 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
20889
20890         * config/arm/cortex-a57.md: New.
20891         * config/aarch64/aarch64.md: Include it.
20892         * config/aarch64/aarch64-cores.def (cortex-a57): Tune for it.
20893         * config/aarch64/aarch64-tune.md: Regenerate.
20894
20895 2015-01-16  Zhenqiang Chen  <zhenqiang.chen@arm.com>
20896
20897         PR target/64015
20898         * ccmp.c (expand_ccmp_next): New function.
20899         (expand_ccmp_expr_1, expand_ccmp_expr): Handle operand insn sequence
20900         and compare insn sequence.
20901         * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
20902         aarch64_gen_ccmp_first, aarch64_gen_ccmp_next): New functions.
20903         (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New MICRO.
20904         * config/aarch64/aarch64.md (*ccmp_and): Changed to ccmp_and<mode>.
20905         (*ccmp_ior): Changed to ccmp_ior<mode>.
20906         (cmp<mode>): New pattern.
20907         * doc/tm.texi (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Update
20908         parameters.
20909         * target.def (gen_ccmp_first, gen_ccmp_next): Update parameters.
20910
20911 2015-01-16  Ilya Tocar  <ilya.tocar@intel.com>
20912
20913         * config/i386/avx2intrin.h (_mm256_bslli_epi128,
20914         _mm256_bsrli_epi128): New.
20915         * config/i386/emmintrin.h (_mm_bsrli_si128, _mm_bslli_si128): Ditto.
20916
20917 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
20918
20919         * expmed.c (store_bit_field_using_insv): Improve warning message.
20920         Use %wu instead of HOST_WIDE_INT_PRINT_UNSIGNED.
20921
20922 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
20923
20924         PR rtl-optimization/64011
20925         * expmed.c (store_bit_field_using_insv): Warn and truncate bitsize when
20926         there is partial overflow.
20927
20928 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
20929
20930         * config/nds32/nds32-protos.h (nds32_expand_epilogue): Change
20931         prototype.
20932         (nds32_expand_epilogue_v3pop): Likewise.
20933         * config/nds32/nds32.md (sibcall): Define this for sibling call
20934         optimization.
20935         (sibcall_register): Likewise.
20936         (sibcall_immediate): Likewise.
20937         (sibcall_value): Likewise.
20938         (sibcall_value_register): Likewise.
20939         (sibcall_value_immediate): Likewise.
20940         (sibcall_epilogue): Likewise.
20941         (epilogue): Pass false to indicate this is not a sibcall epilogue.
20942         * config/nds32/nds32.c (nds32_expand_epilogue): Consider sibcall case.
20943         (nds32_expand_epilogue_v3pop): Likewise.
20944
20945 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
20946
20947         * config/nds32/nds32-protos.h (nds32_can_use_return_insn): New.
20948         * config/nds32/nds32.md (unspec_volatile_func_return): Remove.
20949         (return_internal): New.
20950         (return): Define this named pattern.
20951         (simple_return): Define this named pattern.
20952         * config/nds32/nds32.c (nds32_expand_epilogue): Emit return_internal
20953         pattern instead of unspec_volatile_func_return.
20954         (nds32_expand_epilogue_v3pop): Likewise.
20955         (nds32_can_use_return_insn): New function.
20956
20957 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
20958
20959         * config/nds32/constants.md (UNSPEC_VOLATILE_POP25_RETURN): New.
20960         * config/nds32/nds32.md (pop25return): New.
20961         * config/nds32/nds32.c (nds32_expand_epilogue_v3pop): Emit
20962         pop25return pattern.
20963
20964 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
20965
20966         * doc/invoke.texi (NDS32 Options): Remove -mforce-fp-as-gp,
20967         -mforbid-fp-as-gp, and -mex9 options.
20968
20969 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
20970
20971         * doc/invoke.texi (NDS32 Options): Add -mcmodel= option and
20972         remove -mgp-direct option.
20973
20974 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
20975
20976         * doc/invoke.texi (--param early-inlining-insns): Update default value.
20977         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 14.
20978
20979 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
20980
20981         * ipa-inline.c (inline_small_functions): Work around hints
20982         cache issue.
20983
20984 2015-01-15  Sandra Loosemore  <sandra@codesourcery.com>
20985
20986         PR target/59710
20987         * doc/invoke.texi (Option Summary): Document new Nios II
20988         -mgpopt= syntax.
20989         (Nios II Options): Likewise.
20990         * config/nios2/nios2.opt: Add -mgpopt= option support.
20991         Modify existing -mgpopt and -mno-gpopt options to be aliases.
20992         * config/nios2/nios2-opts.h (enum nios2_gpopt_type): New.
20993         * config/nios2/nios2.c (nios2_option_override): Adjust
20994         -mgpopt defaulting.
20995         (nios2_in_small_data_p): Return true for explicit small data
20996         sections even with -G0.
20997         (nios2_symbol_ref_in_small_data_p): Adjust to handle new -mgpopt=
20998         option choices.
20999
21000 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
21001
21002         PR ipa/64612
21003         * ipa-inline-transform.c (can_remove_node_now_p): Fix handling
21004         of comdat locals.
21005         (inline_call): Fix removal of aliases.
21006
21007 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
21008
21009         * flag-types.h (enum sanitize_code): Add SANITIZE_VPTR,
21010         include SANITIZE_VPTR in SANITIZE_UNDEFINED.
21011         * opts.c (common_handle_option): Add -fsanitize=vptr.
21012         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS,
21013         BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS_ABORT): New.
21014         * ubsan.h (enum ubsan_null_ckind): Add UBSAN_DOWNCAST_POINTER,
21015         UBSAN_DOWNCAST_REFERENCE, UBSAN_UPCAST and UBSAN_CAST_TO_VBASE.
21016         (ubsan_expand_vptr_ifn): New prototype.
21017         * internal-fn.c (expand_ANNOTATE, expand_GOMP_SIMD_LANE,
21018         expand_GOMP_SIMD_VF, expand_GOMP_SIMD_LAST_LANE, expand_UBSAN_NULL,
21019         expand_UBSAN_BOUNDS, expand_UBSAN_OBJECT_SIZE, expand_ASAN_CHECK,
21020         expand_LOOP_VECTORIZED): Make argument nameless, remove
21021         ATTRIBUTE_UNUSED.
21022         (expand_UBSAN_VPTR): New function.
21023         * internal-fn.def (UBSAN_NULL, ASAN_CHECK): Use R instead of W
21024         in fn spec.
21025         (UBSAN_VPTR): New internal function.
21026         * sanopt.c (tree_map_traits): Renamed to ...
21027         (sanopt_tree_map_traits): ... this.
21028         (sanopt_tree_triplet, sanopt_tree_triplet_map_traits): New classes.
21029         (sanopt_ctx): Adjust asan_check_map type for tree_map_traits
21030         to sanopt_tree_map_traits renaming.  Add vptr_check_map field.
21031         (maybe_optimize_ubsan_vptr_ifn): New function.
21032         (sanopt_optimize_walker): Handle IFN_UBSAN_VPTR.
21033         (pass_sanopt::execute): Likewise.  Call sanopt_optimize even for
21034         -fsanitize=vptr.
21035         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Handle certain
21036         internal calls like pure functions for aliasing, even when they
21037         have other side-effects that prevent making them ECF_PURE.
21038         * ubsan.c (ubsan_vptr_type_cache_decl): New variable.
21039         (ubsan_expand_vptr_ifn): New function.
21040
21041 2015-01-15  Vladimir Makarov  <vmakarov@redhat.com>
21042
21043         PR rtl-optimization/64110
21044         * stmt.c (parse_output_constraint): Process '^' and '$'.
21045         (parse_input_constraint): Ditto.
21046         * lra-constraints.c (process_alt_operands): Process the new
21047         constraints.
21048         * ira-costs.c (record_reg_classes): Process the new constraint
21049         '^'.
21050         * genoutput.c (indep_constraints): Add '^' and '$'.
21051         * config/i386/sse.md (*vec_dup<mode>): Use '$' instead of '!'.
21052         * doc/md.texi: Add description of the new constraints.
21053
21054 2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
21055             Bernd Schmidt  <bernds@codesourcery.com>
21056             Cesar Philippidis  <cesar@codesourcery.com>
21057             James Norris  <jnorris@codesourcery.com>
21058             Tom de Vries  <tom@codesourcery.com>
21059             Ilmir Usmanov  <i.usmanov@samsung.com>
21060             Dmitry Bocharnikov  <dmitry.b@samsung.com>
21061             Evgeny Gavrin  <e.gavrin@samsung.com>
21062             Jakub Jelinek  <jakub@redhat.com>
21063
21064         * builtin-types.def (BT_FN_VOID_INT_INT_VAR)
21065         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
21066         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
21067         New function types.
21068         * builtins.c: Include "gomp-constants.h".
21069         (expand_builtin_acc_on_device): New function.
21070         (expand_builtin, is_inexpensive_builtin): Handle
21071         BUILT_IN_ACC_ON_DEVICE.
21072         * builtins.def (DEF_GOACC_BUILTIN, DEF_GOACC_BUILTIN_COMPILER):
21073         New macros.
21074         * cgraph.c (cgraph_node::create): Consider flag_openacc next to
21075         flag_openmp.
21076         * config.gcc <nvptx-*> (tm_file): Add nvptx/offload.h.
21077         <*-intelmic-* | *-intelmicemul-*> (tm_file): Add
21078         i386/intelmic-offload.h.
21079         * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): For -fopenacc, link
21080         to libgomp and its dependencies.
21081         * config/arc/arc.h (LINK_COMMAND_SPEC): Likewise.
21082         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
21083         * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
21084         * config/ia64/hpux.h (LIB_SPEC): Likewise.
21085         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
21086         * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
21087         * doc/generic.texi: Update for OpenACC changes.
21088         * doc/gimple.texi: Likewise.
21089         * doc/invoke.texi: Likewise.
21090         * doc/sourcebuild.texi: Likewise.
21091         * gimple-pretty-print.c (dump_gimple_omp_for): Handle
21092         GF_OMP_FOR_KIND_OACC_LOOP.
21093         (dump_gimple_omp_target): Handle GF_OMP_TARGET_KIND_OACC_KERNELS,
21094         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_DATA,
21095         GF_OMP_TARGET_KIND_OACC_UPDATE,
21096         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
21097         Dump more data.
21098         * gimple.c: Update comments for OpenACC changes.
21099         * gimple.def: Likewise.
21100         * gimple.h: Likewise.
21101         (enum gf_mask): Add GF_OMP_FOR_KIND_OACC_LOOP,
21102         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
21103         GF_OMP_TARGET_KIND_OACC_DATA, GF_OMP_TARGET_KIND_OACC_UPDATE,
21104         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
21105         (gimple_omp_for_cond, gimple_omp_for_set_cond): Sort in the
21106         appropriate place.
21107         (is_gimple_omp_oacc, is_gimple_omp_offloaded): New functions.
21108         * gimplify.c: Include "gomp-constants.h".
21109         Update comments for OpenACC changes.
21110         (is_gimple_stmt): Handle OACC_PARALLEL, OACC_KERNELS, OACC_DATA,
21111         OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE, OACC_ENTER_DATA,
21112         OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
21113         (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
21114         OMP_CLAUSE__CACHE_, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
21115         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
21116         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER,
21117         OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
21118         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
21119         OMP_CLAUSE_SEQ.
21120         (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Use
21121         GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
21122         OMP_CLAUSE_SET_MAP_KIND.
21123         (gimplify_oacc_cache): New function.
21124         (gimplify_omp_for): Handle OACC_LOOP.
21125         (gimplify_omp_workshare): Handle OACC_KERNELS, OACC_PARALLEL,
21126         OACC_DATA.
21127         (gimplify_omp_target_update): Handle OACC_ENTER_DATA,
21128         OACC_EXIT_DATA, OACC_UPDATE.
21129         (gimplify_expr): Handle OACC_LOOP, OACC_CACHE, OACC_HOST_DATA,
21130         OACC_DECLARE, OACC_KERNELS, OACC_PARALLEL, OACC_DATA,
21131         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE.
21132         (gimplify_body): Consider flag_openacc next to flag_openmp.
21133         * lto-streamer-out.c: Include "gomp-constants.h".
21134         * omp-builtins.def (BUILT_IN_ACC_GET_DEVICE_TYPE)
21135         (BUILT_IN_GOACC_DATA_START, BUILT_IN_GOACC_DATA_END)
21136         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL)
21137         (BUILT_IN_GOACC_UPDATE, BUILT_IN_GOACC_WAIT)
21138         (BUILT_IN_GOACC_GET_THREAD_NUM, BUILT_IN_GOACC_GET_NUM_THREADS)
21139         (BUILT_IN_ACC_ON_DEVICE): New builtins.
21140         * omp-low.c: Include "gomp-constants.h".
21141         Update comments for OpenACC changes.
21142         (struct omp_context): Add reduction_map, gwv_below, gwv_this
21143         members.
21144         (extract_omp_for_data, use_pointer_for_field, install_var_field)
21145         (new_omp_context, delete_omp_context, scan_sharing_clauses)
21146         (create_omp_child_function, scan_omp_for, scan_omp_target)
21147         (check_omp_nesting_restrictions, lower_reduction_clauses)
21148         (build_omp_regions_1, diagnose_sb_0, make_gimple_omp_edges):
21149         Update for OpenACC changes.
21150         (scan_sharing_clauses): Handle OMP_CLAUSE_NUM_GANGS:
21151         OMP_CLAUSE_NUM_WORKERS: OMP_CLAUSE_VECTOR_LENGTH,
21152         OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT, OMP_CLAUSE_GANG,
21153         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
21154         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_INDEPENDENT,
21155         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ.  Use GOMP_MAP_* instead of
21156         OMP_CLAUSE_MAP_*.
21157         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
21158         Handle GF_OMP_FOR_KIND_OACC_LOOP.
21159         (expand_omp_target, lower_omp_target): Handle
21160         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
21161         GF_OMP_TARGET_KIND_OACC_UPDATE,
21162         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA,
21163         GF_OMP_TARGET_KIND_OACC_DATA.
21164         (pass_expand_omp::execute, execute_lower_omp)
21165         (pass_diagnose_omp_blocks::gate): Consider flag_openacc next to
21166         flag_openmp.
21167         (offload_symbol_decl): New variable.
21168         (oacc_get_reduction_array_id, oacc_max_threads)
21169         (get_offload_symbol_decl, get_base_type, lookup_oacc_reduction)
21170         (maybe_lookup_oacc_reduction, enclosing_target_ctx)
21171         (oacc_loop_or_target_p, oacc_lower_reduction_var_helper)
21172         (oacc_gimple_assign, oacc_initialize_reduction_data)
21173         (oacc_finalize_reduction_data, oacc_process_reduction_data): New
21174         functions.
21175         (is_targetreg_ctx): Remove function.
21176         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CACHE_,
21177         OMP_CLAUSE_DEVICE_RESIDENT, OMP_CLAUSE_USE_DEVICE,
21178         OMP_CLAUSE_GANG, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
21179         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT,
21180         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_NUM_GANGS,
21181         OMP_CLAUSE_NUM_WORKERS, OMP_CLAUSE_VECTOR_LENGTH.
21182         * tree.c (omp_clause_code_name, walk_tree_1): Update accordingly.
21183         * tree.h (OMP_CLAUSE_GANG_EXPR, OMP_CLAUSE_GANG_STATIC_EXPR)
21184         (OMP_CLAUSE_ASYNC_EXPR, OMP_CLAUSE_WAIT_EXPR)
21185         (OMP_CLAUSE_VECTOR_EXPR, OMP_CLAUSE_WORKER_EXPR)
21186         (OMP_CLAUSE_NUM_GANGS_EXPR, OMP_CLAUSE_NUM_WORKERS_EXPR)
21187         (OMP_CLAUSE_VECTOR_LENGTH_EXPR): New macros.
21188         * tree-core.h: Update comments for OpenACC changes.
21189         (enum omp_clause_map_kind): Remove.
21190         (struct tree_omp_clause): Change type of map_kind member from enum
21191         omp_clause_map_kind to unsigned char.
21192         * tree-inline.c: Update comments for OpenACC changes.
21193         * tree-nested.c: Likewise.  Include "gomp-constants.h".
21194         (convert_nonlocal_reference_stmt, convert_local_reference_stmt)
21195         (convert_tramp_reference_stmt, convert_gimple_call): Update for
21196         OpenACC changes.  Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
21197         OMP_CLAUSE_SET_MAP_KIND.
21198         * tree-pretty-print.c: Include "gomp-constants.h".
21199         (dump_omp_clause): Handle OMP_CLAUSE_DEVICE_RESIDENT,
21200         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_GANG,
21201         OMP_CLAUSE_ASYNC, OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ,
21202         OMP_CLAUSE_WAIT, OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR,
21203         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
21204         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_INDEPENDENT.  Use GOMP_MAP_*
21205         instead of OMP_CLAUSE_MAP_*.
21206         (dump_generic_node): Handle OACC_PARALLEL, OACC_KERNELS,
21207         OACC_DATA, OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE,
21208         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
21209         * tree-streamer-in.c: Include "gomp-constants.h".
21210         (unpack_ts_omp_clause_value_fields) Use GOMP_MAP_* instead of
21211         OMP_CLAUSE_MAP_*.  Use OMP_CLAUSE_SET_MAP_KIND.
21212         * tree-streamer-out.c: Include "gomp-constants.h".
21213         (pack_ts_omp_clause_value_fields): Use GOMP_MAP_* instead of
21214         OMP_CLAUSE_MAP_*.
21215         * tree.def (OACC_PARALLEL, OACC_KERNELS, OACC_DATA)
21216         (OACC_HOST_DATA, OACC_LOOP, OACC_CACHE, OACC_DECLARE)
21217         (OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE): New tree codes.
21218         * tree.c (omp_clause_num_ops): Update accordingly.
21219         * tree.h (OMP_BODY, OMP_CLAUSES, OMP_LOOP_CHECK, OMP_CLAUSE_SIZE):
21220         Likewise.
21221         (OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES, OACC_KERNELS_BODY)
21222         (OACC_KERNELS_CLAUSES, OACC_DATA_BODY, OACC_DATA_CLAUSES)
21223         (OACC_HOST_DATA_BODY, OACC_HOST_DATA_CLAUSES, OACC_CACHE_CLAUSES)
21224         (OACC_DECLARE_CLAUSES, OACC_ENTER_DATA_CLAUSES)
21225         (OACC_EXIT_DATA_CLAUSES, OACC_UPDATE_CLAUSES)
21226         (OACC_KERNELS_COMBINED, OACC_PARALLEL_COMBINED): New macros.
21227         * tree.h (OMP_CLAUSE_MAP_KIND): Cast it to enum gomp_map_kind.
21228         (OMP_CLAUSE_SET_MAP_KIND): New macro.
21229         * varpool.c (varpool_node::get_create): Consider flag_openacc next
21230         to flag_openmp.
21231         * config/i386/intelmic-offload.h: New file.
21232         * config/nvptx/offload.h: Likewise.
21233
21234 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
21235
21236         * explow.h: Remove duplicate contents.
21237         * dojump.h: Likewise.
21238
21239 2015-01-15  Richard Earnshaw  <rearnsha@arm.com>
21240
21241         * arm.c (arm_xgene_tune): Add default initializer for instruction
21242         fusion.
21243
21244 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
21245
21246         PR ipa/64068
21247         PR ipa/64559
21248         * ipa.c (symbol_table::remove_unreachable_nodes):
21249         Do not put abstract origins into boundary.
21250
21251 2015-01-15  Evgeny Stupachenko  <evstupac@gmail.com>
21252
21253         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Remove EBX register usage.
21254         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Ditto.
21255
21256 2015-01-15  Steve Ellcey  <sellcey@mips.com>
21257
21258         * Makefile.in (PLUGIN_HEADERS): Add dominance.h, cfg.h, cfgrtl.h,
21259         cfganal.h, cfgbuild.h, cfgcleanup.h, lcm.h, cfgloopmanip.h,
21260         builtins.def, and chkp-builtins.def.
21261
21262 2015-01-15  David Edelsohn  <dje.gcc@gmail.com>
21263
21264         * config/rs6000/default64.h (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use
21265         ISA 2.7 (POWER8).
21266
21267 2015-01-15  Richard Biener  <rguenther@suse.de>
21268
21269         PR tree-optimization/61743
21270         * tree-ssa-pre.c (insert_into_preds_of_block): Preserve range
21271         information on PHIs for some simple cases.
21272
21273 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
21274
21275         * config/arm/arm.md (generic_sched): Specify xgene1 in 'no' list.
21276         Include xgene1.md.
21277         * config/arm/arm.c (arm_issue_rate): Specify 4 for xgene1.
21278         * config/arm/arm-cores.def (xgene1): New entry.
21279         * config/arm/arm-tables.opt: Regenerate.
21280         * config/arm/arm-tune.md: Regenerate.
21281         * config/arm/bpabi.h (BE8_LINK_SPEC): Specify mcpu=xgene1.
21282
21283 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
21284
21285         * tree-if-conv.c: Include hash-map.h.
21286         (aggressive_if_conv): New variable.
21287         (fold_build_cond_expr): Add simplification of non-zero condition.
21288         (add_to_dst_predicate_list): Invoke add_to_predicate_list if edge
21289         destination block is not always executed.
21290         (if_convertible_phi_p): Fix commentary, allow phi nodes have more
21291         than two predecessors if AGGRESSIVE_IF_CONV is true.
21292         (if_convertible_stmt_p): Fix commentary.
21293         (all_preds_critical_p): New function.
21294         (has_pred_critical_p): New function.
21295         (if_convertible_bb_p): Fix commentary, if AGGRESSIVE_IF_CONV is true
21296         BB can have more than two predecessors and all incoming edges can be
21297         critical.
21298         (predicate_bbs): Skip predication for loop exit block, use build2_loc
21299         to compute predicate for true edge.
21300         (find_phi_replacement_condition): Delete this function.
21301         (is_cond_scalar_reduction): Add arguments ARG_0, ARG_1 and EXTENDED.
21302         Allow interchange PHI arguments if EXTENDED is false.
21303         Change check that block containing reduction statement candidate
21304         is predecessor of phi-block since phi may have more than two arguments.
21305         (phi_args_hash_traits): New helper structure.
21306         (struct phi_args_hash_traits): New type.
21307         (phi_args_hash_traits::hash): New function.
21308         (phi_args_hash_traits::equal_keys): New function.
21309         (gen_phi_arg_condition): New function.
21310         (predicate_scalar_phi): Add handling of phi nodes with more than two
21311         arguments, delete COND and TRUE_BB arguments, insert body of
21312         find_phi_replacement_condition to predicate ordinary phi nodes.
21313         (predicate_all_scalar_phis): Skip blocks with the only predecessor,
21314         delete call of find_phi_replacement_condition and invoke
21315         predicate_scalar_phi with two arguments.
21316         (insert_gimplified_predicates): Add assert that non-predicated block
21317         don't have statements to insert.
21318         (ifcvt_split_critical_edges): New function.
21319         (ifcvt_split_def_stmt): Likewise.
21320         (ifcvt_walk_pattern_tree): Likewise.
21321         (stmt_is_root_of_bool_pattern): Likewise.
21322         (ifcvt_repair_bool_pattern): Likewise.
21323         (ifcvt_local_dce): Likewise.
21324         (tree_if_conversion): Add initialization of AGGRESSIVE_IF_CONV which
21325         is copy of inner or outer loop force_vectorize field, invoke
21326         ifcvt_split_critical_edges, ifcvt_local_dce and
21327         ifcvt_repair_bool_pattern for aggressive if-conversion.
21328
21329 2015-01-15  Philipp Tomsich  <ptomsich@theobroma-systems.com>
21330
21331         * config/aarch64/aarch64.md: Include xgene1.md.
21332         * config/aarch64/xgene1.md: New file.
21333
21334 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
21335
21336         * config/aarch64/aarch64-cores.def (xgene1): Update/add the
21337         xgene1 (APM XGene-1) core definition.
21338         * gcc/config/aarch64/aarch64.c: Add cost tables for APM XGene-1
21339         * config/arm/aarch-cost-tables.h: Add cost tables for APM XGene-1
21340         * doc/invoke.texi: Document -mcpu=xgene1.
21341
21342 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
21343
21344         * dojump.h: New header file.
21345         * explow.h: Likewise.
21346         * expr.h: Remove includes.
21347         Move expmed.c prototypes to expmed.h.
21348         Move dojump.c prototypes to dojump.h.
21349         Move alias.c prototypes to alias.h.
21350         Move explow.c prototypes to explow.h.
21351         Move calls.c prototypes to calls.h.
21352         Move emit-rtl.c prototypes to emit-rtl.h.
21353         Move varasm.c prototypes to varasm.h.
21354         Move stmt.c prototypes to stmt.h.
21355         (saved_pending_stack_adjust): Move to dojump.h.
21356         (adjust_address): Move to explow.h.
21357         (adjust_address_nv): Move to emit-rtl.h.
21358         (adjust_bitfield_address): Likewise.
21359         (adjust_bitfield_address_size): Likewise.
21360         (adjust_bitfield_address_nv): Likewise.
21361         (adjust_automodify_address_nv): Likewise.
21362         * explow.c (expr_size): Move to expr.c.
21363         (int_expr_size): Likewise.
21364         (tree_expr_size): Likewise.
21365         Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21366         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
21367         * genemit.c (main): Generate includes statistics.h, real.h,
21368         fixed-value.h, insn-config.h, expmed.h, dojump.h, explow.h, emit-rtl.h,
21369         stmt.h.
21370         * genopinit.c (main): Generate includes hashtab.h, hard-reg-set.h,
21371         function.h, statistics.h, real.h, fixed-value.h, expmed.h, dojump.h,
21372         explow.h, emit-rtl.h, stmt.h.
21373         * genoutput.c (main): Generate includes hashtab.h, statistics.h, real.h,
21374         fixed-value.h, expmed.h, dojump.h, explow.h, emit-rtl.h, stmt.h.
21375         * genemit.c (open_base_files): Generate includes flags.h, statistics.h,
21376         real.h, fixed-value.h, tree.h, expmed.h, dojump.h, explow.h, calls.h,
21377         emit-rtl.h, varasm.h, stmt.h.
21378         * config/tilepro/gen-mul-tables.cc: Generate includes hashtab.h,
21379         hash-set.h, vec.h, machmode.h, tm.h, hard-reg-set.h, input.h,
21380         function.h, rtl.h, flags.h, statistics.h, double-int.h, real.h,
21381         fixed-value.h, alias.h, wide-int.h, inchash.h, tree.h, insn-config.h,
21382         expmed.h, dojump.h, explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
21383         * config/tilegx/mul-tables.c: Include alias.h calls.h dojump.h
21384         double-int.h emit-rtl.h explow.h expmed.h fixed-value.h flags.h
21385         function.h hard-reg-set.h hash-set.h hashtab.h inchash.h input.h
21386         insn-config.h machmode.h real.h rtl.h statistics.h stmt.h symtab.h
21387         tm.h tree.h varasm.h vec.h wide-int.h.
21388         * rtlhooks.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
21389         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
21390         hash-set.h hashtab.h inchash.h input.h insn-config.h machmode.h
21391         real.h statistics.h stmt.h tree.h varasm.h vec.h wide-int.h.
21392         * cfgloopanal.c: Include alias.h calls.h dojump.h double-int.h
21393         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h
21394         insn-config.h real.h statistics.h stmt.h tree.h varasm.h wide-int.h.
21395         * loop-iv.c: Likewise.
21396         * lra-assigns.c: Include alias.h calls.h dojump.h double-int.h
21397         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h real.h
21398         statistics.h stmt.h tree.h varasm.h wide-int.h.
21399         * lra-constraints.c: Likewise.
21400         * lra-eliminations.c: Likewise.
21401         * lra-lives.c: Likewise.
21402         * lra-remat.c: Likewise.
21403         * bt-load.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
21404         explow.h expmed.h fixed-value.h inchash.h insn-config.h real.h
21405         statistics.h stmt.h tree.h varasm.h wide-int.h.
21406         * hw-doloop.c: Likewise.
21407         * ira-color.c: Likewise.
21408         * ira-emit.c: Likewise.
21409         * loop-doloop.c: Likewise.
21410         * loop-invariant.c: Likewise.
21411         * reload.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
21412         explow.h expmed.h fixed-value.h inchash.h real.h rtl.h
21413         statistics.h stmt.h tree.h varasm.h wide-int.h.
21414         * caller-save.c: Include alias.h calls.h dojump.h double-int.h
21415         emit-rtl.h explow.h expmed.h fixed-value.h inchash.h real.h
21416         statistics.h stmt.h tree.h varasm.h wide-int.h.
21417         * combine-stack-adj.c: Likewise.
21418         * cse.c: Likewise.
21419         * ddg.c: Likewise.
21420         * ifcvt.c: Likewise.
21421         * ira-costs.c: Likewise.
21422         * jump.c: Likewise.
21423         * lra-coalesce.c: Likewise.
21424         * lra-spills.c: Likewise.
21425         * profile.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
21426         explow.h expmed.h fixed-value.h insn-config.h real.h statistics.h
21427         stmt.h varasm.h wide-int.h.
21428         * lra.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
21429         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
21430         varasm.h.
21431         * config/sh/sh_treg_combine.cc: Include alias.h calls.h dojump.h
21432         double-int.h explow.h expmed.h fixed-value.h flags.h real.h
21433         statistics.h stmt.h varasm.h wide-int.h.
21434         * reorg.c: Include alias.h calls.h dojump.h double-int.h explow.h
21435         expmed.h fixed-value.h inchash.h real.h statistics.h stmt.h tree.h
21436         varasm.h wide-int.h.
21437         * reload1.c: Include alias.h calls.h dojump.h double-int.h explow.h
21438         expmed.h fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
21439         * config/tilegx/tilegx.c: Include alias.h dojump.h double-int.h
21440         emit-rtl.h explow.h expmed.h fixed-value.h flags.h real.h
21441         statistics.h stmt.h.
21442         * config/tilepro/tilepro.c: Likewise.
21443         * config/mmix/mmix.c: Include alias.h dojump.h double-int.h emit-rtl.h
21444         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h.
21445         * config/pdp11/pdp11.c: Likewise.
21446         * config/xtensa/xtensa.c: Likewise.
21447         * config/lm32/lm32.c: Include alias.h dojump.h double-int.h emit-rtl.h
21448         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
21449         varasm.h.
21450         * tree-chkp.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21451         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
21452         insn-config.h real.h rtl.h statistics.h stmt.h tm.h.
21453         * cilk-common.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21454         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
21455         insn-config.h real.h rtl.h statistics.h stmt.h tm.h varasm.h.
21456         * rtl-chkp.c: Likewise.
21457         * tree-chkp-opt.c: Likewise.
21458         * config/arm/arm-builtins.c: Include calls.h dojump.h emit-rtl.h
21459         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
21460         hashtab.h insn-config.h real.h statistics.h stmt.h varasm.h.
21461         * ipa-icf.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21462         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
21463         statistics.h stmt.h.
21464         * tree-vect-data-refs.c: Likewise.
21465         * graphite-sese-to-poly.c: Include calls.h dojump.h emit-rtl.h explow.h
21466         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
21467         rtl.h statistics.h stmt.h varasm.h.
21468         * internal-fn.c: Likewise.
21469         * ipa-icf-gimple.c: Likewise.
21470         * lto-section-out.c: Likewise.
21471         * tree-data-ref.c: Likewise.
21472         * tree-nested.c: Likewise.
21473         * tree-outof-ssa.c: Likewise.
21474         * tree-predcom.c: Likewise.
21475         * tree-pretty-print.c: Likewise.
21476         * tree-scalar-evolution.c: Likewise.
21477         * tree-ssa-strlen.c: Likewise.
21478         * tree-vect-loop.c: Likewise.
21479         * tree-vect-patterns.c: Likewise.
21480         * tree-vect-slp.c: Likewise.
21481         * tree-vect-stmts.c: Likewise.
21482         * tsan.c: Likewise.
21483         * targhooks.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21484         fixed-value.h flags.h hashtab.h insn-config.h real.h statistics.h
21485         stmt.h.
21486         * config/sh/sh-mem.cc: Include calls.h dojump.h emit-rtl.h explow.h
21487         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
21488         statistics.h stmt.h varasm.h.
21489         * loop-unroll.c: Likewise.
21490         * ubsan.c: Likewise.
21491         * tree-ssa-loop-prefetch.c: Include calls.h dojump.h emit-rtl.h explow.h
21492         expmed.h fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h
21493         stmt.h varasm.h.
21494         * dse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21495         fixed-value.h function.h hashtab.h statistics.h stmt.h varasm.h.
21496         * tree-switch-conversion.c: Include calls.h dojump.h emit-rtl.h explow.h
21497         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
21498         statistics.h stmt.h.
21499         * generic-match-head.c: Include calls.h dojump.h emit-rtl.h explow.h
21500         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
21501         statistics.h stmt.h varasm.h.
21502         * gimple-match-head.c: Likewise.
21503         * lto-cgraph.c: Likewise.
21504         * lto-section-in.c: Likewise.
21505         * lto-streamer-in.c: Likewise.
21506         * lto-streamer-out.c: Likewise.
21507         * tree-affine.c: Likewise.
21508         * tree-cfg.c: Likewise.
21509         * tree-cfgcleanup.c: Likewise.
21510         * tree-if-conv.c: Likewise.
21511         * tree-into-ssa.c: Likewise.
21512         * tree-ssa-alias.c: Likewise.
21513         * tree-ssa-copyrename.c: Likewise.
21514         * tree-ssa-dse.c: Likewise.
21515         * tree-ssa-forwprop.c: Likewise.
21516         * tree-ssa-live.c: Likewise.
21517         * tree-ssa-math-opts.c: Likewise.
21518         * tree-ssa-pre.c: Likewise.
21519         * tree-ssa-sccvn.c: Likewise.
21520         * tree-tailcall.c: Likewise.
21521         * tree-vect-generic.c: Likewise.
21522         * tree-sra.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21523         fixed-value.h hashtab.h insn-config.h real.h rtl.h stmt.h varasm.h.
21524         * stor-layout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21525         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h.
21526         * varasm.c: Likewise.
21527         * coverage.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21528         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h
21529         varasm.h.
21530         * init-regs.c: Likewise.
21531         * ira.c: Likewise.
21532         * omp-low.c: Likewise.
21533         * stack-ptr-mod.c: Likewise.
21534         * tree-ssa-reassoc.c: Likewise.
21535         * tree-complex.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21536         fixed-value.h hashtab.h insn-config.h rtl.h statistics.h stmt.h
21537         varasm.h.
21538         * dwarf2cfi.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21539         fixed-value.h hashtab.h insn-config.h statistics.h stmt.h varasm.h.
21540         * shrink-wrap.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21541         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h.
21542         * recog.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21543         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h varasm.h.
21544         * tree-ssa-phiopt.c: Likewise.
21545         * config/darwin.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21546         fixed-value.h hashtab.h real.h statistics.h stmt.h.
21547         * config/fr30/fr30.c: Likewise.
21548         * config/frv/frv.c: Likewise.
21549         * expr.c: Likewise.
21550         * final.c: Likewise.
21551         * optabs.c: Likewise.
21552         * passes.c: Likewise.
21553         * simplify-rtx.c: Likewise.
21554         * stmt.c: Likewise.
21555         * toplev.c: Likewise.
21556         * var-tracking.c: Likewise.
21557         * gcse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21558         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
21559         * lower-subreg.c: Likewise.
21560         * postreload-gcse.c: Likewise.
21561         * ree.c: Likewise.
21562         * reginfo.c: Likewise.
21563         * store-motion.c: Likewise.
21564         * combine.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21565         fixed-value.h hashtab.h real.h stmt.h varasm.h.
21566         * emit-rtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21567         fixed-value.h hashtab.h statistics.h stmt.h.
21568         * dojump.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21569         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
21570         * except.c: Likewise.
21571         * explow.c: Likewise.
21572         * tree-dfa.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21573         fixed-value.h insn-config.h real.h rtl.h statistics.h stmt.h
21574         varasm.h.
21575         * gimple-fold.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21576         fixed-value.h insn-config.h real.h rtl.h statistics.h varasm.h.
21577         * tree-ssa-structalias.c: Likewise.
21578         * cfgexpand.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21579         fixed-value.h insn-config.h real.h statistics.h.
21580         * calls.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21581         fixed-value.h insn-config.h real.h statistics.h stmt.h.
21582         * bb-reorder.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21583         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
21584         * cfgbuild.c: Likewise.
21585         * function.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21586         fixed-value.h real.h rtl.h statistics.h stmt.h.
21587         * cfgrtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21588         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
21589         * dbxout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21590         fixed-value.h real.h statistics.h stmt.h.
21591         * auto-inc-dec.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21592         fixed-value.h real.h statistics.h stmt.h varasm.h.
21593         * cprop.c: Likewise.
21594         * modulo-sched.c: Likewise.
21595         * postreload.c: Likewise.
21596         * ccmp.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
21597         flags.h function.h hard-reg-set.h hashtab.h insn-config.h real.h
21598         statistics.h stmt.h varasm.h.
21599         * gimple-ssa-strength-reduction.c: Include calls.h dojump.h emit-rtl.h
21600         explow.h fixed-value.h flags.h hashtab.h insn-config.h real.h
21601         rtl.h statistics.h stmt.h varasm.h.
21602         * tree-ssa-loop-ivopts.c: Include calls.h dojump.h emit-rtl.h explow.h
21603         fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h stmt.h
21604         varasm.h.
21605         * expmed.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
21606         function.h hard-reg-set.h hashtab.h real.h statistics.h stmt.h
21607         varasm.h.
21608         * target-globals.c: Include calls.h dojump.h emit-rtl.h explow.h
21609         fixed-value.h function.h hashtab.h real.h statistics.h stmt.h
21610         varasm.h.
21611         * tree-ssa-address.c: Include calls.h dojump.h emit-rtl.h explow.h
21612         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
21613         * cfgcleanup.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
21614         function.h real.h statistics.h stmt.h varasm.h.
21615         * alias.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
21616         insn-config.h real.h statistics.h stmt.h.
21617         * dwarf2out.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
21618         statistics.h stmt.h.
21619         * config/nvptx/nvptx.c: Include dojump.h emit-rtl.h explow.h expmed.h
21620         fixed-value.h flags.h hard-reg-set.h insn-config.h real.h
21621         statistics.h stmt.h varasm.h.
21622         * gimplify.c: Include dojump.h emit-rtl.h explow.h expmed.h
21623         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h statistics.h.
21624         * asan.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
21625         flags.h hashtab.h insn-config.h real.h rtl.h statistics.h stmt.h.
21626         * ipa-devirt.c: Include dojump.h emit-rtl.h explow.h expmed.h
21627         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
21628         statistics.h stmt.h varasm.h.
21629         * ipa-polymorphic-call.c: Likewise.
21630         * config/aarch64/aarch64.c: Include dojump.h emit-rtl.h explow.h
21631         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
21632         statistics.h stmt.h.
21633         * config/c6x/c6x.c: Likewise.
21634         * config/aarch64/aarch64-builtins.c: Include dojump.h emit-rtl.h
21635         explow.h expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
21636         statistics.h stmt.h varasm.h.
21637         * ipa-prop.c: Include dojump.h emit-rtl.h explow.h expmed.h
21638         fixed-value.h hashtab.h insn-config.h real.h rtl.h statistics.h
21639         stmt.h varasm.h.
21640         * ipa-split.c: Likewise.
21641         * tree-eh.c: Likewise.
21642         * tree-ssa-dce.c: Likewise.
21643         * tree-ssa-loop-niter.c: Likewise.
21644         * tree-vrp.c: Likewise.
21645         * config/nds32/nds32-cost.c: Include dojump.h emit-rtl.h explow.h
21646         expmed.h fixed-value.h hashtab.h insn-config.h real.h statistics.h
21647         stmt.h.
21648         * config/nds32/nds32-fp-as-gp.c: Likewise.
21649         * config/nds32/nds32-intrinsic.c: Likewise.
21650         * config/nds32/nds32-isr.c: Likewise.
21651         * config/nds32/nds32-md-auxiliary.c: Likewise.
21652         * config/nds32/nds32-memory-manipulation.c: Likewise.
21653         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
21654         * config/nds32/nds32-predicates.c: Likewise.
21655         * config/nds32/nds32.c: Likewise.
21656         * config/cris/cris.c: Include dojump.h emit-rtl.h explow.h expmed.h
21657         fixed-value.h hashtab.h real.h statistics.h.
21658         * config/alpha/alpha.c: Include dojump.h emit-rtl.h explow.h expmed.h
21659         fixed-value.h hashtab.h real.h statistics.h stmt.h.
21660         * config/arm/arm.c: Likewise.
21661         * config/avr/avr.c: Likewise.
21662         * config/bfin/bfin.c: Likewise.
21663         * config/h8300/h8300.c: Likewise.
21664         * config/i386/i386.c: Likewise.
21665         * config/ia64/ia64.c: Likewise.
21666         * config/iq2000/iq2000.c: Likewise.
21667         * config/m32c/m32c.c: Likewise.
21668         * config/m32r/m32r.c: Likewise.
21669         * config/m68k/m68k.c: Likewise.
21670         * config/mcore/mcore.c: Likewise.
21671         * config/mep/mep.c: Likewise.
21672         * config/mips/mips.c: Likewise.
21673         * config/mn10300/mn10300.c: Likewise.
21674         * config/moxie/moxie.c: Likewise.
21675         * config/pa/pa.c: Likewise.
21676         * config/rl78/rl78.c: Likewise.
21677         * config/rx/rx.c: Likewise.
21678         * config/s390/s390.c: Likewise.
21679         * config/sh/sh.c: Likewise.
21680         * config/sparc/sparc.c: Likewise.
21681         * config/spu/spu.c: Likewise.
21682         * config/stormy16/stormy16.c: Likewise.
21683         * config/v850/v850.c: Likewise.
21684         * config/vax/vax.c: Likewise.
21685         * config/cr16/cr16.c: Include dojump.h emit-rtl.h explow.h expmed.h
21686         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
21687         * config/msp430/msp430.c: Likewise.
21688         * predict.c: Likewise.
21689         * value-prof.c: Likewise.
21690         * config/epiphany/epiphany.c: Include dojump.h emit-rtl.h explow.h
21691         expmed.h fixed-value.h hashtab.h statistics.h stmt.h.
21692         * config/microblaze/microblaze.c: Likewise.
21693         * config/nios2/nios2.c: Likewise.
21694         * config/rs6000/rs6000.c: Likewise.
21695         * tree.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
21696         insn-config.h real.h rtl.h statistics.h stmt.h.
21697         * cgraph.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
21698         insn-config.h real.h statistics.h stmt.h.
21699         * fold-const.c: Include dojump.h emit-rtl.h explow.h expmed.h
21700         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
21701         * tree-inline.c: Include dojump.h emit-rtl.h explow.h expmed.h
21702         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
21703         * builtins.c: Include dojump.h emit-rtl.h explow.h expmed.h
21704         fixed-value.h real.h statistics.h stmt.h.
21705         * config/arc/arc.c: Include dojump.h emit-rtl.h explow.h expmed.h
21706         fixed-value.h statistics.h stmt.h.
21707         * config/visium/visium.c: Include dojump.h emit-rtl.h explow.h expmed.h
21708         stmt.h.
21709
21710 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
21711
21712         * gengtype.c (create_user_defined_type): Workaround
21713         -Wmaybe-uninitialized false positives.
21714         * cse.c (fold_rtx): Likewise.
21715         * loop-invariant.c (gain_for_invariant): Likewise.
21716
21717 2015-01-15  Eric Botcazou  <ebotcazou@adacore.com>
21718
21719         * expr.c (expand_expr_real_1) <normal_inner_ref>: Use the expression to
21720         set the memory attributes in all cases but clear MEM_EXPR if need be.
21721
21722 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
21723
21724         PR tree-optimization/64434
21725         * cfgexpand.c (reorder_operands): New function.
21726         (expand_gimple_basic_block): Insert call of reorder_operands if
21727         optimized is true.
21728
21729 2015-01-15  Matthew Fortune  <matthew.fortune@imgtec.com>
21730
21731         * config/mips/micromips.md (*swp): Remove explicit parallel.
21732         (jraddiusp, *movep<MOVEP1:mode><MOVEP2:mode>): Likewise.
21733         * config/mips/mips-dsp.md (add<DSPV:mode>3): Likewise.
21734         (mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>, sub<DSPV:mode>3): Likewise.
21735         (mips_sub<DSP:dspfmt1>_s_<DSP:dspfmt2>, mips_addsc): Likewise.
21736         (mips_addwc, mips_absq_s_<DSPQ:dspfmt2>): Likewise.
21737         (mips_precrq_rs_ph_w, mips_precrqu_s_qb_ph): Likewise.
21738         (mips_shll_<DSPV:dspfmt2>, mips_shll_s_<DSPQ:dspfmt2>): Likewise.
21739         (mips_muleu_s_ph_qbl, mips_muleu_s_ph_qbr): Likewise.
21740         (mips_mulq_rs_ph, mips_muleq_s_w_phl, mips_muleq_s_w_phr): Likewise.
21741         (mips_dpaq_s_w_ph, mips_dpsq_s_w_ph, mips_mulsaq_s_w_ph): Likewise.
21742         (mips_dpaq_sa_l_w, mips_dpsq_sa_l_w, mips_maq_s_w_phl): Likewise.
21743         (mips_maq_s_w_phr, mips_maq_sa_w_phl, mips_maq_sa_w_phr): Likewise.
21744         (mips_extr_w, mips_extr_r_w, mips_extr_rs_w): Likewise.
21745         (mips_extr_s_h, mips_extp, mips_extpdp, mips_mthlip): Likewise.
21746         (mips_wrdsp): Likewise.
21747         * config/mips/mips-dspr2.md (mips_absq_s_qb): Remove explicit
21748         parallel.
21749         (mips_addu_ph, mips_addu_s_ph, mips_cmpgdu_eq_qb): Likewise.
21750         (mips_cmpgdu_lt_qb, mips_cmpgdu_le_qb, mulv2hi3): Likewise.
21751         (mips_mul_s_ph, mips_mulq_rs_w, mips_mulq_s_ph): Likewise.
21752         (mips_mulq_s_w, mips_subu_ph, mips_subu_s_ph): Likewise.
21753         (mips_dpaqx_s_w_ph, mips_dpaqx_sa_w_ph): Likewise.
21754         (mips_dpsqx_s_w_ph, mips_dpsqx_sa_w_ph): Likewise.
21755         * config/mips/mips-fixed.md (usadd<mode>3): Remove explicit parallel.
21756         (ssadd<mode>3, ussub<mode>3, sssub<mode>3, ssmul<mode>3): Likewise.
21757         (ssmaddsqdq4, ssmsubsqdq4): Likewise.
21758
21759 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
21760
21761         * config/mips/mips.c (mips_rtx_costs): Set costs for LSA/DLSA.
21762         (mips_print_operand): Support 'y' to print exact log2 in decimal
21763         of a const_int.
21764         * config/mips/mips.h (ISA_HAS_LSA): New define.
21765         (ISA_HAS_DLSA): Likewise.
21766         * config/mips/mips.md (<GPR:d>lsa): New define_insn.
21767         * config/mips/predicates.md (const_immlsa_operand): New predicate.
21768
21769 2015-01-15  Martin Liska  <mliska@suse.cz>
21770
21771         PR target/64377
21772         * optc-save-gen.awk: Add support for array types.
21773
21774 2015-01-15  Richard Biener  <rguenther@suse.de>
21775
21776         PR middle-end/64365
21777         * tree-data-ref.c (dr_analyze_indices): Make sure that accesses
21778         for MEM_REF access functions with the same base can never partially
21779         overlap.
21780
21781 2015-01-14  Marcos Diaz <marcos.diaz@tallertechnologies.com>
21782
21783         * common.opt: New option -fstack-protector-explicit.
21784         * cfgexpand.c (SPCT_FLAG_EXPLICIT): New enum.
21785         (stack_protect_decl_phase): Handle stack_protect attribute for
21786         explicit stack protection requests.
21787         (expand_used_vars): Similarly.
21788         * doc/cpp.texi (__SSP_EXPLICIT__): Document predefined macro.
21789         * doc/extend.texi: Add documentation for "stack_protect" attribute.
21790         * doc/invoke.texi: Add documentation for -fstack-protector-explicit.
21791
21792 2015-01-14  Oleg Endo  <olegendo@gcc.gnu.org>
21793
21794         PR target/53988
21795         * config/sh/sh-protos.h (sh_find_set_of_reg): Add option to ignore
21796         reg-reg copies.
21797         (sh_extending_set_of_reg): New struct.
21798         (sh_find_extending_set_of_reg, sh_split_tst_subregs,
21799         sh_remove_reg_dead_or_unused_notes): New Declarations.
21800         * config/sh/sh.c (sh_remove_reg_dead_or_unused_notes,
21801         sh_find_extending_set_of_reg, sh_split_tst_subregs,
21802         sh_extending_set_of_reg::use_as_extended_reg): New functions.
21803         * config/sh/sh.md (*tst<mode>_t_zero): Rename to *tst<mode>_t_subregs,
21804         convert to insn_and_split and use new function sh_split_tst_subregs.
21805
21806 2015-01-14  Sandra Loosemore  <sandra@codesourcery.com>
21807
21808         * doc/invoke.texi (Option Summary): Reclassify -fuse-ld as a linker
21809         option.
21810         (Optimization Options): Move -fuse-ld documentation to...
21811         (Link Options): ...here.
21812
21813 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
21814
21815         * config/mips/constraints.md (ZC): Add support for R6 LL/SC
21816         offsets.
21817         (ZD): Update to use ISA_HAS_9BIT_DISPLACEMENT.
21818         * config/mips/mips.h (ISA_HAS_PREFETCH_9BIT): Rename to...
21819         (ISA_HAS_9BIT_DISPLACEMENT): ... this. New macro.
21820         * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZC
21821         instead of ZR for the memory operand of LL/SC.
21822         (compare_and_swap_12, sync_add<mode>): Likewise.
21823         (sync_<optab>_12, sync_old_<optab>_12): Likewise.
21824         (sync_new_<optab>_12, sync_nand_12): Likewise.
21825         (sync_old_nand_12, sync_new_nand_12): Likewise.
21826         (sync_sub<mode>, sync_old_add<mode>): Likewise.
21827         (sync_old_sub<mode>, sync_new_add<mode>): Likewise.
21828         (sync_new_sub<mode>, sync_<optab><mode>): Likewise.
21829         (sync_old_<optab><mode>, sync_new_<optab><mode>"): Likewise.
21830         (sync_nand<mode>, sync_old_nand<mode>): Likewise.
21831         (sync_new_nand<mode>, sync_lock_test_and_set<mode>): Likewise.
21832         (test_and_set_12, atomic_compare_and_swap<mode>): Likewise.
21833         (atomic_exchange<mode>_llsc, atomic_fetch_add<mode>_llsc): Likewise.
21834         * doc/md.texi (ZC): Update description.
21835
21836 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
21837
21838         * builtins.c (expand_builtin_atomic_exchange): Remove error when
21839         memory model is CONSUME.
21840         (expand_builtin_atomic_compare_exchange, expand_builtin_atomic_load,
21841         expand_builtin_atomic_store): Change invalid memory model errors to
21842         warnings.
21843         (expand_builtin_atomic_clear): Change invalid model errors to warnings
21844         and issue warning for CONSUME.
21845
21846 2015-01-14  Aldy Hernandez  <aldyh@redhat.com>
21847
21848         * lto-cgraph: Update function comments for
21849         lto_symtab_encoder_encode_*.
21850
21851 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
21852
21853         * Makefile.in (site.exp): Do not set ENABLE_LTO.
21854
21855 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
21856
21857         * cgraphunit.c (ipa_passes): Remove argument from ipa_write_summaries.
21858         * lto-cgraph.c (select_what_to_stream): Remove argument, use
21859         lto_stream_offload_p instead.
21860         * lto-streamer.h (select_what_to_stream): Remove argument.
21861         * passes.c (ipa_write_summaries): Likewise.
21862         * tree-pass.h (ipa_write_summaries): Likewise.
21863
21864 2015-01-14  Richard Biener  <rguenther@suse.de>
21865
21866         PR tree-optimization/59354
21867         * tree-vect-slp.c (vect_build_slp_tree_1): Treat loads from
21868         groups larger than the slp group size as having gaps.
21869
21870 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
21871
21872         PR middle-end/59448
21873         * builtins.c (get_memmodel): Promote consume to acquire always.
21874
21875 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
21876
21877         PR target/64386
21878         * config/i386/i386.c (ix86_expand_sse_cmp): Handle V64QImode,
21879         V32HImode.
21880
21881 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
21882
21883         PR target/64393
21884         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET):
21885         Enable AVX512BW.
21886         (OPTION_MASK_ISA_AVX512BW_UNSET): Disable AVX512VBMI.
21887         * config/i386/i386.c (ix86_hard_regno_mode_ok): Don't check
21888         AVX512VBMI, as it implies AVX512BW.
21889
21890 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
21891
21892         PR target/64387
21893         * config/i386/sse.md (vec_unpacks_hi_v8sf): Fix predicate.
21894         (vec_unpacks_hi_v16sf): Ditto.
21895
21896 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21897
21898         * config/aarch64/arm_neon.h: Error out if AdvancedSIMD
21899         is not available.
21900
21901 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21902
21903         * doc/invoke.texi (mapcs): Mention deprecation.
21904         (mapcs-frame): Likewise.
21905
21906 2015-01-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
21907
21908         PR target/64453
21909         * config/arm/arm.c (callee_saved_reg_p): Define.
21910         (arm_compute_save_reg0_reg12_mask): Use callee_saved_reg_p to check if
21911         register is callee saved instead of !call_used_regs[reg].
21912         (thumb1_compute_save_reg_mask): Likewise.
21913
21914 2015-01-14  Hale Wang  <hale.wang@arm.com>
21915
21916         * config/arm/arm.c: Tune the max_cond_insns/branch_cost for
21917         Cortex-M7.
21918
21919 2015-01-14  Richard Biener  <rguenther@suse.de>
21920
21921         PR lto/64415
21922         * tree-inline.c (insert_debug_decl_map): Check destination
21923         function MAY_HAVE_DEBUG_STMTS.
21924         (insert_init_debug_bind): Likewise.
21925         (insert_init_stmt): Remove redundant check.
21926         (remap_gimple_stmt): Drop debug stmts if the destination
21927         function has var-tracking assignments disabled.
21928
21929 2015-01-14  Martin Liska  <mliska@suse.cz>
21930
21931         * ipa-icf-gimple.c (func_checker::compare_operand): Add support for
21932         IMAGPART_EXPR and REALPART_EXPR and fix BIT_FIELD_REF comparison.
21933
21934 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21935
21936         PR target/64460
21937         * config/arm/arm.md (*<arith_shift_insn>_multsi): Set 'shift' to 2.
21938         (*<arith_shift_insn>_shiftsi): Set 'shift' attr to 3.
21939
21940 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
21941
21942         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Only infer an ISA
21943         level from an ARCH; do not inject the default.
21944         (MIPS_DEFAULT_ISA_LEVEL_SPEC): New macro split out from
21945         MIPS_ISA_LEVEL_SPEC.
21946         (MIPS_ISA_NAN2008_SPEC): Update comment.
21947         (BASE_DRIVER_SELF_SPECS): Likewise.
21948         * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Add
21949         MIPS_DEFAULT_ISA_LEVEL_SPEC.
21950         * config/mips/mti-elf.h (DRIVER_SELF_SPECS): Likewise.
21951         * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Likewise.
21952         * config/mips/sde.h (DRIVER_SELF_SPECS): Likewise.
21953
21954 2015-01-14  Richard Biener  <rguenther@suse.de>
21955
21956         PR tree-optimization/64493
21957         PR tree-optimization/64495
21958         * tree-vect-loop.c (vect_finalize_reduction): For double-reductions
21959         assign the proper vectorized PHI to the inner loop exit PHIs.
21960
21961 2015-01-14  Joey Ye  <joey.ye@arm.com>
21962
21963         * config/arm/arm.c (arm_compute_save_reg_mask):
21964         Do not save lr in case of tail call.
21965         * config/arm/thumb2.md (*thumb2_pop_single): New pattern.
21966
21967 2015-01-14  Martin Uecker <uecker@eecs.berkeley.edu>
21968
21969         * tree-vrp.c (check_array_ref): Emit more warnings
21970         for warn_array_bounds >= 2.
21971         * common.opt: New option -Warray-bounds=.
21972         * doc/invoke.texi: Document -Warray-bounds=.
21973
21974 2015-01-14  Chung-Ju Wu  <jasonwucj@gmail.com>
21975
21976         * config/nds32/nds32.opt (mforce-fp-as-gp): Remove.
21977         (mforbid-fp-as-gp): Remove.
21978         (mex9): Remove.
21979         * config/nds32/nds32-fp-as-gp.c (nds32_have_prologue_p): Remove.
21980         (nds32_symbol_load_store_p): Remove.
21981         (nds32_fp_as_gp_check_available): Clean up implementation.
21982         * config/nds32/nds32.h (LINK_SPEC): Remove -mforce-as-gp and -mex9
21983         cases.
21984         * config/nds32/nds32.c (nds32_asm_file_start): No need to consider
21985         fp-as-gp and ex9 cases.
21986
21987 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
21988
21989         * tree-profile.c (init_ic_make_global_vars): Drop workaround
21990         for bintuils bug 14342.
21991         (init_ic_make_global_vars): Likewise.
21992         (gimple_init_edge_profiler): Likewise.
21993         (gimple_gen_ic_func_profiler): Likewise.
21994
21995 2015-01-13  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
21996
21997         * ipa-inline.c (inline_small_functions): Swap the operands in
21998         enum.
21999
22000 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
22001
22002         PR ipa/64481
22003         * ipa-inline-analysis.c (node_growth_cache): Remove.
22004         (initialize_growth_caches): Do not initialize it.
22005         (free_growth_caches): Do not free it.
22006         (do_estimate_growth): Rename to ...
22007         (estimate_growth): ... this one; drop growth cache code.
22008         (growth_likely_positive): Always go the heuristics way.
22009         * ipa-inline.c (can_inline_edge_p): Walk through aliases.
22010         (reset_edge_caches): Do not reset node growth.
22011         (heap_edge_removal_hook): Do not maintain cache.
22012         (inline_small_functions): Likewise; strenghten sanity check.
22013         (ipa_inline): Do not maintain caches.
22014         * ipa-inline.h (node_growth_cache): Remove.
22015         (do_estimate_growth): Remove to ...
22016         (estimate_growth): this one; remove inline version.
22017         (reset_node_growth_cache): Remove.
22018
22019 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
22020
22021         PR ipa/64565
22022         * ipa-inline.c (inline_small_functions): Update callee keys after
22023         resolving speculation
22024         (inline_small_functions): Always check monotonicity of the queue.
22025
22026 2015-01-13  Marek Polacek  <polacek@redhat.com>
22027
22028         PR middle-end/64391
22029         * trans-mem.c (get_attrs_for): Return NULL_TREE if X is NULL_TREE.
22030
22031 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
22032
22033         PR rtl-optimization/64286
22034         * ree.c (combine_reaching_defs): Move part of comment earlier,
22035         remove !SCALAR_INT_MODE_P check.
22036         (add_removable_extension): Don't add vector mode
22037         extensions if all uses of the source register aren't the same
22038         vector extensions.
22039
22040 2015-01-13  Renlin Li  <renlin.li@arm.com>
22041
22042         * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO): Return 2.
22043         (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
22044
22045 2015-01-13  Martin Liska  <mliska@suse.cz>
22046
22047         * ipa-icf.c (sem_function::equals_private): Call new functions
22048         cl_target_option_print_diff and cl_optimization_print_diff.
22049         * optc-save-gen.awk (cl_target_option_print_diff): New function.
22050         (cl_optimization_print_diff): Likewise.
22051         * opth-gen.awk: Likewise.
22052
22053 2015-01-13  Richard Sandiford  <richard.sandiford@arm.com>
22054
22055         * config/aarch64/aarch64.md (subsi3, *subsi3_uxtw, subdi3)
22056         (*sub_<optab><ALLX:mode>_<GPI:mode>, *sub_<optab><SHORT:mode>_si_uxtw)
22057         (*sub_<optab><ALLX:mode>_shft_<GPI:mode>)
22058         (*sub_<optab><SHORT:mode>_shft_si_uxtw, *sub_<optab><mode>_multp2)
22059         (*sub_<optab>si_multp2_uxtw, *sub_uxt<mode>_multp2)
22060         (*sub_uxtsi_multp2_uxtw): Add stack pointer sources.
22061
22062 2015-01-13  Andrew Pinski  <apinski@cavium.com>
22063
22064         * config/aarch64/aarch64.c (fusion_load_store): Check dest mode
22065         instead of src mode.
22066
22067 2015-01-13  Richard Biener  <rguenther@suse.de>
22068
22069         PR lto/64373
22070         * lto-streamer-out.c (tree_is_indexable): Guard for NULL
22071         DECL_CONTEXT.
22072
22073 2015-01-13  Andrew Pinski  <apinski@cavium.com>
22074
22075         * config/aarch64/aarch64.c (aarch64_operands_ok_for_ldpstp): Reject
22076         volatile mems.
22077         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
22078
22079 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
22080
22081         PR middle-end/63974
22082         * cfgexpand.c (expand_computed_goto): Don't call
22083         convert_memory_address here.
22084
22085 2015-01-13  Richard Biener  <rguenther@suse.de>
22086
22087         PR tree-optimization/64406
22088         * tree-loop-distibution.c (pass_loop_distribution::execute):
22089         Reset the SCEV hashtable if we distributed anything.
22090
22091 2015-01-13  Richard Biener  <rguenther@suse.de>
22092
22093         PR tree-optimization/64404
22094         * tree-vect-stmts.c (vectorizable_load): Reject conflicting
22095         SLP types for CSEd loads.
22096
22097 2015-01-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
22098
22099         PR tree-optimization/64436
22100         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Move code performing the
22101         merge of two symbolic numbers for a bitwise OR to ...
22102         (perform_symbolic_merge): This. Also fix computation of the range and
22103         end of the symbolic number corresponding to the result of a bitwise OR.
22104
22105 2015-01-13  Richard Biener  <rguenther@suse.de>
22106
22107         PR tree-optimization/64568
22108         * tree-ssa-forwprop.c (pass_forwprop::execute): Properly
22109         release defs of removed stmts, avoid splitting TARGET_MEM_REFs.
22110
22111 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
22112
22113         * config/nds32/nds32.c (nds32_legitimate_address_p): Consider
22114         TARGET_CMODEL_LARGE and TARGET_CMODEL_MEDIUM cases.
22115
22116 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
22117
22118         * config/nds32/nds32.h (NDS32_SYMBOL_FLAG_RODATA): Define our own
22119         target-specific symbol_ref flag.
22120         (NDS32_SYMBOL_REF_RODATA_P): Define it to check if the symbol_ref
22121         resides in rodata section.
22122         * config/nds32/nds32.c (TARGET_ENCODE_SECTION_INFO): Define.
22123         (nds32_encode_section_info): New function.
22124
22125 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
22126
22127         * config/nds32/nds32.md (call): Use pseudo instruction bal which
22128         clobbers TA_REGNUM if large code model is specified.
22129         (call_register): Likewise.
22130         (call_immediate): Likewise.
22131         (call_value): Likewise.
22132         (call_value_register): Likewise.
22133         (call_value_immediate): Likewise.
22134
22135 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
22136
22137         * config/nds32/nds32.h (TARGET_CMODEL_SMALL): New macro.
22138         (TARGET_CMODEL_MEDIUM): New macro.
22139         (TARGET_CMODEL_LARGE): New macro.
22140         * config/nds32/nds32.c (nds32_asm_file_start): Display corresponding
22141         code model setting in assembly code.
22142
22143 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
22144
22145         * common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS):
22146         Remove MASK_GP_DIRECT flag.
22147         * config/nds32/nds32.h (MULTILIB_DEFAULTS): Have -mcmodel=medium as
22148         one of the multilib default options.
22149         * config/nds32/nds32.opt (mgp-direct): Remove.
22150         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Use -mcmodel instead of
22151         -mgp-direct.  We also remove unnecessary -mlittle-endian/-mbig-endian.
22152
22153 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
22154
22155         * config/nds32/nds32.opt (mcmodel): Add new option.
22156         * config/nds32/nds32-opts.h (nds32_cmodel_type): Add new enum type
22157         to describe code model.
22158
22159 2015-01-13  Oleg Endo  <olegendo@gcc.gnu.org>
22160
22161         PR target/64479
22162         * rtlanal.c (set_reg_p): Handle SEQUENCE constructs.
22163
22164 2015-01-12  Kaz Kojima  <kkojima@gcc.gnu.org>
22165
22166         * config/sh/sh.c (sh_atomic_assign_expand_fenv): New function.
22167         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
22168         (sh_builtin_get_fpscr, sh_builtin_set_fpscr): New variables.
22169         (sh_init_builtins): Record decls for __builtin_sh_get_fpscr and
22170         __builtin_sh_set_fpscr.
22171
22172 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
22173
22174         * doc/invoke.texi ([-Wsuggest-attribute=]): Don't use parentheses
22175         after a funtion name just to indicate it is a function.
22176         ([-fsanitize-undefined-trap-on-error]): Likewise.
22177         ([-fdbg-cnt=]): Likewise.
22178         ([-mmemcpy]): Likewise.
22179         ([-mflush-func]): Likewise.
22180         ([-msynci]): Likewise.
22181
22182 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
22183
22184         * doc/invoke.texi ([-Wbad-function-cast]): Rewrite to avoid confusing
22185         example.
22186
22187 2015-01-12  Jakub Jelinek  <jakub@redhat.com>
22188
22189         PR tree-optimization/64563
22190         * tree-vrp.c (vrp_evaluate_conditional): Check for VR_RANGE
22191         instead of != VR_VARYING.
22192
22193         PR target/64513
22194         * config/i386/i386.c (ix86_expand_prologue): Add
22195         REG_FRAME_RELATED_EXPR to %rax and %r10 pushes.
22196
22197         PR tree-optimization/64454
22198         * tree-vrp.c (simplify_div_or_mod_using_ranges): Optimize
22199         op0 % op1 into op0 if op0 is in range [-op1 + 1, op1 - 1]
22200         for signed or [0, op1 - 1] for unsigned modulo.
22201         (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
22202         even if op1 does not satisfy integer_pow2p.
22203
22204         PR other/64370
22205         * sreal.c (sreal::to_double): Use ldexp instead of scalbnl.
22206
22207 2015-01-12  Jeff Law  <law@redhat.com>
22208
22209         PR target/64461
22210         * config/m68k/m68k.md (truncsiqi2): Disable for TARGET_COLDFIRE.
22211         (trunchiqi2, truncsihi2): Similarly.
22212
22213         * config/h8300/h8300.c (Fpa): Use RTX_FRAME_RELATED_P directly
22214         rather than calling F.
22215
22216 2015-01-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>
22217
22218         * tsan.c (instrument_expr): Use force_gimple_operand.
22219         Use may_be_nonaddressable_p instead of is_gimple_addressable.
22220
22221 2015-01-12  Richard Biener  <rguenther@suse.de>
22222
22223         PR tree-optimization/64530
22224         * tree-loop-distribution.c (pg_add_dependence_edges): Shuffle
22225         back dr1.
22226
22227 2015-01-12  Richard Biener  <rguenther@suse.de>
22228
22229         PR middle-end/64357
22230         * tree-cfg.c (gimple_can_merge_blocks_p): Protect simple
22231         latches properly.
22232
22233 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22234
22235         * config/arm/arm.c (arm_cortex_a12_tune): Update entries to match
22236         Cortex-A17 tuning parameters.
22237         * config/arm/arm-cores.def (cortex-a12): Schedule for cortex-a17.
22238
22239 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22240
22241         * config/arm/arm-protos.h (tune_params): Add fuseable_ops field.
22242         * config/arm/arm.c (arm_macro_fusion_p): New function.
22243         (arm_macro_fusion_pair_p): Likewise.
22244         (TARGET_SCHED_MACRO_FUSION_P): Define.
22245         (TARGET_SCHED_MACRO_FUSION_PAIR_P): Likewise.
22246         (ARM_FUSE_NOTHING): Likewise.
22247         (ARM_FUSE_MOVW_MOVT): Likewise.
22248         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,
22249         arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,
22250         arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,
22251         arm_cortex_a53_tune, arm_cortex_a57_tune, arm_cortex_a9_tune,
22252         arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune
22253         arm_cortex_a5_tune): Specify fuseable_ops value.
22254
22255 2015-01-12  H.J. Lu  <hongjiu.lu@intel.com>
22256
22257         PR bootstrap/64561
22258         * configure.ac (HAVE_LD_PIE_COPYRELOC): Update Linux/x86-64 linker
22259         test for PIE with copy reloc.
22260         * configure: Regenerated.
22261
22262 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22263
22264         * config/arm/arm.c (arm_load_tp): Use R0_REGNUM instead of constant 0
22265         in gen_rtx_REG.
22266         (arm_tls_descseq_addr): Likewise.
22267         (arm_gen_movmemqi): Likewise.
22268         (arm_expand_epilogue_apcs_frame): Likewise.
22269         (arm_expand_epilogue): Likewise.
22270         (arm_expand_prologue): Likewise.  Use R1_REGNUM instead of constant 1
22271         in gen_rtx_REG.
22272
22273 2015-01-12  Martin Liska  <mliska@suse.cz>
22274
22275         PR ipa/64550
22276         * ipa-icf-gimple.c (func_checker::compare_memory_operand): Compare
22277         volatility for correct operands.
22278
22279 2015-01-12  Martin Liska  <mliska@suse.cz>
22280
22281         * ipa-icf.c (sem_function::equals_wpa): Add indirect_calls as
22282         indication that a function is not leaf.
22283         (sem_function::compare_polymorphic_p): Likewise.
22284
22285 2015-01-12  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
22286
22287         * config/visium/visium.c: Add includes hashtab.h, hash-set.h,
22288         machmode.h, input.h, statistics.h, vec.h, double-int.h, real.h,
22289         fixed-value.h, alias.h, symtab.h, tree-core.h, wide-int.h, inchash.h,
22290         fold-const.h, tree-check.h.
22291
22292 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
22293
22294         PR ipa/63967
22295         PR ipa/64425
22296         * ipa-inline.c (compute_uninlined_call_time,
22297         compute_inlined_call_time): Use counts for extra precision when
22298         needed possible.
22299         (big_speedup_p): Fix formating.
22300         (RELATIVE_TIME_BENEFIT_RANGE): Remove.
22301         (relative_time_benefit): Remove.
22302         (edge_badness): Turn DECL_DISREGARD_INLINE_LIMITS into hint;
22303         merge guessed and read profile paths.
22304         (inline_small_functions): Count only !optimize_size functions into
22305         initial size; be more lax about sanity check when profile is used;
22306         be sure to update inlined function profile when profile is read.
22307
22308 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
22309
22310         PR ipa/63470
22311         * ipa-inline-analysis.c (inline_edge_duplication_hook): Adjust
22312         cost when edge becomes direct.
22313         * ipa-prop.c (make_edge_direct): Do not adjust when speculation
22314         is resolved or when introducing new speculation.
22315
22316 2015-01-12  Chen Gang  <gang.chen.5i5j@gmail.com>
22317
22318         PR ipa/64551
22319         PR ipa/64552
22320         * ipa-icf.c (sem_function::equals_private): Use '&&' instead of
22321         '||' to fix typo issue.
22322
22323         * gcc/tree.h (target_opts_for_fn): Check NULL_TREE since it can
22324         accept and return NULL.
22325
22326 2015-01-12  Martin Liska  <mliska@suse.cz>
22327
22328         * cgraph.c (cgraph_edge::remove_callee): Move function to header
22329         file for being inlined.
22330         (cgraph_set_edge_callee): Delete.
22331         (cgraph_edge::redirect_callee): Move function to header file
22332         for being inlined.
22333         (cgraph_edge::make_direct): Use new function.
22334         (cgraph_edge::dump_edge_flags): New function created from
22335         static dump_edge_flags function.
22336         (cgraph_node::dump): Use new function.
22337         (cgraph_edge::verify_count_and_frequency): New function created
22338         from verify_edge_count_and_frequency.
22339         (cgraph_edge::verify_corresponds_to_fndecl): New function created
22340         from verify_edge_corresponds_to_fndecl.
22341         (verify_edge_corresponds_to_fndecl): Delete.
22342         (cgraph_node::verify_node): Use new function.
22343         * cgraph.h (cgraph_edge::set_callee): New function.
22344         (cgraph_edge::dump_edge_flags): Likewise.
22345         (cgraph_edge::verify_corresponds_to_fndecl): Likewise.
22346
22347 2015-01-11  Jan Hubicka  <hubicka@ucw.cz>
22348
22349         * ipa-utils.c (estimate_function_body_sizes): Do not
22350         free node params when called late with early=true.
22351
22352 2015-01-11  James Greenhalgh  <james.greenhalgh@arm.com>
22353
22354         * doc/md.texi (Instruction Patterns): Rewrite text for
22355         clarity.
22356         (Example): Likewise.
22357
22358 2015-01-10  Sandra Loosemore  <sandra@codesourcery.com>
22359
22360         * doc/invoke.texi (Option Summary): Break long lines.
22361         [(-fdiagnostics-color)]: Put long literal in @smallexample
22362         instead of inline.
22363         [(-fsanitize-recover)]: Likewise.
22364         [(-fdump-rtl-split*)]: Rewrite to fix over-full hbox.
22365         [(-ffast-math)]: Likewise.
22366         [(--param max-inline-insns-recursive)]: Likewise.
22367         [(--param max-inline-recursive-depth)]: Likewise.
22368         [(-mno-text-section-literals)]: Likewise.
22369
22370 2015-01-10  Thomas Schwinge  <thomas@codesourcery.com>
22371
22372         * doc/install.texi: Update for libgomp being renamed from "GNU
22373         OpenMP Runtime Library" to "GNU Offloading and Multi Processing
22374         Runtime Library".
22375         * doc/sourcebuild.texi: Likewise.
22376
22377 2015-01-10  Anthony Green  <green@moxielogic.com>
22378
22379         * config/moxie/moxie.c (moxie_option_override): Fix forcing of
22380         mul.x availability for moxiebox configuration.
22381
22382 2015-01-09  Anthony Green  <green@moxielogic.com>
22383
22384         * config/moxie/moxie.md: Tabify assembly output.
22385
22386 2015-01-09  Anthony Green  <green@moxielogic.com>
22387
22388         * config/moxie/moxie.md (CC_REG): Correct register definition.
22389
22390 2015-01-09  Sandra Loosemore  <sandra@codesourcery.com>
22391
22392         * doc/invoke.texi ([-fvtable-verify]): Copy-edit and fix markup.
22393         ([-fvtv-debug], [-fvtv-counts]): Likewise.  Correct location
22394         of log files.
22395
22396 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
22397
22398         * config/arm/arm.h (MAX_SYNC_LIBFUNC_SIZE): Delete semicolon.
22399
22400 2015-01-09  Bernd Schmidt  <bernds@codesourcery.com>
22401             Jakub Jelinek  <jakub@redhat.com>
22402
22403         PR middle-end/64412
22404         * lto-streamer.h (lto_stream_offload_p): New declaration.
22405         * lto-streamer.c (lto_stream_offload_p): New variable.
22406         * cgraphunit.c (ipa_passes): Set lto_stream_offload_p
22407         at the same time as section_name_prefix.
22408         * lto-streamer-out.c (hash_tree): Don't hash TREE_TARGET_OPTION
22409         if lto_stream_offload_p.
22410         * tree-streamer-out.c (streamer_pack_tree_bitfields): Don't
22411         stream TREE_TARGET_OPTION if lto_stream_offload_p.
22412         (write_ts_function_decl_tree_pointers): Don't
22413         stream DECL_FUNCTION_SPECIFIC_TARGET if lto_stream_offload_p.
22414         * tree-streamer-in.c (unpack_value_fields): Don't stream
22415         TREE_TARGET_OPTION in if ACCEL_COMPILER.
22416         (lto_input_ts_function_decl_tree_pointers): Don't stream
22417         DECL_FUNCTION_SPECIFIC_TARGET in if ACCEL_COMPILER.
22418         * lto-opts.c (lto_write_options): Use lto_stream_offload_p
22419         instead of section_name_prefix string comparisons.
22420
22421 2015-01-09  Jakub Jelinek  <jakub@redhat.com>
22422
22423         PR rtl-optimization/64536
22424         * cfgrtl.c (rtl_tidy_fallthru_edge): Handle removal of degenerate
22425         tablejumps.
22426
22427 2015-01-09  Michael Collison  <michael.collison@linaro.org>
22428
22429         PR tree-optimization/64322
22430         * tree-vrp.c (extract_range_from_binary_expr_1): Attempt to derive
22431         range for RSHIFT_EXPR even if vr0 range is not VR_RANGE or is symbolic.
22432
22433 2015-01-09  Tom de Vries  <tom@codesourcery.com>
22434
22435         PR rtl-optimization/64539
22436         * regcprop.c (kill_clobbered_values): Factor out of ...
22437         (copyprop_hardreg_forward_1): ... here.  Use kill_clobbered_values
22438         instead of note_stores with kill_clobbered_value.
22439
22440 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
22441
22442          * ginclude/unwind-arm-common.h: Revert previous commit.
22443
22444 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
22445
22446         * config.gcc (arm*-*-freebsd*): New configuration.
22447         * config/arm/freebsd.h: New file.
22448         * config.host: Add extra components for arm*-*-freebsd*.
22449         * config/arm/arm.h: Introduce MAX_SYNC_LIBFUNC_SIZE.
22450         * config/arm/arm.c (arm_init_libfuncs): Use MAX_SYNC_LIBFUNC_SIZE.
22451
22452 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
22453
22454         * config/rs6000/rtems.h (CPP_OS_RTEMS_SPEC): Define __PPC_CPU_E6500__
22455         for -mcpu=e6500.
22456         * config/rs6000/t-rtems: Add e6500 multilibs.
22457
22458 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
22459
22460         * config/rs6000/t-rtems: Add -mno-spe to soft-float multilib for
22461         MPC8540.
22462
22463 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
22464
22465         * config/rs6000/t-rtems: Use MULTILIB_REQUIRED instead of
22466         MULTILIB_EXCEPTIONS.
22467
22468 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
22469
22470         * config/arm/t-rtems: Use MULTILIB_REQUIRED instead of
22471         MULTILIB_EXCEPTIONS.
22472
22473 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
22474
22475         * config/arm/t-rtems-eabi: Rename to...
22476         * config/arm/t-rtems: ...this.
22477         * config/arm/rtems-eabi.h: Rename to...
22478         * config/arm/rtems.h: ...this.
22479         * config.gcc (arm*-*-rtems*): Reflect changes above.
22480
22481 2015-01-09  Richard Biener  <rguenther@suse.de>
22482
22483         PR tree-optimization/64410
22484         * tree-ssa.c (non_rewritable_lvalue_p): Allow REALPART/IMAGPART_EXPR
22485         on the LHS.
22486         (execute_update_addresses_taken): Deal with that.
22487         * tree-ssa-forwprop.c (pass_forwprop::execute): Use component-wise
22488         loads/stores for complex variables.
22489
22490 2015-01-09  Martin Liska  <mliska@suse.cz>
22491
22492         * ipa-icf-gimple.c (func_checker::compare_ssa_name): Enhance SSA
22493         name comparison.
22494         (func_checker::compare_memory_operand): New function.
22495         (func_checker::compare_operand): Split case to newly
22496         added functions.
22497         (func_checker::compare_cst_or_decl): New function.
22498         (func_checker::compare_gimple_call): Identify
22499         memory operands.
22500         (func_checker::compare_gimple_assign): Likewise.
22501         * ipa-icf-gimple.h: New function.
22502
22503 2015-01-09  Martin Liska  <mliska@suse.cz>
22504
22505         PR ipa/64503
22506         * sreal.c (sreal::dump): Change unsigned format to signed for
22507         m_exp value.
22508         (sreal::to_double): Replace exp2 with scalbln.
22509
22510 2015-01-09  Martin Liska  <mliska@suse.cz>
22511
22512         * cgraphunit.c (cgraph_node::create_wrapper): Fix level of indentation.
22513         * ipa-icf.c (sem_function::equals_private): Add support for target and
22514         (sem_item_optimizer::merge_classes): Remove redundant function
22515         optimization flags comparison.
22516         * tree.h (target_opts_for_fn): New function.
22517
22518 2015-01-09  Tom de Vries  <tom@codesourcery.com>
22519
22520         * omp-low.c (expand_omp_for_static_chunk): Fix assert.
22521
22522 2015-01-09  Kito Cheng  <kito@0xlab.org>
22523
22524         PR rtl-optimization/64348
22525         * lra-constraints.c (split_reg): Fix caller-save store/restore
22526         instruction generation.
22527
22528 2015-01-08  John David Anglin  <danglin@gcc.gnu.org>
22529
22530         PR gcov-profile/61790
22531         * gcov-tool.c (do_rewrite): Use strtoll instead of atoll if host has
22532         long long.  Fallback to int64_t if host doesn't have long long and
22533         use strtol if int64_t is long.  Otherwise, use sscanf for conversion.
22534
22535 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
22536
22537         PR tree-optimization/63989
22538         * params.def (PARAM_MAX_TRACKED_STRLENS): Increment default
22539         from 1000 to 10000.
22540         * tree-ssa-strlen.c (get_strinfo): Moved earlier.
22541         (get_stridx): If we don't have a record for certain SSA_NAME,
22542         but it is POINTER_PLUS_EXPR of some SSA_NAME we do with
22543         constant offset, call get_stridx_plus_constant.
22544         (get_stridx_plus_constant): New function.
22545         (zero_length_string): Don't use get_stridx here.
22546
22547         PR target/55023
22548         PR middle-end/64388
22549         * dse.c (struct insn_info): Mention frame_read set also
22550         before reload for tail calls on some targets.
22551         (scan_insn): Revert 2014-12-22 change.  Set frame_read
22552         also before reload for tail calls if
22553         HARD_FRAME_POINTER_IS_ARG_POINTER.  Call add_wild_read
22554         instead of add_non_frame_wild_read for non-const/memset
22555         tail calls after reload.
22556
22557 2015-01-08  Jason Merrill  <jason@redhat.com>
22558
22559         * ubsan.c (do_ubsan_in_current_function): New.
22560         (pass_ubsan::gate): Use it.
22561         * ubsan.h: Declare it.
22562         * convert.c (convert_to_integer): Use it.
22563
22564 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
22565
22566         PR target/64338
22567         * config/i386/i386.c (ix86_expand_int_movcc): Don't reverse
22568         compare_code when it is unconditionally overwritten afterwards.
22569         Use ix86_reverse_condition instead of reverse_condition.  Don't
22570         change code if *reverse_condition* returned UNKNOWN and don't
22571         swap ct/cf and negate diff in that case.
22572
22573 2015-01-08  Mike Stump  <mikestump@comcast.net>
22574
22575         * tsan.c (pass_tsan::gate): Add no_sanitize_thread support.
22576         (pass_tsan_O0::gate): Likewise.
22577         * extend.texi (Function Attributes): Add no_sanitize_thread
22578         documentation.
22579
22580 2015-01-08  Thomas Schwinge  <thomas@codesourcery.com>
22581
22582         * builtins.def (DEF_GOMP_BUILTIN): Also consider flag_offload_abi
22583         for registering builtins.
22584         * config/i386/intelmic-mkoffload.c (prepare_target_image): Don't
22585         add -fopenmp to the argv_obstack used when invoking
22586         compile_for_target.
22587
22588         * config/i386/intelmic-mkoffload.c (compile_for_target): Always
22589         add "-m32" or "-m64" to argv_obstack.
22590         (generate_host_descr_file): Likewise, when invoking host_compiler.
22591         (main): Always add "-m elf_i386" or "-m elf_x86_64" when invoking
22592         ld.
22593
22594 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
22595
22596         * config/sh/sh-mem.cc: Use constant as second operand when emitting
22597         tstsi_t insns.
22598
22599 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
22600
22601         PR target/55212
22602         * config/sh/sh.md (*addsi3_compact): Emit reg-reg copy instead of
22603         constant load if constant operand fits into I08.
22604
22605 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
22606
22607         PR sanitizer/64336
22608         * tree.c (build2_stat): Fix up initialization of TREE_READONLY
22609         and TREE_THIS_VOLATILE for MEM_REFs.
22610         (build5_stat): Fix up initialization of TREE_READONLY and
22611         TREE_THIS_VOLATILE for TARGET_MEM_REFs.
22612
22613 2015-01-08  Kaz Kojima  <kkojima@gcc.gnu.org>
22614
22615         PR target/64533
22616         * config/sh/sh.md (*addsi3_compact): Use u constraint instead
22617         of r for the second alternative of the destination operand.
22618
22619 2015-01-07  Segher Boessenkool  <segher@kernel.crashing.org>
22620
22621         PR target/36557
22622         * config/rs6000/rs6000.md (*eqsi3_ext<mode>, *nesi3_ext<mode>): New.
22623
22624 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
22625
22626         * doc/invoke.texi ([-fvtable-verify]): Fix markup on option
22627         keywords.
22628         ([-fivar-visibility], [-fvisibility]): Likewise.
22629
22630 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
22631
22632         * doc/invoke.texi: Fix incorrect uses of @samp markup throughout
22633         the file where @code, @command, etc is more appropriate.
22634
22635 2015-01-06  Sandra Loosemore  <sandra@codesourcery.com>
22636
22637         * doc/invoke.texi (RS/6000 and PowerPC Options): Tidy formatting
22638         of -mrecip= documentation.
22639
22640 2015-01-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
22641
22642         PR target/64505
22643         * config/rs6000/rs6000.c (rs6000_secondary_reload): Return the
22644         correct reload handler if -m32 -mpowerpc64 is used.
22645
22646 2015-01-06  Tom de Vries  <tom@codesourcery.com>
22647
22648         * tree-ssa-tail-merge.c: Fix typo in struct same_succ_def comment.
22649
22650 2015-01-08  Christian Bruel  <christian.bruel@st.com>
22651
22652         PR target/64507
22653         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Check 0 length.
22654
22655 2015-01-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
22656
22657         PR tree-optimization/63259
22658         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Stop checking
22659         if optab exists for 16bit byteswap.
22660
22661 2015-01-06  Jakub Jelinek  <jakub@redhat.com>
22662
22663         * opts.c (common_handle_option): Add support for
22664         -fno-sanitize=all and -f{,no-}sanitize-recover=all.
22665         * doc/invoke.texi: Document -fno-sanitize=all,
22666         -f{,no-}sanitize-recover=all.  Document that
22667         -fsanitize=float-cast-overflow is not enabled
22668         by -fsanitize=undefined.  Fix up documentation
22669         of -f{,no-}sanitize-recover.
22670
22671 2015-01-06  Eric Botcazou  <ebotcazou@adacore.com>
22672
22673         * config.gcc: Add Visium support.
22674         * configure.ac: Likewise.
22675         * configure: Regenerate.
22676         * doc/extend.texi (interrupt attribute): Add Visium.
22677         * doc/invoke.texi: Document Visium options.
22678         * doc/install.texi: Document Visium target.
22679         * doc/md.texi: Document Visium constraints.
22680         * common/config/visium: New directory.
22681         * config/visium: Likewise.
22682
22683 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
22684
22685         * simplify-rtx.c (simplify_binary_operation_1): Handle more cases
22686         for the "(and X (ior (not X) Y) -> (and X Y)" transform.
22687
22688 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
22689
22690         * combine.c (combine_validate_cost): Do not count the cost of a
22691         split I2 twice.  Do not display it twice in the dump, either.
22692
22693 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
22694
22695         Revert parts of r219199.
22696         * doc/invoke.texi ([-Wliteral-suffix]): Restore markup on
22697         <inttypes.h>.
22698         ([-Wtraditional]): Restore markup on <limits.h>.
22699
22700 2015-01-05  Trevor Saunders  <tsaunders@mozilla.com>
22701
22702         PR c++/31397
22703         * doc/invoke.texi: Document -Wsuggest-override.
22704
22705 2015-01-05  Radovan Obradovic  <radovan.obradovic@imgtec.com>
22706
22707         PR rtl-optimization/64287
22708         * toplev.c (HAVE_epilogue, HAVE_prologue): Provide default.
22709         (process_options): Disable flag_ipa_ra if profiling.
22710
22711 2015-01-05  Eric Botcazou  <ebotcazou@adacore.com>
22712
22713         * config/nds32/nds32-peephole2.md: Do not mention define_peephole.
22714
22715 2015-01-05  Max Filippov  <jcmvbkbc@gmail.com>
22716
22717         * config/xtensa/xtensa.c (hwloop_optimize, hwloop_fail,
22718         hwloop_pattern_reg, xtensa_doloop_hooks, xtensa_reorg_loops):
22719         put under #if TARGET_LOOPS guard.
22720
22721 2015-01-05  Uros Bizjak  <ubizjak@gmail.com>
22722
22723         * config/i386/i386.c (output_387_binary_op): Use std::swap.
22724
22725 2015-01-05  Oleg Endo  <olegendo@gcc.gnu.org>
22726
22727         * rtlanal.c (refers_to_regno_p): Change return value from int to bool.
22728         * rtl.h (refers_to_regno_p): Add overload.
22729         * cse.c: Use it.
22730         * bt-load.c: Likewise.
22731         * combine.c: Likewise.
22732         * df-scan.c: Likewise.
22733         * sched-deps.c: Likewise.
22734         * config/s390/s390.c: Likewise.
22735         * config/m32r/m32r.c: Likewise.
22736         * config/rs6000/spe.md: Likewise.
22737         * config/rs6000/rs6000.c: Likewise.
22738         * config/pa/pa.c: Likewise.
22739         * config/stormy16/stormy16.c: Likewise.
22740         * config/cris/cris.c: Likewise.
22741         * config/arc/arc.md: Likewise.
22742         * config/arc/arc.c: Likewise.
22743         * config/sh/sh.md: Likewise.
22744         * config/sh/sh.c: Likewise.
22745         * config/frv/frv.c: Likewise.
22746
22747 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
22748
22749         PR sanitizer/64265
22750         * gimplify.c (gimplify_function_tree): Add TSAN_FUNC_EXIT internal
22751         call as cleanup of the whole body.
22752         * internal-fn.def (TSAN_FUNC_EXIT): New internal call.
22753         * tsan.c (replace_func_exit): New function.
22754         (instrument_func_exit): Moved earlier.
22755         (instrument_memory_accesses): Adjust TSAN_FUNC_EXIT internal calls.
22756         Call instrument_func_exit if no TSAN_FUNC_EXIT internal calls have
22757         been found.
22758         (tsan_pass): Don't call instrument_func_exit.
22759         * internal-fn.c (expand_TSAN_FUNC_EXIT): New function.
22760         * tree-inline.c (copy_bb): Drop TSAN_FUNC_EXIT internal calls during
22761         inlining.
22762
22763         PR sanitizer/64344
22764         * ubsan.h (ubsan_instrument_float_cast): Add ARG argument.
22765         * ubsan.c (ubsan_instrument_float_cast): Add ARG argument, pass
22766         it to libubsan handler instead of EXPR.  Fold comparisons earlier,
22767         if the result is integer_zerop, return NULL_TREE.
22768         * convert.c (convert_to_integer): Pass expr as ARG.
22769
22770         PR tree-optimization/64465
22771         * tree-inline.c (redirect_all_calls): During inlining
22772         clean up EH stmts and EH edges if redirect_call_stmt_to_callee
22773         changed the stmt to a non-throwing call.
22774
22775 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
22776
22777         * doc/invoke.texi: Fix incorrect uses of @code, @option, @samp,
22778         etc markup throughout the file.
22779
22780 2015-01-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
22781
22782         Enable experimental TSAN support for Ada.
22783         * tsan.c (instrument_expr): Handle VIEW_CONVERT_EXPR.
22784
22785 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
22786
22787         PR tree-optimization/64494
22788         * tree-ssa-loop-im.c (move_computations_dom_walker::before_dom): Also
22789         clear SSA_NAME_ANTI_RANGE_P flag.
22790
22791 2015-01-05  Marek Polacek  <polacek@redhat.com>
22792
22793         * doc/extend.texi (Arrays of Length Zero): Add missing comma.
22794
22795 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
22796
22797         Update copyright years.
22798
22799         * gcc.c (process_command): Update copyright notice dates.
22800         * gcov-dump.c: Ditto.
22801         * gcov.c: Ditto.
22802         * doc/cpp.texi: Bump @copying's copyright year.
22803         * doc/cppinternals.texi: Ditto.
22804         * doc/gcc.texi: Ditto.
22805         * doc/gccint.texi: Ditto.
22806         * doc/gcov.texi: Ditto.
22807         * doc/install.texi: Ditto.
22808         * doc/invoke.texi: Ditto.
22809
22810         * auto-profile.c, auto-profile.h: Fix up Copyright line.
22811
22812 2015-01-04  Sandra Loosemore  <sandra@codesourcery.com>
22813
22814         * doc/invoke.texi ([-fsized-deallocation]): Copy-edit to fix
22815         verb tense, etc.
22816         ([-fvtable-verify], [-fvtv-debug]): Likewise.
22817         ([-Wabi]): Likewise.
22818         ([-fmessage-length]): Likewise.
22819         ([-Wsuggest-final-types], [-Wsuggest-final-methods]): Likewise.
22820         ([-Wno-discarded-qualifiers]): Likewise.
22821         ([-Wnodiscarded-array-qualifiers]): Likewise.
22822         ([-Wno-virtual-move-assign]): Likewise.
22823         ([-fsanitize=address], [-fsanitize=thread]): Likewise.
22824         ([-fsanitize=leak], [-fsanitize=undefined]): Likewise.
22825         ([-fsanitize=unreachable], [-fsanitize-recover]): Likewise.
22826         ([-fsanitize-undefined-trap-on-error]): Likewise.
22827         ([-floop-interchange]): Likewise.
22828         ([-ftree-coalesce-inlined-vars]): Likewise.
22829         ([-fvect-cost-model]): Likewise.
22830         ([-flto]): Likewise.
22831         ([--param]): Likewise.
22832         (Spec Files): Likewise.
22833         ([-mstrict-align]): Likewise.
22834         ([-mfix-cortex-a53-835769]): Likewise.
22835         ([-march], [-mtune]): Likewise.
22836         ([-mpic-register]): Likewise.
22837         ([-munaligned-access]): Likewise.
22838         ([-msp8]): Likewise.
22839         (EIND and Devices with more than 128 Ki Bytes of Flash): Likewise.
22840         (AVR Built-in Macros): Likewise.
22841         ([-mpreferred-stack-boundary]): Likewise.
22842         ([-mtune-crtl]): Likewise.
22843         ([-mashf]): Likewise.
22844         ([-mmcu=]): Likewise.
22845         ([-minrt]): Likewise.
22846         ([-maltivec], [-maltivec=be], [-maltivec=le]): Likewise.
22847         ([-mupper-regs]): Likewise.
22848         ([-matomic-model]): Likewise.
22849         ([-mdiv]): Likewise.
22850         ([-mzdcbranch]): Likewise.
22851         ([-mdisable-callt]): Likewise.
22852         ([-msoft-float]): Likewise.
22853         ([-m8byte-align]): Likewise.
22854         ([-fstack-reuse]): Likewise.
22855
22856 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
22857
22858         * doc/invoke.texi ([-fprofile-generate], [-fprofile-use]):
22859         Fix markup, light copy-editing.
22860         ([-fauto-profile]): Rewrite to fix formatting and content
22861         problems.
22862
22863 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
22864
22865         * doc/invoke.texi ([-fisolate-erroneous-paths-dereference]):
22866         Copy-edit description.
22867         ([-fisolate-erroneous-paths-attribute]): Likewise.
22868         * common.opt (fisolate-erroneous-paths-dereference):
22869         Copy-edit description.
22870         (fisolate-erroneous-paths-attribute): Likewise.
22871
22872 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
22873
22874         * doc/invoke.texi ([-fsemantic-interposition]): Fix typos and
22875         tidy grammar.
22876
22877 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
22878
22879         * doc/invoke.texi ([-fplan9-extensions]): Add/fix @opindex.
22880         ([-fvtv-debug]): Likewise.
22881         ([-Wc++-compat]): Likewise.
22882         ([-Wc++11-compat]): Likewise.
22883         ([-Wc++14-compat]): Likewise.
22884         ([-Wno-sized-deallocation]): Likewise.
22885         ([-femit-class-debug-always]): Likewise.
22886         ([-femit-struct-debug-detailed]): Likewise.
22887         ([-fno-keep-inline-dllexport]): Likewise.
22888         ([-fira-algorithm]): Likewise.
22889         ([-fira-region]): Likewise.
22890         ([-flra-remat]): Likewise.
22891         ([-fipa-ra]): Likewise.
22892         ([-fhoist-adjacent-loads]): Likewise.
22893         ([-fisolate-erroneous-paths-dereference]): Likewise.
22894         ([-fisolate-erroneous-paths-attribute]): Likewise.
22895         ([-ftree-switch-conversion]): Likewise.
22896         ([-ftree-tail-merge]): Likewise.
22897         ([-ftree-loop-if-convert]): Likewise.
22898         ([-ftree-loop-if-convert-stores]): Likewise.
22899         ([-ftree-loop-distribution]): Likewise.
22900         ([-ftree-loop-distribute-patterns]): Likewise.
22901         ([-flto-compression-level]): Likewise.
22902         ([-flto-report]): Likewise.
22903         ([-flto-report-wpa]): Likewise.
22904         ([-fuse-linker-plugin]): Likewise.
22905         ([-mfix-cortex-a53-835769]): Likewise.
22906         ([-mno-fix-cortex-a53-835769]): Likewise.
22907         ([-mmmx]...[-mno-3dnow]): Remove the -mno- forms from the
22908         explicit listing; add a note to the discussion indicating they
22909         exist.  Reorder table to group similar options.  Add missing
22910         @opindex entries.  Add @need commands throughout the table to
22911         allow it to be split across multiple pages.
22912         ([-m8bit-idiv]): Fix @opindex.
22913         ([-mavx256-split-unaligned-load]): Likewise.
22914         ([-mavx256-split-unaligned-store]): Likewise.
22915         ([-mstack-protector-guard]): Likewise.
22916         ([-mcpu=]): Likewise.
22917         ([-mcpu]): Likewise.
22918         ([-mpointer-size=]): Likewise.
22919
22920 2015-01-03  John David Anglin  <danglin@gcc.gnu.org>
22921
22922         * config/pa/pa.md (decrement_and_branch_until_zero): Use `Q' constraint
22923         instead of `m' constraint.  Likewise for unnamed movb comparison
22924         patterns using reg_before_reload_operand predicate.
22925         * config/pa/predicates.md (reg_before_reload_operand): Tighten
22926         predicate to reject register index and LO_SUM DLT memory forms
22927         after reload.
22928
22929 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
22930
22931         * doc/invoke.texi (Option Summary): Fix spelling of
22932         -fdevirtualize-at-ltrans.
22933         ([-fdevirtualize]): Fix markup.
22934         ([-fdevirtualize-speculatively]): Fix typo.
22935         ([-fdevirtualize-at-ltrans]): Likewise.  Make description less
22936         implementor-speaky.
22937         * common.opt (fdevirtualize-at-ltrans): Likewise.
22938         * ipa-devirt.c: Fix typos in comments throughout the file.
22939         (ipa_devirt): Fix typos in format strings for dump output.
22940
22941 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
22942
22943         * doc/invoke.texi ([-fopt-info]): Fix markup, consolidate
22944         discussion of defaults, light copy-editing.
22945
22946 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
22947
22948         * tsan.c (instrument_expr): corrected previous checkin.
22949
22950 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
22951
22952         Instrument bit field and unaligned accesses for TSAN.
22953         * sanitizer.def (BUILT_IN_TSAN_READ_RANGE): New built-in function.
22954         (BUILT_IN_TSAN_WRITE_RANGE): New built-in function.
22955         * tsan.c (instrument_expr): Handle COMPONENT_REF and BIT_FIELD_REF.
22956         Use BUILT_IN_TSAN_READ_RANGE and BUILT_IN_TSAN_WRITE_RANGE for
22957         unaligned memory regions.
22958
22959 2015-01-01  Anthony Green  <green@moxielogic.com>
22960
22961         * config/moxie/predicates.md (moxie_general_movsrc_operand):
22962         Restrict move source register offsets to 16 bits.
22963 \f
22964 Copyright (C) 2015 Free Software Foundation, Inc.
22965
22966 Copying and distribution of this file, with or without modification,
22967 are permitted in any medium without royalty provided the copyright
22968 notice and this notice are preserved.