[PATCH][combine][1/2] Try to simplify before substituting
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2015-07-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2
3         * combine.c (combine_simplify_rtx): Move simplification step
4         before various transformations/substitutions.
5
6 2015-07-20  Mikhail Maltsev  <maltsevm@gmail.com>
7
8         * wide-int.h (struct binary_traits): Fix partial specialization syntax.
9         (struct int_traits): Likewise.
10
11 2015-07-18  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12
13         * vmsdbgout.c (vmsdbgout_decl): Change name of prototyped
14         function to vmsdbgout_function_decl.
15
16 2015-07-18  Uros Bizjak  <ubizjak@gmail.com>
17
18         PR target/66922
19         * config/i386/i386.c (ix86_expand_pextr): Reject extractions
20         from misaligned positions.
21         (ix86_expand_pinsr): Reject insertions to misaligned positions.
22
23 2015-07-18  Sebastian Pop  <s.pop@samsung.com>
24
25         PR middle-end/46851
26         PR middle-end/60340
27         * Makefile.in: Removed omega.o.
28         * common.opt: Document flag fcheck-data-deps as deprecated.
29         * doc/invoke.texi: Remove documentation for fcheck-data-deps and
30         its associated params: omega-max-vars, omega-max-geqs,
31         omega-max-eqs, omega-max-wild-cards, omega-hash-table-size,
32         omega-max-keys, omega-eliminate-redundant-constraints.
33         * doc/loop.texi: Remove all the section on Omega.
34         * graphite-blocking.c: Include missing params.h: it used to be
35         included through tree-data-ref.h and omega.h.
36         * graphite-isl-ast-to-gimple.c: Same.
37         * graphite-optimize-isl.c: Same.
38         * graphite-sese-to-poly.c: Same.
39         * graphite.c: Same.
40         * omega.c: Remove.
41         * omega.h: Remove.
42         * params.def: Removed PARAM_OMEGA_MAX_VARS, PARAM_OMEGA_MAX_GEQS,
43         PARAM_OMEGA_MAX_EQS, PARAM_OMEGA_MAX_WILD_CARDS,
44         PARAM_OMEGA_HASH_TABLE_SIZE, PARAM_OMEGA_MAX_KEYS, and
45         PARAM_OMEGA_ELIMINATE_REDUNDANT_CONSTRAINTS.
46         * passes.def: Remove pass_check_data_deps.
47         * tree-data-ref.c (dump_affine_function): Declare DEBUG_FUNCTION.
48         (dump_conflict_function): Same.
49         (dump_subscript): Same.
50         (print_direction_vector): Same.
51         (print_dir_vectors): Same.
52         (print_lambda_vector): Same.
53         (print_dist_vectors): Same.
54         (dump_data_dependence_relation): Same.
55         (dump_data_dependence_relations): Same.
56         (dump_dist_dir_vectors): Same.
57         (dump_ddrs): Same.
58         (init_omega_eq_with_af): Removed.
59         (omega_extract_distance_vectors): Removed.
60         (omega_setup_subscript): Removed.
61         (init_omega_for_ddr_1): Removed.
62         (init_omega_for_ddr): Removed.
63         (ddr_consistent_p): Removed.
64         (compute_affine_dependence): Do not use omega to check data
65         dependences.
66         (compute_data_dependences_for_bb): Removed.
67         (analyze_all_data_dependences): Removed.
68         (tree_check_data_deps): Removed.
69         * tree-data-ref.h: Do not include omega.h.
70         (compute_data_dependences_for_bb): Removed.
71         (tree_check_data_deps): Removed.
72         * tree-ssa-loop.c (pass_check_data_deps): Removed.
73         (make_pass_check_data_deps): Removed.
74         * tree-ssa-phiopt.c: Include params.h.
75         * tree-vect-data-refs.c: Same.
76         * tree-vect-slp.c: Same.
77
78 2015-07-18  Uros Bizjak  <ubizjak@gmail.com>
79
80         * config/i386/i386.md (pushsf splitter): Pass curr_insn to
81         find_constant_src.  FAIL if find_constant_src returns NULL_RTX.
82         (mem->fpreg splitters): Ditto.
83         (general_operand->nonimmediate_operand splitter): Use explicit modes.
84         Disable DFmode for TARGET_64BIT.
85
86 2015-07-17  H.J. Lu  <hongjiu.lu@intel.com>
87
88         PR target/66906
89         * config/i386/i386.c (ix86_expand_prologue): Replicate static
90         chain on the stack.
91
92 2015-07-17  Nathan Sidwell  <nathan@codesourcery.com>
93
94         * config/nvptx/mkoffload.c (process): Constify host data.
95         * config/i386/intelmic-mkoffload.c (generate_target_descr_file):
96         Constify host data.
97         (generate_host_descr_file): Likewise.
98
99 2015-07-17  Aditya Kumar  <aditya.k7@samsung.com>
100             Sebastian Pop  <s.pop@samsung.com>
101
102         PR middle-end/61929
103         * graphite-dependences.c (add_pdr_constraints): Renamed
104         pdr->extent to pdr->subscript_sizes.
105         * graphite-interchange.c (build_linearized_memory_access): Add
106         back all gcc_assert's that the "isl_int to isl_val conversion"
107         patch has removed.  Refactored.
108         (pdr_stride_in_loop): Renamed pdr->extent to pdr->subscript_sizes.
109         * graphite-poly.c (new_poly_dr): Same.
110         (free_poly_dr): Same.
111         * graphite-poly.h (struct poly_dr): Same.
112         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Ignore
113         all data references other than ARRAY_REF, MEM_REF, and COMPONENT_REF.
114         * graphite-scop-detection.h: Fix space.
115         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Add
116         back all gcc_assert's removed by a previous patch.
117         (wrap): Remove the_isl_ctx global variable that the same patch has
118         added.
119         (build_loop_iteration_domains): Same.
120         (add_param_constraints): Same.
121         (pdr_add_data_dimensions): Same.  Refactored.
122         (build_poly_dr): Renamed extent to subscript_sizes.
123
124 2015-07-17  Marek Polacek  <polacek@redhat.com>
125
126         * fold-const.c (fold_binary_loc): Move A - (A & B) into ~B & A ...
127         * match.pd: ... here.
128
129 2015-07-17  Nathan Sidwell  <nathan@codesourcery.com>
130
131         * config/nvptx/mkoffload.c (process): Constify target data.
132         * config/i386/intelmic-mkoffload.c (generate_target_descr_file):
133         Constify target data.
134         (generate_target_offloadend_file): Likewise.
135
136 2015-07-17  Yuri Rumyantsev  <ysrumyan@gmail.com>
137
138         * tree-vect-loop-manip.c (rename_variables_in_bb): Add argument
139         to allow renaming of PHI arguments on edges incoming from outer
140         loop header, add corresponding check before start PHI iterator.
141         (slpeel_tree_duplicate_loop_to_edge_cfg): Introduce new bool
142         variable DUPLICATE_OUTER_LOOP and set it to true for outer loops
143         with true force_vectorize.  Set-up dominator for outer loop too.
144         Pass DUPLICATE_OUTER_LOOP as argument to rename_variables_in_bb.
145         (slpeel_can_duplicate_loop_p): Allow duplicate of outer loop if it
146         was marked with force_vectorize and has restricted cfg.
147         (slpeel_tree_peel_loop_to_edge): Do not rename exit PHI uses in
148         inner loop.
149         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
150         do peeling for outer loops.
151
152 2015-07-17  Yvan Roux  <yvan.roux@linaro.org>
153             Matthias Klose  <doko@ubuntu.com>
154
155         * configure.ac: Move AC_ARG_WITH checks for native-system-header-dir,
156         build-sysroot, sysroot from the `Miscenalleous configure options' to
157         the `Directories' section and strip trailing `/' from with_sysroot.
158         (gcc_gxx_include_dir): Don't strip a `/' sysroot value.
159         * configure: Regenerated.
160
161 2015-07-17  Uros Bizjak  <ubizjak@gmail.com>
162
163         PR target/66824
164         * config/i386/i386.h (TARGET_HARD_SF_REGS): New define.
165         (TARGET_HARD_DF_REGS): Ditto.
166         (TARGET_HARD_XF_REGS): Ditto.
167         * config/i386/i386.md (*movxf_internal): Add alternatives 9 and 10.
168         Enable alternatives 9 and 10 only for !TARGET_HARD_XF_REG target.
169         (*movdf_internal): Add alternatives 22, 23, 24 and 25. Enable
170         alternatives 22, 23, 24 and 25 only for !TARGET_HARD_DF_REG target.
171         (*movsf_internal): Add alternatives 16 and 17. Enable
172         alternatives 16 and 17 only for !TARGET_HARD_SF_REG target.
173
174 2015-07-17  Uros Bizjak  <ubizjak@gmail.com>
175
176         PR rtl-optimization/66891
177         * calls.c (expand_call): Wrap precompute_register_parameters with
178         NO_DEFER_POP/OK_DEFER_POP to prevent deferred pops.
179
180 2015-07-16  Nathan Sidwell  <nathan@codesourcery.com>
181
182         * config/nvptx/mkoffload.c (process): Constify mapping variables.
183         Define target data struct and initialize it.
184
185 2015-07-16  Vladimir Makarov  <vmakarov@redhat.com>
186
187         PR rtl-optimization/66626
188         * ira.h (emit-rtl.h): Include.
189         (non_spilled_static_chain_regno_p): New.
190         * ira-color.c (setup_profitable_hard_regs): Clear profitable regs
191         unless it is non spilled static chain pseudo.
192         (assign_hard_rego): Spill memory profitable allocno unless it is
193         non spilled static chain pseudo.
194         (allocno_spill_priority_compare): Put non spilled static chain
195         pseudo at the end of sorted array.
196         (improve_allocation): Do nothing if we have static chain and
197         non-local goto.
198         (allocno__priority_compare_func): Put non spilled static chain
199         pseudo at the beginning of sorted array.
200         (move_spill_restore): Ignore non spilled static chain pseudo.
201         * ira-costs.c (find_costs_and_classes): Don't assign class NO_REGS
202         to non spilled static chain pseudo.
203         * lra-assigns.c (pseudo_compare_func): Put non spilled static chain
204         pseudo at the beginning of sorted array.
205         (spill_for): Spill non spilled static chain pseudo last.
206         * lra-constraints.c (lra_constraints): Remove static chain pseudo
207         check for equivalence.
208
209 2015-07-16  Martin Liska  <mliska@suse.cz>
210
211         PR ipa/66896.
212         * ipa-prop.c (update_jump_functions_after_inlining): Create properly
213         dst_ctx if it does not exist.
214
215 2015-07-16  Martin Liska  <mliska@suse.cz>
216
217         * hash-set.h (remove): New function.
218         (iterator): New iteration class for hash_set.
219
220 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
221
222         * genattrtab.c (make_canonical): Add a file_location parameter.
223         Use fatal_at rather than fatal.
224         (get_attr_value): Likewise.  Update call to make_canonical.
225         (fill_attr, make_length_attrs, optimize_attrs, gen_attr)
226         (make_internal_attr): Update calls accordingly.
227
228 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
229
230         * read-md.h (message_with_line, error_with_line): Delete.
231         * read-md.c (message_with_line, error_with_line): Delete.
232         * gensupport.h: Include read-md.h.
233         (md_rtx_info): New structure.
234         (read_md_rtx): Use it.  Return a bool success value.
235         * gensupport.c (read_md_rtx): Likewise.
236         * genattr-common.c (gen_attr): Take an md_rtx_info rather than an rtx.
237         (main): Update after interface changes.
238         * genattr.c (gen_attr): Take an md_rtx_info rather than an rtx.
239         (main): Update after interface changes.
240         * genattrtab.c (insn_code_number): Delete.
241         (optimize_attrs): Add a max_insn_code parameter and use it instead
242         of insn_code_number.
243         (gen_attr): Take an md_rtx_info rather than an rtx and lineno.
244         Use *_at rather than *_with_line functions.
245         (gen_insn): Likewise.
246         (gen_delay): Likewise.
247         (gen_insn_reserv): Likewise.
248         (gen_bypass): Take an md_rtx_info rather than an rtx.
249         (main): Update after interface changes.  Use a local max_insn_code
250         variable instead of insn_code_number.
251         * genautomata.c (gen_cpu_unit): Take an md_rtx_info rather than
252         an rtx.  Use fatal_at rather than fatal.
253         (gen_query_cpu_unit, gen_bypass, gen_excl_set)
254         (gen_presence_absence_set, gen_presence_set, gen_final_presence_set)
255         (gen_absence_set, gen_final_absence_set, gen_automaton)
256         (gen_automata_option, gen_reserv, gen_insn_reserv): Likewise.
257         (main): Update after interface changes.
258         * gencodes.c (gen_insn): Take an md_rtx_info rather than an rtx
259         and code number.
260         (main): Update after interface changes.
261         * genconditions.c (main): Use new read_md_rtx interface.
262         * genconfig.c (gen_insn): Take an md_rtx_info rather than an rtx.
263         (gen_expand, gen_split, gen_peephole, gen_peephole2): Likewise.
264         (main): Update after interface changes.
265         * genemit.c (insn_code_number, insn_index_number): Delete.
266         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
267         Use fatal_at rather than fatal.
268         (gen_expand): Take an md_rtx_info rather than an rtx.  Use fatal_at
269         rather than fatal.
270         (gen_split): Likewise.
271         (main): Update after interface changes.
272         * genextract.c (line_no): Delete.
273         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
274         Update call to walk_rtx.
275         (VEC_safe_set_locstr): Add an md_rtx_info argument.  Use message_at
276         rather than message_with_line.
277         (walk_rtx): Add an md_rtx_info argument.  Update call to
278         VEC_safe_set_locstr.
279         (main): Update after interface changes.
280         * genflags.c (gen_insn): Take an md_rtx_info rather than an rtx
281         and lineno.  Use error_at rather than separate message_with_line
282         calls and have_error assignments.
283         (main): Update after interface changes.
284         * genmddump.c (main): Use new read_md_rtx interface.
285         * genopinit.c (insn): Take an md_rtx_info rather than an rtx.
286         (main): Update after interface changes.
287         * genoutput.c (next_code_number): Delete.
288         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
289         (gen_peephole, gen_expand, gen_split): Likewise.
290         (note_constraint): Likewise.  Use *_at rather than *_with_line
291         functions.
292         (main): Update after interface changes.
293         * genpeep.c (gen_peephole): Take an md_rtx_info rather than an
294         rtx and lineno.
295         (main): Update after interface changes.
296         * genpreds.c (process_define_predicate): Take an md_rtx_info rather
297         than an rtx and lineno.
298         (process_define_constraint): Likewise.
299         (process_define_register_constraint): Likewise.
300         (main): Update after interface changes.
301         * genrecog.c (next_insn_code, pattern_lineno): Delete.
302         (validate_pattern): Replace top-level rtx with an md_rtx_info.
303         Use *_at rather than *_with_line functions.
304         (match_pattern_2): Likewise.
305         (match_pattern_1, match_pattern): Add an md_rtx_info parameter.
306         (get_peephole2_pattern): Take an md_rtx_info rather than an rtvec.
307         Use *_at rather than *_with_line functions.
308         * gentarget-def.c (add_insn): New function.
309         (main): Use it.  Use new read_md_rtx interface.
310
311 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
312
313         * gensupport.h (compute_test_codes): Take a file_location rather
314         than a line number.
315         * gensupport.c (compute_test_codes): Likewise.  Use *_at functions
316         rather than *_with_line functions.
317         (process_define_predicate): Update call to compute_test_codes.
318         * genpreds.c (validate_exp): Take a file_location rather than a
319         line number.  Use *_at functions rather than *_with_line functions.
320         (process_define_predicate): Update call to validate_exp.
321         (constraint_data): Replace lineno field with a file_location.
322         (add_constraint): Take a file_location rather than a line number.
323         Use *_at functions rather than *_with_line functions.  Fix error
324         message for address constraints.  Update after changes to
325         validate_exp, constraint_data and compute_test_codes.
326         (process_define_constraint): Update accordingly.
327         (process_define_register_constraint): Likewise.
328
329 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
330
331         * genoutput.c (data): Use a file_location to record the source
332         position.
333         (nothing): Delete.
334         (idata, idata_end): Remove initialization.
335         (constraint_data): Replace lineno with a file_location.
336         (output_insn_data): Update after changes to data.
337         (gen_insn, gen_peephole, gen_expand, gen_split): Likewise.
338         (scan_operands): Likewise, using *_at rather than *_with_line
339         functions.
340         (process_template): Likewise.
341         (validate_insn_alternatives): Likewise.
342         (validate_insn_operands): Likewise.
343         (validate_optab_operands): Likewise.
344         (init_insn_for_nothing): Initialize idata and idata_end.
345         (note_constraint): Update after changes to constraint_data,
346         using at rather than with_line functions.
347         (mdep_constraint_len): Take a file_location rather than a
348         line number.  Use at rather than with_line functions.
349
350 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
351
352         * read-md.h (fatal_at): Declare.
353         * read-md.c (fatal_at): New function.
354         * genattrtab.c (insn_def, attr_desc, delay_desc): Use a file_location
355         to record the source position.
356         (check_attr_test): Take a file_location instead of a line number.
357         Use fatal_at instead of fatal.
358         (check_attr_value): Update after above changes, using "at"
359         rather than "with_line" reporting functions.
360         (convert_set_attr_alternative): Likewise.
361         (gen_attr): Likewise.
362         (check_defs): Likewise.  Don't assign to read_md_filename.
363         (gen_insn): Update initialization after above changes.
364         (gen_delay): Likewise.
365         (write_insn_cases): Print the filename for a define_peephole.
366         (gen_insn_reserv): Take a line number as argument and update
367         the call to check_attr_test.
368         (main): Pass a line number to gen_insn_reserv.
369
370 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
371
372         * read-md.h (file_location): New structure.
373         (directive_handler_t): Take a file_location rather than a line number.
374         (message_at, error_at): Declare.
375         (read_skip_construct): Delete.
376         * read-md.c (message_with_line_1): Replace with...
377         (message_at_1): ...this new function.
378         (message_at, error_at): New functions.
379         (message_with_line, error_with_line): Update to use message_at_1.
380         (handle_enum): Take a file_location rather than a line number
381         and use error_at for error reporting.
382         (handle_include): Likewise.
383         (read_skip_construct): Likewise.  Make static.
384         (handle_file): Update after above changes.  Pass a file_location
385         rather than a line number to handle_directive.
386         * gensupport.c (queue_elem): Replace separate filename and lineno
387         with a file_location.
388         (queue_pattern): Replace filename and lineno arguments with a
389         file_location.  Update after change to queue_elem.
390         (process_define_predicate): Replace lineno argument with a
391         file_location and use error_at for error reporting.  Update
392         after above changes.
393         (process_rtx): Likewise.
394         (subst_pattern_match): Likewise.
395         (get_alternatives_number): Likewise.
396         (alter_predicate_for_insn): Likewise.
397         (rtx_handle_directive): Likewise.
398         (is_predicable): Update after above changes, using error_at rather
399         than error_with_line.
400         (has_subst_attribute): Likewise.
401         (identify_predicable_attribute): Likewise.
402         (alter_attrs_for_subst_insn): Likewise.
403         (process_one_cond_exec): Likewise.
404         (process_substs_on_one_elem): Likewise.
405         (process_define_subst): Likewise.
406         (check_define_attr_duplicates): Likewise.
407         (read_md_rtx): Update after change to queue_elem.
408
409 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
410
411         * genoutput.c (next_index_number): Delete.
412         (data): Remove index_number.
413         (gen_insn, gen_peephole, gen_expand, gen_split): Update accordingly.
414         (main): Remove manipulation of next_index_number.
415
416 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
417
418         * genattrtab.c (check_attr_value): Remove handling of null attrs.
419         (make_canonical): Likewise.
420
421 2015-07-16  Eric Botcazou  <ebotcazou@adacore.com>
422
423         * config/sparc/sparc.md (save_stack_nonlocal): Use adjust_address
424         instead of adjust_address_nv.
425         (restore_stack_nonlocal): Likewise.
426         (nonlocal_goto): Likewise.
427
428 2015-07-16  Tom de Vries  <tom@codesourcery.com>
429
430         * tree-parloops.c (create_parallel_loop): Handle case that exit phi does
431         not have a corresponding loop header phi.
432
433 2015-07-16  Tom de Vries  <tom@codesourcery.com>
434
435         * tree-parloops.c (create_loads_for_reductions): Handle case that
436         reduction is unused.
437
438 2015-07-16  Richard Biener  <rguenther@suse.de>
439
440         PR tree-optimization/66894
441         * tree-vrp.c (register_edge_assert_for_2): Fix bad assumption
442         about deriving NE_EXPR from truncated values.
443
444 2015-07-16  Martin Liska  <mliska@suse.cz>
445
446         * alloc-pool.h
447         (object_allocator): Add new class.
448         (pool_allocator::initialize): Use the underlying class.
449         (pool_allocator::allocate): Likewise.
450         (pool_allocator::remove): Likewise.
451         (operator new): A new generic allocator.
452         * asan.c (struct asan_mem_ref): Remove unused members.
453         (asan_mem_ref_new): Replace new operator with
454         object_allocator::allocate.
455         (free_mem_ref_resources): Change deallocation.
456         * cfg.c (initialize_original_copy_tables): Replace pool_allocator
457         with object_allocator.
458         * config/sh/sh.c (add_constant): Replace new operator with
459         object_allocator::allocate.
460         (sh_reorg): Change call to a release method.
461         * cselib.c (struct elt_list): Remove unused members.
462         (new_elt_list): Replace new operator with
463         object_allocator::allocate.
464         (new_elt_loc_list): Likewise.
465         (new_cselib_val): Likewise.
466         (unchain_one_elt_list): Change delete operator with remove method.
467         (unchain_one_elt_loc_list): Likewise.
468         (unchain_one_value): Likewise.
469         (cselib_finish): Release newly added static allocators.
470         * cselib.h (struct cselib_val): Remove unused members.
471         (struct elt_loc_list): Likewise.
472         * df-problems.c (df_chain_alloc): Replace pool_allocator with
473         object_allocator.
474         * df-scan.c (struct df_scan_problem_data): Likewise.
475         (df_scan_alloc): Likewise.
476         * df.h (struct dataflow): Likewise.
477         * dse.c (struct read_info_type): Likewise.
478         (struct insn_info_type): Likewise.
479         (struct dse_bb_info_type): Likewise.
480         (struct group_info): Likewise.
481         (struct deferred_change): Likewise.
482         (get_group_info): Likewise.
483         (delete_dead_store_insn): Likewise.
484         (free_read_records): Likewise.
485         (replace_read): Likewise.
486         (check_mem_read_rtx): Likewise.
487         (scan_insn): Likewise.
488         (dse_step1): Likewise.
489         (dse_step7): Likewise.
490         * et-forest.c (struct et_occ): Remove unused members.
491         (et_new_occ): Use allocate instead of new operator.
492         (et_new_tree): Likewise.
493         (et_free_tree): Call release method explicitly.
494         (et_free_tree_force): Likewise.
495         (et_free_pools): Likewise.
496         (et_split): Use remove instead of delete operator.
497         * et-forest.h (struct et_node): Remove unused members.
498         * ipa-cp.c: Change pool_allocator to object_allocator.
499         * ipa-inline-analysis.c: Likewise.
500         * ipa-profile.c: Likewise.
501         * ipa-prop.c: Likewise.
502         * ipa-prop.h: Likewise.
503         * ira-build.c (initiate_cost_vectors): Cast return value.
504         (ira_allocate_cost_vector): Likewise.
505         * ira-color.c (struct update_cost_record): Remove unused members.
506         * lra-int.h (struct lra_live_range): Likewise.
507         (struct lra_copy): Likewise.
508         (struct lra_insn_reg): Likewise.
509         * lra-lives.c (lra_live_ranges_finish): Release new static allocator.
510         * lra.c (new_insn_reg): Replace new operator with allocate method.
511         (free_insn_regs): Same for operator delete.
512         (finish_insn_regs): Release new static allocator.
513         (finish_insn_recog_data): Likewise.
514         (lra_free_copies): Replace delete operator with remove method.
515         (lra_create_copy): Replace operator new with allocate method.
516         (invalidate_insn_data_regno_info): Same for remove method.
517         * regcprop.c (struct queued_debug_insn_change): Remove unused members.
518         (free_debug_insn_changes): Replace delete operator with remove method.
519         (replace_oldest_value_reg): Replace operator new with allocate method.
520         (pass_cprop_hardreg::execute): Release new static variable.
521         * sched-deps.c (sched_deps_init): Change pool_allocator to
522         object_allocator.
523         * sel-sched-ir.c: Likewise.
524         * sel-sched-ir.h: Likewise.
525         * stmt.c (expand_case): Likewise.
526         (expand_sjlj_dispatch_table): Likewise.
527         * tree-sra.c (struct access): Remove unused members.
528         (struct assign_link): Likewise.
529         (sra_deinitialize): Release newly added static pools.
530         (create_access_1):Replace operator new with allocate method.
531         (build_accesses_from_assign): Likewise.
532         (create_artificial_child_access): Likewise.
533         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Change
534         pool_allocator to object_allocator.
535         * tree-ssa-pre.c: Likewise.
536         * tree-ssa-reassoc.c: Likewise.
537         * tree-ssa-sccvn.c (allocate_vn_table): Likewise.
538         * tree-ssa-strlen.c: Likewise.
539         * tree-ssa-structalias.c: Likewise.
540         * var-tracking.c (onepart_pool_allocate): New function.
541         (unshare_variable): Use the newly added function.
542         (variable_merge_over_cur): Likewise.
543         (variable_from_dropped): Likewise.
544         (variable_was_changed): Likewise.
545         (set_slot_part): Likewise.
546         (emit_notes_for_differences_1): Likewise.
547         (vt_finalize): Release newly added static pools.
548
549 2015-07-16  Martin Jambor  <mjambor@suse.cz>
550
551         * ipa-prop.h (param_aa_status): Rename to ipa_param_aa_status.  Adjust
552         all uses.  Fix two typos in its general comment.
553         (func_body_info): Rename to ipa_func_body_info.  Adjust all uses.
554
555 2015-07-16  Ilya Enkovich  <enkovich.gnu@gmail.com>
556
557         * config/i386/linux-common.h (LINK_MPX): New.
558         (MPX_SPEC): Use LINK_MPX instead of %(link_mpx).
559         * configure.ac: Add HAVE_LD_BNDPLT_SUPPORT macro
560         indicating '-z bndplt' support by linker.
561         * configure: Regenerate.
562         * config.in: Regenerate.
563
564 2015-07-16  Richard Biener  <rguenther@suse.de>
565
566         * fold-const.c (fold_widened_comparison): Remove.
567         (fold_sign_changed_comparison): Likewise.
568         (fold_comparison): Move widened and sign-changed comparison
569         simplification ...
570         * match.pd: ... to patterns here.
571         * generic-match-head.c: Include target.h.
572         * gimple-match-head.c: Likewise.
573
574 2015-07-16  Richard Biener  <rguenther@suse.de>
575
576         * tree-ssa-dom.c (dom_valueize): New function.
577         (record_temporary_equivalences): Also record equivalences
578         for dominating stmts that have uses of equivalences we are
579         about to record.
580
581 2015-07-16  Bin Cheng  <bin.cheng@arm.com>
582
583         * tree-ssa-loop-ivopts.c (add_candidate): Remove call to
584         add_autoinc_candidates.
585         (add_iv_candidate_for_biv): Rename to add_iv_candidate_for_biv.
586         (add_iv_candidate_for_biv): Rename from add_iv_candidate_for_biv.
587         (add_old_ivs_candidates): Rename to add_iv_candidate_for_bivs.
588         (add_iv_candidate_for_bivs): Rename from add_old_ivs_candidates.
589         Call new function.
590         (add_iv_value_candidates): Rename to add_iv_candidate_for_use.
591         (add_iv_candidate_for_use): Rename from add_iv_value_candidates.
592         Remove parameter struct iv*.  Call add_autoinc_candidates here.
593         (add_derived_ivs_candidates): Rename to add_iv_candidate_for_uses.
594         (add_iv_candidate_for_uses): Rename from add_derived_ivs_candidates.
595         Call new function.
596         (find_iv_candidates): Call new functions.
597
598 2015-07-16  Sandra Loosemore  <sandra@codesourcery.com>
599
600         * config/nios2/nios2.c (nios2_emit_stack_limit_check): Fix
601         uninitialized-variable warning.
602
603 2015-07-16  Kaz Kojima  <kkojima@gcc.gnu.org>
604
605         PR target/65249
606         * config/sh/sh.md (movdi): Split simple reg move to two movsi
607         when the destination is R0.
608
609 2015-07-16  Uros Bizjak  <ubizjak@gmail.com>
610
611         PR target/66866
612         * config/i386/i386-protos.h (ix86_expand_pextr): New prototype.
613         * config/i386/i386.c (ix86_expand_pextr): New function.
614         (ix86_expand_pinsr): Handle V1TI and TI modes.  Call ix86_expand_pextr
615         for non-lowpart subregs.
616         * config/i386/i386.md (extzv<mode>): Expand with ix86_expand_pextr.
617         (insv<mode>): Use SWI248 mode iterator.
618         (insv<mode>_1): Ditto.
619
620 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
621             Sebastian Pop  <s.pop@samsung.com>
622
623         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Point
624         iterator to use_stmt.
625
626 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
627             Sebastian Pop <s.pop@samsung.com>
628
629         * graphite-scop-detection.c (build_scops_1): Discard scops for
630         which entry==exit.
631
632 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
633             Sebastian Pop <s.pop@samsung.com>
634
635         * graphite-scop-detection.c (stmt_simple_for_scop_p): Bail out in
636         case of a return statement in scop.
637
638 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
639             Sebastian Pop <s.pop@samsung.com>
640
641         * graphite-sese-to-poly.c (parameter_index_in_region): Only handle
642         INTEGER_TYPE parameters.
643         (scan_tree_for_params): Handle REAL_CST, COMPLEX_CST, and
644         VECTOR_CST in scan_tree_for_params.
645         (add_conditions_to_domain): Only constrain on INTEGER_TYPE.
646
647 2015-07-15  Andrew MacLeod  <amacleod@redhat.com>
648
649         * gimple-pretty-print.h: Don't include pretty-print.h.
650         * tree-streamer.h: Don't include lto-streamer.h.
651         * gimple-streamer.h: Include tree-streamer.h rather than lto-streamer.h.
652         * gimple-streamer-in.c: Remove redundant includes.
653         * gimple-streamer-out.c: Likewise.
654         * ipa-devirt.c: Likewise.
655         * ipa-icf.c: Likewise.
656         * ipa-inline-analysis.c: Likewise.
657         * ipa-polymorphic-call.c: Likewise.
658         * ipa-profile.c: Likewise.
659         * ipa-prop.c: Likewise.
660         * ipa-pure-const.c: Likewise.
661         * lto-cgraph.c: Likewise.
662         * lto-streamer-in.c: Likewise.
663         * lto-streamer-out.c: Likewise.
664         * lto-streamer.c: Likewise.
665         * tree-streamer-in.c: Likewise.
666         * tree-streamer-out.c: Likewise.
667         * tree-streamer.c: Likewise.
668
669 2015-07-15  Andrew MacLeod  <amacleod@redhat.com>
670
671         * opth-gen.awk: Check for UNKNOWN_LOCATION rather than GCC_TM_H, don't
672         include input.h.
673         * opts.c: Remove multiline #include comment.
674
675 2015-07-15  Nathan Sidwell  <nathan@codesourcery.com>
676
677         * config/nvptx/mkoffload.c (process): Add C++ protection to
678         emitted code.
679
680 2015-07-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
681
682         PR target/66854
683         * config/rs6000/rs6000.c (rs6000_pass_by_reference): Move test for
684         null before IEEE 128-bit floating point support patch.
685
686 2015-07-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
687
688         * simplify-rtx.c (simplify_ternary_operation): Add simplification
689         for (!c) != {0,...,0} ? a : b for vector modes.
690
691 2015-07-15  Paolo Bonzini  <bonzini@gnu.org>
692             Martin Jambor  <mjambor@suse.cz>
693
694         * ipa-inline-analysis.c (unmodified_parm_or_parm_agg_item): Accept
695         struct func_body_info* instead of struct ipa_node_params*, expecting
696         fbi->info to be filled in.  Replace throughout.  Adjust call to
697         ipa_load_from_parm_agg.
698         (set_cond_stmt_execution_predicate): Accept struct func_body_info*
699         instead of struct ipa_node_params*.  Adjust calls to other functions
700         so that they pass either fbi or fbi->info.
701         (set_switch_stmt_execution_predicate): Likewise.
702         (will_be_nonconstant_predicate): Likewise.
703         (compute_bb_predicates): Likewise.
704         (estimate_function_body_sizes): Move asserts earlier.  Fill in
705         struct func_body_info, replace parms_info with fbi.info.  Adjust
706         calls to functions that now accept struct func_body_info.
707         * ipa-prop.c (param_aa_status, struct ipa_bb_info): Move to ipa-prop.h.
708         (struct func_body_info): Likewise.
709         (ipa_load_from_parm_agg_1): Rename to ipa_load_from_parm_agg,
710         remove static.  Adjust callers.
711         (ipa_load_from_parm_agg): Remove.
712         * ipa-prop.h (param_aa_status, ipa_bb_info): Move from ipa-prop.c.
713         (func_body_info): Likewise.
714         (ipa_load_from_parm_agg): Adjust prototype.
715
716 2015-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
717
718         * gensupport.c (rtx_handle_directive): Adjust.
719         * read-rtl.c (apply_iterators): Take vector to add rtxs to
720         instead of expr list rtx.
721         (add_define_attr_for_define_subst): Likewise.
722         (add_define_subst_attr): Likewise.
723         (read_subst_mapping): Likewise.
724         (read_rtx): Likewise.
725         * rtl.h (read_rtx): Adjust.
726
727 2015-07-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
728
729         * config/aarch64/aarch64.md (*csinc2<mode>_insn): Use cinc mnemonic.
730
731 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
732
733         PR target/58066
734         * config/i386/i386.md (*tls_global_dynamic_64_<mode>): Depend on SP_REG.
735         (*tls_local_dynamic_base_64_<mode>): Ditto.
736         (*tls_local_dynamic_base_64_largepic): Ditto.
737         (tls_global_dynamic_64_<mode>): Update expander pattern.
738         (tls_local_dynamic_base_64_<mode>): Ditto.
739
740 2015-07-15  Richard Biener  <rguenther@suse.de>
741
742         * fold-const.c (fold_binary_loc): Move bool_var != 0 -> bool_var
743         and bool_var == 1 -> bool_var simplifications ...
744         * match.pd: ... to patterns here.  Factor out negate_expr_p
745         cases from the A - B -> A + (-B) patterns as negate_expr_p
746         predicate and add a -(A + B) -> (-B) - A pattern.
747
748 2015-07-15  Robert Suchanek  <robert.suchanek@imgtec.com>
749
750         * config/mips/mips.c (mips_emit_save_slot_move): Fix typo.
751
752 2015-07-15  Matthew Fortune  <matthew.fortune@imgtec.com>
753             Robert Suchanek  <robert.suchanek@imgtec.com>
754
755         * config/mips/mips.c (mips_int_mask): New enum.
756         (mips_shadow_set): Likewise.
757         (int_mask): New variable.
758         (use_shadow_register_set_p): Change type to enum mips_shadow_set.
759         (machine_function): Add int_mask and use_shadow_register_set.
760         (mips_attribute_table): Add attribute handlers for interrupt and
761         use_shadow_register_set.
762         (mips_interrupt_mask): New static function.
763         (mips_handle_interrupt_attr): Likewise.
764         (mips_handle_use_shadow_register_set_attr): Likewise.
765         (mips_use_shadow_register_set): Change return type to enum
766         mips_shadow_set.  Add argument handling for use_shadow_register_set
767         attribute.
768         (mips_interrupt_extra_called_saved_reg_p): Update the conditional to
769         compare with mips_shadow_set enum.
770         (mips_compute_frame_info): Add interrupt mask and
771         use_shadow_register_set to per-function information structure.
772         Add a stack slot for EPC unconditionally.
773         (mips_expand_prologue): Compare use_shadow_register_set value
774         with mips_shadow_set enum.  Save EPC always in K1, clobber only K1 for
775         masked interrupt register but in EIC mode use K0 and save Cause in K0.
776         EPC saved and restored unconditionally.  Use PMODE_INSN macro when
777         copying the stack pointer from the shadow register set.
778         * config/mips/mips.h (SR_IM0): New define.
779         * config/mips/mips.md (mips_rdpgpr): Rename to...
780         (mips_rdpgpr_<mode>): ...this.  Use the Pmode iterator.
781         * doc/extend.texi (Declaring Attributes of Functions): Document
782         optional arguments for interrupt and use_shadow_register_set
783         attributes.
784
785 2015-07-15  Robert Suchanek  <robert.suchanek@imgtec.com>
786
787         * config/mips/mips.c (mips_compute_frame_info): Allow -mhard-float in
788         interrupt attribute.
789         (mips_expand_prologue): Disable the floating point unit in an ISR.
790         * config/mips/mips.h (SR_COP1): New define.
791
792 2015-07-15  Richard Biener  <rguenther@suse.de>
793
794         * genmatch.c (parser::peek, parser::peek_ident): Add argument
795         to tell how many tokens to peek ahead (default 1).
796         (parser::eat_token, parser::eat_ident): Return token consumed.
797         (parser::parse_result): Parse new switch statement.
798         * match.pd: Use case statements where appropriate.
799
800 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
801
802         PR rtl-optimization/58066
803         * calls.c (expand_call): Precompute register parameters before stack
804         alignment is performed.
805
806 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
807
808         PR rtl-optimization/66838
809         * postreload.c (reload_cse_move2add): Also process
810         CALL_INSN_FUNCTION_USAGE when resetting information of
811         call-clobbered registers.
812
813 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
814             Cesar Philippidis  <cesar@codesourcery.com>
815             Chung-Lin Tang  <cltang@codesourcery.com>
816
817         * config/nios2/constraints.md (U, v): New constraints.
818         * config/nios2/predicates.md (rdprs_dcache_operand): New.
819         (ldstex_memory_operand): New.
820         * config/nios2/sync.md: New file.
821         * config/nios2/nios2.md (unspecv): Add new builtin function
822         UNSPECV codes.
823         (rdprs, flushd, flushda, wrpie, eni): New patterns.
824         (top-level): Include sync.md.
825         * config/nios2/nios2.c (N2_FTYPES): Add function types for
826         new builtins.
827         (N2_BUILTINS): Add arch field setting, add new builtins.
828         (enum nios2_builtin_code,nios2_builtins): Update N2_BUILTIN_DEF
829         for arch field.
830         (nios2_expand_ldst_builtin): Rename from nios2_expand_ldstio_builtin.
831         Also handle ldex/stex/ldsex/stsex builtins.
832         (nios2_expand_rdprs_builtin): New function.
833         (nios2_expand_cache_builtin): New function.
834         (nios2_expand_wrpie_builtin): New function.
835         (nios2_expand_eni_builtin): New function.
836         (nios2_expand_builtin): Add arch field handling and new builtin
837         cases.
838         * doc/extend.texi (Altera Nios II Built-in Functions): Document
839         new builtins.
840         * doc/md.texi (Machine Constraints): Document U and v constraints.
841
842 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
843             Cesar Philippidis  <cesar@codesourcery.com>
844             Chung-Lin Tang  <cltang@codesourcery.com>
845
846         * config/nios2/nios2-protos.h (nios2_expand_return): Declare.
847         * config/nios2/nios2.c (struct GTY (()) machine_function): Add
848         callee_save_reg_size and uses_anonymous_args fields.
849         (nios2_compute_frame_layout): Update for CDX push.n/pop.n usage.
850         (nios2_create_cfa_notes): New function.
851         (nios2_adjust_stack): New function for adjusting stack.
852         (nios2_expand_prologue): Update for CDX push.n/pop.n usage.
853         Use nios2_adjust_stack.
854         (nios2_expand_epilogue): Likewise.
855         (nios2_expand_return): New function.
856         (nios2_can_use_return_insn): Update for CDX pop.n usage.
857         (nios2_setup_incoming_varargs): Set uses_anonymous_args flag.
858         If TARGET_HAS_CDX, defer pushing regs to nios2_expand_prologue.
859         * config/nios2/nios2.md (return): Use nios2_expand_return.
860
861 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
862             Cesar Philippidis  <cesar@codesourcery.com>
863             Chung-Lin Tang  <cltang@codesourcery.com>
864
865         * config/nios2/predicates.md (pop_operation): New.
866         (ldwm_operation, stwm_operation): New.
867         (nios2_hard_register_operand): New.
868         * config/nios2/nios2-protos.h (pop_operation_p): Declare.
869         (ldstwm_operation_p): Declare.
870         (gen_ldstwm_peep): Declare.
871         * config/nios2/nios2.c: (nios2_ldst_parallel): Declare.
872         (base_reg_adjustment_p): New.
873         (pop_operation_p): New.
874         (CDX_LDSTWM_VALID_REGS_0, CDX_LDSTWM_VALID_REGS_1): Define.
875         (nios2_ldstwm_regset_p): New.
876         (ldstwm_operation_p): New.
877         (gen_ldst): New.
878         (nios2_ldst_parallel): New.
879         (struct ldswm_operand): Declare.
880         (compare_ldstwm_operands): New.
881         (can_use_cdx_ldstw): New.
882         (gen_ldstwm_peep): New.
883         * config/nios2/nios2-ldstwm.sml: New.
884         * config/nios2/nios2.md: Include ldstwm.md.
885         * config/nios2/ldstwm.md: Generated.
886
887 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
888             Cesar Philippidis  <cesar@codesourcery.com>
889             Chung-Lin Tang  <cltang@codesourcery.com>
890
891         * config/nios2/nios2.h (LABEL_ALIGN): Define.
892         (REG_ALLOC_ORDER): Define.
893         (ADJUST_REG_ALLOC_ORDER): Define.
894         (HONOR_REG_ALLOC_ORDER): Define.
895         (CDX_REG_P): Define.
896         (ANDCLEAR_INT): Define.
897         * config/nios2/nios2-protos.h (nios2_add_insn_asm): Declare.
898         (nios2_label_align): Declare.
899         (nios2_cdx_narrow_form_p): Declare.
900         (nios2_adjust_reg_alloc_order): Declare.
901         * config/nios2/nios2.c (nios2_rtx_costs): Adjust for BMX zero-extract
902         operation.
903         (nios2_large_unspec_reloc_p): New function, split from...
904         (nios2_legitimate_pic_operand_p): ...here.
905         (nios2_emit_move_sequence): Add *high/*lo_sum constant expand code.
906         (nios2_print_operand_punct_valid_p): New.
907         (nios2_print_operand): Add %., %!, %x, %y, %A.  Remove %U.
908         (split_mem_address): New.
909         (split_alu_insn): New.
910         (cdxreg): New.
911         (cdx_add_immed, cdx_and_immed, cdx_mov_immed, cdx_shift_immed): New.
912         (enum nios2_add_insn_kind): New.
913         (nios2_add_insn_names, nios2_add_insn_narrow): New.
914         (nios2_add_insn_classify): New.
915         (nios2_add_insn_asm): New.
916         (nios2_cdx_narrow_form_p): New.
917         (label_align, min_labelno, max_labelno): New.
918         (nios2_reorg): New.
919         (nios2_label_align): New.
920         (nios2_adjust_reg_alloc_order): New.
921         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
922         (TARGET_MACHINE_DEPENDENT_REORG): Define.
923         * config/nios2/constraints.md (P): New constraint.
924         * config/nios2/predicates.md (const_and_operand): New.
925         (and_operand): New.
926         (stack_memory_operand): New.
927         * config/nios2/nios2.md (SP_REGNO): Define stack pointer regno.
928         (length): Update to use nios2_cdx_narrow_form_p().
929         (type): Add new insn type values.
930         (control, alu, st, ld, shift): Update insn reservations with
931         new insn type values.
932         (*high, *lo_sum): Define new insn patterns for constant generation.
933         (movqi_internal, movhi_internal, movsi_internal): Reduce
934         alternatives, update asm template to handle CDX variants, update
935         type attributes.
936         (zero_extendhisi2, zero_extendqi<mode>2): Add CDX variants to asm
937         template, update type attributes.
938         (extendhisi2, extendqi<mode>2): Likewise.
939         (addsi3): Change to use function for asm string.
940         (subsi3): Add CDX notation to asm template, update type attributes.
941         (negsi3, one_cmplsi3): Likewise.
942         (andsi3): New pattern, specialized from logical patterns.
943         (<code>si3): Remove and case, combine alternatives, update asm
944         template.
945         (<shift_op>si3): Add CDX notation, update type attributes.
946         (rotrsi3): Update type attribute.
947         (*merge, extzv, insv): New insn patterns.
948         (return): Change to define_expand.
949         (simple_return): Add CDX notation, update type attributes.
950         (indirect_jump): Add CDX notation.
951         (jump): Update asm cases, update length attribute expression.
952         (*call, *call_value, *sibcall, *sibcall_value): Add CDX variant.
953         (nios2_cbranch): Update asm cases and length attribute expression
954         to handle CDX variants.
955         (nios2_cmp<code>): Update asm template.
956         (nop): Add CDX notation, update type attributes.
957         (trap): Add CDX notation.
958         (ctrapsi4): Update asm cases and length attribute expression to
959         handle CDX variant.
960         * doc/md.texi (Machine Constraints): Document P constraint.
961
962 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
963             Cesar Philippidis  <cesar@codesourcery.com>
964             Chung-Lin Tang  <cltang@codesourcery.com>
965
966         * config/nios2/nios2.h (SMALL_INT12): New macro.
967         * config/nios2/nios2.c (nios2_valid_addr_offset_p): New function.
968         (nios2_valid_addr_expr_p): Use it.
969         (nios2_symbol_ref_in_small_data_p): Disallow GP-relative addressing
970         with implicit "io" instructions on R2.
971         * config/nios2/constraints.md (w): New constraint.
972         * config/nios2/predicates.md (ldstio_memory_operand): New.
973         * config/nios2/nios2.md (ld<bhw_uns>io, ld<bh>io): Update memory
974         operand predicate and constraint.
975         (ld<bh>io_signed, st<bhw>io>): Likewise.
976         * doc/md.texi (Machine Constraints): Document w constraint.
977
978 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
979             Cesar Philippidis  <cesar@codesourcery.com>
980             Chung-Lin Tang  <cltang@codesourcery.com>
981
982         * config/nios2/nios2.opt (march, mbmx, mcdx): New options.
983         * config/nios2/nios2-opts.h (enum nios2_arch_type): New enum for
984         Nios II architecture level.
985         * config/nios2/nios2.h (TARGET_ARCH_R2): New define.
986         (TARGET_CPU_CPP_BUILTINS): Add definition of __nios2_arch__ symbol.
987         (OPTION_DEFAULT_SPECS): Define.
988         (ASM_SPEC): Add -march= spec strings.
989         * config/nios2/nios2.c (nios2_option_override): Check for
990         conflicts involving new options.
991         * config.gcc (nios2*-*-*): Support --with-arch=.
992         * doc/invoke.texi (Option Summary, Nios II Options): Document
993         -march=, -mbmx, and -mcdx.
994
995 2015-07-14  Vladimir Makarov  <vmakarov@redhat.com>
996
997         PR rtl-optimization/66626
998         * lra-constraints.c (lra_constraints): Prevent equivalence
999         substitution for static chain pseudo in functions with nonlocal
1000         goto.
1001
1002 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
1003
1004         * config/nios2/nios2.c (TEMP_REG_NUM): Move define up in file.
1005         (nios2_emit_stack_limit_check): Add size parameter.  Handle
1006         -fstack-limit-symbol as well as -fstack-limit-register.
1007         (nios2_expand_prologue): Emit only a single stack limit check,
1008         even if multiple stack adjustments are required.
1009         (nios2_option_override): Diagnose unsupported combination of -fpic
1010         and -stack-limit-symbol.
1011
1012 2015-07-14  H.J. Lu  <hongjiu.lu@intel.com>
1013
1014         * Makefile.in (top_srcdir): New.
1015         * configure.ac: Use AM_ZLIB.
1016         * configure: Regeneated.
1017
1018 2015-07-14  Matthias Klose  <doko@ubuntu.com>
1019
1020         PR target/66840
1021         * config/rs6000/t-rs6000 (TM_H): Add rs6000-cpus.def.
1022
1023 2015-07-14  Richard Biener  <rguenther@suse.de>
1024
1025         PR tree-optimization/66863
1026         * tree-vrp.c (register_edge_assert_for_2): Properly restrict
1027         what we record for conversion use stmt lhs inequalities.
1028
1029 2015-07-14  Richard Biener  <rguenther@suse.de>
1030
1031         * genmatch.c (dt_node::gen_kids_1): Fix case label indenting.
1032         (decision_tree::gen_gimple): Likewise.
1033
1034 2015-07-14  Tom de Vries  <tom@codesourcery.com>
1035
1036         * gcc.c (greater_than_spec_func): Declare forward.
1037         (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use gt to ignore
1038         -ftree-parallelize-loops={0,1}.
1039         (static_spec_functions): Add greater_than_spec_func function with name
1040         "gt".
1041         (greater_than_spec_func): New function.
1042
1043 2015-07-14  Richard Biener  <rguenther@suse.de>
1044
1045         * tree-ssa-dom.c (record_temporary_equivalences): Merge
1046         wideing type conversion case from record_equivalences_from_incoming_edge
1047         and use record_equality to record equivalences.
1048         (record_equivalences_from_incoming_edge): Call
1049         record_temporary_equivalences.
1050
1051 2015-07-14  Richard Biener  <rguenther@suse.de>
1052
1053         * genmatch.c (struct operand): Add OP_IF and OP_WITH op_types.
1054         (struct if_expr): New.
1055         (struct with_expr): Likewise.
1056         (is_a_helper): Add helpers for if_expr and with_expr.
1057         (struct simplify): Add simplify_kind enum and member.  Remove
1058         ifexpr_vec member.
1059         (simplify::simplify): Adjust.
1060         (lower_commutative): Adjust.
1061         (lower_opt_convert): Likewise.
1062         (lower_cond): Likewise.
1063         (replace_id): Handle with_expr and if_expr.
1064         (lower_for): Adjust.
1065         (dt_simplify::gen_1): New recursive worker, split out from ...
1066         (dt_simplify::gen): ... here.  Deal with if and with expansion
1067         recursively.
1068         (capture_info::capture_info): Take context argument
1069         (capture_info::walk_result): Only analyze specific result.
1070         (parser::parse_result): New function.
1071         (parser::parse_simplify): Adjust to parse ifs with then end
1072         else case.
1073         (parser::parse_if): Simplify.
1074         (parser::parse_pattern): Pass down simplify kind.
1075         * match.pd: Convert if structure to new syntax.
1076
1077 2015-07-13  Marek Polacek  <polacek@redhat.com>
1078
1079         * rtl.c (rtx_equal_p_cb): Fix typo.
1080
1081 2015-07-13  Andrew MacLeod  <amacleod@redhat.com>
1082
1083         * omega.h: Don't include config.h, don't include params.h again if
1084         omega.h has already been included.
1085         * graphite-poly.h: Include sese.h.
1086         * graphite.c: Don't include sese.h, remove needless includes and
1087         minimize includes outside #ifdef HAVE_isl block.
1088         * graphite-blocking.c: Don't include sese.h, remove needless includes,
1089         and wrap entire file in #ifdef HAVE_isl
1090         * graphite-dependences.c: Likewise.
1091         * graphite-interchange.c: Likewise.
1092         * graphite-isl-ast-to-gimple.c: Likewise.
1093         * graphite-optimize-isl.c: Likewise.
1094         * graphite-poly.c: Likewise.
1095         * graphite-scop-detection.c: Likewise.
1096         * graphite-sese-to-poly.c: Likewise.
1097
1098 2015-07-13  Tom de Vries  <tom@codesourcery.com>
1099
1100         * omp-low.c (build_receiver_ref): Mark *.omp_data_i as non-trapping.
1101
1102 2015-07-13  Renlin Li  <renlin.li@arm.com>
1103
1104         PR rtl/66556
1105         * simplify-rtx.c (simplify_const_relational_operation): Add
1106         side_effects_p checks.
1107
1108 2015-07-12  Aldy Hernandez  <aldyh@redhat.com>
1109
1110         * bitmap.h: Fix double word typos.
1111         * builtins.c: Same.
1112         * calls.c: Same.
1113         * cfgloopmanip.c: Same.
1114         * cgraph.c: Same.
1115         * cgraph.h: Same.
1116         * cgraphclones.c: Same.
1117         * combine.c: Same.
1118         * config/aarch64/aarch64-protos.h: Same.
1119         * config/aarch64/aarch64.c: Same.
1120         * config/aarch64/aarch64.md: Same.
1121         * config/arm/arm.md: Same.
1122         * config/arm/arm1020e.md: Same.
1123         * config/arm/arm1026ejs.md: Same.
1124         * config/arm/arm926ejs.md: Same.
1125         * config/arm/fa526.md: Same.
1126         * config/arm/fa606te.md: Same.
1127         * config/arm/fa626te.md: Same.
1128         * config/arm/fa726te.md: Same.
1129         * config/arm/fmp626.md: Same.
1130         * config/darwin.c: Same.
1131         * config/epiphany/epiphany.c: Same.
1132         * config/frv/frv.c: Same.
1133         * config/ft32/ft32.c: Same.
1134         * config/gnu-user.h: Same.
1135         * config/h8300/constraints.md: Same.
1136         * config/i386/i386.c: Same.
1137         * config/i386/i386.md: Same.
1138         * config/iq2000/iq2000.md: Same.
1139         * config/mips/mips.c: Same.
1140         * config/mmix/mmix.md: Same.
1141         * config/moxie/moxie.c: Same.
1142         * config/nds32/nds32.md: Same.
1143         * config/pa/pa.h: Same.
1144         * config/rs6000/aix.h: Same.
1145         * config/rs6000/rs6000.h: Same.
1146         * config/sh/sh.c: Same.
1147         * config/tilegx/tilegx.md: Same.
1148         * config/tilepro/gen-mul-tables.cc: Same.
1149         * cse.c: Same.
1150         * dbxout.c: Same.
1151         * doc/invoke.texi: Same.
1152         * dse.c: Same.
1153         * dwarf2out.c: Same.
1154         * final.c: Same.
1155         * gcc.c: Same.
1156         * genmatch.c: Same.
1157         * gimplify.c: Same.
1158         * hash-table.h: Same.
1159         * internal-fn.c: Same.
1160         * ipa-cp.c: Same.
1161         * ipa-devirt.c: Same.
1162         * ipa-icf.c: Same.
1163         * ipa-icf.h: Same.
1164         * ipa-profile.c: Same.
1165         * ipa-prop.c: Same.
1166         * ipa-prop.h: Same.
1167         * ira.c: Same.
1168         * omp-low.c: Same.
1169         * reg-stack.c: Same.
1170         * regcprop.c: Same.
1171         * reorg.c: Same.
1172         * rtl.h: Same.
1173         * sbitmap.h: Same.
1174         * tree-eh.c: Same.
1175         * tree-inline.c: Same.
1176         * tree-sra.c: Same.
1177         * tree-ssa-dom.c: Same.
1178         * tree-ssa-loop-ivopts.c: Same.
1179         * tree-ssa-structalias.c: Same.
1180         * tree-ssa-tail-merge.c: Same.
1181         * tree-ssa-ter.c: Same.
1182         * tree-ssa-threadupdate.c: Same.
1183         * tree-ssa-uninit.c: Same.
1184         * tree-ssanames.c: Same.
1185         * tree-vect-loop-manip.c: Same.
1186         * tree-vrp.c: Same.
1187         * tree.c: Same.
1188         * valtrack.c: Same.
1189         * vec.h: Same.
1190
1191 2015-07-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
1192
1193         PR middle-end/66726
1194         * tree-ssa-phiopt.c(factor_out_conditional_conversion): New function.
1195         tree_ssa_phiopt_worker): Call it.
1196
1197 2015-07-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
1198
1199         * cse.c (cse_insn): Calculate src_eqv for ZERO_EXTRACT.
1200         * emit-rtl.c (set_for_reg_notes): Allow ZERO_EXTRACT to set
1201         REG_EQUAL note.
1202
1203 2015-07-11  Marek Polacek  <polacek@redhat.com>
1204
1205         PR middle-end/66353
1206         * basic-block.h (has_abnormal_call_or_eh_pred_edge_p): New function.
1207         * ira-lives.c (bb_has_abnormal_call_pred): Remove function.
1208         (process_bb_node_lives): Call has_abnormal_call_or_eh_pred_edge_p
1209         rather than bb_has_abnormal_call_pred.
1210         * lra-lives.c (bb_has_abnormal_call_pred): Remove function.
1211         (process_bb_lives): Call has_abnormal_call_or_eh_pred_edge_p
1212         rather than bb_has_abnormal_call_pred.
1213
1214 2015-07-10  Anatoly Sokolov  <aesok@post.ru>
1215
1216         * config/v850/v850.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
1217         REG_OK_FOR_BASE_P_STRICT, REG_OK_FOR_INDEX_P_STRICT, STRICT,
1218         RTX_OK_FOR_BASE_P, GO_IF_LEGITIMATE_ADDRESS): Remove macros.
1219         * config/v850/v850.c (v850_reg_ok_for_base_, v850_rtx_ok_for_base_p,
1220         v850_legitimate_address_p): New functions.
1221         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
1222
1223 2015-07-10  H.J. Lu  <hongjiu.lu@intel.com>
1224
1225         PR target/66819
1226         * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow
1227         indirect sibcall with register arguments if register available
1228         for argument passing.
1229         (init_cumulative_args): Set cfun->machine->arg_reg_available
1230         to (cum->nregs > 0) or to true if function has a variable
1231         argument list.
1232         (function_arg_advance_32): Set cfun->machine->arg_reg_available
1233         to false if cum->nregs <= 0.
1234         * config/i386/i386.h (machine_function): Add arg_reg_available.
1235
1236 2015-07-10  Uros Bizjak  <ubizjak@gmail.com>
1237
1238         * config/i386/sse.md (movdi_to_sse): Use gen_lowpart
1239         and gen_higpart instead of gen_rtx_SUBREG.
1240         * config/i386/i386.md
1241         (floatdi<X87MODEF:mode>2_i387_with_xmm splitter): Ditto.
1242         (read-modify peephole2): Use gen_lowpart instead of
1243         gen_rtx_SUBREG for operand 5.
1244
1245 2015-07-10  Andrew MacLeod  <amacleod@redhat.com>
1246
1247         * config/tilepro/gen-mul-tables.cc (main): Change include list for
1248         generated files.
1249         * config/tilepro/mul-tables.c: Regenerate.
1250         * config/tilegx/mul-tables.c: Regenerate.
1251
1252 2015-07-10  Richard Biener  <rguenther@suse.de>
1253
1254         * fold-const.c (distribute_bit_expr): Remove.
1255         (fold_binary_loc): Move simplifying (A & C1) + (B & C2)
1256         to (A & C1) | (B & C2), distributing (A & B) | (A & C)
1257         to A & (B | C) and simplifying A << C1 << C2 to ...
1258         * match.pd: ... patterns here.
1259
1260 2015-07-10  Jiong Wang  <jiong.wang@arm.com>
1261
1262         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
1263         Mark mem as READONLY and NOTRAP for PIC symbol.
1264
1265 2015-07-10  Andrew MacLeod  <amacleod@redhat.com>
1266
1267         * gimple-predict.h: New file.
1268         (gimple_predict_predictor, gimple_predict_set_predictor,
1269         gimple_predict_outcome, gimple_predict_set_outcome,
1270         gimple_build_predict): Relocate here.
1271         * gimple.h (gimple_predict_predictor, gimple_predict_set_predictor,
1272         gimple_predict_outcome, gimple_predict_set_outcome): Move to
1273         gimple-predict.h.
1274         * gimple.c (gimple_build_predict): Move to gimple-predict.h
1275         * basic-block.h: Don't include cfghooks.h.
1276         * backend.h: Don't include predict.h.
1277         * cfghooks.h: Include predict.h.
1278         * gimple-pretty-print.c: Include gimple-predict.h.
1279         * gimplify.c: Likwise.
1280         * predict.c: Adjust includes.
1281         * tree-inline.c: Likewise.
1282         * asan.c: Likewise.
1283         * auto-inc-dec.c: Likewise.
1284         * auto-profile.c: Likewise.
1285         * bb-reorder.c: Likewise.
1286         * builtins.c: Likewise.
1287         * caller-save.c: Likewise.
1288         * calls.c: Likewise.
1289         * cfganal.c: Likewise.
1290         * cfgbuild.c: Likewise.
1291         * cfg.c: Likewise.
1292         * cfgcleanup.c: Likewise.
1293         * cfgexpand.c: Likewise.
1294         * cfghooks.c: Likewise.
1295         * cfgloopanal.c: Likewise.
1296         * cfgloop.c: Likewise.
1297         * cfgloopmanip.c: Likewise.
1298         * cfgrtl.c: Likewise.
1299         * cgraph.c: Likewise.
1300         * cgraphunit.c: Likewise.
1301         * combine.c: Likewise.
1302         * cprop.c: Likewise.
1303         * cse.c: Likewise.
1304         * dce.c: Likewise.
1305         * dojump.c: Likewise.
1306         * dse.c: Likewise.
1307         * except.c: Likewise.
1308         * expmed.c: Likewise.
1309         * expr.c: Likewise.
1310         * final.c: Likewise.
1311         * fold-const.c: Likewise.
1312         * function.c: Likewise.
1313         * fwprop.c: Likewise.
1314         * gcc-plugin.h: Likewise.
1315         * gcse.c: Likewise.
1316         * genattrtab.c: Likewise.
1317         * genemit.c: Likewise.
1318         * gengtype.c: Likewise.
1319         * genopinit.c: Likewise.
1320         * genoutput.c: Likewise.
1321         * genpreds.c: Likewise.
1322         * genrecog.c: Likewise.
1323         * gimple-fold.c: Likewise.
1324         * gimple-iterator.c: Likewise.
1325         * gimple-ssa-isolate-paths.c: Likewise.
1326         * gimple-ssa-strength-reduction.c: Likewise.
1327         * graph.c: Likewise.
1328         * graphite-blocking.c: Likewise.
1329         * graphite.c: Likewise.
1330         * graphite-dependences.c: Likewise.
1331         * graphite-interchange.c: Likewise.
1332         * graphite-isl-ast-to-gimple.c: Likewise.
1333         * graphite-optimize-isl.c: Likewise.
1334         * graphite-poly.c: Likewise.
1335         * graphite-scop-detection.c: Likewise.
1336         * graphite-sese-to-poly.c: Likewise.
1337         * haifa-sched.c: Likewise.
1338         * ifcvt.c: Likewise.
1339         * internal-fn.c: Likewise.
1340         * ipa-cp.c: Likewise.
1341         * ipa-profile.c: Likewise.
1342         * ipa-split.c: Likewise.
1343         * ipa-utils.c: Likewise.
1344         * ira-build.c: Likewise.
1345         * ira-color.c: Likewise.
1346         * ira-conflicts.c: Likewise.
1347         * ira-costs.c: Likewise.
1348         * ira-emit.c: Likewise.
1349         * ira-lives.c: Likewise.
1350         * jump.c: Likewise.
1351         * loop-doloop.c: Likewise.
1352         * loop-init.c: Likewise.
1353         * loop-invariant.c: Likewise.
1354         * loop-unroll.c: Likewise.
1355         * lower-subreg.c: Likewise.
1356         * lra-assigns.c: Likewise.
1357         * lra.c: Likewise.
1358         * lra-coalesce.c: Likewise.
1359         * lra-constraints.c: Likewise.
1360         * lra-lives.c: Likewise.
1361         * lto-cgraph.c: Likewise.
1362         * lto-streamer-in.c: Likewise.
1363         * mode-switching.c: Likewise.
1364         * modulo-sched.c: Likewise.
1365         * omp-low.c: Likewise.
1366         * optabs.c: Likewise.
1367         * passes.c: Likewise.
1368         * postreload.c: Likewise.
1369         * postreload-gcse.c: Likewise.
1370         * profile.c: Likewise.
1371         * recog.c: Likewise.
1372         * regstat.c: Likewise.
1373         * reload1.c: Likewise.
1374         * reorg.c: Likewise.
1375         * rtlanal.c: Likewise.
1376         * sched-ebb.c: Likewise.
1377         * sel-sched-ir.c: Likewise.
1378         * sese.c: Likewise.
1379         * shrink-wrap.c: Likewise.
1380         * simplify-rtx.c: Likewise.
1381         * stmt.c: Likewise.
1382         * store-motion.c: Likewise.
1383         * tracer.c: Likewise.
1384         * trans-mem.c: Likewise.
1385         * tree-call-cdce.c: Likewise.
1386         * tree-cfg.c: Likewise.
1387         * tree-cfgcleanup.c: Likewise.
1388         * tree-chkp.c: Likewise.
1389         * tree-complex.c: Likewise.
1390         * tree-eh.c: Likewise.
1391         * tree-if-conv.c: Likewise.
1392         * tree-loop-distribution.c: Likewise.
1393         * tree-outof-ssa.c: Likewise.
1394         * tree-parloops.c: Likewise.
1395         * tree-predcom.c: Likewise.
1396         * tree-pretty-print.c: Likewise.
1397         * tree-profile.c: Likewise.
1398         * tree-sra.c: Likewise.
1399         * tree-ssa.c: Likewise.
1400         * tree-ssa-coalesce.c: Likewise.
1401         * tree-ssa-dce.c: Likewise.
1402         * tree-ssa-dom.c: Likewise.
1403         * tree-ssa-forwprop.c: Likewise.
1404         * tree-ssa-ifcombine.c: Likewise.
1405         * tree-ssa-loop-ch.c: Likewise.
1406         * tree-ssa-loop-im.c: Likewise.
1407         * tree-ssa-loop-ivcanon.c: Likewise.
1408         * tree-ssa-loop-ivopts.c: Likewise.
1409         * tree-ssa-loop-manip.c: Likewise.
1410         * tree-ssa-loop-prefetch.c: Likewise.
1411         * tree-ssa-loop-unswitch.c: Likewise.
1412         * tree-ssa-math-opts.c: Likewise.
1413         * tree-ssa-phiopt.c: Likewise.
1414         * tree-ssa-pre.c: Likewise.
1415         * tree-ssa-reassoc.c: Likewise.
1416         * tree-ssa-sink.c: Likewise.
1417         * tree-ssa-tail-merge.c: Likewise.
1418         * tree-ssa-threadedge.c: Likewise.
1419         * tree-ssa-threadupdate.c: Likewise.
1420         * tree-switch-conversion.c: Likewise.
1421         * tree-tailcall.c: Likewise.
1422         * tree-vect-data-refs.c: Likewise.
1423         * tree-vect-loop.c: Likewise.
1424         * tree-vect-loop-manip.c: Likewise.
1425         * tree-vectorizer.c: Likewise.
1426         * tree-vrp.c: Likewise.
1427         * ubsan.c: Likewise.
1428         * value-prof.c: Likewise.
1429         * varasm.c: Likewise.
1430         * var-tracking.c: Likewise.
1431         * config/aarch64/aarch64-builtins.c: Likewise.
1432         * config/aarch64/aarch64.c: Likewise.
1433         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
1434         * config/alpha/alpha.c: Likewise.
1435         * config/arc/arc.c: Likewise.
1436         * config/arm/arm.c: Likewise.
1437         * config/avr/avr.c: Likewise.
1438         * config/bfin/bfin.c: Likewise.
1439         * config/c6x/c6x.c: Likewise.
1440         * config/cr16/cr16.c: Likewise.
1441         * config/cris/cris.c: Likewise.
1442         * config/darwin.c: Likewise.
1443         * config/darwin-c.c: Likewise.
1444         * config/epiphany/epiphany.c: Likewise.
1445         * config/epiphany/mode-switch-use.c: Likewise.
1446         * config/epiphany/resolve-sw-modes.c: Likewise.
1447         * config/fr30/fr30.c: Likewise.
1448         * config/frv/frv.c: Likewise.
1449         * config/ft32/ft32.c: Likewise.
1450         * config/h8300/h8300.c: Likewise.
1451         * config/i386/i386.c: Likewise.
1452         * config/i386/winnt.c: Likewise.
1453         * config/ia64/ia64.c: Likewise.
1454         * config/iq2000/iq2000.c: Likewise.
1455         * config/lm32/lm32.c: Likewise.
1456         * config/m32c/m32c.c: Likewise.
1457         * config/m32r/m32r.c: Likewise.
1458         * config/m68k/m68k.c: Likewise.
1459         * config/mcore/mcore.c: Likewise.
1460         * config/mep/mep.c: Likewise.
1461         * config/microblaze/microblaze.c: Likewise.
1462         * config/mips/mips.c: Likewise.
1463         * config/mmix/mmix.c: Likewise.
1464         * config/mn10300/mn10300.c: Likewise.
1465         * config/moxie/moxie.c: Likewise.
1466         * config/msp430/msp430.c: Likewise.
1467         * config/nds32/nds32.c: Likewise.
1468         * config/nds32/nds32-cost.c: Likewise.
1469         * config/nds32/nds32-fp-as-gp.c: Likewise.
1470         * config/nds32/nds32-intrinsic.c: Likewise.
1471         * config/nds32/nds32-isr.c: Likewise.
1472         * config/nds32/nds32-md-auxiliary.c: Likewise.
1473         * config/nds32/nds32-memory-manipulation.c: Likewise.
1474         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
1475         * config/nds32/nds32-predicates.c: Likewise.
1476         * config/nios2/nios2.c: Likewise.
1477         * config/nvptx/nvptx.c: Likewise.
1478         * config/pa/pa.c: Likewise.
1479         * config/pdp11/pdp11.c: Likewise.
1480         * config/rl78/rl78.c: Likewise.
1481         * config/rs6000/rs6000.c: Likewise.
1482         * config/rx/rx.c: Likewise.
1483         * config/s390/s390.c: Likewise.
1484         * config/sh/sh.c: Likewise.
1485         * config/sh/sh-mem.cc: Likewise.
1486         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
1487         * config/sh/sh_treg_combine.cc: Likewise.
1488         * config/sparc/sparc.c: Likewise.
1489         * config/spu/spu.c: Likewise.
1490         * config/stormy16/stormy16.c: Likewise.
1491         * config/tilegx/tilegx.c: Likewise.
1492         * config/tilepro/tilepro.c: Likewise.
1493         * config/v850/v850.c: Likewise.
1494         * config/vax/vax.c: Likewise.
1495         * config/visium/visium.c: Likewise.
1496         * config/xtensa/xtensa.c: Likewise.
1497
1498 2015-07-10  Richard Biener  <rguenther@suse.de>
1499
1500         * genmatch.c (dt_node::gen_kids_1): Fix indenting of case labels.
1501         (decision_tree::gen_gimple): Likewise.
1502         (decision_tree::gen_generic): Likewise.
1503
1504 2015-07-10  Uros Bizjak  <ubizjak@gmail.com>
1505
1506         PR target/66813
1507         * config/i386/i386.c (ix86_md_asm_adjust): Emit movstrictqi
1508         sequence for TARGET_ZERO_EXTEND_WITH_AND targets.
1509
1510 2015-07-10  Jakub Jelinek  <jakub@redhat.com>
1511
1512         PR middle-end/66820
1513         * gimplify.c (maybe_fold_stmt): Don't fold in ORT_PARALLEL
1514         or ORT_TASK contexts.
1515         * omp-low.c (lower_omp): Call fold_stmt even if taskreg_nesting_level
1516         is non-zero.
1517
1518 2015-07-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1519
1520         * expr.c (expand_cond_expr_using_cmove): Fix typos in comment
1521         above function.
1522
1523 2015-07-10  Tom de Vries  <tom@codesourcery.com>
1524
1525         * tree-parloops.c (try_transform_to_exit_first_loop_alt): If not found,
1526         insert nit + 1 bound.
1527
1528 2015-07-10  Richard Biener  <rguenther@suse.de>
1529
1530         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p):
1531         Use ifcvt_could_trap_p also when not flag_tree_loop_if_convert_stores.
1532         (if_convertible_loop_p_1): For this always compute bb predicates.
1533         (if_convertible_loop_p): And free them.
1534
1535 2015-07-10  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1536
1537         * ipa-icf.c (sem_item_optimizer::do_congruence_step): Fix typo
1538         in dump message.
1539
1540 2015-07-10  Richard Biener  <rguenther@suse.de>
1541
1542         PR tree-optimization/66823
1543         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Fix
1544         inverted predicate.
1545
1546 2015-07-09  Steve Ellcey  <sellcey@imgtec.com>
1547
1548         * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): Update
1549         to handle mips[32|64]r3 and mips[32|64]r5.
1550
1551 2015-07-09  Jakub Jelinek  <jakub@redhat.com>
1552
1553         PR middle-end/66633
1554         * tree-nested.c (get_static_chain): Or in a flag into
1555         info->static_chain_added.
1556         (get_frame_field, get_nonlocal_debug_decl): Likewise.
1557         (convert_nonlocal_omp_clauses, convert_local_omp_clauses): Revert
1558         2015-07-01 changes.
1559         (convert_tramp_reference_stmt): If a frame_decl or chain_decl
1560         is needed newly inside of GIMPLE_OMP_{PARALLEL,TASK,TARGET} body,
1561         add it to clauses.
1562
1563         PR tree-optimization/66718
1564         * tree-vect-stmts.c (struct simd_call_arg_info): Add simd_lane_linear
1565         field.
1566         (vect_simd_lane_linear): New function.
1567         (vectorizable_simd_clone_call): Support using linear arguments for
1568         addresses of arrays elements indexed by GOMP_SIMD_LANE result.
1569
1570 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
1571
1572         PR target/66821
1573         * config/i386/i386.c (iamcu_cost): Adjust variable shift costs.
1574
1575 2015-07-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
1576
1577         * config/rs6000/rs6000-protos.h (rs6000_secondary_reload_memory):
1578         Use machine mode, not enum machine_mode in the prototype.
1579
1580         * config/rs6000/rs6000.h (FLOAT128_IEEE_P): New helper macros to
1581         classify 128-bit floating point support.
1582         (FLOAT128_IBM_P): Likewise.
1583         (FLOAT128_VECTOR_P): Likewise.
1584         (FLOAT128_2REG_P): Likewise.
1585         (SCALAR_FLOAT_MODE_NOT_VECTOR_P): Likewise.
1586         (SLOW_UNALIGNED_ACCESS): Add IEEE 128-bit floating point support.
1587         (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
1588         (HARD_REGNO_CALL_PART_CLOBBERED): Likewise.
1589
1590         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Drop
1591         tests against TFmode/TDmode, since those modes do not use VSX
1592         addresses.
1593         (rs6000_hard_regno_mode_ok): Add IEEE 128-bit floating point
1594         support.
1595         (rs6000_init_hard_regno_mode_ok): Use new helper macros instead of
1596         tests against TFmode, etc.
1597         (invalid_e500_subreg): Add tests against IFmode/KFmode.
1598         (reg_offset_addressing_ok_p): Likewise.
1599         (rs6000_legitimate_offset_address_p): Likewise.
1600         (rs6000_legitimize_address): Likewise.
1601         (rs6000_legitimize_reload_address): Likewise.
1602         (rs6000_legitimate_address_p): Clean up tests against TFmode and
1603         TDmode to use the new helper macros, which will include IFmode and
1604         KFmode.
1605         (rs6000_emit_move): Likewise.
1606         (rs6000_darwin64_record_arg_recurse): Likewise.
1607         (print_operand): Likewise.
1608         (rs6000_member_type_forces_blk): Treat IEEE 128-bit floating point
1609         that uses a single vector register as a vector and not as a
1610         floating point register in terms of the calling sequence.
1611         (rs6000_discover_homogeneous_aggregate): Likewise.
1612         (rs6000_return_in_memory): Likewise.
1613         (init_cumulative_args): Likewise.
1614         (rs6000_function_arg_boundary): Likewise.
1615         (rs6000_function_arg_advance_1): Likewise.
1616         (rs6000_function_arg): Likewise.
1617         (rs6000_pass_by_reference): Likewise.
1618         (rs6000_gimplify_va_arg): Likewise.
1619         (rs6000_secondary_reload_memory): Use machine_mode not enum
1620         machine mode.
1621         (rs6000_split_multireg_move): Use new helper macros.
1622         (spe_func_has_64bit_regs_p): Likewise.
1623         (rs6000_output_function_epilogue): Add IFmode/KFmode support.
1624         (output_toc): Use new helper macros.
1625         (rs6000_register_move_cost): Likewise.
1626         (rs6000_function_value): Add IEEE 128-bit floating point calling
1627         sequence support.
1628         (rs6000_libcall_value): Likewise.
1629         (rs6000_scalar_mode_supported_p): Add support for IEEE 128-bit
1630         floating point support.
1631         (rs6000_vector_mode_supported_p): Likewise.
1632
1633 2015-07-09  Vladimir Makarov  <vmakarov@redhat.com>
1634
1635         PR rtl-optimization/66782
1636         * lra-int.h (struct lra_insn_recog_data): Add comment about
1637         clobbered hard regs for arg_hard_regs.
1638         * lra.c (lra_set_insn_recog_data): Add clobbered hard regs.
1639         * lra-lives.c (process_bb_lives): Process clobbered hard regs.
1640         Add condition for processing used hard regs.
1641         * lra-constraints.c (update_ebb_live_info, inherit_in_ebb):
1642         Process clobbered hard regs.
1643
1644 2015-07-09  Michael Matz  <matz@suse.de>
1645
1646         * genmatch.c (fprintf_indent): New function.
1647         (operand::gen_transform): Add indent parameter.
1648         (expr::gen_transform, c_expr::gen_transform,
1649         capture::gen_transform): Ditto and use fprintf_indent.
1650         (dt_node::gen, dt_node::gen_kids, dt_node::gen_kids_1): Ditto.
1651         (dt_operand::gen, dt_operand::gen_predicate,
1652         dt_operand::gen_match_op, dt_operand::gen_gimple_expr,
1653         dt_operand::gen_generic_expr, dt_simplify::gen): Ditto.
1654         (decision_tree::gen_gimple): Adjust calls and indent generated
1655         code.
1656         (decision_tree::gen_generic): Ditto.
1657         (write_predicate): Ditto.
1658
1659 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
1660
1661         PR target/66814
1662         * config/i386/predicates.md (nonimmediate_gr_operand): New predicate.
1663         * config/i386/i386.md (not peephole2): Use nonimmediate_gr_operand.
1664         (varous peephole2s): Use {GENERAL,SSE,MMX}_REGNO_P instead of
1665         {GENERAL,SSE,MMX}_REG_P where appropriate.
1666
1667 2015-07-09  Andrew MacLeod  <amacleod@redhat.com>
1668
1669         * lto-streamer.h: Don't include target.h and alloc-pool.h.
1670         * builtins.c: Adjust includes.
1671         * gimple.c: Likewise.
1672         * ipa-icf.c: Likewise.
1673         * lto-opts.c: Likewise.
1674         * ipa-reference.c: Likewise.
1675         * lto-section-out.c: Likewise.
1676         * lto-streamer-in.c: Likewise.
1677         * lto-streamer-out.c: Likewise.
1678         * opts-global.c: Likewise.
1679         * symtab.c: Likewise.
1680         * tree-chkp.c: Likewise.
1681         * tree-ssa-live.c: Likewise.
1682         * tree-streamer-in.c: Likewise.
1683         * tree-streamer-out.c: Likewise.
1684         * config/darwin.c: Likewise.
1685         * config/i386/winnt.c: Likewise.
1686
1687 2015-07-09  Richard Biener  <rguenther@suse.de>
1688
1689         * genmatch.c (struct expr): Add force_single_use flag.
1690         (expr::expr): Add copy constructor.
1691         (capture_info::walk_match): Gather force_single_use captures.
1692         (expr::gen_transform): Use possibly NULLified sequence.
1693         (dt_simplify::gen): Apply single-use restrictions by NULLifying
1694         seq if any constrained expr is not single-use.
1695         (parser::parse_expr): Refactor to allow multiple flags.  Handle
1696         's' flag to force an expression have a single-use if the pattern
1697         simplifies to more than one statement.
1698         * match.pd: Convert most single_use conditionals to :s flags.
1699
1700 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
1701
1702         * config/i386/iamcu.h (ASM_OUTPUT_ALIGNED_BSS): New.
1703         (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
1704         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
1705
1706 2015-07-09  Andrew MacLeod  <amacleod@redhat.com>
1707
1708         * flags.h: Don't include flag-types.h or options.h.
1709         * opts-common.c: Adjust includes.
1710         * opts-global.c: Likewise.
1711         * common/config/epiphany/epiphany-common.c: Likewise.
1712
1713 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
1714
1715         PR target/66818
1716         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Defined to 32
1717         for IA MCU.
1718
1719 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
1720
1721         PR target/66817
1722         * config/i386/i386.c (ix86_return_in_memory): Return true
1723         if int_size_in_bytes returns negative for IA MCU.
1724
1725 2015-07-09  Marek Polacek  <polacek@redhat.com>
1726
1727         PR tree-optimization/66718
1728         * Makefile.in (OBJS): Add gimple-laddress.o.
1729         * passes.def: Schedule pass_laddress.
1730         * timevar.def (DEFTIMEVAR): Add TV_GIMPLE_LADDRESS.
1731         * tree-pass.h (make_pass_laddress): Declare.
1732         * gimple-laddress.c: New file.
1733
1734 2015-07-09  Richard Biener  <rguenther@suse.de>
1735
1736         * toplev.c (compile_file): Reset maximum_field_alignment after parsing.
1737
1738 2015-07-09  Richard Biener  <rguenther@suse.de>
1739
1740         PR tree-optimization/66807
1741         * tree-chkp-opt.c (chkp_opt_fini): Free post dominator info.
1742
1743 2015-07-08  Kito Cheng  <kito.cheng@gmail.com>
1744
1745         * function.c (stack_protect_epilogue): Use if rather than switch for
1746         check targetm.have_stack_protect_test.
1747
1748 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1749
1750         * defaults.h: Provide default for WORD_REGISTER_OPERATIONS.
1751         * config/alpha/alpha.h: Define WORD_REGISTER_OPERATIONS to 1.
1752         * config/arc/arc.h: Likewise.
1753         * config/arm/arm.h: Likewise.
1754         * config/bfin/bfin.h: Likewise.
1755         * config/epiphany/epiphany.h: Likewise.
1756         * config/frv/frv.h: Likewise.
1757         * config/ia64/ia64.h: Likewise.
1758         * config/iq2000/iq2000.h: Likewise.
1759         * config/lm32/lm32.h: Likewise.
1760         * config/m32r/m32r.h: Likewise.
1761         * config/mcore/mcore.h: Likewise.
1762         * config/mep/mep.h: Likewise.
1763         * config/microblaze/microblaze.h: Likewise.
1764         * config/mips/mips.h: Likewise.
1765         * config/mmix/mmix.h: Likewise.
1766         * config/mn10300/mn10300.h: Likewise.
1767         * config/nds32/nds32.h: Likewise.
1768         * config/nios2/nios2.h: Likewise.
1769         * config/pa/pa.h: Likewise.
1770         * config/rl78/rl78.h: Likewise.
1771         * config/sh/sh.h: Likewise.
1772         * config/sparc/sparc.h: Likewise.
1773         * config/stormy16/stormy16.h: Likewise.
1774         * config/tilegx/tilegx.h: Likewise.
1775         * config/tilepro/tilepro.h: Likewise.
1776         * config/v850/v850.h: Likewise.
1777         * config/xtensa/xtensa.h: Likewise.
1778         * doc/tm.texi: Regenerate.
1779         * doc/tm.texi.in: Adjust.
1780         * combine.c (simplify_set): Likewise.
1781         (simplify_comparison): Likewise.
1782         * expr.c (store_constructor): Likewise.
1783         * internal-fn.c (expand_arith_overflow): Likewise.
1784         * reload.c (push_reload): Likewise.
1785         (find_reloads): Likewise.
1786         (find_reloads_subreg_address): Likewise.
1787         * reload1.c (eliminate_regs_1): Likewise.
1788         * rtlanal.c (nonzero_bits1): Likewise.
1789         (num_sign_bit_copies1): Likewise.
1790         * simplify-rtx.c (simplify_truncation): Likewise.
1791
1792 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1793
1794         * auto-inc-dec.c (pass_inc_dec::execute): Don't check the value
1795         of AUTO_INC_DEC with the preprocessor.
1796         * combine.c (combine_instructions): Likewise.
1797         (can_combine_p): Likewise.
1798         (try_combine): Likewise.
1799         * emit-rtl.c (try_split): Likewise.
1800         * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
1801         * lower-subreg.c (resolve_simple_move): Likewise.
1802         * lra.c (update_inc_notes): Likewise.
1803         * recog.c (asm_operand_ok): Likewise.
1804         (constrain_operands): Likewise.
1805         * regrename.c (scan_rtx_address): Likewise.
1806         * reload.c (update_auto_inc_notes): Likewise.
1807         (reg_inc_found_and_valid_p): Likewise.
1808         * reload1.c (reload): Likewise.
1809         (emit_input_reload_insns): Likewise.
1810         (delete_output_reload): Likewise.
1811         * sched-deps.c (init_insn_reg_pressure_info): Likewise.
1812         * valtrack.c (cleanup_auto_inc_dec): Likewise.
1813
1814 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1815
1816         * rtl.h: Always define AUTO_INC_DEC.
1817         * auto-inc-dec.c (pass_inc_dec::execute): Adjust.
1818         * combine.c (combine_instructions): Likewise.
1819         (can_combine_p): Likewise.
1820         (try_combine): Likewise.
1821         * emit-rtl.c (try_split): Likewise.
1822         * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
1823         * lower-subreg.c (resolve_simple_move): Likewise.
1824         * lra.c (update_inc_notes): Likewise.
1825         * recog.c (asm_operand_ok): Likewise.
1826         (constrain_operands): Likewise.
1827         * regrename.c (scan_rtx_address): Likewise.
1828         * reload.c (update_auto_inc_notes): Likewise.
1829         (find_equiv_reg): Likewise.
1830         * reload1.c (reload): Likewise.
1831         (reload_as_needed): Likewise.
1832         (choose_reload_regs): Likewise.
1833         (emit_input_reload_insns): Likewise.
1834         (delete_output_reload): Likewise.
1835         * sched-deps.c (init_insn_reg_pressure_info): Likewise.
1836         * valtrack.c (cleanup_auto_inc_dec): Likewise.
1837
1838 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1839
1840         * combine.c (can_combine_def_p): Don't check the value of
1841         HARD_FRAME_POINTER_IS_FRAME_POINTER with the preprocessor.
1842         (combinable_i3pat): Likewise.
1843         (mark_used_regs_combine): Likewise.
1844         * regrename.c (rename_chains): Likewise.
1845         * reload.c (find_reloads_address): Likewise.
1846         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
1847
1848 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1849
1850         * combine.c (update_rsp_from_reg_equal): Don't check if
1851         SHORT_IMMEDIATES_SIGN_EXTEND is defined.
1852         (reg_nonzero_bits_for_combine): Likewise.
1853         * config/alpha/alpha.h: Define SHORT_IMMEDIATES_SIGN_EXTEND to
1854         1.
1855         * config/frv/frv.h: Likewise.
1856         * config/lm32/lm32.h: Likewise.
1857         * config/mep/mep.h: Likewise.
1858         * config/mips/mips.h: Likewise.
1859         * config/rs6000/rs6000.h: Likewise.
1860         * config/sh/sh.h: Likewise.
1861         * config/tilegx/tilegx.h (enum reg_class): Likewise.
1862         * config/tilepro/tilepro.h: Likewise.
1863         * defaults.h: Add default for SHORT_IMMEDIATES_SIGN_EXTEND.
1864         * doc/tm.texi: Regenerate.
1865         * doc/tm.texi.in: Adjust.
1866         * rtlanal.c (nonzero_bits1): Likewise.
1867
1868 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1869
1870         * combine.c (do_SUBST_MODE): Don't check the value of HAVE_cc0
1871         with the preprocessor.
1872         (combine_instructions): Likewise.
1873         (try_combine): Likewise.
1874         (subst): Likewise.
1875         (distribute_notes): Likewise.
1876
1877 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1878
1879         * combine.c (try_combine): Don't check if LOAD_EXTEND_OP is
1880         defined.
1881         (simplify_set): Likewise.
1882         * cse.c (cse_insn): Likewise.
1883         * fold-const.c (fold_single_bit_test): Likewise.
1884         (fold_unary_loc): Likewise.
1885         * postreload.c (reload_cse_simplify_set): Likewise.
1886         (reload_cse_simplify_operands): Likewise.
1887
1888 2015-07-08  Jiong Wang  <jiong.wang@arm.com>
1889
1890         * config/aarch64/aarch64.c (aarch64_unspec_may_trap_p): New function.
1891         (TARGET_UNSPEC_MAY_TRAP_P): Define as aarch64_unspec_may_trap_p.
1892
1893 2015-07-08  H.J. Lu  <hongjiu.lu@intel.com>
1894
1895         PR target/66746
1896         * config/i386/x86intrin.h: Include <adxintrin.h> even if
1897         __iamcu__ is defined.
1898
1899 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
1900
1901         * config/i386/predicates.md (general_reg_operand): Use GENERAL_REGNO_P.
1902
1903 2015-07-08  Iain Sandoe  <iain@codesourcery.com>
1904
1905         PR target/66523
1906         * config/darwin.c (darwin_mark_decl_preserved): Exclude 'L' label
1907         names from preservation.
1908
1909 2015-07-08  H.J. Lu  <hongjiu.lu@intel.com>
1910
1911         PR target/66806
1912         * config/i386/i386.c (type_natural_mode): Don't warn vector ABI
1913         change for IAMCU.
1914         (function_arg_advance_32): Don't pass vectors in registers for
1915         IAMCU.
1916         (function_arg_32): Likewise.
1917         (ix86_return_in_memory): Don't return vectors in registers for
1918         IAMCU.
1919
1920 2015-07-08  Vladimir Makarov  <vmakarov@redhat.com>
1921
1922         PR middle-end/66334
1923         * ira-lives.c (process_bb_node_lives): Make conflicts with PIC
1924         hard regno live at the start of BB with incoming abnormal edges.
1925         * lra-lives.c (process_bb_lives): Ditto.
1926
1927 2015-07-08  Thomas Schwinge  <thomas@codesourcery.com>
1928
1929         PR libgomp/65099
1930         * config/nvptx/mkoffload.c (main): Create an offload image only in
1931         64-bit configurations.
1932
1933 2015-07-08  Martin Liska  <mliska@suse.cz>
1934
1935         PR bootstrap/66744
1936         * tree-sra.c (create_access_1): Call ctor without brackets.
1937         (create_artificial_child_access): Likewise.
1938
1939 2015-07-08  Richard Biener  <rguenther@suse.de>
1940
1941         PR tree-optimization/66793
1942         * gimple-ssa-isolate-paths.c (insert_trap_and_remove_trailing_statemen):
1943         Properly split the block after stmts ending it.
1944
1945 2015-07-08  Richard Biener  <rguenther@suse.de>
1946
1947         PR tree-optimization/66794
1948         * passes.c (execute_function_todo): Assert that post-dominators
1949         are not computed.
1950         * gimple-ssa-isolate-paths.c (gimple_ssa_isolate_erroneous_paths):
1951         Free post-dominators.
1952
1953 2015-07-08  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1954
1955         * config/s390/s390.c (s390_init_frame_layout): Replace assertion
1956         with early exit.
1957
1958 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
1959
1960         * config/i386/i386.md (*jcc_bt<mode>): Only allow const_int values
1961         more than or equal 8 and less than 32 when optimizing for size.
1962
1963 2015-07-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1964
1965         * config/arm/arm.c (arm_new_rtx_costs): Initialise cost to
1966         COSTS_N_INSNS (1) and increment it appropriately throughout the
1967         function.
1968
1969 2015-07-08  Richard Biener  <rguenther@suse.de>
1970
1971         * fold-const.c (fold_widened_comparison): Fix inverted comparison.
1972
1973 2015-07-08  Alan Modra  <amodra@gmail.com>
1974
1975         * target.def (rtx_costs): Remove "code" param, add "mode".
1976         * rtl.h (rtx_cost, get_full_rtx_cost): Update prototype.
1977         (set_src_cost, get_full_set_src_cost): Likewise.  Move later in file.
1978         (set_rtx_cost, get_full_set_rtx_cost): Move later in file.
1979         * rtlanal.c (rtx_cost): Add "mode" parameter.  Update targetm.rtx_costs
1980         call.  Track mode when given in rtx.
1981         (get_full_rtx_cost): Add "mode" parameter.  Update rtx_cost calls.
1982         (default_address_cost): Pass Pmode to rtx_cost.
1983         (insn_rtx_cost): Pass dest mode of set to set_src_cost.
1984         * cprop.c (try_replace_reg): Ensure set_rtx_cost is not called
1985         with NULL set.
1986         * cse.c (COST, COST_IN): Add MODE param.  Update all uses.
1987         (notreg_cost): Add mode param.  Use it.
1988         * gcse.c (want_to_gcse_p): Delete forward declaration.  Add
1989         mode param and pass to set_src_cost.  Update all calls.
1990         (hash_scan_set): Formatting.
1991         * hooks.c (hook_bool_rtx_int_int_int_intp_bool_false): Delete.
1992         (hook_bool_rtx_mode_int_int_intp_bool_false): New function.
1993         * hooks.h: Ditto.
1994         * expmed.c (init_expmed_one_conv, init_expmed_one_mode,
1995         init_expmed, expand_mult, mult_by_coeff_cost, expand_smod_pow2,
1996         emit_store_flag): Update set_src_cost and rtx_cost calls.
1997         * auto-inc-dec.c (attempt_change): Likewise.
1998         * calls.c (precompute_register_parameters): Likewise.
1999         * combine.c (expand_compound_operation, make_extraction,
2000         force_to_mode, distribute_and_simplify_rtx): Likewise.
2001         * dojump.c (prefer_and_bit_test): Likewise.
2002         * dse.c (find_shift_sequence): Likewise.
2003         * expr.c (compress_float_constant): Likewise.
2004         * fwprop.c (should_replace_address, try_fwprop_subst): Likewise.
2005         * ifcvt.c (noce_try_sign_mask): Likewise.
2006         * loop-doloop.c (doloop_optimize): Likewise.
2007         * loop-invariant.c (create_new_invariant): Likewise.
2008         * lower-subreg.c (shift_cost, compute_costs): Likewise.
2009         * optabs.c (avoid_expensive_constant, prepare_cmp_insn,
2010         lshift_cheap_p): Likewise.
2011         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
2012         try_replace_in_use, reload_cse_move2add): Likewise.
2013         * reload1.c (calculate_elim_costs_all_insns, note_reg_elim_costly):
2014         Likewise.
2015         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
2016         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
2017         * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Likewise.
2018         * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
2019         * config/aarch64/aarch64.c (aarch64_rtx_costs): Delete "code" param,
2020         add "mode" param.  Use "mode: in place of GET_MODE (x).  Pass mode
2021         to rtx_cost calls.
2022         * config/alpha/alpha.c (alpha_rtx_costs): Likewise.
2023         * config/arc/arc.c (arc_rtx_costs): Likewise.
2024         * config/arm/arm.c (arm_rtx_costs): Likewise.
2025         * config/avr/avr.c (avr_rtx_costs, avr_rtx_costs_1): Likewise.
2026         * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
2027         * config/c6x/c6x.c (c6x_rtx_costs): Likewise.
2028         * config/cris/cris.c (cris_rtx_costs): Likewise.
2029         * config/epiphany/epiphany.c (epiphany_rtx_costs): Likewise.
2030         * config/frv/frv.c (frv_rtx_costs): Likewise.
2031         * config/h8300/h8300.c (h8300_rtx_costs): Likewise.
2032         * config/i386/i386.c (ix86_rtx_costs): Likewise.
2033         * config/ia64/ia64.c (ia64_rtx_costs): Likewise.
2034         * config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
2035         * config/lm32/lm32.c (lm32_rtx_costs): Likewise.
2036         * config/m32c/m32c.c (m32c_rtx_costs): Likewise.
2037         * config/m32r/m32r.c (m32r_rtx_costs): Likewise.
2038         * config/m68k/m68k.c (m68k_rtx_costs): Likewise.
2039         * config/mcore/mcore.c (mcore_rtx_costs): Likewise.
2040         * config/mep/mep.c (mep_rtx_cost): Likewise.
2041         * config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
2042         * config/mips/mips.c (mips_rtx_costs): Likewise.
2043         * config/mmix/mmix.c (mmix_rtx_costs): Likewise.
2044         * config/mn10300/mn10300.c (mn10300_rtx_costs): Likewise.
2045         * config/msp430/msp430.c (msp430_rtx_costs): Likewise.
2046         * config/nds32/nds32-cost.c (nds32_rtx_costs_impl): Likewise.
2047         * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Likewise.
2048         * config/nds32/nds32.c (nds32_rtx_costs): Likewise.
2049         * config/nios2/nios2.c (nios2_rtx_costs): Likewise.
2050         * config/pa/pa.c (hppa_rtx_costs): Likewise.
2051         * config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
2052         * config/rl78/rl78.c (rl78_rtx_costs): Likewise.
2053         * config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
2054         * config/s390/s390.c (s390_rtx_costs): Likewise.
2055         * config/sh/sh.c (sh_rtx_costs): Likewise.
2056         * config/sparc/sparc.c (sparc_rtx_costs): Likewise.
2057         * config/spu/spu.c (spu_rtx_costs): Likewise.
2058         * config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
2059         * config/tilegx/tilegx.c (tilegx_rtx_costs): Likewise.
2060         * config/tilepro/tilepro.c (tilepro_rtx_costs): Likewise.
2061         * config/v850/v850.c (v850_rtx_costs): Likewise.
2062         * config/vax/vax.c (vax_rtx_costs): Likewise.
2063         * config/visium/visium.c (visium_rtx_costs): Likewise.
2064         * config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.
2065         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Change type of
2066         "code" param, and pass as outer_code to first rtx_cost call.  Pass
2067         mode to rtx_cost calls.
2068         (aarch64_address_cost, aarch64_if_then_else_costs): Update rtx_cost
2069         calls.
2070         (aarch64_rtx_costs_wrapper): Update.
2071         * config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs,
2072         arm_unspec_cost, arm_new_rtx_costs, arm_slowmul_rtx_costs): Update
2073         rtx_cost calls.
2074         * config/avr/avr.c (avr_final_prescan_insn): Update set_src_cost
2075         and rtx_cost calls.
2076         (avr_operand_rtx_cost): Similarly.
2077         (avr_rtx_costs_1): Correct mode passed to avr_operand_rtx_cost
2078         for subexpressions of ZERO_EXTEND, SIGN_EXTEND and COMPARE.
2079         * config/mips/mips.c (mips_stack_address_p): Comment typo.
2080         (mips_binary_cost): Update rtx_cost and set_src_cost calls.
2081         (mips_rtx_costs): Use GET_MODE (x) to detect const_int.
2082         * config/mn10300/mn10300.c (mn10300_address_cost): Pass Pmode to
2083         rtx_cost.
2084         (mn10300_rtx_costs): Correct mode passed to mn10300_address_cost.
2085         * config/rs6000/rs6000.c (rs6000_debug_rtx_costs): Update.
2086         * config/sh/sh.c (and_xor_ior_costs): Update rtx_cost call.
2087         * doc/tm.texi: Regenerate.
2088
2089 2015-07-07  Andrew MacLeod  <amacleod@redhat.com>
2090
2091         * tree-core.h: Include symtab.h.
2092         * rtl.h: Include hard-reg-set.h but not flags.h.
2093         (HARD_CONST): Remove condition compilation involving HARD_CONST since
2094         hard-reg-set.h is always included.
2095         * regs.h: Don't include hard-reg-set.h or rtl.h.
2096         * cfg.h: Include dominance.h.
2097         * gimple.h: Include tree-ssa-alias.h and gimple-expr.h.
2098         * backend.h: New.  Aggregate commonly used backend header files.
2099         * gimple-ssa.h: Don't include tree-hasher.h.
2100         * ssa.h: New.  Aggregate commonly used SSA header files.
2101         * regset.h: Remove bitmap.h and hard-reg-set.h #includes.
2102         * sel-sched-ir.h: Flatten includes.
2103         * lra-int.h: Flatten completely.
2104         * sel-sched-dump.h: Flatten includes.
2105         * ira-int.h: Flatten includes.
2106         * gimple-streamer.h: Remove all includes.
2107         * cfgloop.h: Remove all #includes except cfgloopmanip.h.
2108         * resource.h: Flatten hard-reg-set.h and df.h.
2109         * sched-int.h: Flatten insn-arrt.h and df.h.
2110         * valtrack.h: flatten bitmap.h, df.h, and rtl.h
2111         * df.h: Flatten includes, leaving regset.h, alloc-pool.h and timevar.h.
2112         * genattrtab.c (write_header): Adjust generated includes.
2113         * genautomata.c (main): Likewise.
2114         * genconditions.c (write-header): Likewise.
2115         * genemit.c (main): Likewise.
2116         * gengtype.c (open_base_files): Likewise.
2117         * genopinit.c (main): Likewise.
2118         * genoutput.c (output_prologue): Likewise.
2119         * genpeep.c (main): Likewise.
2120         * genpreds.c (write_insn_preds_c): Likewise.
2121         * genrecog.c (write_header): Likewise.
2122         * alias.c: Adjust includes.
2123         * asan.c: Likewise.
2124         * attribs.c: Likewise.
2125         * auto-inc-dec.c: Likewise.
2126         * auto-profile.c: Likewise.
2127         * bb-reorder.c: Likewise.
2128         * bt-load.c: Likewise.
2129         * builtins.c: Likewise.
2130         * caller-save.c: Likewise.
2131         * calls.c: Likewise.
2132         * ccmp.c: Likewise.
2133         * cfg.c: Likewise.
2134         * cfganal.c: Likewise.
2135         * cfgbuild.c: Likewise.
2136         * cfgcleanup.c: Likewise.
2137         * cfgexpand.c: Likewise.
2138         * cfghooks.c: Likewise.
2139         * cfgloop.c: Likewise.
2140         * cfgloopanal.c: Likewise.
2141         * cfgloopmanip.c: Likewise.
2142         * cfgrtl.c: Likewise.
2143         * cgraph.c: Likewise.
2144         * cgraphbuild.c: Likewise.
2145         * cgraphclones.c: Likewise.
2146         * cgraphunit.c: Likewise.
2147         * cilk-common.c: Likewise.
2148         * combine-stack-adj.c: Likewise.
2149         * combine.c: Likewise.
2150         * compare-elim.c: Likewise.
2151         * convert.c: Likewise.
2152         * coverage.c: Likewise.
2153         * cppbuiltin.c: Likewise.
2154         * cprop.c: Likewise.
2155         * cse.c: Likewise.
2156         * cselib.c: Likewise.
2157         * data-streamer-in.c: Likewise.
2158         * data-streamer-out.c: Likewise.
2159         * data-streamer.c: Likewise.
2160         * dbxout.c: Likewise.
2161         * dce.c: Likewise.
2162         * ddg.c: Likewise.
2163         * debug.c: Likewise.
2164         * df-core.c: Likewise.
2165         * df-problems.c: Likewise.
2166         * df-scan.c: Likewise.
2167         * dfp.c: Likewise.
2168         * dojump.c: Likewise.
2169         * dominance.c: Likewise.
2170         * domwalk.c: Likewise.
2171         * double-int.c: Likewise.
2172         * dse.c: Likewise.
2173         * dumpfile.c: Likewise.
2174         * dwarf2asm.c: Likewise.
2175         * dwarf2cfi.c: Likewise.
2176         * dwarf2out.c: Likewise.
2177         * emit-rtl.c: Likewise.
2178         * et-forest.c: Likewise.
2179         * except.c: Likewise.
2180         * explow.c: Likewise.
2181         * expmed.c: Likewise.
2182         * expr.c: Likewise.
2183         * final.c: Likewise.
2184         * fixed-value.c: Likewise.
2185         * fold-const.c: Likewise.
2186         * function.c: Likewise.
2187         * fwprop.c: Likewise.
2188         * gcc-plugin.h: Likewise.
2189         * gcse-common.c: Likewise.
2190         * gcse.c: Likewise.
2191         * generic-match-head.c: Likewise.
2192         * ggc-page.c: Likewise.
2193         * gimple-builder.c: Likewise.
2194         * gimple-expr.c: Likewise.
2195         * gimple-fold.c: Likewise.
2196         * gimple-iterator.c: Likewise.
2197         * gimple-low.c: Likewise.
2198         * gimple-match-head.c: Likewise.
2199         * gimple-pretty-print.c: Likewise.
2200         * gimple-ssa-isolate-paths.c: Likewise.
2201         * gimple-ssa-strength-reduction.c: Likewise.
2202         * gimple-streamer-in.c: Likewise.
2203         * gimple-streamer-out.c: Likewise.
2204         * gimple-walk.c: Likewise.
2205         * gimple.c: Likewise.
2206         * gimplify-me.c: Likewise.
2207         * gimplify.c: Likewise.
2208         * godump.c: Likewise.
2209         * graph.c: Likewise.
2210         * graphite-blocking.c: Likewise.
2211         * graphite-dependences.c: Likewise.
2212         * graphite-interchange.c: Likewise.
2213         * graphite-isl-ast-to-gimple.c: Likewise.
2214         * graphite-optimize-isl.c: Likewise.
2215         * graphite-poly.c: Likewise.
2216         * graphite-scop-detection.c: Likewise.
2217         * graphite-sese-to-poly.c: Likewise.
2218         * graphite.c: Likewise.
2219         * haifa-sched.c: Likewise.
2220         * hw-doloop.c: Likewise.
2221         * ifcvt.c: Likewise.
2222         * init-regs.c: Likewise.
2223         * internal-fn.c: Likewise.
2224         * ipa-chkp.c: Likewise.
2225         * ipa-comdats.c: Likewise.
2226         * ipa-cp.c: Likewise.
2227         * ipa-devirt.c: Likewise.
2228         * ipa-icf-gimple.c: Likewise.
2229         * ipa-icf.c: Likewise.
2230         * ipa-inline-analysis.c: Likewise.
2231         * ipa-inline-transform.c: Likewise.
2232         * ipa-inline.c: Likewise.
2233         * ipa-polymorphic-call.c: Likewise.
2234         * ipa-profile.c: Likewise.
2235         * ipa-prop.c: Likewise.
2236         * ipa-pure-const.c: Likewise.
2237         * ipa-ref.c: Likewise.
2238         * ipa-reference.c: Likewise.
2239         * ipa-split.c: Likewise.
2240         * ipa-utils.c: Likewise.
2241         * ipa-visibility.c: Likewise.
2242         * ipa.c: Likewise.
2243         * ira-build.c: Likewise.
2244         * ira-color.c: Likewise.
2245         * ira-conflicts.c: Likewise.
2246         * ira-costs.c: Likewise.
2247         * ira-emit.c: Likewise.
2248         * ira-lives.c: Likewise.
2249         * ira.c: Likewise.
2250         * jump.c: Likewise.
2251         * langhooks.c: Likewise.
2252         * lcm.c: Likewise.
2253         * loop-doloop.c: Likewise.
2254         * loop-init.c: Likewise.
2255         * loop-invariant.c: Likewise.
2256         * loop-iv.c: Likewise.
2257         * loop-unroll.c: Likewise.
2258         * lower-subreg.c: Likewise.
2259         * lra-assigns.c: Likewise.
2260         * lra-coalesce.c: Likewise.
2261         * lra-constraints.c: Likewise.
2262         * lra-eliminations.c: Likewise.
2263         * lra-lives.c: Likewise.
2264         * lra-remat.c: Likewise.
2265         * lra-spills.c: Likewise.
2266         * lra.c: Likewise.
2267         * lto-cgraph.c: Likewise.
2268         * lto-compress.c: Likewise.
2269         * lto-opts.c: Likewise.
2270         * lto-section-in.c: Likewise.
2271         * lto-section-out.c: Likewise.
2272         * lto-streamer-in.c: Likewise.
2273         * lto-streamer-out.c: Likewise.
2274         * lto-streamer.c: Likewise.
2275         * mcf.c: Likewise.
2276         * mode-switching.c: Likewise.
2277         * modulo-sched.c: Likewise.
2278         * omega.c: Likewise.
2279         * omp-low.c: Likewise.
2280         * optabs.c: Likewise.
2281         * opts-global.c: Likewise.
2282         * passes.c: Likewise.
2283         * plugin.c: Likewise.
2284         * postreload-gcse.c: Likewise.
2285         * postreload.c: Likewise.
2286         * predict.c: Likewise.
2287         * print-rtl.c: Likewise.
2288         * print-tree.c: Likewise.
2289         * profile.c: Likewise.
2290         * real.c: Likewise.
2291         * realmpfr.c: Likewise.
2292         * recog.c: Likewise.
2293         * ree.c: Likewise.
2294         * reg-stack.c: Likewise.
2295         * regcprop.c: Likewise.
2296         * reginfo.c: Likewise.
2297         * regrename.c: Likewise.
2298         * regstat.c: Likewise.
2299         * reload.c: Likewise.
2300         * reload1.c: Likewise.
2301         * reorg.c: Likewise.
2302         * resource.c: Likewise.
2303         * rtl-chkp.c: Likewise.
2304         * rtlanal.c: Likewise.
2305         * rtlhooks.c: Likewise.
2306         * sanopt.c: Likewise.
2307         * sched-deps.c: Likewise.
2308         * sched-ebb.c: Likewise.
2309         * sched-rgn.c: Likewise.
2310         * sched-vis.c: Likewise.
2311         * sdbout.c: Likewise.
2312         * sel-sched-dump.c: Likewise.
2313         * sel-sched-ir.c: Likewise.
2314         * sel-sched.c: Likewise.
2315         * sese.c: Likewise.
2316         * shrink-wrap.c: Likewise.
2317         * simplify-rtx.c: Likewise.
2318         * stack-ptr-mod.c: Likewise.
2319         * stmt.c: Likewise.
2320         * stor-layout.c: Likewise.
2321         * store-motion.c: Likewise.
2322         * stringpool.c: Likewise.
2323         * symtab.c: Likewise.
2324         * target-globals.c: Likewise.
2325         * targhooks.c: Likewise.
2326         * toplev.c: Likewise.
2327         * tracer.c: Likewise.
2328         * trans-mem.c: Likewise.
2329         * tree-affine.c: Likewise.
2330         * tree-browser.c: Likewise.
2331         * tree-call-cdce.c: Likewise.
2332         * tree-cfg.c: Likewise.
2333         * tree-cfgcleanup.c: Likewise.
2334         * tree-chkp-opt.c: Likewise.
2335         * tree-chkp.c: Likewise.
2336         * tree-chrec.c: Likewise.
2337         * tree-complex.c: Likewise.
2338         * tree-data-ref.c: Likewise.
2339         * tree-dfa.c: Likewise.
2340         * tree-diagnostic.c: Likewise.
2341         * tree-dump.c: Likewise.
2342         * tree-eh.c: Likewise.
2343         * tree-emutls.c: Likewise.
2344         * tree-if-conv.c: Likewise.
2345         * tree-inline.c: Likewise.
2346         * tree-into-ssa.c: Likewise.
2347         * tree-iterator.c: Likewise.
2348         * tree-loop-distribution.c: Likewise.
2349         * tree-nested.c: Likewise.
2350         * tree-nrv.c: Likewise.
2351         * tree-object-size.c: Likewise.
2352         * tree-outof-ssa.c: Likewise.
2353         * tree-parloops.c: Likewise.
2354         * tree-phinodes.c: Likewise.
2355         * tree-predcom.c: Likewise.
2356         * tree-pretty-print.c: Likewise.
2357         * tree-profile.c: Likewise.
2358         * tree-scalar-evolution.c: Likewise.
2359         * tree-sra.c: Likewise.
2360         * tree-ssa-address.c: Likewise.
2361         * tree-ssa-alias.c: Likewise.
2362         * tree-ssa-ccp.c: Likewise.
2363         * tree-ssa-coalesce.c: Likewise.
2364         * tree-ssa-copy.c: Likewise.
2365         * tree-ssa-copyrename.c: Likewise.
2366         * tree-ssa-dce.c: Likewise.
2367         * tree-ssa-dom.c: Likewise.
2368         * tree-ssa-dse.c: Likewise.
2369         * tree-ssa-forwprop.c: Likewise.
2370         * tree-ssa-ifcombine.c: Likewise.
2371         * tree-ssa-live.c: Likewise.
2372         * tree-ssa-loop-ch.c: Likewise.
2373         * tree-ssa-loop-im.c: Likewise.
2374         * tree-ssa-loop-ivcanon.c: Likewise.
2375         * tree-ssa-loop-ivopts.c: Likewise.
2376         * tree-ssa-loop-manip.c: Likewise.
2377         * tree-ssa-loop-niter.c: Likewise.
2378         * tree-ssa-loop-prefetch.c: Likewise.
2379         * tree-ssa-loop-unswitch.c: Likewise.
2380         * tree-ssa-loop.c: Likewise.
2381         * tree-ssa-math-opts.c: Likewise.
2382         * tree-ssa-operands.c: Likewise.
2383         * tree-ssa-phiopt.c: Likewise.
2384         * tree-ssa-phiprop.c: Likewise.
2385         * tree-ssa-pre.c: Likewise.
2386         * tree-ssa-propagate.c: Likewise.
2387         * tree-ssa-reassoc.c: Likewise.
2388         * tree-ssa-sccvn.c: Likewise.
2389         * tree-ssa-scopedtables.c: Likewise.
2390         * tree-ssa-sink.c: Likewise.
2391         * tree-ssa-strlen.c: Likewise.
2392         * tree-ssa-structalias.c: Likewise.
2393         * tree-ssa-tail-merge.c: Likewise.
2394         * tree-ssa-ter.c: Likewise.
2395         * tree-ssa-threadedge.c: Likewise.
2396         * tree-ssa-threadupdate.c: Likewise.
2397         * tree-ssa-uncprop.c: Likewise.
2398         * tree-ssa-uninit.c: Likewise.
2399         * tree-ssa.c: Likewise.
2400         * tree-ssanames.c: Likewise.
2401         * tree-stdarg.c: Likewise.
2402         * tree-streamer-in.c: Likewise.
2403         * tree-streamer-out.c: Likewise.
2404         * tree-streamer.c: Likewise.
2405         * tree-switch-conversion.c: Likewise.
2406         * tree-tailcall.c: Likewise.
2407         * tree-vect-data-refs.c: Likewise.
2408         * tree-vect-generic.c: Likewise.
2409         * tree-vect-loop-manip.c: Likewise.
2410         * tree-vect-loop.c: Likewise.
2411         * tree-vect-patterns.c: Likewise.
2412         * tree-vect-slp.c: Likewise.
2413         * tree-vect-stmts.c: Likewise.
2414         * tree-vectorizer.c: Likewise.
2415         * tree-vrp.c: Likewise.
2416         * tree.c: Likewise.
2417         * tsan.c: Likewise.
2418         * ubsan.c: Likewise.
2419         * valtrack.c: Likewise.
2420         * value-prof.c: Likewise.
2421         * var-tracking.c: Likewise.
2422         * varasm.c: Likewise.
2423         * varpool.c: Likewise.
2424         * vmsdbgout.c: Likewise.
2425         * vtable-verify.c: Likewise.
2426         * web.c: Likewise.
2427         * wide-int.cc: Likewise.
2428         * xcoffout.c: Likewise.
2429         * config/aarch64/aarch64-builtins.c: Likewise.
2430         * config/aarch64/aarch64.c: Likewise.
2431         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
2432         * config/alpha/alpha.c: Likewise.
2433         * config/arc/arc.c: Likewise.
2434         * config/arm/aarch-common.c: Likewise.
2435         * config/arm/arm-builtins.c: Likewise.
2436         * config/arm/arm-c.c: Likewise.
2437         * config/arm/arm.c: Likewise.
2438         * config/avr/avr-c.c: Likewise.
2439         * config/avr/avr-log.c: Likewise.
2440         * config/avr/avr.c: Likewise.
2441         * config/bfin/bfin.c: Likewise.
2442         * config/c6x/c6x.c: Likewise.
2443         * config/cr16/cr16.c: Likewise.
2444         * config/cris/cris.c: Likewise.
2445         * config/darwin-c.c: Likewise.
2446         * config/darwin.c: Likewise.
2447         * config/epiphany/epiphany.c: Likewise.
2448         * config/epiphany/mode-switch-use.c: Likewise.
2449         * config/epiphany/resolve-sw-modes.c: Likewise.
2450         * config/fr30/fr30.c: Likewise.
2451         * config/frv/frv.c: Likewise.
2452         * config/ft32/ft32.c: Likewise.
2453         * config/h8300/h8300.c: Likewise.
2454         * config/i386/i386-c.c: Likewise.
2455         * config/i386/i386.c: Likewise.
2456         * config/i386/msformat-c.c: Likewise.
2457         * config/i386/winnt-cxx.c: Likewise.
2458         * config/i386/winnt-stubs.c: Likewise.
2459         * config/i386/winnt.c: Likewise.
2460         * config/ia64/ia64-c.c: Likewise.
2461         * config/ia64/ia64.c: Likewise.
2462         * config/iq2000/iq2000.c: Likewise.
2463         * config/lm32/lm32.c: Likewise.
2464         * config/m32c/m32c-pragma.c: Likewise.
2465         * config/m32c/m32c.c: Likewise.
2466         * config/m32r/m32r.c: Likewise.
2467         * config/m68k/m68k.c: Likewise.
2468         * config/mcore/mcore.c: Likewise.
2469         * config/mep/mep-pragma.c: Likewise.
2470         * config/mep/mep.c: Likewise.
2471         * config/microblaze/microblaze-c.c: Likewise.
2472         * config/microblaze/microblaze.c: Likewise.
2473         * config/mips/mips.c: Likewise.
2474         * config/mmix/mmix.c: Likewise.
2475         * config/mn10300/mn10300.c: Likewise.
2476         * config/moxie/moxie.c: Likewise.
2477         * config/msp430/msp430-c.c: Likewise.
2478         * config/msp430/msp430.c: Likewise.
2479         * config/nds32/nds32-cost.c: Likewise.
2480         * config/nds32/nds32-fp-as-gp.c: Likewise.
2481         * config/nds32/nds32-intrinsic.c: Likewise.
2482         * config/nds32/nds32-isr.c: Likewise.
2483         * config/nds32/nds32-md-auxiliary.c: Likewise.
2484         * config/nds32/nds32-memory-manipulation.c: Likewise.
2485         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
2486         * config/nds32/nds32-predicates.c: Likewise.
2487         * config/nds32/nds32.c: Likewise.
2488         * config/nios2/nios2.c: Likewise.
2489         * config/nvptx/nvptx.c: Likewise.
2490         * config/pa/pa.c: Likewise.
2491         * config/pdp11/pdp11.c: Likewise.
2492         * config/rl78/rl78-c.c: Likewise.
2493         * config/rl78/rl78.c: Likewise.
2494         * config/rs6000/rs6000-c.c: Likewise.
2495         * config/rs6000/rs6000.c: Likewise.
2496         * config/rx/rx.c: Likewise.
2497         * config/s390/s390-c.c: Likewise.
2498         * config/s390/s390.c: Likewise.
2499         * config/sh/sh-c.c: Likewise.
2500         * config/sh/sh-mem.cc: Likewise.
2501         * config/sh/sh.c: Likewise.
2502         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
2503         * config/sh/sh_treg_combine.cc: Likewise.
2504         * config/sol2-c.c: Likewise.
2505         * config/sol2-cxx.c: Likewise.
2506         * config/sol2-stubs.c: Likewise.
2507         * config/sol2.c: Likewise.
2508         * config/sparc/sparc-c.c: Likewise.
2509         * config/sparc/sparc.c: Likewise.
2510         * config/spu/spu-c.c: Likewise.
2511         * config/spu/spu.c: Likewise.
2512         * config/stormy16/stormy16.c: Likewise.
2513         * config/tilegx/mul-tables.c: Likewise.
2514         * config/tilegx/tilegx-c.c: Likewise.
2515         * config/tilegx/tilegx.c: Likewise.
2516         * config/tilepro/mul-tables.c: Likewise.
2517         * config/tilepro/tilepro-c.c: Likewise.
2518         * config/tilepro/tilepro.c: Likewise.
2519         * config/v850/v850-c.c: Likewise.
2520         * config/v850/v850.c: Likewise.
2521         * config/vax/vax.c: Likewise.
2522         * config/visium/visium.c: Likewise.
2523         * config/vms/vms-c.c: Likewise.
2524         * config/vms/vms.c: Likewise.
2525         * config/vxworks.c: Likewise.
2526         * config/xtensa/xtensa.c: Likewise.
2527
2528 2015-07-07  Uros Bizjak  <ubizjak@gmail.com>
2529
2530         * config/i386/i386.md (*jcc_bt<mode>): Only split before reload.
2531         Remove operand constraints.  Change operand 2 predicate to
2532         nonmemory operand.  Limit const_int values to mode bitsize.  Only
2533         allow const_int values less than 32 when optimizing for size.
2534         (*jcc_bt<mode>_1, *jcc_bt<mode>_mask): Only split before reload.
2535         Remove operand constraints.
2536         (*bt<mode>): Use SImode for const_int values less than 32.
2537         (regmode): Remove mode attribute.
2538
2539 2015-07-07  Anatoly Sokolov  <aesok@post.ru>
2540
2541         * config/moxie/moxie.h (GO_IF_LEGITIMATE_ADDRESS): Remove macros.
2542         * config/moxie/moxie.c (moxie_reg_ok_for_base_p,
2543           moxie_legitimate_address_p): New functions.
2544           (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
2545
2546 2015-07-07  Tom de Vries  <tom@codesourcery.com>
2547
2548         PR tree-optimization/66642
2549         * tree-parloops.c (transform_to_exit_first_loop_alt): Update function
2550         header comment.  Rename split_edge variable to edge_at_split.  Split
2551         exit edge to create new loop exit bb.  Insert loop exit phis in new
2552         loop exit bb.
2553
2554 2015-07-07  Tom de Vries  <tom@codesourcery.com>
2555
2556         * tree-cfg.c (get_virtual_phi): New function.
2557         * tree-cfg.h (get_virtual_phi): Declare.
2558         * tree-ssa-loop-manip.c (replace_uses_in_dominated_bbs)
2559         (rewrite_virtuals_into_loop_closed_ssa): New function.
2560         * tree-ssa-loop-manip.h (rewrite_virtuals_into_loop_closed_ssa):
2561         Declare.
2562         * tree-parloops.c (replace_uses_in_bbs_by): Remove.
2563         (transform_to_exit_first_loop_alt): Use
2564         rewrite_virtuals_into_loop_closed_ssa.
2565
2566 2015-07-07  Richard Biener  <rguenther@suse.de>
2567
2568         * fold-const.c (fold_binary_loc): Move
2569         (X & C2) << C1 -> (X << C1) & (C2 << C1) simplification ...
2570         * match.pd: ... here.
2571         Add (X * C1) % C2 -> 0 simplification pattern derived from
2572         extract_muldiv_1.
2573
2574 2015-07-07  Kaz Kojima  <kkojima@gcc.gnu.org>
2575
2576         PR target/66780
2577         * config/sh/sh.md (symGOT_load): Revert a part of 2015-03-03
2578         change for target/65249.
2579
2580 2015-07-07  Paulo Matos  <pmatos@broadcom.com>
2581
2582         * symtab.c (address_matters_1): Fix typo in comment above.
2583         (can_increase_alignment_p): Likewise.
2584
2585 2015-07-07  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
2586
2587         * function.c (free_after_compilation): Clear PROP_cfg in
2588         f->curr_properties.
2589
2590 2015-07-07  Richard Biener  <rguenther@suse.de>
2591
2592         * tree-ssa-propagate.c (add_ssa_edge): Dump what edge list we
2593         add which use to.
2594         (add_control_edge): Remove excessive vertical space in dumping.
2595         (process_ssa_edge_worklist): Simulate at most one statement and
2596         return whether we did.  Do not simulate PHIs if they are in a
2597         BB not yet simulated.
2598         (ssa_propagate): Adjust to always drain the BB worklist whenever
2599         a BB is available there, likewise the VARYING edges list before
2600         the interesting edge list.
2601
2602 2015-07-07  Christian Bruel  <christian.bruel@st.com>
2603
2604         PR target/52144
2605         * config/arm/elf.h (TARGET_ASM_FILE_START_APP_OFF): Delete.
2606
2607 2015-07-07  Richard Biener  <rguenther@suse.de>
2608
2609         PR middle-end/66739
2610         * match.pd: Condition A - B ==/!= 0 -> A ==/!= B on single-use
2611         A - B.
2612
2613 2015-07-06  Uros Bizjak  <ubizjak@gmail.com>
2614
2615         * config/i386/i386.md (insv<mode>): Rename from insv.  Use SWI48
2616         modes for operands 0 and 3.  Use SImode for operands 2 and 3.
2617         Copy operand 0 to a temporary if !ext_register_operand.  Remove
2618         ancient extract_bit_field workaround.
2619         (insv<mode>_1): Rename from mov<mode>_insv_1.
2620         (*insvqi): Rename from *movqi_insv_2.
2621         * config/i386/i386.c (emit_i386_cw_initialization): Update calls
2622         for renamed insvsi_1.
2623         (promote_duplicated_reg): Ditto for renamed insv<mode>_1.
2624
2625 2015-07-06  Nathan Sidwell  <nathan@codesourcery.com>
2626
2627         * config/nvptx/nvptx.c (nvptx_reorg): Remove unused vars.  Fix
2628         call to nvptx_reorg_subreg.
2629
2630 2015-07-06  Jim Wilson  <jim.wilson@linaro.org>
2631
2632         * graphite-blocking.c (HAVE_isl): Include <stddef.h>.
2633         * graphite-dependencies.c, graphite-interchange.c,
2634         graphite-isl-ast-to-gimple.c, graphite-optimize-isl.c, graphite-poly.c,
2635         graphite-scop-detection.c, graphite-sese-to-poly.c, graphite.c:
2636         Likewise.
2637
2638 2015-07-06  Marc Glisse  <marc.glisse@inria.fr>
2639
2640         * match.pd: Remove element_mode inside HONOR_*.
2641         (~ (-A) -> A - 1, ~ (A - 1) -> -A): Handle complex types.
2642         (~X | X -> -1, ~X ^ X -> -1): Merge.
2643         * tree.c (build_each_one_cst): New function.
2644         * tree.h (build_each_one_cst): Likewise.
2645
2646 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
2647
2648         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
2649         PROCESSOR_IAMCU.
2650
2651 2015-07-06  Steve Ellcey  <sellcey@imgtec.com>
2652
2653         * config.gcc <mips*-*-*>: Add fused-madd.opt.
2654         * config/mips/mips.opt (mfused-madd): Remove.
2655         * config/mips/mips.c (mips_rtx_costs): Update cost calculations.
2656         * config/mips/mips.h (TARGET_MIPS8000): New.
2657         (ISA_HAS_FP_MADD4_MSUB4): Remove.
2658         (ISA_HAS_FP_MADDF_MSUBF): Remove.
2659         (ISA_HAS_FP_MADD3_MSUB3): Remove.
2660         (ISA_HAS_NMADD4_NMSUB4): Remove.
2661         (ISA_HAS_NMADD3_NMSUB3): Remove.
2662         (ISA_HAS_FUSED_MADD4): New.
2663         (ISA_HAS_UNFUSED_MADD4): New.
2664         (ISA_HAS_FUSED_MADDF): New.
2665         (ISA_HAS_FUSED_MADD3): New.
2666         * config/mips/mips.md: (fma<mode>4) Change from insn to expand.
2667         (*fma<mode>4_madd3) New.
2668         (*fma<mode>4_madd4) New.
2669         (*fma<mode>4_maddf) New.
2670         (fms<mode>4) New.
2671         (*fms<mode>4_msub3) New.
2672         (*fms<mode>4_msub4) New.
2673         (fnma<mode>4) New.
2674         (*fnma<mode>4_nmadd3) New.
2675         (*fnma<mode>4_nmadd4) New.
2676         (fnms<mode>4) New.
2677         (*fnms<mode>4_nmsub3) New.
2678         (*fnms<mode>4_nmsub4) New.
2679         (*madd4<mode>) Modify to be unfused only.
2680         (*msub4<mode>) Modify to be unfused only.
2681         (*nmadd4<mode>) Modify to be unfused only.
2682         (*nmsub4<mode>) Modify to be unfused only.
2683         (*madd3<mode>) Remove.
2684         (*msub3<mode>) Remove.
2685         (*nmadd3<mode>) Remove.
2686         (*nmsub3<mode>) Remove.
2687         (*nmadd3<mode>_fastmath) Remove.
2688         (*nmsub3<mode>_fastmath) Remove.
2689         (*nmadd4<mode>_fastmath) Update condition.
2690         (*nmsub4<mode>_fastmath) Update condition.
2691
2692 2015-07-06  Alan Lawrence  <alan.lawrence@arm.com>
2693
2694         PR target/65956
2695         * config/arm/arm.c (arm_needs_doubleword_align): Drop any outer
2696         alignment attribute, exploring one level down for records and arrays.
2697
2698 2015-07-06  Uros Bizjak  <ubizjak@gmail.com>
2699
2700         * config/i386/i386.md (extv<mode>): Rename from extv.  Use SWI24
2701         modes for operands 0 and 1.  Use SImode for operands 2 and 3.
2702         Copy operand 1 to a temporary if !ext_register_operand.  Remove
2703         ancient extract_bit_field workaround.
2704         (*extv<mode>): Rename from *mov<mode>_extv_1.
2705         (*extvqi): Rename from *movqi_extv_1.
2706         (extzv<mode>): Rename from extzv.  Use SWI248 modes for
2707         operands 0 and 1.  Use SImode for operands 2 and 3. Copy operand 1
2708         to a temporary if !ext_register_operand.  Remove ancient
2709         extract_bit_field workaround.
2710         (*extzv<mode>): Rename from *mov<mode>_extzv_1.
2711         (*extzvqi): Rename from *movqi_extzv_2.
2712         (*testqi_ext_3): Remove modes from const_int_operand predicated
2713         operands.  Add "n" constraint.
2714         (*btsq, *btrq, *btcq): Remove mode from const_0_to_63 predicated
2715         operand.  Add "J" constraint.
2716         (*btsq, *btrq, *btcq peephole2s): Remove mode from
2717         const_0_to_63 predicated operand.
2718         (regmode): New insn attribute.
2719         (*bt<mode>): Use SImode for operand 1.  Change operand 1 predicate
2720         to nonmemory_operand.  Use regmode insn attribute.
2721         (*jcc_bt<mode>_1): Convert operand 2 to SImode.
2722         (*jcc_bt<mode>_mask): Remove mode from operand 3.
2723         (*jcc_btsi_1, *jcc_btsi_mask_1): Remove patterns.
2724         (tbm_bextri_<mode>): Remove modes from const_0_to_255 predicated
2725         operands.  Use "N" constraint instead of "n".
2726
2727 2015-07-06  Alan Lawrence  <alan.lawrence@arm.com>
2728
2729         * config/arm/arm.md (movdi): Avoid odd-number ldrd/strd in ARM state.
2730
2731 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
2732
2733         PR target/66749
2734         * config/i386/i386.c (iamcu_cost): New.
2735         (m_IAMCU): Likewise.
2736         (initial_ix86_arch_features): Disable X86_ARCH_CMOV for m_IAMCU.
2737         (processor_target_table): Add an entry for "iamcu".
2738         (processor_alias_table): Likewise.
2739         (ix86_issue_rate): Handle PROCESSOR_IAMCU.
2740         (ix86_adjust_cost): Likewise.
2741         (ia32_multipass_dfa_lookahead): Likewise.
2742         * config/i386/i386.h (processor_type): Add PROCESSOR_IAMCU.
2743         * config/i386/x86-tune.def: Updated for m_IAMCU.
2744
2745 2015-07-06  Richard Biener  <rguenther@suse.de>
2746
2747         PR tree-optimization/66772
2748         * tree-ssa-ccp.c (ccp_visit_phi_node): Make sure that copy
2749         values are available in the PHI node BB when there are
2750         still unexecutable edges.
2751
2752 2015-07-06  Richard Biener  <rguenther@suse.de>
2753
2754         PR tree-optimization/66767
2755         * tree-vect-loop-manip.c (vect_create_cond_for_align_checks):
2756         Make sure to build the alignment test on a SSA name without
2757         final alignment info valid only if the alignment test
2758         evaluates to true.
2759
2760 2015-07-06  Bernd Schmidt  <bernds@codesourcery.com>
2761
2762         PR target/66620
2763         * config/bfin/bfin.c (hwloop_optimize): Create new bb between jump and
2764         loop start when inserting LSETUP.
2765
2766 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
2767
2768         PR target/53383
2769         * config/i386/i386.c (ix86_option_override_internal): Allow
2770         -mincoming-stack-boundary=3 for 64-bit if SSE is disabled.
2771
2772 2015-07-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2773
2774         * read-md.c (decimal_string): Rename to ...
2775         (md_decimal_string): ... this.
2776         (handle_enum): Reflect this.
2777
2778 2015-07-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>
2779
2780         PR target/66731
2781         * config/aarch64/aarch64.md (fnmul<mode>3): Handle -frounding-math.
2782
2783 2015-07-06  Richard Biener  <rguenther@suse.de>
2784
2785         PR middle-end/66759
2786         * match.pd: Add missing constraint of y to REAL_CST in
2787         REAL_CST - x CMP y to y - CST CMP x simplification.
2788
2789 2015-07-06  Eric Botcazou  <ebotcazou@adacore.com>
2790
2791         PR tree-optimization/66757
2792         * match.pd: Add missing condition to ~X ^ C -> X ^ ~C.
2793
2794 2015-07-05  Chung-Lin Tang  <cltang@codesourcery.com>
2795             Sandra Loosemore <sandra@codesourcery.com>
2796
2797         * config/nios2/nios2-protos.h (nios2_symbol_ref_in_small_data_p):
2798         Delete extern declaration.
2799         (gprel_constant_p): Add extern declaration.
2800         * config/nios2/constraints.md ("S"): Use gprel_constant_p
2801         instead of nios2_symbol_ref_in_small_data_p.
2802         * config/nios2/nios2.c (nios2_legitimate_address_p): Likewise.
2803         (nios2_symbol_ref_in_small_data_p): Make static.
2804         (gprel_constant_p): Make non-static.
2805
2806 2015-07-05  Gerald Pfeifer  <gerald@pfeifer.com>
2807
2808         * doc/fragments.texi (Target Fragment): Convert debian.org
2809         link to use https.
2810         * doc/install.texi (Configuration): Ditto.
2811
2812 2015-07-05  Jakub Jelinek  <jakub@redhat.com>
2813
2814         PR tree-optimization/66718
2815         * tree-vect-stmts.c (vectorizable_call): Replace uses of
2816         GOMP_SIMD_LANE outside of loop with vf - 1 rather than 0.
2817
2818         PR tree-optimization/66718
2819         * tree-vect-stmts.c (vectorizable_assignment, vectorizable_store,
2820         vectorizable_load, vectorizable_condition): Move vectype,
2821         nunits, ncopies computation after checking what kind of statement
2822         stmt is.
2823
2824 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
2825
2826         * target-insns.def (extv, extzv, insv): New targetm instruction
2827         patterns.
2828         * optabs.c (get_extraction_insn): Use them instead of HAVE_*/gen_*
2829         interface.
2830         * recog.c (simplify_while_replacing): Likewise.
2831
2832 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
2833
2834         * target-insns.def (doloop_begin, doloop_end): New targetm
2835         instruction patterns.
2836         * loop-init.c: Include target.h.
2837         (pass_loop2::gate): Use the new targetm patterns instead of
2838         HAVE_*/gen_* interface.
2839         (pass_rtl_doloop::gate): Likewise.
2840         (pass_rtl_doloop::execute): Remove preprocessor condition.
2841         * hw-doloop.c: Build unconditionally.
2842         * loop-doloop.c: Likewise.
2843         (doloop_optimize): Use the new targetm patterns instead of
2844         HAVE_*/gen_* interface.
2845         (doloop_modify): Likewise. Change type of doloop_seq to rtx_insn *.
2846         * modulo-sched.c (doloop_register_get): Likewise.
2847
2848 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
2849
2850         * target-insns.def (clear_cache): New targetm instruction pattern.
2851         * builtins.c (expand_builtin___clear_cache): Use it instead of
2852         HAVE_*/gen_* interface.
2853
2854 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
2855
2856         * target-insns.def (allocate_stack, check_stack, probe_stack)
2857         (probe_stack_address, split_stack_prologue, split_stack_space_check):
2858         New targetm instruction patterns.
2859         * explow.c (allocate_dynamic_stack_space): Use them instead of
2860         HAVE_*/gen_* interface.
2861         (emit_stack_probe): Likewise.
2862         (probe_stack_range): Likewise.
2863         * function.c (thread_prologue_and_epilogue_insns): Likewise.
2864
2865 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
2866
2867         * target-insns.def (stack_protect_set, stack_protect_test): New
2868         targetm instruction patterns.
2869         * cfgexpand.c (stack_protect_prologue): Use them instead of
2870         HAVE_*/gen_* interface.
2871         * function.c (stack_protect_epilogue): Likewise.
2872
2873 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
2874
2875         * expr.h (gen_move_insn_uncast): Delete.
2876         * expr.c (gen_move_insn_uncast): Delete.
2877
2878 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
2879
2880         * target-insns.def (restore_stack_block, restore_stack_function)
2881         (restore_stack_nonlocal, save_stack_block, save_stack_function)
2882         (save_stack_nonlocal): New targetm instruction patterns.
2883         * builtins.c (expand_builtin_apply): Use them instead of
2884         HAVE_*/gen_* interface.
2885         * explow.c (emit_stack_save, emit_stack_restore): Likewise.
2886
2887 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
2888
2889         * target-insns.def (trap): New targetm instruction pattern.
2890         * builtins.c (expand_builtin_trap): Use it instead of HAVE_*/gen_*
2891         interface.
2892         * explow.c (allocate_dynamic_stack_space): Likewise.
2893         * ifcvt.c (find_if_header): Likewise.
2894
2895 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
2896
2897         * target-insns.def (prefetch): New targetm instruction pattern.
2898         * tree-ssa-loop-prefetch.c: Include targeth.
2899         (tree_ssa_prefetch_arrays): Use prefetch targetm pattern instead
2900         of HAVE_*/gen_* interface.
2901         * builtins.c (expand_builtin_prefetch): Likewise.
2902         * toplev.c (process_options): Likewise.
2903
2904 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
2905
2906         * target-insns.def (untyped_call, untyped_return): New targetm
2907         instruction patterns.
2908         * builtins.c (expand_builtin_apply): Use them instead of
2909         HAVE_*/gen_* interface.
2910         (result_vector): Define unconditionally.
2911
2912 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
2913
2914         * target-insns.def (builtin_longjmp, builtin_setjmp_receiver)
2915         (builtin_setjmp_setup, exception_receiver, nonlocal_goto)
2916         (nonlocal_goto_receiver): New targetm instruction patterns.
2917         * builtins.c (expand_builtin_setjmp_setup): Use them instead
2918         of HAVE_*/gen_* interface.
2919         (expand_builtin_setjmp_receiver): Likewise.
2920         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
2921         * except.c (expand_dw2_landing_pad_for_region): Likewise.
2922
2923 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
2924
2925         * target.def: Add code_for_* hooks.
2926         * gentarget-def.c (def_target_insn): Add TARGET_CODE_FOR_* macros.
2927         * defaults.h (HAVE_tablejump, gen_tablejump): Delete.
2928         * target-insns.def (casesi, tablejump): New targetm instruction
2929         patterns.
2930         * expr.c (try_casesi): Use them instead of HAVE_*/gen_* interface.
2931         (do_tablejump): Likewise.
2932         * stmt.c (expand_switch_as_decision_tree_p): Likewise.
2933         (expand_sjlj_dispatch_table): Likewise.
2934         * targhooks.c (default_case_values_threshold): Likewise.
2935
2936 2015-07-04  Sandra Loosemore  <sandra@codesourcery.com>
2937
2938         * config/nios2/nios2.c (save_reg, restore_reg): Use plus_constant.
2939         Use rtx_insn * instead of rtx.
2940         (nios2_emit_add_constant): Use rtx_insn * instead of rtx.
2941         (nios2_expand_prologue, nios2_expand_epilogue): Likewise.
2942         (nios2_call_tls_get_addr): Likewise.
2943         (nios2_emit_expensive_div): Likewise.
2944         (nios2_emit_move_sequence): Change return type to bool.
2945         * config/nios2/nios2-protos.h (nios2_emit_move_sequence):
2946         Change return type to bool.
2947
2948 2015-07-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2949
2950         PR target/66747
2951         * config/mips/mips.c (mips_find_gp_ref): Handle instruction sequences.
2952
2953 2015-07-04  John David Anglin  <danglin@gcc.gnu.org>
2954
2955         PR target/66114
2956         * config/pa/pa.md (indirect_jump): Use pmode_register_operand instead
2957         of register_operand.  Remove constraint.
2958
2959 2015-07-04  Marc Glisse  <marc.glisse@inria.fr>
2960
2961         * tree-cfg.c (verify_gimple_assign_ternary) <VEC_COND_EXPR>: Check
2962         the first argument.
2963
2964 2015-07-03  Paolo Carlini  <paolo.carlini@oracle.com>
2965
2966         * attribs.c (decl_attributes): Guard inform with the return value
2967         of the preceding warning.
2968
2969 2015-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
2970
2971         * doc/invoke.texi (moverride): Move to correct section.
2972
2973 2015-07-03  Richard Biener  <rguenther@suse.de>
2974
2975         * genmatch.c (commutative_tree_code, commutative_ternary_tree_code):
2976         Copy from tree.c
2977         (dt_operand::gen_gimple_expr): After valueizing operands
2978         re-canonicalize operand order for commutative tree codes.
2979
2980 2015-07-03  H.J. Lu  <hongjiu.lu@intel.com>
2981
2982         PR target/66746.
2983         * config/i386/ia32intrin.h (__crc32b): Don't define if __iamcu__
2984         is defined.
2985         (__crc32w): Likewise.
2986         (__crc32d): Likewise.
2987         (__rdpmc): Likewise.
2988         (__rdtscp): Likewise.
2989         (_rdpmc): Likewise.
2990         (_rdtscp): Likewise.
2991         * config/i386/x86intrin.h: Only include ia32intrin.h if __iamcu__
2992         is defined.
2993
2994 2015-07-03  Richard Biener  <rguenther@suse.de>
2995
2996         * fold-const.c (fold_mathfn_compare): Remove.
2997         (fold_inf_compare): Likewise.
2998         (fold_comparison): Move floating point comparison simplifications...
2999         * match.pd: ... to patterns here.  Introduce simple_comparisons
3000         operator list and use it for patterns formerly in fold_comparison.
3001
3002 2015-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
3003
3004         PR tree-optimization/66119
3005         * toplev.c (process_options): Don't set up default values for
3006         the sra_max_scalarization_size_{speed,size} parameters.
3007         * tree-sra (analyze_all_variable_accesses): If no values
3008         have been set for the sra_max_scalarization_size_{speed,size}
3009         parameters, call get_move_ratio to get target defaults.
3010
3011 2015-07-03  Richard Biener  <rguenther@suse.de>
3012
3013         * fold-const.c (fold_binary_loc): Move (T)ptr & CST folding...
3014         * match.pd: ... here.
3015
3016 2015-07-03  Gerald Pfeifer  <gerald@pfeifer.com>
3017
3018         PR target/37072
3019         * doc/invoke.texi (i386 and x86-64 Options): -mno-fancy-math-387
3020         is not actually the default on FreeBSD.
3021
3022 2015-07-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3023
3024         * config/rs6000/rs6000-builtin.def (CMPGE_16QI): New built-in
3025         definition.
3026         (CMPGE_8HI): Likewise.
3027         (CMPGE_4SI): Likewise.
3028         (CMPGE_2DI): Likewise.
3029         (CMPGE_U16QI): Likewise.
3030         (CMPGE_U8HI): Likewise.
3031         (CMPGE_U4SI): Likewise.
3032         (CMPGE_U2DI): Likewise.
3033         (CMPLE_16QI): Likewise.
3034         (CMPLE_8HI): Likewise.
3035         (CMPLE_4SI): Likewise.
3036         (CMPLE_2DI): Likewise.
3037         (CMPLE_U16QI): Likewise.
3038         (CMPLE_U8HI): Likewise.
3039         (CMPLE_U4SI): Likewise.
3040         (CMPLE_U2DI): Likewise.
3041         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
3042         overloads for ALTIVEC_BUILTIN_VEC_CMPGE and
3043         ALTIVEC_BUILTIN_VEC_CMPLE.
3044         * config/rs6000/vector.md (vector_ge<mode>): Restrict to
3045         floating-point vector modes.
3046         (vector_nlt<mode>): New define_expand.
3047         (vector_nltu<mode>): Likewise.
3048         (vector_ngt<mode>): Likewise.
3049         (vector_ngtu<mode>): Likewise.
3050
3051 2015-07-02  Segher Boessenkool  <segher@kernel.crashing.org>
3052
3053         PR rtl-optimization/66706
3054         * combine.c (make_compound_operation): If an AND of SUBREG of
3055         LSHIFTRT does not simplify, see if just the AND of SUBREG does.
3056
3057 2015-07-02  Alan Lawrence  <alan.lawrence@arm.com>
3058
3059         * tree-pass.h (make_pass_ch_vect): New.
3060         * passes.def: Add pass_ch_vect just before pass_if_conversion.
3061
3062         * tree-ssa-loop-ch.c (ch_base, pass_ch_vect, pass_data_ch_vect,
3063         pass_ch::process_loop_p, pass_ch_vect::process_loop_p,
3064         make_pass_ch_vect): New.
3065         (pass_ch): Extend ch_base.
3066
3067         (pass_ch::execute): Move all but loop_optimizer_init/finalize to...
3068         (ch_base::copy_headers): ...here.
3069
3070 2015-07-02  Richard Biener  <rguenther@suse.de>
3071
3072         * builtins.c (get_pointer_alignment_1): Handle POINTER_PLUS_EXPR.
3073         * fold-const.c (get_pointer_modulus_and_residue): Remove.
3074         (fold_binary_loc): Implement (T)ptr & CST in terms of
3075         get_pointer_alignment_1.
3076         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop):
3077         Make sure to build the alignment test on a SSA name without
3078         final alignment info valid only after the prologue.
3079
3080 2015-07-02  Hans-Peter Nilsson  <hp@axis.com>
3081
3082         * config/cris/cris.md ("epilogue"): Remove condition.
3083         ("prologue"): Ditto.
3084
3085 2015-07-02  Richard Biener  <rguenther@suse.de>
3086
3087         * tree-ssa-dom.c (build_and_record_new_cond): Add optional
3088         parameter to record a condition that is false.
3089         (record_conditions): When recording an extra NE_EXPR that is
3090         true also record a EQ_EXPR that is false.
3091
3092 2015-07-02  Bin Cheng  <bin.cheng@arm.com>
3093
3094         * tree-ssa-loop-ivopts.c (struct ivopts_data): New field iv_obstack.
3095         (tree_ssa_iv_optimize_init): Initialize iv_obstack.
3096         (alloc_iv): New parameter.  Allocate struct iv using obstack_alloc.
3097         (set_iv, find_interesting_uses_address, add_candidate_1): New
3098         argument to alloc_iv.
3099         (find_interesting_uses_op, find_interesting_uses_cond): Don't
3100         duplicate struct iv.
3101         (free_loop_data): Don't free struct iv explicitly.
3102         (tree_ssa_iv_optimize_finalize): Free iv_obstack.
3103
3104 2015-07-01  DJ Delorie  <dj@redhat.com>
3105
3106         * config/s390/tpf.h (LIBSTDCXX): Change to CPP1.
3107         (LIB_SPEC): Add.
3108         (SUPPORTS_DISCRIMINATOR): Define.
3109
3110 2015-07-01  Richard Sandiford  <richard.sandiford@arm.com>
3111
3112         PR bootstrap/66685
3113         * rtl.c (classify_insn): Only return JUMP_INSN for parallel returns if
3114         there are no CALLs in the same pattern.
3115
3116 2015-07-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3117
3118         PR rtl-optimization/61047
3119         * rtlanal.c (get_initial_register_offset): New function.
3120         (rtx_addr_can_trap_p_1): Check offsets of stack references.
3121
3122 2015-07-01  Richard Biener  <rguenther@suse.de>
3123
3124         * fold-const.c (fold_comparison): Move X - Y CMP 0 -> X CMP Y,
3125         X * C1 CMP 0 -> X CMP 0, X CMP X, ~X CMP ~Y -> Y CMP X and
3126         ~X CMP C -> X CMP' ~C to ...
3127         * match.pd: ... patterns here.
3128
3129 2015-07-01  Nick Clifton  <nickc@redhat.com>
3130
3131         * config/msp430/msp430.md (zero_extendhipsi2): Use MOVX.A to store
3132         a 16-bit value into a 20-bit memory slot.
3133
3134 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
3135
3136         * doc/sourcebuild.texi (AArch64-specific attributes): Document
3137         "aarch64_tiny", "aarch64_small", "aarch64_large",
3138         "aarch64_little_endian", "aarch64_big_endian".
3139
3140 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
3141
3142         * doc/sourcebuild.texi (AArch64-specific attributes): New subsection.
3143         Document "aarch64_small_fpic".
3144
3145 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
3146
3147         * configure.ac: Add check for aarch64 assembler -fpic relocation
3148         modifier support.
3149         * configure: Regenerate.
3150         * config.in: Regenerate.
3151         * config/aarch64/aarch64.c (initialize_aarch64_code_model): Fall back
3152         to -fPIC if not support of -fpic relocation modifier in assembler.
3153
3154 2015-07-01  Richard Sandiford  <richard.sandiford@arm.com>
3155
3156         PR bootstrap/66685
3157         * rtl.c (classify_insn): Handle returns in PARALLELs.
3158
3159 2015-07-01  Eric Botcazou  <ebotcazou@adacore.com>
3160
3161         PR middle-end/66633
3162         * tree-nested.c (convert_nonlocal_omp_clauses): Initialize need_chain
3163         to true if the function is nested and if not optimizing.
3164         (convert_local_omp_clauses): Initialize need_frame to true if the
3165         function contains nested functions and if not optimizing.
3166
3167 2015-07-01  Richard Biener  <rguenther@suse.de>
3168
3169         * fold-const.c (fold_binary_loc): Move ~X ^ X -> -1 and
3170         (X & Y) ^ Y -> ~X & Y transforms to ...
3171         * match.pd: ... here.
3172
3173 2015-07-01  Richard Biener <rguenther@suse.de>
3174
3175         * genmatch.c (expr::gen_transform): Shortcut re-simplifying
3176         of converts to avoid uninteresting noise from the conversion
3177         simplifying patterns.
3178
3179 2015-06-30  Sandra Loosemore <sandra@codesourcery.com>
3180
3181         * config/c6x/c6x.c (try_rename_operands): Do not depend on
3182         gcc_assert evaluating its argument for side-effect.
3183
3184 2015-06-30  Kaz Kojima  <kkojima@gcc.gnu.org>
3185
3186         PR target/64833
3187         * config/sh/sh.md (casesi_worker_1): Set length to 8 when
3188         flag_pic is set.
3189
3190 2015-06-30  Eric Botcazou  <ebotcazou@adacore.com>
3191
3192         * lto-streamer-out.c (class DFS): Adjust hash_scc method.
3193         (DFS::DFS): Pass this_ref_p and ref_p to hash_scc.
3194         (hash_scc): Add this_ref_p and ref_p parameters and pass them
3195         to the inner DFS walk.
3196
3197 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
3198
3199         * target-insns.def (jump): New targetm instruction pattern.
3200         * bb-reorder.c (get_uncond_jump_length): Use targetm.gen_jump
3201         instead of gen_jump.
3202         (fix_up_crossing_landing_pad): Likewise.
3203         (add_labels_and_missing_jumps): Likewise.
3204         (fix_crossing_conditional_branches): Likewise.
3205         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
3206         (force_nonfallthru_and_redirect): Likewise.
3207         * cse.c (cse_insn): Likewise.
3208         * expmed.c (expand_divmod): Likewise.
3209         * expr.c (store_expr_with_bounds, expand_expr_real_2): Likewise.
3210         * haifa-sched.c (init_before_recovery): Likewise.
3211         (sched_create_recovery_edges): Likewise.
3212         * ifcvt.c (find_cond_trap): Likewise.
3213         * optabs.c (expand_doubleword_shift, expand_doubleword_clz): Likewise.
3214         (expand_float, expand_fix): Likewise.
3215         * stmt.c (emit_jump): Likewise.
3216
3217 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
3218
3219         * defaults.h (HAVE_load_multiple, gen_load_multiple)
3220         (HAVE_store_multiple, gen_store_multiple): Delete.
3221         * target-insns.def (load_multiple, store_multiple): New targetm
3222         instruction patterns.
3223         * expr.c (move_block_to_reg, move_block_from_reg): Use them instead
3224         of HAVE_*/gen_* interface.
3225
3226 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
3227
3228         * defaults.h (HAVE_mem_thread_fence, gen_mem_thread_fence)
3229         (HAVE_memory_barrier, gen_memory_barrier, HAVE_mem_signal_fence)
3230         (gen_mem_signal_fence): Delete.
3231         * target-insns.def (mem_signal_fence, mem_thread_fence)
3232         (memory_barrier): New targetm instruction patterns.
3233         * optabs.c (expand_mem_thread_fence): Use them instead of HAVE_*/gen_*
3234         interface.
3235         (expand_mem_signal_fence): Likewise.
3236
3237 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
3238
3239         * defaults.h (HAVE_epilogue, gen_epilogue): Delete.
3240         * target-insns.def (epilogue, prologue, sibcall_prologue): New
3241         targetm instruction patterns.
3242         * alias.c (init_alias_analysis): Use them instead of HAVE_*/gen_*
3243         interface.
3244         * calls.c (expand_call): Likewise.
3245         * cfgrtl.c (cfg_layout_finalize): Likewise.
3246         * df-scan.c (df_get_entry_block_def_set): Likewise.
3247         (df_get_exit_block_use_set): Likewise.
3248         * dwarf2cfi.c (pass_dwarf2_frame::gate): Likewise.
3249         * final.c (final_start_function): Likewise.
3250         * function.c (thread_prologue_and_epilogue_insns): Likewise.
3251         (reposition_prologue_and_epilogue_notes): Likewise.
3252         * reorg.c (find_end_label): Likewise.
3253         * toplev.c (process_options): Likewise.
3254
3255 2015-06-30  David Malcolm  <dmalcolm@redhat.com>
3256
3257         * typed-splay-tree.h: New file.
3258
3259 2015-06-30  Vladimir Makarov  <vmakarov@redhat.com>
3260
3261         PR debug/66691
3262         * lra-int.h (lra_substitute_pseudo): Add a parameter.
3263         (lra_substitute_pseudo_within_insn): Ditto.
3264         * lra.c (lra_substitute_pseudo): Add a parameter.  Simplify subreg
3265         of constant.
3266         (lra_substitute_pseudo_within_insn): Add a parameter.  Transfer it
3267         to lra_substitute_pseudo.
3268         * lra-lives.c (process_bb_lives): Add an argument to
3269         lra_substitute_pseudo_within_insn call.
3270         * lra-constraints.c (inherit_reload_reg, split_reg): Add an
3271         argument to lra_substitute_pseudo and
3272         lra_substitute_pseudo_within_insn calls.
3273         (remove_inheritance_pseudos, undo_optional_reloads): Ditto.
3274
3275 2015-06-30  H.J. Lu  <hongjiu.lu@intel.com>
3276
3277         * configure: Regenerated.
3278
3279 2015-06-30  H.J. Lu  <hongjiu.lu@intel.com>
3280
3281         * config.gcc: Support i[34567]86-*-elfiamcu target.
3282         * config/i386/iamcu.h: New.
3283         * config/i386/i386.opt: Add -miamcu.
3284         * doc/invoke.texi: Document -miamcu.
3285         * common/config/i386/i386-common.c  (ix86_handle_option): Turn
3286         off x87/MMX/SSE/AVX codegen for -miamcu.
3287         * config/i386/i386-c.c (ix86_target_macros_internal): Define
3288         __iamcu/__iamcu__ for -miamcu.
3289         * config/i386/i386.h (PREFERRED_STACK_BOUNDARY_DEFAULT): Set
3290         to MIN_STACK_BOUNDARY if TARGET_IAMCU is true.
3291         (BIGGEST_ALIGNMENT): Set to 32 if TARGET_IAMCU is true.
3292         * config/i386/i386.c (ix86_option_override_internal): Ignore and
3293         warn -mregparm for Intel MCU.  Turn on -mregparm=3 for Intel
3294         MCU by default.  Default long double to 64-bit for Intel MCU.
3295         Turn on -freg-struct-return for Intel MCU.  Issue an error when
3296         -miamcu is used in 64-bit or x32 mode or if x87, MMX, SSE or
3297         AVX is turned on.
3298         (function_arg_advance_32): Pass value whose size is no larger
3299         than 8 bytes in registers for Intel MCU.
3300         (function_arg_32): Likewise.
3301         (ix86_return_in_memory): Return value whose size is no larger
3302         than 8 bytes in registers for Intel MCU.
3303         (iamcu_alignment): New function.
3304         (ix86_data_alignment): Call iamcu_alignment if TARGET_IAMCU is
3305         true.
3306         (ix86_local_alignment): Don't increase alignment for Intel MCU.
3307         (x86_field_alignment): Return iamcu_alignment if TARGET_IAMCU is
3308         true.
3309
3310 2015-06-30  Marek Polacek  <polacek@redhat.com>
3311
3312         * match.pd (X - (X / Y) * Y): Use convert1 and convert2.  Convert
3313         both operands of the resulting expression.
3314
3315         * match.pd (~x | x): Don't use tree_nop_conversion_p.  Build
3316         the final expression with the operand's type and then convert
3317         it to the type of the expression.
3318
3319 2015-06-30  Richard Biener  <rguenther@suse.de>
3320
3321         * fold-const.c (fold_binary_loc): Move ~x & ~y -> ~(x | y) and
3322         ~x | ~y -> ~(x & y), (x & CST) ^ (x & CST2) -> (x & CST) | (x & CST2),
3323         (X | Y) ^ X -> Y & ~ X, ~X ^ ~Y to X ^ Y and ~X ^ C to X ^ ~C ...
3324         * match.pd: ... to patterns here.
3325
3326 2015-06-30  Richard Biener  <rguenther@suse.de>
3327
3328         PR tree-optimization/66704
3329         * tree-vect-data-refs.c (vect_setup_realignment): Use
3330         make_ssa_name for non-SSA name source.
3331
3332 2015-06-30  Jakub Jelinek  <jakub@redhat.com>
3333
3334         PR middle-end/66702
3335         * omp-low.c (simd_clone_adjust): Handle addressable linear
3336         or uniform parameters or non-gimple type uniform parameters.
3337
3338 2015-06-30  Richard Biener  <rguenther@suse.de>
3339
3340         * fold-const.c (fold_unary_loc): Move abs(abs(x)) -> abs(x),
3341         ~ (-A) to A - 1, ~ (A - 1) or ~ (A + -1) to -A and some cases of
3342         ~(X ^ Y) to ~X ^ Y or X ^ ~Y if ~X or ~Y simplify to ...
3343         * match.pd: ... here.
3344         Add a few cases of A - B -> A + (-B) when B "easily" negates.
3345         Move (x & y) | x -> x and friends before
3346         (x | CST1) & CST2 -> (x & CST2) | (CST1 & CST2).
3347
3348 2015-06-30  Eric Botcazou  <ebotcazou@adacore.com>
3349
3350         * config/sparc/leon.md (leon_load): Enable for all LEON variants if
3351         -mfix-ut699 is not specified.
3352         (leon3_load): Rename into...
3353         (ut699_load): ...this.  Enable for all LEON variants if -mfix-ut699
3354         is specified.
3355
3356 2015-06-30  Marek Polacek  <polacek@redhat.com>
3357
3358         * fold-const.c (fold_binary_loc): Move ~X | X folding ...
3359         * match.pd: ... here.
3360
3361 2015-06-30  Richard Biener  <rguenther@suse.de>
3362
3363         * target-insns.def (canonicalize_funcptr_for_compare): Add.
3364         * fold-const.c (build_range_check): Replace uses of
3365         HAVE_canonicalize_funcptr_for_compare.
3366         (fold_widened_comparison): Likewise.
3367         (fold_sign_changed_comparison): Likewise.
3368         * dojump.c: Include "target.h".
3369         (do_compare_and_jump): Replace uses of
3370         HAVE_canonicalize_funcptr_for_compare and
3371         gen_canonicalize_funcptr_for_compare.
3372         * expr.c (do_store_flag): Likewise.
3373
3374 2015-06-30  Tom de Vries  <tom@codesourcery.com>
3375
3376         PR tree-optimization/66652
3377         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
3378         max_loop_iterations to determine if nit + 1 overflows.
3379
3380 2015-06-30  Richard Biener  <rguenther@suse.de>
3381
3382         * tree-vrp.c (register_edge_assert_for_2): Also register
3383         asserts for dominating conversion results.
3384
3385 2015-06-30  Bin Cheng  <bin.cheng@arm.com>
3386
3387         * tree-ssa-loop-ivopts.c (record_sub_use): Don't reset ssa_name
3388         field in struct iv.
3389
3390 2015-06-29  Jack Howarth  <howarth.at.gcc@gmail.com>
3391
3392         PR target/66509
3393         * configure.ac: Fix filds and fildq test for 64-bit.
3394         * configure: Regenerated.
3395
3396 2015-06-29  Nathan Sidwell  <nathan@codesourcery.com>
3397
3398         * config/nvptx/nvptx.md (nvptx_reorg_subreg): New fn, broken out of ...
3399         (nvptx_reorg): Here.  Keep the non-subreg pieces.
3400
3401 2015-06-29  H.J. Lu  <hongjiu.lu@intel.com>
3402
3403         * config/gnu-user.h (GNU_USER_TARGET_ENDFILE_SPEC): Use
3404         PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
3405
3406 2015-06-29  Uros Bizjak  <ubizjak@gmail.com>
3407
3408         * config/i386/i386.md (*jcc_1): Use %! in asm template.
3409         Set attribute "length_nobnd" instead of "length".
3410         (*jcc_2): Ditto.
3411         (jump): Ditto.
3412         (*jcc_1_bnd, *jcc_2_bnd, jump_bnd): Remove insn patterns.
3413
3414 2015-06-29  Sandra Loosemore  <sandra@codesourcery.com>
3415
3416         * config/nios2/nios2.c (nios2_delegitimize_address): Make
3417         assert less restrictive.
3418
3419 2015-06-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3420
3421         PR fortran/66605
3422         * cgraphunit.c (cgraph_node::finalize_function): Do not call
3423         do_warn_unused_parameter.
3424         * function.c (do_warn_unused_parameter): Move from here.
3425         * function.h (do_warn_unused_parameter): Do not declare.
3426
3427 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
3428
3429         PR target/65697
3430         * gcc.target/arm/armv-sync-comp-swap.c: New.
3431         * gcc.target/arm/armv-sync-op-acquire.c: New.
3432         * gcc.target/arm/armv-sync-op-full.c: New.
3433         * gcc.target/arm/armv-sync-op-release.c: New.
3434
3435 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
3436
3437         PR target/65697
3438         * config/armc/arm.c (arm_split_compare_and_swap): For ARMv8, replace an
3439         initial acquire barrier with final barrier.
3440
3441 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
3442
3443         PR target/65697
3444         * config/armc/arm.c (arm_split_atomic_op): For ARMv8, replace an
3445         initial acquire barrier with final barrier.
3446
3447 2015-06-29  Richard Henderson  <rth@redhat.com>
3448
3449         * config/i386/constraints.md (Bf): New constraint.
3450         * config/i386/i386-c.c (ix86_target_macros): Define
3451         __GCC_ASM_FLAG_OUTPUTS__.
3452         * config/i386/i386.c (ix86_md_asm_adjust): Handle =@cc* constraints
3453         as flags outputs.
3454         * doc/extend.texi (FlagOutputOperands): Document them.
3455
3456 2015-06-29  Jiong Wang  <jiong.wang@arm.com>
3457
3458         * config/arch64/aarch64.md (UNSPEC_TLSLE): New enumeration.
3459         * config/arch64/aarch64.md (tlsle_small): Rename to tlsle and use new
3460         unspec name.
3461         (tlsle_small_<mode>): Rename to tlsle_<mode> and use new unspec name.
3462         * config/arch64/aarch64-protos.h (arch64_symbol_type): Rename
3463         SYMBOL_SMALL_TPREL to SYMBOL_TLSLE.
3464         (aarch64_symbol_context): Ditto.
3465         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto
3466         and use new pattern name.
3467         (aarch64_expand_mov_immediate): Ditto.
3468         (aarch64_print_operand): Ditto.
3469         (aarch64_classify_tls_symbol): Ditto.
3470
3471 2015-06-29  Marek Polacek  <polacek@redhat.com>
3472             Marc Glisse  <marc.glisse@inria.fr>
3473
3474         * fold-const.c (fold_binary_loc): Move X - (X / Y) * Y -> X % Y to ...
3475         * match.pd: ... pattern here.
3476
3477 2015-06-29  Tom de Vries  <tom@codesourcery.com>
3478
3479         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Simplify
3480         function structure.
3481
3482 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
3483
3484         * doc/invoke.texi (Aarch64 Options, -march): Split out arch and
3485         feature description, split out the native option, add a link to
3486         the feature documentation, rearrange and slightly rewrite text.
3487         (Aarch64 options, -mcpu): Likewise.
3488         (Aarch64 options, Feature Modifiers): Add an anchor.  Mention
3489         +rdma implies Adv. SIMD.
3490
3491 2015-06-29  Marek Polacek  <polacek@redhat.com>
3492
3493         PR c/66322
3494         * function.c (stack_protect_epilogue): Remove a cast to int.
3495         * doc/invoke.texi: Update -Wswitch-bool description.
3496
3497 2015-06-29  Richard Biener  <rguenther@suse.de>
3498
3499         * genmatch.c (add_operator): Treat ADDR_EXPR as atom.
3500         * fold-const.c (fold_binary_loc): Move &A - &B simplification
3501         via ptr_difference_const ...
3502         * match.pd: ... here.
3503         When matching (X ^ Y) == Y also match with swapped operands.
3504
3505 2015-06-29  Richard Biener  <rguenther@suse.de>
3506
3507         * lto-streamer.h (LTO_major_version): Bump to 5.
3508
3509 2015-06-29  Richard Biener  <rguenther@suse.de>
3510
3511         PR tree-optimization/66677
3512         * tree-vect-stmts.c (vect_transform_stmt): Make assert about
3513         STMT_VINFO_VEC_STMT clobbering less strict.
3514
3515 2015-06-29  Kugan Vivekanandarajah  <kuganv@linaro.org>
3516
3517         PR middle-end/64130
3518         * tree-vrp.c (extract_range_from_binary_expr_1): For unsigned
3519         division, compute max and min when value ranges for dividend and
3520         divisor are available.
3521
3522 2015-06-28  Chung-Lin Tang <cltang@codesourcery.com>
3523             Sandra Loosemore <sandra@codesourcery.com>
3524
3525         * regrename.h (regrename_do_replace): Change to return bool.
3526         * regrename.c (rename_chains): Check return value of
3527         regname_do_replace.
3528         (regrename_do_replace): Re-validate the modified insns and
3529         return bool status.
3530         * config/aarch64/cortex-a57-fma-steering.c (rename_single_chain):
3531         Update to match rename_chains changes.
3532         * config/c6x/c6x.c (try_rename_operands): Assert that
3533         regrename_do_replace returns true.
3534
3535 2015-06-28  Uros Bizjak  <ubizjak@gmail.com>
3536
3537         * config/i386/i386.md (<mode>_ldx): Do not zero-extend non-Pmode
3538         operand 2 here.  Use copy_addr_to_reg to copy non-index
3539         register operand 2 to a temporary.
3540         (<mode>_stx): Ditto for operand 1.
3541         (*<mode>_ldx, *<mode>_stx): Remove enclosing parallel.
3542         * config/i386/i386.c (ix86_load_bounds): Zero-extend non-Pmode ptr here.
3543         (ix86_store_bounds): Ditto.
3544
3545 2015-06-27  Patrick Palka  <ppalka@gcc.gnu.org>
3546
3547         * print-tree.c (print_node) [TREE_VEC]: Print its length.
3548
3549 2015-06-26  Andrew MacLeod  <amacleod@redhat.com>
3550
3551         * gimple.c (gimple_call_set_fndecl): Remove.
3552         * gimple.h (gimple_call_set_fndecl): Relocate to gimple.h and call
3553         build1_loc directly instead of build_fold_addr_expr_loc.
3554
3555 2015-06-26  Richard Sandiford  <richard.sandiford@arm.com>
3556
3557         * hash-map.h (hash_map::traverse): Use the definition of the
3558         Key typedef rather than the typedef itself.
3559
3560 2015-06-26  Martin Jambor  <mjambor@suse.cz>
3561
3562         PR debug/66301
3563         * tree-ssa-pre.c (before_dom_children): Check that dump_file is not
3564         NULL instead of calling dump_enabled_p.
3565
3566 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
3567
3568         * config/aarch64/aarch64.opt: (override): New.
3569         * doc/invoke.texi (override): Document.
3570         * config/aarch64/aarch64.c (aarch64_flag_desc): New
3571         (aarch64_fusible_pairs): Likewise.
3572         (aarch64_tuning_flags): Likewise.
3573         (aarch64_tuning_override_function): Likewise.
3574         (aarch64_tuning_override_functions): Likewise.
3575         (aarch64_parse_one_option_token): Likewise.
3576         (aarch64_parse_boolean_options): Likewise.
3577         (aarch64_parse_fuse_string): Likewise.
3578         (aarch64_parse_tune_string): Likewise.
3579         (aarch64_parse_one_override_token): Likewise.
3580         (aarch64_parse_override_string): Likewise.
3581         (aarch64_override_options): Parse the -override string if it
3582         is present.
3583
3584 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
3585
3586         * config/aarch64/aarch64-protos.h (tune_params): Remove
3587         const from members.
3588         (aarch64_tune_params): Remove const, change to no longer be
3589         a pointer.
3590         * config/aarch64/aarch64.c (aarch64_tune_params): Remove const,
3591         change to no longer be a pointer, initialize to generic_tunings.
3592         (aarch64_min_divisions_for_recip_mul): Change dereference of
3593         aarch64_tune_params to member access.
3594         (aarch64_reassociation_width): Likewise.
3595         (aarch64_rtx_mult_cost): Likewise.
3596         (aarch64_address_cost): Likewise.
3597         (aarch64_branch_cost): Likewise.
3598         (aarch64_rtx_costs): Likewise.
3599         (aarch64_register_move_cost): Likewise.
3600         (aarch64_memory_move_cost): Likewise.
3601         (aarch64_sched_issue_rate): Likewise.
3602         (aarch64_builtin_vectorization_cost): Likewise.
3603         (aarch64_override_options): Take a copy of the selected tuning
3604         struct in to aarch64_tune_params, rather than just setting
3605         a pointer, change dereferences of aarch64_tune_params to member
3606         accesses.
3607         (aarch64_override_options_after_change): Change dereferences of
3608         aarch64_tune_params to member access.
3609         (aarch64_macro_fusion_p): Likewise.
3610         (aarch_macro_fusion_pair_p): Likewise.
3611         * config/aarch64/cortex-a57-fma-steering.c (gate): Likewise.
3612
3613 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
3614
3615         * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Delete.
3616         (aarch64_tune_flags): Likewise.
3617         (AARCH64_TUNE_FMA_STEERING): Likewise.
3618         * config/aarch64/aarch64-cores.def (cortex-a57): Remove reference
3619         to AARCH64_FL_USE_FMA_STEERING_PASS.
3620         (cortex-a57.cortex-a53): Likewise.
3621         (cortex-a72): Use cortexa72_tunings.
3622         (cortex-a72.cortex-a53): Likewise.
3623         (exynos-m1): Likewise.
3624         * config/aarch64/aarch64-protos.h (tune_params): Add
3625         a field: extra_tuning_flags.
3626         * config/aarch64/aarch64-tuning-flags.def: New.
3627         * config/aarch64/aarch64-protos.h (AARCH64_EXTRA_TUNING_OPTION): New.
3628         (aarch64_extra_tuning_flags): Likewise.
3629         (aarch64_tune_params): Declare here.
3630         * config/aarch64/aarch64.c (generic_tunings): Set extra_tuning_flags.
3631         (cortexa53_tunings): Likewise.
3632         (cortexa57_tunings): Likewise.
3633         (thunderx_tunings): Likewise.
3634         (xgene1_tunings): Likewise.
3635         (cortexa72_tunings): New.
3636         * config/aarch64/cortex-a57-fma-steering.c: Include aarch64-protos.h.
3637          (gate): Check against aarch64_tune_params.
3638         * config/aarch64/t-aarch64 (cortex-a57-fma-steering.o): Depend on
3639         aarch64-protos.h.
3640
3641 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
3642
3643         * config/aarch64/aarch64-fusion-pairs.def: New.
3644         * config/aarch64/aarch64-protos.h (aarch64_fusion_pairs): New.
3645         * config/aarch64/aarch64.c (AARCH64_FUSE_NOTHING): Move to
3646         aarch64_fusion_pairs.
3647         (AARCH64_FUSE_MOV_MOVK): Likewise.
3648         (AARCH64_FUSE_ADRP_ADD): Likewise.
3649         (AARCH64_FUSE_MOVK_MOVK): Likewise.
3650         (AARCH64_FUSE_ADRP_LDR): Likewise.
3651         (AARCH64_FUSE_CMP_BRANCH): Likewise.
3652
3653 2015-06-26  Jiong Wang  <jiong.wang@arm.com>
3654
3655         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): New type
3656         SYMBOL_SMALL_GOT_28K.
3657         * config/aarch64/aarch64.md: (ldr_got_small_<mode>): Support new GOT
3658         relocation modifiers.
3659         (unspec): New enum "UNSPEC_GOTMALLPIC28K.
3660         (ldr_got_small_28k_<mode>): New.
3661         (ldr_got_small_28k_sidi): New.
3662         * config/aarch64/iterators.md (got_modifier): New mode iterator.
3663         * config/aarch64/aarch64-otps.h (aarch64_code_model): New model.
3664         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Support
3665         SYMBOL_SMALL_GOT_28K.
3666         (aarch64_rtx_costs): Add costs for new instruction sequences.
3667         (initialize_aarch64_code_model): Initialize new model.
3668         (aarch64_classify_symbol): Recognize new model and new symbol classification.
3669         (aarch64_asm_preferred_eh_data_format): Support new model.
3670         (aarch64_load_symref_appropriately): Generate new instruction
3671         sequences for -fpic.
3672         (TARGET_USE_PSEUDO_PIC_REG): New definition.
3673         (aarch64_use_pseudo_pic_reg): New function.
3674
3675 2015-06-26  Jiong Wang  <jiong.wang@arm.com>
3676
3677         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Rename
3678         SYMBOL_SMALL_GOT to SYMBOL_SMALL_GOT_4G.
3679         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto.
3680         (aarch64_expand_mov_immediate): Ditto.
3681         (aarch64_print_operand): Ditto.
3682         (aarch64_classify_symbol): Ditto.
3683
3684 2015-06-26  Nathan Sidwell  <nathan@codesourcery.com>
3685
3686         * config/nvptx/nvptx.md (call_operation): Remove unused variables.
3687
3688 2015-06-26  Bin Cheng  <bin.cheng@arm.com>
3689
3690         PR bootstrap/66638
3691         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Skip if
3692         assertion failed.  Remove assertion itself.
3693
3694 2015-06-26  Richard Biener  <rguenther@suse.de>
3695
3696         * fold-const.c (fold_binary_loc): Remove -A CMP -B -> A CMP B
3697         and -A CMP CST -> A CMP -CST which is redundant with a pattern
3698         in match.pd.
3699         Move (A | C) == D where C & ~D != 0 -> 0, (X ^ Y) ==/!= 0 -> X ==/!= Y,
3700         (X ^ Y) ==/!= {Y,X} -> {X,Y} ==/!= 0 and
3701         (X ^ C1) op C2 -> X op (C1 ^ C2) to ...
3702         * match.pd: ... patterns here.
3703
3704 2015-06-26  Marek Polacek  <polacek@redhat.com>
3705
3706         * match.pd ((x | y) & ~(x & y) -> x ^ y,
3707         (x | y) & (~x ^ y) -> x & y): New patterns.
3708
3709 2015-06-26  Richard Sandiford  <richard.sandiford@arm.com>
3710
3711         * rtl.h (emit): Add an optional boolean parameter to control
3712         whether barriers are emitted.
3713         * emit-rtl.c (emit): Likewise.
3714         * gensupport.c (get_emit_function): Return null rather than "emit".
3715         * genemit.c (gen_emit_seq): Handle the null return value.
3716         Don't emit barriers after the final instruction in the sequence.
3717         * gentarget-def.c (main): Don't emit barriers after the instruction.
3718
3719 2015-06-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3720
3721         * config/arm/arm.c (arm_output_multireg_pop): Fix use of
3722         TARGET_UNIFIED_ASM.
3723
3724 2015-06-26  Richard Biener  <rguenther@suse.de>
3725
3726         * match.pd: Allow associating FLOAT_TYPE_P when flag_associative_math.
3727
3728 2015-06-26  Richard Biener  <rguenther@suse.de>
3729
3730         * match.pd: Allow (p +p off1) +p off2 to (p +p (off1 + off2))
3731         irrespective on whether the inner operation has a single use
3732         of both off are constant.
3733
3734 2015-06-26  Uros Bizjak  <ubizjak@gmail.com>
3735             Segher Boessenkool  <segher@kernel.crashing.org>
3736
3737         PR target/66412
3738         * config/i386/i386.md (various splitters): Use shallow_copy_rtx
3739         before doing PUT_MODE or PUT_CODE on operands to avoid
3740         in-place RTX modification.
3741
3742 2015-06-25  H.J. Lu  <hongjiu.lu@intel.com>
3743
3744         * gentarget-def.c (def_target_insn): Cast return of strtol to
3745         unsigned int.
3746
3747 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
3748
3749         * gimple.h (gimple_call_set_fn): Move inline function.
3750         * gimple.c (gimple_call_set_fn): Relocate here.
3751
3752 2015-06-25  Oleg Endo  <olegendo@gcc.gnu.org>
3753
3754         PR target/65979
3755         PR target/66611
3756         * config/sh/sh.md (tstsi_t peephole2): Use insn_invalid_p to check if
3757         the replacement insn will work.
3758
3759 2015-06-25  H.J. Lu  <hongjiu.lu@intel.com>
3760
3761         * gcc.c (driver_handle_option): Validate -pie if PIE is enabled
3762         by default.
3763
3764 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
3765
3766         * function.h (ipa_opt_pass, ipa_opt_pass_d): Move forward declarations.
3767         * cgraph.h: Include ipa-ref.h and plugin-api.h.
3768         (ipa_opt_pass, ipa_opt_pass_d)): Relocate forward declarations here.
3769         (symtab_node::address_can_be_compared_p): Move function.
3770         * cgraph.c (symtab_node::address_can_be_compared_p): Relocate function
3771         definition here.
3772         * asan.c: Remove ipa-ref.h and plugin-api.h from include list.
3773         * auto-profile.c: Likewise.
3774         * bb-reorder.c: Likewise.
3775         * builtins.c: Likewise.
3776         * calls.c: Likewise.
3777         * cfgexpand.c: Likewise.
3778         * cgraphbuild.c: Likewise.
3779         * cgraphclones.c: Likewise.
3780         * cgraphunit.c: Likewise.
3781         * combine.c: Likewise.
3782         * coverage.c: Likewise.
3783         * data-streamer-in.c: Likewise.
3784         * data-streamer-out.c: Likewise.
3785         * data-streamer.c: Likewise.
3786         * dbxout.c: Likewise.
3787         * dwarf2out.c: Likewise.
3788         * except.c: Likewise.
3789         * expr.c: Likewise.
3790         * final.c: Likewise.
3791         * fold-const.c: Likewise.
3792         * ggc-page.c: Likewise.
3793         * gimple-fold.c: Likewise.
3794         * gimple-iterator.c: Likewise.
3795         * gimple-pretty-print.c: Likewise.
3796         * gimple-streamer-in.c: Likewise.
3797         * gimple-streamer-out.c: Likewise.
3798         * gimple.c: Likewise.
3799         * gimplify.c: Likewise.
3800         * ipa-chkp.c: Likewise.
3801         * ipa-comdats.c: Likewise.
3802         * ipa-cp.c: Likewise.
3803         * ipa-devirt.c: Likewise.
3804         * ipa-icf-gimple.c: Likewise.
3805         * ipa-icf.c: Likewise.
3806         * ipa-inline-analysis.c: Likewise.
3807         * ipa-inline-transform.c: Likewise.
3808         * ipa-inline.c: Likewise.
3809         * ipa-polymorphic-call.c: Likewise.
3810         * ipa-profile.c: Likewise.
3811         * ipa-prop.c: Likewise.
3812         * ipa-pure-const.c: Likewise.
3813         * ipa-ref.c: Likewise.
3814         * ipa-reference.c: Likewise.
3815         * ipa-split.c: Likewise.
3816         * ipa-utils.c: Likewise.
3817         * ipa-visibility.c: Likewise.
3818         * ipa.c: Likewise.
3819         * langhooks.c: Likewise.
3820         * lto-cgraph.c: Likewise.
3821         * lto-compress.c: Likewise.
3822         * lto-opts.c: Likewise.
3823         * lto-section-in.c: Likewise.
3824         * lto-section-out.c: Likewise.
3825         * lto-streamer-in.c: Likewise.
3826         * lto-streamer-out.c: Likewise.
3827         * lto-streamer.c: Likewise.
3828         * omp-low.c: Likewise.
3829         * opts-global.c: Likewise.
3830         * passes.c: Likewise.
3831         * predict.c: Likewise.
3832         * print-tree.c: Likewise.
3833         * profile.c: Likewise.
3834         * ree.c: Likewise.
3835         * sanopt.c: Likewise.
3836         * stor-layout.c: Likewise.
3837         * symtab.c: Likewise.
3838         * toplev.c: Likewise.
3839         * trans-mem.c: Likewise.
3840         * tree-cfg.c: Likewise.
3841         * tree-chkp.c: Likewise.
3842         * tree-eh.c: Likewise.
3843         * tree-emutls.c: Likewise.
3844         * tree-inline.c: Likewise.
3845         * tree-nested.c: Likewise.
3846         * tree-parloops.c: Likewise.
3847         * tree-pretty-print.c: Likewise.
3848         * tree-profile.c: Likewise.
3849         * tree-sra.c: Likewise.
3850         * tree-ssa-alias.c: Likewise.
3851         * tree-ssa-live.c: Likewise.
3852         * tree-ssa-loop-ivcanon.c: Likewise.
3853         * tree-ssa-loop-ivopts.c: Likewise.
3854         * tree-ssa-pre.c: Likewise.
3855         * tree-ssa-sccvn.c: Likewise.
3856         * tree-ssa-strlen.c: Likewise.
3857         * tree-ssa-structalias.c: Likewise.
3858         * tree-streamer-in.c: Likewise.
3859         * tree-streamer-out.c: Likewise.
3860         * tree-streamer.c: Likewise.
3861         * tree-switch-conversion.c: Likewise.
3862         * tree-tailcall.c: Likewise.
3863         * tree-vect-data-refs.c: Likewise.
3864         * tree-vect-stmts.c: Likewise.
3865         * tree-vectorizer.c: Likewise.
3866         * tree.c: Likewise.
3867         * tsan.c: Likewise.
3868         * ubsan.c: Likewise.
3869         * value-prof.c: Likewise.
3870         * varasm.c: Likewise.
3871         * varpool.c: Likewise.
3872         * config/arm/arm.c: Likewise.
3873         * config/bfin/bfin.c: Likewise.
3874         * config/c6x/c6x.c: Likewise.
3875         * config/cris/cris.c: Likewise.
3876         * config/darwin-c.c: Likewise.
3877         * config/darwin.c: Likewise.
3878         * config/i386/i386.c: Likewise.
3879         * config/i386/winnt.c: Likewise.
3880         * config/microblaze/microblaze.c: Likewise.
3881         * config/mips/mips.c: Likewise.
3882         * config/rs6000/rs6000.c: Likewise.
3883         * config/rx/rx.c: Likewise.
3884         * config/s390/s390.c: Likewise.
3885         * config/tilegx/mul-tables.c: Likewise.
3886
3887 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
3888
3889         * config/aarch64/aarch64.c, config/alpha/alpha.c,
3890         config/arm/arm.c, config/avr/avr.c, config/bfin/bfin.c,
3891         config/c6x/c6x.c, config/cr16/cr16.c, config/cris/cris.c,
3892         config/fr30/fr30.c, config/frv/frv.c, config/h8300/h8300.c,
3893         config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
3894         config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
3895         config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
3896         config/microblaze/microblaze.c, config/mips/mips.c,
3897         config/mmix/mmix.c, config/mn10300/mn10300.c,
3898         config/moxie/moxie.c, config/msp430/msp430.c,
3899         config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
3900         config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
3901         config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
3902         config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
3903         config/stormy16/stormy16.c, config/tilegx/tilegx.c,
3904         config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
3905         config/visium/visium.c, config/xtensa/xtensa.c: Add comment above
3906         target-def.h include.
3907         * config/ft32/ft32.c: Likewise.  Fix misapplied hunk.
3908
3909 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
3910
3911         * Makefile.in (TARGET_DEF): Add target-insns.def.
3912         (.PRECIOUS, simple_rtl_generated_h): Add insn-target-def.h.
3913         (build/gentarget-def.o): New rule.
3914         (genprogrtl): Add target-def.
3915         * target-insns.def, gentarget-def.c: New files.
3916         * target.def: Add targetm.have_* and targetm.gen_* hooks,
3917         based on the contents of target-insns.def.
3918         * defaults.h (HAVE_simple_return, gen_simple_return): Delete.
3919         (HAVE_return, gen_return): Delete.
3920         * target-def.h: Include insn-target-def.h.
3921         * cfgrtl.c (force_nonfallthru_and_redirect): Use targetm interface
3922         instead of direct calls.  Rely on them to do the appropriate assertions.
3923         * function.c (gen_return_pattern): Likewise.  Return an rtx_insn *.
3924         (convert_jumps_to_returns): Use targetm interface instead of
3925         direct calls.
3926         (thread_prologue_and_epilogue_insns): Likewise.
3927         * reorg.c (find_end_label, dbr_schedule): Likewise.
3928         * shrink-wrap.h (SHRINK_WRAPPING_ENABLED): Likewise.
3929         * shrink-wrap.c (convert_to_simple_return): Likewise.
3930         (try_shrink_wrapping): Use SHRINK_WRAPPING_ENABLED.
3931
3932 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
3933
3934         * config/aarch64/aarch64.c, config/alpha/alpha.c, config/arm/arm.c,
3935         config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
3936         config/cr16/cr16.c, config/cris/cris.c, config/fr30/fr30.c,
3937         config/frv/frv.c, config/ft32/ft32.c, config/h8300/h8300.c,
3938         config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
3939         config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
3940         config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
3941         config/microblaze/microblaze.c, config/mips/mips.c, config/mmix/mmix.c,
3942         config/mn10300/mn10300.c, config/moxie/moxie.c, config/msp430/msp430.c,
3943         config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
3944         config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
3945         config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
3946         config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
3947         config/stormy16/stormy16.c, config/tilegx/tilegx.c,
3948         config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
3949         config/visium/visium.c, config/xtensa/xtensa.c: Move target-def.h
3950         includes to end.
3951
3952 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
3953
3954         * hash-map-traits.h (simple_hashmap_traits::key_type): New typedef.
3955         (unbounded_int_hashmap_traits::key_type): Likewise.
3956         * hash-map.h (hash_map): Get the key type from the traits.
3957         * hash-traits.h (default_hash_traits): By default, inherit from the
3958         template parameter.
3959         * alias.c (alias_set_traits): Delete.
3960         (alias_set_entry_d::children): Use alias_set_hash as the first
3961         template parameter.
3962         (record_alias_subset): Update accordingly.
3963         * except.c (tree_hash_traits): Delete.
3964         (type_to_runtime_map): Use tree_hash as the first template parameter.
3965         (init_eh): Update accordingly.
3966         * genmatch.c (capture_id_map_hasher): Delete.
3967         (cid_map_t): Use nofree_string_hash as first template parameter.
3968         * ipa-icf.h (symbol_compare_hashmap_traits): Delete.
3969         * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
3970         Use symbol_compare_hash as the first template parameter in
3971         subdivide_hash_map.
3972         * mem-stats.h (mem_usage_pair::mem_alloc_hashmap_traits): Delete.
3973         (mem_usage_pair::mem_map_t): Use mem_location_hash as the first
3974         template parameter.
3975         * passes.c (pass_registry_hasher): Delete.
3976         (name_to_pass_map): Use nofree_string_hash as the first template
3977         parameter.
3978         (register_pass_name): Update accordingly.
3979         * sanopt.c (sanopt_tree_map_traits): Delete.
3980         (sanopt_tree_triplet_map_traits): Delete.
3981         (sanopt_ctx::asan_check_map): Use tree_operand_hash as the first
3982         template parameter.
3983         (sanopt_ctx::vptr_check_map): Use sanopt_tree_triplet_hash as
3984         the first template parameter.
3985         * sese.c (rename_map_hasher): Delete.
3986         (rename_map_type): Use tree_ssa_name_hash as the first template
3987         parameter.
3988         * symbol-summary.h (function_summary::summary_hashmap_traits): Delete.
3989         (function_summary::m_map): Use map_hash as the first template
3990         parameter.
3991         (function_summary::release): Update accordingly.
3992         * tree-if-conv.c (phi_args_hash_traits): Delete.
3993         (predicate_scalar_phi): Use tree_operand_hash as the first template
3994         parameter to phi_arg_map.
3995         * tree-inline.h (dependence_hasher): Delete.
3996         (copy_body_data::dependence_map): Use dependence_hash as the first
3997         template parameter.
3998         * tree-inline.c (remap_dependence_clique): Update accordingly.
3999         * tree-ssa-strlen.c (stridxlist_hash_traits): Delete.
4000         (decl_to_stridxlist_htab): Use tree_decl_hash as the first template
4001         parameter.
4002         (addr_stridxptr): Update accordingly.
4003         * value-prof.c (profile_id_traits): Delete.
4004         (cgraph_node_map): Use profile_id_hash as the first template
4005         parameter.
4006         (init_node_map): Update accordingly.
4007         * config/alpha/alpha.c (string_traits): Delete.
4008         (machine_function::links): Use nofree_string_hash as the first
4009         template parameter.
4010         (alpha_use_linkage, alpha_write_linkage): Update accordingly.
4011         * config/m32c/m32c.c (pragma_traits): Delete.
4012         (pragma_htab): Use nofree_string_hash as the first template parameter.
4013         (m32c_note_pragma_address): Update accordingly.
4014         * config/mep/mep.c (pragma_traits): Delete.
4015         (pragma_htab): Use nofree_string_hash as the first template parameter.
4016         (mep_note_pragma_flag): Update accordingly.
4017         * config/mips/mips.c (mips16_flip_traits): Delete.
4018         (mflip_mips16_htab): Use nofree_string_hash as the first template
4019         parameter.
4020         (mflip_mips16_use_mips16_p): Update accordingly.
4021         (local_alias_traits): Delete.
4022         (mips16_local_aliases): Use nofree_string_hash as the first template
4023         parameter.
4024         (mips16_local_alias): Update accordingly.
4025
4026 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4027
4028         * hash-map-traits.h (default_hashmap_traits): Delete.
4029
4030 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4031
4032         * hash-map-traits.h (unbounded_hashmap_traits): New class.
4033         (unbounded_int_hashmap_traits): Likewise.
4034         * cfgexpand.c (part_traits): Use unbounded_int_hashmap_traits.
4035
4036 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4037
4038         * ipa-icf.h (symbol_compare_hash): New class.
4039         (symbol_compare_hashmap_traits): Use it.
4040         * mem-stats.h (mem_alloc_description::mem_location_hash): New class.
4041         (mem_alloc_description::mem_alloc_hashmap_traits): Use it.
4042         (mem_alloc_description::reverse_mem_map_t): Remove redundant
4043         default_hashmap_traits.
4044         * sanopt.c (sanopt_tree_triplet_hash): New class.
4045         (sanopt_tree_triplet_map_traits): Use it.
4046
4047 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4048
4049         * gengtype-parse.c (require_template_declaration): Allow '+' in
4050         template parameters.  Consolidate cases.
4051         * hash-traits.h (int_hash): New class.
4052         * alias.c (alias_set_hash): New structure.
4053         (alias_set_traits): Use it.
4054         * symbol-summary.h (function_summary::map_hash): New class.
4055         (function_summary::summary_hashmap_traits): Use it.
4056         * tree-inline.h (dependence_hash): New class.
4057         (dependence_hasher): Use it.
4058         * tree-ssa-reassoc.c (oecount_hasher): Use int_hash.
4059         * value-prof.c (profile_id_hash): New class.
4060         (profile_id_traits): Use it.
4061
4062 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4063
4064         * config/mips/mips.c (mips16_flip_traits): Use it.
4065         (local_alias_traits, mips16_local_aliases): Convert from a map of
4066         rtxes to a map of symbol names.
4067         (mips16_local_alias): Update accordingly.
4068
4069 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4070
4071         * hash-traits.h (string_hash, nofree_string_hash): New classes.
4072         * genmatch.c (capture_id_map_hasher): Use nofree_string_hash.
4073         * passes.c (pass_registry_hasher): Likewise.
4074         * config/alpha/alpha.c (string_traits): Likewise.
4075         * config/i386/winnt.c (i386_find_on_wrapper_list): Likewise.
4076         * config/m32c/m32c.c (pragma_traits): Likewise.
4077         * config/mep/mep.c (pragma_traits): Likewise.
4078
4079 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4080
4081         * tree-hash-traits.h (tree_hash): New class.
4082         * except.c: Include tree-hash-traits.h.
4083         (tree_hash_traits): Use tree_hash.
4084
4085 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4086
4087         * tree-hash-traits.h (tree_ssa_name_hasher): New class.
4088         * sese.c: Include tree-hash-traits.h.
4089         (rename_map_hasher): Use tree_ssa_name_hasher.
4090
4091 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4092
4093         * tree-hash-traits.h (tree_decl_hash): New class.
4094         * tree-ssa-strlen.c: Include tree-hash-traits.h.
4095         (stridxlist_hash_traits): Use tree_decl_hash.
4096
4097 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4098
4099         * tree-hash-traits.h: New file.
4100         (tree_operand_hash): New class.
4101         * sanopt.c: Include tree-hash-traits.h.
4102         (sanopt_tree_map_traits): Use tree_operand_hash.
4103         * tree-if-conv.c: Include tree-hash-traits.h.
4104         (phi_args_hash_traits): Use tree_operand_hash.
4105         * tree-ssa-uncprop.c: Include tree-hash-traits.h.
4106         (val_ssa_equiv_hash_traits): Use tree_operand_hash.
4107
4108 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4109
4110         * hash-map-traits.h: Include hash-traits.h.
4111         (simple_hashmap_traits): New class.
4112         * mem-stats.h (hash_map): Change the default traits to
4113         simple_hashmap_traits<default_hash_traits<Key> >.
4114
4115 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4116
4117         * hash-table.h: Update comments.
4118
4119 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4120
4121         * hash-traits.h (default_hash_traits): New structure.
4122         * hash-set.h (default_hashset_traits): Delete.
4123         (hash_set): Use default_hash_traits<Key> instead of
4124         default_hashset_traits.  Delete hash_entry type and use Key directly.
4125         * ipa-devirt.c (pair_traits): Delete.
4126         (default_hash_traits <type_pair>): Override.
4127         (odr_subtypes_equivalent_p): Remove pair_types template parameter.
4128         (odr_types_equivalent_p, add_type_duplicate): Likewise.
4129
4130 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4131
4132         * hash-traits.h (typed_noop_remove): Don't require a pointer type.
4133
4134 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4135
4136         * hash-table.h (has_is_deleted, is_deleted_helper): Delete.
4137         (has_is_empty, is_empty_helper): Delete.
4138         (has_mark_deleted, mark_deleted_helper): Delete.
4139         (has_mark_empty, mark_empty_helper): Delete.
4140         (hash_table::is_deleted): Call the Descriptor unconditionally.
4141         (hash_table::is_empty): Likewise.
4142         (hash_table::mark_deleted): Likewise.
4143         (hash_table::mark_empty): Likewise.
4144
4145 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4146
4147         * cgraph.h (asmname_hasher): Inherit from ggc_ptr_hash.  Remove
4148         redundant typedefs and members.
4149         * coverage.c (counts_entry): Inherit from pointer_hash.  Remove
4150         redundant typedefs.
4151         * dwarf2out.c (cu_hash_table_entry_hasher): Likewise.
4152         * ipa-devirt.c (odr_name_hasher): Likewise.
4153         (polymorphic_call_target_hasher): Likewise.
4154         * ira-costs.c (cost_classes_hasher): Likewise.
4155         * statistics.c (stats_counter_hasher): Likewise.
4156         * trans-mem.c (log_entry_hasher): Likewise.
4157         * tree-ssa-dom.c (expr_elt_hasher): Likewise.
4158         * tree-ssa-sccvn.c (vn_phi_hasher, vn_reference_hasher): Likewise.
4159         * tree-ssa-tail-merge.c (same_succ_def): Likewise.
4160         * var-tracking.c (variable_hasher): Likewise.
4161         * valtrack.h (dead_debug_hash_descr): Inherit from free_ptr_hash.
4162         Remove redundant typedefs and members.
4163
4164 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4165
4166         * hash-traits.h (ggc_cache_hasher): Rename to...
4167         (ggc_cache_remove): ...this and remove typedefs.
4168         (ggc_cache_ptr_hash): New class.
4169         * hash-table.h: Update commentary.
4170         * emit-rtl.c (const_int_hasher): Inherit from ggc_cache_ptr_hash
4171         rather than ggc_cache_hasher.
4172         (const_wide_int_hasher, reg_attr_hasher): Likewise.
4173         (const_double_hasher, const_fixed_hasher): Likewise.
4174         * function.c (insn_cache_hasher): Likewise.
4175         * trans-mem.c (tm_wrapper_hasher): Likewise.
4176         * tree.h (tree_decl_map_cache_hasher): Likewise.
4177         * tree.c (type_cache_hasher, int_cst_hasher): Likewise.
4178         (cl_option_hasher, tree_vec_map_cache_hasher): Likewise.
4179         * ubsan.c (tree_type_map_cache_hasher): Likewise.
4180         * varasm.c (tm_clone_hasher): Likewise.
4181         * config/i386/i386.c (dllimport_hasher): Likewise.
4182         * config/nvptx/nvptx.c (declared_libfunc_hasher): Likewise.
4183         (tree_hasher): Likewise.
4184
4185 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4186
4187         * hash-traits.h (ggc_hasher): Rename to...
4188         (ggc_remover): ...this and remove typedefs.
4189         (ggc_cache_hasher): Update accordingly.  Add typedefs.
4190         (ggc_ptr_hash): New class.
4191         * hash-table.h: Update comment.
4192         * cfgloop.h (loop_exit_hasher): Inherit from ggc_ptr_hash rather than
4193         ggc_hasher.
4194         * cgraph.h (section_name_hasher, cgraph_edge_hasher): Likewise.
4195         (tree_descriptor_hasher): Likewise.
4196         * cgraph.c (function_version_hasher): Likewise.
4197         * dwarf2out.c (indirect_string_hasher, dwarf_file_hasher): Likewise.
4198         (decl_die_hasher, block_die_hasher, decl_loc_hasher): Likewise.
4199         (dw_loc_list_hasher, addr_hasher): Likewise.
4200         * function.h (used_type_hasher): Likewise.
4201         * function.c (temp_address_hasher): Likewise.
4202         * gimple-ssa.h (tm_restart_hasher, ssa_name_hasher): Likewise.
4203         * libfuncs.h (libfunc_hasher): Likewise.
4204         * lto-streamer.h (decl_state_hasher): Likewise.
4205         * optabs.c (libfunc_decl_hasher): Likewise.
4206         * tree-scalar-evolution.c (scev_info_hasher): Likewise.
4207         * varasm.c (section_hasher, object_block_hasher): Likewise.
4208         (const_rtx_desc_hasher): Likewise.
4209         * config/darwin.c (indirection_hasher, cfstring_hasher): Likewise.
4210         * config/rs6000/rs6000.c (toc_hasher, builtin_hasher): Likewise.
4211
4212 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4213
4214         * hash-traits.h (free_ptr_hash): New class.
4215         * dwarf2out.c (decl_table_entry_hasher): Inherit from free_ptr_hash
4216         rather than typed_free_remove.  Remove redudant typedefs.
4217         (external_ref_hasher): Likewise.
4218         * except.c (action_record_hasher, ttypes_filter_hasher): Likewise.
4219         (ehspec_hasher): Likewise.
4220         * ggc-common.c (saving_hasher): Likewise.
4221         * gimplify.c (gimplify_hasher): Likewise.
4222         * haifa-sched.c (delay_i2_hasher): Likewise.
4223         * loop-invariant.c (invariant_expr_hasher): Likewise.
4224         * loop-iv.c (biv_entry_hasher): Likewise.
4225         * loop-unroll.c (iv_split_hasher, var_expand_hasher): Likewise.
4226         * trans-mem.c (tm_mem_map_hasher, tm_memop_hasher): Likewise.
4227         * tree-cfg.c (locus_discrim_hasher): Likewise.
4228         * tree-eh.c (finally_tree_hasher): Likewise.
4229         * tree-into-ssa.c (var_info_hasher): Likewise.
4230         * tree-parloops.c (reduction_hasher, name_to_copy_hasher): Likewise.
4231         * tree-ssa-loop-ivopts.c (iv_inv_expr_hasher): Likewise.
4232         * tree-ssa-phiopt.c (ssa_names_hasher): Likewise.
4233         * tree-ssa-pre.c (expr_pred_trans_d): Likewise.
4234         * tree-ssa-sccvn.c (vn_constant_hasher): Likewise.
4235         * tree-ssa-structalias.c (equiv_class_hasher): Likewise.
4236         (shared_bitmap_hasher): Likewise.
4237         * tree-ssa-threadupdate.c (redirection_data): Likewise.
4238         * tree-vectorizer.h (peel_info_hasher): Likewise.
4239         * tree-vectorizer.c (simduid_to_vf, simd_array_to_simduid): Likewise.
4240         * config/mips/mips.c (mips_lo_sum_offset_hasher): Likewise.
4241
4242 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4243
4244         * hash-table.h: Update comments.
4245         * hash-traits.h (pointer_hash): Don't inherit from typed_noop_remove.
4246         (nofree_ptr_hash): New class.
4247         * asan.c (asan_mem_ref_hasher): Inherit from nofree_ptr_hash rather
4248         than typed_noop_remove.  Remove redudant typedefs.
4249         * attribs.c (attribute_hasher): Likewise.
4250         * cfg.c (bb_copy_hasher): Likewise.
4251         * cselib.c (cselib_hasher): Likewise.
4252         * dse.c (invariant_group_base_hasher): Likewise.
4253         * dwarf2cfi.c (trace_info_hasher): Likewise.
4254         * dwarf2out.c (macinfo_entry_hasher): Likewise.
4255         (comdat_type_hasher, loc_list_hasher): Likewise.
4256         * gcse.c (pre_ldst_expr_hasher): Likewise.
4257         * genmatch.c (id_base): Likewise.
4258         * genrecog.c (test_pattern_hasher): Likewise.
4259         * gimple-ssa-strength-reduction.c (cand_chain_hasher): Likewise.
4260         * haifa-sched.c (delay_i1_hasher): Likewise.
4261         * hard-reg-set.h (simplifiable_subregs_hasher): Likewise.
4262         * ipa-icf.h (congruence_class_group_hash): Likewise.
4263         * ipa-profile.c (histogram_hash): Likewise.
4264         * ira-color.c (allocno_hard_regs_hasher): Likewise.
4265         * lto-streamer.h (string_slot_hasher): Likewise.
4266         * lto-streamer.c (tree_entry_hasher): Likewise.
4267         * plugin.c (event_hasher): Likewise.
4268         * postreload-gcse.c (expr_hasher): Likewise.
4269         * store-motion.c (st_expr_hasher): Likewise.
4270         * tree-sra.c (uid_decl_hasher): Likewise.
4271         * tree-ssa-coalesce.c (coalesce_pair_hasher): Likewise.
4272         (ssa_name_var_hash): Likewise.
4273         * tree-ssa-live.c (tree_int_map_hasher): Likewise.
4274         * tree-ssa-loop-im.c (mem_ref_hasher): Likewise.
4275         * tree-ssa-pre.c (pre_expr_d): Likewise.
4276         * tree-ssa-sccvn.c (vn_nary_op_hasher): Likewise.
4277         * vtable-verify.h (registration_hasher): Likewise.
4278         * vtable-verify.c (vtbl_map_hasher): Likewise.
4279         * config/arm/arm.c (libcall_hasher): Likewise.
4280         * config/i386/winnt.c (wrapped_symbol_hasher): Likewise.
4281         * config/ia64/ia64.c (bundle_state_hasher): Likewise.
4282         * config/sol2.c (comdat_entry_hasher): Likewise.
4283         * fold-const.c (fold): Use nofree_ptr_hash instead of pointer_hash.
4284         (print_fold_checksum, fold_checksum_tree): Likewise.
4285         (debug_fold_checksum, fold_build1_stat_loc): Likewise.
4286         (fold_build2_stat_loc, fold_build3_stat_loc): Likewise.
4287         (fold_build_call_array_loc): Likewise.
4288         * tree-ssa-ccp.c (gimple_htab): Likewise.
4289         * tree-browser.c (tree_upper_hasher): Inherit from nofree_ptr_hash
4290         rather than pointer_type.
4291
4292 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4293
4294         * hash-traits.h (pointer_hash::mark_deleted, pointer_hash::mark_empty)
4295         (pointer_hash::is_deleted, pointer_hash::is_empty): New functions.
4296
4297 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4298
4299         * hash-traits.h (ggc_hasher::remove): Take a reference parameter.
4300         (ggc_hasher::ggc_mx): Likewise.
4301         (ggc_cache_hasher): Inherit from ggc_hasher.  Remove definitions
4302         that duplicate ggc_hasher ones.
4303
4304 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4305
4306         * hash-table.h (hash_table): Add gt_cleare_cache as a friend.
4307         (gt_cleare_cache): Check here for deleted and empty entries.
4308         Replace handle_cache_entry with a call to keep_cache_entry.
4309         * hash-traits.h (ggc_cache_hasher::handle_cache_entry): Delete.
4310         (ggc_cache_hasher::keep_cache_entry): New function.
4311         * trans-mem.c (tm_wrapper_hasher::handle_cache_entry): Delete.
4312         (tm_wrapper_hasher::keep_cache_entry): New function.
4313         * tree.h (tree_decl_map_cache_hasher::handle_cache_entry): Delete.
4314         (tree_vec_map_cache_hasher::keep_cache_entry): New function.
4315         * tree.c (type_cache_hasher::handle_cache_entry): Delete.
4316         (type_cache_hasher::keep_cache_entry): New function.
4317         (tree_vec_map_cache_hasher::handle_cache_entry): Delete.
4318         (tree_vec_map_cache_hasher::keep_cache_entry): New function.
4319         * ubsan.c (tree_type_map_cache_hasher::handle_cache_entry): Delete.
4320         (tree_type_map_cache_hasher::keep_cache_entry): New function.
4321         * varasm.c (tm_clone_hasher::handle_cache_entry): Delete.
4322         (tm_clone_hasher::keep_cache_entry): New function.
4323         * config/i386/i386.c (dllimport_hasher::handle_cache_entry): Delete.
4324         (dllimport_hasher::keep_cache_entry): New function.
4325
4326 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4327
4328         * hash-table.h: Include hash-traits.h.
4329         (typed_free_remove, typed_noop_remove, pointer_hash, ggc_hasher)
4330         (ggc_cache_hasher): Move to...
4331         * hash-traits.h: ...this new file.
4332
4333 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
4334
4335         * tree-core.h (struct tree_optimization_option): Make opts a pointer to
4336         struct cl_optimization.
4337         * tree.h (TREE_OPTIMIZATION): Return the pointer, not the address of it.
4338         * tree.c (make_node_stat): Allocate cl_optimization struct.
4339         (copy_node_stat): Allocate and copy cl_optimization struct.
4340
4341 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
4342
4343         * function.h (struct incoming_args): Move struct.
4344         (pass_by_reference, reference_callee_copied): Remove prototypes.
4345         * emit-rtl.h (struct incoming_args): Relocate struct here.
4346         * calls.h (pass_by_reference, reference_callee_copied): Relocate
4347         prototypes here.
4348         * function.c (pass_by_reference, reference_callee_copied): Move.
4349         * calls.c (pass_by_reference, reference_callee_copied): Relocate here.
4350         * cfgloop.h: Don't include tm.h or hard-reg-set.h.
4351         * ipa-chkp.c: Include calls.h.
4352
4353 2015-06-25  Andrew Macleod  <amacleod@redhat.com>
4354
4355         * alias.h (alias_set_type): Move typedef.
4356         * coretypes.h (alias_set_type): Relocate typedef here.
4357         * rtl.h: Don't include alias.h.
4358
4359 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
4360
4361         * cgraph.h (cgraph_rtl_info): Move to rtl.h
4362         (cgraph_node): Maintain pointer to struct cgraph_rtl_info instead of
4363         and instance.
4364         * rtl.h (struct cgraph_rtl_info): Define when HARD_REG_SET available.
4365         * cgraph.c (cgraph_node::rtl_info): Allocate cgraph_rtl_info if one
4366         doesn't exist.
4367         * calls.c: Include hard-reg-set.h before rtl.h.
4368         * ira.c: Likewise.
4369
4370 2015-06-25  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
4371             Vladimir Makarov  <vmakarov@redhat.com>
4372
4373         * ira-color.c (assign_hard_reg): Remove unecessary bitmap check.
4374         Add assert.
4375
4376 2015-06-25  Richard Biener  <rguenther@suse.de>
4377
4378         * fold-const.c (fold_binary_loc): Move simplification of
4379         (X <<>> C1) & C2 ...
4380         * match.pd: ... here.
4381
4382 2015-06-25  Eric Botcazou  <ebotcazou@adacore.com>
4383
4384         * lto-streamer-out.c (DFS::hash_scc): Fix typos & formatting glitches.
4385
4386 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4387
4388         * match.pd: Add patterns for vec_conds between 1 and 0.
4389
4390 2015-06-25  Richard Biener  <rguenther@suse.de>
4391
4392         * tree-vect-stmts.c (vectorizable_conversion): Do not set
4393         STMT_VINFO_VEC_STMT for SLP.
4394         (vectorizable_store): Likewise.
4395         (vectorizable_load): Likewise.
4396         (vect_transform_stmt): Catch SLP vectorization clobbering
4397         STMT_VINFO_VEC_STMT.
4398
4399 2015-06-25  Richard Biener  <rguenther@suse.de>
4400
4401         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Improve debug
4402         dumping.
4403         (vect_create_mask_and_perm): Do not set STMT_VINFO_VEC_STMT and
4404         cleanup resulting dead code and parameters.
4405         (vect_transform_slp_perm_load): Adjust.
4406
4407 2015-06-25  Nick Clifton  <nickc@redhat.com>
4408
4409         * config/bfin/bfin.c (bfin_expand_prologue): Set
4410         current_function_static_stack_size if flag_stack_usage_info is set.
4411         * config/ft32/ft32.c (ft32_expand_prologue): Likewise.
4412         * config/h8300/h8300.c (h8300_expand_prologue): Likewise.
4413         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
4414         * config/m32c/m32c.c (m32c_emit_prologue): Likewise.
4415
4416 2015-06-25  Tom de Vries  <tom@codesourcery.com>
4417
4418         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Don't claim in header
4419         comment that the generated IV is unsigned.
4420
4421 2015-06-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4422
4423         PR target/29693
4424         * config/arm/arm.c (arm_dbx_register_number): Return
4425         DWARF_FRAME_REGISTERS by default.
4426
4427 2015-06-25  Tom de Vries  <tom@codesourcery.com>
4428
4429         * dominance.c (calculate_dominance_info): Fix verify_dominators call
4430         argument.  Call verify_dominator when reusing dominator info.
4431
4432 2015-06-24  Kaz Kojima  <kkojima@gcc.gnu.org>
4433
4434         PR target/66563
4435         * config/sh/sh.md (GOTaddr2picreg): Add a new operand for
4436         an additional element of the unspec vector.  Modify indices
4437         of operands.
4438         (builtin_setjmp_receiver): Pass const0_rtx to gen_GOTaddr2picreg.
4439         * config/sh/sh.c (prepare_move_operands): Pass incremented
4440         const_int to gen_GOTaddr2picreg.
4441         (sh_expand_prologue): Pass const0_rtx to gen_GOTaddr2picreg.
4442
4443 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
4444
4445         * config/aarch64/aarch64.md (<optab><fcvt_target><GPF:mode>2):
4446         Condition on TARGET_FLOAT.
4447
4448 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
4449
4450         * doc/invoke.texi: Clarify AArch64 feature modifiers (no)fp, (no)simd
4451         and (no)crypto.
4452
4453 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
4454
4455         * config/aarch64/aarch64-protos.h (aarch64_err_no_fpadvsimd): New.
4456
4457         * config/aarch64/aarch64.md (mov<mode>/GPF, movtf): Use
4458         aarch64_err_no_fpadvsimd.
4459
4460         * config/aarch64/aarch64.c (aarch64_err_no_fpadvsimd): New.
4461         (aarch64_layout_arg, aarch64_init_cumulative_args): Use
4462         aarch64_err_no_fpadvsimd if !TARGET_FLOAT and we need FP regs.
4463         (aarch64_expand_builtin_va_start, aarch64_setup_incoming_varargs):
4464         Turn error into assert, test TARGET_FLOAT.
4465         (aarch64_gimplify_va_arg_expr): Use aarch64_err_no_fpadvsimd, test
4466         TARGET_FLOAT.
4467
4468 2015-06-24  Aldy Hernandez  <aldyh@redhat.com>
4469
4470         PR debug/66482
4471         * dwarf2out.c (gen_formal_parameter_die): Remove assert.
4472
4473 2015-06-24  Ilya Enkovich  <enkovich.gnu@gmail.com>
4474
4475         * tree-vect-slp.c (vect_build_slp_tree_1): Init vectype.
4476
4477 2015-06-24 Renlin Li <renlin.li@arm.com>
4478
4479         * config/aarch64/aarch64.h(TARGET_CPU_CPP_BUILTINS): Add
4480         __ARM_ALIGN_MAX_PWR, __ARM_ALIGN_MAX_STACK_PWR.
4481
4482 2015-06-24  Richard Biener  <rguenther@suse.de>
4483
4484         * genmatch.c (enum tree_code): Add VIEW_CONVERT[012].
4485         (main): Likewise.
4486         (lower_opt_convert): Support lowering of conditional view_convert.
4487         (parser::parse_operation): Likewise.
4488         (parser::parse_for): Likewise.
4489
4490 2015-06-24  Renlin Li  <renlin.li@arm.com>
4491
4492         * varasm.c (emit_local): Use unsigned int for align variable.
4493
4494 2015-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4495
4496         PR target/63408
4497         * config/arm/arm.c (vfp3_const_double_for_fract_bits): Disable
4498         for negative numbers.
4499
4500 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4501
4502         PR rtl-optimization/66306
4503         * reload.c (find_reloads): Swap the match_dup info for
4504         commutative operands.
4505
4506 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4507
4508         * config/s390/vx-builtins.md
4509         ("vec_scatter_element<mode>_<non_vec_int>")
4510         ("vec_scatter_element<V_HW_64:mode>_SI"): Replace gf mode
4511         attribute with bhfgq.
4512
4513 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4514
4515         * config/s390/s390-builtins.def: Fix vpopct instruction comments.
4516
4517 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4518
4519         * config/s390/s390-builtin-types.def: Add flag to indicate the
4520         options under which the function type is needed.
4521         * config/s390/s390-builtins.def: Add flag to indicate the options
4522         under which the builtin is enabled.
4523         * config/s390/s390-builtins.h: Add flags parameter to macro
4524         definitions.
4525         (bflags_for_builtin): New function.
4526         (flags_for_builtin): Renamed to ...
4527         (opflags_for_builtin): ... this.
4528         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Rename
4529         flags_for_builtin to bflags_for_builtin and
4530         flags_overloaded_builtin_var to opflags_overloaded_builtin_var.
4531         * config/s390/s390.c: Add initialization of bflags_builtin and
4532         opflags_builtin arrays.
4533         Remove code for flags_builtin.
4534         (s390_init_builtins): Only create builtin function types if one of
4535         their flags is active.
4536         Only create builtins if all of their flags are active.
4537         (s390_expand_builtin): Rename flags_for_builtin to
4538         opflags_for_builtin.
4539
4540 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4541
4542         * config/s390/vecintrin.h: Remove internal builtins.
4543
4544 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4545
4546         * config/s390/s390.c (s390_secondary_reload): Fix check for
4547         GENERAL_REGS register class.
4548
4549 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4550
4551         * config/s390/s390.c (s390_support_vector_misalignment): Call
4552         default implementation for !TARGET_VX.
4553
4554 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4555
4556         * config/s390/s390.c (s390_legitimate_constant_p): Add
4557         TARGET_VX check.
4558
4559 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4560
4561         * config/s390/s390.c (s390_vector_abi): New variable definition.
4562         (s390_check_type_for_vector_abi): New function.
4563         (TARGET_ASM_FILE_END): New macro definition.
4564         (s390_asm_file_end): New function.
4565         (s390_function_arg): Call s390_check_type_for_vector_abi.
4566         (s390_gimplify_va_arg): Likewise.
4567         * configure: Regenerate.
4568         * configure.ac: Check for .gnu_attribute Binutils feature.
4569
4570 2015-06-23  Chen Gang  <gang.chen.5i5j@gmail.com>
4571
4572         PR target/65803
4573         * config/bfin/bfin.c (hwloop_optimize): Initialize
4574         JUMP_LABEL for newly created jump.
4575
4576 2015-06-23  Tristan Gingold  <gingold@adacore.com>
4577
4578         * collect-utils.c (collect_wait): Unlink the response file here
4579         instead of...
4580         (do_wait): ...here.
4581         (utils_cleanup): ...and here.
4582
4583 2015-06-23  Richard Sandiford  <richard.sandiford@arm.com>
4584
4585         * df-scan.c: Don't include target-def.h.
4586         * targhooks.c: Likewise.
4587         * config/arm/arm-c.c: Likewise.
4588         * config/i386/i386-c.c: Likewise.
4589         * config/nds32/nds32-cost.c: Likewise.
4590         * config/nds32/nds32-fp-as-gp.c: Likewise.
4591         * config/nds32/nds32-intrinsic.c: Likewise.
4592         * config/nds32/nds32-isr.c: Likewise.
4593         * config/nds32/nds32-md-auxiliary.c: Likewise.
4594         * config/nds32/nds32-memory-manipulation.c: Likewise.
4595         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
4596         * config/nds32/nds32-predicates.c: Likewise.
4597
4598 2015-06-23  Richard Biener  <rguenther@suse.de>
4599
4600         PR tree-optimization/66636
4601         * tree-vect-stmts.c (vectorizable_store): Properly compute the
4602         def type for further defs for strided stores.
4603
4604 2015-06-23  Nathan Sidwell  <nathan@codesourcery.com>
4605
4606         * config/nvptx/nvptx.md (sel_true<mode>, sel_false<mode>): New
4607         conditional selects.
4608         (setcc_int<mode>, setcc_float<mode>): Reformat.
4609
4610 2015-06-23  Marek Polacek  <polacek@redhat.com>
4611
4612         * match.pd ((x + y) - (x | y) -> x & y,
4613         (x + y) - (x & y) -> x | y): New patterns.
4614
4615 2015-06-23  Ludovic Courtès  <ludo@gnu.org>
4616
4617         PR 65711
4618         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Move
4619         '-dynamic-linker' within %{!shared: ...}.
4620
4621 2015-06-23  Uros Bizjak  <ubizjak@gmail.com>
4622
4623         PR target/66560
4624         * config/i386/predicates.md (addsub_vm_operator): New predicate.
4625         (addsub_vs_operator): Ditto.
4626         (addsub_vs_parallel): Ditto.
4627         * config/i386/sse.md (ssedoublemode): Add V4SF and V2DF modes.
4628         (avx_addsubv4df3, avx_addsubv8sf3, sse3_addsubv2df3, sse3_addsubv4sf3):
4629         Put minus RTX before plus and adjust vec_merge selector.
4630         (*avx_addsubv4df3_1, *avx_addsubv4df3_1s, *sse3_addsubv2df3_1)
4631         (*sse_addsubv2df3_1s, *avx_addsubv8sf3_1, *avx_addsubv8sf3_1s)
4632         (*sse3_addsubv4sf3_1, *sse_addsubv4sf3_1s): Remove insn patterns.
4633         (addsub vec_merge splitters): New combiner splitters.
4634         (addsub vec_select/vec_concat splitters): Ditto.
4635
4636 2015-06-23  Bin Cheng  <bin.cheng@arm.com>
4637
4638         PR tree-optimization/66449
4639         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Use
4640         POINTER_PLUS_EXPR for pointers.
4641
4642 2015-06-23  Alan Modra  <amodra@gmail.com>
4643
4644         * rtlanal.c (commutative_operand_precedence): Correct comments.
4645         * simplify-rtx.c (simplify_plus_minus_op_data_cmp): Delete forward
4646         declaration.  Return an int.  Distinguish REG,REG return from
4647         others.
4648         (struct simplify_plus_minus_op_data): Make local to function.
4649         (simplify_plus_minus): Don't set canonicalized if merely sorting
4650         registers.  Avoid packing ops if nothing changes.  White space fixes.
4651
4652 2015-06-22  Pierre-Marie de Rodat  <derodat@adacore.com>
4653
4654         * gcc.c (default_compilers): Pass "-o %g.s" to cc1 for headers even if
4655         -fdump-ada-spec is passed but not if -fsyntax-only is.
4656
4657 2015-06-22  Vladimir Makarov  <vmakarov@redhat.com>
4658
4659         PR bootstrap/63740
4660         * lra-lives.c (process_bb_lives): Check insn copying the same
4661         reload pseudo and don't create a copy for it.
4662
4663 2015-06-22  Tom de Vries  <tom@codesourcery.com>
4664
4665         * tree-parloops.c (transform_to_exit_first_loop_alt): Add update_stmt
4666         for cond_stmt.
4667
4668 2015-06-22  Tom de Vries  <tom@codesourcery.com>
4669
4670         * builtins.def (DEF_GOMP_BUILTIN): Test
4671         'flag_tree_parallelize_loops > 1' instead of
4672         'flag_tree_parallelize_loops'.  Test flag_cilkplus.
4673
4674 2015-06-22  Tom de Vries  <tom@codesourcery.com>
4675
4676         * dominance.c (calculate_dominance_info): Verify dominators if
4677         early-out.
4678
4679 2015-06-22  Marek Polacek  <polacek@redhat.com>
4680
4681         * match.pd ((x ^ y) ^ (x | y) -> x & y,
4682         (x & y) + (x ^ y) -> x | y, (x & y) | (x ^ y) -> x | y,
4683         (x & y) ^ (x ^ y) -> x | y, (x & y) + (x | y) -> x + y,
4684         (x | y) - (x ^ y) -> x & y, (x | y) - (x & y) -> x ^ y): New patterns.
4685
4686 2015-06-22  Uros Bizjak  <ubizjak@gmail.com>
4687
4688         PR target/65871
4689         * config/i386/i386.c (ix86_rtx_costs) <case COMPARE>: Ignore the
4690         cost of embedded comparison.
4691
4692 2015-06-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4693
4694         PR target/65914
4695         * config/rs6000/predicates.md (altivec_register_operand): Permit
4696         virtual stack registers.
4697         (vsx_register_operand): Likewise.
4698         (vfloat_operand): Likewise.
4699         (vint_operand): Likewise.
4700         (vlogical_operand): Likewise.
4701
4702 2015-06-22  Richard Biener  <rguenther@suse.de>
4703
4704         * tree-vectorizer.h (_loop_vec_info): Add scalar_cost_vec
4705         and single_scalar_iteration_cost members.
4706         (LOOP_VINFO_SCALAR_ITERATION_COST): New.
4707         (LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST): Likewise.
4708         (vect_get_single_scalar_iteration_cost): Remove.
4709         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
4710         Use LOOP_VINFO_SCALAR_ITERATION_COST.
4711         * tree-vect-loop.c (destroy_loop_vec_info): Free
4712         scalar_cost_vec.
4713         (vect_get_single_scalar_iteration_cost): Compute result into
4714         LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST and
4715         LOOP_VINFO_SCALAR_ITERATION_COST.  Make static.
4716         (vect_analyze_loop_2): Call vect_get_single_scalar_iteration_cost.
4717         (vect_estimate_min_profitable_iters): Use them.
4718
4719 2015-06-22  Christian Bruel  <christian.bruel@st.com>
4720
4721         PR target/52144
4722         * config/arm/arm.c (add_attribute, arm_insert_attributes): New functions
4723         (TARGET_INSERT_ATTRIBUTES): Define.
4724         (thumb_flipper): New var.
4725         * config/arm/arm.opt (-mflip-thumb): New switch.
4726
4727 2015-06-22  Jan Hubicka  <hubicka@ucw.cz>
4728             Martin Liska  <mliska@suse.cz>
4729
4730         PR ipa/65908
4731         * ipa-icf.c (sem_item::target_supports_symbol_aliases): Remove
4732         construction of arg_types.
4733         (sem_function::sem_function): Likewise.
4734         (sem_function::~sem_function): Remove destruction of arg_types.
4735         (sem_function::compatible_parm_types_p): New function.
4736         (sem_function::equals_wpa): Reorg matching of return values
4737         and parameter types.
4738         (sem_function::equals_private): Reorg mathcing of argument types.
4739         (sem_function::parse_tree_args): Remove.
4740         * ipa-icf.h (init_wpa): Do not call it.
4741         (parse_tree_args): Remove.
4742         (compatible_parm_types_p): Declare.
4743         (result_type): Remove.
4744         (arg_types): Remove.
4745
4746 2015-06-22  Jan Hubicka  <hubicka@ucw.cz>
4747
4748         PR ipa/66351
4749         * ipa-polymorphic-call.c
4750         (ipa_polymorphic_call_context::get_dynamic_type): Fix thinko when
4751         initializing alias oracle; fix formating; set base_alias_set if it
4752         is known.
4753
4754 2015-06-22  Mikhail Maltsev  <maltsevm@gmail.com>
4755
4756         * auto-inc-dec.c (reverse_mem, reverse_inc): Remove.
4757         (parse_add_or_inc): Use std::swap instead of reverse_{mem,inc}.
4758         (find_inc): Likewise.
4759         * combine.c (combine_simplify_rtx): Use std::swap instead of manually
4760         swapping.
4761         * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
4762         * df-scan.c (df_swap_refs): Remove.
4763         (df_sort_and_compress_refs): Use std::swap instead of df_swap_refs.
4764         * dominance.c (link_roots): Use std::swap instead of manually swapping.
4765         * expr.c (expand_expr_real_2, do_store_flag): Likewise.
4766         * fold-const.c (fold_relational_const): Likewise.
4767         * genattrtab.c (simplify_test_exp): Likewise.
4768         * gimple-match-head.c (gimple_resimplify2, gimple_resimplify3,
4769         gimple_simplify): Likewise.
4770         * ifcvt.c (noce_try_abs, find_if_header): Likewise.
4771         * internal-fn.c (expand_addsub_overflow, expand_mul_overflow): Likewise.
4772         * ipa-devirt.c (add_type_duplicate): Likewise.
4773         * loop-iv.c (get_biv_step_1, iv_number_of_iterations): Likewise.
4774         * lra-lives.c (lra_setup_reload_pseudo_preferenced_hard_reg): Likewise.
4775         * lra.c (lra_create_copy): Likewise.
4776         * lto-streamer-out.c (DFS::DFS): Likewise.
4777         * modulo-sched.c (get_sched_window): Likewise.
4778         * omega.c (omega_pretty_print_problem): Likewise.
4779         * optabs.c (prepare_float_lib_cmp, expand_mult_highpart): Likewise.
4780         * reload1.c (reloads_unique_chain_p): Likewise.
4781         * sel-sched-ir.c (exchange_lv_sets, exchange_av_sets): Remove.
4782         (exchange_data_sets): Move logic from exchange_{av,lv}_sets here and
4783         use std::swap.
4784         * simplify-rtx.c (simplify_unary_operation_1): Use std::swap instead of
4785         manually swapping.
4786         * tree-if-conv.c (is_cond_scalar_reduction, predicate_scalar_phi,
4787         predicate_mem_writes): Likewise.
4788         * tree-loop-distribution.c (pg_add_dependence_edges): Likewise.
4789         * tree-predcom.c (combine_chains): Likewise.
4790         * tree-ssa-alias.c (nonoverlapping_component_refs_p,
4791         refs_may_alias_p_1): Likewise.
4792         * tree-ssa-ifcombine.c (recognize_if_then_else): Likewise.
4793         * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
4794         * tree-ssa-loop-niter.c (refine_bounds_using_guard,
4795         number_of_iterations_cond): Likewise.
4796         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
4797         * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
4798         * tree-vect-slp.c (vect_build_slp_tree): Likewise.
4799         * tree-vect-stmts.c (supportable_widening_operation): Likewise.
4800         * tree-vrp.c (extract_range_from_binary_expr_1,
4801         extract_range_from_unary_expr_1): Likewise.
4802
4803 2015-06-20  Marek Polacek  <polacek@redhat.com>
4804
4805         * common.opt (fsanitize-undefined-trap-on-error): Add Driver.
4806
4807 2015-06-19  Kaz Kojima  <kkojima@gcc.gnu.org>
4808
4809         PR target/66591
4810         * config/sh/sh.c (prepare_move_operands): Replace subreg
4811         index term with R0 for base and index addressing.
4812
4813 2015-06-19  Jim Wilson  <jim.wilson@linaro.org>
4814
4815         * config/aarch64/aarch64.md (mov<mode>:GPF): Don't call force_reg if
4816         op1 is an fp zero.
4817         (movsf_aarch64): Change condition from register_operand to
4818         aarch64_reg_or_fp_zero for op1.  Change type for alternative 6 to
4819         load1.  Change type for alternative 7 to store1.
4820         (movdf_aarch64): Likewise.
4821
4822 2015-06-19  James Greenhalgh  <james.greenhalgh@arm.com>
4823
4824         * config/vax/vax.md: Adjust sign/zero extend patterns to
4825         handle SUBREGs in operands[1].
4826
4827 2015-06-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4828
4829         * config/i386/i386.c (ix86_function_versions): Use std::swap instead
4830         of manually swapping.
4831         (expand_vec_perm_interleave2): Likewise.
4832
4833 2015-06-19  Ilya Enkovich  <enkovich.gnu@gmail.com>
4834
4835         * tree-chkp.c (chkp_compute_bounds_for_assignment): Don't
4836         reuse bounds created for abnormal ssa names.
4837
4838 2015-06-19  Jakub Jelinek  <jakub@redhat.com>
4839
4840         * config/nvptx/nvptx.md (allocate_stack): Rename to...
4841         (allocate_stack_<mode>): ... this, and add :P on both
4842         match_operand and unspec.
4843         (allocate_stack): New expander.
4844
4845 2015-06-19  Christian Bruel  <christian.bruel@st.com>
4846
4847         PR target/66541
4848         PR target/52144
4849         * config/arm/arm.c (arm_set_current_function): Handle
4850         explicit default options.
4851
4852 2015-06-18  Uros Bizjak  <ubizjak@gmail.com>
4853
4854         * config/i386/i386.md (*movsicc_noc_zext): New insn.
4855         (zero-extended cmove with mem peephole2): New pattern.
4856         (cmove with mem peephole2): Merge patterns.
4857
4858 2015-06-18  Segher Boessenkool  <segher@kernel.crashing.org>
4859
4860         * config/rs6000/rs6000.h (WORD_REGISTER_OPERATIONS): Delete.
4861
4862 2015-06-18  Steve Ellcey  <sellcey@imgtec.com>
4863
4864         * config/mips/mips.c (mips_rtx_costs): Remove HONOR_NAN check.
4865         * config/mips/mips.md (*madd4<mode>): Ditto.
4866         (*nmadd3<mode>) Ditto.
4867         (*nmadd4<mode>_fastmath): Ditto.
4868         (*nmadd3<mode>_fastmath): Ditto.
4869         (*nmsub4<mode>): Ditto.
4870         (*nmsub3<mode>): Ditto.
4871         (*nmsub4<mode>_fastmath): Ditto.
4872         (*nmsub3<mode>_fastmath): Ditto.
4873
4874 2015-06-18  Michael Matz  <matz@suse.de>
4875
4876         PR middle-end/66253
4877         * tree-vect-stmts.c (vectorizable_store): Implement non-SLP
4878         grouped strided stores.
4879         (vectorizable_load): Don't use the DR from first_stmt in
4880         the non-SLP grouped strided case.
4881
4882 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
4883
4884         PR target/66569
4885         * function.c (assign_bounds): Add arguments assign_regs,
4886         assign_special, assign_bt.
4887         (assign_parms): For vararg functions handle bounds in BT
4888         and special slots after incoming vararg bounds.
4889
4890 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
4891
4892         PR middle-end/66568
4893         * cfgexpand.c (expand_return): Handle missing bounds.
4894         (expand_gimple_stmt_1): Likewise.
4895         * tree-chkp.c (chkp_expand_zero_bounds): New.
4896         * tree-chkp.h (chkp_expand_zero_bounds): New.
4897
4898 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
4899
4900         PR middle-end/66567
4901         * ipa-chkp.c (chkp_maybe_create_clone): Require
4902         functions to be instrumentable.
4903         * tree-chkp.c (chkp_replace_function_pointer): Use
4904         chkp_instrumentable_p instead of attribute check.
4905
4906 2015-06-18  Richard Biener  <rguenther@suse.de>
4907
4908         PR tree-optimization/66510
4909         * tree-vect-stmts.c (vectorizable_load): Properly compute the
4910         number of vector loads for SLP permuted loads.
4911         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Also
4912         check the stride for loop vectorization.
4913         (vect_enhance_data_refs_alignment): Deal with SLP adjusted
4914         vectorization factor.
4915         (vect_analyze_group_access): If the group size is not a power
4916         of two require a epilogue loop.
4917         * tree-vect-loop.c (vect_analyze_loop_2): Move alignment
4918         compute and optimizing and alias test pruning after final
4919         vectorization factor computation.
4920         * tree-vect-slp.c (vect_build_slp_tree_1): Remove check on
4921         vector alignment.
4922         (vect_transform_slp_perm_load): Properly compute the original
4923         number of vector load stmts.
4924
4925 2015-06-18  Uros Bizjak  <ubizjak@gmail.com>
4926
4927         * doc/invoke.texi (-fsanitize-sections): Split @var to avoid
4928         "unlikely character , in @var" warning.
4929
4930 2015-06-17  Uros Bizjak  <ubizjak@gmail.com>
4931
4932         * config/i386/i386.c (ix86_function_arg): Nest TARGET_64BIT code.
4933         (ix86_function_arg_advance): Ditto.
4934         (ix86_pass_by_reference): Ditto.  Rewrite MS_ABI part.
4935
4936 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
4937
4938         * function.h (struct rtl_data): Remove struct and accessor macros.
4939         * emit-rtl.h (struct rtl_data): Relocate to here.
4940         * Makefile.in (GTFILES): Add emit-rtl.h.
4941         * df-core.c: Include emit-rtl.h.
4942         * genattrtab.c: Likewise.
4943         * genconditions.c: Likewise.
4944         * genpreds.c: Likewise.
4945         * genrecog.c: Likewise.
4946         * regcprop.c: Likewise.
4947         * resource.c: Likewise.
4948         * sched-rgn.c: Likewise.
4949         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
4950         * config/i386/winnt.c: Likewise.
4951
4952 2015-06-17  Jakub Jelinek  <jakub@redhat.com>
4953
4954         PR middle-end/66429
4955         * omp-low.c (expand_omp_taskreg, expand_omp_target): Use child_cfun
4956         instead of DECL_STRUCT_FUNCTION (child_fn).  Or in has_simduid_loops
4957         and has_force_vectorize_loops flags from cfun into
4958         child_cfun.
4959         (expand_omp_simd): For broken loop, set cfun->has_simduid_loops
4960         if simduid is non-NULL.
4961         * tree-pass.h (make_pass_simduid_cleanup): New prototype.
4962         * passes.def (pass_simduid_cleanup): Add new pass after loop
4963         passes.
4964         * tree-vectorizer.c (adjust_simduid_builtins): Remove one unnecessary
4965         indirection from htab argument's type.
4966         (shrink_simd_arrays): New function.
4967         (vectorize_loops): Use it.  Adjust adjust_simduid_builtins caller.
4968         Don't call adjust_simduid_builtins if there are no loops.
4969         (pass_data_simduid_cleanup, pass_simduid_cleanup): New variables.
4970         (pass_simduid_cleanup::execute): New method.
4971         (make_pass_simduid_cleanup): New function.
4972
4973 2017-06-17  Andrew MacLeod  <amacleod@redhat.com>
4974
4975         * tree-core.h (tree_target_option): Make opts field a pointer to a
4976         cl_target_option instead of an instance of the struct.
4977         * tree.h (TREE_TARGET_OPTION): Return the pointer, not an address of
4978         the structure.
4979         * tree.c (make_node_stat ): Allocate a cl_target_option struct for
4980         TARGET_OPTION_NODE.
4981         (copy_node_stat): Allocate and copy struct cl_target_option.
4982
4983 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
4984
4985         * tree.h (merge_dllimport_decl_attributes, handle_dll_attribute):
4986         Remove conditional exposure of prototypes.
4987         (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Delete.
4988         * tree.c (anon_aggrname_format, anon_aggrname_p): New.  Replace macro
4989         definitions in tree.h with functions.
4990         * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Use
4991         anon_aggrname_p.
4992         * tree-streamer-out.c (write_ts_decl_minimal_tree_pointers): Likewise.
4993
4994 2015-06-17  Segher Boessenkool  <segher@kernel.crashing.org>
4995
4996         * config/rs6000/rs6000.md (*cmp<mode>_internal1): Rename to...
4997         (*cmp<mode>_signed): ... this.
4998         (*cmpsi_internal2, *cmpdi_internal2): Merge, rename to...
4999         (*cmp<mode>_unsigned): ... this.  Remove %b.
5000
5001 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
5002
5003         * coretypes.h: Include input.h and as-a.h.
5004         * rtl.h: Include input.h and as-a.h for generator files.
5005         * hwint.c: Include coretypes.h, don't include diagnostic-core.h.
5006         * vec.c: Don't include diagnostic-core.h.
5007         * alias.c: Do not include input.h, line-map.h or is-a.h.
5008         * asan.c: Likewise.
5009         * attribs.c: Likewise.
5010         * auto-inc-dec.c: Likewise.
5011         * auto-profile.c: Likewise.
5012         * bb-reorder.c: Likewise.
5013         * bt-load.c: Likewise.
5014         * builtins.c: Likewise.
5015         * caller-save.c: Likewise.
5016         * calls.c: Likewise.
5017         * ccmp.c: Likewise.
5018         * cfg.c: Likewise.
5019         * cfganal.c: Likewise.
5020         * cfgbuild.c: Likewise.
5021         * cfgcleanup.c: Likewise.
5022         * cfgexpand.c: Likewise.
5023         * cfghooks.c: Likewise.
5024         * cfgloop.c: Likewise.
5025         * cfgloop.h: Likewise.
5026         * cfgloopanal.c: Likewise.
5027         * cfgloopmanip.c: Likewise.
5028         * cfgrtl.c: Likewise.
5029         * cgraph.c: Likewise.
5030         * cgraphbuild.c: Likewise.
5031         * cgraphclones.c: Likewise.
5032         * cgraphunit.c: Likewise.
5033         * cilk-common.c: Likewise.
5034         * combine-stack-adj.c: Likewise.
5035         * combine.c: Likewise.
5036         * compare-elim.c: Likewise.
5037         * convert.c: Likewise.
5038         * coverage.c: Likewise.
5039         * cppbuiltin.c: Likewise.
5040         * cprop.c: Likewise.
5041         * cse.c: Likewise.
5042         * cselib.c: Likewise.
5043         * data-streamer-in.c: Likewise.
5044         * data-streamer-out.c: Likewise.
5045         * data-streamer.c: Likewise.
5046         * dbxout.c: Likewise.
5047         * dce.c: Likewise.
5048         * ddg.c: Likewise.
5049         * debug.c: Likewise.
5050         * df-core.c: Likewise.
5051         * df-problems.c: Likewise.
5052         * df-scan.c: Likewise.
5053         * df.h: Likewise.
5054         * dfp.c: Likewise.
5055         * diagnostic-core.h: Likewise.
5056         * diagnostic.c: Likewise.
5057         * dojump.c: Likewise.
5058         * dominance.c: Likewise.
5059         * domwalk.c: Likewise.
5060         * double-int.c: Likewise.
5061         * dse.c: Likewise.
5062         * dumpfile.c: Likewise.
5063         * dumpfile.h: Likewise.
5064         * dwarf2asm.c: Likewise.
5065         * dwarf2cfi.c: Likewise.
5066         * dwarf2out.c: Likewise.
5067         * emit-rtl.c: Likewise.
5068         * et-forest.c: Likewise.
5069         * except.c: Likewise.
5070         * explow.c: Likewise.
5071         * expmed.c: Likewise.
5072         * expr.c: Likewise.
5073         * final.c: Likewise.
5074         * fixed-value.c: Likewise.
5075         * fold-const.c: Likewise.
5076         * function.c: Likewise.
5077         * fwprop.c: Likewise.
5078         * gcc-plugin.h: Likewise.
5079         * gcse.c: Likewise.
5080         * generic-match-head.c: Likewise.
5081         * ggc-page.c: Likewise.
5082         * gimple-builder.c: Likewise.
5083         * gimple-expr.c: Likewise.
5084         * gimple-fold.c: Likewise.
5085         * gimple-iterator.c: Likewise.
5086         * gimple-low.c: Likewise.
5087         * gimple-match-head.c: Likewise.
5088         * gimple-pretty-print.c: Likewise.
5089         * gimple-ssa-isolate-paths.c: Likewise.
5090         * gimple-ssa-strength-reduction.c: Likewise.
5091         * gimple-streamer-in.c: Likewise.
5092         * gimple-streamer-out.c: Likewise.
5093         * gimple-streamer.h: Likewise.
5094         * gimple-walk.c: Likewise.
5095         * gimple.c: Likewise.
5096         * gimplify-me.c: Likewise.
5097         * gimplify.c: Likewise.
5098         * godump.c: Likewise.
5099         * graph.c: Likewise.
5100         * graphite-blocking.c: Likewise.
5101         * graphite-dependences.c: Likewise.
5102         * graphite-interchange.c: Likewise.
5103         * graphite-isl-ast-to-gimple.c: Likewise.
5104         * graphite-optimize-isl.c: Likewise.
5105         * graphite-poly.c: Likewise.
5106         * graphite-scop-detection.c: Likewise.
5107         * graphite-sese-to-poly.c: Likewise.
5108         * graphite.c: Likewise.
5109         * haifa-sched.c: Likewise.
5110         * hw-doloop.c: Likewise.
5111         * ifcvt.c: Likewise.
5112         * init-regs.c: Likewise.
5113         * input.c: Likewise.
5114         * internal-fn.c: Likewise.
5115         * ipa-chkp.c: Likewise.
5116         * ipa-comdats.c: Likewise.
5117         * ipa-cp.c: Likewise.
5118         * ipa-devirt.c: Likewise.
5119         * ipa-icf-gimple.c: Likewise.
5120         * ipa-icf.c: Likewise.
5121         * ipa-inline-analysis.c: Likewise.
5122         * ipa-inline-transform.c: Likewise.
5123         * ipa-inline.c: Likewise.
5124         * ipa-polymorphic-call.c: Likewise.
5125         * ipa-profile.c: Likewise.
5126         * ipa-prop.c: Likewise.
5127         * ipa-pure-const.c: Likewise.
5128         * ipa-ref.c: Likewise.
5129         * ipa-reference.c: Likewise.
5130         * ipa-split.c: Likewise.
5131         * ipa-utils.c: Likewise.
5132         * ipa-visibility.c: Likewise.
5133         * ipa.c: Likewise.
5134         * ira-build.c: Likewise.
5135         * ira-color.c: Likewise.
5136         * ira-conflicts.c: Likewise.
5137         * ira-costs.c: Likewise.
5138         * ira-emit.c: Likewise.
5139         * ira-lives.c: Likewise.
5140         * ira.c: Likewise.
5141         * jump.c: Likewise.
5142         * langhooks.c: Likewise.
5143         * lcm.c: Likewise.
5144         * loop-doloop.c: Likewise.
5145         * loop-init.c: Likewise.
5146         * loop-invariant.c: Likewise.
5147         * loop-iv.c: Likewise.
5148         * loop-unroll.c: Likewise.
5149         * lower-subreg.c: Likewise.
5150         * lra-assigns.c: Likewise.
5151         * lra-coalesce.c: Likewise.
5152         * lra-constraints.c: Likewise.
5153         * lra-eliminations.c: Likewise.
5154         * lra-lives.c: Likewise.
5155         * lra-remat.c: Likewise.
5156         * lra-spills.c: Likewise.
5157         * lra.c: Likewise.
5158         * lto-cgraph.c: Likewise.
5159         * lto-compress.c: Likewise.
5160         * lto-opts.c: Likewise.
5161         * lto-section-in.c: Likewise.
5162         * lto-section-out.c: Likewise.
5163         * lto-streamer-in.c: Likewise.
5164         * lto-streamer-out.c: Likewise.
5165         * lto-streamer.c: Likewise.
5166         * mcf.c: Likewise.
5167         * mode-switching.c: Likewise.
5168         * modulo-sched.c: Likewise.
5169         * omega.c: Likewise.
5170         * omp-low.c: Likewise.
5171         * optabs.c: Likewise.
5172         * opts-global.c: Likewise.
5173         * opts.h: Likewise.
5174         * passes.c: Likewise.
5175         * plugin.c: Likewise.
5176         * postreload-gcse.c: Likewise.
5177         * postreload.c: Likewise.
5178         * predict.c: Likewise.
5179         * pretty-print.h: Likewise.
5180         * print-rtl.c: Likewise.
5181         * print-tree.c: Likewise.
5182         * profile.c: Likewise.
5183         * real.c: Likewise.
5184         * realmpfr.c: Likewise.
5185         * recog.c: Likewise.
5186         * ree.c: Likewise.
5187         * reg-stack.c: Likewise.
5188         * regcprop.c: Likewise.
5189         * reginfo.c: Likewise.
5190         * regrename.c: Likewise.
5191         * regstat.c: Likewise.
5192         * reload.c: Likewise.
5193         * reload1.c: Likewise.
5194         * reorg.c: Likewise.
5195         * resource.c: Likewise.
5196         * rtl-chkp.c: Likewise.
5197         * rtl-error.c: Likewise.
5198         * rtlanal.c: Likewise.
5199         * rtlhooks.c: Likewise.
5200         * sanopt.c: Likewise.
5201         * sched-deps.c: Likewise.
5202         * sched-ebb.c: Likewise.
5203         * sched-rgn.c: Likewise.
5204         * sched-vis.c: Likewise.
5205         * sdbout.c: Likewise.
5206         * sel-sched-dump.c: Likewise.
5207         * sel-sched-ir.c: Likewise.
5208         * sel-sched.c: Likewise.
5209         * sese.c: Likewise.
5210         * shrink-wrap.c: Likewise.
5211         * simplify-rtx.c: Likewise.
5212         * stack-ptr-mod.c: Likewise.
5213         * statistics.c: Likewise.
5214         * stmt.c: Likewise.
5215         * stor-layout.c: Likewise.
5216         * store-motion.c: Likewise.
5217         * streamer-hooks.c: Likewise.
5218         * stringpool.c: Likewise.
5219         * symtab.c: Likewise.
5220         * target-globals.c: Likewise.
5221         * targhooks.c: Likewise.
5222         * toplev.c: Likewise.
5223         * tracer.c: Likewise.
5224         * trans-mem.c: Likewise.
5225         * tree-affine.c: Likewise.
5226         * tree-browser.c: Likewise.
5227         * tree-call-cdce.c: Likewise.
5228         * tree-cfg.c: Likewise.
5229         * tree-cfgcleanup.c: Likewise.
5230         * tree-chkp-opt.c: Likewise.
5231         * tree-chkp.c: Likewise.
5232         * tree-chrec.c: Likewise.
5233         * tree-complex.c: Likewise.
5234         * tree-data-ref.c: Likewise.
5235         * tree-dfa.c: Likewise.
5236         * tree-diagnostic.c: Likewise.
5237         * tree-dump.c: Likewise.
5238         * tree-eh.c: Likewise.
5239         * tree-emutls.c: Likewise.
5240         * tree-if-conv.c: Likewise.
5241         * tree-inline.c: Likewise.
5242         * tree-into-ssa.c: Likewise.
5243         * tree-iterator.c: Likewise.
5244         * tree-loop-distribution.c: Likewise.
5245         * tree-nested.c: Likewise.
5246         * tree-nrv.c: Likewise.
5247         * tree-object-size.c: Likewise.
5248         * tree-outof-ssa.c: Likewise.
5249         * tree-parloops.c: Likewise.
5250         * tree-phinodes.c: Likewise.
5251         * tree-predcom.c: Likewise.
5252         * tree-pretty-print.c: Likewise.
5253         * tree-profile.c: Likewise.
5254         * tree-scalar-evolution.c: Likewise.
5255         * tree-sra.c: Likewise.
5256         * tree-ssa-address.c: Likewise.
5257         * tree-ssa-alias.c: Likewise.
5258         * tree-ssa-ccp.c: Likewise.
5259         * tree-ssa-coalesce.c: Likewise.
5260         * tree-ssa-copy.c: Likewise.
5261         * tree-ssa-copyrename.c: Likewise.
5262         * tree-ssa-dce.c: Likewise.
5263         * tree-ssa-dom.c: Likewise.
5264         * tree-ssa-dse.c: Likewise.
5265         * tree-ssa-forwprop.c: Likewise.
5266         * tree-ssa-ifcombine.c: Likewise.
5267         * tree-ssa-live.c: Likewise.
5268         * tree-ssa-loop-ch.c: Likewise.
5269         * tree-ssa-loop-im.c: Likewise.
5270         * tree-ssa-loop-ivcanon.c: Likewise.
5271         * tree-ssa-loop-ivopts.c: Likewise.
5272         * tree-ssa-loop-manip.c: Likewise.
5273         * tree-ssa-loop-niter.c: Likewise.
5274         * tree-ssa-loop-prefetch.c: Likewise.
5275         * tree-ssa-loop-unswitch.c: Likewise.
5276         * tree-ssa-loop.c: Likewise.
5277         * tree-ssa-math-opts.c: Likewise.
5278         * tree-ssa-operands.c: Likewise.
5279         * tree-ssa-phiopt.c: Likewise.
5280         * tree-ssa-phiprop.c: Likewise.
5281         * tree-ssa-pre.c: Likewise.
5282         * tree-ssa-propagate.c: Likewise.
5283         * tree-ssa-reassoc.c: Likewise.
5284         * tree-ssa-sccvn.c: Likewise.
5285         * tree-ssa-scopedtables.c: Likewise.
5286         * tree-ssa-sink.c: Likewise.
5287         * tree-ssa-strlen.c: Likewise.
5288         * tree-ssa-structalias.c: Likewise.
5289         * tree-ssa-tail-merge.c: Likewise.
5290         * tree-ssa-ter.c: Likewise.
5291         * tree-ssa-threadedge.c: Likewise.
5292         * tree-ssa-threadupdate.c: Likewise.
5293         * tree-ssa-uncprop.c: Likewise.
5294         * tree-ssa-uninit.c: Likewise.
5295         * tree-ssa.c: Likewise.
5296         * tree-ssanames.c: Likewise.
5297         * tree-stdarg.c: Likewise.
5298         * tree-streamer-in.c: Likewise.
5299         * tree-streamer-out.c: Likewise.
5300         * tree-streamer.c: Likewise.
5301         * tree-switch-conversion.c: Likewise.
5302         * tree-tailcall.c: Likewise.
5303         * tree-vect-data-refs.c: Likewise.
5304         * tree-vect-generic.c: Likewise.
5305         * tree-vect-loop-manip.c: Likewise.
5306         * tree-vect-loop.c: Likewise.
5307         * tree-vect-patterns.c: Likewise.
5308         * tree-vect-slp.c: Likewise.
5309         * tree-vect-stmts.c: Likewise.
5310         * tree-vectorizer.c: Likewise.
5311         * tree-vrp.c: Likewise.
5312         * tree.c: Likewise.
5313         * tsan.c: Likewise.
5314         * ubsan.c: Likewise.
5315         * valtrack.c: Likewise.
5316         * value-prof.c: Likewise.
5317         * var-tracking.c: Likewise.
5318         * varasm.c: Likewise.
5319         * varpool.c: Likewise.
5320         * vmsdbgout.c: Likewise.
5321         * vtable-verify.c: Likewise.
5322         * web.c: Likewise.
5323         * wide-int.cc: Likewise.
5324         * xcoffout.c: Likewise.
5325         * common/common-target.h: Do not include input.h, line-map.h or is-a.h.
5326         * common/common-targhooks.c: Likewise.
5327         * config/aarch64/aarch64-builtins.c: Likewise.
5328         * config/aarch64/aarch64.c: Likewise.
5329         * config/alpha/alpha.c: Likewise.
5330         * config/arc/arc.c: Likewise.
5331         * config/arm/aarch-common.c: Likewise.
5332         * config/arm/arm-builtins.c: Likewise.
5333         * config/arm/arm-c.c: Likewise.
5334         * config/arm/arm.c: Likewise.
5335         * config/avr/avr-c.c: Likewise.
5336         * config/avr/avr-log.c: Likewise.
5337         * config/avr/avr.c: Likewise.
5338         * config/bfin/bfin.c: Likewise.
5339         * config/c6x/c6x.c: Likewise.
5340         * config/cr16/cr16.c: Likewise.
5341         * config/cris/cris.c: Likewise.
5342         * config/darwin-c.c: Likewise.
5343         * config/darwin.c: Likewise.
5344         * config/default-c.c: Likewise.
5345         * config/epiphany/epiphany.c: Likewise.
5346         * config/epiphany/mode-switch-use.c: Likewise.
5347         * config/epiphany/resolve-sw-modes.c: Likewise.
5348         * config/fr30/fr30.c: Likewise.
5349         * config/frv/frv.c: Likewise.
5350         * config/ft32/ft32.c: Likewise.
5351         * config/glibc-c.c: Likewise.
5352         * config/h8300/h8300.c: Likewise.
5353         * config/i386/i386-c.c: Likewise.
5354         * config/i386/i386.c: Likewise.
5355         * config/i386/msformat-c.c: Likewise.
5356         * config/i386/winnt-cxx.c: Likewise.
5357         * config/i386/winnt-stubs.c: Likewise.
5358         * config/i386/winnt.c: Likewise.
5359         * config/ia64/ia64-c.c: Likewise.
5360         * config/ia64/ia64.c: Likewise.
5361         * config/iq2000/iq2000.c: Likewise.
5362         * config/lm32/lm32.c: Likewise.
5363         * config/m32c/m32c-pragma.c: Likewise.
5364         * config/m32c/m32c.c: Likewise.
5365         * config/m32r/m32r.c: Likewise.
5366         * config/m68k/m68k.c: Likewise.
5367         * config/mcore/mcore.c: Likewise.
5368         * config/mep/mep-pragma.c: Likewise.
5369         * config/mep/mep.c: Likewise.
5370         * config/microblaze/microblaze-c.c: Likewise.
5371         * config/microblaze/microblaze.c: Likewise.
5372         * config/mips/mips.c: Likewise.
5373         * config/mmix/mmix.c: Likewise.
5374         * config/mn10300/mn10300.c: Likewise.
5375         * config/moxie/moxie.c: Likewise.
5376         * config/msp430/msp430-c.c: Likewise.
5377         * config/msp430/msp430.c: Likewise.
5378         * config/nds32/nds32-cost.c: Likewise.
5379         * config/nds32/nds32-fp-as-gp.c: Likewise.
5380         * config/nds32/nds32-intrinsic.c: Likewise.
5381         * config/nds32/nds32-isr.c: Likewise.
5382         * config/nds32/nds32-md-auxiliary.c: Likewise.
5383         * config/nds32/nds32-memory-manipulation.c: Likewise.
5384         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
5385         * config/nds32/nds32-predicates.c: Likewise.
5386         * config/nds32/nds32.c: Likewise.
5387         * config/nios2/nios2.c: Likewise.
5388         * config/nvptx/nvptx.c: Likewise.
5389         * config/pa/pa.c: Likewise.
5390         * config/pdp11/pdp11.c: Likewise.
5391         * config/rl78/rl78-c.c: Likewise.
5392         * config/rl78/rl78.c: Likewise.
5393         * config/rs6000/rs6000-c.c: Likewise.
5394         * config/rs6000/rs6000.c: Likewise.
5395         * config/rx/rx.c: Likewise.
5396         * config/s390/s390-c.c: Likewise.
5397         * config/s390/s390.c: Likewise.
5398         * config/sh/sh-c.c: Likewise.
5399         * config/sh/sh-mem.cc: Likewise.
5400         * config/sh/sh.c: Likewise.
5401         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
5402         * config/sh/sh_treg_combine.cc: Likewise.
5403         * config/sol2-c.c: Likewise.
5404         * config/sol2-cxx.c: Likewise.
5405         * config/sol2-stubs.c: Likewise.
5406         * config/sol2.c: Likewise.
5407         * config/sparc/sparc-c.c: Likewise.
5408         * config/sparc/sparc.c: Likewise.
5409         * config/spu/spu-c.c: Likewise.
5410         * config/spu/spu.c: Likewise.
5411         * config/stormy16/stormy16.c: Likewise.
5412         * config/tilegx/mul-tables.c: Likewise.
5413         * config/tilegx/tilegx-c.c: Likewise.
5414         * config/tilegx/tilegx.c: Likewise.
5415         * config/tilepro/mul-tables.c: Likewise.
5416         * config/tilepro/tilepro-c.c: Likewise.
5417         * config/tilepro/tilepro.c: Likewise.
5418         * config/v850/v850-c.c: Likewise.
5419         * config/v850/v850.c: Likewise.
5420         * config/vax/vax.c: Likewise.
5421         * config/visium/visium.c: Likewise.
5422         * config/vms/vms-c.c: Likewise.
5423         * config/vms/vms.c: Likewise.
5424         * config/vxworks.c: Likewise.
5425         * config/winnt-c.c: Likewise.
5426         * config/xtensa/xtensa.c: Likewise.
5427
5428 2015-06-17  Robert Suchanek  <robert.suchanek@imgtec.com>
5429
5430         * config/mips/mips.c (mips_ira_change_pseudo_allocno_class): New
5431         function.
5432         (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define macro.
5433
5434 2015-06-17  Richard Biener  <rguenther@suse.de>
5435
5436         PR tree-optimization/66251
5437         * tree-vect-stmts.c (vectorizable_store): Fix gathering of vectorized
5438         stmts for SLP strided stores.
5439
5440         Revert
5441         2015-05-22  Richard Biener  <rguenther@suse.de>
5442
5443         PR tree-optimization/66251
5444         * tree-vect-stmts.c (vectorizable_conversion): Properly
5445         set STMT_VINFO_VEC_STMT even for the SLP case.
5446
5447         2015-05-26  Michael Matz  <matz@suse.de>
5448
5449         PR middle-end/66251
5450         * tree-vect-stmts.c (vect_create_vectorized_demotion_stmts): Always set
5451         STMT_VINFO_VEC_STMT, also with SLP.
5452
5453 2015-06-16  Uros Bizjak  <ubizjak@gmail.com>
5454
5455         PR target/56766
5456         * config/i386/sse.md (*avx_addsubv4df3_1): New insn pattern.
5457         (*avx_addsubv4df3_1s): Ditto.
5458         (*sse3_addsubv2df3_1): Ditto.
5459         (*sse3_addsubv2df3_1s): Ditto.
5460         (*avx_addsubv8sf3_1): Ditto.
5461         (*avx_addsubv8sf3_1s): Ditto.
5462         (*sse3_addsubv4sf3_1): Ditto.
5463         (*sse3_addsubv4sf3_1s): Ditto.
5464
5465 2015-06-16  Steve Ellcey  <sellcey@imgtec.com>
5466
5467         * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): New.
5468         (SYSROOT_SUFFIX_SPEC): Update.
5469         (SYSROOT_HEADERS_SUFFIX_SPEC): New.
5470         (STARTFILE_PREFIX_SPEC): Update.
5471         * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Remove.
5472         (MULTILIB_REQUIRED): New.
5473         (MULTILIB_OSDIRNAMES): New.
5474         * config/mips/t-img-linux (MULTILIB_EXCEPTIONS): Remove.
5475         (MULTILIB_REQUIRED): New.
5476         (MULTILIB_OSDIRNAMES): New.
5477
5478 2015-06-16  Matthew Wahab  <matthew.wahab@arm.com>
5479
5480         * config/aarch64/aarch64-arches.def: Add "armv8.1-a".
5481         * config/aarch64/aarch64-options-extensions.def: Update "fP",
5482         "simd" and "crypto".  Add "lse", "pan", "lor" and "rdma".
5483         * gcc/config/aarch64/aarch64.h (AARCH64_FL_LSE): New.
5484         (AARCH64_FL_PAN): New.
5485         (AARCH64_FL_LOR): New.
5486         (AARCH64_FL_RDMA): New.
5487         (AARCH64_FL_FOR_ARCH8_1): New.
5488         * doc/invoke.texi (AArch64 Options): Add "armv8.1-a" to
5489         -march. Add "lse", "pan", "lor", "rdma" to feature modifiers.
5490
5491 2015-06-16  Martin Liska  <mliska@suse.cz>
5492
5493         * bitmap.c (dump_bitmap_statistics): Fix GNU coding style.
5494         * hash-table.c (void dump_hash_table_loc_statistics): Add missing
5495         guard.
5496
5497 2015-06-16  Richard Biener  <rguenther@suse.de>
5498
5499         * tree-vect-stmts.c (vectorizable_store): Adjust.
5500         (vectorizable_load): Likewise.
5501         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
5502         Simplify.
5503         (vect_create_data_ref_ptr): Likewise.
5504         (bump_vector_ptr): Adjust.
5505
5506 2015-06-16  Richard Biener  <rguenther@suse.de>
5507
5508         * tree-vect-stmts.c (vectorizable_load): Properly start loads
5509         with the first element if this is grouped loads.
5510
5511 2015-06-16  James Greenhalgh  <james.greenhalgh@arm.com>
5512
5513         * config/arm/arm-protos.h (struct tune_params): Rename
5514         log_op_non_sc to log_op_non_short_circuit, and rename enum
5515         values to expand SC to SHORT_CIRCUIT.
5516         * config/arm/arm.c (arm_slowmul_tune): Expand LOG_OP_NON_SC
5517         to LOG_OP_NON_SHORT_CIRCUIT.
5518         (arm_fastmul_tune):Likewise
5519         (arm_strongarm_tune): Likewise.
5520         (arm_xscale_tune): Likewise.
5521         (arm_9e_tune): Likewise.
5522         (arm_marvell_pj4_tune): Likewise.
5523         (arm_v6t2_tune): Likewise.
5524         (arm_cortex_tune): Likewise.
5525         (arm_cortex_a8_tune): Likewise.
5526         (arm_cortex_a7_tune): Likewise.
5527         (arm_cortex_a15_tune): Likewise.
5528         (arm_cortex_a53_tune): Likewise.
5529         (arm_cortex_a57_tune): Likewise.
5530         (arm_xgene1_tune): Likewise.
5531         (arm_cortex_a5_tune): Likewise.
5532         (arm_cortex_a9_tune): Likewise.
5533         (arm_cortex_a12_tune): Likewise.
5534         (arm_v7m_tune): Likewise.
5535         (arm_cortex_m7_tune): Likewise.
5536         (arm_v6m_tune): Likewise.
5537         (arm_fa726te_tune): Likewise.
5538
5539 2015-06-15  David Edelsohn  <dje.gcc@gmail.com>
5540
5541         * altivec.md: Delete UNSPEC_VMLADDUHM.
5542         (mulv4si3_p8): New pattern.
5543         (mulv4si3): Use it for POWER8.
5544         (mulv8hi3): Use vmladduhm with zero addend.
5545         (altivec_vmladduhm): Descriptive RTL.
5546
5547 2015-06-15  Jim Wilson  <jim.wilson@linaro.org>
5548
5549         * config/aarch64/aarch64.md (mov<mode>_aarch64): Change alternative 2
5550         to use neon_move instead of mov_imm.
5551         (movdi_aarch64): Change alternative 14 to use neon_move not fmov.
5552         (movtf_aarch64): Change alternative 4 to use neon_move_q not fconstd.
5553
5554         * config/aarch64/aarch64.c (aarch64_valid_floating_const): Move
5555         aarch64_float_const_zero_rtx_p check before TFmode check.
5556         * config/aarch64/aarch64.md (movtf): Don't call force_reg if op1 is
5557         an fp zero.
5558         (movtf_aarch64): Separate ?rY alternative into two.  Adjust assembly
5559         code and attributes to match.  Change condition from register_operand
5560         to aarch64_reg_or_fp_zero for op1.  Change type for ldp from
5561         neon_load1_2reg to load2.  Change type for stp from neon_store1_2reg
5562         to store2.
5563
5564 2015-06-15  Aldy Hernandez  <aldyh@redhat.com>
5565
5566         PR debug/66535
5567         * dwarf2out.c (gen_subprogram_die): Do not check a parent's tag if
5568         there is no parent.
5569
5570 2015-06-14  Shiva Chen  <shiva0217@gmail.com>
5571
5572         * aarch64.c (aarch64_simd_lane_bounds): Change %ld to %wd for
5573         HOST_WIDE_INT parameter.
5574
5575 2015-06-14  Jan Hubicka  <hubicka@ucw.cz>
5576
5577         PR ipa/66181
5578         * lto-streamer-out.c (hash_tree): Do not hash TYPE_NO_FORCE_BLK.
5579         * tree-streamer-out.c (pack_ts_type_common_value_fields): Do not stream
5580         TYPE_NO_FORCE_BLK.
5581         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Likewise.
5582
5583 2015-06-14  Richard Sandiford  <richard.sandiford@arm.com>
5584
5585         * rtl.h (classify_insn): Declare.
5586         * emit-rtl.c (classify_insn): Move to...
5587         * rtl.c: ...here and add generator support.
5588         * gensupport.h (get_emit_function, needs_barrier_p): Declare.
5589         * gensupport.c (get_emit_function, needs_barrier_p): New functions.
5590         * genemit.c (gen_emit_seq): New function.
5591         (gen_expand, gen_split): Use it.
5592
5593 2015-06-13  Patrick Palka  <ppalka@gcc.gnu.org>
5594
5595         * tree.c (make_vector_stat): Fix comment to state that the
5596         function returns a VECTOR_CST.
5597
5598 2015-06-13  Richard Sandiford  <richard.sandiford@arm.com>
5599
5600         * gensupport.h (add_implicit_parallel): Declare.
5601         * genrecog.c (add_implicit_parallel): Move to...
5602         * gensupport.c (add_implicit_parallel): ...here.
5603         (process_one_cond_exec): Use it.
5604         * genemit.c (gen_insn): Likewise.
5605
5606 2015-06-13  Iain Sandoe  <iain@codesourcery.com>
5607
5608         PR bootstrap/66448
5609         * passes.c (rest_of_decl_compilation): Do not register globals for
5610         early debug if they are declared in built-ins.
5611
5612 2015-06-12  Aldy Hernandez  <aldyh@redhat.com>
5613
5614         * dwarf2out.c (check_die): Protect with ENABLE_CHECKING.
5615
5616 2015-06-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5617
5618         * ifcvt.c (noce_try_store_flag_constants): Use std::swap instead of
5619         manually swapping.
5620         (noce_try_cmove_arith): Likewise.
5621         (noce_get_alt_condition): Likewise.
5622
5623 2015-06-12  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
5624
5625         * common/config/i386/i386-common.c
5626         (OPTION_MASK_ISA_MWAITX_SET): New.
5627         (ix86_handle_option): Handle mwaitx.
5628         * config.gcc (i[34567]86-*-*): Add mwaitxintrin.h,
5629         (x86_64-*-*): Likewise.
5630         * config/i386/mwaitxintrin.h: New header.
5631         * config/i386/cpuid.h (bit_MWAITX):  Define.
5632         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
5633         MWAITX support.
5634         * config/i386/i386.opt (mwaitx): New.
5635         * config/i386/i386-builtin-types.def
5636         (VOID_FTYPE_UNSIGNED_ UNSIGNED_UNSIGNED): New function type.
5637         * config/i386/i386-c.c: Define __MWAITX__ if needed.
5638         * config/i386/i386.c (ix86_target_string): Define -mmwaitx option.
5639         (PTA_MWAITX): New.
5640         (ix86_option_override_internal): Handle new option.
5641         (processor_alias_table): Added PTA_MWAITX.
5642         (ix86_valid_target_attribute_inner_p): Add OPT_mmwaitx.
5643         (ix86_builtins): Add IX86_BUILTIN_MWAITX, IX86_BUILTIN_MONITORX.
5644         (ix86_expand_builtin): Handle IX86_BUILTIN_MWAITX and
5645         IX86_BUILTIN_MONITORX  built-ins.
5646         * config/i386/i386.h (TARGET_MWAITX): New.
5647         * config/i386/i386.md (unspecv): Add UNSPEC_MWAITX and
5648         UNSPEC_MONITORX.
5649         (mwaitx):  New pattern.
5650         (monitorx_<mode>): New pattern.
5651         * config/i386/x86intrin.h: Include mwaitxintrin.h.
5652         * doc/extend.texi: Document monitorx and mwaitx builtins.
5653         * doc/invoke.texi: Document -mmwaitx option.
5654
5655 2015-06-12  Uros Bizjak  <ubizjak@gmail.com>
5656
5657         * emit-rtl.c (need_atomic_barrier_p): Mask model with
5658         MEMMODEL_BASE_MASK.  Remove MEMMODEL_SYNC_* cases.
5659
5660 2015-06-11  David Edelsohn  <dje.gcc@gmail.com>
5661
5662         * dbxout.c (xcoff_debug_hooks): Provide a function for
5663         register_main_translation_unit hook.
5664
5665 2015-06-11  David Edelsohn  <dje.gcc@gmail.com>
5666
5667         * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier): Remove SYNC
5668         variants cases from switch.
5669         (rs6000_post_atomic_barrier): Same.
5670         (rs6000_expand_atomic_compare_and_swap): Use memmodel_base.
5671         (rs6000_expand_atomic_exchange): Same.
5672         (rs6000_expand_atomic_op): Same.
5673         * config/rs6000/sync.md (mem_thread_fence): Use memodel_base. Remove
5674         SYNC variants cases from switch.
5675         (atomic_load): Same.
5676         (atomic_store): Same.
5677
5678 2015-06-11  John David Anglin  <danglin@gcc.gnu.org>
5679
5680         * config/pa/pa.c (pa_output_global_address): Handle LABEL_REF plus
5681         CONST_INT for goto.
5682
5683 2015-06-11  Aldy Hernandez  <aldyh@redhat.com>
5684
5685         PR bootstrap/66448
5686         * dwarf2out.c (check_die): Check for common duplicate attributes.
5687         (add_location_or_const_value_attribute): Do not add duplicate
5688         attributes.
5689         (gen_formal_parameter_die): Do not add DW_AT_artificial the second
5690         time around.
5691         (gen_struct_or_union_type_die): Bail early if TREE_ASM_WRITTEN.
5692         (gen_type_die_with_usage): Call check_die.
5693         (dwarf2out_decl): Only call check_die() when ENABLE_CHECKING.
5694
5695 2015-06-11  Jason Merrill  <jason@redhat.com>
5696
5697         * dwarf2out.c (prune_unused_types): Handle unused top-level limbo
5698         dies.
5699
5700 2015-06-11  Marek Polacek  <polacek@redhat.com>
5701
5702         * match.pd ((x & y) ^ (x | y)): Don't check for single_use.
5703
5704 2015-06-11  Eric Botcazou  <ebotcazou@adacore.com>
5705
5706         PR bootstrap/66252
5707         * config/sparc/sparc.c (hard_regno_mode_classes): Add ??? comment.
5708         * config/sparc/sparc.md (zero_extendsidi2_insn_sp32): Use single order.
5709         (*addx_extend_sp32): Fix pasto.
5710         (*subx_extend): Rename into...
5711         (*subx_extend_sp32): ...this.
5712         (*adddi3_extend_sp32): Add earlyclobber.
5713         (*subdi3_insn_sp32): Likewise.
5714         (*subdi3_extend_sp32): Likewise.
5715         (*and_not_di_sp32): Likewise.
5716         (*or_not_di_sp32): Likewise.
5717         (*xor_not_di_sp32): Likewise.
5718         (*negdi2_sp32): Likewise.
5719         (*one_cmpldi2_sp32): Likewise.
5720
5721 2015-06-11  Pierre-Marie de Rodat  <derodat@adacore.com>
5722
5723         * debug.h (struct gcc_debug_hooks): Add a
5724         register_main_translation_unit hook.
5725         * debug.c (do_nothing_debug_hooks): Provide a function for this
5726         new hook.
5727         * dbxout.c (dbx_debug_hooks): Likewise.
5728         * sdbout.c (sdb_debug_hooks): Likewise.
5729         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
5730         * dwarf2out.c (main_translation_unit): New global variable.
5731         (dwarf2out_register_main_translation_unit): New function
5732         implementing the new hook.
5733         (dwarf2_debug_hooks): Assign
5734         dwarf2out_register_main_translation_unit to this new hook.
5735         (dwarf2out_init): Associate any main translation unit to
5736         comp_unit_die ().
5737
5738 2015-06-11  Marek Polacek  <polacek@redhat.com>
5739
5740         * match.pd ((x & y) ^ (x | y) -> x ^ y): New pattern.
5741
5742 2015-06-11  Marek Polacek  <polacek@redhat.com>
5743
5744         * match.pd: Use single_use throughout.
5745
5746 2015-06-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5747
5748         * config/arm/arm.c (arm_option_params_internal): When optimising
5749         for speed set max_insns_skipped when arm_restrict_it.
5750
5751 2015-06-11  Christian Bruel  <christian.bruel@st.com>
5752
5753         PR target/52144
5754         * config/arm/arm-c.c (arm_cpu_cpp_builtins): Conditionally define
5755          macros in ...
5756         (arm_cpu_builtins): New function.
5757         (arm_pragma_target_parse): Call arm_cpu_builtins.
5758         * config/arm/arm-protos.h (arm_cpu_builtins): Declare.
5759         (arm_register_target_pragmas): Likewise.
5760         * config/arm/arm.h (REGISTER_TARGET_PRAGMAS):
5761          Call arm_register_target_pragmas.
5762         * config/arm/arm-c.c (arm_register_target_pragmas): New function.
5763         (arm_pragma_target_parse): Likewise.
5764
5765 2015-06-10  Kaz Kojima  <kkojima@gcc.gnu.org>
5766
5767         * config/sh/sh.md (tstsi_t): Add '?' modifier to 'r' alternative
5768         of the second operand.
5769
5770 2015-06-10  Uros Bizjak  <ubizjak@gmail.com>
5771
5772         PR target/66473
5773         * config/i386/i386.c (ix86_expand_vector_set): Use gen_int_mode
5774         to prepare mask operand for AVX512 modes.
5775
5776 2015-06-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
5777
5778         PR target/66474
5779         * doc/md.texi (Machine Constraints): Document that on the PowerPC
5780         if you use a constraint that targets a VSX register, you must use
5781         %x<n> in the template.
5782
5783 2015-06-10  Max Filippov  <jcmvbkbc@gmail.com>
5784
5785         * config/xtensa/xtensa.h (TARGET_DEBUG): New definition.
5786         * config/xtensa/xtensa.md (define_attr "type"): New type "trap".
5787         (define_insn "trap"): New definition.
5788
5789 2015-06-10  Richard Biener  <rguenther@suse.de>
5790
5791         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Split
5792         out from ...
5793         (vect_supported_load_permutation_p): ... here.  Handle
5794         supportable permutations in reductions.
5795         * tree-vect-stmts.c (vectorizable_load): Handle SLP permutations
5796         for vectorizing strided group loads.
5797
5798 2015-06-10  Jakub Jelinek  <jakub@redhat.com>
5799
5800         PR target/66470
5801         * config/i386/i386.c (ix86_split_long_move): For collisions
5802         involving direct tls segment refs, move the UNSPEC_TP possibly
5803         wrapped in ZERO_EXTEND out of the address for lea, to each of
5804         the memory loads.
5805
5806 2015-06-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5807
5808         * config/arm/sync.md (*memory_barrier): Use dmb ish instead of
5809         dmb sy. Adjust tabs.
5810
5811 2015-06-10  Tom de Vries  <tom@codesourcery.com>
5812
5813         * omp-low.c (expand_omp_target): Remove duplicate declaration of node.
5814
5815 2015-06-10  Martin Liska  <mliska@suse.cz>
5816
5817         PR bootstrap/66471
5818         * mem-stats-traits.h (enum mem_alloc_origin): Add _ORIGIN suffix for
5819         all enum values in mem_alloc_origin.
5820         * alloc-pool.c (dump_alloc_pool_statistics): Use newly changed enum
5821         name.
5822         * alloc-pool.h (pool_allocator::pool_allocator): Likewise.
5823         * bitmap.c (bitmap_register): Likewise.
5824         (dump_bitmap_statistics): Likewise.
5825         * ggc-common.c (dump_ggc_loc_statistics): Likewise.
5826         (ggc_record_overhead): Likewise.
5827         * hash-map.h: Likewise.
5828         * hash-set.h: Likewise.
5829         * hash-table.c (void dump_hash_table_loc_statistics): Likewise.
5830         * hash-table.h: Likewise.
5831         * vec.c (vec_prefix::register_overhead): Likewise.
5832         (vec_prefix::release_overhead): Likewise.
5833         (dump_vec_loc_statistics): Likewise.
5834
5835 2015-06-09  Christian Bruel  <christian.bruel@st.com>
5836
5837         PR target/52144
5838         * config/arm/arm.opt (THUMB, arm_restrict_it, inline_asm_unified): Save.
5839         * config/arm/arm-protos.h (arm_valid_target_attribute_tree): Declare.
5840         (arm_reset_previous_fndecl, arm_change_mode_p): Likewise.
5841         * config/arm/arm.h (SWITCHABLE_TARGET): Define.
5842         * config/arm/arm.c (arm_reset_previous_fndecl): New functions.
5843         (arm_valid_target_attribute_tree, arm_change_mode_p): Likewise.
5844         (arm_valid_target_attribute_p): Likewise.
5845         (arm_set_current_function, arm_can_inline_p): Likewise.
5846         (arm_valid_target_attribute_rec): Likewise.
5847         (arm_previous_fndecl): New variable.
5848         (TARGET_SET_CURRENT_FUNCTION, TARGET_OPTION_VALID_ATTRIBUTE_P): Define.
5849         (TARGET_CAN_INLINE_P): Define.
5850         (arm_asm_trampoline_template): Emit mode.
5851         (arm_file_start): Don't set unified syntax.
5852         (arm_declare_function_name): Set unified syntax and mode.
5853         (arm_option_override): Init target_option_default_node.
5854         and target_option_current_node.
5855         * config/arm/arm.md (*call_value_symbol): Set mode when possible.
5856         (*call_symbol): Likewise.
5857         * doc/extend.texi: Document ARM/Thumb target attribute.
5858         * doc/invoke.texi: Likewise.
5859
5860 2015-06-09  Alexandre Oliva <aoliva@redhat.com>
5861
5862         Revert:
5863         2015-06-09  Alexandre Oliva <aoliva@redhat.com>
5864         PR rtl-optimization/64164
5865         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
5866         * tree-ssa-copyrename.c: Removed.
5867         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
5868         -ftree-coalesce-vars.
5869         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
5870         * common.opt (ftree-copyrename): Ignore.
5871         (ftree-coalesce-inlined-vars): Likewise.
5872         * doc/invoke.texi: Remove the ignored options above.
5873         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
5874         * tree-ssa-coalesce.h: ... here.
5875         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
5876         headers required by it.
5877         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
5878         across variables when flag_tree_coalesce_vars.  Check register
5879         use and promoted modes to allow coalescing.  Moved to
5880         tree-ssa-coalesce.c.
5881         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
5882         with its member functions to tree-ssa-coalesce.c.
5883         (var_map_base_init): Likewise.  Renamed to
5884         compute_samebase_partition_bases.
5885         (partition_view_normal): Drop want_bases parameter.
5886         (partition_view_bitmap): Likewise.
5887         * tree-ssa-live.h: Adjust declarations.
5888         * tree-ssa-coalesce.c: Include explow.h.
5889         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
5890         default defs at the entry point.
5891         (dump_part_var_map): New.
5892         (compute_optimized_partition_bases): New, called by...
5893         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
5894         of compute_samebase_partition_bases.  Adjust.
5895         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
5896         * cfgexpand.c (leader_merge): New.
5897         (get_rtl_for_parm_ssa_default_def): New.
5898         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
5899         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
5900         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
5901         redundant MEM attr setting.
5902         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
5903         from...
5904         (expand_one_stack_var): ... this.  New wrapper to check and
5905         skip already expanded SSA partitions.
5906         (record_alignment_for_reg_var): New, factored out of...
5907         (expand_one_var): ... this.
5908         (expand_one_ssa_partition): New.
5909         (adjust_one_expanded_partition_var): New.
5910         (expand_one_register_var): Check and skip already expanded SSA
5911         partitions.
5912         (expand_used_vars): Don't create DECLs for anonymous SSA
5913         names.  Expand all SSA partitions, then adjust all SSA names.
5914         (pass::execute): Replace the loops that set
5915         SA.partition_to_pseudo from partition leaders and cleared
5916         DECL_RTL for multi-location variables, and that which used to
5917         rename vars and set attrs, with one that clears DECL_RTL and
5918         checks that PARMs and RESULTs default_defs match DECL_RTL.
5919         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
5920         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
5921         * explow.c (promote_ssa_mode): New.
5922         * explow.h (promote_ssa_mode): Declare.
5923         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
5924         * function.c: Include cfgexpand.h.
5925         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
5926         (use_register_for_parm_decl): Wrapper for the above to
5927         special-case the result_ptr.
5928         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
5929         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
5930         multiple locations.
5931         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
5932         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
5933         (assign_parm_setup_block): Prefer SSA-assigned location.
5934         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
5935         if stack_parm is NULL.
5936         (assign_parm_setup_stack): Prefer SSA-assigned location.
5937         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
5938         rtl before testing for pointer bounds.  Special-case result_ptr.
5939         (expand_function_start): Maybe reset DECL_RTL of result.
5940         Prefer SSA-assigned location for result and static chain.
5941         Factor out DECL_RESULT and SET_DECL_RTL.
5942         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
5943         anonymous SSA names.  Use promote_ssa_mode.
5944         (get_temp_reg): Likewise.
5945         (remove_ssa_form): Adjust.
5946         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
5947         and get its reg_usage for reg invalidation.
5948         (compute_bb_dataflow): Pass it insn.
5949         (emit_notes_in_bb): Likewise.
5950         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
5951         fail assert on conversion between unsigned types.
5952
5953 2015-06-09  Tom de Vries  <tom@codesourcery.com>
5954
5955         PR tree-optimization/65460
5956         * omp-low.c (expand_omp_target): Set parallelized_function on
5957         cgraph_node for child_fn.
5958
5959 2015-06-09  Tom de Vries  <tom@codesourcery.com>
5960
5961         * omp-low.c (finalize_task_copyfn, expand_omp_taskreg): Mark function
5962         parallelized_function before add_new_function.
5963
5964 2015-06-09  Andrew MacLeod  <amacleod@redhat.com>
5965
5966         * gcc-plugin.h: Move decls to plugin.h and include it.
5967         * plugin.h: Relocate decls from gcc-plugin.h
5968         * ggc-page.c: Include required header files.
5969         * passes.c: Likewise.
5970         * cgraphunit.c: Likewise.
5971
5972 2015-06-09  Tom de Vries  <tom@codesourcery.com>
5973
5974         * tree-stdarg.c (expand_ifn_va_arg_1): Handle location.
5975
5976 2015-06-09  Jason Merrill  <jason@redhat.com>
5977
5978         PR bootstrap/66448
5979         * toplev.c (check_global_declaration): Don't warn about a clone.
5980
5981 2015-06-09  Marek Polacek  <polacek@redhat.com>
5982
5983         PR tree-optimization/66299
5984         * match.pd ((CST1 << A) == CST2 -> A == ctz (CST2) - ctz (CST1)
5985         ((CST1 << A) != CST2 -> A != ctz (CST2) - ctz (CST1)): New
5986         patterns.
5987
5988 2015-06-09  Richard Biener  <rguenther@suse.de>
5989
5990         * tree-vect-slp.c (vect_build_slp_tree_1): Remove bailout on gaps.
5991         (vect_analyze_slp_instance): Instead do not falsely drop
5992         load permutations.
5993
5994 2015-06-09  Richard Biener  <rguenther@suse.de>
5995
5996         PR middle-end/66423
5997         * match.pd: Handle A % (unsigned)(1 << B).
5998
5999 2015-06-09  Aldy Hernandez  <aldyh@redhat.com>
6000
6001         * varasm.c (output_object_block_htab): Remove.
6002         (output_object_block_compare): New.
6003         (output_object_blocks): Sort named object_blocks before outputting
6004         them.
6005
6006 2015-06-09  Richard Biener  <rguenther@suse.de>
6007
6008         PR tree-optimization/66419
6009         * tree-vect-slp.c (vect_supported_load_permutation_p): Properly
6010         consider GROUP_GAP when detecting a perfect subchain.
6011
6012 2015-06-09  Nick Clifton  <nickc@redhat.com>
6013
6014         * config/rl78/rl78.c (rl78_select_section): When -mes0 is active
6015         place read only data in the .frodata section.
6016
6017 2015-06-09  Shiva Chen  <shiva0217@gmail.com>
6018
6019         * sync.md (atomic_load<mode>): Add conditional code for lda/ldr
6020         (atomic_store<mode>): Likewise.
6021
6022 2015-06-09  Richard Biener  <rguenther@suse.de>
6023
6024         * cfgloop.c (get_loop_body_in_bfs_order): Fix assert.
6025
6026 2015-06-09  Richard Biener  <rguenther@suse.de>
6027
6028         PR middle-end/66413
6029         * tree-inline.c (insert_init_debug_bind): Unshare value.
6030
6031 2015-06-09  Richard Biener  <rguenther@suse.de>
6032
6033         PR tree-optimization/66396
6034         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
6035         Rename virtual operands.
6036
6037 2015-06-09  Tom de Vries  <tom@codesourcery.com>
6038
6039         * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Don't
6040         always return false.
6041
6042 2015-06-09  Alexandre Oliva <aoliva@redhat.com>
6043
6044         PR rtl-optimization/64164
6045         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
6046         * tree-ssa-copyrename.c: Removed.
6047         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
6048         -ftree-coalesce-vars.
6049         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
6050         * common.opt (ftree-copyrename): Ignore.
6051         (ftree-coalesce-inlined-vars): Likewise.
6052         * doc/invoke.texi: Remove the ignored options above.
6053         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
6054         * tree-ssa-coalesce.h: ... here.
6055         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
6056         headers required by it.
6057         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
6058         across variables when flag_tree_coalesce_vars.  Check register
6059         use and promoted modes to allow coalescing.  Moved to
6060         tree-ssa-coalesce.c.
6061         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
6062         with its member functions to tree-ssa-coalesce.c.
6063         (var_map_base_init): Likewise.  Renamed to
6064         compute_samebase_partition_bases.
6065         (partition_view_normal): Drop want_bases parameter.
6066         (partition_view_bitmap): Likewise.
6067         * tree-ssa-live.h: Adjust declarations.
6068         * tree-ssa-coalesce.c: Include explow.h.
6069         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
6070         default defs at the entry point.
6071         (dump_part_var_map): New.
6072         (compute_optimized_partition_bases): New, called by...
6073         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
6074         of compute_samebase_partition_bases.  Adjust.
6075         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
6076         * cfgexpand.c (leader_merge): New.
6077         (get_rtl_for_parm_ssa_default_def): New.
6078         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
6079         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
6080         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
6081         redundant MEM attr setting.
6082         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
6083         from...
6084         (expand_one_stack_var): ... this.  New wrapper to check and
6085         skip already expanded SSA partitions.
6086         (record_alignment_for_reg_var): New, factored out of...
6087         (expand_one_var): ... this.
6088         (expand_one_ssa_partition): New.
6089         (adjust_one_expanded_partition_var): New.
6090         (expand_one_register_var): Check and skip already expanded SSA
6091         partitions.
6092         (expand_used_vars): Don't create DECLs for anonymous SSA
6093         names.  Expand all SSA partitions, then adjust all SSA names.
6094         (pass::execute): Replace the loops that set
6095         SA.partition_to_pseudo from partition leaders and cleared
6096         DECL_RTL for multi-location variables, and that which used to
6097         rename vars and set attrs, with one that clears DECL_RTL and
6098         checks that PARMs and RESULTs default_defs match DECL_RTL.
6099         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
6100         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
6101         * explow.c (promote_ssa_mode): New.
6102         * explow.h (promote_ssa_mode): Declare.
6103         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
6104         * function.c: Include cfgexpand.h.
6105         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
6106         (use_register_for_parm_decl): Wrapper for the above to
6107         special-case the result_ptr.
6108         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
6109         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
6110         multiple locations.
6111         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
6112         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
6113         (assign_parm_setup_block): Prefer SSA-assigned location.
6114         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
6115         if stack_parm is NULL.
6116         (assign_parm_setup_stack): Prefer SSA-assigned location.
6117         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
6118         rtl before testing for pointer bounds.  Special-case result_ptr.
6119         (expand_function_start): Maybe reset DECL_RTL of result.
6120         Prefer SSA-assigned location for result and static chain.
6121         Factor out DECL_RESULT and SET_DECL_RTL.
6122         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
6123         anonymous SSA names.  Use promote_ssa_mode.
6124         (get_temp_reg): Likewise.
6125         (remove_ssa_form): Adjust.
6126         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
6127         and get its reg_usage for reg invalidation.
6128         (compute_bb_dataflow): Pass it insn.
6129         (emit_notes_in_bb): Likewise.
6130         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
6131         fail assert on conversion between unsigned types.
6132
6133 2015-06-09  Alexandre Oliva <aoliva@redhat.com>
6134
6135         PR debug/58315
6136         * tree-inline.c (reset_debug_binding): New.
6137         (reset_debug_bindings): Likewise.
6138         (expand_call_inline): Call it.
6139
6140 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
6141
6142         * tree.c (gimple_canonical_types_compatible_p): Drop comparsion of
6143         TYPE_STRING_FLAG.
6144
6145 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
6146
6147         * lto-streamer-out.c (lto_output_location): Stream
6148         reserved locations correctly.
6149         * lto-streamer-in.c (lto_output_location): Likewise.
6150
6151 2015-06-08  Andrew MacLeod  <amacleod@redhat.com>
6152
6153         * coretypes.h: Include hash-table.h and hash-set.h for host files.
6154         * ggc.h: Don't include statistics.h>
6155         * hash-map.h: Remove all includes.
6156         * hash-set.h: Likewise.
6157         * hash-table.h: Add statistics.h, inchash.h and hash-map-traits.h to
6158         the include list. Remove <new>.
6159         * inchash.h: Remove all includes.
6160         * mem-stats.h: Likewise.
6161         * vec.h: No special processing for generators or ggc.
6162         * alias.c : Adjust include files.
6163         * alloc-pool.c : Likewise.
6164         * alloc-pool.h : Likewise.
6165         * asan.c : Likewise.
6166         * attribs.c : Likewise.
6167         * auto-inc-dec.c : Likewise.
6168         * auto-profile.c : Likewise.
6169         * bb-reorder.c : Likewise.
6170         * bitmap.c : Likewise.
6171         * bitmap.h : Likewise.
6172         * bt-load.c : Likewise.
6173         * builtins.c : Likewise.
6174         * caller-save.c : Likewise.
6175         * calls.c : Likewise.
6176         * ccmp.c : Likewise.
6177         * cfg.c : Likewise.
6178         * cfganal.c : Likewise.
6179         * cfgbuild.c : Likewise.
6180         * cfgcleanup.c : Likewise.
6181         * cfgexpand.c : Likewise.
6182         * cfghooks.c : Likewise.
6183         * cfgloop.c : Likewise.
6184         * cfgloop.h : Likewise.
6185         * cfgloopanal.c : Likewise.
6186         * cfgloopmanip.c : Likewise.
6187         * cfgrtl.c : Likewise.
6188         * cgraph.c : Likewise.
6189         * cgraphbuild.c : Likewise.
6190         * cgraphclones.c : Likewise.
6191         * cgraphunit.c : Likewise.
6192         * cilk-common.c : Likewise.
6193         * combine-stack-adj.c : Likewise.
6194         * combine.c : Likewise.
6195         * compare-elim.c : Likewise.
6196         * context.c : Likewise.
6197         * convert.c : Likewise.
6198         * coverage.c : Likewise.
6199         * cppbuiltin.c : Likewise.
6200         * cprop.c : Likewise.
6201         * cse.c : Likewise.
6202         * cselib.c : Likewise.
6203         * data-streamer-in.c : Likewise.
6204         * data-streamer-out.c : Likewise.
6205         * data-streamer.c : Likewise.
6206         * data-streamer.h : Likewise.
6207         * dbxout.c : Likewise.
6208         * dce.c : Likewise.
6209         * ddg.c : Likewise.
6210         * debug.c : Likewise.
6211         * df-core.c : Likewise.
6212         * df-problems.c : Likewise.
6213         * df-scan.c : Likewise.
6214         * df.h : Likewise.
6215         * dfp.c : Likewise.
6216         * dojump.c : Likewise.
6217         * dominance.c : Likewise.
6218         * domwalk.c : Likewise.
6219         * double-int.c : Likewise.
6220         * dse.c : Likewise.
6221         * dumpfile.c : Likewise.
6222         * dwarf2asm.c : Likewise.
6223         * dwarf2cfi.c : Likewise.
6224         * dwarf2out.c : Likewise.
6225         * emit-rtl.c : Likewise.
6226         * et-forest.c : Likewise.
6227         * except.c : Likewise.
6228         * except.h : Likewise.
6229         * explow.c : Likewise.
6230         * expmed.c : Likewise.
6231         * expr.c : Likewise.
6232         * final.c : Likewise.
6233         * fixed-value.c : Likewise.
6234         * fold-const.c : Likewise.
6235         * function.c : Likewise.
6236         * fwprop.c : Likewise.
6237         * gcc-plugin.h : Likewise.
6238         * gcc.c : Likewise.
6239         * gcse-common.c : Likewise.
6240         * gcse.c : Likewise.
6241         * genattrtab.c : Likewise.
6242         * genautomata.c : Likewise.
6243         * genconditions.c : Likewise.
6244         * genemit.c : Likewise.
6245         * generic-match-head.c : Likewise.
6246         * genextract.c : Likewise.
6247         * gengtype-state.c : Likewise.
6248         * gengtype.c : Likewise.
6249         * genhooks.c : Likewise.
6250         * genmatch.c : Likewise.
6251         * genmodes.c : Likewise.
6252         * genrecog.c : Likewise.
6253         * gensupport.c : Likewise.
6254         * ggc-common.c : Likewise.
6255         * ggc-internal.h : Likewise.
6256         * ggc-none.c : Likewise.
6257         * ggc-page.c : Likewise.
6258         * gimple-builder.c : Likewise.
6259         * gimple-expr.c : Likewise.
6260         * gimple-fold.c : Likewise.
6261         * gimple-iterator.c : Likewise.
6262         * gimple-low.c : Likewise.
6263         * gimple-match-head.c : Likewise.
6264         * gimple-pretty-print.c : Likewise.
6265         * gimple-ssa-isolate-paths.c : Likewise.
6266         * gimple-ssa-strength-reduction.c : Likewise.
6267         * gimple-ssa.h : Likewise.
6268         * gimple-streamer-in.c : Likewise.
6269         * gimple-streamer-out.c : Likewise.
6270         * gimple-streamer.h : Likewise.
6271         * gimple-walk.c : Likewise.
6272         * gimple.c : Likewise.
6273         * gimplify-me.c : Likewise.
6274         * gimplify.c : Likewise.
6275         * godump.c : Likewise.
6276         * graph.c : Likewise.
6277         * graphds.c : Likewise.
6278         * graphite-blocking.c : Likewise.
6279         * graphite-dependences.c : Likewise.
6280         * graphite-interchange.c : Likewise.
6281         * graphite-isl-ast-to-gimple.c : Likewise.
6282         * graphite-optimize-isl.c : Likewise.
6283         * graphite-poly.c : Likewise.
6284         * graphite-scop-detection.c : Likewise.
6285         * graphite-sese-to-poly.c : Likewise.
6286         * graphite.c : Likewise.
6287         * haifa-sched.c : Likewise.
6288         * hard-reg-set.h : Likewise.
6289         * hw-doloop.c : Likewise.
6290         * ifcvt.c : Likewise.
6291         * inchash.c : Likewise.
6292         * incpath.c : Likewise.
6293         * init-regs.c : Likewise.
6294         * input.c : Likewise.
6295         * internal-fn.c : Likewise.
6296         * ipa-chkp.c : Likewise.
6297         * ipa-comdats.c : Likewise.
6298         * ipa-cp.c : Likewise.
6299         * ipa-devirt.c : Likewise.
6300         * ipa-icf-gimple.c : Likewise.
6301         * ipa-icf.c : Likewise.
6302         * ipa-inline-analysis.c : Likewise.
6303         * ipa-inline-transform.c : Likewise.
6304         * ipa-inline.c : Likewise.
6305         * ipa-polymorphic-call.c : Likewise.
6306         * ipa-profile.c : Likewise.
6307         * ipa-prop.c : Likewise.
6308         * ipa-pure-const.c : Likewise.
6309         * ipa-ref.c : Likewise.
6310         * ipa-reference.c : Likewise.
6311         * ipa-split.c : Likewise.
6312         * ipa-utils.c : Likewise.
6313         * ipa-visibility.c : Likewise.
6314         * ipa.c : Likewise.
6315         * ira-build.c : Likewise.
6316         * ira-color.c : Likewise.
6317         * ira-conflicts.c : Likewise.
6318         * ira-costs.c : Likewise.
6319         * ira-emit.c : Likewise.
6320         * ira-lives.c : Likewise.
6321         * ira.c : Likewise.
6322         * jump.c : Likewise.
6323         * langhooks.c : Likewise.
6324         * lcm.c : Likewise.
6325         * libfuncs.h : Likewise.
6326         * lists.c : Likewise.
6327         * loop-doloop.c : Likewise.
6328         * loop-init.c : Likewise.
6329         * loop-invariant.c : Likewise.
6330         * loop-iv.c : Likewise.
6331         * loop-unroll.c : Likewise.
6332         * lower-subreg.c : Likewise.
6333         * lra-assigns.c : Likewise.
6334         * lra-coalesce.c : Likewise.
6335         * lra-constraints.c : Likewise.
6336         * lra-eliminations.c : Likewise.
6337         * lra-lives.c : Likewise.
6338         * lra-remat.c : Likewise.
6339         * lra-spills.c : Likewise.
6340         * lra.c : Likewise.
6341         * lto-cgraph.c : Likewise.
6342         * lto-compress.c : Likewise.
6343         * lto-opts.c : Likewise.
6344         * lto-section-in.c : Likewise.
6345         * lto-section-out.c : Likewise.
6346         * lto-streamer-in.c : Likewise.
6347         * lto-streamer-out.c : Likewise.
6348         * lto-streamer.c : Likewise.
6349         * lto-streamer.h : Likewise.
6350         * mcf.c : Likewise.
6351         * mode-switching.c : Likewise.
6352         * modulo-sched.c : Likewise.
6353         * omega.c : Likewise.
6354         * omp-low.c : Likewise.
6355         * optabs.c : Likewise.
6356         * opts-global.c : Likewise.
6357         * opts.h : Likewise.
6358         * passes.c : Likewise.
6359         * plugin.c : Likewise.
6360         * postreload-gcse.c : Likewise.
6361         * postreload.c : Likewise.
6362         * predict.c : Likewise.
6363         * print-rtl.c : Likewise.
6364         * print-tree.c : Likewise.
6365         * profile.c : Likewise.
6366         * read-md.c : Likewise.
6367         * read-md.h : Likewise.
6368         * read-rtl.c : Likewise.
6369         * real.c : Likewise.
6370         * realmpfr.c : Likewise.
6371         * recog.c : Likewise.
6372         * ree.c : Likewise.
6373         * reg-stack.c : Likewise.
6374         * regcprop.c : Likewise.
6375         * reginfo.c : Likewise.
6376         * regrename.c : Likewise.
6377         * regstat.c : Likewise.
6378         * reload.c : Likewise.
6379         * reload1.c : Likewise.
6380         * reorg.c : Likewise.
6381         * resource.c : Likewise.
6382         * rtl-chkp.c : Likewise.
6383         * rtl.c : Likewise.
6384         * rtl.h : Likewise.
6385         * rtlanal.c : Likewise.
6386         * rtlhash.c : Likewise.
6387         * rtlhash.h : Likewise.
6388         * rtlhooks.c : Likewise.
6389         * sanopt.c : Likewise.
6390         * sched-deps.c : Likewise.
6391         * sched-ebb.c : Likewise.
6392         * sched-rgn.c : Likewise.
6393         * sched-vis.c : Likewise.
6394         * sdbout.c : Likewise.
6395         * sel-sched-dump.c : Likewise.
6396         * sel-sched-ir.c : Likewise.
6397         * sel-sched-ir.h : Likewise.
6398         * sel-sched.c : Likewise.
6399         * sese.c : Likewise.
6400         * shrink-wrap.c : Likewise.
6401         * shrink-wrap.h : Likewise.
6402         * simplify-rtx.c : Likewise.
6403         * stack-ptr-mod.c : Likewise.
6404         * statistics.c : Likewise.
6405         * stmt.c : Likewise.
6406         * stor-layout.c : Likewise.
6407         * store-motion.c : Likewise.
6408         * stringpool.c : Likewise.
6409         * symtab.c : Likewise.
6410         * target-globals.c : Likewise.
6411         * targhooks.c : Likewise.
6412         * tlink.c : Likewise.
6413         * toplev.c : Likewise.
6414         * tracer.c : Likewise.
6415         * trans-mem.c : Likewise.
6416         * tree-affine.c : Likewise.
6417         * tree-affine.h : Likewise.
6418         * tree-browser.c : Likewise.
6419         * tree-call-cdce.c : Likewise.
6420         * tree-cfg.c : Likewise.
6421         * tree-cfgcleanup.c : Likewise.
6422         * tree-chkp-opt.c : Likewise.
6423         * tree-chkp.c : Likewise.
6424         * tree-chrec.c : Likewise.
6425         * tree-complex.c : Likewise.
6426         * tree-data-ref.c : Likewise.
6427         * tree-dfa.c : Likewise.
6428         * tree-diagnostic.c : Likewise.
6429         * tree-dump.c : Likewise.
6430         * tree-eh.c : Likewise.
6431         * tree-eh.h : Likewise.
6432         * tree-emutls.c : Likewise.
6433         * tree-hasher.h : Likewise.
6434         * tree-if-conv.c : Likewise.
6435         * tree-inline.c : Likewise.
6436         * tree-inline.h : Likewise.
6437         * tree-into-ssa.c : Likewise.
6438         * tree-iterator.c : Likewise.
6439         * tree-loop-distribution.c : Likewise.
6440         * tree-nested.c : Likewise.
6441         * tree-nrv.c : Likewise.
6442         * tree-object-size.c : Likewise.
6443         * tree-outof-ssa.c : Likewise.
6444         * tree-parloops.c : Likewise.
6445         * tree-phinodes.c : Likewise.
6446         * tree-predcom.c : Likewise.
6447         * tree-pretty-print.c : Likewise.
6448         * tree-profile.c : Likewise.
6449         * tree-scalar-evolution.c : Likewise.
6450         * tree-sra.c : Likewise.
6451         * tree-ssa-address.c : Likewise.
6452         * tree-ssa-alias.c : Likewise.
6453         * tree-ssa-ccp.c : Likewise.
6454         * tree-ssa-coalesce.c : Likewise.
6455         * tree-ssa-copy.c : Likewise.
6456         * tree-ssa-copyrename.c : Likewise.
6457         * tree-ssa-dce.c : Likewise.
6458         * tree-ssa-dom.c : Likewise.
6459         * tree-ssa-dse.c : Likewise.
6460         * tree-ssa-forwprop.c : Likewise.
6461         * tree-ssa-ifcombine.c : Likewise.
6462         * tree-ssa-live.c : Likewise.
6463         * tree-ssa-loop-ch.c : Likewise.
6464         * tree-ssa-loop-im.c : Likewise.
6465         * tree-ssa-loop-ivcanon.c : Likewise.
6466         * tree-ssa-loop-ivopts.c : Likewise.
6467         * tree-ssa-loop-manip.c : Likewise.
6468         * tree-ssa-loop-niter.c : Likewise.
6469         * tree-ssa-loop-prefetch.c : Likewise.
6470         * tree-ssa-loop-unswitch.c : Likewise.
6471         * tree-ssa-loop.c : Likewise.
6472         * tree-ssa-math-opts.c : Likewise.
6473         * tree-ssa-operands.c : Likewise.
6474         * tree-ssa-phiopt.c : Likewise.
6475         * tree-ssa-phiprop.c : Likewise.
6476         * tree-ssa-pre.c : Likewise.
6477         * tree-ssa-propagate.c : Likewise.
6478         * tree-ssa-reassoc.c : Likewise.
6479         * tree-ssa-sccvn.c : Likewise.
6480         * tree-ssa-scopedtables.c : Likewise.
6481         * tree-ssa-sink.c : Likewise.
6482         * tree-ssa-strlen.c : Likewise.
6483         * tree-ssa-structalias.c : Likewise.
6484         * tree-ssa-tail-merge.c : Likewise.
6485         * tree-ssa-ter.c : Likewise.
6486         * tree-ssa-threadedge.c : Likewise.
6487         * tree-ssa-threadupdate.c : Likewise.
6488         * tree-ssa-uncprop.c : Likewise.
6489         * tree-ssa-uninit.c : Likewise.
6490         * tree-ssa.c : Likewise.
6491         * tree-ssanames.c : Likewise.
6492         * tree-stdarg.c : Likewise.
6493         * tree-streamer-in.c : Likewise.
6494         * tree-streamer-out.c : Likewise.
6495         * tree-streamer.c : Likewise.
6496         * tree-streamer.h : Likewise.
6497         * tree-switch-conversion.c : Likewise.
6498         * tree-tailcall.c : Likewise.
6499         * tree-vect-data-refs.c : Likewise.
6500         * tree-vect-generic.c : Likewise.
6501         * tree-vect-loop-manip.c : Likewise.
6502         * tree-vect-loop.c : Likewise.
6503         * tree-vect-patterns.c : Likewise.
6504         * tree-vect-slp.c : Likewise.
6505         * tree-vect-stmts.c : Likewise.
6506         * tree-vectorizer.c : Likewise.
6507         * tree-vectorizer.h : Likewise.
6508         * tree-vrp.c : Likewise.
6509         * tree.c : Likewise.
6510         * tsan.c : Likewise.
6511         * ubsan.c : Likewise.
6512         * valtrack.c : Likewise.
6513         * valtrack.h : Likewise.
6514         * value-prof.c : Likewise.
6515         * var-tracking.c : Likewise.
6516         * varasm.c : Likewise.
6517         * varpool.c : Likewise.
6518         * vec.c: Likewise.
6519         * vmsdbgout.c : Likewise.
6520         * vtable-verify.c : Likewise.
6521         * vtable-verify.h : Likewise.
6522         * web.c : Likewise.
6523         * wide-int.cc : Likewise.
6524         * xcoffout.c : Likewise.
6525         * config/aarch64/aarch64-builtins.c : Likewise.
6526         * config/aarch64/aarch64.c : Likewise.
6527         * config/aarch64/cortex-a57-fma-steering.c : Likewise.
6528         * config/alpha/alpha.c : Likewise.
6529         * config/arc/arc.c : Likewise.
6530         * config/arm/aarch-common.c : Likewise.
6531         * config/arm/arm-builtins.c : Likewise.
6532         * config/arm/arm-c.c : Likewise.
6533         * config/arm/arm.c : Likewise.
6534         * config/avr/avr-c.c : Likewise.
6535         * config/avr/avr-log.c : Likewise.
6536         * config/avr/avr.c : Likewise.
6537         * config/bfin/bfin.c : Likewise.
6538         * config/c6x/c6x.c : Likewise.
6539         * config/cr16/cr16.c : Likewise.
6540         * config/cris/cris.c : Likewise.
6541         * config/darwin-c.c : Likewise.
6542         * config/darwin.c : Likewise.
6543         * config/default-c.c : Likewise.
6544         * config/epiphany/epiphany.c : Likewise.
6545         * config/epiphany/mode-switch-use.c : Likewise.
6546         * config/epiphany/resolve-sw-modes.c : Likewise.
6547         * config/fr30/fr30.c : Likewise.
6548         * config/frv/frv.c : Likewise.
6549         * config/ft32/ft32.c : Likewise.
6550         * config/glibc-c.c : Likewise.
6551         * config/h8300/h8300.c : Likewise.
6552         * config/i386/i386-c.c : Likewise.
6553         * config/i386/i386.c : Likewise.
6554         * config/i386/msformat-c.c : Likewise.
6555         * config/i386/winnt-cxx.c : Likewise.
6556         * config/i386/winnt-stubs.c : Likewise.
6557         * config/i386/winnt.c : Likewise.
6558         * config/ia64/ia64-c.c : Likewise.
6559         * config/ia64/ia64.c : Likewise.
6560         * config/iq2000/iq2000.c : Likewise.
6561         * config/lm32/lm32.c : Likewise.
6562         * config/m32c/m32c-pragma.c : Likewise.
6563         * config/m32c/m32c.c : Likewise.
6564         * config/m32r/m32r.c : Likewise.
6565         * config/m68k/m68k.c : Likewise.
6566         * config/mcore/mcore.c : Likewise.
6567         * config/mep/mep-pragma.c : Likewise.
6568         * config/mep/mep.c : Likewise.
6569         * config/microblaze/microblaze-c.c : Likewise.
6570         * config/microblaze/microblaze.c : Likewise.
6571         * config/mips/mips.c : Likewise.
6572         * config/mmix/mmix.c : Likewise.
6573         * config/mn10300/mn10300.c : Likewise.
6574         * config/moxie/moxie.c : Likewise.
6575         * config/msp430/msp430-c.c : Likewise.
6576         * config/msp430/msp430.c : Likewise.
6577         * config/nds32/nds32-cost.c : Likewise.
6578         * config/nds32/nds32-fp-as-gp.c : Likewise.
6579         * config/nds32/nds32-intrinsic.c : Likewise.
6580         * config/nds32/nds32-isr.c : Likewise.
6581         * config/nds32/nds32-md-auxiliary.c : Likewise.
6582         * config/nds32/nds32-memory-manipulation.c : Likewise.
6583         * config/nds32/nds32-pipelines-auxiliary.c : Likewise.
6584         * config/nds32/nds32-predicates.c : Likewise.
6585         * config/nds32/nds32.c : Likewise.
6586         * config/nios2/nios2.c : Likewise.
6587         * config/nvptx/nvptx.c : Likewise.
6588         * config/pa/pa.c : Likewise.
6589         * config/pdp11/pdp11.c : Likewise.
6590         * config/rl78/rl78-c.c : Likewise.
6591         * config/rl78/rl78.c : Likewise.
6592         * config/rs6000/rs6000-c.c : Likewise.
6593         * config/rs6000/rs6000.c : Likewise.
6594         * config/rx/rx.c : Likewise.
6595         * config/s390/s390-c.c : Likewise.
6596         * config/s390/s390.c : Likewise.
6597         * config/sh/sh-c.c : Likewise.
6598         * config/sh/sh-mem.cc : Likewise.
6599         * config/sh/sh.c : Likewise.
6600         * config/sh/sh_optimize_sett_clrt.cc : Likewise.
6601         * config/sh/sh_treg_combine.cc : Likewise.
6602         * config/sol2-c.c : Likewise.
6603         * config/sol2-cxx.c : Likewise.
6604         * config/sol2-stubs.c : Likewise.
6605         * config/sol2.c : Likewise.
6606         * config/sparc/sparc-c.c : Likewise.
6607         * config/sparc/sparc.c : Likewise.
6608         * config/spu/spu-c.c : Likewise.
6609         * config/spu/spu.c : Likewise.
6610         * config/stormy16/stormy16.c : Likewise.
6611         * config/tilegx/mul-tables.c : Likewise.
6612         * config/tilegx/tilegx-c.c : Likewise.
6613         * config/tilegx/tilegx.c : Likewise.
6614         * config/tilepro/mul-tables.c : Likewise.
6615         * config/tilepro/tilepro-c.c : Likewise.
6616         * config/tilepro/tilepro.c : Likewise.
6617         * config/v850/v850-c.c : Likewise.
6618         * config/v850/v850.c : Likewise.
6619         * config/vax/vax.c : Likewise.
6620         * config/visium/visium.c : Likewise.
6621         * config/vms/vms-c.c : Likewise.
6622         * config/vms/vms.c : Likewise.
6623         * config/vxworks.c : Likewise.
6624         * config/winnt-c.c : Likewise.
6625         * config/xtensa/xtensa.c : Likewise.
6626
6627 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
6628
6629         PR lto/65378
6630         * ipa-utils.h (warn_types_mismatch): Update prototype.
6631         * ipa-devirt.c (odr_types_equivalent_p): Add loc1/loc2
6632         parameters.
6633         (type_mismatch_p): New function.
6634         (warn_types_mismatch): Reorg to work better on non-C++ types.
6635         (odr_types_equivalent_p): Add loc1/loc2 parameters.
6636         (add_type_duplicate): Update.
6637
6638 2015-06-08  Tom de Vries  <tom@codesourcery.com>
6639
6640         PR rtl-optimization/66444
6641         * postreload.c (reload_combine): Use get_call_reg_set_usage instead of
6642         call_used_regs.
6643
6644 2015-06-08  Richard Biener  <rguenther@suse.de>
6645
6646         PR tree-optimization/66422
6647         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Split
6648         block after inserted gcc_unreachable.
6649
6650 2015-06-08  Nick Clifton  <nickc@redhat.com>
6651
6652         * config/rx/rx.c (rx_function_value): Do not promote vector types.
6653         (rx_promote_function_mode): Likewise.
6654         * config/rx/rx.h (LIBCALL_VALUE): Likewise.
6655
6656 2015-06-08  Jakub Jelinek  <jakub@redhat.com>
6657
6658         * genattrtab.c (insn_alternatives): Change type from int *
6659         to uint64_t *.
6660         (check_attr_test): Shift ((uint64_t) 1) instead of 1 up.
6661         (get_attr_value): Change type of num_alt to uint64_t.
6662         (compute_alternative_mask): Change return type from
6663         int to uint64_t, shift ((uint64_t) 1) instead of 1 up.
6664         (make_alternative_compare, mk_attr_alt): Change argument type
6665         from int to uint64_t.
6666         (simplify_test_exp): Change type of i from int to uint64_t.
6667         Shift ((uint64_t) 1) instead of 1 up.
6668         (main): Adjust oballocvec first argument from int to uint64_t.
6669         Shift ((uint64_t) 1) instead of 1 up.
6670
6671 2015-06-08  Jan Kratochvil  <jan.kratochvil@redhat.com>
6672
6673         PR other/65366
6674         * gdbhooks.py: Import sys.
6675         (intptr): New function.  Replace int(...) by intptr(...).
6676
6677 2015-06-08  Richard Biener  <rguenther@suse.de>
6678
6679         * tree-vect-stmts.c (vectorizable_load): Compute the pointer
6680         adjustment for gaps at the end of a SLP load group properly.
6681         * tree-vect-slp.c (vect_supported_load_permutation_p): Allow
6682         all permutations we can generate.
6683         (vect_transform_slp_perm_load): Use the correct group-size.
6684
6685 2015-06-08  Marc Glisse  <marc.glisse@inria.fr>
6686
6687         * genmatch.c (expr::gen_transform): For conditions, guess the type
6688         from the second operand.
6689
6690 2015-06-08  Tom de Vries  <tom@codesourcery.com>
6691
6692         PR tree-optimization/66442
6693         * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Add function.
6694         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Return false
6695         if the loop latch is not a singleton.  Use
6696         gimple_seq_nondebug_singleton_p instead of gimple_seq_singleton_p.
6697
6698 2015-06-08  Marek Polacek  <polacek@redhat.com>
6699
6700         PR sanitizer/66452
6701         * toplev.c (check_global_declaration): Don't warn about artificial
6702         decls.
6703
6704 2015-06-08  Tom de Vries  <tom@codesourcery.com>
6705
6706         PR tree-optimization/66436
6707         * cgraphunit.c (cgraph_node::analyze): Don't dump function to gimple
6708         dump file.
6709         * gimplify.c: Add tree-dump.h include.
6710         (gimplify_function_tree): Dump function to gimple dump file.
6711         * stor-layout.c (finalize_size_functions): Don't dump function to gimple
6712         dump file.
6713
6714 2015-06-08  Tom de Vries  <tom@codesourcery.com>
6715
6716         PR tree-optimization/66435
6717         * cgraphunit.c (cgraph_node::add_new_function): Dump message on new
6718         function.
6719
6720 2015-06-06  Jan Hubicka  <hubicka@ucw.cz>
6721
6722         * alias.c (get_alias_set): Be ready for TYPE_CANONICAL
6723         of ptr_type_node to not be ptr_to_node.
6724         * tree.c (gimple_types_compatible_p): Do not match TREE_CODE of
6725         TREE_TYPE of pointers.
6726         * gimple-expr.c (useless_type_conversion): Reorder the check for
6727         function pointers and TYPE_CANONICAL.
6728
6729 2015-06-06  John David Anglin  <danglin@gcc.gnu.org>
6730
6731         PR bootstrap/66319
6732         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Rearrange builtin
6733         defines.  Define _LARGEFILE_SOURCE and _LARGEFILE64_SOURCE for c++.
6734         Define _XOPEN_UNIX and _XOPEN_SOURCE_EXTENDED for c++ if unix95 or
6735         later.
6736         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Likewise.
6737         Define _INCLUDE_STDC_SOURCE_PRE_199901, _INCLUDE_STDC_SOURCE_199901,
6738         _INCLUDE_XOPEN_SOURCE_PRE_500, _INCLUDE_XOPEN_SOURCE_520,
6739         _INCLUDE_XOPEN_SOURCE_PRE_600 and _INCLUDE_XOPEN_SOURCE_600 for c++
6740         and non iso if unix2003.
6741
6742 2015-06-06  Aldy Hernandez  <aldyh@redhat.com>
6743
6744         * dwarf2out.c (gen_lexical_block_die): Initialize stmt_die.
6745
6746 2015-06-06  Richard Sandiford  <richard.sandiford@arm.com>
6747
6748         * emit-rtl.c, expr.c, gcse.c, optabs.c, optabs.h, print-rtl.c,
6749         rtl.h, bb-reorder.c, builtins.c, calls.c, cfgbuild.c, cfgexpand.c,
6750         cfgrtl.c, cilk-common.c, config/i386/i386.md, cse.c, dwarf2cfi.c,
6751         except.c, final.c, function.c, gcse-common.c, genemit.c,
6752         haifa-sched.c, ifcvt.c, jump.c, loop-invariant.c, loop-iv.c,
6753         lra-constraints.c, lra.c, reload1.c, resource.c, rtlanal.c,
6754         sched-deps.c, sched-ebb.c, sel-sched-ir.c, sel-sched.c,
6755         shrink-wrap.c, stmt.c, store-motion.c: Replace rtx base types with
6756         more derived ones.
6757
6758 2015-06-06  Mikhail Maltsev  <maltsevm@gmail.com>
6759
6760         * combine.c (combine_split_insns): Remove cast.
6761         * config/bfin/bfin.c (hwloop_fail): Add cast in try_split call.
6762         * config/sh/sh.c (sh_try_split_insn_simple): Remove cast.
6763         * config/sh/sh_treg_combine.cc (sh_treg_combine::execute): Add cast.
6764         * emit-rtl.c (try_split): Promote type of trial argument to rtx_insn.
6765         * genemit.c (gen_split): Change return type of generated functions to
6766         rtx_insn.
6767         * genrecog.c (get_failure_return): Use NULL instead of NULL_RTX.
6768         (print_subroutine_start): Promote rtx to rtx_insn in gen_split_* and
6769         gen_peephole2_* functions.
6770         (print_subroutine, main): Likewise.
6771         * recog.c (peephole2_optimize): Remove cast.
6772         (peep2_next_insn): Promote return type to rtx_insn.
6773         * recog.h (peep2_next_insn): Fix prototype.
6774         * rtl.h (try_split, split_insns): Likewise.
6775
6776 2015-06-06  DJ Delorie  <dj@redhat.com>
6777
6778         * config/msp430/msp430.c (msp430_asm_integer): Support addition
6779         and subtraction too.
6780
6781 2015-06-05  Kaz Kojima  <kkojima@gcc.gnu.org>
6782
6783         PR target/66410
6784         * config/sh/constraints.md (Sid, Ssd): New memory constraints.
6785         * config/sh/sh.md (*mov<mode>): Use Sid and Ssd alternatives
6786         instead of Snd.  Disparage Sid/z alternative with '^'.
6787
6788 2015-06-05  Aldy Hernandez  <aldyh@redhat.com>
6789
6790         * dwarf2out.c: Remove deferred_locations*.
6791         (dwarf2_debug_hooks): Add early_finish hook.
6792         Remove global_decl hook.
6793         Add early_global_decl and late_global_decl hook.
6794         New global early_dwarf.
6795         New structure set_early_dwarf.
6796         (output_die): Indicate whether a DIE was generated early
6797         when generating assembly with -dA.
6798         (struct limbo_die_struct): Document created_for field.
6799         Remove file_table_last_lookup.
6800         (remove_AT): Return TRUE if successful.
6801         (remove_child_TAG): Clear die_parent.
6802         (reparent_child): New function abstracted from...
6803         (splice_child_die): ...here.
6804         (new_die): ICE if a DIE ends up in limbo too late.
6805         (check_die): New.
6806         (defer_location): Remove.
6807         (add_subscript_info): Reuse DW_TAG_subrange_type if available.
6808         (fill_variable_array_bounds): New.
6809         (decl_start_label): Call fill_variable_array_bounds.
6810         (gen_formal_parameter_die): Rewrite to reuse previously generated
6811         DIEs.
6812         (gen_subprogram_die): Same.
6813         (gen_variable_die): Same.
6814         (gen_const_die): Same.
6815         (gen_label_die): Same.
6816         (gen_lexical_block_die): Same.
6817         (decl_will_get_specification_p): New.
6818         (local_function_static): New.
6819         (gen_struct_or_union_type_die): Fill in variable-length fields.
6820         (gen_typedef_die): Fill in variable-length typedefs.
6821         (gen_tagged_type_die): Gracefully return on error_mark_node.
6822         Handle re-entrancy.
6823         (gen_type_die_with_usage): Handle variable-length types.
6824         Remove duplicate code for ARRAY_TYPE case.
6825         (process_scope_var): Only process imported modules during early
6826         dwarf.
6827         (dwarf2out_early_global_decl): New.
6828         (dwarf2out_late_global_decl): Rename from dwarf2out_global_decl.
6829         (dwarf2out_type_decl): Set early_dwarf while calling
6830         dwarf2out_decl.
6831         (dwarf2out_decl): Verify that we did not recreate a previously
6832         generated DIE.
6833         Do not return on DECL_EXTERNALs in VAR_DECLs.
6834         Abstract some code to local_function_static.
6835         (lookup_filename): Remove use of file_table_last_lookup.
6836         Gracefully exit on missing file_name.
6837         (dwarf2out_finish): Verify limbo list.
6838         Remove deferred_locations_list use.
6839         Move deferred_asm_name and limbo flushing to...
6840         (dwarf2out_early_finish): ...here.  New.
6841         (dwarf2out_c_finalize): Remove set of deferred_location_list,
6842         deferred_asm_name, and file_table_last_lookup.
6843         * cgraph.h (referred_to_p): Add default argument.
6844         * cgraphunit.c (referred_to_p): Add and handle include_self
6845         argument.
6846         (analyze_functions): Add first_time argument.
6847         Call check_global_declaration for all symbols.
6848         Call late_global_decl for nodes for moribund nodes.
6849         (finalize_compilation_unit): Add new argument to
6850         analyze_functions.
6851         Call early_global_decl for functions.
6852         Call early_finish debug hook.
6853         * dbxout.c (dbxout_early_global_decl): New.
6854         (dbxout_late_global_decl): New.  Adapted from dbxout_global_decl.
6855         (dbx_debug_hooks): Add new hooks.
6856         (xcoff_debug_hooks): Same.
6857         * debug.c (do_nothing_debug_hooks): Add early_finish field.
6858         Add early and late debug hooks.
6859         Remove global_decl hook.
6860         * debug.h (struct gcc_debug_hooks): Add early_finish,
6861         early_global_decl, and late_global_decl fields.
6862         Remove global_decl field.
6863         Document gcc_debug_hooks.
6864         * gengtype.c (output_typename): Remove.
6865         * godump.c (go_early_global_decl): New.
6866         (go_late_global_decl): New.
6867         (go_global_decl): Remove.
6868         (dump_go_spec_init): Remove global_decl.  Add
6869         {early,late}_global_decl.
6870         * langhooks-def.h (LANG_HOOKS_WRITE_GLOBALS): Remove.
6871         (LANG_HOOKS_POST_COMPILATION_PARSING_CLEANUPS): New.
6872         * langhooks.c (lhd_warn_unused_global_decl): Adjust comment.
6873         (write_global_declarations): Remove.
6874         (global_decl_processing): New.
6875         * langhooks.h (struct lang_hooks_for_decls): Remove
6876         final_write_globals field.
6877         Add post_compilation_parsing_cleanups field.
6878         * passes.c (rest_of_decl_compilation): Call early_global_decl.
6879         * sdbout.c: Add early and late_global_decl hooks.  Remove
6880         sdbout_global_decl hook.
6881         Add early_finish field for sdb_debug_hooks.
6882         (sdbout_global_decl): Remove.
6883         (sdbout_early_global_decl): New.
6884         (sdbout_late_global_decl): New.
6885         * timevar.def (TV_PHASE_LATE_PARSING_CLEANUPS): New.
6886         * toplev.c (check_global_declaration): Rename from
6887         check_global_declaration_1.
6888         Adapt to use symtab infrastructure.
6889         (check_global_declarations): Remove.
6890         (emit_debug_global_declarations): Remove.
6891         (compile_file): Remove call to final_write_globals langhook.
6892         Run the actual compilation process.
6893         Perform any post compilation parser cleanups.
6894         Generate late debug info.
6895         * toplev.h (check_global_declaration): New.
6896         (check_global_declaration_1): Remove.
6897         (check_global_declarations): Remove.
6898         (write_global_declarations): Remove.
6899         (emit_debug_global_declarations): Remove.
6900         (global_decl_processing): New.
6901         * tree-core.h (struct tree_block): Add DIE field.
6902         * tree.h (BLOCK_DIE): New.
6903         * vmsdbgout.c (vmsdbgout_global_decl): Remove function and its use
6904         throughout.
6905         (vmsdbgout_early_global_decl): New.
6906         (vmsdbgout_late_global_decl): New.
6907         Add early_finish debug hook field to vmsdbg_debug_hooks.
6908         Remove vmsdbgout_decl to vmsdbgout_function_decl.
6909         Add early and late_global_decl debug hooks.
6910
6911 2015-06-05  Julian Brown  <julian@codesourcery.com>
6912             Sandra Loosemore  <sandra@codesourcery.com>
6913
6914         * config/print-sysroot-suffix.sh: Handle MULTILIB_REUSE settings.
6915         * config/t-sysroot-suffix (sysroot-suffix.h): Pass MULTILIB_REUSE
6916         to print-sysroot-suffix.sh script.
6917
6918 2015-06-05  Tom de Vries  <tom@codesourcery.com>
6919
6920         merge from gomp4 branch:
6921         2015-05-28  Tom de Vries  <tom@codesourcery.com>
6922
6923         PR tree-optimization/65443
6924         * tree-parloops.c (replace_imm_uses, replace_uses_in_bb_by)
6925         (replace_uses_in_bbs_by, transform_to_exit_first_loop_alt)
6926         (try_transform_to_exit_first_loop_alt): New function.
6927         (transform_to_exit_first_loop): Use
6928         try_transform_to_exit_first_loop_alt.
6929
6930 2015-06-05  James Greenhalgh  <james.greenhalgh@arm.com>
6931
6932         * builtins.c (expand_builtin_atomic_compare_exchange): Call
6933         emit_cmp_and_jump_insns with the mode of target.
6934
6935 2015-06-05  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
6936
6937         * config/i386/sse.md (sse3_mwait): Swap the operand constriants.
6938
6939 2015-06-04  DJ Delorie  <dj@redhat.com>
6940
6941         * config/msp430/msp430.md (movsi_s): New.  Special case for
6942         storing a 20-bit symbol into a 32-bit register.
6943         * config/msp430/msp430.c (msp430_subreg): Add support for it.
6944         * config/msp430/predicates.md (msp430_symbol_operand): New.
6945
6946 2015-06-04  Sriraman Tallam  <tmsriram@google.com>
6947
6948         * c-family/c-common.c (noplt): New attribute.
6949         (handle_noplt_attribute): New handler.
6950         * calls.c (prepare_call_address): Check for noplt
6951         attribute.
6952         * config/i386/i386.c (ix86_expand_call): Check
6953         for noplt attribute.
6954         (ix86_nopic_noplt_attribute_p): New function.
6955         (ix86_output_call_insn): Output indirect call for non-pic
6956         no plt calls.
6957         * doc/extend.texi (noplt): Document new attribute.
6958         * doc/invoke.texi: Document new attribute.
6959
6960 2015-06-04  Andrew MacLeod  <amacleod@redhat.com>
6961
6962         * coretypes.h: Include machmode.h, signop.h, wide-int.h, double-int.h,
6963         real.h, and fixed-value.h when included in host source files.
6964         * double-int.h: Remove redundant #includes listed above.
6965         * fixed-value.h: Likewise.
6966         * real.h: Likewise.
6967         * wide-int.h: Likewise.
6968         * inchash.h: Likewise.
6969         * rtl.h: Add some include files When included from a generator file.
6970         * target.h: Remove wide-int.h and insn-modes.h from the include list.
6971         * internal-fn.h: Don't include coretypes.h.
6972         * alias.c: Adjust includes for restructured coretypes.h.
6973         * asan.c: Likewise.
6974         * attribs.c: Likewise.
6975         * auto-inc-dec.c: Likewise.
6976         * auto-profile.c: Likewise.
6977         * bb-reorder.c: Likewise.
6978         * bt-load.c: Likewise.
6979         * builtins.c: Likewise.
6980         * caller-save.c: Likewise.
6981         * calls.c: Likewise.
6982         * ccmp.c: Likewise.
6983         * cfg.c: Likewise.
6984         * cfganal.c: Likewise.
6985         * cfgbuild.c: Likewise.
6986         * cfgcleanup.c: Likewise.
6987         * cfgexpand.c: Likewise.
6988         * cfghooks.c: Likewise.
6989         * cfgloop.c: Likewise.
6990         * cfgloop.h: Likewise.
6991         * cfgloopanal.c: Likewise.
6992         * cfgloopmanip.c: Likewise.
6993         * cfgrtl.c: Likewise.
6994         * cgraph.c: Likewise.
6995         * cgraphbuild.c: Likewise.
6996         * cgraphclones.c: Likewise.
6997         * cgraphunit.c: Likewise.
6998         * cilk-common.c: Likewise.
6999         * combine-stack-adj.c: Likewise.
7000         * combine.c: Likewise.
7001         * compare-elim.c: Likewise.
7002         * convert.c: Likewise.
7003         * coverage.c: Likewise.
7004         * cppbuiltin.c: Likewise.
7005         * cprop.c: Likewise.
7006         * cse.c: Likewise.
7007         * cselib.c: Likewise.
7008         * data-streamer-in.c: Likewise.
7009         * data-streamer-out.c: Likewise.
7010         * data-streamer.c: Likewise.
7011         * dbxout.c: Likewise.
7012         * dce.c: Likewise.
7013         * ddg.c: Likewise.
7014         * debug.c: Likewise.
7015         * df-core.c: Likewise.
7016         * df-problems.c: Likewise.
7017         * df-scan.c: Likewise.
7018         * df.h: Likewise.
7019         * dfp.c: Likewise.
7020         * dojump.c: Likewise.
7021         * dominance.c: Likewise.
7022         * domwalk.c: Likewise.
7023         * double-int.c: Likewise.
7024         * dse.c: Likewise.
7025         * dumpfile.c: Likewise.
7026         * dwarf2asm.c: Likewise.
7027         * dwarf2cfi.c: Likewise.
7028         * dwarf2out.c: Likewise.
7029         * dwarf2out.h: Likewise.
7030         * emit-rtl.c: Likewise.
7031         * et-forest.c: Likewise.
7032         * except.c: Likewise.
7033         * explow.c: Likewise.
7034         * expmed.c: Likewise.
7035         * expr.c: Likewise.
7036         * final.c: Likewise.
7037         * fixed-value.c: Likewise.
7038         * fold-const.c: Likewise.
7039         * function.c: Likewise.
7040         * fwprop.c: Likewise.
7041         * gcc-plugin.h: Likewise.
7042         * gcse.c: Likewise.
7043         * generic-match-head.c: Likewise.
7044         * ggc-page.c: Likewise.
7045         * gimple-builder.c: Likewise.
7046         * gimple-expr.c: Likewise.
7047         * gimple-fold.c: Likewise.
7048         * gimple-iterator.c: Likewise.
7049         * gimple-low.c: Likewise.
7050         * gimple-match-head.c: Likewise.
7051         * gimple-pretty-print.c: Likewise.
7052         * gimple-ssa-isolate-paths.c: Likewise.
7053         * gimple-ssa-strength-reduction.c: Likewise.
7054         * gimple-streamer-in.c: Likewise.
7055         * gimple-streamer-out.c: Likewise.
7056         * gimple-streamer.h: Likewise.
7057         * gimple-walk.c: Likewise.
7058         * gimple.c: Likewise.
7059         * gimplify-me.c: Likewise.
7060         * gimplify.c: Likewise.
7061         * godump.c: Likewise.
7062         * graph.c: Likewise.
7063         * graphite-blocking.c: Likewise.
7064         * graphite-dependences.c: Likewise.
7065         * graphite-interchange.c: Likewise.
7066         * graphite-isl-ast-to-gimple.c: Likewise.
7067         * graphite-optimize-isl.c: Likewise.
7068         * graphite-poly.c: Likewise.
7069         * graphite-scop-detection.c: Likewise.
7070         * graphite-sese-to-poly.c: Likewise.
7071         * graphite.c: Likewise.
7072         * haifa-sched.c: Likewise.
7073         * hooks.h: Likewise.
7074         * hw-doloop.c: Likewise.
7075         * ifcvt.c: Likewise.
7076         * incpath.c: Likewise.
7077         * init-regs.c: Likewise.
7078         * internal-fn.c: Likewise.
7079         * ipa-chkp.c: Likewise.
7080         * ipa-comdats.c: Likewise.
7081         * ipa-cp.c: Likewise.
7082         * ipa-devirt.c: Likewise.
7083         * ipa-icf-gimple.c: Likewise.
7084         * ipa-icf.c: Likewise.
7085         * ipa-inline-analysis.c: Likewise.
7086         * ipa-inline-transform.c: Likewise.
7087         * ipa-inline.c: Likewise.
7088         * ipa-polymorphic-call.c: Likewise.
7089         * ipa-profile.c: Likewise.
7090         * ipa-prop.c: Likewise.
7091         * ipa-pure-const.c: Likewise.
7092         * ipa-ref.c: Likewise.
7093         * ipa-reference.c: Likewise.
7094         * ipa-split.c: Likewise.
7095         * ipa-utils.c: Likewise.
7096         * ipa-visibility.c: Likewise.
7097         * ipa.c: Likewise.
7098         * ira-build.c: Likewise.
7099         * ira-color.c: Likewise.
7100         * ira-conflicts.c: Likewise.
7101         * ira-costs.c: Likewise.
7102         * ira-emit.c: Likewise.
7103         * ira-lives.c: Likewise.
7104         * ira.c: Likewise.
7105         * jump.c: Likewise.
7106         * langhooks.c: Likewise.
7107         * lcm.c: Likewise.
7108         * loop-doloop.c: Likewise.
7109         * loop-init.c: Likewise.
7110         * loop-invariant.c: Likewise.
7111         * loop-iv.c: Likewise.
7112         * loop-unroll.c: Likewise.
7113         * lower-subreg.c: Likewise.
7114         * lra-assigns.c: Likewise.
7115         * lra-coalesce.c: Likewise.
7116         * lra-constraints.c: Likewise.
7117         * lra-eliminations.c: Likewise.
7118         * lra-lives.c: Likewise.
7119         * lra-remat.c: Likewise.
7120         * lra-spills.c: Likewise.
7121         * lra.c: Likewise.
7122         * lto-cgraph.c: Likewise.
7123         * lto-compress.c: Likewise.
7124         * lto-opts.c: Likewise.
7125         * lto-section-in.c: Likewise.
7126         * lto-section-out.c: Likewise.
7127         * lto-streamer-in.c: Likewise.
7128         * lto-streamer-out.c: Likewise.
7129         * lto-streamer.c: Likewise.
7130         * mcf.c: Likewise.
7131         * mode-switching.c: Likewise.
7132         * modulo-sched.c: Likewise.
7133         * omega.c: Likewise.
7134         * omp-low.c: Likewise.
7135         * optabs.c: Likewise.
7136         * opts-global.c: Likewise.
7137         * passes.c: Likewise.
7138         * plugin.c: Likewise.
7139         * postreload-gcse.c: Likewise.
7140         * postreload.c: Likewise.
7141         * predict.c: Likewise.
7142         * print-rtl.c: Likewise.
7143         * print-tree.c: Likewise.
7144         * profile.c: Likewise.
7145         * real.c: Likewise.
7146         * realmpfr.c: Likewise.
7147         * realmpfr.h: Likewise.
7148         * recog.c: Likewise.
7149         * ree.c: Likewise.
7150         * reg-stack.c: Likewise.
7151         * regcprop.c: Likewise.
7152         * reginfo.c: Likewise.
7153         * regrename.c: Likewise.
7154         * regs.h: Likewise.
7155         * regstat.c: Likewise.
7156         * reload.c: Likewise.
7157         * reload1.c: Likewise.
7158         * reorg.c: Likewise.
7159         * resource.c: Likewise.
7160         * rtl-chkp.c: Likewise.
7161         * rtlanal.c: Likewise.
7162         * rtlhooks.c: Likewise.
7163         * sanopt.c: Likewise.
7164         * sched-deps.c: Likewise.
7165         * sched-ebb.c: Likewise.
7166         * sched-rgn.c: Likewise.
7167         * sched-vis.c: Likewise.
7168         * sdbout.c: Likewise.
7169         * sel-sched-dump.c: Likewise.
7170         * sel-sched-ir.c: Likewise.
7171         * sel-sched.c: Likewise.
7172         * sese.c: Likewise.
7173         * shrink-wrap.c: Likewise.
7174         * shrink-wrap.h: Likewise.
7175         * simplify-rtx.c: Likewise.
7176         * stack-ptr-mod.c: Likewise.
7177         * statistics.c: Likewise.
7178         * stmt.c: Likewise.
7179         * stor-layout.c: Likewise.
7180         * store-motion.c: Likewise.
7181         * stringpool.c: Likewise.
7182         * symtab.c: Likewise.
7183         * target-globals.c: Likewise.
7184         * targhooks.c: Likewise.
7185         * toplev.c: Likewise.
7186         * tracer.c: Likewise.
7187         * trans-mem.c: Likewise.
7188         * tree-affine.c: Likewise.
7189         * tree-affine.h: Likewise.
7190         * tree-browser.c: Likewise.
7191         * tree-call-cdce.c: Likewise.
7192         * tree-cfg.c: Likewise.
7193         * tree-cfgcleanup.c: Likewise.
7194         * tree-chkp-opt.c: Likewise.
7195         * tree-chkp.c: Likewise.
7196         * tree-chrec.c: Likewise.
7197         * tree-complex.c: Likewise.
7198         * tree-data-ref.c: Likewise.
7199         * tree-dfa.c: Likewise.
7200         * tree-diagnostic.c: Likewise.
7201         * tree-dump.c: Likewise.
7202         * tree-eh.c: Likewise.
7203         * tree-emutls.c: Likewise.
7204         * tree-if-conv.c: Likewise.
7205         * tree-inline.c: Likewise.
7206         * tree-into-ssa.c: Likewise.
7207         * tree-iterator.c: Likewise.
7208         * tree-loop-distribution.c: Likewise.
7209         * tree-nested.c: Likewise.
7210         * tree-nrv.c: Likewise.
7211         * tree-object-size.c: Likewise.
7212         * tree-outof-ssa.c: Likewise.
7213         * tree-parloops.c: Likewise.
7214         * tree-phinodes.c: Likewise.
7215         * tree-predcom.c: Likewise.
7216         * tree-pretty-print.c: Likewise.
7217         * tree-pretty-print.h: Likewise.
7218         * tree-profile.c: Likewise.
7219         * tree-scalar-evolution.c: Likewise.
7220         * tree-sra.c: Likewise.
7221         * tree-ssa-address.c: Likewise.
7222         * tree-ssa-alias.c: Likewise.
7223         * tree-ssa-ccp.c: Likewise.
7224         * tree-ssa-coalesce.c: Likewise.
7225         * tree-ssa-copy.c: Likewise.
7226         * tree-ssa-copyrename.c: Likewise.
7227         * tree-ssa-dce.c: Likewise.
7228         * tree-ssa-dom.c: Likewise.
7229         * tree-ssa-dse.c: Likewise.
7230         * tree-ssa-forwprop.c: Likewise.
7231         * tree-ssa-ifcombine.c: Likewise.
7232         * tree-ssa-live.c: Likewise.
7233         * tree-ssa-loop-ch.c: Likewise.
7234         * tree-ssa-loop-im.c: Likewise.
7235         * tree-ssa-loop-ivcanon.c: Likewise.
7236         * tree-ssa-loop-ivopts.c: Likewise.
7237         * tree-ssa-loop-manip.c: Likewise.
7238         * tree-ssa-loop-niter.c: Likewise.
7239         * tree-ssa-loop-prefetch.c: Likewise.
7240         * tree-ssa-loop-unswitch.c: Likewise.
7241         * tree-ssa-loop.c: Likewise.
7242         * tree-ssa-loop.h: Likewise.
7243         * tree-ssa-math-opts.c: Likewise.
7244         * tree-ssa-operands.c: Likewise.
7245         * tree-ssa-phiopt.c: Likewise.
7246         * tree-ssa-phiprop.c: Likewise.
7247         * tree-ssa-pre.c: Likewise.
7248         * tree-ssa-propagate.c: Likewise.
7249         * tree-ssa-reassoc.c: Likewise.
7250         * tree-ssa-sccvn.c: Likewise.
7251         * tree-ssa-scopedtables.c: Likewise.
7252         * tree-ssa-sink.c: Likewise.
7253         * tree-ssa-strlen.c: Likewise.
7254         * tree-ssa-structalias.c: Likewise.
7255         * tree-ssa-tail-merge.c: Likewise.
7256         * tree-ssa-ter.c: Likewise.
7257         * tree-ssa-threadedge.c: Likewise.
7258         * tree-ssa-threadupdate.c: Likewise.
7259         * tree-ssa-uncprop.c: Likewise.
7260         * tree-ssa-uninit.c: Likewise.
7261         * tree-ssa.c: Likewise.
7262         * tree-ssanames.c: Likewise.
7263         * tree-stdarg.c: Likewise.
7264         * tree-streamer-in.c: Likewise.
7265         * tree-streamer-out.c: Likewise.
7266         * tree-streamer.c: Likewise.
7267         * tree-switch-conversion.c: Likewise.
7268         * tree-tailcall.c: Likewise.
7269         * tree-vect-data-refs.c: Likewise.
7270         * tree-vect-generic.c: Likewise.
7271         * tree-vect-loop-manip.c: Likewise.
7272         * tree-vect-loop.c: Likewise.
7273         * tree-vect-patterns.c: Likewise.
7274         * tree-vect-slp.c: Likewise.
7275         * tree-vect-stmts.c: Likewise.
7276         * tree-vectorizer.c: Likewise.
7277         * tree-vrp.c: Likewise.
7278         * tree.c: Likewise.
7279         * tsan.c: Likewise.
7280         * ubsan.c: Likewise.
7281         * valtrack.c: Likewise.
7282         * value-prof.c: Likewise.
7283         * var-tracking.c: Likewise.
7284         * varasm.c: Likewise.
7285         * varpool.c: Likewise.
7286         * vmsdbgout.c: Likewise.
7287         * vtable-verify.c: Likewise.
7288         * web.c: Likewise.
7289         * wide-int-print.cc: Likewise.
7290         * wide-int-print.h: Likewise.
7291         * wide-int.cc: Likewise.
7292         * xcoffout.c: Likewise.
7293         * config/aarch64/aarch64-builtins.c: Likewise.
7294         * config/aarch64/aarch64.c: Likewise.
7295         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
7296         * config/alpha/alpha.c: Likewise.
7297         * config/arc/arc.c: Likewise.
7298         * config/arm/aarch-common.c: Likewise.
7299         * config/arm/arm-builtins.c: Likewise.
7300         * config/arm/arm-c.c: Likewise.
7301         * config/arm/arm.c: Likewise.
7302         * config/avr/avr-c.c: Likewise.
7303         * config/avr/avr-log.c: Likewise.
7304         * config/avr/avr.c: Likewise.
7305         * config/bfin/bfin.c: Likewise.
7306         * config/c6x/c6x.c: Likewise.
7307         * config/cr16/cr16.c: Likewise.
7308         * config/cris/cris.c: Likewise.
7309         * config/darwin-c.c: Likewise.
7310         * config/darwin.c: Likewise.
7311         * config/default-c.c: Likewise.
7312         * config/epiphany/epiphany.c: Likewise.
7313         * config/epiphany/mode-switch-use.c: Likewise.
7314         * config/epiphany/resolve-sw-modes.c: Likewise.
7315         * config/fr30/fr30.c: Likewise.
7316         * config/frv/frv.c: Likewise.
7317         * config/ft32/ft32.c: Likewise.
7318         * config/glibc-c.c: Likewise.
7319         * config/h8300/h8300.c: Likewise.
7320         * config/i386/i386-c.c: Likewise.
7321         * config/i386/i386.c: Likewise.
7322         * config/i386/msformat-c.c: Likewise.
7323         * config/i386/winnt-cxx.c: Likewise.
7324         * config/i386/winnt-stubs.c: Likewise.
7325         * config/i386/winnt.c: Likewise.
7326         * config/ia64/ia64-c.c: Likewise.
7327         * config/ia64/ia64.c: Likewise.
7328         * config/iq2000/iq2000.c: Likewise.
7329         * config/lm32/lm32.c: Likewise.
7330         * config/m32c/m32c-pragma.c: Likewise.
7331         * config/m32c/m32c.c: Likewise.
7332         * config/m32r/m32r.c: Likewise.
7333         * config/m68k/m68k.c: Likewise.
7334         * config/mcore/mcore.c: Likewise.
7335         * config/mep/mep-pragma.c: Likewise.
7336         * config/mep/mep.c: Likewise.
7337         * config/microblaze/microblaze-c.c: Likewise.
7338         * config/microblaze/microblaze.c: Likewise.
7339         * config/mips/mips.c: Likewise.
7340         * config/mmix/mmix.c: Likewise.
7341         * config/mn10300/mn10300.c: Likewise.
7342         * config/moxie/moxie.c: Likewise.
7343         * config/msp430/msp430-c.c: Likewise.
7344         * config/msp430/msp430.c: Likewise.
7345         * config/nds32/nds32-cost.c: Likewise.
7346         * config/nds32/nds32-fp-as-gp.c: Likewise.
7347         * config/nds32/nds32-intrinsic.c: Likewise.
7348         * config/nds32/nds32-isr.c: Likewise.
7349         * config/nds32/nds32-md-auxiliary.c: Likewise.
7350         * config/nds32/nds32-memory-manipulation.c: Likewise.
7351         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
7352         * config/nds32/nds32-predicates.c: Likewise.
7353         * config/nds32/nds32.c: Likewise.
7354         * config/nios2/nios2.c: Likewise.
7355         * config/nvptx/nvptx.c: Likewise.
7356         * config/pa/pa.c: Likewise.
7357         * config/pdp11/pdp11.c: Likewise.
7358         * config/rl78/rl78-c.c: Likewise.
7359         * config/rl78/rl78.c: Likewise.
7360         * config/rs6000/rs6000-c.c: Likewise.
7361         * config/rs6000/rs6000.c: Likewise.
7362         * config/rx/rx.c: Likewise.
7363         * config/s390/s390-c.c: Likewise.
7364         * config/s390/s390.c: Likewise.
7365         * config/sh/sh-c.c: Likewise.
7366         * config/sh/sh-mem.cc: Likewise.
7367         * config/sh/sh.c: Likewise.
7368         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
7369         * config/sh/sh_treg_combine.cc: Likewise.
7370         * config/sol2-c.c: Likewise.
7371         * config/sol2-cxx.c: Likewise.
7372         * config/sol2-stubs.c: Likewise.
7373         * config/sol2.c: Likewise.
7374         * config/sparc/sparc-c.c: Likewise.
7375         * config/sparc/sparc.c: Likewise.
7376         * config/spu/spu-c.c: Likewise.
7377         * config/spu/spu.c: Likewise.
7378         * config/stormy16/stormy16.c: Likewise.
7379         * config/tilegx/mul-tables.c: Likewise.
7380         * config/tilegx/tilegx-c.c: Likewise.
7381         * config/tilegx/tilegx.c: Likewise.
7382         * config/tilepro/mul-tables.c: Likewise.
7383         * config/tilepro/tilepro-c.c: Likewise.
7384         * config/tilepro/tilepro.c: Likewise.
7385         * config/v850/v850-c.c: Likewise.
7386         * config/v850/v850.c: Likewise.
7387         * config/vax/vax.c: Likewise.
7388         * config/visium/visium.c: Likewise.
7389         * config/vms/vms-c.c: Likewise.
7390         * config/vms/vms.c: Likewise.
7391         * config/vxworks.c: Likewise.
7392         * config/winnt-c.c: Likewise.
7393         * config/xtensa/xtensa.c: Likewise.
7394         * common/config/bfin/bfin-common.c: Likewise.
7395
7396 2015-06-04  Jan Hubicka  <hubicka@ucw.cz>
7397
7398         * tree.h (tree_code_for_canonical_type_merging): New function.
7399         * tree.c (gimple_canonical_types_compatible_p): Use
7400         tree_code_for_canonical_type_merging..
7401
7402 2015-06-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7403
7404         PR c++/66192
7405         PR target/66200
7406         * doc/tm.texi: Regenerate.
7407         * doc/tm.texi.in (TARGET_RELAXED_ORDERING): Delete.
7408         * target.def (TARGET_RELAXED_ORDERING): Likewise.
7409         * config/alpha/alpha.c (TARGET_RELAXED_ORDERING): Likewise.
7410         * config/ia64/ia64.c (TARGET_RELAXED_ORDERING): Likewise.
7411         * config/rs6000/rs6000.c (TARGET_RELAXED_ORDERING): Likewise.
7412         * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Likewise.
7413         * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
7414         * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Likewise.
7415         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Likewise.
7416
7417 2015-06-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7418
7419         * config/aarch64/aarch64.c (aarch64_override_options): Unconditionally
7420         register fma steering pass.
7421         * config/aarch64/cortex-a57-fma-steering.c (gate): Add gating on
7422         AARCH64_TUNE_FMA_STEERING.
7423
7424 2015-06-03  Jan Hubicka  <hubicka@ucw.cz>
7425
7426         * tree.c (verify_type_variant): Verify that type and variant is
7427         compatible.
7428         (gimple_canonical_types_compatible_p): Look for main variants.
7429
7430 2015-06-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
7431
7432         * config.gcc (powerpc*-*-*): Add support for a new configure
7433         option --with-advance-toolchain=<xxx> which overrides using the
7434         default header files, libraries and dynamic linker.
7435
7436         * config/rs6000/linux64.h (SUBSUBTARGET_EXTRA_SPECS): Add new
7437         specs to support the configure --with-advance-toolchain=<xxx>
7438         option.
7439         (INCLUDE_EXTRA_SPEC): Likewise.
7440         (LINK_OS_EXTRA_SPEC32): Likewise.
7441         (LINK_OK_EXTRA_SPEC64): Likewise.
7442         (LINK_OS_NEW_DTAGS_SPEC): Likewise.
7443         (DYNAMIC_LINKER_PREFIX): Likewise.
7444         (CPP_OS_DEFAULT_SPEC): Use the new specs for providing advance
7445         toolchain support.
7446         (GLIBC_DYNAMIC_LINKER32): Likewise.
7447         (GLIBC_DYNAMIC_LINKER64): Likewise.
7448         (LINK_OS_LINUX_SPEC32): Likewise.
7449         (LINK_OS_LINUX_SPEC64): Likewise.
7450
7451         * doc/install.texi (--enable-advance-toolchain=<xx>): Document new
7452         configuration option.
7453
7454 2015-06-03  Uros Bizjak  <ubizjak@gmail.com>
7455
7456         PR target/66275
7457         * config/i386/i386.c (ix86_function_arg_regno): Use ix86_cfun_abi
7458         to determine current function ABI.
7459         (ix86_function_value_regno_p): Ditto.
7460
7461 2015-06-03  Martin Liska  <mliska@suse.cz>
7462
7463         * alloc-pool.h (struct pool_usage): Correct GNU coding style.
7464         * bitmap.h (struct bitmap_usage): Likewise.
7465         * ggc-common.c (struct ggc_usage): Likewise.
7466         * mem-stats.h (struct mem_location): Likewise.
7467         (struct mem_usage): Likewise.
7468         * vec.c (struct vec_usage): Likewise.
7469
7470 2015-06-03  Benigno B. Junior  <bbj@gentoo.org>
7471
7472         * config/netbsd-elf.h (NETBSD_LINK_SPEC_ELF): Turn -symbolic into
7473         -Bsymbolic.
7474
7475 2015-06-02  Andres Tiraboschi  <andres.tiraboschi@tallertechnologies.com>
7476
7477         * doc/plugins.texi (enum plugin_event): New event.
7478         * plugin.c (register_callback): Handle PLUGIN_START_PARSE_FUNCTION
7479         and PLUGIN_FINISH_FUNCTION.
7480         * plugin.def (PLUGIN_START_PARSE_FUNCTION): Add plugin event
7481         (PLUGIN_FINISH_PARSE_FUNCTION): Likewise.
7482
7483 2015-06-03  Richard Biener  <rguenther@suse.de>
7484
7485         * tree-vect-data-refs.c (vect_analyze_group_access): Properly
7486         compute GROUP_GAP for the first element.
7487         * tree-vect-slp.c (vect_build_slp_tree_1): Remove restriction
7488         on in-group gaps.
7489
7490 2015-06-03  Nick Clifton  <nickc@redhat.com>
7491
7492         * config/rl78/rl78-real.md: Add peepholes to avoid a register
7493         copy when calling a function.
7494         * config/rl78/rl78.c (need_to_save): Do not push the frame
7495         pointer in an interrupt handler prologue if it is never used.
7496
7497 2015-06-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7498
7499         * ifcvt (end_ifcvt_sequence): Fix typo in comment above.
7500
7501 2015-06-03  Ilya Enkovich  <ilya.enkovich@intel.com>
7502
7503         * ipa-chkp.c (chkp_maybe_create_clone): Create alias
7504         reference when cloning alias node.
7505
7506 2015-06-03  Martin Liska  <mliska@suse.cz>
7507
7508         * alloc-pool.h (struct pool_usage): Correct space padding.
7509         * ggc-page.c (ggc_print_statistics): Align columns in a report.
7510         * mem-stats.h (struct mem_usage): Add argument to print_dash_line.
7511         * tree.c (dump_tree_statistics): Align columns in a report.
7512
7513 2015-06-03  Martin Liska  <mliska@suse.cz>
7514
7515         * alloc-pool.c (allocate_pool_descriptor): Remove.
7516         (struct pool_output_info): Likewise.
7517         (print_alloc_pool_statistics): Likewise.
7518         (dump_alloc_pool_statistics): Likewise.
7519         * alloc-pool.h (struct pool_usage): New struct.
7520         (pool_allocator::initialize): Change usage of memory statistics
7521         to a new interface.
7522         (pool_allocator::release): Likewise.
7523         (pool_allocator::allocate): Likewise.
7524         (pool_allocator::remove): Likewise.
7525         * mem-stats-traits.h (enum mem_alloc_origin): Add new enum value
7526         for a pool allocator.
7527         * mem-stats.h (struct mem_location): Add new ctor.
7528         (struct mem_usage): Add counter for number of
7529         instances.
7530         (mem_alloc_description::register_descriptor): New overload of
7531         * mem-stats.h (mem_location::to_string): New function.
7532         * bitmap.h (struct bitmap_usage): Use this new function.
7533         * ggc-common.c (struct ggc_usage): Likewise.
7534         the function.
7535
7536 2015-06-03  Richard Sandiford  <richard.sandiford@arm.com>
7537
7538         * defaults.h (SWITCHABLE_TARGET, TARGET_SUPPORTS_WIDE_INT): Move out
7539         of GCC_INSN_FLAGS_H block.
7540
7541 2015-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
7542
7543         * explow.c (plus_constant): Update check after force_const_mem call
7544         to see if the value returned is not a NULL_RTX.
7545
7546 2015-06-03  Ilya Enkovich  <ilya.enkovich@intel.com>
7547
7548         * ipa.c (symbol_table::remove_unreachable_nodes): Don't
7549         remove instumentation thunks calling reachable functions.
7550         * lto-cgraph.c (output_refs): Always output IPA_REF_CHKP.
7551         * lto/lto-partition.c (privatize_symbol_name_1): New.
7552         (privatize_symbol_name): Privatize both decl and orig_decl
7553         names for instrumented functions.
7554         * cgraph.c (cgraph_node::verify_node): Add transparent
7555         alias chain check for instrumented node.
7556
7557 2015-06-03  Marek Polacek  <polacek@redhat.com>
7558
7559         PR c/64223
7560         PR c/29358
7561         * tree.c (attribute_value_equal): Handle attribute format.
7562         (cmp_attrib_identifiers): Factor out of lookup_ident_attribute.
7563
7564 2015-06-03  Richard Biener  <rguenther@suse.de>
7565
7566         PR tree-optimization/63916
7567         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
7568         Forward-propagate non-invariant addresses by splicing their
7569         reference ops if the result isn't going to be used by PRE.
7570         (vn_reference_lookup_3): Remove pointless assert.
7571
7572 2015-06-03  Richard Biener  <rguenther@suse.de>
7573
7574         PR tree-optimization/66375
7575         * tree-scalar-evolution.c (follow_ssa_edge_binary): First
7576         add to the evolution before following SSA edges.
7577
7578 2015-06-03  Bin Cheng  <bin.cheng@arm.com>
7579
7580         * tree-ssa-loop-ivopts.c (dump_iv): New parameter.
7581         (dump_use, dump_cand, find_induction_variables): Pass new argument
7582         to dump_iv.
7583         (record_use): Preserve the ssa name information in IV.
7584
7585 2015-06-03  Richard Sandiford  <richard.sandiford@arm.com>
7586
7587         * genpreds.c (mark_mode_tests): Mark all MATCH_CODEs as
7588         NO_MODE_TEST.
7589         (add_mode_tests): Don't add mode tests if the predicate only
7590         accepts scalar constant integers.  Otherwise, allow the mode
7591         of "op" to be VOIDmode if the predicate does accept such integers.
7592
7593 2015-06-02  Jim Wilson  <jim.wilson@linaro.org>
7594
7595         PR target/66258
7596         * config/aarch64/aarch64.c (aarch64_function_value_regno_p): Change
7597         !TARGET_GENERAL_REGS_ONLY to TARGET_FLOAT.
7598         (aarch64_secondary_reload): Likewise
7599         (aarch64_expand_builtin_va_start): Change TARGET_GENERAL_REGS_ONLY
7600         to !TARGET_FLOAT.
7601         (aarch64_gimplify_va_arg_expr, aarch64_setup_incoming_varargs):
7602         Likewise.
7603
7604 2015-06-03  Kugan Vivekanandarajah  <kuganv@linaro.org>
7605             Zhenqiang Chen  <zhenqiang.chen@linaro.org>
7606
7607         PR target/65768
7608         * cprop.c (try_replace_reg): Check cost of constants before propagating.
7609
7610 2015-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
7611
7612         * config/rs6000/rs6000-modes.def (IFmode): Define IFmode to
7613         provide access to the IBM extended double floating point mode if
7614         long double is IEEE 128-bit floating point.
7615         (KFmode): Define KFmode to provide access to IEEE 128-bit floating
7616         point if long double is the IBM extended double type.
7617
7618         * config/rs6000/rs6000.opt (-mfloat128-none): New switches to
7619         enable adding IEEE 128-bit floating point support.
7620         (-mfloat128-software): Likewise.
7621         (-mfloat128-sw): Likewise.
7622
7623         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Do not allow
7624         128-bit floating point types to occupy any register if
7625         -mlong-double-64.  Do not allow use of IFmode/KFmode unless
7626         -mfloat128-software is enabled.
7627         (rs6000_debug_reg_global): Add IEEE 128-bit floating point debug
7628         support.
7629         (rs6000_option_override_internal): Add -mfloat128-* support.
7630         (rs6000_init_builtins): Setup __ibm128 and __float128 type modes.
7631
7632         * config/rs6000/rs6000.h (rs6000_builtin_type_index): Add ibm128
7633         and float128 type nodes.
7634         (ieee128_float_type_node): Likewise.
7635         (ibm128_float_type_node): Likewise.
7636
7637 2015-06-02  Szabolcs Nagy  <szabolcs.nagy@arm.com>
7638
7639         PR target/66136
7640         * config/aarch64/geniterators.sh: Rewrite in awk.
7641
7642 2015-06-02  Martin Liska  <mliska@suse.cz>
7643
7644         * alloc-pool.h (pool_allocator::pool_allocator): Set implicit
7645         values to avoid -Wmaybe-uninitialized errors.
7646
7647 2015-06-02  Richard Biener  <rguenther@suse.de>
7648
7649         PR debug/65549
7650         * dwarf2out.c (lookup_context_die): New function.
7651         (resolve_addr): Avoid forcing a full DIE for the
7652         target of a DW_TAG_GNU_call_site during late compilation.
7653         Instead create a stub DIE without a type if we have a
7654         context DIE present.
7655
7656 2015-06-02  Uros Bizjak  <ubizjak@gmail.com>
7657
7658         * df-scan.c (df_scan_start_dump): Add space between regno and regname.
7659
7660 2015-06-02  Bin Cheng  <bin.cheng@arm.com>
7661
7662         PR tree-optimization/48052
7663         * cfgloop.h (struct control_iv): New.
7664         (struct loop): New field control_ivs.
7665         * tree-ssa-loop-niter.c : Include "stor-layout.h".
7666         (number_of_iterations_lt): Set no_overflow information.
7667         (number_of_iterations_exit): Init control iv in niter struct.
7668         (record_control_iv): New.
7669         (estimate_numbers_of_iterations_loop): Call record_control_iv.
7670         (loop_exits_before_overflow): New.  Interface factored out of
7671         scev_probably_wraps_p.
7672         (scev_probably_wraps_p): Factor loop niter related code into
7673         loop_exits_before_overflow.
7674         (free_numbers_of_iterations_estimates_loop): Free control ivs.
7675         * tree-ssa-loop-niter.h (free_loop_control_ivs): New.
7676
7677 2015-06-02  Eric Botcazou  <ebotcazou@adacore.com>
7678
7679         * gimplify.c (gimplify_modify_expr): Do not create a DECL_DEBUG_EXPR if
7680         the target doesn't belong to the current function.
7681
7682 2015-06-02  Marek Polacek  <polacek@redhat.com>
7683
7684         PR middle-end/66345
7685         * gimple-fold.c (gimple_fold_builtin_snprintf): Return false if
7686         get_maxval_strlen does not produce an INTEGER_CST.
7687
7688 2015-06-02  Richard Sandiford  <richard.sandiford@arm.com>
7689
7690         * config/arc/constraints.md: Use lower-case names in match_code.
7691         * config/mmix/constraints.md: Likewise.
7692
7693 2015-06-02  Richard Biener  <rguenther@suse.de>
7694
7695         PR tree-optimization/65961
7696         * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove bogus
7697         check and clarify dump message.
7698         (vect_build_slp_tree): If all children are built up from scalars
7699         build up the parent from scalars instead.
7700         * tree-vect-stmts.c (vect_is_simple_use): Cleanup.
7701
7702 2015-06-02  Jan Kratochvil  <jan.kratochvil@redhat.com>
7703
7704         PR other/65366
7705         * gdbhooks.py: Use int(...) instead of long(...).  Use print(...)
7706         instead of print ... .
7707
7708 2015-06-02  Alan Modra  <amodra@gmail.com>
7709
7710         * config/rs6000/vsx.md (vsx_extract_v4sf): Revert accidental
7711         2014-08-11 change.
7712
7713 2015-06-02  Bin Cheng  <bin.cheng@arm.com>
7714
7715         PR tree-optimization/52563
7716         PR tree-optimization/62173
7717         * tree-ssa-loop-ivopts.c (struct iv): New field.  Reorder fields.
7718         (alloc_iv, set_iv): New parameter.
7719         (determine_biv_step): Delete.
7720         (find_bivs): Inline original determine_biv_step.  Pass new
7721         argument to set_iv.
7722         (idx_find_step): Use no_overflow information for conversion.
7723         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop): Let
7724         resolve_mixers handle folded_casts.
7725         (instantiate_scev_name): Change bool parameter to bool pointer.
7726         (instantiate_scev_poly, instantiate_scev_binary): Ditto.
7727         (instantiate_array_ref, instantiate_scev_not): Ditto.
7728         (instantiate_scev_3, instantiate_scev_2): Ditto.
7729         (instantiate_scev_1, instantiate_scev_r): Ditto.
7730         (instantiate_scev_convert, ): Change parameter.  Pass argument
7731         to chrec_convert_aggressive.
7732         (instantiate_scev): Change argument.
7733         (resolve_mixers): New parameter and set it.
7734         (scev_const_prop): New argument.
7735         * tree-scalar-evolution.h (resolve_mixers): New parameter.
7736         * tree-chrec.c (convert_affine_scev): Call chrec_convert instead
7737         of chrec_conert_1.
7738         (chrec_convert): New parameter.  Move definition below.
7739         (chrec_convert_aggressive): New parameter and set it.  Call
7740         convert_affine_scev.
7741         * tree-chrec.h (chrec_convert): New parameter.
7742         (chrec_convert_aggressive): Ditto.
7743
7744 2015-06-01  Eric Botcazou  <ebotcazou@adacore.com>
7745
7746         * gimplify.c (gimplify_modify_expr_rhs): Use simple test on the size.
7747         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Do not remove
7748         the LHS of a no-return call if its type has variable size.
7749         * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
7750         * tree-cfg.c (verify_gimple_call): Accept these no-return calls.
7751
7752 2015-06-01  Andreas Tobler  <andreast@gcc.gnu.org>
7753
7754         * read-rtl.c: Adapt to use HAVE_DECL_ATOLL instead of HAVE_ATOLL.
7755         * config.in: Regenerate.
7756
7757 2015-06-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
7758
7759         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
7760         consecutive accesses within outer-loop with force_vectorize
7761         for references with zero step in inner-loop.
7762
7763 2015-06-01  Vidya Praveen  <vidyapraveen@arm.com>
7764
7765         * Makefile.in: Pick up gcov-dump dependencies from gcc/ directory
7766         rather than from gcc/build directory.
7767
7768 2015-06-01  Matthew Wahab  <matthew.wahab@arm.com>
7769
7770         PR target/65697
7771         * config/aarch64/aarch64.c (aarch64_split_compare_and_swap): Check
7772         for __sync memory models, emit initial loads and final barriers as
7773         appropriate.
7774
7775 2015-06-01  Matthew Wahab  <matthew.wahab@arm.com>
7776
7777         PR target/65697
7778         * config/aarch64/aarch64.c (aarch64_emit_post_barrier):New.
7779         (aarch64_split_atomic_op): Check for __sync memory models, emit
7780         appropriate initial loads and final barriers.
7781
7782 2015-06-01  Vidya Praveen  <vidyapraveen@arm.com>
7783
7784         * Makefile.in: Fix gcov dependencies that should
7785         not point to a build folder.
7786
7787 2015-06-01  Richard Biener  <rguenther@suse.de>
7788
7789         Revert
7790         2015-05-29  Richard Biener  <rguenther@suse.de>
7791
7792         PR tree-optimization/66314
7793         * tree-ssa-threadupdate.c (create_block_for_threading): Add
7794         parameter that says which loop the new block belongs to.
7795         (ssa_create_duplicates): Blocks duplicated for the threaded
7796         path belong to the loop of the thread destination.
7797
7798 2015-06-01  Martin Liska  <mliska@suse.cz>
7799
7800         * sched-deps.c: Include pool-alloc.h before
7801         cselib.h header file is included.
7802
7803 2015-06-01  Richard Biener  <rguenther@suse.de>
7804
7805         * tree-ssa-structalias.c (ipa_pta_execute): Handle address-taken
7806         functions.
7807
7808 2015-06-01  Martin Liska  <mliska@suse.cz>
7809
7810         * alloc-pool.h: Add ATTRIBUTE_UNUSED for
7811         a function local variable.
7812
7813 2015-06-01  Martin Liska  <mliska@suse.cz>
7814
7815         * alloc-pool.c (create_alloc_pool): Remove.
7816         (empty_alloc_pool): Likewise.
7817         (free_alloc_pool): Likewise.
7818         (free_alloc_pool_if_empty): Likewise.
7819         (pool_alloc): Likewise.
7820         (pool_free): Likewise.
7821         * alloc-pool.h: Remove old declarations.
7822
7823 2015-06-01  Martin Liska  <mliska@suse.cz>
7824
7825         * ira-build.c (initiate_allocnos): Use new type-based pool allocator.
7826         (ira_create_object): Likewise.
7827         (ira_create_allocno): Likewise.
7828         (ira_create_live_range): Likewise.
7829         (copy_live_range): Likewise.
7830         (ira_finish_live_range): Likewise.
7831         (ira_free_allocno_costs): Likewise.
7832         (finish_allocno): Likewise.
7833         (finish_allocnos): Likewise.
7834         (initiate_prefs): Likewise.
7835         (ira_create_pref): Likewise.
7836         (finish_pref): Likewise.
7837         (finish_prefs): Likewise.
7838         (initiate_copies): Likewise.
7839         (ira_create_copy): Likewise.
7840         (finish_copy): Likewise.
7841         (finish_copies): Likewise.
7842         (finish_prefs): Likewise.
7843
7844 2015-06-01  Martin Liska  <mliska@suse.cz>
7845
7846         * ipa-cp.c (ipcp_value::add_source): Use new type-based pool allocator.
7847         (allocate_and_init_ipcp_value): Likewise.
7848         (ipcp_lattice::add_value): Likewise.
7849         (merge_agg_lats_step): Likewise.
7850         (ipcp_driver): Likewise.
7851         * ipa-prop.c (ipa_free_all_structures_after_ipa_cp): Likewise.
7852         (ipa_free_all_structures_after_iinln): Likewise.
7853         * ipa-prop.h: Likewise.
7854
7855 2015-06-01  Martin Liska  <mliska@suse.cz>
7856
7857         * ipa-inline-analysis.c (edge_set_predicate): Use new type-based
7858         pool allocator.
7859         (set_hint_predicate): Likewise.
7860         (inline_summary_alloc): Likewise.
7861         (reset_inline_edge_summary): Likewise.
7862         (reset_inline_summary): Likewise.
7863         (set_cond_stmt_execution_predicate): Likewise.
7864         (set_switch_stmt_execution_predicate): Likewise.
7865         (compute_bb_predicates): Likewise.
7866         (estimate_function_body_sizes): Likewise.
7867         (inline_free_summary): Likewise.
7868
7869 2015-06-01  Martin Liska  <mliska@suse.cz>
7870
7871         * ipa-prop.c (ipa_set_jf_constant): Use new type-based pool allocator.
7872         (ipa_edge_duplication_hook): Likewise.
7873         (ipa_free_all_structures_after_ipa_cp): Likewise.
7874         (ipa_free_all_structures_after_iinln): Likewise.
7875
7876 2015-06-01  Martin Liska  <mliska@suse.cz>
7877
7878         * ipa-profile.c (account_time_size): Use new type-based pool allocator.
7879         (ipa_profile_generate_summary): Likewise.
7880         (ipa_profile_read_summary): Likewise.
7881         (ipa_profile): Likewise.
7882
7883 2015-06-01  Martin Liska  <mliska@suse.cz>
7884
7885         * tree-ssa-structalias.c (new_var_info): Use new type-based
7886         pool allocator.
7887         (new_constraint): Likewise.
7888         (init_alias_vars): Likewise.
7889         (delete_points_to_sets): Likewise.
7890
7891 2015-06-01  Martin Liska  <mliska@suse.cz>
7892
7893         * tree-ssa-strlen.c (new_strinfo): Use new type-based pool allocator.
7894         (free_strinfo): Likewise.
7895         (pass_strlen::execute): Likewise.
7896
7897 2015-06-01  Martin Liska  <mliska@suse.cz>
7898
7899         * tree-ssa-sccvn.c (vn_reference_insert): Use new type-based
7900         pool allocator.
7901         (vn_reference_insert_pieces): Likewise.
7902         (vn_phi_insert): Likewise.
7903         (visit_reference_op_call): Likewise.
7904         (copy_phi): Likewise.
7905         (copy_reference): Likewise.
7906         (process_scc): Likewise.
7907         (allocate_vn_table): Likewise.
7908         (free_vn_table): Likewise.
7909
7910 2015-06-01  Martin Liska  <mliska@suse.cz>
7911
7912         * tree-ssa-reassoc.c (add_to_ops_vec): Use new type-based
7913         pool allocator.
7914         (add_repeat_to_ops_vec): Likewise.
7915         (get_ops): Likewise.
7916         (maybe_optimize_range_tests): Likewise.
7917         (init_reassoc): Likewise.
7918         (fini_reassoc): Likewise.
7919
7920 2015-06-01  Martin Liska  <mliska@suse.cz>
7921
7922         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Use new type-based
7923         pool allocator.
7924         (bitmap_set_new): Likewise.
7925         (get_or_alloc_expr_for_constant): Likewise.
7926         (get_or_alloc_expr_for): Likewise.
7927         (phi_translate_1): Likewise.
7928         (compute_avail): Likewise.
7929         (init_pre): Likewise.
7930         (fini_pre): Likewise.
7931
7932 2015-06-01  Martin Liska  <mliska@suse.cz>
7933
7934         * sched-deps.c (create_dep_node): Use new type-based pool allocator.
7935         (delete_dep_node): Likewise.
7936         (create_deps_list): Likewise.
7937         (free_deps_list): Likewise.
7938         (sched_deps_init): Likewise.
7939         (sched_deps_finish): Likewise.
7940
7941 2015-06-01  Martin Liska  <mliska@suse.cz>
7942
7943         * regcprop.c (free_debug_insn_changes): Use new type-based
7944         pool allocator.
7945         (replace_oldest_value_reg): Likewise.
7946         (pass_cprop_hardreg::execute): Likewise.
7947
7948 2015-06-01  Martin Liska  <mliska@suse.cz>
7949
7950         * ira-build.c (initiate_cost_vectors): Use new type-based
7951         pool allocator.
7952         (ira_allocate_cost_vector): Likewise.
7953         (ira_free_cost_vector): Likewise.
7954         (finish_cost_vectors): Likewise.
7955
7956 2015-06-01  Martin Liska  <mliska@suse.cz>
7957
7958         * sel-sched-ir.c (alloc_sched_pools): Use new type-based
7959         pool allocator.
7960         (free_sched_pools): Likewise.
7961         * sel-sched-ir.h (_list_alloc): Likewise.
7962         (_list_remove): Likewise.
7963
7964 2015-06-01  Martin Liska  <mliska@suse.cz>
7965
7966         * stmt.c (add_case_node): Use new type-based pool allocator.
7967         (expand_case): Likewise.
7968         (expand_sjlj_dispatch_table): Likewise.
7969
7970 2015-06-01  Martin Liska  <mliska@suse.cz>
7971
7972         * tree-ssa-math-opts.c (occ_new): Use new type-based pool allocator.
7973         (free_bb): Likewise.
7974         (pass_cse_reciprocals::execute): Likewise.
7975
7976 2015-06-01  Martin Liska  <mliska@suse.cz>
7977
7978         * tree-sra.c (sra_initialize): Use new type-based pool allocator.
7979         (sra_deinitialize) Likewise.
7980         (create_access_1) Likewise.
7981         (build_accesses_from_assign) Likewise.
7982         (create_artificial_child_access) Likewise.
7983
7984 2015-06-01  Martin Liska  <mliska@suse.cz>
7985
7986         * dse.c (get_group_info):Use new type-based pool allocator.
7987         (dse_step0) Likewise.
7988         (free_store_info) Likewise.
7989         (delete_dead_store_insn) Likewise.
7990         (free_read_records) Likewise.
7991         (record_store) Likewise.
7992         (replace_read) Likewise.
7993         (check_mem_read_rtx) Likewise.
7994         (scan_insn) Likewise.
7995         (dse_step1) Likewise.
7996         (dse_step7) Likewise.
7997
7998 2015-06-01  Martin Liska  <mliska@suse.cz>
7999
8000         * df-scan.c (struct df_scan_problem_data):Use new type-based
8001         pool allocator.
8002         (df_scan_free_internal) Likewise.
8003         (df_scan_alloc) Likewise.
8004         (df_grow_reg_info) Likewise.
8005         (df_free_ref) Likewise.
8006         (df_insn_create_insn_record) Likewise.
8007         (df_mw_hardreg_chain_delete) Likewise.
8008         (df_insn_info_delete) Likewise.
8009         (df_free_collection_rec) Likewise.
8010         (df_mw_hardreg_chain_delete_eq_uses) Likewise.
8011         (df_sort_and_compress_mws) Likewise.
8012         (df_ref_create_structure) Likewise.
8013         (df_ref_record) Likewise.
8014
8015 2015-06-01  Martin Liska  <mliska@suse.cz>
8016
8017         * df-problems.c (df_chain_create):Use new type-based pool allocator.
8018         (df_chain_unlink_1) Likewise.
8019         (df_chain_unlink) Likewise.
8020         (df_chain_remove_problem) Likewise.
8021         (df_chain_alloc) Likewise.
8022         (df_chain_free) Likewise.
8023         * df.h (struct dataflow) Likewise.
8024
8025 2015-06-01  Martin Liska  <mliska@suse.cz>
8026
8027         * cselib.c (new_elt_list):Use new type-based pool allocator.
8028         (new_elt_loc_list) Likewise.
8029         (unchain_one_elt_list) Likewise.
8030         (unchain_one_elt_loc_list) Likewise.
8031         (unchain_one_value) Likewise.
8032         (new_cselib_val) Likewise.
8033         (cselib_init) Likewise.
8034         (cselib_finish) Likewise.
8035
8036 2015-06-01  Martin Liska  <mliska@suse.cz>
8037
8038         * config/sh/sh.c (add_constant):Use new type-based pool allocator.
8039         (sh_reorg) Likewise.
8040
8041 2015-06-01  Martin Liska  <mliska@suse.cz>
8042
8043         * cfg.c (initialize_original_copy_tables):Use new type-based
8044         pool allocator.
8045         (free_original_copy_tables) Likewise.
8046         (copy_original_table_clear) Likewise.
8047         (copy_original_table_set) Likewise.
8048
8049 2015-06-01  Martin Liska  <mliska@suse.cz>
8050
8051         * asan.c (asan_mem_ref_get_alloc_pool):Use new type-based
8052         pool allocator.
8053         (asan_mem_ref_new) Likewise.
8054         (free_mem_ref_resources) Likewise.
8055
8056 2015-06-01  Martin Liska  <mliska@suse.cz>
8057
8058         * var-tracking.c (variable_htab_free):Use new type-based
8059         pool allocator.
8060         (attrs_list_clear) Likewise.
8061         (attrs_list_insert) Likewise.
8062         (attrs_list_copy) Likewise.
8063         (shared_hash_unshare) Likewise.
8064         (shared_hash_destroy) Likewise.
8065         (unshare_variable) Likewise.
8066         (var_reg_delete_and_set) Likewise.
8067         (var_reg_delete) Likewise.
8068         (var_regno_delete) Likewise.
8069         (drop_overlapping_mem_locs) Likewise.
8070         (variable_union) Likewise.
8071         (insert_into_intersection) Likewise.
8072         (canonicalize_values_star) Likewise.
8073         (variable_merge_over_cur) Likewise.
8074         (dataflow_set_merge) Likewise.
8075         (remove_duplicate_values) Likewise.
8076         (variable_post_merge_new_vals) Likewise.
8077         (dataflow_set_preserve_mem_locs) Likewise.
8078         (dataflow_set_remove_mem_locs) Likewise.
8079         (variable_from_dropped) Likewise.
8080         (variable_was_changed) Likewise.
8081         (set_slot_part) Likewise.
8082         (clobber_slot_part) Likewise.
8083         (delete_slot_part) Likewise.
8084         (loc_exp_insert_dep) Likewise.
8085         (notify_dependents_of_changed_value) Likewise.
8086         (emit_notes_for_differences_1) Likewise.
8087         (vt_emit_notes) Likewise.
8088         (vt_initialize) Likewise.
8089         (vt_finalize) Likewise.
8090
8091 2015-06-01  Martin Liska  <mliska@suse.cz>
8092
8093         * ira-color.c (init_update_cost_records):Use new type-based
8094         pool allocator.
8095         (get_update_cost_record) Likewise.
8096         (free_update_cost_record_list) Likewise.
8097         (finish_update_cost_records) Likewise.
8098         (initiate_cost_update) Likewise.
8099
8100 2015-06-01  Martin Liska  <mliska@suse.cz>
8101
8102         * lra.c (init_insn_regs): Use new type-based pool allocator.
8103         (new_insn_reg) Likewise.
8104         (free_insn_reg) Likewise.
8105         (free_insn_regs) Likewise.
8106         (finish_insn_regs) Likewise.
8107         (init_insn_recog_data) Likewise.
8108         (init_reg_info) Likewise.
8109         (finish_reg_info) Likewise.
8110         (lra_free_copies) Likewise.
8111         (lra_create_copy) Likewise.
8112         (invalidate_insn_data_regno_info) Likewise.
8113
8114 2015-06-01  Martin Liska  <mliska@suse.cz>
8115
8116         * lra-lives.c (free_live_range): Use new type-based pool allocator.
8117         (free_live_range_list) Likewise.
8118         (create_live_range) Likewise.
8119         (copy_live_range) Likewise.
8120         (lra_merge_live_ranges) Likewise.
8121         (remove_some_program_points_and_update_live_ranges) Likewise.
8122         (lra_live_ranges_init) Likewise.
8123         (lra_live_ranges_finish) Likewise.
8124
8125 2015-06-01  Martin Liska  <mliska@suse.cz>
8126
8127         * et-forest.c (et_new_occ): Use new type-based pool allocator.
8128         (et_new_tree): Likewise.
8129         (et_free_tree): Likewise.
8130         (et_free_tree_force): Likewise.
8131         (et_free_pools): Likewise.
8132         (et_split): Likewise.
8133
8134 2015-06-01  Martin Liska  <mliska@suse.cz>
8135
8136         * alloc-pool.c (struct alloc_pool_descriptor): Move definition
8137         to header file.
8138         * alloc-pool.h (pool_allocator::pool_allocator): New function.
8139         (pool_allocator::release): Likewise.
8140         (inline pool_allocator::release_if_empty): Likewise.
8141         (inline pool_allocator::~pool_allocator): Likewise.
8142         (pool_allocator::allocate): Likewise.
8143         (pool_allocator::remove): Likewise.
8144
8145 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
8146
8147         * sched-deps.c (sched_analyze_2): Replace fuseable with fusible
8148         in comment.
8149
8150 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
8151
8152         * gcc/config/arm/arm-protos.h (tune_params): Rename fuseable_ops
8153         to fusible_ops.
8154         * gcc/config/arm/arm.c (arm_print_tune_info): Likewise.
8155         (arm_macro_fusion_p): Likewise.
8156         (arm_macro_fusion_pair_p): Likewise.
8157
8158 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
8159
8160         * config/aarch64/aarch64-protos.h (tune_params): Rename
8161         fuseable_ops to fusible_ops.
8162         * config/aarch64/aarch64.c (generic_tunings): Rename
8163         fuseable_ops to fusible_ops.
8164         (cortexa53_tunings): Likewise.
8165         (cortexa57_tunings): Likewise.
8166         (thunderx_tunings): Likewise.
8167         (xgene1_tunings): Likewise.
8168         (aarch64_macro_fusion_p): Likewise.
8169         (aarch64_macro_fusion_pair_p): Likewise.
8170
8171 2015-06-01  Dominik Vogt  <vogt@linux.vnet.ibm.com>
8172
8173         * config/s390/driver-native.c: New file.
8174         * config/s390/x-native: New file.
8175         * config.host: Add new files for s390.
8176         * config/s390/s390.h (DRIVER_SELF_SPECS): Add support for -mtune=native
8177         and -march=native
8178         * config.gcc: Likewise.
8179         * config/s390/s390.opt (march): Likewise; add PROCESSOR_NATIVE
8180         * config/s390/s390-opts.h (enum processor_type): Ditto.
8181         * config/s390/s390.c (s390_option_override): Catch unhandled
8182         PROCESSOR_NATIVE
8183
8184 2015-06-01  Ilya Enkovich  <ilya.enkovich@intel.com>
8185
8186         PR target/65527
8187         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Add
8188         redirection for instrumented calls.
8189         * lto-wrapper.c (merge_and_complain): Merge -fcheck-pointer-bounds.
8190         (append_compiler_options): Append -fcheck-pointer-bounds.
8191         * tree-chkp.h (chkp_copy_call_skip_bounds): New.
8192         (chkp_redirect_edge): New.
8193         * tree-chkp.c (chkp_copy_call_skip_bounds): New.
8194         (chkp_redirect_edge): New.
8195
8196 2015-06-01  Richard Biener  <rguenther@suse.de>
8197
8198         PR tree-optimization/66280
8199         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Fix pattern
8200         def-use walking.
8201
8202 2015-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8203
8204         * config/aarch64/aarch64.md
8205         (*<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Change type to
8206         logic_shift_imm.
8207
8208 2015-06-01  Eric Botcazou  <ebotcazou@adacore.com>
8209
8210         * config/i386/winnt.c (i386_pe_encode_section_info) <FUNCTION_DECL>:
8211         Remove obsolete kludge.
8212
8213 2015-06-01  Richard Biener  <rguenther@suse.de>
8214
8215         * tree-ssa-reassoc.c (get_rank): Simplify.
8216
8217 2015-05-31  H.J. Lu  <hongjiu.lu@intel.com>
8218
8219         * configure.ac (NO_PIE_CFLAGS): Check CXXFLAGS instead of CFLAGS.
8220         * configure: Regenerated.
8221
8222 2015-05-31  Mikhail Maltsev  <maltsevm@gmail.com>
8223
8224         * config/cris/cris.h (CRIS_ARCH_CPP_DEFAULT): Fix C++11 compatibility
8225         issue (add space between string literal and macro).
8226         * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Likewise.
8227
8228 2015-05-30  Andreas Schwab  <schwab@linux-m68k.org>
8229
8230         * config/m68k/m68k.h (ASM_PCREL_SPEC): Pass --pcrel also for
8231         implict or explicit -fPIE or -fpie.
8232
8233 2015-05-30  Mike Frysinger  <vapier@gentoo.org>
8234
8235         * gcc/config/alpha/elf.h (ASM_SPEC): Add %{mcpu=*:-m%*}.
8236
8237 2015-05-28  DJ Delorie  <dj@redhat.com>
8238
8239         * expmed.c (extract_bit_field_1): Avoid clobbering a
8240         yet-to-be-used base/index register.
8241
8242 2015-05-30  Jan Hubicka  <hubicka@ucw.cz>
8243
8244         * alias.c (alias_set_entry_d): Add is_pointer and has_pointer.
8245         (alias_stats): Add num_universal.
8246         (alias_set_subset_of): Special case pointers; be ready for NULL
8247         children.
8248         (alias_sets_conflict_p): Special case pointers; be ready for NULL
8249         children.
8250         (init_alias_set_entry): Break out from ...
8251         (record_alias_subset): ... here; propagate new fields;
8252         allocate children only when really needed.
8253         (get_alias_set): Do less generous pointer globbing.
8254         (dump_alias_stats_in_alias_c): Update statistics.
8255
8256 2015-05-30  Alan Modra  <amodra@gmail.com>
8257
8258         * config/rs6000/rs6000.c (split_stack_arg_pointer_used_p): Scan
8259         correct block for use of r12.
8260         (rs6000_expand_split_stack_prologue): Error on r29 asm global reg.
8261
8262 2015-05-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
8263
8264         PR target/66215
8265         * config/s390/s390.c (s390_reorg): Fix placement of post-label NOPs
8266         with -mhotpatch=.
8267
8268 2015-05-29  Jakub Jelinek  <jakub@redhat.com>
8269
8270         PR tree-optimization/66142
8271         * tree-if-conv.c (if_convertible_phi_p): Don't give up on
8272         virtual phis that feed themselves.
8273
8274 2015-05-29  Richard Biener  <rguenther@suse.de>
8275
8276         PR tree-optimization/66314
8277         * tree-ssa-threadupdate.c (create_block_for_threading): Add
8278         parameter that says which loop the new block belongs to.
8279         (ssa_create_duplicates): Blocks duplicated for the threaded
8280         path belong to the loop of the thread destination.
8281
8282 2015-05-29  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
8283
8284         * config/arm/neon-testgen.ml (emit_epilogue): Remove manual call
8285         to cleanup-saved-temps.
8286         * doc/sourcebuild.texi (Clean up generated test files): Expand
8287         introduction.
8288         (dg-keep-saved-temps): Document new proc.
8289         (cleanup-ipa-dump, cleanup-rtl-dump, cleanup-tree-dump,
8290         cleanup-saved-temps): Remove.
8291
8292 2015-05-28  Andreas Tobler  <andreast@gcc.gnu.org>
8293
8294         * configure.ac: Move the atoll check from AC_CHECK_FUNCS to
8295         gcc_AC_CHECK_DECLS.
8296         * configure: Regenerate.
8297
8298 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
8299
8300         * config/nios2/linux.h (CPP_SPEC): Define.
8301
8302 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
8303
8304         * config/microblaze/linux.h (CPP_SPEC): Define.
8305
8306 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
8307
8308         * config/pa/pa-linux.h (CPP_SPEC): Change so -D_REENTRANT is used when
8309         -pthread is specified.
8310
8311 2015-05-28  Richard Biener  <rguenther@suse.de>
8312
8313         * tree-vect-loop.c (vect_fixup_reduc_chain): New function.
8314         (vect_fixup_scalar_cycles_with_patterns): Likewise.
8315         (vect_analyze_loop_2): Call vect_fixup_scalar_cycles_with_patterns
8316         after pattern recog.
8317         (vect_create_epilog_for_reduction): Properly handle reductions
8318         with patterns.
8319         (vectorizable_reduction): Likewise.
8320         * tree-vect-slp.c (vect_analyze_slp_instance): Properly mark
8321         reduction chains.
8322         (vect_get_constant_vectors): Create the correct number of
8323         initial values for reductions.
8324         (vect_schedule_slp_instance): Handle reduction chains that are
8325         type changing properly.
8326         * tree-vect-stmts.c (vect_analyze_stmt): Adjust.
8327
8328 2015-05-28  Richard Biener  <rguenther@suse.de>
8329
8330         PR tree-optimization/66142
8331         * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle non-GIMPLE
8332         values better in memcpy destination handling.  Handle non-aliasing
8333         we discover here.
8334
8335 2015-05-28  Lawrence Velázquez  <vq@larryv.me>
8336
8337         PR target/63810
8338         * config/darwin-c.c (version_components): New global enum.
8339         (parse_version, version_as_legacy_macro)
8340         (version_as_modern_macro, macosx_version_as_macro): New functions.
8341         (version_as_macro): Remove.
8342         (darwin_cpp_builtins): Use new function.
8343
8344 2015-05-28  H.J. Lu  <hongjiu.lu@intel.com>
8345
8346         * builtins.c (expand_builtin_acc_on_device): Mark parameters
8347         with ATTRIBUTE_UNUSED.
8348
8349 2015-05-28  Julian Brown  <julian@codesourcery.com>
8350
8351         PR libgomp/65742
8352
8353         * builtins.c (expand_builtin_acc_on_device): Don't use open-coded
8354         sequence for !ACCEL_COMPILER.
8355
8356 2015-05-28  Nick Clifton  <nickc@redhat.com>
8357
8358         * config/rx/rx.c (push_regs): New function.  Extracts code from...
8359         (rx_expand_prologue): ... here.  Use push_regs to push even small
8360         spans of registers.
8361         (pop_regs): New function.
8362         (rx_expand_epilogue):  Use pop_regs to pop even small spans of
8363         registers.
8364
8365 2015-05-28  Richard Biener  <rguenther@suse.de>
8366
8367         * tree-vectorizer.h (struct _slp_instance): Remove body_cost_vec
8368         member.
8369         (SLP_INSTANCE_BODY_COST_VEC): Remove.
8370         (vect_update_slp_costs_according_to_vf): Likewise.
8371         (vect_slp_analyze_operations): Update prototype.
8372         * tree-vect-loop.c (vect_analyze_loop_2): Remove call to
8373         vect_update_slp_costs_according_to_vf, adjust.
8374         * tree-vect-slp.c (vect_free_slp_instance): Adjust.
8375         (vect_analyze_slp_cost_1): Likewise.
8376         (vect_analyze_slp_cost): Likewise.  Properly deal with
8377         widening reduction ops.  Commit body costs.
8378         (vect_analyze_slp_instance): Adjust.  Do not analyze SLP
8379         cost for loops from here.
8380         (vect_slp_analyze_operations): But do it from here when
8381         the vectorization factor is known and stmts are analyzed.
8382         (vect_bb_vectorization_profitable_p): Simplify.
8383         (vect_slp_analyze_bb_1): Do not compute SLP cost here.
8384         (vect_update_slp_costs_according_to_vf): Remove.
8385
8386 2015-05-27  Magnus Granberg  <zorry@gentoo.org>
8387             H.J. Lu  <hongjiu.lu@intel.com>
8388
8389         * Makefile.in (COMPILER): Add @NO_PIE_CFLAGS@.
8390         (BUILD_CFLAGS): Likewise.
8391         (BUILD_CXXFLAGS): Likewise.
8392         (LINKER): Add @NO_PIE_FLAG@.
8393         (BUILD_LDFLAGS): Likewise.
8394         (libgcc.mvars): Set NO_PIE_CFLAGS to -fno-PIE for
8395         --enable-default-pie.
8396         * common.opt (fPIE): Initialize to -1.
8397         (fpie): Likewise.
8398         (no-pie): New option.
8399         (pie): Replace "Negative(shared)" with "Negative(no-pie)".
8400         * configure.ac: Add --enable-default-pie.
8401         (NO_PIE_CFLAGS): New.  Check if -fno-PIE works.  AC_SUBST.
8402         (NO_PIE_FLAG): New.  Check if -no-pie works.  AC_SUBST.
8403         * defaults.h (DEFAULT_FLAG_PIE): New.  Default PIE to -fPIE.
8404         * gcc.c (NO_PIE_SPEC): New.
8405         (PIE_SPEC): Likewise.
8406         (NO_FPIE1_SPEC): Likewise.
8407         (FPIE1_SPEC): Likewise.
8408         (NO_FPIE2_SPEC): Likewise.
8409         (FPIE2_SPEC): Likewise.
8410         (NO_FPIE2_SPEC): Likewise.
8411         (FPIE_SPEC): Likewise.
8412         (NO_FPIE_SPEC): Likewise.
8413         (NO_FPIC1_SPEC): Likewise.
8414         (FPIC1_SPEC): Likewise.
8415         (NO_FPIC2_SPEC): Likewise.
8416         (FPIC2_SPEC): Likewise.
8417         (NO_FPIC2_SPEC): Likewise.
8418         (FPIC_SPEC): Likewise.
8419         (NO_FPIC_SPEC): Likewise.
8420         (NO_FPIE1_AND_FPIC1_SPEC): Likewise.
8421         (FPIE1_OR_FPIC1_SPEC): Likewise.
8422         (NO_FPIE2_AND_FPIC2_SPEC): Likewise.
8423         (FPIE2_OR_FPIC2_SPEC): Likewise.
8424         (NO_FPIE_AND_FPIC_SPEC): Likewise.
8425         (FPIE_OR_FPIC_SPEC): Likewise.
8426         (LD_PIE_SPEC): Likewise.
8427         (LINK_PIE_SPEC): Handle -no-pie.  Use PIE_SPEC and LD_PIE_SPEC.
8428         * opts.c (finish_options): Update opts->x_flag_pie if it is -1.
8429         * config/darwin.h (PIE_SPEC): Renamed to ...
8430         (DARWIN_PIE_SPEC): This.
8431         (LINK_SPEC): Replace PIE_SPEC with DARWIN_PIE_SPEC.
8432         * config/darwin9.h (PIE_SPEC): Renamed to ...
8433         (DARWIN_PIE_SPEC): This.
8434         * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Use
8435         PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
8436         * config/openbsd.h (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and
8437         FPIE2_OR_FPIC2_SPEC.
8438         * config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
8439         * config/m68k/openbsd.h (ASM_SPEC): Likewise.
8440         * gcc/config/sol2.h (ASM_PIC_SPEC): Likewise.
8441         * config/arm/freebsd.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
8442         * config/arm/netbsd-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
8443         * config/arm/semi.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
8444         * config/cris/linux.h (CRIS_ASM_SUBTARGET_SPEC): Likewise.
8445         * config/m32r/m32r.h (ASM_SPEC): Likewise.
8446         * config/m68k/uclinux.h (DRIVER_SELF_SPECS): Likewise.
8447         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
8448         * config/rs6000/sysv4.h (ASM_SPEC): Likewise.
8449         * config/sparc/freebsd.h (ASM_SPEC): Likewise.
8450         * config/sparc/linux.h (ASM_SPEC): Likewise.
8451         * config/sparc/linux64.h (ASM_SPEC): Likewise.
8452         * config/sparc/netbsd-elf.h (ASM_SPEC): Likewise.
8453         * config/sparc/openbsd64.h (ASM_SPEC): Likewise.
8454         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
8455         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
8456         * config/sparc/sparc.h (ASM_SPEC): Likewise.
8457         * config/sparc/sysv4.h (ASM_SPEC): Likewise.
8458         * config/sparc/vxworks.h (ASM_SPEC): Likewise.
8459         * config/c6x/elf-common.h (ASM_SPEC): Use NO_FPIC2_SPEC,
8460         FPIC2_SPEC, FPIC1_SPEC and FPIC2_SPEC.
8461         * config/c6x/uclinux-elf.h (LINK_SPEC): Use FPIE_SPEC.
8462         * config/frv/frv.h (DRIVER_SELF_SPECS): Use FPIC_SPEC,
8463         NO_FPIC_SPEC and NO_FPIE1_AND_FPIC1_SPEC.
8464         (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and FPIE2_OR_FPIC2_SPEC.
8465         * config/m68k/m68k.h (ASM_PCREL_SPEC): Use FPIC_SPEC and NO_FPIC_SPEC.
8466         * config/mips/gnu-user.h (NO_SHARED_SPECS): Use NO_FPIE_AND_FPIC_SPEC.
8467         * config/mips/vxworks.h (SUBTARGET_ASM_SPEC): Use FPIC_SPEC.
8468         * config/rs6000/freebsd64.h (ASM_SPEC32): Likewise.
8469         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
8470         * config/vax/linux.h (ASM_SPEC): Likewise.
8471         * doc/install.texi: Document --enable-default-pie.
8472         * doc/invoke.texi: Document -no-pie.
8473         * config.in: Regenerated.
8474         * configure: Likewise.
8475
8476 2015-05-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
8477
8478         PR rtl-optimization/66168
8479         * loop-invariant.c (move_invariant_reg): Pass dest rather than reg to
8480         can_move_invariant_reg.
8481
8482 2015-05-27  John David Anglin  <danglin@gcc.gnu.org>
8483
8484         PR target/66148
8485         * config/pa/pa.c (pa_emit_move_sequence): Correct placement of
8486         REG_EQUAL note when doing insert.
8487
8488         * config/pa/pa.c (pa_print_operand): Use HOST_WIDE_INT_PRINT_DEC
8489         instead of "%d" for 'o' operand.
8490
8491 2015-05-27  Nathan Sidwell  <nathan@acm.org>
8492
8493         PR c++/66270
8494         * tree.c (build_pointer_type_for_mode): Canonical type does not
8495         inherit can_alias_all.
8496         (build_reference_type_for_mode): Likewise.
8497
8498 2015-05-27  Eric Botcazou  <ebotcazou@adacore.com>
8499
8500         * expr.h (array_at_struct_end_p): Move to...
8501         (array_ref_element_size): Likewise.
8502         (component_ref_field_offset): Likewise.
8503         * tree.h (array_ref_element_size): ...here.
8504         (array_at_struct_end_p): Likewise.
8505         (component_ref_field_offset): Likewise.
8506         * expr.c (array_ref_element_size): Move to...
8507         (array_ref_low_bound): Likewise.
8508         (array_at_struct_end_p): Likewise.
8509         (array_ref_up_bound): Likewise.
8510         (component_ref_field_offset): Likewise.
8511         * tree.c (array_ref_element_size): ...here.
8512         (array_ref_low_bound): Likewise.
8513         (array_ref_up_bound): Likewise.
8514         (array_at_struct_end_p): Likewise.
8515         (component_ref_field_offset): Likewise.
8516
8517 2015-05-27  Gregor Richards  <gregor.richards@uwaterloo.ca>
8518             Szabolcs Nagy  <szabolcs.nagy@arm.com>
8519
8520         * config/aarch64/aarch64-linux.h (MUSL_DYNAMIC_LINKER): Define.
8521
8522 2015-05-27  Jason Merrill  <jason@redhat.com>
8523
8524         PR bootstrap/66304
8525         * configure.ac: Use ACX_PROG_CXX_WARNING_OPTS,
8526         ACX_PROG_CXX_WARNING_ALMOST_PEDANTIC, and
8527         ACX_PROG_CXX_WARNINGS_ARE_ERRORS.
8528
8529 2015-05-22  Aditya Kumar  <hiraditya@msn.com>
8530
8531         * auto-profile.c (afdo_calculate_branch_prob): Break once has_sample
8532         is true.
8533
8534         * statistics.c (statistics_fini_pass): Print pass name.
8535
8536 2015-05-27  Richard Biener  <rguenther@suse.de>
8537
8538         PR tree-optimization/66272
8539         Revert parts of
8540         2014-08-15  Richard Biener  <rguenther@suse.de>
8541
8542         PR tree-optimization/62031
8543         * tree-data-ref.c (dr_analyze_indices): Do not set
8544         DR_UNCONSTRAINED_BASE.
8545         (dr_may_alias_p): All indirect accesses have to go the
8546         formerly DR_UNCONSTRAINED_BASE path.
8547         * tree-data-ref.h (struct indices): Remove
8548         unconstrained_base member.
8549         (DR_UNCONSTRAINED_BASE): Remove.
8550
8551 2015-05-27  Aldy Hernandez  <aldyh@redhat.com>
8552
8553         * dwarf2out.c: Remove block_map.
8554         (gen_call_site_die): Replace block_map use with BLOCK_DIE.
8555         (gen_lexical_block_die): Same.
8556         (dwarf2out_function_decl): Remove block_map use.
8557         (dwarf2out_c_finalize): Same.
8558         * tree-core.h (struct tree_block): Add die field.
8559         * tree.h (BLOCK_DIE): New.
8560
8561 2015-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8562
8563         PR target/65358
8564         * expr.c (memory_load_overlap): New function.
8565         (emit_push_insn): When pushing partial args to the stack would
8566         clobber the register part load the overlapping part into a pseudo
8567         and put it into the hard reg after pushing.  Change return type
8568         to bool.  Add bool argument.
8569         * expr.h (emit_push_insn): Change return type to bool.
8570         Add bool argument.
8571         * calls.c (expand_call): Cancel sibcall optimization when encountering
8572         partial argument on targets with ARGS_GROW_DOWNWARD and
8573         !STACK_GROWS_DOWNWARD.
8574         (emit_library_call_value_1): Update callsite of emit_push_insn.
8575         (store_one_arg): Likewise.
8576
8577 2015-05-27  Gregor Richards  <gregor.richards@uwaterloo.ca>
8578
8579         * config/arm/linux-eabi.h (MUSL_DYNAMIC_LINKER): Define.
8580
8581 2015-05-27  Martin Liska  <mliska@suse.cz>
8582
8583         * Makefile.in: Add additional dependencies related to memory report
8584         enhancement.
8585         * alloc-pool.c (allocate_pool_descriptor): Use new ctor.
8586         * bitmap.c (struct bitmap_descriptor_d): Remove.
8587         (struct loc): Likewise.
8588         (struct bitmap_desc_hasher): Likewise.
8589         (bitmap_desc_hasher::hash): Likewise.
8590         (bitmap_desc_hasher::equal): Likewise.
8591         (get_bitmap_descriptor): Likewise.
8592         (bitmap_register): User new memory descriptor API.
8593         (register_overhead): Likewise.
8594         (bitmap_find_bit): Register nsearches and search_iter statistics.
8595         (struct bitmap_output_info): Remove.
8596         (print_statistics): Likewise.
8597         (dump_bitmap_statistics): Use new memory descriptor.
8598         * bitmap.h (struct bitmap_usage): New class.
8599         * genmatch.c: Extend header file inclusion.
8600         * genpreds.c: Likewise.
8601         * ggc-common.c (struct ggc_usage): New class.
8602         (struct ggc_loc_desc_hasher): Remove.
8603         (ggc_loc_desc_hasher::hash): Likewise.
8604         (ggc_loc_desc_hasher::equal): Likewise.
8605         (struct ggc_ptr_hash_entry): Likewise.
8606         (struct ptr_hash_hasher): Likewise.
8607         (ptr_hash_hasher::hash): Likewise.
8608         (ptr_hash_hasher::equal): Likewise.
8609         (make_loc_descriptor): Likewise.
8610         (ggc_prune_ptr): Likewise.
8611         (dump_ggc_loc_statistics): Use new memory descriptor.
8612         (ggc_record_overhead): Likewise.
8613         (ggc_free_overhead): Likewise.
8614         (final_cmp_statistic): Remove.
8615         (cmp_statistic): Likewise.
8616         (ggc_add_statistics): Liekwise.
8617         (ggc_prune_overhead_list): Likewise.
8618         * hash-map-traits.h: New file.
8619         * hash-map.h (struct default_hashmap_traits): Move the traits to a
8620         separate header file.
8621         * hash-set.h: Pass memory statistics info to ctor.
8622         * hash-table.c (void dump_hash_table_loc_statistics): New function.
8623         * hash-table.h (hash_table::hash_table): Add new ctor arguments.
8624         (hash_table::~hash_table): Register memory release operation.
8625         (hash_table::alloc_entries): Handle memory allocation operation.
8626         (hash_table::expand): Likewise.
8627         * inchash.c (iterative_hash_hashval_t): Move implementation to header
8628         file.
8629         (iterative_hash_host_wide_int): Likewise.
8630         * inchash.h (class hash): Likewise.
8631         * mem-stats-traits.h: New file.
8632         * mem-stats.h: New file.
8633         (mem_location): Add new class.
8634         (mem_usage): Likewise.
8635         (mem_alloc_description): Likewise.
8636         * sese.c: Add new header file inclusision.
8637         * toplev.c (dump_memory_report): Add report for hash_table, hash_map
8638         and hash_set.
8639         * tree-sra.c: Add new header file inclusision.
8640         * vec.c (struct vec_descriptor): Remove.
8641         (hash_descriptor): Likewise.
8642         (struct vec_usage): Likewise.
8643         (struct ptr_hash_entry): Likewise.
8644         (hash_ptr): Likewise.
8645         (eq_ptr): Likewise.
8646         (vec_prefix::register_overhead): Use new memory descriptor API.
8647         (vec_prefix::release_overhead): Likewise.
8648         (add_statistics): Remove.
8649         (dump_vec_loc_statistics): Use new memory descriptor API.
8650         * vec.h (struct vec_prefix): Likewise.
8651         (va_heap::reserve): Likewise.
8652         (va_heap::release): Likewise.
8653         * emit-rtl.c (gen_raw_REG): Fix passing MEM_STAT.
8654
8655 2015-05-27  Richard Biener  <rguenther@suse.de>
8656
8657         * tree-vect-stmts.c (vectorizable_load): Initialize slp_perm
8658         earlier and remove ??? comment.
8659         (vect_analyze_stmt): If we are analyzing a pure SLP stmt
8660         and got called from loop analysis bail out.  Always pass the SLP
8661         node to the vectorizable_* functions.
8662         * tree-vect-loop.c (vect_analyze_loop_operations): Remove
8663         the premature SLP check here.
8664         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Dump hybrid
8665         detected SLP stmts.
8666         (vect_detect_hybrid_slp_1): Likewise.
8667
8668 2015-05-26  Jeff Law  <law@redhat.com>
8669
8670         * combine.c (find_split_point): Verify that the shift count is a
8671         constant when choosing (plus (ashift ...)) as a split point.
8672
8673         * tree-ssa-threadupdate.c: Replace 8 space sequences with tabs.
8674         No functional changes.
8675
8676 2015-05-26  Jan Hubicka  <hubicka@ucw.cz>
8677
8678         * ipa-polymorphic-call.c
8679         (ipa_polymorphic_call_context::get_dynamic_type): Short circuit the
8680         case when call target is already known.
8681
8682 2015-05-26  Oleg Endo  <olegendo@gcc.gnu.org>
8683
8684         PR target/65979
8685         * config/sh/sh.md (tstsi_t peephole2): Use gen_rtx_SET and
8686         take into account the case that operands[1] and operands[2]
8687         are the same register.
8688
8689 2015-05-26  Michael Matz  <matz@suse.de>
8690
8691         PR middle-end/66251
8692
8693         * tree-vect-stmts.c (vect_model_store_cost): Handled strided group
8694         stores.
8695         (vect_create_vectorized_demotion_stmts): Always set
8696         STMT_VINFO_VEC_STMT, also with SLP.
8697         (vectorizable_store): Handle strided group stores.
8698
8699 2015-05-26  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
8700
8701         PR target/66049
8702         * config/aarch64/aarch64.md
8703         (*adds_shift_imm_<mode>):  New pattern.
8704         (*subs_shift_imm_<mode>):  Likewise.
8705         (*adds_<optab><ALLX:mode>_shift_<GPI:mode>):  Likewise.
8706         (*subs_<optab><ALLX:mode>_shift_<GPI:mode>): Likewise.
8707         (*add_uxt<mode>_shift2): Likewise.
8708         (*add_uxtsi_shift2_uxtw): Likewise.
8709         (*sub_uxt<mode>_shift2): Likewise.
8710         (*sub_uxtsi_shift2_uxtw): Likewise.
8711
8712 2015-05-26  David Edelsohn  <dje.gcc@gmail.com>
8713
8714         * config/rs6000/constraints.md (Y, U): Use match_test.
8715
8716 2015-05-26  Christian Bruel  <christian.bruel@st.com>
8717
8718         PR target/52144
8719         * config/arm/arm.c (arm_option_check_internal)
8720         (arm_option_params_internal): Check opts->target_flags to set macros.
8721         (TREE_TARGET_ARM, TREE_TARGET_THUMB)
8722         (TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Replace with...
8723         (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
8724         (builtin_define): Replaced with def_or_undef_macro.
8725         * config/arm/arm.h (TREE_TARGET_ARM, TREE_TARGET_THUMB)
8726         TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Redefine with...
8727         (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
8728         (TARGET_32BIT_P, TARGET_ARM_QBIT_P, TARGET_ARM_SAT_P, TARGET_IDIV_P)
8729         (TARGET_HAVE_LDREX_P, TARGET_HAVE_LDREXBH_P, TARGET_HAVE_LDREXD_P)
8730         (TARGET_ARM_FEATURE_LDREX_P)
8731         (TARGET_DSP_MULTIPLY_P, TARGET_INT_SIMD_P): New macros.
8732         * config/arm/arm-c.c (def_or_undef_macro): New function.
8733         (arm_cpu_cpp_builtins): Use def_or_undef_macro for macros definition.
8734
8735 2015-05-26  Christian Bruel  <christian.bruel@st.com>
8736
8737         * c-common.h (builtin_define_with_int_value)
8738         (builtin_define_type_sizeof): Declare.
8739         * c-cppbuiltin.c (builtin_define_with_int_value)
8740         (builtin_define_type_sizeof): Externalize.
8741         (builtin_define_std): Cleanup declaration.
8742         * config/arm/arm-protos.h (arm_cpu_cpp_builtins): Declare.
8743         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Move macro defines into...
8744         * config/arm/arm-c.c (arm_cpu_cpp_builtins): New function.
8745         (builtin_define, builtin_assert): New macros.
8746
8747 2015-05-26  Richard Biener  <rguenther@suse.de>
8748
8749         PR tree-optimization/66142
8750         * tree-ssa-sccvn.c (vn_reference_lookup_3): Manually compare
8751         MEM_REFs for the same base address.
8752
8753 2015-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8754
8755         PR ipa/66181
8756         * tree.c (verify_type_variant): Do not check TYPE_NO_FORCE_BLK.
8757
8758 2015-05-26  Jason Merrill  <jason@redhat.com>
8759
8760         * configure.ac: Set CXXFLAGS for ISL test.
8761         * configure: Regenerate.
8762
8763         * configure.ac: Use C++ for all tests.  Use AC_CHECK_DECLS for
8764         strstr and basename.
8765         * configure: Regenerate.
8766
8767 2015-05-26  Richard Biener  <rguenther@suse.de>
8768
8769         * fold-const.c (fold_binary_loc): Move X % -Y -> X % Y and
8770         X % C -> X & (C - 1) for C being a power-of two to ...
8771         * match.pd: ... patterns.
8772
8773 2015-05-26  Marc Glisse  <marc.glisse@inria.fr>
8774
8775         * match.pd (swapped_tcc_comparison): New operator list.
8776         (-A CMP -B): New simplification.
8777         * fold-const.c (fold_comparison): Remove corresponding code.
8778
8779 2015-05-26  Richard Sandiford  <richard.sandiford@arm.com>
8780
8781         * caller-save.c (init_caller_save): Base temporary register numbers
8782         on LAST_VIRTUAL_REGISTER + 1 rather than FIRST_PSEUDO_REGISTER.
8783         * cfgloopanal.c (init_set_costs): Likewise.
8784         * dojump.c (prefer_and_bit_test): Likewise.
8785         * expr.c (init_expr_target): Likewise.
8786         * ira.c (setup_prohibited_mode_move_regs): Likewise.
8787         * lower-subreg.c (init_lower_subreg): Likewise.
8788         * postreload.c (reload_cse_regs_1): Likewise.
8789
8790 2015-05-26  Richard Sandiford  <richard.sandiford@arm.com>
8791
8792         * gensupport.h (compute_test_codes): Declare.
8793         * gensupport.c (compute_predicate_codes): Rename to...
8794         (compute_test_codes): ...this.  Generalize error message.
8795         (process_define_predicate): Update accordingly.
8796         * genpreds.c (compute_maybe_allows): Delete.
8797         (add_constraint): Use compute_test_codes to determine whether
8798         something can accept a SUBREG, REG or MEM.
8799
8800 2015-05-26  Torvald Riegel  <triegel@redhat.com>
8801
8802         * doc/extend.texi (__atomic Builtins): Use 'memory order' instead of
8803         'memory model' to align with C++11; fix description of memory orders;
8804         fix a few typos.
8805
8806 2015-05-26  Richard Biener  <rguenther@suse.de>
8807
8808         * tree-vect-loop.c (vect_update_vf_for_slp): Split out from ...
8809         (vect_analyze_loop_operations): ... here.  Remove slp parameter,
8810         detect whether we apply SLP.  Remove call to
8811         vect_update_slp_costs_according_to_vf.
8812         (vect_analyze_loop_2): Call vect_update_vf_for_slp and
8813         vect_update_slp_costs_according_to_vf from here.  Dispatch
8814         to vect_slp_analyze_operations to analyze SLP stmts.
8815         * tree-vect-slp.c (vect_slp_analyze_node_operations): Drop
8816         unused bb_vec_info parameter, adjust assert.
8817         (vect_slp_analyze_operations): Pass in the slp instance tree
8818         instead of bb_vec_info.
8819         (vect_slp_analyze_bb_1): Adjust call to vect_slp_analyze_operations.
8820         * tree-vectorizer.h (vect_slp_analyze_operations): Declare.
8821
8822 2015-05-25  Alexander Monakov  <amonakov@ispras.ru>
8823
8824         * config/i386/i386.h (enum reg_class): Move CLOBBERED_REGS prior to
8825         Q_REGS.  Expand comment.
8826         (REG_CLASS_NAMES): Ditto.
8827         (REG_CLASS_CONTENTS): Ditto.
8828
8829 2015-05-25  Uros Bizjak  <ubizjak@gmail.com>
8830
8831         PR target/66274
8832         * config/i386/i386.c (print_reg): Only print "r" for TARGET_64BIT
8833         when LEGACY_INT_REGNO_P is processed.
8834
8835 2015-05-25  Alexander Monakov  <amonakov@ispras.ru>
8836
8837         * config/i386/i386.c (ix86_function_ok_for_sibcall): Check flag_plt.
8838
8839 2015-05-25  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
8840
8841         * config/avr/avr.c (avr_out_load_psi_reg_no_disp_tiny): Restore base
8842         register if not marked dead/unused, before return.
8843
8844 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
8845
8846         PR lto/66180
8847         * ipa-devirt.c (type_with_linkage): Check that TYPE_STUB_DECL
8848         is set; check for assembler name at LTO time.
8849         (type_in_anonymous_namespace): Remove hacks, check that all
8850         anonymous types are called "<anon>"
8851         (odr_type_p): Simplify; add check for "<anon>"
8852         (odr_subtypes_equivalent): Add odr_type_p check.
8853         * tree.c (need_assembler_name_p): Even anonymous namespace needs
8854         assembler name.
8855
8856 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
8857
8858         * ipa-utils.h (method_class_type): Remove.
8859         * cgraphunit.c (walk_polymorphic_call_targets): Use
8860         TYPE_METHOD_BASETYPE.
8861         * ipa-devirt.c (type_in_anonymous_namespace_p): Check that it is called
8862         on main variants only.
8863         (method_class_type): Remove.
8864         (update_type_inheritance_graph): Use TYPE_METHOD_BASETYPE.
8865         (build_type_inheritance_graph): Likewise.
8866         * ipa-icf.c (sem_function::equals_wpa): Likewise.
8867         * pa-polymorphic-call.c (decl_maybe_in_construction_p,
8868         check_stmt_for_type_change): Use TYPE_METHOD_BASETYPE.
8869
8870 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
8871
8872         * tree.c (prototype_p, virtual_method_call_p, obj_type_ref_class,
8873         is_typedef_decl, typedef_variant_p): Constify.
8874         * tree.h (prototype_p, virtual_method_call_p, obj_type_ref_class,
8875         is_typedef_decl, typedef_variant_p): Constify.
8876
8877 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8878
8879         * defaults.h (gen_tablejump): New function.
8880         (HAVE_tablejump): Add default value.
8881         * expr.c: Adjust.
8882         * stmt.c: Likewise.
8883
8884 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8885
8886         * defaults.h (gen_store_multiple): New function.
8887         (HAVE_store_multiple): Add default value.
8888         * expr.c (move_block_from_reg): Adjust.
8889
8890 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8891
8892         * defaults.h (gen_load_multiple): New function.
8893         (HAVE_load_multiple): Add default value.
8894         * expr.c (move_block_to_reg): Adjust.
8895
8896 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8897
8898         * defaults.h (gen_mem_signal_fence): New function.
8899         (HAVE_mem_signal_fence): Add default value.
8900         * optabs.c: Adjust.
8901
8902 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8903
8904         * defaults.h (gen_memory_barrier): New function.
8905         (HAVE_memory_barrier): Add default value.
8906         * optabs.c: Adjust.
8907
8908 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8909
8910         * defaults.h (gen_mem_thread_fence): New function.
8911         (HAVE_mem_thread_fence): Add default definition.
8912         * optabs.c: Adjust.
8913
8914 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8915
8916         * combine.c (find_split_point): Check the value of HAVE_lo_sum
8917         instead of if it is defined.
8918         (combine_simplify_rtx): Likewise.
8919         * lra-constraints.c (process_address_1): Likewise.
8920         * config/darwin.c: Adjust.
8921         * genconfig.c (main): Always define HAVE_lo_sum.
8922
8923 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
8924
8925         * genmatch.c (parser::parse_operation): Reject expanding
8926         operator-list inside 'for'.
8927
8928 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
8929
8930         * genmatch.c (parser::parse_for): Reject iterator if used as
8931         operator-list.
8932
8933 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
8934
8935         * genmatch.c (parser::parse_operator_list): Check for CPP_CLOSE_PAREN
8936         after end of id-list.
8937
8938 2015-05-22  Jan Hubicka  <hubicka@ucw.cz>
8939
8940         * tree.c (gimple_canonical_types_compatible_p): Sanity check that
8941         we do not try to compute canonical type for type that does not need
8942         alias set.
8943         (verify_type): Drop FIXME for METHOD_TYPE, update FIXME for
8944         FUNCITON_TYPE.
8945         * tree.h (type_with_alias_set_p): New.
8946
8947 2015-05-22  Jan Hubicka  <hubicka@ucw.cz>
8948
8949         * tree.c (gimple_canonical_types_compatible_p):  Do not compare
8950         function attributes.
8951         (verify_type): Remove METHOD_TYPE FIXME; update FUNCTION_TYPE.
8952
8953 2015-05-22  Jim Wilson  <jim.wilson@linaro.org>
8954
8955         * Makefile.in (check_gcc_parallelize): Delete.
8956         (lang_checks_parallelized): Update comment.
8957
8958 2015-05-22  Mikhail Maltsev  <maltsevm@gmail.com>
8959
8960         PR rtl-optimization/66237
8961         * bb-reorder.c (fix_crossing_conditional_branches): Fix wrong
8962         location of an "as_a" cast.
8963
8964 2015-05-22  Jeff Law  <law@redhat.com>
8965
8966         * config/pa/pa.md (non-canonical shift-add insns): Remove.
8967         (peepholes with non-canonical RTL sources): Remove.
8968         (peepholes for indexed stores of FP regs in integer modes): Match and
8969         generate canonical RTL.
8970
8971 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
8972
8973         PR tree-optimization/63387
8974         * match.pd ((X /[ex] A) * A -> X): Remove unnecessary condition.
8975         ((x ord x) & (y ord y) -> (x ord y),
8976         (x ord x) & (x ord y) -> (x ord y)): New simplifications.
8977         * fold-const.c (tree_unary_nonnegative_warnv_p) <ABS_EXPR>: Handle
8978         vectors like scalars.
8979
8980 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
8981
8982         * convert.c (convert_to_integer, convert_to_vector): Include the
8983         types in the error message.
8984
8985 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
8986
8987         * match.pd ((x | y) & ~x -> y & ~x, (x & y) | ~x -> y | ~x): New
8988         simplifications.
8989
8990 2015-05-22  Jeff Law  <law@redhat.com>
8991
8992         * config/pa/pa.md (integer_indexed_store splitters): Use
8993         mem_shadd_operand.  Use ASHIFT rather than MULT in the resulting
8994         insns -- adjusting the constant 2nd operand accordingly.
8995
8996         * combine.c (try_combine): Canonicalize (plus (mult X pow2) Y) into
8997         (plus (ashift X log2) Y) if it is a split point.
8998
8999         * config/pa/pa.c (mem_shadd_or_shadd_rtx_p): New function factoredx
9000         out of hppa_legitimize_address to handle both forms of a multiply
9001         by 2, 4 or 8.
9002         (hppa_legitimize_address): Use mem_shadd_or_shadd_rtx_p.
9003         Always generate the ASHIFT variant as the result is not directly
9004         used in a MEM.  Update comments and refactor slightly to improve
9005         readability.
9006
9007 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9008
9009         PR target/65491
9010         * config/aarch64/aarch64.c (aarch64_short_vector_p): Move above
9011         aarch64_composite_type_p.  Remove check for aarch64_composite_type_p.
9012         (aarch64_composite_type_p): Return false if given type and mode are
9013         for a short vector.
9014
9015 2015-05-22  Richard Biener  <rguenther@suse.de>
9016
9017         * tree-vectorizer.h (struct _slp_oprnd_info): Add second_pattern
9018         member.
9019         * tree-vect-loop.c (vect_analyze_loop_operations): Look at
9020         patterns when determining whether SLP is pure.
9021         (vect_is_slp_reduction): Remove check for pattern stmts.
9022         (vect_is_simple_reduction_1): Remove dead code.
9023         * tree-vect-slp.c (vect_create_oprnd_info): Initialize second_pattern.
9024         (vect_get_and_check_slp_defs): Pass in the stmt number.
9025         Allow the first def in a reduction to be not a pattern stmt when
9026         the rest of the stmts def are patterns.
9027         (vect_build_slp_tree_1): Allow tcc_expression codes like
9028         SAD_EXPR and DOT_PROD_EXPR.
9029         (vect_build_slp_tree): Adjust.
9030         (vect_analyze_slp): Refactor and move BB vect error message ...
9031         (vect_slp_analyze_bb_1): ... here.
9032
9033 2015-05-22  Aldy Hernandez  <aldyh@redhat.com>
9034
9035         * tree-switch-conversion.c (build_one_array): Set DECL_IGNORED_P
9036         for CSWTCH temporary.
9037
9038 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9039
9040         * config/arm/arm.c (arm_new_rtx_costs): Handle UNSPEC_VOLATILE.
9041         (arm_unspec_cost): Allow UNSPEC_VOLATILE.  Do not recurse inside
9042         unknown unspecs.
9043
9044 2015-05-22  Richard Biener  <rguenther@suse.de>
9045
9046         PR tree-optimization/66251
9047         * tree-vect-stmts.c (vectorizable_conversion): Properly
9048         set STMT_VINFO_VEC_STMT even for the SLP case.
9049
9050 2015-05-22  Marek Polacek  <polacek@redhat.com>
9051
9052         * doc/extend.texi: Use @pxref instead of @xref.
9053
9054 2015-05-22  hiraditya  <hiraditya@msn.com>
9055
9056         * gimple.h (gimple_expr_type): Refactor to make it concise. Remove
9057         redundant if.
9058
9059 2015-05-22  Richard Biener  <rguenther@suse.de>
9060
9061         PR tree-optimization/65701
9062         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
9063         Move peeling cost models into one place.  Peel for alignment
9064         for single loads only if an aligned load is cheaper than
9065         an unaligned load.
9066
9067 2015-05-22  Marek Polacek  <polacek@redhat.com>
9068
9069         PR c/47043
9070         * doc/extend.texi (Enumerator Attributes): New section.
9071         Document syntax of enumerator attributes.
9072
9073 2015-05-22  Richard Biener  <rguenther@suse.de>
9074
9075         * tree-vect-loop.c (get_reduction_op): New function.
9076         (vect_model_reduction_cost): Use it, add reduc_index parameter.
9077         Make ready for BB reductions.
9078         (vect_create_epilog_for_reduction): Use get_reduction_op.
9079         (vectorizable_reduction): Init reduc_index to a valid value.
9080         Adjust vect_model_reduction_cost call.
9081         * tree-vect-slp.c (vect_get_constant_vectors): Use the proper
9082         operand for reduction defaults.  Add SAD_EXPR support.
9083         Assert we have a neutral op for SLP reductions.
9084         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): When
9085         walking pattern stmt ops only recurse to SSA names.
9086
9087 2015-05-22  Richard Biener  <rguenther@suse.de>
9088
9089         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Replace
9090         assert with guard, remove check on detected reduction.
9091         (vect_recog_sad_pattern): Likewise.
9092         (vect_recog_widen_sum_pattern): Likewise.
9093
9094 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9095
9096         * config/aarch64/arm_neon.h (vaeseq_u8): Add __extension__ and
9097         __always_inline__ attribute.
9098         (vaesdq_u8): Likewise.
9099         (vaesmcq_u8): Likewise.
9100         (vaesimcq_u8): Likewise.
9101         (vsha1cq_u32): Likewise.
9102         (vsha1mq_u32): Likewise.
9103         (vsha1pq_u32): Likewise.
9104         (vsha1h_u32): Likewise.
9105         (vsha1su0q_u32): Likewise.
9106         (vsha1su1q_u32): Likewise.
9107         (vsha256hq_u32): Likewise.
9108         (vsha256h2q_u32): Likewise.
9109         (vsha256su0q_u32): Likewise.
9110         (vsha256su1q_u32): Likewise.
9111         (vmull_p64): Likewise.
9112         (vmull_high_p64): Likewise.
9113
9114 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9115
9116         * final.c (final_scan_insn): Don't check HAVE_peephole with the
9117         preprocessor.
9118         * output.h: Likewise.
9119         * genconfig.c (main): Alwways define HAVE_peephole.
9120         * genpeep.c: Don't emit checks of HAVE_peephole.
9121
9122 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9123
9124         * combine.c, expmed.c, expr.c, optabs.c optabs.h, toplev.c: DOn't
9125         check HAVE_conditional_move with the preprocessor.
9126
9127 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9128
9129         * genconfig.c (main): Always define HAVE_conditional_move.
9130         * combine.c, expmed.c, expr.c, ifcvt.c, optabs.c, optabs.h,
9131         toplev.c, tree-ssa-phiopt.c: Don't check if HAVE_conditional_move
9132         is defined.
9133
9134 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9135
9136         * combine.c, df-problems.c, df-scan.c, emit-rtl.c, reginfo.c,
9137         reload.c, rtlanal.c: Remove comparison of ARG_FRAME_POINTER_REGNUM
9138         and FRAME_POINTER_REGNUM with the preprocessor.
9139
9140 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9141
9142         * defaults.h: Add default for STACK_PUSH_CODE.
9143         * expr.c: Don't redefine STACK_PUSH_CODE.
9144         * recog.c: Likewise.
9145
9146 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9147
9148         * builtins.c, dwarf2cfi.c, explow.c, expr.c, recog.c,
9149         sched-deps.c: Use if instead of preprocessor checks with
9150         STACK_GROWS_DOWNWARD.
9151
9152 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9153
9154         * *.c: Check the value of STACK_GROWS_DOWNWARD rather than if it
9155         is defined.
9156         * config/**/*.h: Define STACK_GROWS_DOWNWARD to an integer.
9157         * defaults.h: Provide default for STACK_GROWS_DOWNWARD.
9158         * doc/tm.texi.in: Update references to STACK_GROWS_DOWNWARD.
9159         * doc/tm.texi: Regenerate.
9160
9161 2015-05-21  H.J. Lu  <hongjiu.lu@intel.com>
9162
9163         PR target/66232
9164         * config/i386/constraints.md (Bg): New constraint for GOT memory
9165         operand.
9166         * config/i386/i386.md (*call_got_x32): New pattern.
9167         (*call_value_got_x32): Likewise.
9168         * config/i386/predicates.md (GOT_memory_operand): New predicate.
9169
9170 2015-05-21  Jakub Jelinek  <jakub@redhat.com>
9171
9172         PR tree-optimization/66233
9173         * match.pd (ocvt (icvt@1 @0)): Don't handle vector types.
9174         Simplify.
9175
9176 2015-05-21  Jeff Law  <law@redhat.com>
9177
9178         * config/pa/pa.md (add-with-constant splitter): Use ASHIFT rather
9179         than MULT for shadd sequences.
9180
9181 2015-05-08  Jan Hubicka  <hubicka@ucw.cz>
9182
9183         * alias.c (alias_stats): New static var.
9184         (alias_sets_conflict_p, alias_sets_must_conflict_p): Update stats.
9185         (dump_alias_stats_in_alias_c): New function.
9186         * alias.h (dump_alias_stats_in_alias_c): Declare.
9187         * tree-ssa-alias.c (dump_alias_stats): Call it.
9188
9189 2015-05-08  Michael Matz  <matz@suse.de>
9190
9191         * tree-vectorizer.h (struct _stmt_vec_info): Rename stride_load_p
9192         to strided_p.
9193         (STMT_VINFO_STRIDE_LOAD_P): Rename to ...
9194         (STMT_VINFO_STRIDED_P): ... this.
9195         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust.
9196         (vect_verify_datarefs_alignment): Likewise.
9197         (vect_enhance_data_refs_alignment): Likewise.
9198         (vect_analyze_data_ref_access): Likewise.
9199         (vect_analyze_data_refs): Accept strided stores.
9200         * tree-vect-stmts.c (vect_model_store_cost): Count strided stores.
9201         (vect_model_load_cost): Adjust for macro rename.
9202         (vectorizable_mask_load_store): Likewise.
9203         (vectorizable_load): Likewise.
9204         (vectorizable_store): Open code strided stores.
9205
9206 2015-05-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9207
9208         * doc/sourcebuild.texi (7.2.3.9 Other hardware attributes):
9209         Document sqrt_insn.
9210
9211 2015-05-21  Richard Biener  <rguenther@suse.de>
9212
9213         PR c++/66211
9214         * match.pd: Guard pattern optimzing (int)(float)int
9215         conversions to apply only on GIMPLE.
9216
9217 2015-05-21  Jeff Law  <law@redhat.com>
9218
9219         * combine.c (find_split_point): Handle ASHIFT like MULT to encourage
9220         multiply-accumulate/shift-add insn generation.
9221
9222 2015-05-21  Oleg Endo  <olegendo@gcc.gnu.org>
9223
9224         PR target/54236
9225         * config/sh/sh.md (*round_int_even): Reject pattern if operands[0] and
9226         operands[1] are the same.
9227
9228 2015-05-21  Ilya Enkovich  <enkovich.gnu@gmail.com>
9229
9230         PR middle-end/66221
9231         * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Use
9232         build_distinct_type_copy to copy bounds.
9233
9234 2015-05-21  Thomas Schwinge  <thomas@codesourcery.com>
9235
9236         * genrecog.c (MAX_DEPTH, MIN_NUM_STATEMENTS, MAX_NUM_STATEMENTS):
9237         Change to unsigned int.
9238
9239 2015-05-20  Jeff Law  <law@redhat.com>
9240
9241         * config/pa/pa.c (pa_print_operand): New 'o' output modifier.
9242         (pa_mem_shadd_constant_p): Renamed from pa_shadd_constant_p.
9243         (pa_shadd_constant_p): Allow constants for shadd insns rather
9244         than valid scaling constants for memory addresses.
9245         * config/pa/pa-protos.h (pa_mem_shadd_constant_p): Add prototype.
9246         * config/pa/predicates.md (mem_shadd_operand): New predicate.
9247         * config/pa/pa.md (shift-add insns using MULT): Use mem_shadd_operand.
9248         (shift-add insns using ASHIFT): New patterns.
9249
9250 2015-05-20  Mikhail Maltsev  <maltsevm@gmail.com>
9251
9252         * bb-reorder.c (set_edge_can_fallthru_flag): Use rtx_jump_insn where
9253         feasible.
9254         (fix_up_fall_thru_edges): Likewise.
9255         (fix_crossing_conditional_branches): Likewise. Promote jump targets
9256         from to rtx_insn to rtx_code_label where feasible.
9257         * bt-load.c (move_btr_def): Remove as-a cast of the value returned by
9258         gen_move_insn (returned type changed to rtx_insn).
9259         * builtins.c (expand_errno_check): Fix arguments of
9260         do_compare_rtx_and_jump (now expects rtx_code_label).
9261         (expand_builtin_acc_on_device): Likewise.
9262         * cfgcleanup.c (try_simplify_condjump): Add cast when calling
9263         invert_jump (now exprects rtx_jump_insn).
9264         * cfgexpand.c (label_rtx_for_bb): Promote return type to rtx_code_label.
9265         (construct_init_block): Use rtx_code_label.
9266         * cfgrtl.c (block_label): Promote return type to rtx_code_label.
9267         (try_redirect_by_replacing_jump): Use cast to rtx_jump_insn when
9268         calling redirect_jump.
9269         (patch_jump_insn): Likewise.
9270         (redirect_branch_edge): Likewise.
9271         (force_nonfallthru_and_redirect): Likewise.
9272         (fixup_reorder_chain): Explicitly use rtx_jump_insn instead of rtx_insn
9273         when suitable.
9274         (rtl_lv_add_condition_to_bb): Update call of do_compare_rtx_and_jump.
9275         * cfgrtl.h: Promote return type of block_label to rtx_code_label.
9276         * config/bfin/bfin.c (hwloop_optimize): Fix call of emit_label_before.
9277         * config/i386/i386.c (ix86_emit_cmove): Explicitly use rtx_code_label
9278         to store the value retured by gen_label_rtx.
9279         * config/mips/mips.c (mips16_split_long_branches): Promote rtx_insn to
9280         rtx_jump_insn.
9281         * config/sh/sh.c (gen_far_branch): Likewise. Fix call of invert_jump.
9282         (split_branches): Fix calls of redirect_jump.
9283         * dojump.c (jumpifnot): Promote argument type from rtx to
9284         rtx_code_label.
9285         (jumpifnot_1): Likewise.
9286         (jumpif): Likewise.
9287         (jumpif_1): Likewise.
9288         (do_jump_1): Likewise.
9289         (do_jump): Likewise. Use rtx_code_label when feasible.
9290         (do_jump_by_parts_greater_rtx): Likewise.
9291         (do_jump_by_parts_zero_rtx): Likewise.
9292         (do_jump_by_parts_equality_rtx): Likewise.
9293         (do_compare_rtx_and_jump): Likewise.
9294         * dojump.h: Update function prototypes.
9295         * dse.c (emit_inc_dec_insn_before): Remove case (gen_move_insn now
9296         returns rtx_insn).
9297         * emit-rtl.c (emit_jump_insn_before_noloc): Promote return type to
9298         rtx_jump_insn.
9299         (emit_label_before): Likewise.
9300         (emit_jump_insn_after_noloc): Likewise.
9301         (emit_jump_insn_after_setloc): Likewise.
9302         (emit_jump_insn_after): Likewise
9303         (emit_jump_insn_before_setloc): Likewise.
9304         (emit_jump_insn_before): Likewise.
9305         (emit_label_before): Promote return type to rtx_code_label.
9306         (emit_label): Likewise.
9307         * except.c (sjlj_emit_dispatch_table): Use jump_target_rtx.
9308         * explow.c (emit_stack_save): Use gen_move_insn_uncast instead of
9309         gen_move_insn.
9310         (emit_stack_restore): Likewise.
9311         * expmed.c (emit_store_flag_force): Fix calls of do_compare_rtx_and_jump.
9312         (do_cmp_and_jump): Likewise.
9313         * expr.c (expand_expr_real_2): Likewise. Promote some local variables
9314         from rtx to rtx_code_label.
9315         (gen_move_insn_uncast): New function.
9316         * expr.h: Update return type of gen_move_insn (promote to rtx_insn).
9317         * function.c (convert_jumps_to_returns): Fix call of redirect_jump.
9318         * gcse.c (pre_insert_copy_insn): Use rtx_insn instead of rtx.
9319         * ifcvt.c (dead_or_predicable): Use rtx_jump_insn when calling
9320         invert_jump_1 and redirect_jump_1.
9321         * internal-fn.c (expand_arith_overflow_result_store): Fix call of
9322         do_compare_rtx_and_jump.
9323         (expand_addsub_overflow): Likewise.
9324         (expand_neg_overflow): Likewise.
9325         (expand_mul_overflow): Likewise.
9326         * ira.c (split_live_ranges_for_shrink_wrap): Use rtx_insn for
9327         return value of gen_move_insn.
9328         * jump.c (redirect_jump): Promote argument from rtx to rtx_jump_insn.
9329         * loop-doloop.c (add_test): Use rtx_code_label.
9330         (doloop_modify): Likewise.
9331         (doloop_optimize): Likewise.
9332         * loop-unroll.c (compare_and_jump_seq): Promote rtx to rtx_code_label.
9333         * lra-constraints.c (emit_spill_move): Remove cast of value returned
9334         by gen_move_insn.
9335         (inherit_reload_reg): Add cast when calling dump_insn_slim.
9336         (split_reg): Likewise.
9337         * modulo-sched.c (schedule_reg_moves): Remove cast of value returned by
9338         gen_move_insn.
9339         * optabs.c (expand_binop_directly): Remove casts of values returned by
9340         maybe_gen_insn.
9341         (expand_unop_direct): Likewise.
9342         (expand_abs): Likewise.
9343         (maybe_emit_unop_insn): Likewise.
9344         (maybe_gen_insn): Promote return type to rtx_insn.
9345         * optabs.h: Update prototype of maybe_gen_insn.
9346         * postreload-gcse.c (eliminate_partially_redundant_load): Remove
9347         redundant cast.
9348         * recog.c (struct peep2_insn_data): Promote type of insn field to
9349         rtx_insn.
9350         (peep2_reinit_state): Use NULL instead of NULL_RTX.
9351         (peep2_attempt): Remove casts of insn in peep2_insn_data.
9352         (peep2_fill_buffer): Promote argument from rtx to rtx_insn
9353         * recog.h (struct insn_gen_fn): Promote return types of function
9354         pointers and operator ().from rtx to rtx_insn.
9355         * reorg.c (fill_simple_delay_slots): Promote rtx_insn to rtx_jump_insn.
9356         (fill_eager_delay_slots): Likewise.
9357         (relax_delay_slots): Likewise.
9358         (make_return_insns): Likewise.
9359         (dbr_schedule): Likewise.
9360         (optimize_skips): Likewise.
9361         (reorg_redirect_jump): Likewise.
9362         (fill_slots_from_thread): Likewise.
9363         * reorg.h: Update prototypes.
9364         * resource.c (find_dead_or_set_registers): Use dyn_cast to
9365         rtx_jump_insn instead of check.  Use it's jump_target method.
9366         * rtl.h (rtx_jump_insn::jump_label): Define new method.
9367         (rtx_jump_insn::jump_target): Define new method.
9368         (rtx_jump_insn::set_jump_target): Define new method.
9369         * rtlanal.c (tablejump_p): Promote type of one local variable.
9370         * sched-deps.c (sched_analyze_2): Promote rtx to rtx_insn_list.
9371         (sched_analyze_insn): Likewise.
9372         * sched-vis.c (print_insn_with_notes): Promote rtx to rtx_insn.
9373         (print_insn): Likewise.
9374         * stmt.c (label_rtx): Promote return type to rtx_insn.
9375         (force_label_rtx): Likewise.
9376         (jump_target_rtx): Define new function.
9377         (expand_label): Use it, get rid of one cast.
9378         (expand_naked_return): Promote rtx to rtx_code_label.
9379         (do_jump_if_equal): Fix do_compare_rtx_and_jump call.
9380         (expand_case): Use rtx_code_label instread of rtx where feasible.
9381         (expand_sjlj_dispatch_table): Likewise.
9382         (emit_case_nodes): Likewise.
9383         * stmt.h: Declare jump_target_rtx.  Update prototypes.  Fix comments.
9384         * store-motion.c (insert_store): Make use of new return type of
9385         gen_move_insn and remove a cast.
9386         (replace_store_insn): Likewise.
9387
9388 2015-05-20  Max Filippov  <jcmvbkbc@gmail.com>
9389
9390         * config/xtensa/xtensa.c (init_alignment_context): Replace MULT
9391         by BITS_PER_UNIT with ASHIFT by exact_log2 (BITS_PER_UNIT).
9392
9393 2015-05-20  Jeff Law  <law@redhat.com>
9394
9395         * tree-ssa-threadupdate.c (mark_threaded_blocks): Properly
9396         dispose of the jump thread path when the jump threading
9397         opportunity is cancelled.
9398
9399 2015-05-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9400
9401         * diagnostic.c (diagnostic_print_caret_line): Fix off-by-one error
9402         when printing the caret character.
9403
9404 2015-05-20  Marek Polacek  <polacek@redhat.com>
9405
9406         * cfgexpand.c (expand_debug_expr): Use UNARY_CLASS_P.
9407
9408 2015-05-20  Marek Polacek  <polacek@redhat.com>
9409
9410         * expr.c (expand_cond_expr_using_cmove): Use COMPARISON_CLASS_P.
9411         * gimple-expr.c (gimple_cond_get_ops_from_tree): Likewise.
9412         * gimple-fold.c (canonicalize_bool): Likewise.
9413         (same_bool_result_p): Likewise.
9414         * tree-if-conv.c (parse_predicate): Likewise.
9415
9416 2015-05-20  Marek Polacek  <polacek@redhat.com>
9417
9418         * gimple-fold.c (fold_const_aggregate_ref_1): Use DECL_P.
9419         * gimplify.c (gimplify_modify_expr_rhs): Likewise.
9420
9421 2015-05-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9422
9423         * config/aarch64/aarch64.c (aarch64_class_max_nregs):
9424         Use UNITS_PER_VREG and UNITS_PER_WORD instead of their direct
9425         values.
9426
9427 2015-05-20  Robert Suchanek  <robert.suchanek@imgtec.com>
9428
9429         * config/mips/mips.h (micromips_globals): Declare.
9430
9431 2015-05-20  David Malcolm  <dmalcolm@redhat.com>
9432
9433         * timevar.def (TV_INITIALIZE_RTL): New.
9434         * toplev.c (initialize_rtl): Use an auto_timevar to account this
9435         function's time to TV_INITIALIZE_RTL.
9436
9437 2015-05-20  Ilya Enkovich  <enkovich.gnu@gmail.com>
9438
9439         * tree-chkp.c (chkp_maybe_copy_and_register_bounds): Remove useless
9440         gimple_build_nop calls.
9441         (chkp_find_bounds_for_elem): Likewise.
9442         (chkp_get_zero_bounds): Likewise.
9443         (chkp_get_none_bounds): Likewise.
9444         (chkp_get_bounds_by_definition): Likewise.
9445         (chkp_generate_extern_var_bounds): Likewise.
9446         (chkp_get_bounds_for_decl_addr): Likewise.
9447         (chkp_get_bounds_for_string_cst): Likewise.
9448
9449 2015-05-20  Bin Cheng  <bin.cheng@arm.com>
9450
9451         PR tree-optimization/65447
9452         * tree-ssa-loop-ivopts.c (struct iv_use): New fields.
9453         (dump_use, dump_uses): Support to dump sub use.
9454         (record_use): New parameters to support sub use.  Remove call to
9455         dump_use.
9456         (record_sub_use, record_group_use): New functions.
9457         (compute_max_addr_offset, split_all_small_groups): New functions.
9458         (group_address_uses, rewrite_use_address): New functions.
9459         (strip_offset): New declaration.
9460         (find_interesting_uses_address): Call record_group_use.
9461         (add_candidate): New assertion.
9462         (infinite_cost_p): Move definition forward.
9463         (add_costs): Check INFTY cost and return immediately.
9464         (get_computation_cost_at): Clear setup cost and dependent bitmap
9465         for sub uses.
9466         (determine_use_iv_cost_address): Compute cost for sub uses.
9467         (rewrite_use_address_1): Rename from old rewrite_use_address.
9468         (free_loop_data): Free sub uses.
9469         (tree_ssa_iv_optimize_loop): Call group_address_uses.
9470
9471 2015-05-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
9472             Jim Wilson  <jim.wilson@linaro.org>
9473
9474         * config/arm/aarch-common-protos.h (struct mem_cost_table): Added
9475         new  fields loadv and storev.
9476         * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
9477         Initialize loadv and storev.
9478         * config/arm/aarch-cost-tables.h (generic_extra_costs): Likewise.
9479         (cortexa53_extra_costs): Likewise.
9480         (cortexa57_extra_costs): Likewise.
9481         (xgene1_extra_costs): Likewise.
9482         * config/aarch64/aarch64.c (aarch64_rtx_costs): Update vector
9483         rtx_costs.
9484
9485 2015-05-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
9486
9487         * config/arm/arm.c (cortexa9_extra_costs): Initialize loadv and
9488          storev.
9489         (cortexa8_extra_costs): Likewise.
9490         (cortexa5_extra_costs): Likewise.
9491         (cortexa7_extra_costs): Likewise.
9492         (cortexa12_extra_costs): Likewise.
9493         (cortexa15_extra_costs): Likewise.
9494         (v7m_extra_costs): Likewise.
9495
9496 2015-05-20  Jeff Law  <law@redhat.com>
9497
9498         * tree-ssa-threadupdate.c (thread_single_edge): Use delete_jump_thread
9499         instead of open-coded version.  Also delete the jump thread created
9500         within this function.
9501
9502 2015-05-20  Alan Modra  <amodra@gmail.com>
9503
9504         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Return
9505         stack adjusting insn.  Formatting.
9506         (rs6000_emit_prologue): Track stack adjusting insn, and use of
9507         r12.  If possible, emit first -fsplit-stack arg pointer insn
9508         before stack adjust.  Don't use r12 to save cr if split-stack.
9509
9510 2015-05-20  Alan Modra  <amodra@gmail.com>
9511
9512         * common/config/rs6000/rs6000-common.c (TARGET_SUPPORTS_SPLIT_STACK):
9513         Define.
9514         (rs6000_supports_split_stack): New function.
9515         * gcc/config/rs6000/rs6000.c (machine_function): Add
9516         split_stack_arg_pointer.
9517         (TARGET_EXTRA_LIVE_ON_ENTRY, TARGET_INTERNAL_ARG_POINTER): Define.
9518         (setup_incoming_varargs): Use crtl->args.internal_arg_pointer
9519         rather than virtual_incoming_args_rtx.
9520         (rs6000_va_start): Likewise.
9521         (split_stack_arg_pointer_used_p): New function.
9522         (rs6000_emit_prologue): Set up arg pointer for -fsplit-stack.
9523         (morestack_ref): New var.
9524         (gen_add3_const, rs6000_expand_split_stack_prologue,
9525         rs6000_internal_arg_pointer, rs6000_live_on_entry,
9526         rs6000_split_stack_space_check): New functions.
9527         (rs6000_elf_file_end): Call file_end_indicate_split_stack.
9528         * gcc/config/rs6000/rs6000.md (UNSPEC_STACK_CHECK): Define.
9529         (UNSPECV_SPLIT_STACK_RETURN): Define.
9530         (split_stack_prologue, load_split_stack_limit,
9531         load_split_stack_limit_di, load_split_stack_limit_si,
9532         split_stack_return, split_stack_space_check): New expands and insns.
9533         * gcc/config/rs6000/rs6000-protos.h
9534         (rs6000_expand_split_stack_prologue): Declare.
9535         (rs6000_split_stack_space_check): Declare.
9536
9537 2015-05-20  Alan Modra  <amodra@gmail.com>
9538
9539         * config/rs6000/rs6000.c (struct rs6000_stack): Correct comments.
9540         (direct_return): Test vrsave_size rather than vrsave_mask.
9541         (rs6000_emit_prologue): Likewise.  Remove redundant altivec tests.
9542         (rs6000_emit_epilogue): Likewise.
9543
9544 2015-05-20  Alan Modra  <amodra@gmail.com>
9545
9546         * config/rs6000/rs6000.c (rs6000_stack_info): Don't zero offsets
9547         when not saving registers.
9548         (debug_stack_info): Adjust to omit printing unused offsets,
9549         as before.
9550         (rs6000_emit_epilogue): Adjust use_backchain_to_restore_sp
9551         expression.
9552
9553 2015-05-19  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9554
9555         PR c++/65835
9556         * config/i386/winnt.c (struct wrapped_symbol_hasher): Change
9557         value_type to const char *.
9558
9559 2015-05-19  Sandra Loosemore  <sandra@codesourcery.com>
9560
9561         * config.gcc [powerpc*-*-linux*]: Allow --enable-targets=all
9562         to build a biarch toolchain again.
9563
9564 2015-05-19  Jan Hubicka  <hubicka@ucw.cz>
9565
9566         * ipa-devirt.c (type_in_anonymous_namespace_p): Return true
9567         or implicit declarations.
9568         (odr_type_p): Check that TYPE_NAME is TYPE_DECL before looking
9569         into it.
9570         (get_odr_type): Check type has linkage before adding bases.
9571         (register_odr_type): Check that type has linkage before adding it.
9572         (type_known_to_have_no_deriavations_p): Rename to ..
9573         (type_known_to_have_no_derivations_p): This one.
9574         * ipa-utils.h (type_known_to_have_no_deriavations_p): Rename to ..
9575         (type_known_to_have_no_derivations_p): This one.
9576         * ipa-polymorphic-call.c
9577         (ipa_polymorphic_call_context::restrict_to_inner_type): Check that
9578         type has linkage.
9579
9580 2015-05-19  Eric Botcazou  <ebotcazou@adacore.com>
9581
9582         * stor-layout.c (finalize_type_size): Use AGGREGATE_TYPE_P.
9583         (layout_type): Use RECORD_OR_UNION_TYPE_P.
9584
9585 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9586
9587         * config/s390/s390.c (s390_vector_bool_type_p): New function.
9588         (s390_invalid_binary_op): New function.
9589         (TARGET_INVALID_BINARY_OP): Define macro.
9590
9591 2015-05-19  David Sherwood  <david.sherwood@arm.com>
9592
9593         * loop-invariant.c (create_new_invariant): Don't calculate address cost
9594         if mode is not a scalar integer.
9595         (get_inv_cost): Increase computational cost for unused invariants.
9596
9597 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9598
9599         * config.gcc: Add vecintrin.h to extra_headers.  Add s390-c.o to
9600         c_target_objs and cxx_target_objs.  Add t-s390 to tmake_file.
9601         * config/s390/s390-builtin-types.def: New file.
9602         * config/s390/s390-builtins.def: New file.
9603         * config/s390/s390-builtins.h: New file.
9604         * config/s390/s390-c.c: New file.
9605         * config/s390/s390-modes.def: Add modes CCVEQANY, CCVH,
9606         CCVHANY, CCVHU, CCVHUANY, CCVFHANY, CCVFHEANY.
9607         * config/s390/s390-protos.h (s390_expand_vec_compare_cc)
9608         (s390_cpu_cpp_builtins, s390_register_target_pragmas): Add
9609         prototypes.
9610         * config/s390/s390.c (s390-builtins.h, s390-builtins.def):
9611         Include.
9612         (flags_builtin, flags_overloaded_builtin_var, s390_builtin_types)
9613         (s390_builtin_fn_types, s390_builtin_decls, code_for_builtin): New
9614         variable definitions.
9615         (s390_const_operand_ok): New function.
9616         (s390_expand_builtin): Rewrite.
9617         (s390_init_builtins): New function.
9618         (s390_handle_vectorbool_attribute): New function.
9619         (s390_attribute_table): Add s390_vector_bool attribute.
9620         (s390_match_ccmode_set): Handle new cc modes CCVH, CCVHU.
9621         (s390_branch_condition_mask): Generate masks for new modes.
9622         (s390_expand_vec_compare_cc): New function.
9623         (s390_mangle_type): Add mangling for vector bool types.
9624         (enum s390_builtin): Remove.
9625         (s390_atomic_assign_expand_fenv): Rename constants for sfpc and
9626         efpc builtins.
9627         * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Call
9628         s390_cpu_cpp_builtins.
9629         (REGISTER_TARGET_PRAGMAS): New macro.
9630         * config/s390/s390.md: Define more UNSPEC_VEC_* constants.
9631         (insn_cmp mode attribute): Add new CC modes.
9632         (s390_sfpc, s390_efpc): Rename patterns to sfpc and efpc.
9633         (lcbb): New pattern definition.
9634         * config/s390/s390intrin.h: Include vecintrin.h.
9635         * config/s390/t-s390: New file.
9636         * config/s390/vecintrin.h: New file.
9637         * config/s390/vector.md: Include vx-builtins.md.
9638         * config/s390/vx-builtins.md: New file.S/390 zvector builtin
9639         support.
9640
9641 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9642
9643         * config/s390/s390-modes.def: Add new modes CCVEQ, CCVFH, and
9644         CCVFHE.
9645         * config/s390/s390.c (s390_match_ccmode_set): Handle new modes.
9646         (s390_select_ccmode): Likewise.
9647         (s390_canonicalize_comparison): Swap operands if necessary.
9648         (s390_expand_vec_compare_scalar): Expand DFmode compare using
9649         single element vector instructions.
9650         (s390_emit_compare): Call s390_expand_vec_compare_scalar.
9651         (s390_branch_condition_mask): Generate CC masks for the new modes.
9652         * config/s390/s390.md (v0, vf, vd): New mode attributes.
9653         (VFCMP, asm_fcmp, insn_cmp): New mode iterator and attributes.
9654         (*vec_cmp<insn_cmp>df_cconly, *fixuns_truncdfdi2_z13)
9655         (*fix_trunc<BFP:mode><GPR:mode>2_bfp, *floatunsdidf2_z13)
9656         (*floatuns<GPR:mode><FP:mode>2, *extendsfdf2_z13)
9657         (*extend<DSF:mode><BFP:mode>2): New insn definition.
9658         (fix_trunc<BFP:mode><GPR:mode>2_bfp, loatuns<GPR:mode><FP:mode>2)
9659         (extend<DSF:mode><BFP:mode>2): Turn into expander.
9660         (floatdi<mode>2, truncdfsf2, add<mode>3, sub<mode>3, mul<mode>3)
9661         (div<mode>3, *neg<mode>2, *abs<mode>2, *negabs<mode>2)
9662         (sqrt<mode>2): Add vector instruction.
9663
9664 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9665
9666         * config/s390/constraints.md (j00, jm1, jxx, jyy, v): New
9667         constraints.
9668         * config/s390/predicates.md (const0_operand, constm1_operand)
9669         (constable_operand): Accept vector operands.
9670         * config/s390/s390-modes.def: Add supported vector modes.
9671         * config/s390/s390-protos.h (s390_cannot_change_mode_class)
9672         (s390_function_arg_vector, s390_contiguous_bitmask_vector_p)
9673         (s390_bytemask_vector_p, s390_expand_vec_strlen)
9674         (s390_expand_vec_compare, s390_expand_vcond)
9675         (s390_expand_vec_init): Add prototypes.
9676         * config/s390/s390.c (VEC_ARG_NUM_REG): New macro.
9677         (s390_vector_mode_supported_p): New function.
9678         (s390_contiguous_bitmask_p): Mask out the irrelevant bits.
9679         (s390_contiguous_bitmask_vector_p): New function.
9680         (s390_bytemask_vector_p): New function.
9681         (s390_split_ok_p): Vector regs don't work either.
9682         (regclass_map): Add VEC_REGS.
9683         (s390_legitimate_constant_p): Handle vector constants.
9684         (s390_cannot_force_const_mem): Handle CONST_VECTOR.
9685         (legitimate_reload_vector_constant_p): New function.
9686         (s390_preferred_reload_class): Handle CONST_VECTOR.
9687         (s390_reload_symref_address):  Likewise.
9688         (s390_secondary_reload): Vector memory instructions only support
9689         short displacements.  Rename reload*_nonoffmem* to reload*_la*.
9690         (s390_emit_ccraw_jump): New function.
9691         (s390_expand_vec_strlen): New function.
9692         (s390_expand_vec_compare): New function.
9693         (s390_expand_vcond): New function.
9694         (s390_expand_vec_init): New function.
9695         (s390_dwarf_frame_reg_mode): New function.
9696         (print_operand): Handle addresses with 'O' and 'R' constraints.
9697         (NR_C_MODES, constant_modes): Add vector modes.
9698         (s390_output_pool_entry): Handle vector constants.
9699         (s390_hard_regno_mode_ok): Handle vector registers.
9700         (s390_class_max_nregs): Likewise.
9701         (s390_cannot_change_mode_class): New function.
9702         (s390_invalid_arg_for_unprototyped_fn): New function.
9703         (s390_function_arg_vector): New function.
9704         (s390_function_arg_float): Remove size variable.
9705         (s390_pass_by_reference): Handle vector arguments.
9706         (s390_function_arg_advance): Likewise.
9707         (s390_function_arg): Likewise.
9708         (s390_return_in_memory): Vector values are returned in a VR if
9709         possible.
9710         (s390_function_and_libcall_value): Handle vector arguments.
9711         (s390_gimplify_va_arg): Likewise.
9712         (s390_call_saved_register_used): Consider the arguments named.
9713         (s390_conditional_register_usage): Disable v16-v31 for non-vec
9714         targets.
9715         (s390_preferred_simd_mode): New function.
9716         (s390_support_vector_misalignment): New function.
9717         (s390_vector_alignment): New function.
9718         (TARGET_STRICT_ARGUMENT_NAMING, TARGET_DWARF_FRAME_REG_MODE)
9719         (TARGET_VECTOR_MODE_SUPPORTED_P)
9720         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN)
9721         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
9722         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT)
9723         (TARGET_VECTOR_ALIGNMENT): Define target macro.
9724         * config/s390/s390.h (FUNCTION_ARG_PADDING): Define macro.
9725         (FIRST_PSEUDO_REGISTER): Increase value.
9726         (VECTOR_NOFP_REGNO_P, VECTOR_REGNO_P, VECTOR_NOFP_REG_P)
9727         (VECTOR_REG_P): Define macros.
9728         (FIXED_REGISTERS, CALL_USED_REGISTERS)
9729         (CALL_REALLY_USED_REGISTERS, REG_ALLOC_ORDER)
9730         (HARD_REGNO_CALL_PART_CLOBBERED, REG_CLASS_NAMES)
9731         (FUNCTION_ARG_REGNO_P, FUNCTION_VALUE_REGNO_P, REGISTER_NAMES):
9732         Add vector registers.
9733         (CANNOT_CHANGE_MODE_CLASS): Call C function.
9734         (enum reg_class): Add VEC_REGS, ADDR_VEC_REGS, GENERAL_VEC_REGS.
9735         (SECONDARY_MEMORY_NEEDED): Allow SF<->SI mode moves without
9736         memory.
9737         (DBX_REGISTER_NUMBER, FIRST_VEC_ARG_REGNO, LAST_VEC_ARG_REGNO)
9738         (SHORT_DISP_IN_RANGE, VECTOR_STORE_FLAG_VALUE): Define macro.
9739         * config/s390/s390.md (UNSPEC_VEC_*): New constants.
9740         (VR*_REGNUM): New constants.
9741         (ALL): New mode iterator.
9742         (INTALL): Remove mode iterator.
9743         Include vector.md.
9744         (movti): Implement TImode moves for VRs.
9745         Disable TImode splitter for VR targets.
9746         Implement splitting TImode GPR<->VR moves.
9747         (reload*_tomem_z10, reload*_toreg_z10): Replace INTALL with ALL.
9748         (reload<mode>_nonoffmem_in, reload<mode>_nonoffmem_out): Rename to
9749         reload<mode>_la_in, reload<mode>_la_out.
9750         (*movdi_64, *movsi_zarch, *movhi, *movqi, *mov<mode>_64dfp)
9751         (*mov<mode>_64, *mov<mode>_31): Add vector instructions.
9752         (TD/TF mode splitter): Enable for GPRs only (formerly !FP).
9753         (mov<mode> SF SD): Prefer lder, lde for loading.
9754         Add lrl and strl instructions.
9755         Add vector instructions.
9756         (strlen<mode>): Rename old strlen<mode> to strlen_srst<mode>.
9757         Call s390_expand_vec_strlen on z13.
9758         (*cc_to_int): Change predicate to nonimmediate_operand.
9759         (addti3): Rename to *addti3.  New expander.
9760         (subti3): Rename to *subti3.  New expander.
9761         * config/s390/vector.md: New file.
9762
9763 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9764
9765         * common/config/s390/s390-common.c (processor_flags_table): Add
9766         z13.
9767         * config.gcc: Add z13.
9768         * config/s390/s390-opts.h (enum processor_type): Add
9769         PROCESSOR_2964_Z13.
9770         * config/s390/s390.c (s390_adjust_priority): Check for
9771         PROCESSOR_2964_Z13.
9772         (s390_reorg): Likewise.
9773         (s390_sched_reorder): Likewise.
9774         (s390_sched_variable_issue): Likewise.
9775         (s390_loop_unroll_adjust): Likewise.
9776         (s390_option_override): Likewise. Default to -mvx when available.
9777         * config/s390/s390.h (enum processor_flags): Add PF_Z13 and PF_VX.
9778         (TARGET_CPU_Z13, TARGET_CPU_VX, TARGET_Z13, TARGET_VX)
9779         (TARGET_VX_ABI): Define macros.
9780         macros.
9781         (TARGET_DEFAULT): Add MASK_OPT_VX.
9782         * config/s390/s390.md ("cpu" attribute): Add z13.
9783         ("cpu_facility" attribute): Add vec.
9784         * config/s390/s390.opt (processor_type): Add z13.
9785         (mvx): New options.
9786         * doc/invoke.texi: Add z13 option for -march.
9787
9788 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9789
9790         * config/s390/predicates.md (shift_count_or_setmem_operand): Add
9791         mode check to make sure that only scalar integer values are
9792         accepted.
9793
9794 2015-05-19  Jan Hubicka  <hubicka@ucw.cz>
9795
9796         * tree.c (verify_type_variant): Fix #undef.
9797         (gimple_canonical_types_compatible_p): Move here from lto.c
9798         (verify_type): Verify TYPE_CANONICAL compatibility.
9799         * tree.h (gimple_canonical_types_compatible_p): Declare.
9800
9801 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
9802
9803         PR middle-end/66199
9804         * tree.h (OMP_TEAMS_COMBINED): Define.
9805         * gimplify.c (enum gimplify_omp_var_data): Add
9806         GOVD_LINEAR_LASTPRIVATE_NO_OUTER.
9807         (enum omp_region_type): Add ORT_COMBINED_TEAMS.
9808         (omp_notice_variable): Accept both ORT_TEAMS
9809         and ORT_COMBINED_TEAMS.  Don't recurse if
9810         GOVD_LINEAR_LASTPRIVATE_NO_OUTER is set and either
9811         GOVD_LINEAR is set, or GOVD_LASTPRIVATE without
9812         GOVD_FIRSTPRIVATE.
9813         (omp_no_lastprivate): New function.
9814         (gimplify_scan_omp_clauses): For OMP_CLAUSE_LASTPRIVATE
9815         and OMP_CLAUSE_LINEAR, if omp_no_lastprivate, don't
9816         notice_outer and set appropriate bits, otherwise make
9817         sure default(none) combined constructs won't complain.
9818         (gimplify_adjust_omp_clauses): Remove OMP_CLAUSE_LINEAR
9819         outer special casing, for OMP_CLAUSE_LASTPRIVATE if
9820         omp_no_lastprivate either remove the clause or turn it
9821         into OMP_CLAUSE_PRIVATE.
9822         (gimplify_omp_for): Fix up handling of implicit
9823         lastprivate or linear iterators.
9824         (gimplify_omp_workshare): For OMP_TEAMS_COMBINED use
9825         ORT_COMBINED_TEAMS.
9826         * omp-low.c (lower_omp_for_lastprivate): For combined
9827         for simd use fd.loop.n2 from the for rather than simd.
9828
9829 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
9830
9831         * config/cris/cris.c (cris_expand_prologue): Use gen_raw_REG
9832         instead of gen_rtx_raw_REG.
9833         (cris_expand_epilogue): Likewise.
9834         * config/microblaze/microblaze.c (microblaze_classify_address):
9835         Likewise.
9836         * config/sparc/sparc.md: Likewise.
9837
9838 2015-05-19  Uros Bizjak  <ubizjak@gmail.com>
9839
9840         * config/alpha/alpha.c (alpha_legitimize_reload_address)
9841         (alpha_preferred_reload_class, alpha_legitimate_constant_p): Use
9842         CONST_INT_P, CONST_SCALAR_INT_P and CONST_DOUBLE_P predicates.
9843         (alpha_split_reload_pair) <case CONST_INT, case CONST_WIDE_INT>:
9844         Use CASE_CONST_SCALAR_INT.
9845         (print_operand) <case 'M'>: Use mode_width_operand to check the
9846         value of the constant.
9847         * config/alpha/alpha.md (movti): Use CONST_SCALAR_INT_P predicate.
9848         * config/alpha/predicates.md (input_operand): Use general_operand
9849         instead of match_code as operand check.
9850         (symbolic_operand): Use match_code with subexpression digits.
9851         * config/alpha/constraints.md (Q): Ditto.
9852
9853 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9854
9855         * optabs.c (expand_vec_perm): Don't re-use SEL as target operand.
9856
9857 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9858
9859         * config/s390/s390.c (s390_secondary_reload): Fix check for
9860         load/store relative.
9861
9862 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9863
9864         * recog.h: Increase MAX_RECOG_ALTERNATIVES.  Change type of
9865         alternative_mask to uint64_t.
9866
9867 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
9868
9869         PR tree-optimization/66187
9870         * match.pd ((bit_and (plus/minus (convert @0) (convert @1)) mask)):
9871         Pass TYPE_SIGN to tree_int_cst_min_precision.  If
9872         !TYPE_OVERFLOW_WRAPS, ensure @4 is non-negative.
9873
9874 2015-05-19  David Malcolm  <dmalcolm@redhat.com>
9875
9876         * diagnostic.c (diagnostic_report_current_module): Strengthen
9877         local "new_map" from const line_map * to
9878         const line_map_ordinary *.
9879         * genmatch.c (error_cb): Likewise for local "map".
9880         (output_line_directive): Likewise for local "map".
9881         * input.c (expand_location_1): Likewise for local "map".
9882         Pass NULL rather than &map to
9883         linemap_unwind_to_first_non_reserved_loc, since the value is never
9884         read from there, and the value written back not read from here.
9885         (is_location_from_builtin_token): Strengthen local "map" from
9886         const line_map * to const line_map_ordinary *.
9887         (dump_location_info): Strengthen locals "map" from
9888         line_map *, one to const line_map_ordinary *, the other
9889         to const line_map_macro *.
9890         * tree-diagnostic.c (loc_map_pair): Strengthen field "map" from
9891         const line_map * to const line_map_macro *.
9892         (maybe_unwind_expanded_macro_loc): Add a call to
9893         linemap_check_macro when writing to the "map" field of the
9894         loc_map_pair.
9895         Introduce local const line_map_ordinary * "ord_map", using it in
9896         place of "map" in the part of the function where we know we have
9897         an ordinary map.  Strengthen local "m" from const line_map * to
9898         const line_map_ordinary *.
9899
9900 2015-05-19  Nick Clifton  <nickc@redhat.com>
9901
9902         PR target/66156
9903         * config/msp430/msp430.md (zero_extendhisi2): Add support for
9904         separate source and destination registers.
9905
9906 2015-05-19  Richard Biener  <rguenther@suse.de>
9907
9908         PR tree-optimization/66165
9909         * tree-vect-slp.c (vect_supported_load_permutation_p): Add guard
9910         for no load permutation.
9911
9912         PR tree-optimization/66185
9913         * tree-vect-slp.c (vect_build_slp_tree): Properly roll back
9914         when building the SLP node from scalars.
9915
9916 2015-05-19  Eric Botcazou  <ebotcazou@adacore.com>
9917             Tristan Gingold  <gingold@adacore.com>
9918
9919         * insn-notes.def (UPDATE_SJLJ_CONTEXT): New note.
9920         * builtins.c (expand_builtin_update_setjmp_buf): Make global.
9921         (expand_stack_restore): Call record_new_stack_level.
9922         (expand_stack_save): Do not call do_pending_stack_adjust.
9923         * builtins.h (expand_builtin_update_setjmp_buf): Declare.
9924         * calls.c (expand_call): Call record_new_stack_level for alloca.
9925         * except.c (sjlj_mark_call_sites): Expand builtin_update_setjmp_buf
9926         wherever a NOTE_INSN_UPDATE_SJLJ_CONTEXT note is present.
9927         (update_sjlj_context): New global function.
9928         * except.h (update_sjlj_context): Declare.
9929         * explow.c (record_new_stack_level): New global function.
9930         (allocate_dynamic_stack_space): Call record_new_stack_level.
9931         * explow.h (record_new_stack_level): Declare.
9932         * final.c (final_scan_insn): Deal with NOTE_INSN_UPDATE_SJLJ_CONTEXT.
9933         * cfgrtl.c (duplicate_insn_chain): Likewise.
9934
9935 2015-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9936
9937         * calls.c: Always define STACK_GROWS_DOWNWARD as 0 or 1.
9938         (mem_overlaps_already_clobbered_arg_p): Rewrite ifdef
9939         STACK_GROWS_DOWNWARD as normal if.
9940         (expand_call): Likewise.
9941
9942 2015-05-19  Oleg Endo  <olegendo@gcc.gnu.org>
9943
9944         PR target/54236
9945         * config/sh/sh.md (*round_int_even): New insn_and_split and
9946         accompanying new unnamed split.
9947
9948 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
9949
9950         * bitmap.c (bitmap_set_range): Handle count==1 specially.
9951         (bitmap_clear_range): Likewise.
9952         * cfgcleanup.c (mark_effect): Use bitmap_clear_range and
9953         bitmap_set_range unconditionally.
9954         * df-problems.c (df_simulate_one_insn_forwards): Likewise.
9955         * df-scan.c (df_mark_reg): Likewise.
9956         * haifa-sched.c (setup_ref_regs): Likewise.
9957         * sched-rgn.c (update_live_1): Likewise.
9958
9959 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
9960
9961         * regs.h (END_HARD_REGNO): Delete.
9962         (END_REGNO): Move to...
9963         * rtl.h: ...here.
9964         * bt-load.c (note_btr_set): Use END_REGNO instead of END_HARD_REGNO.
9965         * caller-save.c (mark_set_regs): Likewise.
9966         * combine.c (move_deaths, distribute_notes): Likewise.
9967         * cse.c (invalidate, invalidate_for_call): Likewise.
9968         * df-scan.c (df_ref_record): Likewise.
9969         * postreload-gcse.c (reg_changed_after_insn_p): Likewise.
9970         (record_last_reg_set_info): Likewise.
9971         * reg-stack.c (convert_regs_exit): Likewise.
9972         * reload.c (reg_overlap_mentioned_for_reload_p): Likewise.
9973         * resource.c (update_live_status): Likewise.
9974         * rtlanal.c (find_reg_fusage, find_regno_fusage): Likewise.
9975
9976 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
9977
9978         * rtl.h (reg_info): Add an nregs field.
9979         (REG_NREGS): Use it.
9980         (SET_REGNO_RAW): Delete.
9981         (set_regno_raw): New function.
9982         * regs.h (END_HARD_REGNO): Make equivalent to END_REGNO.
9983         (END_REGNO): Redefine in terms of REG_NREGS.
9984         * read-rtl.c (read_rtx_code): Call set_regno_raw instead of
9985         SET_REGNO_RAW.
9986         * emit-rtl.c (set_mode_and_regno): Likewise.
9987         * df-scan.c (df_ref_change_reg_with_loc): Use set_mode_and_regno
9988         instead of SET_REGNO_RAW.
9989
9990 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
9991
9992         * rtl.h (PUT_MODE_RAW): New macro.
9993         (PUT_REG_NOTE_KIND): Use it.
9994         (set_mode_and_regno): Declare.
9995         (gen_raw_REG): Change regno to "unsigned int".
9996         (gen_rtx_REG): Change "unsigned" to "unsigned int".
9997         (PUT_MODE): Forward to PUT_MODE_RAW for generators, otherwise
9998         use set_mode_and_regno to change the mode of registers.
9999         * gengenrtl.c (gendef): Use PUT_MODE_RAW.
10000         * emit-rtl.c (set_mode_and_regno): New function.
10001         (gen_raw_REG): Change regno to unsigned int.  Use set_mode_and_regno.
10002         * caller-save.c (reg_save_code): Use set_mode_and_regno.
10003         * expr.c (init_expr_target): Likewise.
10004         * ira.c (setup_prohibited_mode_move_regs): Likewise.
10005         * postreload.c (reload_cse_simplify_operands): Likewise.
10006
10007 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10008
10009         * caller-save.c (init_caller_save): Use word_mode and
10010         FIRST_PSEUDO_REGISTER when creating temporary rtxes.
10011         * expr.c (init_expr_target): Likewise.
10012         * ira.c (setup_prohibited_mode_move_regs): Likewise.
10013         * postreload.c (reload_cse_regs_1): Likewise.
10014
10015 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10016
10017         * rtl.def (REG): Change format to "r".
10018         * rtl.h (rtunion): Remove rt_reg.
10019         (reg_info): New structure.
10020         (rtx_def): Add reg field to main union.
10021         (X0REGATTR): Delete.
10022         (REG_CHECK): New macro.
10023         (SET_REGNO_RAW, rhs_regno, REG_ATTRS): Use it.
10024         * rtl.c (rtx_format): Document "r".
10025         (rtx_code_size): Handle REG specially.
10026         * gengenrtl.c (special_format): Return true for formats
10027         that include 'r'.
10028         * gengtype.c (adjust_field_rtx_def): Handle 'r' fields.
10029         Deal with REG_ATTRS after the field loop.
10030         * emit-rtl.c (gen_raw_REG): Call rtx_alloc_stat directly.
10031         * expmed.c (init_expmed): Call gen_raw_REG instead of
10032         gen_rtx_raw_REG.
10033         * expr.c (init_expr_target): Likewise.
10034         * regcprop.c (maybe_mode_change): Likewise.
10035         * varasm.c (make_decl_rtl): Likewise.
10036         * final.c (leaf_renumber_regs_insn): Return early after
10037         handling REGs.
10038         * genemit.c (gen_exp): Handle 'r' fields.
10039         * genpeep.c (match_rtx): Likewise.
10040         * gensupport.c (subst_pattern_match): Likewise.
10041         (get_alternatives_number, collect_insn_data, alter_predicate_for_insn)
10042         (alter_constraints, subst_dup): Likewise.
10043         * read-rtl.c (read_rtx_code): Likewise.
10044         * print-rtl.c (print_rtx): Likewise.
10045         * genrecog.c (find_operand, find_matching_operand): Likewise.
10046         (validate_pattern, match_pattern_2): Likewise.
10047         (parameter::UINT, rtx_test::REGNO_FIELD): New enum values.
10048         (rtx_test::regno_field): New function.
10049         (operator ==, safe_to_hoist_p, transition_parameter_type)
10050         (parameter_type_string, print_parameter_value)
10051         (print_nonbool_test, print_test): Handle new enum values.
10052         * cselib.c (rtx_equal_for_cselib_1): Handle REG specially.
10053         * lra-constraints.c (operands_match_p): Likewise.
10054
10055 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10056
10057         * df.h (df_ref_change_reg_with_loc): Remove old_regno parameter.
10058         Change type of new_regno to unsigned int.
10059         * df-scan.c (df_ref_change_reg_with_loc_1): Change type of
10060         new_regno to unsigned int.
10061         (df_ref_change_reg_with_loc): Remove old_regno parameter.
10062         Change type of new_regno to unsigned int.  Use SET_REGNO_RAW.
10063         * rtl.h (SET_REGNO): Update call to df_ref_change_reg_with_loc.
10064         (SET_REGNO_RAW): Add space after ",".
10065
10066 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10067
10068         * rtl.h (REG_NREGS): New macro
10069         * alias.c (record_set): Use it.
10070         * cfgcleanup.c (mark_effect): Likewise.
10071         * combine.c (likely_spilled_retval_1): Likewise.
10072         (likely_spilled_retval_p, can_change_dest_mode): Likewise.
10073         (move_deaths, distribute_notes): Likewise.
10074         * cselib.c (cselib_record_set): Likewise.
10075         * df-problems.c (df_simulate_one_insn_forwards): Likewise.
10076         * df-scan.c (df_mark_reg): Likewise.
10077         * dse.c (look_for_hardregs): Likewise.
10078         * dwarf2out.c (reg_loc_descriptor): Likewise.
10079         (multiple_reg_loc_descriptor): Likewise.
10080         * expr.c (write_complex_part, read_complex_part): Likewise.
10081         (emit_move_complex): Likewise.
10082         * haifa-sched.c (setup_ref_regs): Likewise.
10083         * ira-lives.c (mark_hard_reg_live): Likewise.
10084         * lra.c (lra_set_insn_recog_data): Likewise.
10085         * mode-switching.c (create_pre_exit): Likewise.
10086         * postreload.c (reload_combine_recognize_const_pattern): Likewise.
10087         (reload_combine_recognize_pattern): Likewise.
10088         (reload_combine_note_use, move2add_record_mode): Likewise.
10089         (reload_cse_move2add): Likewise.
10090         * reg-stack.c (subst_stack_regs_pat): Likewise.
10091         * regcprop.c (kill_value, copy_value): Likewise.
10092         (copyprop_hardreg_forward_1): Likewise.
10093         * regrename.c (verify_reg_in_set, scan_rtx_reg): Likewise.
10094         (build_def_use): Likewise.
10095         * sched-deps.c (mark_insn_reg_birth, mark_reg_death): Likewise.
10096         (deps_analyze_insn): Likewise.
10097         * sched-rgn.c (check_live_1, update_live_1): Likewise.
10098         * sel-sched.c (count_occurrences_equiv): Likewise.
10099         * valtrack.c (dead_debug_insert_temp): Likewise.
10100
10101 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10102
10103         * cfgcleanup.c (mentions_nonequal_regs): Use END_REGNO.
10104         * dse.c (note_add_store): Likewise.
10105         * ira-lives.c (mark_hard_reg_dead): Likewise.
10106         * loop-invariant.c (mark_reg_store): Likewise.
10107         (mark_reg_death): Likewise.
10108         * postreload.c (reload_combine): Likewise.
10109         (reload_combine_note_store): Likewise.
10110         (reload_combine_note_use): Likewise.
10111         * recog.c (peep2_reg_dead_p): Likewise.
10112
10113 2015-05-19  Alan Modra  <amodra@gmail.com>
10114
10115         * config/rs6000/predicates.md (gpc_reg_operand): Don't allow all
10116         hard registers numbered greater or equal to ARG_POINTER_REGNUM.
10117         (reg_or_neg_short_operand, fix_trunc_dest_operand): Delete
10118         unused predicates.
10119         * config/rs6000/altivec.md (save_vregs_*, restore_vregs_*):
10120         Use altivec_register_operand.  Make insn predicate TARGET_ALTIVEC.
10121         * config/rs6000/rs6000.md (extzvdi_internal2): Use cc_reg_operand.
10122         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Expand comment.
10123
10124 2015-05-19  Sameera Deshpande  <Sameera.Deshpande@imgtec.com>
10125
10126         * config/mips/mips.md (JOIN_MODE): New mode iterator.
10127         (join2_load_Store<JOIN_MODE:mode>): New pattern.
10128         (join2_loadhi): Likewise.
10129         (define_peehole2): Add peephole2 patterns to join 2 HI/SI/SF/DF-mode
10130         load-load and store-stores.
10131         * config/mips/mips.opt (mload-store-pairs): New option.
10132         (TARGET_LOAD_STORE_PAIRS): New macro.
10133         * config/mips/mips.h (ENABLE_LD_ST_PAIRS): Likewise.
10134         * config/mips/mips-protos.h (mips_load_store_bonding_p): New prototype.
10135         * config/mips/mips.c (mips_load_store_bonding_p): New function.
10136
10137 2015-05-19  Mikhail Maltsev  <maltsevm@gmail.com>
10138
10139         * bb-reorder.c (fix_up_fall_thru_edges): Use std::swap instead of
10140         explicit swaps.
10141         * dojump.c (do_compare_rtx_and_jump): Likewise.
10142         * expmed.c (emit_store_flag_1): Likewise.
10143         * fibonacci_heap.h (fibonacci_heap::union_with): Likewise.
10144         * final.c (sprint_ul): Use std::reverse for reversing a string.
10145         * fold-const.c (extract_muldiv_1): Use std::swap.
10146         * genmodes.c (emit_mode_int_n): Likewise.
10147         * ifcvt.c (dead_or_predicable): Likewise.
10148         * ira-build.c (ira_merge_live_ranges): Likewise.
10149         (swap_allocno_copy_ends_if_necessary): Likewise.
10150         * ira.c (ira_setup_alts): Likewise.
10151         * loop-iv.c (iv_analyze_expr): Likewise.
10152         (implies_p): Likewise.
10153         (canon_condition): Likewise.
10154         * lra-constraints.c (swap_operands): Likewise.
10155         * lra-lives.c (lra_merge_live_ranges): Likewise.
10156         * omega.c (swap): Remove.
10157         (bswap): Remove.
10158         (omega_unprotect_1): Use std::swap.
10159         (omega_solve_geq): Likewise.
10160         * optabs.c (expand_binop_directly): Likewise.
10161         (expand_binop): Likewise.
10162         (emit_conditional_move): Likewise.
10163         (emit_conditional_add): Likewise.
10164         * postreload.c (reload_cse_simplify_operands): Likewise.
10165         * reg-stack.c (emit_swap_insn): Likewise.
10166         (swap_to_top): Likewise.
10167         (compare_for_stack_reg): Likewise.
10168         (subst_asm_stack_regs): Likewise.
10169         * reload.c (find_reloads): Likewise.
10170         * reload1.c (gen_reload_chain_without_interm_reg_p): Likewise.
10171         * sel-sched.c (invoke_reorder_hooks): Likewise.
10172         (create_block_for_bookkeeping): Likewise.
10173         * tree-data-ref.c (lambda_matrix_row_exchange): Remove.
10174         (lambda_matrix_right_hermite): Use std::swap.
10175         * tree-ssa-coalesce.c (sort_coalesce_list): Likewise.
10176         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
10177         * tree-ssa-loop-ivopts.c (iv_ca_delta_reverse): Likewise.
10178         * tree-ssa-math-opts.c (is_widening_mult_p): Likewise.
10179         * tree-ssa-phiopt.c (hoist_adjacent_loads): Likewise.
10180         * tree-ssa-reassoc.c (linearize_expr_tree): Likewise.
10181         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
10182         * tree-vrp.c (compare_ranges): Likewise.
10183         * var-tracking.c (add_with_sets): Likewise.
10184         (vt_find_locations): Likewise.
10185
10186 2015-05-18  Andreas Tobler  <andreast@gcc.gnu.org>
10187
10188         * config/freebsd-spec.h (FBSD_STARTFILE_SPEC): Add the bits to build
10189         pie executables.
10190         (FBSD_ENDFILE_SPEC): Likewise.
10191         * config/i386/freebsd.h (STARTFILE_SPEC): Remove and use the one from
10192         config/freebsd-spec.h.
10193         (ENDFILE_SPEC): Likewise.
10194
10195 2015-05-18  Uros Bizjak  <ubizjak@gmail.com>
10196             Richard Henderson  <rth@redhat.com>
10197
10198         PR target/57032
10199         * config/alpha/constraints.md (Q): Rewrite as define_memory_constraint.
10200         Check for a memory location that is not a reference (using an AND)
10201         to an unaligned location here.
10202         * config/alpha/predicates.md (normal_memory_operand): Remove.
10203
10204 2015-05-18  Alex Velenko  <Alex.Velenko@arm.com>
10205
10206         * config/arm/arm.md (andsi_not_shiftsi_si_scc): New pattern.
10207         (andsi_not_shiftsi_si_scc_no_reuse): New pattern.
10208
10209 2015-05-18  Robert Suchanek  <robert.suchanek@imgtec.com>
10210
10211         * config/mips/mips.c (micromips_globals): New variable.
10212         (mips_set_compression_mode): Save and reinitialize target-dependent
10213         state for microMIPS.
10214
10215 2015-05-18  Martin Liska  <mliska@suse.cz>
10216
10217         * dbgcnt.def: Add new counter.
10218         * ipa-icf.c (sem_item_optimizer::merge_classes): Use the counter.
10219
10220 2015-05-18  Martin Liska  <mliska@suse.cz>
10221
10222         * dbgcnt.def: Sort counters.
10223         * opts.c (common_handle_option): Do not compile if
10224         -fdbg-cnt-list is enabled.
10225
10226 2015-05-18  Tom de Vries  <tom@codesourcery.com>
10227
10228         * gimplify.c (gimplify_modify_expr): Remove do_deref handling.
10229         (gimplify_va_arg_expr): Remove do_deref handling.  Remove adding of
10230         address operator to va_list operand.
10231         * tree-stdarg.c (expand_ifn_va_arg_1): Do deref of va_list operand
10232         unconditionally.
10233         * config/i386/i386.c (ix86_gimplify_va_arg): Remove deref on va_list
10234         operand.
10235         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Same.
10236         * config/s390/s390.c (s390_gimplify_va_arg): Same.
10237         * config/spu/spu.c (spu_gimplify_va_arg_expr): Same.
10238
10239 2015-05-18  Tom de Vries  <tom@codesourcery.com>
10240
10241         * tree-ssa-tail-merge.c: Fix whitespace.
10242
10243 2015-05-17  Jim Wilson  <jim.wilson@linaro.org>
10244
10245         * doc/invoke.texi (ARM Options, mtune): Add generic-armv7-a,
10246         cortex-a17, and cortex-a17.cortex-a7.
10247
10248 2015-05-17  Oleg Endo  <olegendo@gcc.gnu.org>
10249
10250         PR target/54236
10251         * config/sh/sh.md (*addc_2r_t): Use ashift instead of mult.
10252
10253 2015-05-17  Uros Bizjak  <ubizjak@gmail.com>
10254
10255         PR target/66174
10256         * config/i386/i386.c (expand_vec_perm_blend): Enable HImode and
10257         QImode inner modes for TARGET_AVX512BW.  Force mask operand
10258         to a register for AVX512F modes.
10259
10260 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
10261
10262         * toplev.c (emit_debug_global_declarations): Do not output debug info
10263         when doing slim LTO objects.
10264
10265 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
10266
10267         * ipa-utils.h (warn_types_mismatch, odr_or_derived_type_p,
10268         odr_types_equivalent_p): Declare.
10269         (odr_type_p): Use gcc_checking_assert.
10270         (type_in_anonymous_namespace_p) Declare.
10271         (type_with_linkage_p): Declare.
10272         * common.opt (Wlto-type-mismatch): New warning.
10273         * ipa-devirt.c (compound_type_base): New function.
10274         (odr_or_derived_type_p): New function.
10275         (odr_types_equivalent_p): New function.
10276         (add_type_duplicate): Simplify.
10277         (type_with_linkage_p): Add hack to prevent false positives on C types
10278         (type_in_anonymous_namespace_p): Likewise.
10279         * tree.c (need_assembler_name_p): Use type_with_linkage.
10280         * tree.h (type_in_anonymous_namespace_p): Remove.
10281         * doc/invoke.texi (-Wlto-type-mismatch): Document
10282
10283 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
10284
10285         * tree.c (verify_type_variant): Verify tree_base and type_common flags.
10286         (verify_type): Verify STRING_FLAG.
10287
10288 2015-05-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10289
10290         PR fortran/44054
10291         * tree-pretty-print.c (percent_K_format): Replace locus pointer
10292         with accessor function.
10293         * tree-diagnostic.c (diagnostic_report_current_function): Use
10294         diagnostic_location function.
10295         (maybe_unwind_expanded_macro_loc): Likewise.
10296         (virt_loc_aware_diagnostic_finalizer): Likewise.
10297         (default_tree_printer): Replace locus pointer with accessor function.
10298         * diagnostic.c (diagnostic_initialize): Initialize caret_chars array.
10299         (diagnostic_set_info_translated): Initialize second location.
10300         (diagnostic_build_prefix): Use CARET_LINE_MARGIN.
10301         (diagnostic_show_locus): Handle two locations. Call
10302         diagnostic_print_caret_line.
10303         (diagnostic_print_caret_line): New.
10304         (default_diagnostic_starter): Use diagnostic_location function.
10305         (diagnostic_report_diagnostic): Use diagnostic_location function.
10306         (verbatim): Do not set text.locus.
10307         * diagnostic.h (struct diagnostic_info): Remove location field.
10308         (struct diagnostic_context): Make caret_chars an array of two.
10309         (diagnostic_location): New inline.
10310         (diagnostic_expand_location): Handle two locations.
10311         (diagnostic_same_line): New inline.
10312         (diagnostic_print_caret_line): Declare.
10313         (CARET_LINE_MARGIN): New constant.
10314         * pretty-print.c (pp_printf): Do not set text.locus.
10315         (pp_verbatim): Do not set text.locus.
10316         * pretty-print.h (MAX_LOCATIONS_PER_MESSAGE): New constant.
10317         (struct text_info): Replace locus pointer with locations
10318         array. Add accessor functions.
10319
10320 2015-05-16  Kugan Vivekanandarajah  <kuganv@linaro.org>
10321             Zhenqiang Chen  <zhenqiang.chen@linaro.org>
10322
10323         PR target/65768
10324         * config/arm/arm.h (DONT_EARLY_SPLIT_CONSTANT): New macro.
10325         * config/arm/arm.md (subsi3, andsi3, iorsi3, xorsi3, movsi): Keep some
10326          large constants in register instead of splitting them.
10327
10328 2015-05-16  Uros Bizjak  <ubizjak@gmail.com>
10329
10330         PR target/66140
10331         * config/alpha/alpha.c (get_aligned_mem): Also look for reload
10332         replacements in memory addresses.
10333         (get_unaligned_address): Ditto.
10334
10335 2015-05-16  James Bowman  <james.bowman@ftdichip.com>
10336
10337         * config/ft32/*: New files for FT32 port.
10338         * doc/install.texi: Add FT32 information.
10339         * doc/invoke.texi: Add FT32 information.
10340         * doc/md.texi: Add FT32 information.
10341         * doc/contrib.texi: Self added.
10342
10343 2015-05-15  Marc Glisse  <marc.glisse@inria.fr>
10344
10345         PR tree-optimization/64454
10346         * match.pd ((X % Y) % Y, (X % Y) < Y): New patterns.
10347         (-1 - A -> ~A): Remove unnecessary condition.
10348
10349 2015-05-15  Gregor Richards  <gregor.richards@uwaterloo.ca>
10350
10351         * config/i386/linux.h (MUSL_DYNAMIC_LINKER): Define.
10352         * config/i386/linux64.h (MUSL_DYNAMIC_LINKER32): Define.
10353         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32): Define.
10354
10355 2015-05-15  Ilya Enkovich  <ilya.enkovich@intel.com>
10356
10357         * ipa-chkp.h (chkp_wrap_function): New.
10358         * ipa-chkp.c (chkp_wrap_function): Remove 'static'.
10359         (chkp_wrap_function_name): New.
10360         (chkp_build_instrumented_fndecl): Use chkp_wrap_function_name
10361         to get wrapper name.
10362         * lto-cgraph.c: Include ipa-chkp.h.
10363         (input_cgraph_1): Avoid alias chain for wrappers.
10364
10365 2015-05-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
10366
10367         PR middle-end/66134
10368         * tree-chkp.c (chkp_get_orginal_bounds_for_abnormal_copy): New.
10369         (chkp_maybe_copy_and_register_bounds): Don't copy abnormal copy.
10370
10371 2015-05-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10372
10373         * config/aarch64/aarch64.h (AARCH64_TUNE_SLOWMUL): Delete.
10374         (AARCH64_FL_SLOWMUL): Delete.
10375         (AARCH64_FL_CRC): Redefine to 1<<3.
10376         (AARCH64_FL_USE_FMA_STEERING_PASS): Redefine to 1<<4.
10377
10378 2015-05-15  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10379
10380         * config/arm/arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Add appropriate
10381         casting.
10382
10383 2015-05-15  Uros Bizjak  <ubizjak@gmail.com>
10384
10385         * config/alpha/alpha.md (extendqidi2): Use general_operand
10386         instead of some_operand for operand[1] predicate.
10387         (extendhidi2): Ditto.
10388         (cbranchdi4): Use general_operand instead of some_operand
10389         for operand[1] and operands[2] predicates.
10390         (cstoredi4): Ditto.
10391         * config/alpha/predicates.md (some_operand): Remove unused predicate.
10392         (some_ni_operand): Ditto.
10393
10394 2015-05-15  Uros Bizjak  <ubizjak@gmail.com>
10395
10396         * config/alpha/alpha.c (alpha_extract_integer): Do not handle
10397         CONST_WIDE_INT and CONST_DOUBLE.  Assert CONST_INT_P (x).
10398         (alpha_legitimate_constant_p) <case CONST_WIDE_INT>: Check high and
10399         low part of the constant using alpha_emit_set_const_1.
10400         (alpha_expand_mov): Do not handle CONST_WIDE_INT and CONST_DOUBLE.
10401
10402 2015-05-14  Rohit Arul Raj  <rohitrulraj@freescale.com>
10403
10404         * varasm.c (output_constant_pool_1): Pass down alignment from
10405         constant pool entry's descriptor to output_constant_pool_2.
10406         (output_object_block): Add comment prior to call to
10407         output_constant_pool_1.
10408
10409 2015-05-14  Vladimir Makarov  <vmakarov@redhat.com>
10410
10411         PR rtl-optimization/65862
10412         * target.def (ira_change_pseudo_allocno_class): New hook.
10413         * targhooks.c (default_ira_change_pseudo_allocno_class): Default
10414         value of the hook.
10415         * targhooks.h (default_ira_change_pseudo_allocno_class): New extern.
10416         * doc/tm.texi.in (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Add the
10417         hook.
10418         * ira-costs.c (find_costs_and_classes): Call the hook and change
10419         classes when it is necessary.
10420         * doc/tm.texi: Update.
10421
10422 2015-05-14  Alexander Monakov  <amonakov@ispras.ru>
10423
10424         * config/i386/i386.md (sibcall_memory): Check that register with
10425         callee address is not also used as one of the arguments, instead
10426         of checking that it is not live after the sibcall.
10427         (sibcall_pop_memory): Ditto.
10428         (sibcall_value_memory): Ditto.
10429         (sibcall_value_pop_memory): Ditto.
10430
10431 2015-05-14  Marc Glisse  <marc.glisse@inria.fr>
10432
10433         * generic-match-head.c (types_match): Handle non-types.
10434         * gimple-match-head.c (types_match): Likewise.
10435         * match.pd: Remove unnecessary TREE_TYPE for types_match.
10436
10437 2015-05-14  Wilco Dijkstra  <wdijkstr@arm.com>
10438
10439         * config/aarch64/aarch64.md (absdi2): Optimize abs expansion.
10440         (csneg3<mode>_insn): Enable expansion of pattern.
10441
10442 2015-05-14  Nick Clifton  <nickc@redhat.com>
10443
10444         * config/rl78/rl78.c (rl78_select_section): Select the correct
10445         default section based upon the category of the decl.
10446
10447 2015-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
10448
10449         PR rtl-optimization/30967
10450         * config/rs6000/rs6000.c (rs6000_rtx_costs): Don't consider
10451         destination mode for the cost of scc patterns.
10452
10453 2015-05-13  Uros Bizjak  <ubizjak@gmail.com>
10454
10455         * config/i386/i386.md (*mul<mode>3_1): Merge with *mulhi3_1
10456         using SWIM248 mode iterator.
10457         (*mulv<mode>4): Use x86_64_sext_operand for operand[2] constraint.
10458         (*mulvhi4): mark operand[1] as commutative.  Use nonimmediate_operand
10459         for operand[2] constraint.
10460         (*mulv<mode>4_1): Merge with *mulvhi4_1 using SWI248 mode iterator.
10461
10462 2015-05-13  Jakub Jelinek  <jakub@redhat.com>
10463
10464         PR middle-end/66133
10465         * omp-low.c (expand_omp_taskreg): For GIMPLE_OMP_TASK expansion,
10466         make sure it is never noreturn, even when the task body does not
10467         return.
10468         (lower_omp_taskreg): For GIMPLE_OMP_TASK, emit GIMPLE_OMP_CONTINUE
10469         right before GIMPLE_OMP_RETURN.
10470         (make_gimple_omp_edges): Accept GIMPLE_OMP_CONTINUE as ->cont
10471         for GIMPLE_OMP_TASK.  For GIMPLE_OMP_RETURN corresponding to
10472         GIMPLE_OMP_TASK add an EDGE_ABNORMAL edge from entry to exit.
10473
10474 2015-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10475
10476         * params.def (PARAM_MAX_POW_SQRT_DEPTH): New param.
10477         * tree-ssa-math-opts.c: Include params.h
10478         (pow_synth_sqrt_info): New struct.
10479         (representable_as_half_series_p): New function.
10480         (get_fn_chain): Likewise.
10481         (print_nested_fn): Likewise.
10482         (dump_fractional_sqrt_sequence): Likewise.
10483         (dump_integer_part): Likewise.
10484         (expand_pow_as_sqrts): Likewise.
10485         (gimple_expand_builtin_pow): Use above to attempt to expand
10486         pow as series of square roots.  Removed now unused variables.
10487
10488 2015-05-13  Uros Bizjak  <ubizjak@gmail.com>
10489
10490         * config/alpha/alpha.c (alpha_emit_set_long_const): Remove c1 argument.
10491         (alpha_extract_integer): Redeclare as static HOST_WIDE_INT.
10492         Remove *p0 and *p1 arguments.  Rewrite function.
10493         (alpha_legitimate_constant_p): Update call to alpha_extract_integer.
10494         (alpha_split_const_mov): Update calls to alpha_extract_integer and
10495         alpha_emit_set_long_const.
10496         (alpha_expand_epilogue): Update calls to alpha_emit_set_long_const.
10497         (alpha_output_mi_thunk_osf): Ditto.
10498         * config/alpha/alpha.md (movti): Do not check operands[1]
10499         for CONST_DOUBLE.
10500
10501 2015-05-13  Richard Biener  <rguenther@suse.de>
10502
10503         PR tree-optimization/66129
10504         * tree-vect-slp.c (vect_build_slp_tree): Make sure all ops are
10505         commutative.
10506         (vect_schedule_slp_instance): Fix typo.
10507
10508 2015-05-13  David Malcolm  <dmalcolm@redhat.com>
10509
10510         * common.opt (fdump-internal-locations): New option.
10511         * input.c: Include diagnostic-core.h.
10512         (get_end_location): New function.
10513         (write_digit): New function.
10514         (write_digit_row): New function.
10515         (dump_location_range): New function.
10516         (dump_labelled_location_range): New function.
10517         (dump_location_info): New function.
10518         * input.h (dump_location_info): New prototype.
10519         * toplev.c (compile_file): Handle flag_dump_locations.
10520
10521 2015-05-13  Eric Botcazou  <ebotcazou@adacore.com>
10522
10523         * gimple-expr.h (is_gimple_constant): Reorder.
10524         * tree-ssa-propagate.c (before_dom_children): Use inline accessor.
10525
10526 2015-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
10527
10528         * combine.c (simplify_set): When generating a CC set, if the
10529         source already is in the correct mode, do not wrap it in a
10530         compare.  Simplify the rest of that code.
10531
10532 2015-05-13  Richard Biener  <rguenther@suse.de>
10533
10534         PR tree-optimization/66123
10535         * tree-ssa-dom.c (propagate_rhs_into_lhs): Check if we found
10536         a taken edge.
10537
10538 2015-05-13  Richard Biener  <rguenther@suse.de>
10539
10540         PR middle-end/66110
10541         * alias.c (alias_sets_conflict_p): Do not treat has_zero_child
10542         specially.
10543         * Makefile.in (dfp.o-warn): Add -Wno-strict-aliasing.
10544
10545 2015-05-13  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
10546
10547         * doc/install.texi: Bump latest automake 1.11 version to 1.11.6.
10548         * aclocal.m4: Regenerated with automake-1.11.6.
10549
10550 2015-05-13  Tom de Vries  <tom@codesourcery.com>
10551
10552         PR tree-optimization/66010
10553         * gimplify.h (gimplify_va_arg_internal): Remove declaration.
10554         * gimplify.c (gimplify_va_arg_internal): Remove and inline into ...
10555         * tree-stdarg.c (expand_ifn_va_arg_1): ... here.  Choose between lval
10556         and rval based on do_deref.
10557
10558 2015-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
10559
10560         PR target/65103
10561         * config/i386/i386.c (ix86_rtx_costs): We want to propagate
10562         link time constants into adress expressions and therefore set
10563         their cost to 0.
10564
10565 2015-05-13  Jakub Jelinek  <jakub@redhat.com>
10566
10567         PR target/66112
10568         * config/i386/i386.md (mulv<mode>4, umulv<mode>4, *umulv<mode>4):
10569         Use SWI248 iterator instead of SWI.
10570         (*mulv<mode>4_1): Use SWI48 instead of SWI.  Simplify output template.
10571         Use eq_attr "alternative" "0" instead of match_test in
10572         length_immediate attribute computation.
10573         (*mulvhi4, *mulvhi4_1): New define_insns.
10574
10575         PR target/66112
10576         * internal-fn.c (get_min_precision): Use UNSIGNED instead of
10577         SIGNED to get precision of non-negative value.
10578
10579 2015-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
10580
10581         PR target/66048
10582         * function.c (diddle_return_value_1): Process bounds first.
10583         * config/i38/i386.c (ix86_function_value_regno_p): Add bnd1
10584         register.
10585
10586 2015-05-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
10587
10588         PR rtl-optimization/64616
10589         * loop-invariant.c (can_move_invariant_reg): New.
10590         (move_invariant_reg): Call above new function to decide whether
10591         instruction can just be moved, skipping creation of temporary
10592         register.
10593
10594 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
10595
10596         PR target/pr66047.c
10597         * i386.c (ix86_function_sseregparm): Only return -1 if local function
10598         with implied regparm is called from -mno-sse function.
10599         (init_cumulative_args): Output error if ix86_function_sseregparm
10600         return -1 and SSE register would be needed.
10601         (function_arg_advance_32): Likewise.
10602         (function_arg_32): Likewise.
10603         * i386.h (ix86_args): Add decl field.
10604
10605 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
10606
10607         PR ipa/65873
10608         * ipa-inline.c (can_inline_edge_p): Allow early inlining of always
10609         inlines across optimization boundary.
10610
10611 2015-05-12  Jason Merrill  <jason@redhat.com>
10612
10613         * config/mmix/mmix.c, config/msp430/msp430.c: Add space between
10614         string literal and macro name.
10615
10616 2015-05-12  Steve Ellcey  <sellcey@imgtec.com>
10617
10618         * config/mips/mips.c (mips_print_operand): Remove 'y' operand code.
10619         * config/mips/mips.md (<GPR:d>lsa): Rewrite with shift operator.
10620         * config/mips/predicates.md (const_immlsa_operand): Remove log call.
10621
10622 2015-05-12  David Malcolm  <dmalcolm@redhat.com>
10623
10624         * doc/invoke.texi (Warning Options): Add -Wmisleading-indentation.
10625         (-Wmisleading-indentation): New option.
10626         * Makefile.in (C_COMMON_OBJS): Add c-family/c-indentation.o.
10627
10628 2015-05-12  Uros Bizjak  <ubizjak@gmail.com>
10629
10630         * config/alpha/alpha.h (TARGET_SUPPORTS_WIDE_INT): New define.
10631         * config/alpha/alpha.c (alpha_rtx_costs): Handle CONST_WIDE_INT.
10632         (alpha_extract_integer): Ditto.
10633         (alpha_legitimate_constant_p): Ditto.
10634         (alpha_split_tmode_pair): Ditto.
10635         (alpha_preferred_reload_class): Add CONST_WIDE_INT.
10636         (alpha_expand_mov): Ditto.
10637         (print_operand): Remove handling of 'H' modifier.
10638         <case 'm'>: Remove CONST_DOUBLE handling.
10639         (summarize_insn): Handle CONST_WIDE_INT.
10640         * config/alpha/alpha.md (*andsi_internal): Remove H constraint.
10641         (anddi3): Ditto.
10642         (movti): Handle CONST_WIDE_INT.
10643         * config/alpha/constraints.md ('H'): Remove constraint definition.
10644         ('G'): Do not match MODE_FLOAT class.
10645         * config/alpha/predicates.md (const0_operand): Also match
10646         const_wide_int.
10647         (non_add_const_operand): Ditto.
10648         (non_zero_const_operand): Ditto.
10649         (some_operand): Ditto.
10650         (input_operand): Ditto.  Handle CONST_WIDE_INT.
10651         (and_operand): Do not match const_double.
10652         * config/alpha/sync.md (fetchop_constr): Remove H constraint.
10653
10654 2015-05-12  Andrew MacLeod  <amacleod@redhat.com>
10655
10656         PR target/65697
10657         * coretypes.h (MEMMODEL_SYNC, MEMMODEL_BASE_MASK): New macros.
10658         (enum memmodel): Add SYNC_{ACQUIRE,RELEASE,SEQ_CST}.
10659         * tree.h (memmodel_from_int, memmodel_base, is_mm_relaxed,
10660         is_mm_consume,is_mm_acquire, is_mm_release, is_mm_acq_rel,
10661         is_mm_seq_cst, is_mm_sync): New accessor functions.
10662         * builtins.c (expand_builtin_sync_operation,
10663         expand_builtin_compare_and_swap): Use MEMMODEL_SYNC_SEQ_CST.
10664         (expand_builtin_sync_lock_release): Use MEMMODEL_SYNC_RELEASE.
10665         (get_memmodel,  expand_builtin_atomic_compare_exchange,
10666         expand_builtin_atomic_load, expand_builtin_atomic_store,
10667         expand_builtin_atomic_clear): Use new accessor routines.
10668         (expand_builtin_sync_synchronize): Use MEMMODEL_SYNC_SEQ_CST.
10669         * optabs.c (expand_compare_and_swap_loop): Use MEMMODEL_SYNC_SEQ_CST.
10670         (maybe_emit_sync_lock_test_and_set): Use new accessors and
10671         MEMMODEL_SYNC_ACQUIRE.
10672         (expand_sync_lock_test_and_set): Use MEMMODEL_SYNC_ACQUIRE.
10673         (expand_mem_thread_fence, expand_mem_signal_fence, expand_atomic_load,
10674         expand_atomic_store): Use new accessors.
10675         * emit-rtl.c (need_atomic_barrier_p): Add additional enum cases.
10676         * tsan.c (instrument_builtin_call): Update check for memory model beyond
10677         final enum to use MEMMODEL_LAST.
10678         * c-family/c-common.c: Use new accessor for memmodel_base.
10679         * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap): Use new
10680         accessors.
10681         * config/aarch64/atomics.md (atomic_load<mode>,atomic_store<mode>,
10682         arch64_load_exclusive<mode>, aarch64_store_exclusive<mode>,
10683         mem_thread_fence, *dmb): Likewise.
10684         * config/alpha/alpha.c (alpha_split_compare_and_swap,
10685         alpha_split_compare_and_swap_12): Likewise.
10686         * config/arm/arm.c (arm_expand_compare_and_swap,
10687         arm_split_compare_and_swap, arm_split_atomic_op): Likewise.
10688         * config/arm/sync.md (atomic_load<mode>, atomic_store<mode>,
10689         atomic_loaddi): Likewise.
10690         * config/i386/i386.c (ix86_destroy_cost_data, ix86_memmodel_check):
10691         Likewise.
10692         * config/i386/sync.md (mem_thread_fence, atomic_store<mode>): Likewise.
10693         * config/ia64/ia64.c (ia64_expand_atomic_op): Add new memmodel cases and
10694         use new accessors.
10695         * config/ia64/sync.md (mem_thread_fence, atomic_load<mode>,
10696         atomic_store<mode>, atomic_compare_and_swap<mode>,
10697         atomic_exchange<mode>): Use new accessors.
10698         * config/mips/mips.c (mips_process_sync_loop): Likewise.
10699         * config/pa/pa.md (atomic_loaddi, atomic_storedi): Likewise.
10700         * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier,
10701         rs6000_post_atomic_barrier): Add new cases.
10702         (rs6000_expand_atomic_compare_and_swap): Use new accessors.
10703         * config/rs6000/sync.md (mem_thread_fence): Add new cases.
10704         (atomic_load<mode>): Add new cases and use new accessors.
10705         (store_quadpti): Add new cases.
10706         * config/s390/s390.md (mem_thread_fence, atomic_store<mode>): Use new
10707         accessors.
10708         * config/sparc/sparc.c (sparc_emit_membar_for_model): Use new accessors.
10709         * doc/extend.texi: Update docs to indicate 16 bits are used for memory
10710         model, not 8.
10711
10712 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
10713
10714         * ipa-devirt.c (type_with_linkage_p): New function.
10715         (type_in_anonymous_namespace_p): Move here from tree.c; assert that
10716         type has linkage.
10717         (odr_type_p): Move here from ipa-utils.h; use type_with_linkage_p.
10718         (can_be_name_hashed_p): Simplify.
10719         (hash_odr_name): Check that type has linkage before checking if it is
10720         anonymous.
10721         (types_same_for_odr): Likewise.
10722         (odr_name_hasher::equal): Likewise.
10723         (odr_subtypes_equivalent_p): Likewise.
10724         (warn_types_mismatch): Likewise.
10725         (get_odr_type): Likewise.
10726         (odr_types_equivalent_p): Fix checking of TYPE_MAIN_VARIANT.
10727         * ipa-utils.h (odr_type_p): Move offline.
10728         * tree.c (need_assembler_name_p): Fix handling of types
10729         without linkages.
10730         (type_in_anonymous_namespace_p): Move to ipa-devirt.c
10731
10732 2015-05-12  David Malcolm  <dmalcolm@redhat.com>
10733
10734         * timevar.c (timevar_enable): Delete in favor of...
10735         (g_timer): New global.
10736         (struct timevar_def): Move to timevar.h inside class timer.
10737         (struct timevar_stack_def): Likewise.
10738         (timevars): Delete global in favor of field "m_timevars" within
10739         class timer in timevar.h
10740         (stack): Likewise, in favor of field "m_stack".
10741         (unused_stack_instances): Likewise, in favor of field
10742         "m_unused_stack_instances".
10743         (start_time): Likewise, in favor of field "m_start_time".
10744         (get_time): Eliminate check for timevar_enable.
10745         (timer::timer): New function, built from part of timevar_init.
10746         (timevar_init): Rewrite idempotency test from using
10747         "timevar_enable" bool to using dynamic allocation of "g_timer".
10748         Move rest of implementation into timer's constructor.
10749         (timevar_push_1): Rename to...
10750         (timer::push): ...this, adding "m_" prefixes to variables that
10751         are now fields of timer.
10752         (timevar_pop_1): Likewise, rename to...
10753         (timer::pop): ...this, and add "m_" prefixes.
10754         (timevar_start): Replace test for "timevar_enable" with one for
10755         "g_timer", and move bulk of implementation to...
10756         (timer::start): ...here, adding "m_" prefixes.
10757         (timevar_stop): Likewise, from here...
10758         (timer::stop): ...to here.
10759         (timevar_cond_start): Likewise, from here...
10760         (timer::cond_start): ...to here.
10761         (timevar_cond_stop): Likewise, from here...
10762         (timer::cond_stop): ...to here.
10763         (validate_phases): Rename to...
10764         (timer::validate_phases): ...this, and add "m_" prefixes.  Make
10765         locals "total" and "tv" const.
10766         (timevar_print): Rename to...
10767         (timer::print): ...this, and add "m_" prefixes.  Make locals
10768         "total" and "tv" const.  Eliminate test for timevar_enable.
10769         * timevar.h (timevar_enable): Eliminate.
10770         (g_timer): New declaration.
10771         (timevar_push_1): Eliminate.
10772         (timevar_pop_1): Eliminate.
10773         (timevar_print): Eliminate.
10774         (class timer): New class.
10775         (timevar_push): Rewrite to use g_timer.
10776         (timevar_pop): Likewise.
10777         * toplev.c (toplev::~toplev): Likewise.
10778
10779 2015-05-12  Richard Earnshaw  <rearnsha@arm.com>
10780
10781         * arm-protos.h (arm_sched_autopref): Delete.
10782         (tune_params): Re-organize, use enums for flag values.
10783         (FUSE_OPS): New macro.
10784         * arm.c (ARM_PREFETCH_NOT_BENEFICIAL): Update.
10785         (ARM_PREFETCH_BENEFICIAL): Likewise.
10786         (ARM_FUSE_NOTHING, ARM_FUSE_MOVW_MOVT): Delete.
10787         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
10788         (arm_xscale_tune, arm_9e_tune, arm_marvell_pj4_tune)
10789         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a8_tune)
10790         (arm_cortex_a7_tune, arm_cortex_a15_tune, arm_cortex_a53_tune)
10791         (arm_cortex_a57_tune,  arm_xgene1_tune, arm_cortex_a5_tune)
10792         (arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune)
10793         (arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune): Use new
10794         format.
10795         (arm_option_override, thumb2_reorg, arm_print_tune_info)
10796         (aarch_macro_fusion_pair_p): Update uses of current_tune.
10797         * arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Likewise.
10798
10799 2015-05-12  Sandra Loosemore  <sandra@codesourcery.com>
10800
10801         * config/nios2/nios2.md (trap, ctrapsi4): Use "trap" instead of
10802         "break".
10803
10804 2015-05-12  Chung-Lin Tang  <cltang@codesourcery.com>
10805             Sandra Loosemore <sandra@codesourcery.com>
10806
10807         * config/nios2/nios2.h (enum reg_class): Add IJMP_REGS enum
10808         value.
10809         (REG_CLASS_NAMES): Add "IJMP_REGS".
10810         (REG_CLASS_CONTENTS): Add new entry for IJMP_REGS.
10811         * config/nios2/nios2.md (indirect_jump,*tablejump): Adjust to
10812         use new "c" register constraint.
10813         * config/nios2/constraint.md (c): New register constraint
10814         corresponding to IJMP_REGS.
10815
10816 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
10817
10818         * config/rs6000/rs6000.md (*rotlsi3_internal4, *rotlsi3_internal5,
10819         *rotlsi3_internal6, rlwinm, 5 unnamed define_insns, and 6
10820         define_splits): Delete, revamp, transmogrify into ...
10821         (*rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
10822         *ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
10823         *lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
10824         New.
10825
10826 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
10827
10828         * config/rs6000/rs6000.md (rs6000_adjust_atomic_subword): Use
10829         gen_ashlsi3 and gen_andsi3 instead of gen_rlwinm.
10830
10831 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
10832
10833         * config/rs6000/rs6000.md (extzv): FAIL for SImode.
10834         (extzvsi_internal, *extzvsi_internal1, *extzvsi_internal2,
10835         *rotlsi3_internal7le, *rotlsi3_internal7be, *rotlsi3_internal8le,
10836         *rotlsi3_internal8be, *rotlsi3_internal9le, *rotlsi3_internal9be,
10837         *rotlsi3_internal10le, *rotlsi3_internal10be, *rotlsi3_internal11le,
10838         *rotlsi3_internal11be, *rotlsi3_internal12le, *rotlsi3_internal12be,
10839         *lshiftrt_internal1le, *lshiftrt_internal1be, *lshiftrt_internal2le,
10840         *lshiftrt_internal2be, *lshiftrt_internal3le, *lshiftrt_internal3be,
10841         *lshiftrt_internal4le, *lshiftrt_internal4be, *lshiftrt_internal5le,
10842         *lshiftrt_internal5be, *lshiftrt_internal5le, *lshiftrt_internal5be,
10843         *rotldi3_internal7le, *rotldi3_internal7be, *rotldi3_internal8le,
10844         *rotldi3_internal8be, *rotldi3_internal9le, *rotldi3_internal9be,
10845         *rotldi3_internal10le, *rotldi3_internal10be, *rotldi3_internal11le,
10846         *rotldi3_internal11be, *rotldi3_internal12le, *rotldi3_internal12be,
10847         *rotldi3_internal13le, *rotldi3_internal13be, *rotldi3_internal14le,
10848         *rotldi3_internal14be, *rotldi3_internal15le, *rotldi3_internal15be,
10849         and 30 corresponding splitters): Delete.
10850
10851 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
10852
10853         * config/rs6000/rs6000.md (define_split for bswaphi): Don't use
10854         zero_extract.
10855
10856 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
10857
10858         * combine.c (recog_for_combine_1): New function, factored out
10859         from recog_for_combine.
10860         (change_zero_ext): New function.
10861         (recog_for_combine): If recog fails, try again with the pattern
10862         modified by change_zero_ext; if that still fails, restore the
10863         pattern.
10864
10865 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
10866
10867         * combine.c (get_undo_marker): New function.
10868         (undo_to_marker): New function, largely factored out from ...
10869         (undo_all): ... this.  Adjust.
10870
10871 2015-05-12  Richard Biener  <rguenther@suse.de>
10872
10873         PR tree-optimization/66101
10874         * tree-ssa-dce.c (remove_dead_stmt): Properly mark loops for
10875         fixup if we turn a loop exit edge to a fallthru edge.
10876
10877 2015-05-12  Richard Biener  <rguenther@suse.de>
10878
10879         PR tree-optimization/37021
10880         * tree-vectorizer.h (struct _slp_tree): Add two_operators flag.
10881         (SLP_TREE_TWO_OPERATORS): New define.
10882         * tree-vect-slp.c (vect_create_new_slp_node): Initialize
10883         SLP_TREE_TWO_OPERATORS.
10884         (vect_build_slp_tree_1): Allow two mixing plus/minus in an
10885         SLP node.
10886         (vect_build_slp_tree): Adjust.
10887         (vect_analyze_slp_cost_1): Likewise.
10888         (vect_schedule_slp_instance): Vectorize mixing plus/minus by
10889         emitting two vector stmts and mixing the results.
10890
10891 2015-05-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>
10892
10893         * call.c (print_z_candidates): Remove dead code.
10894
10895 2015-05-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10896
10897         * config/s390/2827.md: Split zEC12_simple into zEC12_simple_int
10898         and zEC12_simple_fp.
10899         * config/s390/s390.c (s390_issue_rate): Set issue rate for zEC12
10900         to 1.
10901
10902 2015-05-12  Tom de Vries  <tom@codesourcery.com>
10903
10904         PR tree-optimization/66010
10905         * gimplify.c (gimplify_modify_expr): Handle new do_deref argument of
10906         ifn_va_arg.
10907         * gimplify.h (gimplify_va_arg_internal): Remove loc parameter.
10908         (gimplify_va_arg_internal): Remove loc parameter.  Assert no array-typed
10909         va_lists are passed, and remove corresponding handling.
10910         (gimplify_va_arg_expr): Only take address of ap if necessary.  Add
10911         do_deref argument to ifn_va_arg.
10912         * tree-stdarg.c (expand_ifn_va_arg_1): Handle new do_deref argument of
10913         ifn_va_arg.
10914
10915 2015-05-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10916
10917         PR target/65955
10918         * config/arm/arm.md (movcond_addsi): Check that operands[2] is a
10919         REG before taking its REGNO.
10920
10921 2015-05-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
10922
10923         * combine.c i(set_nonzero_bits_and_sign_copies): Split code updating
10924         rsp->sign_bit_copies and rsp->nonzero_bits into ...
10925         (update_rsp_from_reg_equal): This.  Also use REG_EQUAL note on src if
10926         present to get more accurate information about the number of sign bit
10927         copies and non zero bits.
10928
10929 2015-05-12  Richard Biener  <rguenther@suse.de>
10930
10931         * tree-vect-slp.c (vect_build_slp_tree_1): For BB vectorization
10932         do not allow unrolling.
10933
10934 2015-05-11  Richard Henderson  <rth@redhat.com>
10935
10936         * config/i386/i386-modes.def (CCP): New.
10937         * config/i386/i386.c (put_condition_code): Handle it.
10938         (ix86_match_ccmode, ix86_cc_modes_compatible): Likewise.
10939
10940 2015-05-11  Richard Henderson  <rth@redhat.com>
10941
10942         * target.def (md_asm_clobbers): Replace with...
10943         (md_asm_adjust): this.
10944         * tm.texi.in (TARGET_MD_ASM_CLOBBERS): Remove.
10945         (TARGET_MD_ASM_ADJUST): New.
10946         * tm.texi: Rebuild.
10947         * hooks.c (hook_tree_tree_tree_tree_3rd_identity): Remove.
10948         * hooks.h (hook_tree_tree_tree_tree_3rd_identity): Remove.
10949         * system.h (TARGET_MD_ASM_CLOBBERS): Poison.
10950
10951         * cfgexpand.c (check_operand_nalternatives): Accept vector of
10952         constraints instead of lists of outputs and inputs.
10953         (expand_asm_stmt): Save and restore input_location around the
10954         body of the function.  Move asm data into vectors instead of
10955         building tree lists.  Generate cleanup sequences as needed,
10956         rather than waiting til the end.  Use new md_asm_adjust hook.
10957
10958         * config/vxworks.c: Include vec.h before target.h.
10959         * gimple.c: Likewise.
10960         * incpath.c: Likewise.
10961         * mode-switching.c: Likewise.
10962
10963         * config/cris/cris.c (cris_md_asm_clobbers): Convert to...
10964         (cris_md_asm_adjust): this.
10965         (TARGET_MD_ASM_CLOBBERS): Remove.
10966         (TARGET_MD_ASM_ADJUST): New.
10967         * config/i386/i386.c (ix86_md_asm_clobbers): Convert to...
10968         (ix86_md_asm_adjust): this.
10969         (TARGET_MD_ASM_CLOBBERS): Remove.
10970         (TARGET_MD_ASM_ADJUST): New.
10971         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): Convert to...
10972         (mn10300_md_asm_adjust): this.
10973         (TARGET_MD_ASM_CLOBBERS): Remove.
10974         (TARGET_MD_ASM_ADJUST): New.
10975         * config/rs6000/rs6000.c (rs6000_md_asm_clobbers): Convert to...
10976         (rs6000_md_asm_adjust): this.
10977         (TARGET_MD_ASM_CLOBBERS): Remove.
10978         (TARGET_MD_ASM_ADJUST): New.
10979         * config/visium/visium.c (visium_md_asm_clobbers): Convert to...
10980         (visium_md_asm_adjust): this.
10981         (TARGET_MD_ASM_CLOBBERS): Remove.
10982         (TARGET_MD_ASM_ADJUST): New.
10983
10984 2015-05-11  Richard Henderson  <rth@redhat.com>
10985
10986         * gimplify.c (gimplify_asm_expr): Set gimple_asm_volatile_p
10987         if noutputs is zero.
10988         * cfgexpand.c (expand_asm_stmt): Use gimple_asm_volatile_p unchanged.
10989
10990         * cfgexpand.c (expand_asm_operands): Merge into...
10991         (expand_asm_stmt): ... here.
10992
10993         * cfgexpand.c (expand_asm_operands): Don't call
10994         resolve_asm_operand_names.
10995         * stmt.c (resolve_asm_operand_names): Clarify block comment.
10996
10997 2015-05-11  Jan Hubicka  <hubicka@ucw.cz>
10998
10999         * dwarf2out.c (gen_member_die): Sanity check that we access
11000         TYPE_MAIN_VARIANT for TYPE_METHODS.
11001         * function.c (use_register_for_decl): Look for TYPE_MAIN_VARIANT when
11002         checking TYPE_METHODS.
11003         * tree.c (free_lang_data_in_type): See TYPE_METHODS to error_mark_node
11004         if non-null.
11005         (build_distinct_type_copy): Clear TYPE_METHODS.
11006         (verify_type_variant): Verify that TYPE_METHODS is NULL for variants.
11007         (verify_type): Allow TYPE_METHODS to be error_mark_node.
11008         * tree.def: Update docs of TYPE_STUB_DECL and TYPE_METHODS.
11009
11010 2015-05-11  Eric Botcazou  <ebotcazou@adacore.com>
11011
11012         * emit-rtl.c (emit_pattern_after_setloc): Add missing guard.
11013         (emit_pattern_before_setloc): Likewise.
11014
11015 2015-05-11  Richard Sandiford  <richard.sandiford@arm.com>
11016
11017         * genrecog.c (match_pattern_1): Expect the pattern to be a SEQUENCE
11018         for define_peephole2s.
11019         (get_peephole2_pattern): New function.
11020         (main): Use it.  Call validate_pattern.
11021
11022 2015-05-11  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
11023
11024         * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Use
11025         LAST_CALLEE_SAVED_REG instead of hard-coded register number.
11026         (Last callee saved reg is different for AVR_TINY architecture)
11027
11028 2015-05-11  Uros Bizjak  <ubizjak@gmail.com>
11029
11030         * config/i386/i386.c (ix86_loop_unroll_adjust): Use PATTERN (insn)
11031         when looking for memory references.
11032
11033 2015-05-11  Alexander Monakov  <amonakov@ispras.ru>
11034
11035         PR target/65753
11036         * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow PIC sibcalls
11037         via function pointers.
11038
11039 2015-05-11  Alexander Monakov  <amonakov@ispras.ru>
11040
11041         * calls.c (prepare_call_address): Transform PLT call to GOT lookup and
11042         indirect call by forcing address into a pseudo with -fno-plt.
11043         * common.opt (flag_plt): New option.
11044         * doc/invoke.texi (Code Generation Options): Add -fno-plt.
11045         ([-fno-plt]): Document.
11046
11047 2015-05-11  Markus Trippelsdorf  <markus@trippelsdorf.de>
11048
11049         PR bootstrap/66105
11050         * config/rs6000/option-defaults.h: Add space between string literal
11051         and macro name.
11052
11053 2015-05-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>
11054
11055         * gcc.target/arm/pr64616.c: Test dump rather than assembly to work
11056         accross ARM targets.
11057
11058 2015-05-11  Christian Bruel  <christian.bruel@st.com>
11059
11060         * config/arm/arm-protos.h (thumb_code, thumb1_code): Remove.
11061         * config/arm/vxworks.h (thumb_code): Replace with TARGET_THUMB.
11062
11063 2015-05-11  Richard Sandiford  <richard.sandiford@arm.com>
11064
11065         PR rtl-optimization/66076
11066         * rtlanal.c (generic_subrtx_iterator <T>::add_single_to_queue):
11067         Don't grow the heap array if it is already big enough from a
11068         previous iteration.
11069
11070 2015-05-11  Christian Bruel  <christian.bruel@st.com>
11071
11072         * config/arm/arm-protos.h (arm_declare_function_name): Declare.
11073         (is_called_in_ARM_mode): Remove.
11074         * config/arm/arm.c (is_called_in_ARM_mode): Declare static bool.
11075         (arm_declare_function_name): Moved from from ARM_DECLARE_FUNCTION_NAME.
11076         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Call
11077          arm_declare_function_name.
11078
11079 2015-05-11  Christian Bruel  <christian.bruel@st.com>
11080
11081         * config/arm/arm.c (arm_option_override): Reoganized and split into :
11082         (arm_option_params_internal); New function.
11083         (arm_option_check_internal): New function.
11084         (arm_option_override_internal): New function.
11085         (thumb_code, thumb1_code): Remove.
11086         * config/arm/arm.h (TREE_TARGET_THUMB, TREE_TARGET_THUMB1): New macros.
11087         (TREE_TARGET_THUM2, TREE_TARGET_ARM): Likewise.
11088         (thumb_code, thumb1_code): Remove.
11089         * config/arm/arm.md (is_thumb, is_thumb1): Check TARGET flag.
11090
11091 2015-05-11  Uros Bizjak  <ubizjak@gmail.com>
11092
11093         * config/alpha/alpha.c (alpha_emit_set_const_1)
11094         (alpha_emit_set_long_const, alpha_extract_integer)
11095         (alpha_legitimate_constant_p, alpha_split_const_mov)
11096         (alpha_expand_block_clear, alpha_expand_zap_mask, print_operand):
11097         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
11098         (alpha_emit_set_const_1): Change "(HOST_WIDE_INT) 1" to
11099         HOST_WIDE_INT_1U.
11100         * config/alpha/predicates.md (mode_mask_operand): Do not match
11101         const_double RTX.
11102         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
11103         * config/alpha/alpha.md (abstf, *abstf_internal, UNSPEC_ZAP splitter):
11104         Change "(HOST_WIDE_INT) 1" to HOST_WIDE_INT_1U.
11105         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
11106         (*negtf_internal): Use gen_int_mode instead of immed_double_const.
11107
11108 2015-05-11  Jakub Jelinek  <jakub@redhat.com>
11109
11110         PR target/65780
11111         * config/s390/linux.h (TARGET_BINDS_LOCAL_P): Define to
11112         default_binds_local_p_2.
11113         * config/arm/linux-elf.h (TARGET_BINDS_LOCAL_P): Likewise.
11114         * config/aarch64/aarch64-linux.h (TARGET_BINDS_LOCAL_P): Likewise.
11115
11116 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
11117
11118         * tree.c (verify_type_variant): Check TYPE_VALUES_RAW and TYPE_PRECISION
11119
11120 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
11121
11122         Patch by Richard Biener
11123         * coverage.c (coverage_obj_init): Delay building of type variant
11124         until the type is finished.
11125
11126 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
11127
11128         * ipa-devirt.c (warn_types_mismatch): Do not ICE when warning about
11129         mismatch between C and C++ type; compoare correctly ARG_TYPES
11130         for non-prototypes and output correctly parameter index for METHOD_TYPE.
11131         (odr_types_equivalent_p): Fix wording of warning about attributes;
11132         it is OK to match prototype and non-prototype.
11133
11134 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
11135
11136         * tree.c (free_lang_data_in_type): Free TREE_PURPOSE of
11137         TYPE_ARG_TYPES list.
11138         (verify_type): Permit non-NULL TREE_PURPOSE in non-LTO builds.
11139         * tree.def (FUNCTION_TYPE): Document TREE_PURPOSE in TYPE_ARG_TYPES
11140
11141 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
11142
11143         * tree.c (verify_type): Verify TYPE_BINFO and TYPE_VALUES_RAW.
11144         * tree.h (is_lang_specific): Constify.
11145
11146 2015-05-09  Marc Glisse  <marc.glisse@inria.fr>
11147
11148         PR tree-optimization/64454
11149         * tree-vrp.c (extract_range_from_binary_expr_1) <TRUNC_MOD_EXPR>:
11150         Rewrite.
11151
11152 2015-05-08  Jason Merrill  <jason@redhat.com>
11153
11154         * bitmap.c, c/c-aux-info.c, cfg.c, cfghooks.c, cgraph.c,
11155         config/aarch64/aarch64.md config/alpha/vms.h, config/darwin.c,
11156         config/darwin.h, config/darwin9.h, config/elfos.h,
11157         config/i386/bsd.h, config/ia64/ia64.c, config/lm32/lm32.h,
11158         config/microblaze/microblaze.h, config/mips/mips.h,
11159         config/mmix/mmix.c, config/msp430/msp430.c, config/nios2/nios2.h,
11160         config/nvptx/nvptx.c, config/nvptx/nvptx.h, config/pa/pa.c,
11161         config/pa/pa.h, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
11162         config/rs6000/xcoff.h, config/rx/rx.h, config/s390/s390.h,
11163         config/sparc/sol2.h, config/sparc/sparc.h, config/visium/visium.h,
11164         cppbuiltin.c, defaults.h, doc/invoke.texi, dwarf2cfi.c,
11165         dwarf2out.c, final.c, gcc.c, gcov-dump.c, gcov.c, ipa-cp.c,
11166         ipa-inline.c, ipa-polymorphic-call.c, ipa-profile.c, ipa-prop.c,
11167         ira-color.c, ira.c, loop-doloop.c, loop-iv.c, mcf.c,
11168         modulo-sched.c, predict.c, profile.c, stor-layout.c, toplev.c,
11169         tree-ssa-reassoc.c, value-prof.c, wide-int-print.cc: Add space
11170         between string literal and macro name.
11171
11172 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11173
11174         * jump.c: Change argument types to rtx_insn *.
11175         * rtl.h: Adjust.
11176
11177 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11178
11179         * lra-constraints.c: Change argument type to rtx_insn *.
11180
11181 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11182
11183         * df-problems.c: Change argument type to rtx_insn *.
11184
11185 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11186
11187         * combine.c: Change argument type to rtx_insn *.
11188
11189 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11190
11191         * rtl.h: Adjust.
11192         * rtlanal.c: Change argument type to rtx_insn *.
11193
11194 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11195
11196         * sched-deps.c: Change argument types to rtx_insn *.
11197         * sched-int.h: Adjust.
11198
11199 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11200
11201         * dwarf2cfi.c: Change argument type to rtx_insn *.
11202
11203 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11204
11205         * ira.c (decrease_live_ranges_number): Changetype of local
11206         variable to rtx_insn *.
11207         * recog.c: Change argument types to rtx_insn *.
11208         * recog.h: Adjust.
11209
11210 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11211
11212         * reorg.c: Change argument types to rtx_insn *.
11213
11214 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11215
11216         * ira-color.c: Change argument types to rtx_insn *.
11217         * lra-eliminations.c: Likewise.
11218         * ira.h: Adjust.
11219
11220 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11221
11222         * gcse.c: Change argument types to rtx_insn *.
11223
11224 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11225
11226         * cse.c (cse_change_cc0_mode): Change argument type to rtx_insn *.
11227
11228 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11229
11230         * emit-rtl.c (emit_debug_insn_before): Change argument type to
11231         rtx_insn *.
11232         * rtl.h: Adjust.
11233
11234 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11235
11236         * emit-rtl.c (emit_note_before): Change argument type to rtx_insn *.
11237         * rtl.h: Adjust.
11238
11239 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11240
11241         * emit-rtl.c (emit_note_after): Change argument type to rtx_insn *.
11242         * rtl.h: Adjust.
11243
11244 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11245
11246         * emit-rtl.c (prev_cc0_setter): Change argument type to rtx_insn *.
11247         * rtl.h: Adjust.
11248
11249 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11250
11251         * rtlanal.c (noop_move_p): Change argument type to rtx_insn *.
11252         * rtl.h: Adjust.
11253
11254 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11255
11256         * rtlanal.c (add_shallow_copy_of_reg_note): Change argument type
11257         to rtx_insn *.
11258         * rtl.h: Adjust.
11259
11260 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11261
11262         * rtlanal.c (remove_reg_equal_equiv_notes): Change argument type
11263         to rtx_insn *.
11264         * rtl.h: Likewise.
11265
11266 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11267
11268         * except.c (can_nonlocal_goto): Change type of argument to
11269         rtx_insn *.
11270         * rtl.h: Adjust.
11271
11272 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11273
11274         * rtlanal.c (computed_jump_p): Cange argument type to rtx_insn *.
11275         * rtl.h: Adjust.
11276
11277 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11278
11279         * rtlanal.c (in_insn_list_p): Renamed from in_expr_list_p.
11280         * cfgrtl.c (can_delete_label_p): Adjust.
11281         * rtl.h: likewise.
11282
11283 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11284
11285         * reorg.c (stop_search_p): Change argument to rtx_insn *.
11286
11287 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11288
11289         * except.c (make_reg_eh_region_note): Change argument to
11290         rtx_insn *.
11291         (make_reg_eh_region_note_nothrow_nononlocal): Likewise.
11292         * except.h: Adjust.
11293
11294 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11295
11296         * mode-switching.c (commit_mode_sets): Change type of local
11297         variable from rtx to rtx_insn *.
11298
11299 2015-05-08  Jim Wilson  <jim.wilson@linaro.org>
11300
11301         * doc/install.texi (--enable-languages): Add missing jit and lto info.
11302         Add ^ to grep command.
11303         * doc/match-and-simplify.texi (GIMPLE API): Add missing fourth tree
11304         arg to last gimple_simplify declaration.  Add missing gimple_build
11305         declaration for built-in function case with four tree args.
11306
11307 2015-05-08  Gregor Richards  <gregor.richards@uwaterloo.ca>
11308             Szabolcs Nagy  <szabolcs.nagy@arm.com>
11309
11310         * config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Define.
11311         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Define.
11312         (GNU_USER_DYNAMIC_LINKERN32): Update.
11313
11314 2015-05-08  Richard Biener  <rguenther@suse.de>
11315
11316         PR tree-optimization/66036
11317         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
11318         Handle strided group loads.
11319         (vect_verify_datarefs_alignment): Likewise.
11320         (vect_enhance_data_refs_alignment): Likewise.
11321         (vect_analyze_group_access): Likewise.
11322         (vect_analyze_data_ref_access): Likewise.
11323         (vect_analyze_data_ref_accesses): Likewise.
11324         * tree-vect-stmts.c (vect_model_load_cost): Likewise.
11325         (vectorizable_load): Likewise.
11326
11327 2015-05-08  Segher Boessenkool  <segher@kernel.crashing.org>
11328
11329         * config/rs6000/rs6000.md: Require operand inequality in one
11330         of the peepholes.
11331
11332 2015-05-08  Richard Sandiford  <richard.sandiford@arm.com>
11333             Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
11334
11335         * config/i386/i386.md (<mode>_ldx, *<mode>_ldx): Remove mode
11336         from (set ...).
11337         * config/rx/rx.md (movdi, movdf): Likewise.
11338         Likewise for define_peephole2s.
11339
11340 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
11341
11342         * config/aarch64/arm_neon.h (vceq_s64, vceq_u64, vceqz_s64, vceqz_u64,
11343         vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64, vcgtz_s64, vcle_s64,
11344         vcle_u64, vclez_s64, vclt_s64, vclt_u64, vcltz_s64, vtst_s64,
11345         vtst_u64): Rewrite using gcc vector extensions.
11346
11347 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
11348
11349         * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>,
11350         vcond<mode><mode>, vcondu<mode><mode>): Add DImode variant.
11351
11352 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
11353
11354         * optabs.c (vector_compare_rtx): Handle RTL operands having VOIDmode.
11355
11356 2015-05-08  Szabolcs Nagy  <szabolcs.nagy@arm.com>
11357
11358         * config/glibc-stdint.h (OPTION_MUSL): Define.
11359         (INT_FAST16_TYPE, INT_FAST32_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE):
11360         Change the definition based on OPTION_MUSL for 64 bit targets.
11361         * config/linux.h (OPTION_MUSL): Redefine.
11362         * config/alpha/linux.h (OPTION_MUSL): Redefine.
11363         * config/rs6000/linux.h (OPTION_MUSL): Redefine.
11364         * config/rs6000/linux64.h (OPTION_MUSL): Redefine.
11365
11366 2015-05-08  Gregor Richards  <gregor.richards@uwaterloo.ca>
11367             Szabolcs Nagy  <szabolcs.nagy@arm.com>
11368
11369         * config.gcc (LIBC_MUSL): New tm_defines macro.
11370         * config/linux.h (OPTION_MUSL): Define.
11371         (MUSL_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER32,)
11372         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32,)
11373         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
11374         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
11375         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
11376         * config/linux.opt (mmusl): New option.
11377         * doc/invoke.texi (GNU/Linux Options): Document -mmusl.
11378         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
11379         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
11380         * configure: Regenerate.
11381
11382 2015-05-08  H.J. Lu  <hongjiu.lu@intel.com>
11383             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
11384
11385         PR target/48904
11386         * config.gcc (x86_64-*-knetbsd*-gnu): Add i386/knetbsd-gnu64.h.
11387         * config/i386/knetbsd-gnu64.h: New file.
11388
11389 2015-05-08  Marek Polacek  <polacek@redhat.com>
11390
11391         PR c/64918
11392         * doc/invoke.texi: Document -Woverride-init-side-effects.
11393
11394 2015-05-07  Marek Polacek  <polacek@redhat.com>
11395
11396         PR c/65179
11397         * doc/invoke.texi: Document -Wshift-negative-value.
11398
11399 2015-05-06  Aditya Kumar  <hiraditya@msn.com>
11400
11401         * gcov-tool.c (do_merge): Refactore to remove int ret.
11402         * ipa-icf.c (sem_item::hash_referenced_symbol_properties): Change
11403         !type == FUNC to type != FUNC.
11404         * reload.h (struct target_reload): Changee to type of
11405         x_spill_indirect_levels from bool to unsigned char.
11406
11407 2015-05-07  Richard Sandiford  <richard.sandiford@arm.com>
11408
11409         * rtl.h (always_void_p): New function.
11410         * gengenrtl.c (always_void_p): Likewise.
11411         (genmacro): Don't add a mode parameter to gen_rtx_foo if rtxes
11412         with code foo are always VOIDmode.
11413         * genemit.c (gen_exp): Update gen_rtx_foo calls accordingly.
11414         * builtins.c, caller-save.c, calls.c, cfgexpand.c, combine.c,
11415         compare-elim.c, config/aarch64/aarch64.c,
11416         config/aarch64/aarch64.md, config/alpha/alpha.c,
11417         config/alpha/alpha.md, config/arc/arc.c, config/arc/arc.md,
11418         config/arm/arm-fixed.md, config/arm/arm.c, config/arm/arm.md,
11419         config/arm/ldrdstrd.md, config/arm/thumb2.md, config/arm/vfp.md,
11420         config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
11421         config/c6x/c6x.md, config/cr16/cr16.c, config/cris/cris.c,
11422         config/cris/cris.md, config/darwin.c, config/epiphany/epiphany.c,
11423         config/epiphany/epiphany.md, config/fr30/fr30.c, config/frv/frv.c,
11424         config/frv/frv.md, config/h8300/h8300.c, config/i386/i386.c,
11425         config/i386/i386.md, config/i386/sse.md, config/ia64/ia64.c,
11426         config/ia64/vect.md, config/iq2000/iq2000.c,
11427         config/iq2000/iq2000.md, config/lm32/lm32.c, config/lm32/lm32.md,
11428         config/m32c/m32c.c, config/m32r/m32r.c, config/m68k/m68k.c,
11429         config/m68k/m68k.md, config/mcore/mcore.c, config/mcore/mcore.md,
11430         config/mep/mep.c, config/microblaze/microblaze.c,
11431         config/mips/mips.c, config/mips/mips.md, config/mmix/mmix.c,
11432         config/mn10300/mn10300.c, config/msp430/msp430.c,
11433         config/nds32/nds32-memory-manipulation.c, config/nds32/nds32.c,
11434         config/nds32/nds32.md, config/nios2/nios2.c, config/nvptx/nvptx.c,
11435         config/pa/pa.c, config/pa/pa.md, config/rl78/rl78.c,
11436         config/rs6000/altivec.md, config/rs6000/rs6000.c,
11437         config/rs6000/rs6000.md, config/rs6000/vector.md,
11438         config/rs6000/vsx.md, config/rx/rx.c, config/rx/rx.md,
11439         config/s390/s390.c, config/s390/s390.md, config/sh/sh.c,
11440         config/sh/sh.md, config/sh/sh_treg_combine.cc,
11441         config/sparc/sparc.c, config/sparc/sparc.md, config/spu/spu.c,
11442         config/spu/spu.md, config/stormy16/stormy16.c,
11443         config/tilegx/tilegx.c, config/tilegx/tilegx.md,
11444         config/tilepro/tilepro.c, config/tilepro/tilepro.md,
11445         config/v850/v850.c, config/v850/v850.md, config/vax/vax.c,
11446         config/visium/visium.c, config/xtensa/xtensa.c, cprop.c, dse.c,
11447         expr.c, gcse.c, ifcvt.c, ira.c, jump.c, lower-subreg.c,
11448         lra-constraints.c, lra-eliminations.c, lra.c, postreload.c, ree.c,
11449         reg-stack.c, reload.c, reload1.c, reorg.c, sel-sched.c,
11450         var-tracking.c: Update calls accordingly.
11451
11452 2015-05-07  Segher Boessenkool  <segher@kernel.crashing.org>
11453
11454         PR middle-end/192
11455         PR middle-end/54303
11456         * varasm.c (function_mergeable_rodata_prefix): New function.
11457         (mergeable_string_section): Use it.
11458         (mergeable_constant_section): Use it.
11459
11460 2015-05-07  Jeff Law  <law@redhat.com>
11461
11462         PR target/39726
11463         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
11464         simplifier to narrow arithmetic.
11465         * generic-match-head.c: (types_match, single_use): New functions.
11466         * gimple-match-head.c: (types_match, single_use): New functions.
11467
11468 2015-05-07  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
11469
11470         * combine.c (make_compound_operation): Remove checks for PLUS/MINUS
11471         rtx type.
11472
11473 2015-05-07  Richard Biener  <rguenther@suse.de>
11474
11475         PR tree-optimization/66002
11476         * passes.def: Schedule another pass_merge_phi after ifcombine, right
11477         before phiopt.
11478
11479 2015-05-07  Marek Polacek  <polacek@redhat.com>
11480             Martin Uecker  <uecker@eecs.berkeley.edu>
11481
11482         * doc/invoke.texi: Document -fsanitize=bounds-strict.
11483         * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS_STRICT, or it
11484         into SANITIZE_NONDEFAULT.
11485         * opts.c (common_handle_option): Handle -fsanitize=bounds-strict.
11486
11487 2015-05-07  Uros Bizjak  <ubizjak@gmail.com>
11488
11489         PR target/66015
11490         * config/alpha/alpha.c (alpha_override_options_after_change): New.
11491         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
11492         (alpha_override_options): Move align_loops, align_jumps and
11493         align_functions handling into alpha_override_options_after_change.
11494
11495 2015-05-06  Sandra Loosemore  <sandra@codesourcery.com>
11496             Chris Jones  <chrisj@nvidia.com>
11497             Joshua Conner  <jconner@nvidia.com>
11498
11499         * config/arm/unknown-elf.h (STARTFILE_SPEC): Add conditional
11500         linking of crtfastmath.o.
11501         * config/arm/linux-eabi.h (STARTFILE_SPEC): Likewise.
11502
11503 2015-05-06  Segher Boessenkool  <segher@kernel.crashing.org>
11504
11505         * config/rs6000/rs6000.md (cstore<mode>4_signed_imm): New expander.
11506         (cstore<mode>4_unsigned_imm): New expander.
11507         (cstore<mode>4): Remove empty constraint strings.  Use the new
11508         expanders.
11509
11510 2015-05-06  Yvan Roux  <yvan.roux@linaro.org>
11511
11512         PR target/64208
11513         * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Cleanup redundant
11514         alternatives.
11515
11516 2015-05-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>
11517
11518         * config/aarch64/geniterators.sh: Use standard BRE in sed.
11519
11520 2015-05-06  Alan Modra  <amodra@gmail.com>
11521
11522         PR target/66033
11523         * config/rs6000/rs6000.md (nop): Use an unspec pattern.
11524         (UNSPEC_NOP): Define.
11525         (reload_vsx_from_gpr<mode>): Add missing DONE.
11526         (reload_gpr_from_vsx<mode>): Likewise.
11527         * config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
11528         (vsx_div_v2di, vsx_udiv_v2di): Likewise.
11529
11530 2015-05-06  Christian Bruel  <christian.bruel@st.com>
11531
11532         PR target/66015
11533         * config/aarch64/aarch64.c (aarch64_override_options): Move align_loops,
11534         align_jumps, align_functions into aarch64_override_options_after_change.
11535
11536 2015-05-06  Richard Biener  <rguenther@suse.de>
11537
11538         * tree-vect-slp.c (vect_supported_load_permutation_p): Use
11539         vect_transform_slp_perm_load to check if we support a permutation
11540         for basic-block vectorization.
11541
11542 2015-05-06  Nick Clifton  <nickc@redhat.com>
11543
11544         * config/rl78/rl78.c (need_to_save): Save register 22 if it is
11545         used, even if it is not being used as a frame pointer.
11546
11547 2015-05-05  Jason Merrill  <jason@redhat.com>
11548
11549         * dwarf2out.c (gen_member_die): Don't emit anything for an
11550         anonymous class constructor.
11551
11552 2015-05-05  David Malcolm  <dmalcolm@redhat.com>
11553
11554         * auto-profile.c (afdo_find_equiv_class): Fix indentation so
11555         that it reflects the block structure.
11556         (afdo_propagate_edge): Likewise.
11557         (afdo_calculate_branch_prob): Likewise.
11558         (afdo_annotate_cfg): Likewise.
11559         * cfgcleanup.c (equal_different_set_p): Likewise.
11560         (try_crossjump_to_edge): Likewise.
11561         * cgraph.c (cgraph_node::verify_node): Likewise.
11562         * cgraphunit.c (expand_all_functions): Likewise.
11563         * config/i386/i386.c (ix86_expand_copysign): Likewise.
11564         (exact_dependency_1): Likewise.
11565         * dwarf2asm.c (dw2_output_indirect_constants): Likewise.
11566         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Likewise.
11567         * gensupport.c (process_define_subst): Likewise.
11568         * lto-wrapper.c (merge_and_complain): Likewise.
11569         * tree-if-conv.c (if_convertible_bb_p): Likewise.
11570         * tree-ssa-loop-prefetch.c (find_or_create_group): Likewise.
11571         * tree-ssa-tail-merge.c (gsi_advance_fw_nondebug_nonlocal): Likewise.
11572         * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
11573         * tree-vect-loop.c (vectorizable_reduction): Likewise.
11574         * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
11575         * tree-vect-stmts.c (vectorizable_shift): Likewise.
11576         * tree-vrp.c (vrp_finalize): Likewise.
11577         * tree.c (variably_modified_type_p): Likewise.
11578
11579 2015-05-05  Jack Howarth  <howarth.at.gcc@gmail.com>
11580
11581         * config.gcc: Use darwin9.h, darwin10.h and darwin12.h
11582         on darwin12 and later.
11583         * config/darwin12.h (LINK_GCC_C_SEQUENCE_SPEC): Add
11584         file to pass -rdynamic on darwin12 and later.
11585         * config/darwin.opt (rdynamic): Add.
11586
11587 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
11588
11589         * doc/extend.texi (C Extensions): Update menu for moved Variable
11590         Attributes and Type Attributes sections.
11591
11592 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
11593
11594         PR target/65990
11595         * config/i386/i386.c (ix86_parse_stringop_strategy_string): Error out
11596         if rep_8byte stringop strategy was specified for 32-bit target.
11597
11598 2015-05-05  Ilya Tocar  <ilya.tocar@intel.com>
11599
11600         PR target/65915
11601         * config/i386/i386.md (vector convert to float spltiter): Check for
11602         xmm16+, when splitting scalar float conversion.
11603         * config/i386/sse.md (sse2_cvtsi2sd): Support EVEX version.
11604
11605 2015-05-05  Nick Clifton  <nickc@redhat.com>
11606
11607         * config/msp430/msp430-opts.h (enum msp430_regions): New.
11608         * config/msp430/msp430.c (msp430_override_options): Complain if
11609         -mcode-region or -mdata-region is used on a non MSP430X.
11610         (msp430_section_attr): New function.  Checks lower, upper and
11611         either attributes.
11612         (msp430_attribute_table): Add lower, upper and either.
11613         (gen_prefix): New function.  Generates a prefix for a section
11614         name.
11615         (msp430_select_section): New function - handles the choice of
11616         section for an object.  Takes into account memory region
11617         attributes and options.
11618         (msp430_function_section): Use gen_prefix.
11619         (TARGET_SECTION_TYPE_FLAGS): Define.
11620         (msp430_section_type_flags): New function.
11621         (TARGET_ASM_UNIQUE_SECTION): Define.
11622         (msp430_unique_section): New function.
11623         (msp430_output_aligned_decl_common): New function.
11624         (msp430_do_not_relax_short_jumps): New function.
11625         * config/msp430/msp430.h (USE_SELECT_SECTION_FOR_FUNCTIONS):
11626         Define.
11627         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
11628         * config/msp430/msp430-protos.h
11629         (msp430_do_not_relax_short_jumps): New prototype.
11630         (msp430_output_aligned_decl_common): New prototype.
11631         * config/msp430/msp430.md (length): New attribute.
11632         (cbranchhi4_real): If msp430_do_not_relax_short_jumps is true
11633         then use a long code sequence for short jumps.
11634         * config/msp430/msp430.opt (mcode-region): New.
11635         (mdata-region): New.
11636         * doc/invoke.texi: Document new options.
11637         * doc/extend.texi: Document new attributes.
11638
11639 2015-05-05  Matthew Wahab  <matthew.wahab@arm.com>
11640
11641         * gcc/config/aarch64-protos.h (struct cpu_branch_cost): New.
11642         (tune_params): Add field branch_costs.
11643         (aarch64_branch_cost): Declare.
11644         * gcc/config/aarch64.c (generic_branch_cost): New.
11645         (generic_tunings): Set field cpu_branch_cost to generic_branch_cost.
11646         (cortexa53_tunings): Likewise.
11647         (cortexa57_tunings): Likewise.
11648         (thunderx_tunings): Likewise.
11649         (xgene1_tunings): Likewise.
11650         (aarch64_branch_cost): Define.
11651         * gcc/config/aarch64/aarch64.h (BRANCH_COST): Redefine.
11652
11653 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
11654
11655         * config/i386/i386.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1
11656         and HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1.
11657         * config/i386/i386.md: Ditto.
11658         * config/i386/winnt.c: Ditto.
11659
11660 2015-05-05  Matthew Wahab  <matthew.wahab@arm.com>
11661
11662         * doc/extend.texi (__atomic Builtins): Move implementation details
11663         to the end of the description, rewrite opening paragraphs, state
11664         difference with __sync builtins, state C11/C++11 assumptions,
11665         weaken itemized descriptions, add explanation of memory model
11666         behaviour, expand description of compare-exchange, simplify text.
11667
11668 2015-05-05  Renlin Li  <renlin.li@arm.com>
11669
11670         * config/aarch64/aarch64.md (add<mode>3): Use mov when allowed.
11671
11672 2015-05-05  Yvan Roux  <yvan.roux@linaro.org>
11673
11674         * config/aarch64/aarch64-elf-raw.h (CA53_ERR_843419_SPEC): Define.
11675         (LINK_SPEC): Include CA53_ERR_843419_SPEC.
11676         * config/aarch64/aarch64-linux.h (CA53_ERR_843419_SPEC): Define.
11677         (LINK_SPEC): Include CA53_ERR_843419_SPEC.
11678         * config/aarch64/aarch64.opt (mfix-cortex-a53-843419): New option.
11679         * configure: Regenerate.
11680         * configure.ac: Add --enable-fix-cortex-a53-843419 option.
11681         * doc/install.texi (aarch64*-*-*): Document new
11682         --enable-fix-cortex-a53-843419 option.
11683         * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-843419
11684         and -mno-fix-cortex-a53-843419 options.
11685
11686 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
11687
11688         PR target/65871
11689         * config/i386/i386.md (*bmi_andn_<mode>_ccno): New pattern.
11690
11691 2015-05-04  Jan Hubicka  <hubicka@ucw.cz>
11692
11693         * tree.c (verify_type): Check various uses of TYPE_MAXVAL;
11694         fix overactive TYPE_MIN_VALUE check and add FIXME for type
11695         compatibility problems.
11696
11697 2015-05-04  Ajit Agarwal  <ajitkum@xilinx.com>
11698
11699         * config/microblaze/microblaze.md (cbranchsi4): Added immediate
11700         constraints.
11701         (cbranchsi4_reg): New.
11702         * config/microblaze/microblaze.c
11703         (microblaze_expand_conditional_branch_reg): New.
11704         * config/microblaze/microblaze-protos.h
11705         (microblaze_expand_conditional_branch_reg): New prototype.
11706
11707 2015-05-04  Ajit Agarwal  <ajitkum@xilinx.com>
11708
11709         * config/microblaze/microblaze.md (peephole2): New.
11710
11711 2015-05-04  Jeff Law  <law@redhat.com>
11712
11713         Revert:
11714         2015-05-04  Jeff Law  <law@redhat.com>
11715
11716         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
11717         simplifier to narrow arithmetic.
11718         * generic-match-head.c: (types_match, single_use): New functions.
11719         * gimple-match-head.c: (types_match, single_use): New functions.
11720
11721 2015-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
11722
11723         PR target/65987
11724         * config/sh/sh.c (output_far_jump): Take into account crossing jumps.
11725         (split_branches): Likewise.
11726
11727 2015-05-04  Sandra Loosemore  <sandra@codesourcery.com>
11728
11729         * common.opt (fdelete-null-pointer-checks): Init to -1.
11730         * config/nios2/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define to
11731         override flag_delete_null_pointer_checks default.
11732         * doc/invoke.texi (-fdelete-null-pointer-checks): Clarify
11733         behavior re address zero.  Better document target-specific behavior.
11734         (-fisolate-errneous-paths-dereference): Mention relationship to
11735         -fdelete-null-pointer-checks.
11736
11737 2015-05-04  Jakub Jelinek  <jakub@redhat.com>
11738
11739         PR tree-optimization/65984
11740         * ubsan.c: Include tree-cfg.h.
11741         (instrument_bool_enum_load): Use stmt_ends_bb_p instead of
11742         stmt_could_throw_p test, rename can_throw variable to ends_bb.
11743
11744 2015-05-04  Uros Bizjak  <ubizjak@gmail.com>
11745
11746         * config/i386/i386.c: Change GET_CODE (...) == CONST_DOUBLE check
11747         to CONST_DOUBLE_P predicate.
11748         (standard_sse_constant_p): Return 0 for !TARGET_SSE.
11749         (ix86_legitimate_constant_p) <case CONST_WIDE_INT>: For 32bit targets,
11750         allow only operands that satisfy standard_sse_constant_p predicate.
11751         * config/i386/i386.md: Change GET_CODE (...) == CONST_DOUBLE check
11752         to CONST_DOUBLE_P predicate.
11753
11754 2015-05-04  Jeff Law  <law@redhat.com>
11755
11756         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
11757         simplifier to narrow arithmetic.
11758         * generic-match-head.c: (types_match, single_use): New functions.
11759         * gimple-match-head.c: (types_match, single_use): New functions.
11760
11761 2015-05-04  Andreas Tobler  <andreast@gcc.gnu.org>
11762
11763         * config/arm/arm.c: Restore bootstrap.
11764
11765 2015-05-04  Uros Bizjak  <ubizjak@gmail.com>
11766
11767         * config/i386/i386.h (TARGET_SUPPORTS_WIDE_INT): New define.
11768         * config/i386/i386.c (ix86_legitimate_constant_p): Handle TImode
11769         as CONST_WIDE_INT, not CONST_DOUBLE.
11770         (ix86_cannot_force_const_mem): Handle CONST_WIDE_INT.
11771         (output_pic_addr_const): Do not handle VOIDmode CONST_DOUBLEs.
11772         (ix86_find_base_term): Do not check for CONST_DOUBLE.
11773         (ix86_print_operand): Do not handle non-FPmode CONST_DOUBLEs.
11774         (ix86_build_signbit_mask): Rewrite using wide ints.
11775         (ix86_split_to_parts) [HOST_BITS_PER_WIDE_INT < 64]: Remove.
11776         (ix86_rtx_costs): Handle CONST_WIDE_INT.
11777         (find_constant): Ditto.
11778         * config/i386/i386.md (bts, btr, btc peepholes): Rewrite
11779         using gen_int_mode.
11780         * config/i386/predicates.md (x86_64_immediate_operand)
11781         <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
11782         (x86_64_zext_immediate_operand): Remove CONST_DOUBLE handling.
11783         <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
11784         (const0_operand): Also match const_wide_int.
11785         (constm1_operand): Ditto.
11786         (const1_operand): Ditto.
11787
11788 2015-05-04  Richard Biener  <rguenther@suse.de>
11789
11790         PR tree-optimization/65965
11791         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Split
11792         store groups at gaps.
11793
11794 2015-05-04  Richard Biener  <rguenther@suse.de>
11795
11796         PR tree-optimization/65935
11797         * tree-vect-slp.c (vect_build_slp_tree): If we swapped operands
11798         then make sure to apply that swapping to the IL.
11799
11800 2015-05-04  Jakub Jelinek  <jakub@redhat.com>
11801
11802         * Makefile.in (PATCHLEVEL_c): New variable.
11803         (DATESTAMP_s, REVISION_s): If PATCHLEVEL_c is not 0,
11804         expand the same way as if DEVPHASE_c was non-empty.
11805
11806 2015-05-04  Kai Tietz  <ktietz@redhat.com>
11807
11808         PR target/65559
11809         * lto-wrapper.c (run_gcc): Open filename
11810         in binary-mode.
11811
11812 2015-05-03  Sandra Loosemore  <sandra@codesourcery.com>
11813
11814         * doc/extend.texi (Variable Attributes, Type Attributes):  Move
11815         sections up in file, to immediately after the Function Attributes
11816         section.
11817
11818 2015-05-02  Jan Hubicka  <hubicka@ucw.cz>
11819
11820         * tree.c (verify_type): Check various uses of TYPE_MINVAL.
11821
11822 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11823
11824         * tree-outof-ssa.c (emit_partition_copy): Return rtx_insn *.
11825         (insert_partition_copy_on_edge): Adjust.
11826         (insert_rtx_to_part_on_edge): Likewise.
11827         (insert_part_to_rtx_on_edge): Likewise.
11828
11829 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11830
11831         * function.c (set_return_jump_label): Change type of argument to
11832         rtx_insn *.
11833         * function.h (set_return_jump_label): Adjust.
11834
11835 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11836
11837         * reload.h (struct reg_equivs_t): Change type of init to
11838         rtx_insn *.
11839         * ira.c (fix_reg_equiv_init): Adjust.
11840         * reload1.c (eliminate_regs_1): Likewise.
11841         (init_eliminable_invariants): Likewise.
11842
11843 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11844
11845         * cselib.c (fp_setter_insn): Take a rtx_insn *.
11846         * cselib.h (fp_setter_insn): Adjust.
11847
11848 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11849
11850         * recog.c (struct validate_replace_src_data): Change type of
11851         insn field to rtx_insn *.
11852         (validate_replace_src_group): Change type of argument to rtx_insn *.
11853         * recog.h (validate_replace_src_group): Adjust.
11854
11855 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11856
11857         * haifa-sched.c: Change the type of some variables to rtx_insn *.
11858         * sched-deps.c: Likewise.
11859         * sched-int.h: Likewise.
11860         * sched-rgn.c: Likewise.
11861         * sel-sched.c: Likewise.
11862
11863 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11864
11865         to rtx_insn *.
11866         * config/i386/i386.c: Change the type of some arguments to
11867         rtx_insn *.
11868         * config/arm/arm.c: Likewise.
11869
11870 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11871
11872         * lra-constraints.c: Change type of some arguments to rtx_insn *.
11873
11874 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11875
11876         * regcprop.c (kill_autoinc_value): Change type of argument to
11877         rtx_insn *.
11878
11879 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11880
11881         * genrecog.c (print_subroutine): Adjust.
11882         * recog.c (get_bool_attr_mask_uncached): Likewise.
11883         * recog.h (struct recog_data_d): Change the type of insn to
11884         rtx_insn *.
11885
11886 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11887
11888         * dwarf2cfi.c (add_cfi_insn): Change type to rtx_insn *.
11889
11890 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11891
11892         * df-problems.c (df_set_note): Change type of argument to
11893         rtx_insn *.
11894
11895 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11896
11897         * builtins.c (expand_builtin_trap): Change type of local
11898         variable to rtx_insn *.
11899         (add_sched_insns_for_speculation): Likewise.
11900         (ix86_emit_save_regs): Likewise.
11901         (get_scratch_register_on_entry): Likewise.
11902         (ix86_emit_restore_reg_using_pop): Likewise.
11903         (ix86_emit_leave): Likewise.
11904         (ix86_emit_restore_regs_using_mov): Likewise.
11905         (ix86_expand_epilogue): Likewise.
11906         Likewise.
11907         (rl78_alloc_physical_registers_umul): Likewise.
11908         * cselib.c (discard_useless_locs): Likewise.
11909         (cselib_invalidate_regno): Likewise.
11910         (cselib_invalidate_mem): Likewise.
11911         * function.c (expand_function_start): Likewise.
11912         (emit_use_return_register_into_block): Likewise.
11913         * gcse.c: Likewise.
11914         * haifa-sched.c (ok_for_early_queue_removal): Likewise.
11915         * ifcvt.c (noce_get_alt_condition): Likewise.
11916         * loop-doloop.c (doloop_condition_get): Likewise.
11917         * lra-constraints.c (inherit_in_ebb): Likewise.
11918         * modulo-sched.c (sms_schedule_by_order): Likewise.
11919         * recog.c (next_insn_tests_no_inequality): Likewise.
11920         * reorg.c (emit_delay_sequence): Likewise.
11921         (update_reg_dead_notes): Likewise.
11922         (fix_reg_dead_note): Likewise.
11923         (fill_slots_from_thread): Likewise.
11924         (delete_computation): Likewise.
11925
11926 2015-05-01  Sandra Loosemore  <sandra@codesourcery.com>
11927
11928         * doc/extend.texi (Variable Attributes): Add menu and proper
11929         @nodes to subsections.  Move Microsoft Windows attributes to
11930         their own subsection.
11931         (Type Attributes): Reorganize introduction to remove duplicate
11932         list of attributes.  Add menu and proper @nodes to subsections.
11933         Alphabetize the main table of common attributes.
11934
11935 2015-05-01  Rasmus Villemoes  <rv@rasmusvillemoes.dk>
11936
11937         * match.pd: New simplification patterns.
11938         (x + (x & 1))  -> ((x + 1) & ~1)
11939         (x & ~(x & y)) -> ((x & ~y))
11940         (x | ~(x | y)) -> ((x | ~y))
11941
11942 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11943
11944         * target.def (attribute_table): Mention that struct attribute_spec
11945         is defined in tree-core.h rather than tree.h
11946         * doc/tm.texi: Regenerate.
11947
11948 2015-05-01  Richard Sandiford  <richard.sandiford@arm.com>
11949
11950         * genrecog.c (test): Rename to rtx_test.  Update rest of file
11951         accordingly.
11952
11953 2015-05-01  Andreas Schwab  <schwab@linux-m68k.org>
11954
11955         PR translation/65959
11956         * params.h (DEFPARAM): Rename msgid to nocmsgid.
11957
11958 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
11959
11960         * gcc/config/aarch64/aarch64-protos.h (tune_params):
11961         Add min_div_recip_mul_sf and min_div_recip_mul_df fields.
11962         * gcc/config/aarch64/aarch64.c (aarch64_min_divisions_for_recip_mul):
11963         Return value depending on target.
11964         (generic_tunings): Initialize new target settings.
11965         (cortexa53_tunings): Likewise.
11966         (cortexa57_tunings): Likewise.
11967         (thunderx_tunings): Likewise.
11968         (xgene1_tunings): Likewise.
11969
11970 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
11971
11972         * gcc/config/arm/aarch-cost-tables.h (cortexa53_extra_costs):
11973         Make Cortex-A53 shift costs more accurate.
11974
11975 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11976
11977         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle FLOAT and
11978         UNSIGNED_FLOAT.
11979
11980 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
11981
11982         * gcc/config/aarch64/aarch64.c (aarch64_rtx_costs):
11983         Calculate cost of op0 and op1 in PLUS and MINUS cases.
11984
11985 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11986
11987         * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
11988         Add cost of op0 in the compare-with-fpzero case.
11989
11990 2015-04-30  David Malcolm  <dmalcolm@redhat.com>
11991
11992         * builtins.c (fold_builtin_1): Remove spurious second
11993         semicolon.
11994         * cgraph.h (symtab_node::get_availability): Likewise.
11995         * opts.c (common_handle_option): Remove spurious second semicolon.
11996         * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
11997         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
11998
11999 2015-04-30  Caroline Tice  <cmtice@google.com>
12000
12001         PR gcov-profile/65929
12002         * config/elfos.h (ASM_DECLARE_COLD_FUNCTION_NAME): New macro definition.
12003         (ASM_DECLARE_COLD_FUNCTION_SIZE): New macro definition.
12004         * doc/tm.texi.in (ASM_DECLARE_COLD_FUNCTION_NAME): Document new macro.
12005         (ASM_DECLARE_COLD_FUNCTION_SIZE): Document new macro.
12006         * doc/tm.texi: Regenerate.
12007         * final.c (final_scan_insn):  Use ASM_DECLARE_COLD_FUNCTION_NAME
12008         instead of ASM_DECLARE_FUNCTION_NAME for cold partition name.
12009         * varasm.c (assemble_end_function):  Use ASM_DECLARE_COLD_FUNCTION_SIZE
12010         instead of ASM_DECLARE_FUNCTION_SIZE for cold partition size.
12011
12012 2015-04-30  Marek Polacek  <polacek@redhat.com>
12013
12014         * varasm.c (handle_cache_entry): Fix logic.
12015
12016 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12017
12018         * config/aarch64/aarch64.md (*extr<mode>5_insn_alt): New pattern.
12019         (*extrsi5_insn_uxtw_alt): Likewise.
12020         * config/aarch64/aarch64.c (aarch64_extr_rtx_p): New function.
12021         (aarch64_rtx_costs, IOR case): Use above to properly cost extr
12022         operations.
12023
12024 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12025
12026         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle pattern for
12027         fabd in ABS case.
12028
12029 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12030
12031         * config/aarch64/aarch64.md
12032         (*eor_one_cmpl_<SHIFT:optab><mode>3_alt): New pattern.
12033         (*eor_one_cmpl_<SHIFT:optab>sidi3_alt_ze): Likewise.
12034         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle MVN-shift
12035         appropriately.  Handle alternative EON form.
12036
12037 2015-04-30  Renlin Li  <renlin.li@arm.com>
12038
12039         * config/aarch64/aarch64-simd.md (vec_shr): Defined as an unspec.
12040         * config/aarch64/iterators.md (unspec): Add UNSPEC_VEC_SHR.
12041
12042 2015-04-30  Jan Hubicka  <hubicka@ucw.cz>
12043
12044         PR ipa/65873
12045         * ipa-inline.c (can_inline_edge_p): It is safe to inline across
12046         -fstrict-aliasing boundaries.
12047
12048 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12049
12050         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Handle MNEG
12051         and [SU]MNEGL patterns.
12052
12053 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12054
12055         * config/aarch64/aarch64.c (aarch64_shift_p): New function.
12056         (aarch64_rtx_mult_cost): Update comment to reflect that it also handles
12057         combined arithmetic-shift ops.  Properly handle all shift and extend
12058         operations that can occur in combination with PLUS/MINUS.
12059         Rename maybe_fma to compound_p.
12060         (aarch64_rtx_costs): Use aarch64_shift_p when costing compound
12061         arithmetic and shift operations.
12062
12063 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12064
12065         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use extend_arith
12066         rather than arith_shift cost when costing ADD/MINUS of an
12067         extended value.
12068
12069 2015-04-30  Jan Hubicka  <hubicka@ucw.cz>
12070
12071         PR lto/65948
12072         * ipa-devirt.c (odr_types_equivalent_p): NULLPTR_TYPE is equivalent
12073         to itself.
12074
12075 2015-04-30  Richard Sandiford  <richard.sandiford@arm.com>
12076
12077         * genrecog.c (simplify_tests): Check that CONST_INT and XWINT tests
12078         are for the same position.
12079
12080 2015-04-29  Aditya Kumar  <hiraditya@hotmail.com>
12081
12082         * tree-vectorizer.c (set_uid_loop_bbs): New.  Factored out of
12083         vectorize_loops.
12084         (vectorize_loops): Use it.
12085
12086 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
12087
12088         * ipa-devirt.c (odr_subtypes_equivalent_p): Compare TYPE_NAME only
12089         for aggregate types.
12090         (register_odr_type): Be ready for MAIN_VARIANT of ODR type
12091         type to be non_ODR.
12092         * tree.c (need_assembler_name_p): Compute mangled name for
12093         non-fundamental types and integer types.
12094
12095 2015-04-29  Mikhail Maltsev  <maltsevm@gmail.com>
12096
12097         * dojump.c (do_compare_rtx_and_jump): Use std::swap instead of
12098         manual swaps.
12099         * expr.c (expand_expr_real_2): Likewise.
12100
12101 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
12102
12103         * tree.c (build_common_builtin_nodes): Do not build
12104         __builtin_alloca_with_align as equivalent of library alloca.
12105
12106 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
12107
12108         * dwarf2out.c (gen_type_die_with_usage): Call verify_type.
12109         * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Do not produce
12110         bugus variants.
12111         * tree.c: Include print-tree.h and ipa-utils.h
12112         (free_lang_data_in_type): Clear TYPE_VFIELD leaked by C FE.
12113         (free_lang_data_in_cgraph): Call verify_type.
12114         (verify_type_variant): New function.
12115         (verify_type): New function.
12116         * tree.h (verify_type): Declare.
12117
12118 2015-04-29  Steve Ellcey  <sellcey@imgtec.com>
12119
12120         * config/mips/mips-cpus.def: (mips4): Change default processor
12121         from PROCESSOR_R8000 to PROCESSOR_R10000.
12122
12123 2015-04-29  Petar Jovanovic  <petar.jovanovic@rt-rk.com>
12124
12125         * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Fix the macro to use
12126         la/jalr instead of jal.
12127
12128 2015-04-29  Uros Bizjak  <ubizjak@gmail.com>
12129
12130         PR target/65871
12131         * config/i386/i386.md (*bmi_bextr_<mode>_ccz): New pattern.
12132         (*bmi2_bzhi_<mode>3_1_ccz): Ditto.
12133         (setcc+movzbl peephole2): Check also clobbered reg.
12134         (setcc+andl peephole2): Ditto.
12135
12136 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
12137
12138         PR libgomp/65099
12139         * config/nvptx/mkoffload.c (target_ilp32): New variable.
12140         (main): Set it depending on "-foffload-abi=[...]".
12141         (compile_native, main): Use it to pass "-m32" or "-m64" to the
12142         compiler.
12143
12144 2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>
12145
12146         PR target/65770
12147         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>,
12148         vec_store_lanesci_lane<mode>, vec_store_lanesxi_lane<mode>):
12149         Flip lane index back at assembly time for bigendian.
12150
12151 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
12152
12153         * tree.h (OMP_STANDALONE_CLAUSES): New macro.
12154         * gimplify.c (gimplify_omp_workshare): Use it.
12155
12156 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
12157
12158         * Makefile.in (build/genrecog.o): Depend on inchash.h.
12159         (build/genrecog$(build_exeext): Depend on build/hash-table.o and
12160         build/inchash.o
12161         * genrecog.c: Rewrite most of the code except for the third page.
12162
12163 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
12164
12165         * inchash.h, inchash.c: Include bconfig.h for build objects.
12166         * Makefile.in (build/inchash.o): New rule.
12167
12168 2015-04-29  Yvan Roux  <yvan.roux@linaro.org>
12169
12170         PR target/65924
12171         * config/arm/thumb2.md (*thumb2_addsi3_compare0_scratch): Fix operand
12172         number in type attribute expression.
12173
12174 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
12175
12176         * loop-iv.c (canon_condition): Generalize to all types of integer
12177         constant.
12178
12179 2015-04-29  Bernhard Reuther-Fischer  <aldot@gcc.gnu.org>
12180
12181         * gimple-walk.c: Prune duplicate or unneeded includes.
12182         (walk_gimple_asm): Only call parse_input_constraint or
12183         parse_output_constraint if their findings are used.
12184         Honour parse_input_constraint and parse_output_constraint
12185         result.
12186
12187 2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>
12188
12189         * config/arm/neon.md (vec_shl<mode>, vec_shr<mode>): Remove.
12190
12191 2015-04-29  Tom de Vries  <tom@codesourcery.com>
12192
12193         PR tree-optimization/65893
12194         * passes.def (pass_all_optimizations): Move pass_stdarg to after
12195         pass_dce.
12196
12197 2015-04-29  Richard Biener  <rguenther@suse.de>
12198
12199         * tree-vect-data-refs.c (vect_analyze_group_access): Properly
12200         compute GROUP_SIZE for basic-block SLP.
12201         * tree-vect-slp.c (vect_get_place_in_interleaving_chain): Properly
12202         take into account gaps.
12203         (vect_get_mask_element): Properly reject references to previous
12204         vectors.
12205         (vect_transform_slp_perm_load): Likewise.
12206
12207 2015-04-29  Christian Bruel  <christian.bruel@st.com>
12208
12209         PR target/64835
12210         * config/i386/i386.c (ix86_default_align): New function.
12211         (ix86_override_options_after_change): Call ix86_default_align.
12212         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New hook.
12213         (ix86_override_options_after_change): New function.
12214
12215 2015-04-28  Jeff Law  <law@redhat.com>
12216
12217         * tree-ssa-dom.c (record_equality); Fix comment typos.
12218
12219 2015-04-28  Tom de Vries  <tom@codesourcery.com>
12220
12221         PR tree-optimization/65887
12222         * gimplify.c (gimplify_modify_expr): Remove ifn_va_arg ap fixup.
12223
12224 2015-04-28  Sandra Loosemore  <sandra@codesourcery.com>
12225
12226         * doc/extend.texi (Declaring Attributes of Functions): Split into
12227         subsections by target.  Alphabetize the table of common attributes.
12228         Rewrite some of the introductory text to reflect the new structure.
12229         Update some cross-references to point to the new subsections.
12230         (Attribute Syntax): Put paragraph about "__" naming here.  Remove
12231         duplicate copies in the discussion of function, label, and type
12232         attributes.
12233
12234 2015-04-28  Dominique d'Humieres  <dominiq@lps.ens.fr>
12235
12236         PR bootstrap/65910
12237         * varasm.c (assemble_end_function): Guard ASM_DECLARE_FUNCTION_SIZE.
12238
12239 2015-04-28  Jason Merrill  <jason@redhat.com>
12240
12241         PR c++/65734
12242         * stor-layout.c (layout_type): Layout the TYPE_MAIN_VARIANT.
12243         (finalize_type_size): Respect TYPE_USER_ALIGN.
12244         (layout_type) [ARRAY_TYPE]: Likewise.
12245
12246 2015-04-28  Yvan Roux  <yvan.roux@linaro.org>
12247
12248         * config/arm/arm.md (*arm_movt): Fix type attribute.
12249         (*cmpsi_shiftsi): Likewise.
12250         (*cmpsi_shiftsi_swp): Likewise.
12251         (*movsicc_insn): Likewise.
12252         (*cond_move): Likewise.
12253         (*if_plus_move): Likewise.
12254         (*if_move_plus): Likewise.
12255         (*if_arith_move): Likewise.
12256         (*if_move_arith): Likewise.
12257         (*if_shift_move): Likewise.
12258         (*if_move_shift): Likewise.
12259         (*arm_movtas_ze): Likewise.
12260         * config/arm/thumb2.md (*thumb2_movsicc_insn): Fix alternative
12261         redundancy and type attribute.
12262         (*thumb2_movsi_insn): Fix type attribute.
12263         (*thumb2_addsi_short): Likewise.
12264         (thumb2_addsi3_compare0): Likewise.
12265         (*thumb2_addsi3_compare0_scratch): Merge alternatives and fix
12266         attributes accordingly.
12267
12268 2015-04-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
12269
12270         PR other/65911
12271         * function.c (pad_to_arg_alignment): Add parentheses.
12272
12273 2015-04-28  Uros Bizjak  <ubizjak@gmail.com>
12274
12275         * config/frv/frv.h (CRT_GET_RFIB_DATA): Move definition to
12276         libgcc/config/frv/elf-lib.h.
12277
12278 2015-04-28  Tom de Vries  <tom@codesourcery.com>
12279
12280         * tree-call-cdce.c: Fix example in header comment.
12281
12282 2015-04-28  Richard Biener  <rguenther@suse.de>
12283
12284         PR tree-optimization/62283
12285         * tree-vect-slp.c (vect_build_slp_tree): When the SLP build
12286         fails fatally and we are vectorizing a basic-block simply
12287         cause the child to be constructed piecewise.
12288         (vect_analyze_slp_cost_1): Adjust.
12289         (vect_detect_hybrid_slp_stmts): Likewise.
12290         (vect_bb_slp_scalar_cost): Likewise.
12291         (vect_get_constant_vectors): For piecewise constructed
12292         constants place them after the last def.
12293         (vect_get_slp_defs): Adjust.
12294         * tree-vect-stmts.c (vect_is_simple_use): Detect in-BB
12295         externals for basic-block vectorization.
12296
12297 2015-04-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
12298
12299         PR target/63503
12300         * config.gcc: Add cortex-a57-fma-steering.o to extra_objs for
12301         aarch64-*-*.
12302         * config/aarch64/t-aarch64: Add a rule for cortex-a57-fma-steering.o.
12303         * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Define.
12304         (AARCH64_TUNE_FMA_STEERING): Likewise.
12305         * config/aarch64/aarch64-cores.def: Set
12306         AARCH64_FL_USE_FMA_STEERING_PASS for cores with dynamic steering of
12307         FMUL/FMADD instructions.
12308         * config/aarch64/aarch64.c (aarch64_register_fma_steering): Declare.
12309         (aarch64_override_options): Include cortex-a57-fma-steering.h.  Call
12310         aarch64_register_fma_steering () if AARCH64_TUNE_FMA_STEERING is true.
12311         * config/aarch64/cortex-a57-fma-steering.h: New file.
12312         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
12313
12314 2015-04-28  Richard Sandiford  <richard.sandiford@arm.com>
12315
12316         * gensupport.c (std_preds): Add missing codes to address_operand entry.
12317
12318 2015-04-28  Richard Biener  <rguenther@suse.de>
12319
12320         PR tree-optimization/65851
12321         * tree-ssa-ccp.c (set_lattice_value): Perform a meet when
12322         changing CONSTANT to CONSTANT non-copy.  Get new_val by reference.
12323         (ccp_lattice_meet): Remove stray argument.  Use operand_equal_p
12324         rather than simple_cst_equal as the latter doesn't handle COMPLEX_CST.
12325         (ccp_visit_phi_node): Adjust.
12326         (evaluate_stmt): For simplifications to SSA names return its
12327         lattice value if that isn't VARYING.  Return immediately when
12328         simplified to a constant.
12329         (visit_assignment): Adjust.
12330         (ccp_visit_stmt): Likewise.
12331
12332 2015-04-28  Tom de Vries  <tom@codesourcery.com>
12333
12334         PR tree-optimization/65818
12335         * tree-stdarg.c (expand_ifn_va_arg_1): Ensure that side-effects are
12336         evaluated.
12337
12338 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12339
12340         * calls.c (save_fixed_argument_area): Don't check
12341         ARGS_GROW_DOWNWARD with the preprocessor.
12342         (restore_fixed_argument_area): Likewise.
12343         (mem_overlaps_already_clobbered_arg_p): Likewise.
12344         (check_sibcall_argument_overlap): Likewise.
12345         (expand_call): Likewise.
12346         (emit_library_call_value_1): Likewise.
12347         (store_one_arg): Likewise.
12348         * function.c (assign_parms): Likewise.
12349         (locate_and_pad_parm): Likewise.
12350         (pad_to_arg_alignment): Likewise.
12351         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
12352
12353 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12354
12355         * config/pa/pa.h (ARGS_GROW_DOWNWARD): Define to 1.
12356         * defaults.h (ARGS_GROW_DOWNWARD): Define it to 0 by default.
12357         * calls.c (save_fixed_argument_area): Don't chekc if
12358         ARGS_GROW_DOWNWARD is defined.
12359         (restore_fixed_argument_area): Likewise.
12360         (mem_overlaps_already_clobbered_arg_p): Likewise.
12361         (check_sibcall_argument_overlap): Likewise.
12362         (expand_call): Likewise.
12363         (emit_library_call_value_1): Likewise.
12364         (store_one_arg): Likewise.
12365         * function.c (assign_parms): Likewise.
12366         (locate_and_pad_parm): Likewise.
12367         (pad_to_arg_alignment): Likewise.
12368         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
12369
12370 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12371
12372         * defaults.h (gen_epilogue): New function.
12373         * alias.c (init_alias_analysis): don't check if HAVE_epilogue is
12374         defined.
12375         * cfgrtl.c (cfg_layout_finalize): Likewise.
12376         * df-scan.c: Likewise.
12377         * function.c (thread_prologue_and_epilogue_insns): Likewise.
12378         (reposition_prologue_and_epilogue_notes): Likewise.
12379         * reorg.c (find_end_label): Likewise.
12380         * toplev.c: Likewise.
12381
12382 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12383
12384         * bb-reorder.c (HAVE_return): Don't check if its undefined.
12385         * defaults.h (gen_simple_return): New function.
12386         (gen_simple_return): Likewise.
12387         (HAVE_return): Add default definition to false.
12388         (HAVE_simple_return): Likewise.
12389         * cfgrtl.c (force_nonfallthru_and_redirect): Remove checks if
12390         HAVE_return and HAVE_simple_return are defined.
12391         * function.c (gen_return_pattern): Likewise.
12392         (convert_jumps_to_returns): Likewise.
12393         (thread_prologue_and_epilogue_insns): Likewise.
12394         * reorg.c (find_end_label): Likewise.
12395         (dbr_schedule): Likewise.
12396         * shrink-wrap.c: Likewise.
12397         * shrink-wrap.h: Likewise.
12398
12399 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12400
12401         * defaults.h (EPILOGUE_USES): Add default definition of false.
12402         * df-scan.c (EPILOGUE_USES): Remove check if its undefined.
12403         * resource.c (init_resource_info): Likewise.
12404
12405 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12406
12407         * defaults.h (PCC_BITFIELD_TYPE_MATTERS): Add default definition
12408         to false.
12409         * dwarf2out.c (field_byte_offset): REmove check if
12410         PCC_BITFIELD_TYPE_MATTERS is defined.
12411         * stor-layout.c (layout_decl): Likewise.
12412         (update_alignment_for_field): Likewise.
12413         (place_field): Likewise.
12414
12415 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12416
12417         * defaults.h (HARD_REGNO_RENAME_OK): Add default definition to
12418         true.
12419         * regrename.c (check_new_reg_p): Remove check if
12420         HARD_REGNO_RENAME_OK is defined.
12421         * sel-sched.c (sel_hard_regno_rename_ok): Likewise.
12422
12423 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12424
12425         * calls.c (prepare_call_address): Remove ifdef NO_FUNCTION_CSE.
12426         * cse.c (fold_rtx): Likewise.
12427         * config/alpha/alpha.h (NO_FUNCTION_CSE): Define to 1.
12428         * config/arc/arc.h (NO_FUNCTION_CSE): Likewise.
12429         * config/avr/avr.h (NO_FUNCTION_CSE): Likewise.
12430         * config/cr16/cr16.h (NO_FUNCTION_CSE): Likewise.
12431         * config/epiphany/epiphany.h (NO_FUNCTION_CSE): Likewise.
12432         * config/frv/frv.h (NO_FUNCTION_CSE): Likewise.
12433         * config/h8300/h8300.h (NO_FUNCTION_CSE): Likewise.
12434         * config/i386/i386.h (NO_FUNCTION_CSE): Likewise.
12435         * config/ia64/ia64.h (NO_FUNCTION_CSE): Likewise.
12436         * config/lm32/lm32.h (enum reg_class) (NO_FUNCTION_CSE):
12437         * Likewise.
12438         * config/m32r/m32r.h (NO_FUNCTION_CSE): Likewise.
12439         * config/mep/mep.h (NO_FUNCTION_CSE): Likewise.
12440         * config/mn10300/mn10300.h (NO_FUNCTION_CSE): Likewise.
12441         * config/nds32/nds32.h (NO_FUNCTION_CSE): Likewise.
12442         * config/nios2/nios2.h (NO_FUNCTION_CSE): Likewise.
12443         * config/pa/pa.h (NO_FUNCTION_CSE): Likewise.
12444         * config/rs6000/rs6000.h (NO_FUNCTION_CSE): Likewise.
12445         * config/s390/s390.h (NO_FUNCTION_CSE): Likewise.
12446         * config/sparc/sparc.h (NO_FUNCTION_CSE): Likewise.
12447         * config/spu/spu.h (NO_FUNCTION_CSE): Likewise.
12448         * config/stormy16/stormy16.h (NO_FUNCTION_CSE): Likewise.
12449         * config/v850/v850.h (NO_FUNCTION_CSE): Likewise.
12450         * defaults.h (NO_FUNCTION_CSE): Provide default definition to 0.
12451         * doc/tm.texi: Regenerate.
12452         * doc/tm.texi.in: Document NO_FUNCTION_CSE is always defined to
12453         either true or false.
12454
12455 2015-04-27  Jeff Law  <law@redhat.com>
12456
12457         PR tree-optimization/65217
12458         * tree-ssa-dom.c (record_equality): Given two SSA_NAMEs, if just one
12459         of them has a single use, make sure it is the LHS of the implied
12460         copy.
12461
12462 2015-04-28  Alan Modra  <amodra@gmail.com>
12463
12464         PR target/65810
12465         * config/rs6000/rs6000.c (POWERPC64_TOC_POINTER_ALIGNMENT): Define.
12466         (offsettable_ok_by_alignment): Use minimum of decl and toc
12467         pointer alignment.  Replace dead code with assertion.
12468         (use_toc_relative_ref): Add mode arg.  Return false in -mcmodel=medium
12469         case if size exceeds toc pointer alignment.
12470         (rs6000_legitimize_reload_address): Update use_toc_relative_ref call.
12471         (rs6000_emit_move): Likewise.
12472         * configure.ac: Add linker toc pointer alignment check.
12473         * configure: Regenerate.
12474         * config.in: Regenerate.
12475
12476 2015-04-27  Yoshinori Sato <ysato@users.sourceforge.jp>
12477
12478         * config.gcc: Add h8300-*-linux.
12479         * config/h8300/linux.h: New.
12480         * config/h8300/t-linux: New.
12481         * config/h8300/h8300.c (h8300_option_override): Normal mode
12482         is not supported for h8300-*-linux.
12483         (h8300_file_start): Target priority change.
12484         (get_shift_alg): Likewise.
12485         (h8300_shift_need_scratch_p): Likewise.
12486         * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Likewise.
12487         * config/h8300/h8300.md (define_peephole2): Remove duplicate condition.
12488
12489 2015-04-27  Caroline Tice  <cmtice@google.com>
12490
12491         * final.c (final_scan_insn):  Output cold_function_name as function
12492         type.
12493         * varasm.c (cold_function_name):  Make global.
12494         (assemble_start_function):  Re-set cold_function_name.
12495         (assemble_end_function): Output cold partition size.
12496         * varasm.h (cold_function_name):  Declare global.
12497
12498 2015-04-27  Ilya Tocar  <ilya.tocar@intel.com>
12499
12500         * config/i386/i386.h (EXT_REX_SSE_REG_P): New.
12501         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed): Use "v"
12502         constraint.
12503         (*movxi_internal_avx512f): Ditto.
12504         (define_split): Check for xmm16+, when splitting scalar float_extend.
12505         (*extendsfdf2_mixed): Use "v" constraint.
12506         (define_split): Check for xmm16+, when splitting scalar float_truncate.
12507         (*truncdfsf_fast_sse): Use "v" constraint.
12508         (fix_trunc<MODEF:mode><SWI48:mode>_sse): Ditto.
12509         (*float<SWI48:mode><MODEF:mode>2_sse): Ditto.
12510         (define_peephole2): Check for xmm16+, when converting scalar
12511         float_truncate.
12512         (define_peephole2): Check for xmm16+, when converting scalar
12513         float_extend.
12514         (*fop_<mode>_comm_mixed): Use "v" constraint.
12515         (*fop_<mode>_comm_sse): Ditto.
12516         (*fop_<mode>_1_mixed): Ditto.
12517         (*sqrt<mode>2_sse): Ditto.
12518         (*ieee_s<ieee_maxmin><mode>3): Ditto.
12519
12520 2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12521
12522         * combine.c (simplify_if_then_else): Use std::swap instead
12523         of manually swapping.
12524         (known_cond): Likewise.
12525         (simplify_comparison): Likewise.
12526
12527 2015-04-27  Peter Bergner  <bergner@vnet.ibm.com>
12528
12529         PR target/64579
12530         * config/rs6000/htm.md: Remove all define_expands.
12531         (UNSPECV_HTM_TABORTDC, UNSPECV_HTM_TABORTDCI, UNSPECV_HTM_TABORTWC,
12532         UNSPECV_HTM_TABORTWCI): Remove.
12533         (UNSPECV_HTM_TABORTXC, UNSPECV_HTM_TABORTXCI, UNSPECV_HTM_TTEST): New.
12534         (tabort_internal, tbegin_internal, tcheck_internal, tend_internal,
12535         trechkpt_internal, treclaim_internal, tsr_internal): Rename from this...
12536         (tabort, tbegin, tcheck, tend, trechkpt, treclaim, tsr): ...to this.
12537         (tabortdc_internal, tabortdci_internal, tabortwc_internal,
12538         tabortwci_internal): Remove define_insns.
12539         (tabort<wd>c, tabort<wd>ci): New define_insns.
12540         (tabort): Use gpc_reg_operand.
12541         (tcheck): Remove operand.
12542         (htm_mfspr_<mode>, htm_mtspr_<mode>): Use GPR mode macro.
12543         * config/rs6000/htmxlintrin.h (__TM_end): Use _HTM_TRANSACTIONAL as
12544         expected value.
12545         * config/rs6000/rs6000-builtin.def (BU_HTM_SPR0): Remove.
12546         (BU_HTM_SPR1): Rename to BU_HTM_V1.  Remove use of RS6000_BTC_SPR.
12547         (tabort, tabortdc, tabortdci, tabortwc, tabortwci, tbegin,
12548         tcheck, tend, tendall, trechkpt, treclaim, tresume, tsuspend,
12549         tsr, ttest): Pass in the RS6000_BTC_CR attribute.
12550         (get_tfhar, set_tfhar, get_tfiar, set_tfiar, get_texasr, set_texasr,
12551         get_texasru, set_texasru): Pass in the RS6000_BTC_SPR attribute.
12552         (tcheck): Remove builtin argument.
12553         * config/rs6000/rs6000.c (rs6000_htm_spr_icode): Use TARGET_POWERPC64
12554         not TARGET_64BIT.
12555         (htm_expand_builtin): Fix usage of expandedp.  Disallow usage of the
12556         tabortdc and tabortdci builtins when not in 64-bit mode.
12557         Modify code to handle the loss of the HTM define_expands.
12558         Emit code to copy the CR register to TARGET.
12559         (htm_init_builtins): Modify code to handle the loss of the HTM
12560         define_expands.
12561         * config/rs6000/rs6000.h (RS6000_BTC_32BIT): Delete.
12562         (RS6000_BTC_64BIT): Likewise.
12563         (RS6000_BTC_CR): New macro.
12564         * doc/extend.texi: Update documentation for htm builtins.
12565
12566 2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12567
12568         * simplify-rtx.c (simplify_gen_binary): Use std::swap instead
12569         of manually swapping.
12570         (simplify_associative_operation): Likewise.
12571         (simplify_binary_operation): Likewise.
12572         (simplify_plus_minus): Likewise.
12573         (simplify_relational_operation): Likewise.
12574         (simplify_ternary_operation): Likewise.
12575
12576 2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>
12577
12578         * config/stormy16/predicates.md (xs_hi_general_operand): Delete.
12579         (xs_hi_nonmemory_operand): Remove error.
12580         * config/stormy16/stormy16.md (movhi, movhi_internal): Use
12581         general_operand rather than xs_hi_general_operand.
12582
12583 2015-04-27  Richard Biener  <rguenther@suse.de>
12584
12585         * tree-ssa-dom.c (record_equivalences_from_phis): Valueize PHI arg.
12586         (record_equivalences_from_stmt): Valueize rhs.
12587         (record_equality): Canonicalize x and y order via
12588         tree_swap_operands_p.  Do not swap operands for same loop depth.
12589
12590 2015-04-27  Georg-Johann Lay  <avr@gjlay.de>
12591
12592         PR target/65296
12593         PR target/65895
12594         * config/avr/gen-avr-mmcu-specs.c (print_mcu): Close file.
12595         Add hint how to use own spec file.
12596
12597 2015-04-27  Jakub Jelinek  <jakub@redhat.com>
12598
12599         PR tree-optimization/65875
12600         * tree-vrp.c (update_value_range): If in is_new case setting
12601         old_vr to VR_VARYING, also set new_vr to it.  Remove
12602         old_vr->type == VR_VARYING test.
12603         (vrp_visit_phi_node): Return SSA_PROP_VARYING instead of
12604         SSA_PROP_INTERESTING if update_value_range returned true,
12605         but new range is VR_VARYING.
12606
12607 2015-04-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>
12608
12609         * combine.c (sign_extend_short_imm): New.
12610         (set_nonzero_bits_and_sign_copies): Use above new function for sign
12611         extension of src short immediate.
12612         (reg_nonzero_bits_for_combine): Likewise for tem.
12613
12614 2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>
12615
12616         * stor-layout.c (self_referential_component_ref_p): New predicate.
12617         (copy_self_referential_tree_r): Use it.
12618         (self_referential_size): Punt for simple operations directly involving
12619         self-referential component references.
12620         * tree-cfg.c (dump_function_to_file): Add missing final curly bracket.
12621
12622 2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>
12623
12624         * ipa-icf.c (icf_handled_component_p): Remove redundant tests.
12625
12626 2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>
12627
12628         * vec.h (vec): Make splice arguments const.  Update definitions
12629         accordingly.
12630
12631 2015-04-27  Yvan Roux  <yvan.roux@linaro.org>
12632
12633         * config/arm/arm.md (*arm_subsi3_insn): Fixed redundant
12634         alternatives.
12635
12636 2015-04-26  Tom de Vries  <tom@codesourcery.com>
12637
12638         PR tree-optimization/65826
12639         * internal-fn.def: Mark VA_ARG with ECF_LEAF.
12640
12641 2015-04-24  Steve Ellcey  <sellcey@imgtec.com>
12642
12643         * config/mips/mips.md: (*madd4<mode>) Remove accum_in attribute.
12644         (*madd3<mode>): Ditto.
12645         (*msub4<mode>): Ditto.
12646         (*msub3<mode>): Ditto.
12647         (*nmadd4<mode>): Ditto.
12648         (*nmadd3<mode>): Ditto.
12649         (*nmadd4<mode>_fastmath): Ditto.
12650         (*nmadd3<mode>_fastmath): Ditto.
12651         (*nmsub4<mode>): Ditto.
12652         (*nmsub3<mode>): Ditto.
12653         (*nmsub4<mode>_fastmath): Ditto.
12654         (*nmsub3<mode>_fastmath): Ditto.
12655
12656 2015-04-24  Jason Merrill  <jason@redhat.com>
12657
12658         PR c++/50800
12659         * tree.c (build_reference_type_for_mode): Don't pass can_alias_all
12660         down when building TYPE_CANONICAL.
12661         (build_pointer_type_for_mode): Likewise.
12662
12663 2015-04-24  Chen Gang  <gang.chen.5i5j@gmail.com>
12664
12665         * genrecog.c (validate_pattern): Check matching constraint refers
12666         to a lower numbered operand.
12667
12668 2015-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
12669
12670         PR target/65849
12671         * config/rs6000/rs6000.opt (-mvsx-align-128): Make options that
12672         save to independent variables use the Save attribute.  This will
12673         allow these options to be modified with the #pragma/attribute
12674         target support.
12675         (-mallow-movmisalign): Likewise.
12676         (-mallow-df-permute): Likewise.
12677         (-msched-groups): Likewise.
12678         (-malways-hint): Likewise.
12679         (-malign-branch-targets): Likewise.
12680         (-mvectorize-builtins): Likewise.
12681         (-msave-toc-indirect): Likewise.
12682
12683         * config/rs6000/rs6000.c (rs6000_opt_masks): Add more options that
12684         can be set via the #pragma/attribute target support.
12685         (rs6000_opt_vars): Likewise.
12686         (rs6000_inner_target_options): If VSX was set, also set
12687         -mno-avoid-indexed-addresses.
12688
12689 2015-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12690
12691         * config/arm/iterators.md (shiftable_ops): Rename to...
12692         (SHIFTABLE_OPS): ... This.  Update use in comments.
12693         (ior_xor): Rename to...
12694         (IOR_XOR): ... This.
12695         (vqh_ops): Rename to...
12696         (VQH_OPS): ... This.
12697         (vqhs_ops): Rename to...
12698         (VQHS_OPS): ... This.
12699         (rshifts): Rename to...
12700         (RSHIFTS): ... This.
12701         (returns): Rename to...
12702         (RETURNS): ... This.
12703         * config/arm/arm.md: Update uses of the above.
12704         * config/arm/neon.md: Likewise.
12705
12706 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12707
12708         * config.host (case ${host}): Add aarch64*-*-linux case.
12709         * config/aarch64/aarch64-cores.def: Add IMPLEMENTER_ID and PART_NUMBER
12710         fields to all the cores.
12711         * config/aarch64/aarch64-elf.h (DRIVER_SELF_SPECS):
12712         Add MCPU_MTUNE_NATIVE_SPECS.
12713         * config/aarch64/aarch64-option-extensions.def: Add FEATURE_STRING
12714         field to all extensions.
12715         * config/aarch64/aarch64-opts.h: Adjust definition of AARCH64_CORE.
12716         * config/aarch64/aarch64.c: Adjust definition of AARCH64_CORE.
12717         Adjust definition of AARCH64_OPT_EXTENSION.
12718         * config/aarch64/aarch64.h: Adjust definition of AARCH64_CORE.
12719         (MCPU_MTUNE_NATIVE_SPECS): Define.
12720         * config/aarch64/driver-aarch64.c: New file.
12721         * config/aarch64/x-arch64: New file.
12722         * doc/invoke.texi (AArch64 Options): Document native value for -mcpu,
12723         -mtune and -march.
12724
12725 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
12726             Wei Mi  <wmi@google.com>
12727
12728         * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple): New.
12729         * config/i386/i386.c (extract_base_offset_in_addr): New function.
12730         (ix86_operands_ok_for_move_multiple): Ditto.
12731         * config/i386/sse.md (movsd/movhpd to movupd peephole2): New pattern.
12732         (movlpd/movhpd to movupd peephole2): Ditto.
12733
12734 2015-04-24  Marek Polacek  <polacek@redhat.com>
12735
12736         PR c/61534
12737         * input.h (from_macro_expansion_at): Define.
12738
12739         PR c/63357
12740         * doc/invoke.texi: Update description of -Wlogical-op.
12741
12742 2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
12743
12744         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): fix
12745         ternary operator in fprintf and harmonize spacing.
12746
12747 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
12748
12749         * config/i386/sse.md (*vec_widen_smult_even_v8si<mask_name>):
12750         Mark operand1 commutative.
12751
12752 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
12753
12754         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Do not allow both
12755         input operands in memory.
12756         (*vec_concatv2si_sse4_1): Ditto.
12757         (*vec_concatv2df): Ditto, except for SSE3 and equal input operands.
12758         (vec_extract_lo_<mode><mask_name>): Change operand 1 predicate to
12759         register_operand.
12760         (vec_extract_hi_v32hi): Ditto.
12761         (vec_extract_hi_v64hi): Ditto.
12762         (<mask_codefor>avx512f_unpckhpd512<mask_name>): Ditto.
12763
12764 2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
12765             Steven Bosscher <steven@gcc.gnu.org>
12766
12767         PR rtl-optimization/34503
12768         * cprop.c (cprop_reg_p): New.
12769         (hash_scan_set): Use above function to check if register can be
12770         propagated.
12771         (find_avail_set): Return up to two sets, one whose source is a
12772         register and one whose source is a constant.  Sets are returned in an
12773         array passed as parameter rather than as a return value.
12774         (cprop_insn): Use a do while loop rather than a goto.  Try each of the
12775         sets returned by find_avail_set, starting with the one whose source is
12776         a constant. Use cprop_reg_p to check if register can be propagated.
12777         (do_local_cprop): Use cprop_reg_p to check if register can be
12778         propagated.
12779         (implicit_set_cond_p): Likewise.
12780
12781 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
12782
12783         * ipa-icf.c (sem_function::equals_wpa): Compare thunk info.
12784         (sem_function::equals): IGNORED_NODES parameter is now unused;
12785         update call of equals_private.
12786         (sem_function::equals_private): Do not call equals_wpa; skip
12787         gimple body matching if there is no body.
12788         (sem_function::init): Add logic to hash tthunk info.
12789         (sem_function::parse): Also parse thunks.
12790         * ipa-icf.h (equals_private): Update declaration.
12791
12792 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12793
12794         * config/rs6000/altivec.md (*altivec_lvx_<mode>_internal): Remove
12795         asterisk from name so this can be generated directly.
12796         (*altivec_stvx_<mode>_internal): Likewise.
12797         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Add assert
12798         that this is never called during or after reload/lra.
12799         (rs6000_frame_related): Remove split_reg
12800         argument and logic that references it.
12801         (emit_frame_save): Remove last parameter from call to
12802         rs6000_frame_related.
12803         (rs6000_emit_prologue): Remove last parameter from eight calls to
12804         rs6000_frame_related.  Force generation of stvx instruction for
12805         Altivec register saves.  Remove split_reg handling, which is no
12806         longer needed.
12807         (rs6000_emit_epilogue):  Force generation of lvx instruction for
12808         Altivec register restores.
12809
12810 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12811
12812         * config/rs6000/rs6000.opt (mcrypto): Change option description to
12813         match category changes in ISA 2.07B.
12814
12815 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12816
12817         * config/arm/iterators.md (GTGE, GTUGEU, COMPARISONS): New code
12818         iterators.
12819         (cmp_op, cmp_type): New code attributes.
12820         (NEON_VCMP, NEON_VACMP): New int iterators.
12821         (cmp_op_unsp): New int attribute.
12822         * config/arm/neon.md (neon_vc<cmp_op><mode>): New define_expand.
12823         (neon_vceq<mode>): Delete.
12824         (neon_vc<cmp_op><mode>_insn): New pattern.
12825         (neon_vc<cmp_op_unsp><mode>_insn_unspec): Likewise.
12826         (neon_vcgeu<mode>): Delete.
12827         (neon_vcle<mode>): Likewise.
12828         (neon_vclt<mode>: Likewise.
12829         (neon_vcage<mode>): Likewise.
12830         (neon_vcagt<mode>): Likewise.
12831         (neon_vca<cmp_op><mode>): New define_expand.
12832         (neon_vca<cmp_op><mode>_insn): New pattern.
12833         (neon_vca<cmp_op_unsp><mode>_insn_unspec): Likewise.
12834
12835 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
12836
12837         * tree.h (attribute_value_equal): Declare.
12838         * tree.c (attribute_value_equal): Export.
12839
12840 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
12841
12842         * ipa-icf.c (sem_item::compare_attributes): New function.
12843         (sem_item::compare_referenced_symbol_properties): Compare variable
12844         attributes.
12845         (sem_item::hash_referenced_symbol_properties): Record DECL_ALIGN.
12846         (sem_function::param_used_p): New function.
12847         (sem_function::equals_wpa): Fix attribute comparsion; match
12848         parameter type codes; do not compare paremter flags when
12849         they are not used; compare edge flags; compare indirect calls.
12850         (sem_item::update_hash_by_addr_refs): Hash reference type.
12851         (sem_function::equals_private): Do not match DECL_ATTRIBUTES.
12852         (sem_variable::equals_wpa): Do not match DECL_ALIGN; match
12853         reference use type.
12854         (sem_item_optimizer::update_hash_by_addr_refs): Use param_used_p.
12855         * ipa-icf.h (compare_attributes, param_used_p): Declare.
12856
12857 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
12858
12859         * ipa-icf.c (symbol_compare_collection::symbol_compare_collection):
12860         cleanup.
12861         (sem_function::get_hash): Do not hash DECL_DISREGARD_INLINE_LIMITS,
12862         DECL_DECLARED_INLINE_P and DECL_IS_OPERATOR_NEW.
12863         (sem_item::compare_referenced_symbol_properties): New.
12864         (sem_item::hash_referenced_symbol_properties): New.
12865         (sem_item::compare_cgraph_references): Rename to ...
12866         (sem_item::compare_symbol_references): ... this one; use
12867         compare_referenced_symbol_properties.
12868         (sem_function::equals_wpa): Do not compare
12869         DECL_DISREGARD_INLINE_LIMITS, DECL_DECLARED_INLINE_P,
12870         DECL_IS_OPERATOR_NEW; compare pointer sizes.
12871         (sem_item::update_hash_by_addr_refs): Call
12872         hash_referenced_symbol_properties.
12873         (sem_item::update_hash_by_local_refs): Cleanup.
12874         (sem_function::merge): Do not mix up symbol properties.
12875         (sem_variable::equals_wpa): Use compare_symbol_references.
12876         * ipa-icf.h (sem_item::compare_referenced_symbol_properties): New.
12877         (sem_item::hash_referenced_symbol_properties): New.
12878         (sem_item::compare_symbol_references): New.
12879         (sem_item::compare_cgraph_references): Remove.
12880
12881 2015-04-23  Kwok Cheung Yeung  <kcy@codesourcery.com>
12882
12883         PR target/26702
12884         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL):
12885         Emit size of local.
12886
12887 2015-04-23  Nick Clifton  <nickc@redhat.com>
12888
12889         * config/rl78/rl78.c (rl78_preferred_reload_class): Add
12890         ATTRIBUTE_UNUSED to x parameter.
12891         * config/rl78/rl78-opts.h (enum rl78_mul_types): Remove unused MUL_RL78.
12892
12893 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12894
12895         * config/rs6000/crypto.md (crypto_vpmsum<CR_char>): Change
12896         TARGET_CRYPTO to TARGET_P8_VECTOR>
12897         (crypto_vpermxor_<mode>): Likewise.
12898         * config/rs6000/rs6000-builtin.def (BU_CRYPTO_2A): New #define.
12899         (BU_CRYPTO_3A): Likewise.
12900         (BU_CRYPTO_OVERLOAD_2A): Rename from BU_CRYPTO_OVERLOAD_2.
12901         (BU_CRYPTO_OVERLOAD_3A): New #define.
12902         (VPMSUMB): Change from BU_CRYPTO_2 to BU_CRYPTO_2A.
12903         (VPMSUMH): Likewise.
12904         (VPMSUMW): Likewise.
12905         (VPMSUMD): Likewise.
12906         (VPERMXOR_V2DI): Change from BU_CRYPTO_3 to BU_CRYPTO_3A.
12907         (VPERMXOR_V4SI): Likewise.
12908         (VPERMXOR_V8HI): Likewise.
12909         (VPERMXOR_V16QI): Likewise.
12910         (VPMSUM): Change from BU_CRYPTO_OVERLOAD_2 to
12911         BU_CRYPTO_OVERLOAD_2A.
12912         (VPERMXOR): Change from BU_CRYPTO_OVERLOAD3 to
12913         BU_CRYPTO_OVERLOAD_3A.
12914         * config/rs6000/rs6000.opt (mcrypto): Change description of
12915         option.
12916
12917 2015-04-23  Richard Biener  <rguenther@suse.de>
12918
12919         * passes.def: Remove copy propagation passes run directly after CCP.
12920         * tree-ssa-ccp.c (get_value_for_expr): Fall back to a COPY for
12921         SSA names.
12922         (ccp_visit_phi_node): Rework to handle first executable edge
12923         specially.
12924
12925 2015-04-23  Matthew Wahab  <matthew.wahab@arm.com>
12926
12927         * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
12928         (ARM_LEGITIMIZE_RELOAD_ADDRESS): Remove.
12929         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Remove.
12930         * config/arm/arm.c (arm_legimitimize_reload_address): Remove.
12931         (thumb_legimitimize_reload_address): Remove.
12932         * config/arm/arm-protos.h (arm_legimitimize_reload_address):
12933         Remove.
12934         (thumb_legimitimize_reload_address): Remove.
12935
12936 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12937
12938         * conditions.h (CC_STATUS_INIT): Gate on #ifndef CC_STATUS_INIT.
12939
12940 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12941
12942         * config/arm/arm.md (load_multiple): Reject operand 2 greater than
12943         MAX_LDM_STM_OPS.
12944         (store_multiple): Likewise.
12945
12946 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12947
12948         * config/arm/arm-protos.h (struct tune_params): Add issue_rate field.
12949         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune,
12950         arm_strongarm_tune, arm_xscale_tune, arm_9e_tune, arm_v6t2_tune,
12951         arm_cortex_tune, arm_cortex_a8_tune, arm_cortex_a7_tune,
12952         arm_cortex_a15_tune, arm_cortex_a53_tune, arm_cortex_a57_tune,
12953         arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune,
12954         arm_fa726te_tune arm_cortex_a5_tune, arm_xgene1_tune):
12955         Specify issue_rate value.
12956         (arm_issue_rate): Look up issue rate from tuning structs. Remove
12957         large switch statement.
12958         (arm_marvell_pj4_tune): New struct.
12959         * config/arm/arm-cores.def (marvell-pj4): Use arm_marvell_pj4_tune
12960         struct.
12961
12962 2015-04-23  Richard Biener  <rguenther@suse.de>
12963
12964         * tree-vect-slp.c (vect_find_first_load_in_slp_instance): Remove.
12965         (vect_find_last_store_in_slp_instance): Rename to ...
12966         (vect_find_last_scalar_stmt_in_slp): ... this and generalize.
12967         (vect_analyze_slp_cost_1): Use vector_load for constant defs
12968         and vec_construct for external defs when estimating prologue cost.
12969         (vect_analyze_slp_instance): Do not init SLP_INSTANCE_FIRST_LOAD_STMT.
12970         Compute costs here only when vectorizing loops.
12971         (vect_slp_analyze_bb_1): Compute SLP cost here, after vector types
12972         have been determined.
12973         (vect_schedule_slp_instance): Simplify vectorized code placement
12974         and prepare for in-BB external defs.
12975         * tree-vectorizer.h (struct _slp_instance): Remove first_load member.
12976         (SLP_INSTANCE_FIRST_LOAD_STMT): Remove.
12977         * tree-vect-stmts.c (vect_model_store_cost): Remove PURE_SLP_STMT
12978         guard.
12979         (vect_model_load_cost): Likewise.
12980         (vectorizable_store): Instead add it here.
12981         (vectorizable_load): Likewise.
12982         (vect_is_simple_use): Dump def type textually.
12983
12984 2015-04-23  Richard Biener  <rguenther@suse.de>
12985
12986         * cfgexpand.c (expand_gimple_stmt_1): Use ops.code.
12987         * cfgloop.c (verify_loop_structure): Verify the root loop node.
12988         * except.c (duplicate_eh_regions): Call get_eh_region_from_lp_number_fn
12989         instead of get_eh_region_from_lp_number.
12990         * loop-init.c (fix_loop_structure): If we removed a loop, reset
12991         the SCEV cache.
12992
12993 2015-04-23  Anton Blanchard  <anton@samba.org>
12994
12995         * config/rs6000/rs6000.c (rs6000_output_function_prologue): No
12996         need for -mprofile-kernel to save LR to stack.
12997
12998 2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12999
13000         * config/rs6000/rs6000.c (rtx_is_swappable_p): Commentary
13001         adjustments.
13002         (insn_is_swappable_p): Return 1 for a convert from double to
13003         single precision when all of its uses are splats of BE element
13004         zero.
13005
13006 2015-04-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
13007
13008         * ira-costs.c (record_operand_costs): Fix typo (remove redundant code).
13009
13010 2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13011
13012         PR target/65456
13013         * config/rs6000/rs6000.c (rs6000_option_override_internal):  For
13014         VSX + POWER8, enable TARGET_ALLOW_MOVMISALIGN and
13015         TARGET_EFFICIENT_UNALIGNED_VSX if not selected by command line
13016         option.
13017         (rs6000_builtin_mask_for_load): Return 0 for targets with
13018         efficient unaligned VSX accesses so that the vectorizer will use
13019         direct unaligned loads.
13020         (rs6000_builtin_support_vector_misalignment): Always return true
13021         for targets with efficient unaligned VSX accesses.
13022         (rs6000_builtin_vectorization_cost): Cost of unaligned loads and
13023         stores on targets with efficient unaligned VSX accesses is almost
13024         always the same as the cost of an aligned load or store, so model
13025         it that way.
13026         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Return 0 for
13027         unaligned vectors if we have efficient unaligned VSX accesses.
13028         * config/rs6000/rs6000.opt (mefficient-unaligned-vector): New
13029         undocumented option.
13030
13031 2015-04-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13032
13033         Revert:
13034         2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>
13035
13036         * config.gcc (LIBC_MUSL): New tm_defines macro.
13037         * config/linux.h (OPTION_MUSL): Define.
13038         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
13039         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
13040         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
13041
13042         * config/linux.opt (mmusl): New option.
13043         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
13044         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
13045
13046         * configure: Regenerate.
13047
13048 2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>
13049
13050         * config.gcc (LIBC_MUSL): New tm_defines macro.
13051         * config/linux.h (OPTION_MUSL): Define.
13052         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
13053         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
13054         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
13055
13056         * config/linux.opt (mmusl): New option.
13057         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
13058         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
13059
13060         * configure: Regenerate.
13061
13062 2015-04-22  Yury Gribov  <y.gribov@samsung.com>
13063
13064         * doc/invoke.texi (-fsanitize-sections): Update description.
13065         * asan.c (set_sanitized_sections): Parse incoming arg.
13066         (section_sanitized_p): Support wildcards.
13067
13068 2015-04-22  Tom de Vries  <tom@codesourcery.com>
13069
13070         PR tree-optimization/65823
13071         * gimplify.c (gimplify_modify_expr): Use operand_equal_p to test for
13072         equality between ap_copy and ap.
13073
13074 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13075
13076         PR target/47098
13077         * config/openbsd-oldgas.h (OBSD_LIB_SPEC): Add.
13078
13079 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13080
13081         PR target/47122
13082         * config.gcc (vax-*-openbsd*): Fix name of pthread spec header.
13083
13084 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13085
13086         PR target/55144
13087         * config.gcc (bfin*-linux-uclibc*): Prepend tmake_file and
13088         remove already contained t-files.
13089
13090 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13091
13092         * tree-tailcall.c (suitable_for_tail_opt_p, find_tail_calls):
13093         Remove unneeded forward declarations.
13094         (suitable_for_tail_call_opt_p): Commentary typo fix.
13095
13096 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13097
13098         * varasm.c (emit_bss): Remove redundant guard.
13099
13100 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13101
13102         * config/c6x/c6x.h (TARGET_CPU_CPP_BUILTINS): Add unk_isa.
13103
13104 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13105
13106         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Add BFIN_CPU_UNKNOWN.
13107
13108 2015-04-22  Hale Wang  <hale.wang@arm.com>
13109             Terry Guo  <terry.guo@arm.com>
13110
13111         PR rtl-optimization/64818
13112         * combine.c (can_combine_p): Don't combine user-specified
13113         register if it is in an asm input.
13114
13115 2015-04-21  Jan Hubicka  <hubicka@ucw.cz>
13116
13117         PR ipa/65076
13118         * passes.def (early_optimizations): Add pass_dse.
13119
13120 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13121
13122         * defaults.h (INSN_REFERENCES_ARE_DELAYED): New definition.
13123         * reorg.c (redundant_insn): Remove ifdef
13124         INSN_REFERENCES_ARE_DELAYED.
13125         * resource.c (mark_referenced_resources): Likewise.
13126
13127 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13128
13129         * defaults.h (INSN_SETS_ARE_DELAYED): New definition.
13130         * reorg.c (redundant_insn): Remove ifdef INSN_SETS_ARE_DELAYED.
13131         * resource.c (mark_set_resources): Likewise.
13132
13133 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13134
13135         * caller-save.c (insert_one_insn): Remove ifdef HAVE_cc0.
13136         * cfgcleanup.c (flow_find_cross_jump): Likewise.
13137         (flow_find_head_matching_sequence): Likewise.
13138         (try_head_merge_bb): Likewise.
13139         * combine.c (can_combine_p): Likewise.
13140         (try_combine): Likewise.
13141         (distribute_notes): Likewise.
13142         * df-problems.c (can_move_insns_across): Likewise.
13143         * final.c (final): Likewise.
13144         * gcse.c (insert_insn_end_basic_block): Likewise.
13145         * ira.c (find_moveable_pseudos): Likewise.
13146         * reorg.c (try_merge_delay_insns): Likewise.
13147         (fill_simple_delay_slots): Likewise.
13148         (fill_slots_from_thread): Likewise.
13149         * sched-deps.c (sched_analyze_2): Likewise.
13150
13151 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13152
13153         * df-scan.c (df_get_entry_block_def_set): Remove #ifdef
13154         PIC_OFFSET_TABLE_REGNUM.
13155
13156 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13157
13158         * alias.c (init_alias_target): Remove ifdef
13159         * HARD_FRAME_POINTER_IS_FRAME_POINTER.
13160         * df-scan.c (df_insn_refs_collect): Likewise.
13161         (df_get_regular_block_artificial_uses): Likewise.
13162         (df_get_eh_block_artificial_uses): Likewise.
13163         (df_get_entry_block_def_set): Likewise.
13164         (df_get_exit_block_use_set): Likewise.
13165         * emit-rtl.c (gen_rtx_REG): Likewise.
13166         * ira.c (ira_setup_eliminable_regset): Likewise.
13167         * reginfo.c (init_reg_sets_1): Likewise.
13168         * regrename.c (rename_chains): Likewise.
13169         * reload1.c (reload): Likewise.
13170         (eliminate_regs_in_insn): Likewise.
13171         * resource.c (mark_referenced_resources): Likewise.
13172         (init_resource_info): Likewise.
13173
13174 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13175
13176         * defaults.h (MASK_RETURN_ADDR): New definition.
13177         * except.c (expand_builtin_extract_return_addr): Remove ifdef
13178         MASK_RETURN_ADDR.
13179
13180 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13181
13182         * defaults.h (RETURN_ADDR_OFFSET): New definition.
13183         * except.c (expand_builtin_extract_return_addr): Remove ifdef
13184         RETURN_ADDR_OFFSET.
13185         (expand_builtin_frob_return_addr): Likewise.
13186
13187 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13188
13189         * cfgrtl.c (rtl_merge_blocks): Change #if HAVE_cc0 to if (HAVE_cc0)
13190         (try_redirect_by_replacing_jump): Likewise.
13191         (rtl_tidy_fallthru_edge): Likewise.
13192         * combine.c (insn_a_feeds_b): Likewise.
13193         (find_split_point): Likewise.
13194         (simplify_set): Likewise.
13195         * cprop.c (cprop_jump): Likewise.
13196         * cse.c (cse_extended_basic_block): Likewise.
13197         * df-problems.c (can_move_insns_across): Likewise.
13198         * function.c (emit_use_return_register_into_block): Likewise.
13199         * haifa-sched.c (sched_init): Likewise.
13200         * ira.c (find_moveable_pseudos): Likewise.
13201         * loop-invariant.c (find_invariant_insn): Likewise.
13202         * lra-constraints.c (curr_insn_transform): Likewise.
13203         * postreload.c (reload_combine_recognize_const_pattern):
13204         * Likewise.
13205         * reload.c (find_reloads): Likewise.
13206         * reorg.c (delete_scheduled_jump): Likewise.
13207         (steal_delay_list_from_target): Likewise.
13208         (steal_delay_list_from_fallthrough): Likewise.
13209         (redundant_insn): Likewise.
13210         (fill_simple_delay_slots): Likewise.
13211         (fill_slots_from_thread): Likewise.
13212         (delete_computation): Likewise.
13213         * sched-rgn.c (add_branch_dependences): Likewise.
13214
13215 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13216
13217         * genconfig.c (main): Always define HAVE_cc0.
13218         * caller-save.c (insert_one_insn): Change ifdef HAVE_cc0 to #if
13219         HAVE_cc0.
13220         * cfgcleanup.c (flow_find_cross_jump): Likewise.
13221         (flow_find_head_matching_sequence): Likewise.
13222         (try_head_merge_bb): Likewise.
13223         * cfgrtl.c (rtl_merge_blocks): Likewise.
13224         (try_redirect_by_replacing_jump): Likewise.
13225         (rtl_tidy_fallthru_edge): Likewise.
13226         * combine.c (do_SUBST_MODE): Likewise.
13227         (insn_a_feeds_b): Likewise.
13228         (combine_instructions): Likewise.
13229         (can_combine_p): Likewise.
13230         (try_combine): Likewise.
13231         (find_split_point): Likewise.
13232         (subst): Likewise.
13233         (simplify_set): Likewise.
13234         (distribute_notes): Likewise.
13235         * cprop.c (cprop_jump): Likewise.
13236         * cse.c (cse_extended_basic_block): Likewise.
13237         * df-problems.c (can_move_insns_across): Likewise.
13238         * final.c (final): Likewise.
13239         (final_scan_insn): Likewise.
13240         * function.c (emit_use_return_register_into_block): Likewise.
13241         * gcse.c (insert_insn_end_basic_block): Likewise.
13242         * haifa-sched.c (sched_init): Likewise.
13243         * ira.c (find_moveable_pseudos): Likewise.
13244         * loop-invariant.c (find_invariant_insn): Likewise.
13245         * lra-constraints.c (curr_insn_transform): Likewise.
13246         * optabs.c (prepare_cmp_insn): Likewise.
13247         * postreload.c (reload_combine_recognize_const_pattern):
13248         * Likewise.
13249         * reload.c (find_reloads): Likewise.
13250         (find_reloads_address_1): Likewise.
13251         * reorg.c (delete_scheduled_jump): Likewise.
13252         (steal_delay_list_from_target): Likewise.
13253         (steal_delay_list_from_fallthrough): Likewise.
13254         (try_merge_delay_insns): Likewise.
13255         (redundant_insn): Likewise.
13256         (fill_simple_delay_slots): Likewise.
13257         (fill_slots_from_thread): Likewise.
13258         (delete_computation): Likewise.
13259         (relax_delay_slots): Likewise.
13260         * sched-deps.c (sched_analyze_2): Likewise.
13261         * sched-rgn.c (add_branch_dependences): Likewise.
13262
13263 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13264
13265         * combine.c (find_single_use): Remove HAVE_cc0 ifdef for code
13266         that is trivially ded on non cc0 targets.
13267         (simplify_set): Likewise.
13268         (mark_used_regs_combine): Likewise.
13269         * cse.c (new_basic_block): Likewise.
13270         (fold_rtx): Likewise.
13271         (cse_insn): Likewise.
13272         (cse_extended_basic_block): Likewise.
13273         (set_live_p): Likewise.
13274         * rtlanal.c (canonicalize_condition): Likewise.
13275         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
13276
13277 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13278
13279         * conditions.h: Define macros even if HAVE_cc0 is undefined.
13280         * emit-rtl.c: Define functions even if HAVE_cc0 is undefined.
13281         * final.c: Likewise.
13282         * jump.c: Likewise.
13283         * recog.c: Likewise.
13284         * recog.h: Declare functions even when HAVE_cc0 is undefined.
13285         * sched-deps.c (sched_analyze_2): Always compile case for cc0.
13286
13287 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13288
13289         * defaults.h: New definition of EH_RETURN_DATA_REGNO.
13290         * except.c: Remove definition of EH_RETURN_DATA_REGNO.
13291         * builtins.c (expand_builtin): Remove check if
13292         EH_RETURN_DATA_REGNO is defined.
13293         * df-scan.c (df_bb_refs_collect): Likewise.
13294         (df_get_exit_block_use_set): Likewise.
13295         * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
13296         * ira-lives.c (process_bb_node_lives): Likewise.
13297         * lra-lives.c (process_bb_lives): Likewise.
13298
13299 2015-04-21  Uros Bizjak  <ubizjak@gmail.com>
13300
13301         * config/i386/i386.md (ARGP_REG, FRAME_REG, BND2_REG, BND3_REG,
13302         FIRST_PSEUDO_REG): New.
13303         * config/i386/i386.h (STACK_POINTER_REGNUM): Define to SP_REG.
13304         (ARG_POINTER_REGNUM): Define to ARGP_REG.
13305         (FRAME_POINTER_REGNUM): Define to FRAME_REG.
13306         (HARD_FRAME_POINTER_REGNUM): Define to BP_REG.
13307         (FIRST_PSEUDO_REGISTER): Define to FIRST_PSEUDO_REG.
13308         (FIRST_INT_REG): New.
13309         (LAST_INT_REG): New.
13310         (FIRST_*_REG): Define using *_REG.
13311         (LAST_*_REG): Ditto.
13312         (QI_REGNO_P): Define using FIRST_QU_REG and LAST_QI_REG.
13313         (LEGACY_INT_REGNO_P): Define using FIRST_INT_REG and LAST_INT_REG.
13314         (FIRST_FLOAT_REG): Define to FIRST_STACK_REG.
13315
13316 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13317
13318         * expmed.c: (synth_mult): Only assume overlapping
13319         shift with previous steps in alg_sub_t_m2 case.
13320
13321 2015-04-21  Richard Biener  <rguenther@suse.de>
13322
13323         PR tree-optimization/65650
13324         * tree-ssa-ccp.c (valid_lattice_transition): Allow lattice
13325         transitions involving copies.
13326         (set_lattice_value): Adjust for copy lattice state.
13327         (ccp_lattice_meet): Do not merge UNDEFINED and a copy to the copy
13328         if that doesn't dominate the merge point.
13329         (bit_value_unop): Adjust what we treat as varying mask.
13330         (bit_value_binop): Likewise.
13331         (bit_value_assume_aligned): Likewise.
13332         (evaluate_stmt): When we simplified to a SSA name record a copy
13333         instead of dropping to varying.
13334         (visit_assignment): Simplify.
13335
13336         * gimple-match.h (gimple_simplify): Add another callback.
13337         * gimple-fold.c (fold_stmt_1): Adjust caller.
13338         (gimple_fold_stmt_to_constant_1): Likewise - pass valueize
13339         for the 2nd callback.
13340         * gimple-match-head.c (gimple_simplify): Add a callback that is
13341         used to valueize the stmt operands and use it that way.
13342
13343 2015-04-21  Richard Biener  <rguenther@suse.de>
13344
13345         PR tree-optimization/65788
13346         * tree-ssa-ccp.c (evaluate_stmt): Evaluate to UNDEFINED early.
13347
13348 2015-04-21  Richard Biener  <rguenther@suse.de>
13349
13350         * config/i386/i386.c (ix86_builtin_vectorization_cost): Scale
13351         vec_construct cost by vec_stmt_cost.
13352
13353 2015-04-21  Richard Biener  <rguenther@suse.de>
13354
13355         * cfghooks.h (create_basic_block): Replace with two overloads
13356         for RTL and GIMPLE.
13357         (split_block): Likewise.
13358         * cfghooks.c (split_block): Rename to ...
13359         (split_block_1): ... this.
13360         (split_block): Add two type-safe overloads for RTL and GIMPLE.
13361         (split_block_after_labels): Call split_block_1.
13362         (create_basic_block): Rename to ...
13363         (create_basic_block_1): ... this.
13364         (create_basic_block): Add two type-safe overloads for RTL and GIMPLE.
13365         (create_empty_bb): Call create_basic_block_1.
13366         * cfgrtl.c (fixup_fallthru_exit_predecessor): Use
13367         split_block_after_labels.
13368         * omp-low.c (expand_parallel_call): Likewise.
13369         (expand_omp_target): Likewise.
13370         (simd_clone_adjust): Likewise.
13371         * tree-chkp.c (chkp_get_entry_block): Likewise.
13372         * cgraphunit.c (init_lowered_empty_function): Use the GIMPLE
13373         create_basic_block overload.
13374         (cgraph_node::expand_thunk): Likewise.
13375         * tree-cfg.c (make_blocks): Likewise.
13376         (handle_abnormal_edges): Likewise.
13377         * tree-inline.c (copy_bb): Likewise.
13378
13379 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13380
13381         * config/aarch64/aarch64.md (*<NLOGICAL:optab>_one_cmplsidi3_ze):
13382         New pattern.
13383         (*xor_one_cmplsidi3_ze): Likewise.
13384
13385 2015-04-21  Thomas Preud'homme  <thomas.preudhomme@arm.com>
13386
13387         * df-core.c (df_finish_pass): Iterate over df->problems_by_index[] and
13388         use df_remove_problem rather than manually removing problems, leaving
13389         holes in df->problems_in_order[].
13390
13391 2015-04-21  Tom de Vries  <tom@codesourcery.com>
13392
13393         PR tree-optimization/65802
13394         * internal-fn.def (VA_ARG): Add ECF_NOTROW to flags.
13395
13396 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13397
13398         * common/config/aarch64/aarch64-common.c (AARCH64_CPU_NAME_LENGTH):
13399         Increase to 128.
13400         (aarch64_rewrite_selected_cpu): Do not chop off extensions starting
13401         at '.'.  Assert that there's enough space for everything.
13402
13403 2015-04-21  Uros Bizjak  <ubizjak@gmail.com>
13404
13405         PR tree-optimization/64950
13406         Revert:
13407         2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
13408
13409         PR target/41089
13410         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
13411         as volatile.
13412
13413 2015-04-20  Shiva Chen  <shiva0217@gmail.com>
13414
13415         PR rtl-optimization/64916
13416         * cfgcleanup.c (values_equal_p): New function.
13417         (can_replace_by): Use it.
13418
13419 2015-04-20  Paolo Carlini  <paolo.carlini@oracle.com>
13420
13421         PR c++/65801
13422         * doc/invoke.texi ([-Wnarrowing]): Update.
13423
13424 2015-04-20  Jeff Law  <law@redhat.com>
13425
13426         PR tree-optimization/65658
13427         * tree-ssa-threadupdate.c (redirection_block_p): Remove
13428         redundant test for GIMPLE_ASSIGN in last change.
13429
13430 2015-04-20  Uros Bizjak  <ubizjak@gmail.com>
13431
13432         * config/i386/i386.c (set_pic_reg_ever_live): Remove.
13433         (legitimize_pic_address): Do not call set_pic_reg_ever_live.
13434         (legitimize_tls_address): Ditto.
13435         (ix86_expand_move): Ditto.
13436         (ix86_expand_binary_operator): Remove reload_in_progress checks.
13437         (ix86_expand_unary_operator): Ditto.
13438         * config/i386/predicates.md (index_register_operand): Ditto.
13439
13440 2015-04-20  Selim Belbachir  <selim.belbachir@fr.thalesgroup.com>
13441
13442         * reorg.c (try_merge_delay_insns): Improve correctness checking
13443         for targets with multiple delay slots.
13444
13445 2015-04-20  Jeff Law  <law@redhat.com>
13446
13447         PR tree-optimization/65658
13448         * tree-ssa-threadupdate.c (redirection_block_p): Ignore clobber
13449         statements too.
13450
13451 2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>
13452
13453         * config/aarch64/aarch64.c (aarch64_simd_emit_pair_result_insn): Delete.
13454         * config/aarch64/aarch64-protos.h (aarch64_simd_emit_pair_result_insn):
13455         Delete.
13456
13457 2015-04-20  Jakub Jelinek  <jakub@redhat.com>
13458
13459         PR debug/65807
13460         * dwarf2out.c (add_AT_wide): Clear attr.dw_attr_val.val_entry.
13461
13462 2015-04-20  Richard Biener  <rguenther@suse.de>
13463
13464         * gimple-fold.h (gimple_build): Remove optional valueize arguments.
13465         * gimple-fold.c (gimple_build_valueize): New function.
13466         (gimple_build): Always use gimple_build_valueize as valueize hook.
13467
13468 2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>
13469
13470         PR target/64134
13471         * config/aarch64/aarch64.c (aarch64_expand_vector_init): Load constant
13472         and overwrite variable parts if <= 1/2 the elements are variable.
13473
13474 2015-04-19  Vladimir Makarov  <vmakarov@redhat.com>
13475
13476         PR rtl-optimization/65805
13477         * lra-eliminations.c (lra_eliminate_regs_1): Add new assert.
13478         Don't use difference of offset and previous offset if
13479         update_sp_offset is non-zero.
13480         (eliminate_regs_in_insn): Ditto.
13481         * lra-spills.c (remove_pseudos): Exchange 4th and 6th args in
13482         lra_eliminate_regs_1 call.
13483         * lra-constraints.c (get_equiv_with_elimination): Ditto.
13484
13485 2015-04-18  Trevor Saunders  <tsaunders@mozilla.com>
13486
13487         * hash-table.h: Remove version of hash_table that stored value_type *.
13488         * asan.c, attribs.c, bitmap.c, cfg.c, cgraph.h, config/arm/arm.c,
13489         config/i386/winnt.c, config/ia64/ia64.c, config/mips/mips.c,
13490         config/sol2.c, coverage.c, cselib.c, dse.c, dwarf2cfi.c,
13491         dwarf2out.c, except.c, gcse.c, genmatch.c, ggc-common.c,
13492         gimple-ssa-strength-reduction.c, gimplify.c, haifa-sched.c,
13493         hard-reg-set.h, hash-map.h, hash-set.h, ipa-devirt.c, ipa-icf.h,
13494         ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
13495         loop-iv.c, loop-unroll.c, lto-streamer.h, plugin.c, postreload-gcse.c,
13496         reginfo.c, statistics.c, store-motion.c, trans-mem.c, tree-cfg.c,
13497         tree-eh.c, tree-hasher.h, tree-into-ssa.c, tree-parloops.c,
13498         tree-sra.c, tree-ssa-coalesce.c, tree-ssa-dom.c, tree-ssa-live.c,
13499         tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c,
13500         tree-ssa-pre.c, tree-ssa-reassoc.c, tree-ssa-sccvn.c,
13501         tree-ssa-structalias.c, tree-ssa-tail-merge.c,
13502         tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
13503         valtrack.h, var-tracking.c, vtable-verify.c, vtable-verify.h: Adjust.
13504
13505 2015-04-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13506             Jakub Jelinek  <jakub@redhat.com>
13507
13508         PR target/65787
13509         * config/rs6000/rs6000.c (rtx_is_swappable_p): Ensure that a
13510         subsequent SH_NONE operand does not overwrite an existing *special
13511         value.
13512         (adjust_extract): Handle case where a vec_extract operation is
13513         wrapped in a PARALLEL.
13514
13515 2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>
13516
13517         PR target/65780
13518         * config/i386/i386.c (ix86_binds_local_p): Define only if
13519         TARGET_MACHO and TARGET_DLLIMPORT_DECL_ATTRIBUTES are false.
13520
13521 2015-04-17  Jeff Law  <law@redhat.com>
13522
13523         PR tree-optimization/47679
13524         * Makefile.in (OBJS); Add tree-ssa-scopedtables.o.
13525         * tree-ssa-scopedtables.c: New file.
13526         * tree-ssa-scopedtables.h: New file.
13527         * tree-ssa-dom.c: Include tree-ssa-scopedtables.h.
13528         (const_and_copies): Change name/type.
13529         (record_const_or_copy): Move into tree-ssa-scopedtables.c
13530         (record_const_or_copy_1): Similarly.
13531         (restore_vars_to_original_value): Similarly.
13532         (pass_dominator::execute): Create and destroy const_and_copies table.
13533         (thread_across_edge): Update passing of const_and_copies.
13534         (record_temporary_equivalence): Use method calls rather than
13535         manipulating const_and_copies directly.
13536         (record_equality, cprop_into_successor_phis): Similarly.
13537         (dom_opt_dom_walker::before_dom_children): Similarly.
13538         (dom_opt_dom_walker::after_dom_children): Similarly.
13539         (eliminate_redundant_computations): Similarly.
13540         * tree-ssa-threadedge.c (remove_temporary_equivalences): Delete.
13541         (record_temporary_equivalence): Likewise.
13542         (invalidate_equivalences): Likewise.
13543         (record_temporary_equivalences_from_phis): Update due to type
13544         change of const_and_copies.  Use method calls rather than
13545         manipulating the stack directly.
13546         (record_temporary_equivalences_from_stmts_at_dest): Likewise.
13547         (thread_through_normal_block, thread_across_edge): Likewise.
13548         (thread_across_edge): Likewise.
13549         * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
13550         * tree-vrp.c: Include tree-ssa-scopedtables.h.  Change type
13551         of equiv_stack.
13552         (identify_jump_threads): Update due to type change of equiv_stack.
13553         (finalize_jump_threads): Delete the equiv_stack when complete.
13554
13555 2015-04-17  Uros Bizjak  <ubizjak@gmail.com>
13556
13557         * config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
13558         * config/i386/i386.c (ix86_legitimize_reload_address): Ditto.
13559         * config/i386/i386-protos.h (ix86_legitimize_reload_address): Ditto.
13560
13561 2015-04-17  Andreas Tobler  <andreast@gcc.gnu.org>
13562
13563         PR target/65535
13564         * config.gcc: Exit with a comment when we do not have a major version
13565         number for the FreeBSD target.
13566
13567 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
13568
13569         PR target/65689
13570         * genpreds.c (struct constraint_data): Add maybe_allows_reg and
13571         maybe_allows_mem bitfields.
13572         (maybe_allows_none_start, maybe_allows_none_end,
13573         maybe_allows_reg_start, maybe_allows_reg_end, maybe_allows_mem_start,
13574         maybe_allows_mem_end): New variables.
13575         (compute_maybe_allows): New function.
13576         (add_constraint): Use it to initialize maybe_allows_reg and
13577         maybe_allows_mem fields.
13578         (choose_enum_order): Sort the non-is_register/is_const_int/is_memory/
13579         is_address constraints such that those that allow neither mem nor
13580         reg come first, then those that only allow reg but not mem, then
13581         those that only allow mem but not reg, then the rest.
13582         (write_allows_reg_mem_function): New function.
13583         (write_tm_preds_h): Call it.
13584         * stmt.c (parse_output_constraint, parse_input_constraint): Use
13585         the generated insn_extra_constraint_allows_reg_mem function
13586         instead of always setting *allows_reg = true; *allows_mem = true;
13587         for unknown extra constraints.
13588
13589 2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>
13590
13591         PR target/65780
13592         * output.h (default_binds_local_p_3): New.
13593         * varasm.c (default_binds_local_p_3): Make it public.  Take an
13594         argument to indicate if common symbol may be local.  If common
13595         symbol may be local, treat non-external variable as defined
13596         locally.
13597         (default_binds_local_p_2): Pass !flag_pic to default_binds_local_p_3.
13598         (default_binds_local_p_1): Pass false to default_binds_local_p_3.
13599         * config/i386/i386.c (ix86_binds_local_p): New.
13600         (TARGET_BINDS_LOCAL_P): Replace default_binds_local_p_2 with
13601         ix86_binds_local_p.
13602
13603 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
13604
13605         PR debug/65771
13606         * dwarf2out.c (mem_loc_descriptor): For CONST, fallback to
13607         trying mem_loc_descriptor on XEXP (rtl, 0).
13608
13609 2015-04-17  Martin Liska  <mliska@suse.cz>
13610
13611         * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
13612         Release symbol_compare_collection.
13613         * ipa-reference.c: Add TODO that a vector should be released.
13614
13615 2015-04-17  Sivanupandi Pitchumani <Pitchumani.Sivanupandi@atmel.com>
13616
13617         PR target/65296
13618         * config/avr/gen-avr-mmcu-specs.c (*avrlibc_startfile): Adjust
13619         to new AVR-LibC file layout (bug #44574).
13620         (*avrlibc_devicelib): Same.
13621         * config/avr/avr-mcus.def: Adjust comments.
13622         * config/avr/avr.opt (nodevicelib): Adjust help.
13623
13624 2015-04-17  Alan Lawrence  <alan.lawrence@arm.com>
13625
13626         * config/aarch64/arm_neon.h (vdup_n_f32): Remove forward declaration.
13627
13628 2015-04-17  Patrick Palka  <ppalka@gcc.gnu.org>
13629
13630         PR c++/64527
13631         * gimplify.c (gimplify_init_constructor): Always emit a
13632         side-effecting constructor.
13633
13634 2015-04-17  Tom de Vries  <tom@codesourcery.com>
13635
13636         PR tree-optimization/64950
13637         * gimplify.c (gimplify_function_tree): Tentatively set PROP_gimple_lva
13638         in cfun->curr_properties.
13639         (gimplify_va_arg_expr): Clear PROP_gimple_lva in cfun->curr_properties
13640         if we generate an IFN_VA_ARG.
13641         * tree-inline.c (expand_call_inline): Reset PROP_gimple_lva in dest
13642         function if PROP_gimple_lva is not set in src function.
13643
13644 2015-04-17  Tom de Vries  <tom@codesourcery.com>
13645             Michael Matz  <matz@suse.de>
13646
13647         PR tree-optimization/64950
13648         * gimple-iterator.c (update_modified_stmts): Remove static.
13649         * gimple-iterator.h (update_modified_stmts): Declare.
13650         * gimplify.c (gimplify_modify_expr): Handle IFN_VA_ARG.
13651         (gimplify_va_arg_internal): New function.
13652         (gimplify_va_arg_expr): Use IFN_VA_ARG.
13653         * gimplify.h (gimplify_va_arg_internal): Declare.
13654         * internal-fn.c (expand_VA_ARG): New unreachable function.
13655         * internal-fn.def (VA_ARG): New DEF_INTERNAL_FN.
13656         * tree-stdarg.c (gimple_call_ifn_va_arg_p, expand_ifn_va_arg_1)
13657         (expand_ifn_va_arg): New function.
13658         (pass_data_stdarg): Add PROP_gimple_lva to properties_provided field.
13659         (pass_stdarg::execute): Call expand_ifn_va_arg.
13660         (pass_data_lower_vaarg): New pass_data.
13661         (pass_lower_vaarg): New gimple_opt_pass.
13662         (pass_lower_vaarg::gate, pass_lower_vaarg::execute)
13663         (make_pass_lower_vaarg): New function.
13664         * cfgexpand.c (pass_data_expand): Add PROP_gimple_lva to
13665         properties_required field.
13666         * passes.def (all_passes): Add pass_lower_vaarg.
13667         * tree-pass.h (PROP_gimple_lva): Add define.
13668         (make_pass_lower_vaarg): Declare.
13669
13670 2015-04-17  Tom de Vries  <tom@codesourcery.com>
13671
13672         * fold-const.c (operand_equal_p): Handle INTERNAL_FNs.
13673         * calls.c (call_expr_flags): Same.
13674
13675 2015-04-17  Tom de Vries  <tom@codesourcery.com>
13676
13677         * tree-stdarg.c (optimize_va_list_gpr_fpr_size): Factor out of ...
13678         (pass_stdarg::execute): ... here.
13679
13680 2015-04-17  Tom de Vries  <tom@codesourcery.com>
13681             Michael Matz  <matz@suse.de>
13682
13683         * tree-cfg.c (make_blocks_1): Factor out of ...
13684         (make_blocks): ... here.
13685         (make_edges_bb): Factor out of ...
13686         (make_edges): ... here.
13687         (gimple_find_sub_bbs): New function.
13688         * tree-cfg.h (gimple_find_sub_bbs): Declare.
13689
13690 2015-04-17  Tom de Vries  <tom@codesourcery.com>
13691
13692         * tree.c (free_lang_data): Disable lang_hooks.gimplify_expr.
13693
13694 2015-04-17  Yury Gribov  <y.gribov@samsung.com>
13695
13696         * asan.c (set_sanitized_sections): New function.
13697         (section_sanitized_p): Ditto.
13698         (asan_protect_global): Optionally sanitize user-defined
13699         sections.
13700         * asan.h (set_sanitized_sections): Declare new function.
13701         * common.opt (fsanitize-sections): New option.
13702         * doc/invoke.texi (-fsanitize-sections): Document new option.
13703         * opts-global.c (handle_common_deferred_options): Handle new
13704         option.
13705
13706 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
13707
13708         PR debug/65771
13709         * dwarf2out.c (loc_list_from_tree): Return NULL
13710         for DEBUG_EXPR_DECL.
13711
13712 2015-04-17  Christian Bruel  <christian.bruel@st.com>
13713
13714         * ipa-inline.c (can_inline_edge_p): Allow inlining of functions with
13715         same attributes.
13716
13717 2015-04-16  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
13718
13719         * ira-color.c (setup_left_conflict_sizes_p): Do not process
13720         node itself when computing left conflict subnode size.
13721
13722 2015-04-16  Uros Bizjak  <ubizjak@gmail.com>
13723
13724         * config/i386/predicates.md (register_mixssei387nonimm_operand): New.
13725         * config/i386/i386.md (*fop_<mode>_1_mixed): Merge with
13726         *fop_<mode>_1_sse using enabled attribute.  Use
13727         register_mixssei387nonimm_operand operand 1 predicate. Change
13728         alternative 3 constraints from "x" to "v".
13729
13730 2015-04-16  Richard Biener  <rguenther@suse.de>
13731
13732         PR tree-optimization/65774
13733         * tree-ssa-ccp.c (evaluate_stmt): Constrain types we invoke
13734         bit-value tracking on.
13735
13736 2015-04-16  Richard Biener  <rguenther@suse.de>
13737
13738         PR tree-optimization/64277
13739         * tree-vrp.c (check_array_ref): Fix anti-range handling,
13740         simplify upper bound handling.
13741         (search_for_addr_array): Simplify.
13742         (check_array_bounds): Handle ADDR_EXPRs here.
13743         (check_all_array_refs): Simplify.
13744
13745 2015-04-16  Uros Bizjak  <ubizjak@gmail.com>
13746
13747         * config/i386/i386.c (print_reg): Rewrite function.
13748
13749 2015-04-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13750
13751         * config/s390/s390.h (IRA_HARD_REGNO_ADD_COST_MULTIPLIER):
13752         Invert the condition.
13753
13754 2015-04-16  Renlin Li  <renlin.li@arm.com>
13755
13756         * simplify-rtx.c (simplify_unary_operation_1): Fix a typo. Enable two
13757         simplifications for UNSIGNED_FLOAT.
13758
13759 2015-04-16  Nick Clifton  <nickc@redhat.com>
13760
13761         * config/rl78/rl78-opts.h (enum rl78_mul_types): Add MUL_G14 and
13762         MUL_UNINIT.
13763         (enum rl78_cpu_type): New.
13764         * config/rl78/rl78-virt.md (attr valloc): Add divhi and divsi.
13765         (umulhi3_shift_virt): Remove m constraint from operand 1.
13766         (umulqihi3_virt): Likewise.
13767         * config/rl78/rl78.c (rl78_option_override): Add code to process
13768         -mcpu and -mmul options.
13769         (rl78_alloc_physical_registers): Add code to handle divhi and
13770         divsi valloc attributes.
13771         (set_origin): Likewise.
13772         * config/rl78/rl78.h (RL78_MUL_G14): Define.
13773         (TARGET_G10, TARGET_G13, TARGET_G14): Define.
13774         (TARGET_CPU_CPP_BUILTINS): Define __RL78_MUL_xxx__ and
13775         __RL78_Gxx__.
13776         (ASM_SPEC): Pass -mcpu on to assembler.
13777         * config/rl78/rl78.md (mulqi3): Add a clobber of AX.
13778         (mulqi3_rl78): Likewise.
13779         (mulhi3_g13): Likewise.
13780         (mulhi3): Generate the G13 or G14 versions of the insn directly.
13781         (mulsi3): Likewise.
13782         (mulhi3_g14): Add clobbers of AX and BC.
13783         (mulsi3_g14): Likewise.
13784         (mulsi3_g13): Likewise.
13785         (udivmodhi4, udivmodhi4_g14, udivmodsi4): New patterns.
13786         (udivmodsi4_g14, udivmodsi4_g13): New patterns.
13787         * config/rl78/rl78.opt (mmul): Initialise value to
13788         RL78_MUL_UNINIT.
13789         (mcpu): New option.
13790         (m13, m14, mrl78): New option aliases.
13791         * config/rl78/t-rl78 (MULTILIB_OPTIONS): Add mg13 and mg14.
13792         (MULTILIB_DIRNAMES): Add g13 and g14.
13793         * doc/invoke.texi: Document -mcpu and -mmul options.
13794
13795 2015-04-16  Richard Biener  <rguenther@suse.de>
13796
13797         * tree-ssa-ccp.c (likely_value): See if we have operands that
13798         are marked as never simulate again and return CONSTANT in this
13799         case.
13800         * tree-ssa-propagate.c (simulate_stmt): Mark stmts that do
13801         not have any operands that will be simulated again as
13802         not being simulated again.
13803
13804 2015-04-15  Uros Bizjak  <ubizjak@gmail.com>
13805
13806         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed):
13807         Merge with *cmpi<FPCMP:unord><MODEF:mode>_sse using enabled attribute.
13808         (*extendsfdf2_mixed): Merge with *extendsfdf2_sse using enabled
13809         attribute.
13810         (*truncdfsf_fast_mixed): Merge with *truncdfsf_fast_sse using
13811         enabled attribute.
13812         (*float<SWI48:mode><MODEF:mode>2_mixed): Rename from
13813         *float<SWI48:mode><MODEF:mode>2_sse.
13814         (*absneg<mode>2_mixed): Merge with *absneg<mode>2_sse using
13815         enabled attribute.
13816         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_sse using
13817         enabled attribute.
13818
13819 2015-04-15  Tom de Vries  <tom@codesourcery.com>
13820
13821         PR other/65487
13822         * function.c (push_dummy_function): New function.
13823         (init_dummy_function_start): Use push_dummy_function.
13824         (pop_dummy_function): New function.  Factored out of ...
13825         (expand_dummy_function_end): ... here.
13826         * function.h (push_dummy_function, pop_dummy_function): Declare.
13827         * passes.c (pass_manager::dump_passes): Use push_dummy_function and
13828         pop_dummy_function.
13829         * tree-chkp.c (chkp_gate): Handle cgraph_node::get (cfun->decl) == NULL.
13830
13831 2015-04-15  Jeff Law  <law@redhat.com>
13832
13833         PR tree-optimization/47679
13834         * tree-ssa-dom.c (build_and_record_new_cond): Moved to avoid
13835         need for forward declaration in upcoming changes.
13836         (record_conditions, record_edge_info): Likewise.
13837
13838         PR rtl-optimization/42522
13839         * cse.c (fold_rtx): Try to simplify a ZERO_EXTRACT or
13840         SIGN_EXTRACT as a whole object rather than simplifying
13841         its operand.
13842
13843 2015-04-15  Jakub Jelinek  <jakub@redhat.com>
13844
13845         PR ipa/65765
13846         * ipa-icf-gimple.c (func_checker::compare_bb): For GIMPLE_NOP
13847         and GIMPLE_PREDICT use break instead of return true. For
13848         GIMPLE_EH_DISPATCH, compare dispatch region.
13849
13850 2015-04-14  Matthew Wahab  <matthew.wahab@arm.com>
13851
13852         * doc/extend.texi (__sync Builtins): Simplify some text.  Update
13853         details about the implementation.  Make clear preference for
13854         __atomic builtins.  Reduce possibility of future change.
13855
13856 2015-04-15  Nick Clifton  <nickc@redhat.com>
13857
13858         * config/rx/rx.opt (mallow-string-insns): New option.
13859         * config/rx/rx.c (RX_BUILTIN_RMPA): Disable the use of this
13860         builtin if string instructions are denied.
13861         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Define
13862         __RX_ALLOW_STRING_INSNS__ or __RX_DISALLOW_STRING_INSNS__, as
13863         appropriate.
13864         (ASM_SPEC): Pass -mno-allow-string-insns on to the assembler.
13865         * config/rx/rx.md (movstr): Enable pattern only if string
13866         instructions are allowed.
13867         (rx_movstr, rx_strend, movmemsi, rx_movmem): Likewise.
13868         (cmpstrnsi, cmpstrsi, rx_cmpstrn, rmpa): Likewise.
13869         * config/rx/t-rx (MULTILIB_OPTIONS): Add mno-allow-string-insns.
13870         (MULTILIB_DIRNAMES): Add no-strings.
13871         * doc/invoke.texi: Document -mno-allow-string-insns.
13872
13873 2015-04-15  Alan Modra  <amodra@gmail.com>
13874
13875         PR target/65408
13876         PR target/58744
13877         PR middle-end/36043
13878         * calls.c (load_register_parameters): Don't load past end of
13879         mem unless suitably aligned.
13880
13881 2015-04-15  Nick Clifton  <nickc@redhat.com>
13882
13883         * config/rl78/rl78.c (rl78_expand_prologue): Mark large stack
13884         decrement instruction as being frame related.
13885         (rl78_print_operand_1): Handle 'p' modifier to add +0 to HL
13886         based addresses.
13887         If zero extending a function address enclose the operation in
13888         %code(...).
13889         (rl78_preferred_reload_class): New function.
13890         (TARGET_PREFERRED_RELOAD_CLASS): Define.
13891         * config/rl78/rl78.md: Remove useless constraints in expanders.
13892         (mulqi3_rl78): Remove + qualifier on input-only operand 1.
13893         (mulhi3_rl78): Likewise.
13894         (mulhi3_g13): Likewise.
13895         (mulsi3_rl78): Likewise.
13896         (es_addr): Move to before the multiply patterns.
13897
13898 2015-04-15  Alan Modra  <amodra@gmail.com>
13899
13900         * function.h (struct emit_status): Delete x_first_insn, x_last_insn
13901         and sequence_stack.  Add seq.
13902         (seq_stack): Delete.
13903         * function.c (prepare_function_start): Don't access x_last_insn.
13904         * emit-rtl.h (get_current_sequence, get_topmost_sequence): New.
13905         (get_insns, set_first_insn, get_last_insn, set_last_insn): Use them.
13906         * emit_rtl.c (start_sequence, push_topmost_sequence,
13907         pop_topmost_sequence, end_sequence, in_sequence_p, init_emit): Use
13908         sequence accessors.
13909         (get_last_insn_anywhere, add_insn_after_nobb, add_insn_before_nobb,
13910         remove_insn): Likewise.  Simplify.
13911         * config/m32c/m32c.c (m32c_leaf_function_p): Use push_topmost_sequence
13912         and pop_topmost_sequence.
13913         (m32c_function_needs_enter): Use get_topmost_sequence.  Ignore
13914         debug insns.
13915         * config/rs6000/rs6000.c (rs6000_call_aix): Use get_current_sequence.
13916
13917 2015-04-14  Yvan Roux  <yvan.roux@linaro.org>
13918
13919         PR target/65729
13920         * lra-constraints.c (prohibited_class_reg_set_mode_p): Restore and fix
13921         the assertiion.
13922
13923 2015-04-14  Uros Bizjak  <ubizjak@gmail.com>
13924
13925         * config/i386/i386.h (LEGACY_INT_REG_P): New define.
13926         (LEGACY_INT_REGNO_P): Ditto.
13927         (GENERAL_REGNO_P): Use LEGACY_INT_REGNO_P.
13928         (ANY_MASK_REG_P): Remove.
13929         (BND_REG_P): Rename from ANY_BND_REG_P.
13930         * config/i386/i386.c (print_reg): Use LEGACY_INT_REG_P to print
13931         legacy integer registers.  Do not handle MMX_REG_P in a special way.
13932         Merge 64byte and 32byte SSE handling.
13933
13934 2015-04-14  Nick Clifton  <nickc@redhat.com>
13935
13936         * expr.c (expand_assignment): Force an address offset computation
13937         into a register before changing its mode.
13938         (expand_expr_real_1): Likewise.
13939
13940 2015-04-14  Alan Lawrence  <alan.lawrence@arm.com>
13941
13942         * config/aarch64/arm_neon.h (vst1_lane_f32, vst1_lane_f64,
13943         vst1_lane_p8, vst1_lane_p16, vst1_lane_s8, vst1_lane_s16,
13944         vst1_lane_s32, vst1_lane_s64, vst1_lane_u8, vst1_lane_u16,
13945         vst1_lane_u32, vst1_lane_u64, vst1q_lane_f32, vst1q_lane_f64,
13946         vst1q_lane_p8, vst1q_lane_p16, vst1q_lane_s8, vst1q_lane_s16,
13947         vst1q_lane_s32, vst1q_lane_s64, vst1q_lane_u8, vst1q_lane_u16,
13948         vst1q_lane_u32, vst1q_lane_u64): Reimplement with pointer dereference
13949         and __aarch64_vget_lane_any.
13950
13951 2015-04-14  Jakub Jelinek  <jakub@redhat.com>
13952
13953         PR rtl-optimization/65761
13954         * cfgrtl.c (rtl_split_edge): For EDGE_CROSSING split, use
13955         get_last_bb_insn (after) instead of NEXT_INSN (BB_END (after)).
13956
13957 2015-04-14  Richard Biener  <rguenther@suse.de>
13958
13959         * graphite-scop-detection.c: Do not include cp/cp-tree.h.
13960         (graphite_can_represent_scev): Use POINTER_TYPE_P.
13961
13962 2015-04-14  Richard Biener  <rguenther@suse.de>
13963
13964         PR tree-optimization/65758
13965         * tree-ssa-ccp.c (get_value_from_alignment): Adjust mask test
13966         against -1.
13967         (ccp_lattice_meet): Likewise.
13968         (bit_value_unop): Likewise.
13969         (bit_value_binop): Likewise.
13970         (bit_value_assume_aligned): Likewise.
13971
13972 2015-04-14  Christian Bruel  <christian.bruel@st.com>
13973
13974         * execute_dwarf2_frame (dw_frame_pointer_regnum): Reinitialize for each
13975         function.
13976
13977 2015-04-14  Marc Glisse  <marc.glisse@inria.fr>
13978
13979         PR tree-optimization/63387
13980         * match.pd ((x unord x) | (y unord y) -> (x unord y),
13981         (x unord x) | (x unord y) -> (x unord y)): New simplifications.
13982
13983 2015-04-14  Uros Bizjak  <ubizjak@gmail.com>
13984
13985         * config/i386/predicates.md (any_QIreg_operand): Rename from
13986         q_regs_operand.  Do not process subregs.
13987         (QIreg_operand): Use QI_REGNO_P predicate.
13988         (ext_QIreg_operand): Ditto.
13989         (ext_register_operand): Ditto.
13990         * config/i386/i386.md (TEST splitters): Use QIreg_operand predicate.
13991         (AND splitters): Ditto.
13992         (AND with -65536 splitter): Add SWI48 mode for operand 0.
13993         (AND with -256 splitter): Use any_QIreg_operand predicate and
13994         SWI248 mode for operand 0.
13995         (AND with -65281 splitter): Use QIreg_operand predicate and SWI248
13996         mode for operand 0.
13997         (SETCC + MOVZBL peepholes): Update for renamed any_QIreg_operand.
13998
13999 2015-04-13  Gerald Pfeifer  <gerald@pfeifer.com>
14000
14001         * doc/plugins.texi: Rewrite first introductory paragraph.
14002
14003 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
14004
14005         * tree-vrp.c (nonnull_arg_p): THIS pointers and references are non-zero.
14006         (gimple_stmt_nonzero_warnv_p): Reference return values are non-zero.
14007
14008 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
14009
14010         * ipa-profie.c (ipa_profile): Check number of parameters
14011         and possible polymorphic call targets before
14012         devirtualizing.
14013
14014 2015-04-13  Uros Bizjak  <ubizjak@gmail.com>
14015
14016         * config/i386/i386.md (*bmi2_umul<mode><dwi>3_1): Merge from
14017         *bmi2_umulsidi3_1 and *bmi2_umulditi3_1 using DWIH mode iterator.
14018
14019 2015-04-13  Richard Biener  <rguenther@suse.de>
14020
14021         PR tree-optimization/65204
14022         * tree-ssa-ccp.c (evaluate_stmt): Always evaluate address
14023         takens for bit-CCP.
14024
14025 2015-04-13  Richard Biener  <rguenther@suse.de>
14026
14027         PR target/65660
14028         * config/i386/i386.c (bdver1_cost): Double cond_taken_branch_cost
14029         and cond_not_taken_branch_cost to 4 and 2.
14030         (bdver2_cost): Likewise.
14031         (bdver3_cost): Likewise.
14032         (bdver4_cost): Likewise.
14033
14034 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
14035
14036         * hash-table.h (hash_table constructor): Add mem stats.
14037         (alloc_entries): Likewise.
14038
14039 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
14040
14041         * ipa-cp.c (ipcp_driver): Relase prev_edge.
14042         * passes.c (execute_one_pass): Only add transform if pass has one.
14043
14044 2015-04-12  Joseph Myers  <joseph@codesourcery.com>
14045
14046         * config/i386/i386.c (ix86_option_override_internal): Don't set
14047         -fprefetch-loop-arrays if optimizing for size.
14048
14049 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
14050             Gerald Pfeifer  <gerald@pfeifer.com>
14051
14052         * doc/contrib.texi (Contributors): Add Martin Jambor and
14053         Michael Matz.
14054
14055 2015-04-12  Jakub Jelinek  <jakub@redhat.com>
14056
14057         * BASE-VER: Set to 6.0.0.
14058
14059         PR tree-optimization/65747
14060         * ipa-icf-gimple.c (func_checker::compare_operand): Use compare_operand
14061         rather than compare_ssa_name for OBJ_TYPE_REF_OBJECT.
14062
14063 2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
14064
14065         * doc/invoke.texi (-Wmemset-transposed-args): Break a long
14066         sentence.  Improve grammar.
14067
14068 2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
14069
14070         * doc/contrib.texi (Contributors): Add Maxim Kuvyrkov.
14071
14072 2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
14073
14074         PR ipa/65743
14075         * ipa-inline-transform.c (speculation_removed): Remove static var.
14076         (check_speculations): New function.
14077         (clone_inlined_nodes): Do not check spculations.
14078         (inline_call): Call check_speculations.
14079         * ipa-prop.c (ipa_make_edge_direct_to_target): Do not
14080         consider non-invariants.
14081
14082 2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
14083             Martin Liska  <mliska@suse.cz>
14084
14085         PR ipa/65722
14086         * ipa-icf.c (sem_item::compare_cgraph_references): function and
14087         variable can not match.
14088         (sem_item::update_hash_by_addr_refs): Fix handling of virtual tables.
14089         (sem_variable::equals_wpa): Fix checking of DECL_FINAL_P patch.
14090
14091 2015-04-11  Jakub Jelinek  <jakub@redhat.com>
14092
14093         PR tree-optimization/65735
14094         * tree-ssa-threadedge.c (fsm_find_control_statement_thread_paths):
14095         Remove visited_phis argument, add visited_bbs, avoid recursing into the
14096         same bb rather than just into the same phi node.
14097         (thread_through_normal_block): Adjust caller.
14098
14099 2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
14100
14101         * doc/contrib.texi (Contributors): Add Ira Rosen.
14102
14103 2015-04-11  Benno Schulenberg  <bensberg@justemail.net>
14104
14105         * gcov.c (find_source): Fix miswording in error message.
14106         * config/i386/i386.c (ix86_handle_cconv_attribute): Likewise.
14107         (ix86_expand_sse_comi_round): Fix typo in error message.
14108
14109 2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
14110
14111         * doc/contrib.texi (Contributors): Add Laurynas Biveinis.
14112
14113 2015-04-10  Gerald Pfeifer  <gerald@pfeifer.com>
14114
14115         * doc/contrib.texi (Contributors): Update Joe Buck's entry.
14116
14117 2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>
14118
14119         PR target/65710
14120         * lra-assigns.c (spill_for): Update smallest_bad_spills_num.
14121         Print bad_spills_num and insn_pseudos_num.
14122
14123 2015-04-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14124
14125         PR target/65694
14126         * config/arm/arm.c (arm_canonicalize_comparison): Use ARM_SIGN_EXTEND
14127         when creating +1 values for SImode.
14128
14129 2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>
14130
14131         PR target/65729
14132         * lra-constraints.c (prohibited_class_reg_set_mode_p): Comment the
14133         assert.
14134
14135 2015-04-10  Jakub Jelinek  <jakub@redhat.com>
14136             Iain Sandoe  <iain@codesourcery.com>
14137
14138         PR target/65351
14139         * configure: Regenerate.
14140
14141 2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>
14142
14143         PR target/65671
14144         * config/i386/sse.md: Generate vextract32x4 if AVX-512DQ is disabled.
14145
14146 2015-04-09  Gerald Pfeifer  <gerald@pfeifer.com>
14147
14148         * doc/contrib.texi (Contributors): Add John Marino.
14149
14150 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
14151
14152         PR tree-optimization/65709
14153         * ubsan.c (instrument_mem_ref): Use TREE_TYPE (base) instead of
14154         TREE_TYPE (TREE_TYPE (t)).
14155
14156 2015-04-09  Vladimir Makarov  <vmakarov@redhat.com>
14157
14158         PR target/65710
14159         * lra-int.h (lra_bad_spill_regno_start): New.
14160         * lra.c (lra_bad_spill_regno_start): New.
14161         (lra): Set up lra_bad_spill_regno_start.  Set up
14162         lra_constraint_new_regno_start unconditionally.
14163         * lra-assigns.c (spill_for): Use lra_bad_spill_regno_start for
14164         spill preferences.
14165
14166 2015-04-09  Marek Polacek  <polacek@redhat.com>
14167             Jakub Jelinek  <jakub@redhat.com>
14168
14169         PR middle-end/65554
14170         * gimple-fold.c (gimple_fold_builtin_memory_op): Update comment.
14171         (fold_ctor_reference): Use STRIP_USELESS_TYPE_CONVERSION instead
14172         of STRIP_NOPS.
14173
14174 2015-04-09  Segher Boessenkool  <segher@kernel.crashing.org>
14175
14176         PR rtl-optimization/65693
14177         * combine.c (is_parallel_of_n_reg_sets): Move outside of
14178         #ifndef HAVE_cc0.
14179
14180 2015-04-09  Georg-Johann Lay  <avr@gjlay.de>
14181
14182         PR target/65296
14183         * config/avr/driver-avr.c (avr_devicespecs_file): Don't specify a
14184         device specs file if "device-specs%s" didn't resolve to a path.
14185
14186 2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>
14187
14188         PR target/65676
14189         * config/i386/i386.c (fixup_modeless_constant): New.
14190         (ix86_expand_args_builtin): Fixup modeless constant operand.
14191         (ix86_expand_round_builtin): Ditto.
14192         (ix86_expand_special_args_builtin): Ditto.
14193         (ix86_expand_builtin): Ditto.
14194
14195 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
14196
14197         PR target/65693
14198         * config/i386/i386.md (*udivmod<mode>4_pow2): Allow
14199         any pow2 integer in between 2 and 0x80000000U inclusive.
14200
14201 2015-04-08  Segher Boessenkool  <segher@kernel.crashing.org>
14202
14203         PR rtl-optimization/65693
14204         * combine.c (is_parallel_of_n_reg_sets): Change first argument
14205         from an rtx_insn * to an rtx.
14206         (try_combine): Adjust both callers.  Use it once more.
14207
14208 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
14209
14210         * tree-chkp.c (chkp_find_const_bounds_var): Remove.
14211         (chkp_make_static_const_bounds): Search existing
14212         symbol by assembler name.  Use make_decl_one_only.
14213         (chkp_get_zero_bounds_var): Remove node search which
14214         is now performed in chkp_make_static_const_bounds.
14215         (chkp_get_none_bounds_var): Likewise.
14216
14217 2015-04-08  Michael Witten  <mfwitten@gmail.com>
14218
14219         * doc/extend.texi (Attribute Syntax): Add a trailing semicolon
14220         to an example.
14221
14222 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
14223
14224         * tree.h (CONVERT_EXPR_P): Commentary typo fix.
14225
14226 2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>
14227
14228         * doc/extend.texi (__sync Builtins): Fix grammar.
14229
14230 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
14231
14232         * doc/cfg.texi (GIMPLE statement iterators): Fix typo.
14233
14234 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
14235
14236         * varasm.c (emit_local): Move definition of align.
14237
14238 2015-04-08  Julian Brown  <julian@codesourcery.com>
14239
14240         * config/nvptx/mkoffload.c (process): Support variable mapping.
14241
14242 2015-03-27  Trevor Saunders  <tbsaunde@tbsaunde.org>
14243
14244         * config/alpha/alpha.c (alpha_use_linkage): Change type of slot to
14245         alpha_links **.
14246         (alpha_write_one_linkage): Correct typo.
14247
14248 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
14249
14250         * ipa-comdats.c (propagate_comdat_group): Walk through thunks.
14251
14252 2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>
14253
14254         * doc/install.texi (bootstrap-lto-noplugin): Rewrite.
14255
14256 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
14257
14258         * tree-chkp.h (chkp_insert_retbnd_call): New.
14259         * tree-chkp.c (chkp_insert_retbnd_call): New.
14260         * ipa-split.c (insert_bndret_call_after): Remove.
14261         (split_function): Use chkp_insert_retbnd_call.
14262         * cgraphunit.c (cgraph_node::expand_thunk): Build returned
14263         bounds for instrumented functions.
14264
14265 2015-04-07  Jan Hubicka  <hubicka@ucw.cz>
14266
14267         PR ipa/65540
14268         * calls.c (initialize_argument_information): When producing tail
14269         call also turn SSA_NAMES passed by references to original PARM_DECLs
14270
14271 2015-04-07  Vladimir Makarov  <vmakarov@redhat.com>
14272
14273         PR target/65648
14274         * lra-remat.c (do_remat): Process input and non-input insn
14275         registers separately.
14276
14277 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
14278
14279         PR debug/65678
14280         * valtrack.c (debug_lowpart_subreg): New function.
14281         (dead_debug_insert_temp): Use it.
14282
14283         PR middle-end/65680
14284         * expr.c (get_inner_reference): Handle bit_offset that doesn't fit
14285         into signed HOST_WIDE_INT the same as negative bit_offset.
14286
14287 2015-04-07  Ilya Enkovich  <ilya.enkovich@intel.com>
14288
14289         * ipa-comdats.c (ipa_comdats): Visit all thunks
14290         to set proper comdat group.
14291
14292 2015-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14293
14294         PR target/65489
14295         * config/arm/arm.c (arm_legitimate_constant_p_1): Remove restriction
14296         on constants for NEON VSTRUCT modes.
14297
14298 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
14299             Iain Sandoe  <iain@codesourcery.com>
14300
14301         PR target/65351
14302         * configure: Regenerate.
14303
14304 2015-04-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
14305
14306         PR target/65614
14307         * config/rs6000/rs6000.c (struct processor_costs): Add cost field
14308         for SF->DF conversions to make FLOAT_EXTEND more expensive, so
14309         that LFD is used to load double constants instead of LFS.  Add
14310         defaults for all costs structures.  Add comments for missing
14311         initialization fields.
14312         (size32_cost): Likewise.
14313         (size64_cost): Likewise.
14314         (rs64a_cost): Likewise.
14315         (mpccore_cost): Likewise.
14316         (ppc403_cost): Likewise.
14317         (ppc405_cost): Likewise.
14318         (ppc440_cost): Likewise.
14319         (ppc476_cost): Likewise.
14320         (ppc601_cost): Likewise.
14321         (ppc603_cost): Likewise.
14322         (ppc604_cost): Likewise.
14323         (ppc604e_cost): Likewise.
14324         (ppc620_cost): Likewise.
14325         (ppc630_cost): Likewise.
14326         (ppccell_cost): Likewise.
14327         (ppc750_cost): Likewise.
14328         (ppc7450_cost): Likewise.
14329         (ppc8540_cost): Likewise.
14330         (ppce300c2c3_cost): Likewise.
14331         (ppce500mc_cost): Likewise.
14332         (ppce500mc64_cost): Likewise.
14333         (ppce5500_cost): Likewise.
14334         (ppce6500_cost): Likewise.
14335         (titan_cost): Likewise.
14336         (power4_cost): Likewise.
14337         (power6_cost): Likewise.
14338         (power7_cost): Likewise.
14339         (power8_cost): Likewise.
14340         (ppca2_cost): Likewise.
14341         (rs6000_rtx_costs): Make FLOAT_EXTEND use SFDF_convert field.
14342
14343         * config/rs6000/rs6000.md (extendsfdf2_fpr): Generate XSCPSGNDP
14344         instead of XXLOR to copy SFmode to clear out dirty bits created
14345         when SFmode denormals are generated.
14346         (mov<mode>_hardfloat, FMOVE32 case): Likewise.
14347         (truncdfsf2_fpr): Add support for ISA 2.07 XSRSP instruction.
14348
14349 2015-04-06  Evandro Menezes  <e.menezes@samsung.com>
14350
14351         * doc/invoke.texi (AARCH64/mtune): Add exynos-m1 as an option.
14352         * config/aarch64/aarch64-cores.def (exynos-m1): New core.
14353         * config/aarch64/aarch64-tune.md: Regenerate.
14354
14355 2015-04-06  Evandro Menezes  <e.menezes@samsung.com>
14356
14357         * doc/invoke.texi (ARM/mtune): Add "exynos-m1" as an option.
14358         * config/arm/arm.c (arm_issue_rate): Specify "3" for "exynosm1".
14359         * config/arm/arm-cores.def (exynos-m1): New core.
14360         * config/arm/arm-tune.md: Regenerate.
14361         * config/arm/arm-tables.opt: Add entry for "exynos-m1".
14362         * config/arm/bpabi.h: Likewise.
14363
14364 2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>
14365
14366         * ipa-cp (set_single_call_flag): Remove too
14367         restrictive assert.
14368
14369 2015-04-06  Ilya Verbin  <ilya.verbin@intel.com>
14370
14371         * config/i386/intelmic-mkoffload.c (generate_host_descr_file): Call
14372         GOMP_offload_unregister from the destructor.
14373
14374 2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>
14375
14376         * ipa-chkp.c (chkp_maybe_create_clone): Reset cdtor
14377         flags for instrumentation thunk.
14378         (chkp_produce_thunks): Likewise.
14379
14380 2015-04-05  Martin Liska  <mliska@suse.cz>
14381
14382         PR ipa/65665
14383         * ipa-icf.c (sem_function::equals_wpa): Verify that IPA CP
14384         has computed data structure.
14385         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
14386
14387 2015-04-04  Jan Hubicka  <hubicka@ucw.cz>
14388
14389         * invoke.texi (inline-unit-growth): Increase growth to 20%
14390         * params.def (PARAM_INLINE_UNIT_GROWTH): Likewise.
14391
14392 2015-04-04  Vladimir Makarov  <vmakarov@redhat.com>
14393
14394         PR target/65647
14395         * lra-int.h (LRA_MAX_REMATERIALIZATION_PASSES): New.  Add its
14396         value checking.
14397         (lra_rematerialization_iter): New.
14398         * lra.c (lra): Initialize lra_rematerialization_iter.
14399         Stop updating lra_constraint_new_regno_start after switching of
14400         inheritance and rematerialization.
14401         * lra-remat.c (lra_rematerialization_iter): New.
14402         (lra_remat): Add printing pass iteration.  Do rematerialization
14403         only first LRA_MAX_REMATERIALIZATION_PASSES iterations.
14404
14405 2015-04-04  Richard Biener  <rguenther@suse.de>
14406
14407         PR tree-optimization/64909
14408         PR tree-optimization/65660
14409         * tree-vectorizer.h (vect_get_known_peeling_cost): Adjust
14410         to take a cost vector for scalar iteration cost.
14411         (vect_get_single_scalar_iteration_cost): Likewise.
14412         * tree-vect-loop.c (vect_get_single_scalar_iteration_cost):
14413         Compute the scalar iteration cost into a cost vector.
14414         (vect_get_known_peeling_cost): Use the scalar cost vector to
14415         account for the cost of the peeled iterations.
14416         (vect_estimate_min_profitable_iters): Likewise.
14417         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
14418         Likewise.
14419
14420 2015-04-04  Alan Modra  <amodra@gmail.com>
14421
14422         PR target/65576
14423         PR target/65240
14424         * config/rs6000/predicates.md (zero_reg_mem_operand): Exclude
14425         0.0 constant unless TARGET_VSX.
14426         * config/rs6000/rs6000.md (extenddftf2_internal): Remove last
14427         alternative.
14428
14429 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
14430
14431         PR ipa/65654
14432         * ipa-inline-transform.c (inline_call): Skip sanity check to work
14433         around the ICE
14434
14435 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
14436
14437         PR ipa/65655
14438         * ipa-inline-analysis.c (edge_set_predicate): Do not redirect
14439         speculative indirect edges to avoid ordering issue.
14440
14441 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
14442
14443         PR ipa/65076
14444         * ipa-inline.c (edge_badness): Add combined size to the denominator.
14445
14446 2015-04-03  Jakub Jelinek  <jakub@redhat.com>
14447
14448         * omp-low.c (scan_omp_parallel, scan_omp_task, scan_omp_target): Set
14449         TYPE_ARTIFICIAL on the .omp_data* types.
14450
14451 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
14452
14453         * cgraphunit.c (cgraph_node::expand_thunk): Don't expand
14454         instrumentation thunks.
14455
14456 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
14457
14458         * config/i386/i386.c (ix86_expand_call): Avoid nested
14459         PARALLEL in returned call value.
14460
14461 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
14462
14463         * lto-cgraph.c (input_cgraph_1): Always link instrumented
14464         assembler name with original one.
14465
14466 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
14467
14468         * config/i386/i386.c (ix86_register_priority): Use AX_REG.
14469
14470 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
14471
14472         Revert parts of r216820.
14473         * config/i386/i386.md (movqi_internal): Correct type calculation
14474         for alternatives 3 and 5.
14475
14476 2015-04-02  Jakub Jelinek  <jakub@redhat.com>
14477
14478         PR preprocessor/61977
14479         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Don't
14480         predefine __vector/__bool/__pixel macros nor context sensitive
14481         macros for CLK_ASM.
14482         * config/spu/spu-c.c (spu_cpu_cpp_builtins): Similarly.
14483
14484 2015-04-02  John David Anglin  <danglin@gcc.gnu.org>
14485
14486         * config/pa/pa.c (pa_output_move_double): Directly handle register
14487         indexed memory operand.  Simplify handling of scaled register indexed
14488         memory operands.
14489
14490 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
14491
14492         PR driver/65444
14493         * config/i386/linux-common.h (MPX_SPEC): New.
14494         (CHKP_SPEC): Add MPX_SPEC.
14495         * doc/invoke.texi (-fcheck-pointer-boudns): Document
14496         possible issues with '-z bndplt' support in linker.
14497
14498 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
14499
14500         * config/i386/sync.md (UNSPEC_FILD_ATOMIC, UNSPEC_FIST_ATOMIC): New.
14501         (loaddi_via_fpu): Use UNSPEC_FILD_ATOMIC.
14502         (storedi_via_fpu): Use UNSPEC_FIST_ATOMIC.
14503         * reg-stack.c (get_true_reg): Change UNSPEC_LDA to UNSPEC_FILD_ATOMIC.
14504         (subst_stack_regs_pat): Change UNSPEC_STA to UNSPEC_FIST_ATOMIC.
14505
14506 2015-04-01  Uros Bizjak  <ubizjak@gmail.com>
14507
14508         * config/i386/sync.md (UNSPEC_MOVA): Remove.
14509         (atomic_load<mode>): Change operand 0 predicate to
14510         nonimmediate_operand and fix up the destination when needed.
14511         Use UNSPEC_LDA.
14512         (atomic_loaddi_fpu): Use UNSPEC_LDA.
14513         (atomic_store<mode>): Change operand 1 predicate to
14514         nonimmendate_operand and move the source to register when needed.
14515         Use UNSPEC_STA.
14516         (atomic_store<mode>_1): Use UNSPEC_STA.
14517         (atomic_storedi_fpu): Change operand 1 to nonimmediate_operand.
14518         Fix moves from memory operand.  Use UNSPEC_STA.
14519
14520 2015-04-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
14521
14522         * expmed.c (strict_volatile_bitfield_p): Check that the access will
14523         not cross a MODESIZE boundary.
14524         (store_bit_field, extract_bit_field): Added assertions in the
14525         strict volatile bitfields code path.
14526
14527 2015-04-01  Max Ostapenko  <m.ostapenko@partner.samsung.com>
14528
14529         PR target/65624
14530         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_builtin):
14531         Increase args array size by one to avoid buffer overflow.
14532
14533 2015-03-31  Jan Hubicka  <hubicka@ucw.cz>
14534
14535         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
14536         split_part.
14537         * ipa-inline.c (edge_badness): Add wrapper penalty.
14538         (sum_callers): Move up.
14539         (inline_small_functions): Set single_caller.
14540         * ipa-inline.h (inline_summary): Add single_caller.
14541         * ipa-split.c (split_function): Set split_part.
14542         (cgraph_node::create_clone): Do not shadow decl; copy split_part.
14543         * cgraph.h (cgraph_node): Add split_part.
14544
14545 2015-03-31  Uros Bizjak  <ubizjak@gmail.com>
14546
14547         PR target/58945
14548         * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
14549         Do not split operands 0 and operands 2 to halfmode.
14550         (atomic_compare_and_swap<mode>): Update for
14551         atomic_compare_and_swap<dwi>_doubleword changes.
14552
14553 2015-03-31  Jan Hubicka  <hubicka@ucw.cz>
14554
14555         * tree.c (need_assembler_name_p): Artificial types have no ODR names.
14556         * ipa-devirt.c (warn_odr): Do not try to apply ODR cache when
14557         no caching is done.
14558
14559 2015-03-31  Martin Liska  <mliska@suse.cz>
14560
14561         PR ipa/65557
14562         * ipa-icf.c (sem_function::equals_wpa): Check if IPA CP
14563         has already filled up function summary.
14564         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
14565
14566 2015-03-31  Richard Biener  <rguenther@suse.de>
14567
14568         * tree-sra.c (create_access_replacement): Drop under-/over-alignment
14569         of types.
14570
14571 2015-03-31  Dominik Vogt  <vogt@linux.vnet.ibm.com>
14572
14573         * config/s390/s390.c (s390_function_num_hotpatch_hw): Allow hotpatching
14574         nested functions.
14575         (s390_reorg): Adapt to new signature of s390_function_num_hotpatch_hw.
14576         (s390_asm_output_function_label): Adapt to new signature of
14577         s390_function_num_hotpatch_hw
14578         Optimise the code generating assembler output.
14579         Add comments to assembler file.
14580
14581 2015-03-31  Richard Biener  <rguenther@suse.de>
14582
14583         PR middle-end/65626
14584         * tree-cfgcleanup.c (fixup_noreturn_call): Only split the block
14585         of the noreturn call so it is last and cleanup_control_flow_bb
14586         can do the CFG part.
14587
14588 2015-03-31  Ilya Enkovich  <ilya.enkovich@intel.com>
14589
14590         PR target/65531
14591         * ipa-chkp.c (chkp_maybe_create_clone): Don't set
14592         same_comdat_group for external symbols.
14593         * symtab.c (symtab_node::verify_symtab_nodes): Avoid
14594         infinite same_comdat_group traversal loop.
14595
14596 2015-03-31  Jakub Jelinek  <jakub@redhat.com>
14597
14598         PR plugins/61176
14599         * Makefile.in (install-plugin): Add all gcc/*.{h,def} files
14600         automatically to $headers.
14601
14602 2015-03-30  Jakub Jelinek  <jakub@redhat.com>
14603
14604         PR ipa/65610
14605         * ipa-utils.h (inlined_polymorphic_ctor_dtor_block_p): Declare.
14606         * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p): New
14607         function.
14608         (decl_maybe_in_construction_p, noncall_stmt_may_be_vtbl_ptr_store):
14609         Use it.
14610         * ipa-prop.c (param_type_may_change_p): Likewise.
14611         * tree-ssa-live.c: Include ipa-utils.h and its dependencies.
14612         (remove_unused_scope_block_p): Add in_ctor_dtor_block
14613         argument.  Before inlining, preserve
14614         inlined_polymorphic_ctor_dtor_block_p blocks and the outermost block
14615         with FUNCTION_DECL BLOCK_ABSTRACT_ORIGIN inside of them.  Adjust
14616         recursive calls.
14617         (remove_unused_locals): Adjust remove_unused_scope_block_p caller.
14618
14619 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
14620
14621         PR ipa/65076
14622         * ipa-inline.c (edge_badness): Base denominator on callee's
14623         grwoth squared.
14624
14625 2015-03-27  Martin Jambor  <mjambor@suse.cz>
14626
14627         PR ipa/65478
14628         * params.def (PARAM_IPA_CP_RECURSION_PENALTY) : New.
14629         (PARAM_IPA_CP_SINGLE_CALL_PENALTY): Likewise.
14630         * ipa-prop.h (ipa_node_params): New flags node_within_scc and
14631         node_calling_single_call.
14632         * ipa-cp.c (count_callers): New function.
14633         (set_single_call_flag): Likewise.
14634         (initialize_node_lattices): Count callers and set single_flag_call if
14635         necessary.
14636         (incorporate_penalties): New function.
14637         (good_cloning_opportunity_p): Use it, dump new flags.
14638         (propagate_constants_topo): Set node_within_scc flag if appropriate.
14639         * doc/invoke.texi (ipa-cp-recursion-penalty,
14640         ipa-cp-single-call-pentalty): Document.
14641
14642 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
14643
14644         PR ipa/65588
14645         * symtab.c (symtab_node::get_partitioning_class): Register vars
14646         are duplicated.
14647         * varpool.c (symbol_table::output_variables) Do not assemble unefined
14648         decls for non-symbols.
14649
14650 2015-03-27  H.J. Lu  <hongjiu.lu@intel.com>
14651
14652         PR target/65248
14653         * output.h (default_binds_local_p_2): New.
14654         * varasm.c (default_binds_local_p_2): Renamed to ...
14655         (default_binds_local_p_3): This.  Don't return true on protected
14656         data symbol if protected data may be external.
14657         (default_binds_local_p): Use default_binds_local_p_3.
14658         (default_binds_local_p_1): Likewise.
14659         (default_binds_local_p_2): New.
14660         * config/i386/i386.c (TARGET_BINDS_LOCAL_P): Set to
14661         default_binds_local_p_2 if TARGET_MACHO is undefined.
14662
14663 2015-03-27  Jakub Jelinek  <jakub@redhat.com>
14664
14665         PR target/65593
14666         * config/i386/i386.c (legitimize_pic_address): If base
14667         is SYMBOL_REF or LABEL_REF using %rip addressing, force
14668         it to reg to avoid PLUS of SYMBOL_REF/LABEL_REF and register.
14669
14670 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
14671
14672         PR target/65531
14673         * symtab.c (symtab_node::verify_symtab_nodes): Fix verification of
14674         comdat groups.
14675
14676 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
14677
14678         PR ipa/65600
14679         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Fix the case
14680         of optimized out indirect call.
14681         (redirect_to_unreachable): Always build symbol table node for
14682         BUILT_IN_UNREACHABLE
14683
14684 2015-03-27  Vladimir Makarov  <vmakarov@redhat.com>
14685
14686         PR target/65407
14687         * ira-costs.c (record_reg_classes): Process all constraint string
14688         containing 0-9.
14689
14690 2015-03-27  Bernd Schmidt  <bernds@codesourcery.com>
14691
14692         * config/c6x/c6x.md (movmisalign<mode>): Use MEM_P, not
14693         memory_operand.
14694
14695         PR target/65052
14696         * config/c6x/constraints.md (S3): New constraint.
14697         * config/c6x/c6x.md (real_jump): Use it.
14698
14699 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
14700
14701         PR middle-end/65595
14702         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Only
14703         do redirection if the call is not optimized out.
14704
14705 2015-03-27  Ilya Enkovich  <ilya.enkovich@intel.com>
14706
14707         PR target/65495
14708         * c-family/c.opt (fcheck-pointer-bounds): List supported languages.
14709         (fchkp-check-incomplete-type): Add LTO.
14710         (fchkp-zero-input-bounds-for-main): Likewise.
14711         (fchkp-first-field-has-own-bounds): Likewise.
14712         (fchkp-narrow-bounds): Likewise.
14713         (fchkp-narrow-to-innermost-array): Likewise.
14714         (fchkp-use-static-bounds): Likewise.
14715         (fchkp-use-static-const-bounds): Likewise.
14716         (fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
14717
14718 2015-03-27  Marek Polacek  <polacek@redhat.com>
14719
14720         * gimple-iterator.h (gsi_prev_nondebug): Fix typo.
14721
14722 2015-03-27  Marek Polacek  <polacek@redhat.com>
14723
14724         PR sanitizer/65583
14725         * ubsan.c (ubsan_create_edge): New function.
14726         (instrument_bool_enum_load): Call it.
14727         (instrument_nonnull_arg): Likewise.
14728         (instrument_nonnull_return): Likewise.
14729         (instrument_object_size): Likewise.
14730
14731 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
14732
14733         * lto-streamer.h (class lto_location_cache): Turn loc_cache into
14734         auto_vec.
14735
14736 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
14737
14738         PR lto/65536
14739         * lto-streamer.h (class lto_location_cache): New.
14740         (struct data_in): Add location_cache.
14741         (lto_input_location): Update prototype.
14742         (stream_input_location_now): New.
14743         * streamer-hooks.h (struct streamer_hooks): Make input_location to take
14744         pointer to location.
14745         (stream_input_location): Update.
14746         * ipa-devirt.c: Include streamer-hooks.h and lto-streamer.h
14747         (warn_odr): Apply location cache before warning.
14748         (lto_input_location): Update prototype.
14749         * gimple-streamer-in.c (input_phi, input_gimple_stmt):
14750         Use stream_input_location_now.
14751         * lto-streamer-in.c (lto_location_cache::current_cache): New static
14752         variable.
14753         (lto_location_cache::cmp_loc): New function.
14754         (lto_location_cache::apply_location_cache): New function.
14755         (lto_location_cache::accept_location_cache): New function.
14756         (lto_location_cache::revert_location_cache): New function.
14757         (lto_location_cache::input_location): New function.
14758         (lto_input_location): Do location caching.
14759         (stream_input_location_now): New function.
14760         (input_eh_region, input_struct_function_base): Use
14761         stream_input_location_now.
14762         (lto_data_in_create): use new.
14763         (lto_data_in_delete): Use delete.
14764         * tree-streamer-in.c (unpack_ts_block_value_fields,
14765         unpack_ts_omp_clause_value_fields, streamer_read_tree_bitfields,
14766         lto_input_ts_exp_tree_pointers): Update for cached location api.
14767
14768 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
14769
14770         PR ipa/65076
14771         * passes.def: Add pass_nothrow.
14772         * ipa-pure-const.c: (pass_data_nothrow): New.
14773         (pass_nothrow): New.
14774         (pass_nothrow::execute): New.
14775         (make_pass_nothrow): New.
14776         * tree-pass.h (make_pass_nothrow): Declare.
14777
14778 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
14779
14780         * ipa-inline-analysis.c (redirect_to_unreachable): Be prepared for
14781         edge to change by speculation resolution or redirection.
14782         (edge_set_predicate): Likewise.
14783         (inline_summary_t::duplicate): Likewise.
14784         (remap_edge_summaries): Likewise.
14785
14786 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
14787
14788         * ipa-inline.c (check_maybe_up, check_maybe_down, check_match):
14789         New macros.
14790         (can_inline_edge_p): Relax option matching for always inline functions.
14791
14792 2015-03-26  Uros Bizjak  <ubizjak@gmail.com>
14793
14794         PR target/65561
14795         * config/i386/sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm):
14796         Check operand 4 and operand 0 for equality.
14797         (avx512f_vextract<shuffletype>32x4_1_maskm):
14798         Check operand 6 and operand 0 for equality.
14799         (vec_extract_lo_<mode>_maskm): Check operand 2 and operand 0
14800         for equality.
14801         (vec_extract_hi_<mode>_maskm): Ditto.
14802
14803 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
14804
14805         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Do not bring
14806         dead calls back to live.
14807         (cgraph_edge::verify_count_and_frequency): Move cgraph/cfg frequency
14808         cross check to ...
14809         (cgraph_node::verify_node): ... here; verify only callee edges,
14810         not caller.
14811         * cif-code.def (CILK_SPAWN): New code.
14812
14813 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
14814
14815         * ipa-inline-analysis.c (redirect_to_unreachable): New function.
14816         (edge_set_predicate): Use it to mark unreachable edges.
14817         (inline_summary_t::duplicate): Remove unnecesary code.
14818         (remap_edge_summaries): Likewise.
14819         (dump_inline_summary): Report contains_cilk_spawn.
14820         (compute_inline_parameters): Compute contains_cilk_spawn.
14821         (inline_read_section, inline_write_summary): Stream
14822         contains_cilk_spawn.
14823         * ipa-inline.c (can_inline_edge_p): Do not touch
14824         DECL_STRUCT_FUNCTION that may not be available;
14825         use CIF_CILK_SPAWN for cilk; fix optimization attribute checks;
14826         remove check for callee_fun->can_throw_non_call_exceptions and
14827         replace it by optimization attribute check; check for flag_exceptions.
14828         * ipa-inline-transform.c (inline_call): Maintain
14829         DECL_FUNCTION_PERSONALITY
14830         * ipa-inline.h (inline_summary): Add contains_cilk_spawn.
14831
14832 2015-03-26  Jakub Jelinek  <jakub@redhat.com>
14833
14834         PR tree-optimization/65551
14835         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use
14836         TYPE_PRECISION only for INTEGRAL_TYPE_P types.
14837
14838 2015-03-26  Richard Biener  <rguenther@suse.de>
14839
14840         PR middle-end/65555
14841         * tree-cfg.c (verify_gimple_call): Do not require a call to
14842         have no LHS if it wasn't recognized as control altering yet.
14843
14844 2015-03-26  Jakub Jelinek  <jakub@redhat.com>
14845
14846         PR tree-optimization/64715
14847         * passes.def: Add another instance of pass_object_sizes before ccp1.
14848         * tree-object-size.c (pass_object_sizes::execute): In
14849         first_pass_instance, only handle __bos (, 1) and __bos (, 3)
14850         calls, and keep the call in the IL, as {MIN,MAX}_EXPR of the
14851         __bos result and the computed constant.  Remove redundant
14852         checks, obsoleted by gimple_call_builtin_p test.
14853
14854         * var-tracking.c (variable_tracking_main_1): Don't track
14855         variables for targetm.no_register_allocation targets.
14856
14857 2015-03-26  Oleg Endo  <olegendo@gcc.gnu.org>
14858
14859         * config/sh/t-linux (DEFAULT_ENDIAN, MULTILIB_EXCEPTIONS): Remove.
14860         * config/sh/t-sh (MULTILIB_EXCEPTIONS): Handle default endian.
14861
14862 2015-03-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
14863
14864         PR target/65569
14865         * config/rs6000/rs6000.md (extenddftf2_fprs): On VSX systems use
14866         XXLXOR to create 0.0.  On pre-VSX systems make sure the constant
14867         0.0 is correctly setup.
14868         (extenddftf2_internal): Likewise.
14869
14870 2015-03-25  Sebastian Pop  <s.pop@samsung.com>
14871
14872         PR tree-optimization/65177
14873         * tree-ssa-threadupdate.c (verify_seme): Renamed verify_jump_thread.
14874         (bb_in_bbs): New.
14875         (duplicate_seme_region): Renamed duplicate_thread_path.  Redirect all
14876         edges not adjacent on the path to the original code.
14877
14878 2015-03-25  Uros Bizjak  <ubizjak@gmail.com>
14879
14880         PR bootstrap/65537
14881         * doc/install.texi (Building a native compiler): Document new
14882         bootstrap-lto-noplugin configuration.  Mention that bootstrap-lto
14883         configuration assumes that the host supports the linker plugin.
14884
14885 2015-03-25  Ilya Enkovich  <ilya.enkovich@intel.com>
14886
14887         PR target/65508
14888         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Set static
14889         chain for generated call.
14890
14891 2015-03-25  Richard Biener  <rguenther@suse.de>
14892
14893         * passes.c (pass_manager::execute_early_local_passes): Guard
14894         execution of pass_chkp_instrumentation_passes with
14895         flag_check_pointer_bounds.
14896         (pass_chkp_instrumentation_passes::gate): Likewise.
14897
14898 2015-03-25  Martin Liska  <mliska@suse.cz>
14899
14900         PR tree-optimization/65538
14901         * symbol-summary.h (function_summary::~function_summary):
14902         Relese memory for allocated summaries.
14903         (function_summary::release): New function.
14904
14905 2015-03-25  Jakub Jelinek  <jakub@redhat.com>
14906
14907         PR lto/65515
14908         * lto-streamer-out.c (DFS::worklist): New struct.
14909         (DFS::worklist_vec): New data member.
14910         (DFS::next_dfs_num): Remove.
14911         (DFS::DFS): Rewritten using worklist instead of recursion,
14912         using most of code from DFS::DFS_write_tree.
14913         (DFS::DFS_write_tree_body): Remove SINGLE_P argument, don't
14914         pass it to DFS_write_tree calls.
14915         (DFS::DFS_write_tree): Remove SINGLE_P argument, after
14916         quick initial checks push it into worklist_vec and return.
14917
14918 2015-03-25  Richard Biener  <rguenther@suse.de>
14919
14920         PR middle-end/65519
14921         * genmatch.c (expr::gen_transform): Re-write to avoid
14922         using gimple_build.
14923
14924 2015-03-25  Bin Cheng  <bin.cheng@arm.com>
14925
14926         * doc/sourcebuild.texi (arm_tune_string_ops_prefer_neon): New.
14927
14928 2015-03-25  Bin Cheng  <bin.cheng@arm.com>
14929
14930         * config/arm/arm.opt (print_tune_info): New option.
14931         * config/arm/arm.c (arm_print_tune_info): New function.
14932         (arm_file_start): Call arm_print_tune_info.
14933         * config/arm/arm-protos.h (struct tune_params): Add comment.
14934         * doc/invoke.texi (@item -mprint-tune-info): New item.
14935         (-mtune): mention it in ARM Option Summary.
14936
14937 2015-03-25  DJ Delorie  <dj@redhat.com>
14938
14939         * config/rl78/rl78.c (rl78_print_operand_1): Move 'p' test to
14940         correct clause.
14941
14942 2015-03-24  Jan Hubicka  <hubicka@ucw.cz>
14943             Martin Liska  <mliska@suse.cz>
14944
14945         * ipa-icf-gimple.h (return_with_result): Add missing colon to dump.
14946         * ipa-icf.c (sem_function::get_hash): Hash new declaration properties.
14947         (sem_item::add_type): New function.
14948         (sem_function::hash_stmt): Add TREE_TYPE of gimple_op.
14949         (sem_function::compare_polymorphic_p): Do not consider indirect calls.
14950         (sem_item_optimizer::update_hash_by_addr_refs): Add ODR type to hash.
14951         (sem_function::equals_wpa): Fix typo.
14952         * ipa-icf.h (sem_item::add_type): New function.
14953         (symbol_compare_hashmap_traits): Replace hashing of pointer with symbol
14954         order.
14955
14956 2015-03-24  Jakub Jelinek  <jakub@redhat.com>
14957
14958         PR tree-optimization/65533
14959         * tree-vect-slp.c (vect_build_slp_tree): Before re-trying
14960         with swapped operands, call vect_free_slp_tree on
14961         SLP_TREE_CHILDREN of child and truncate the SLP_TREE_CHILDREN
14962         vector.
14963
14964 2015-03-24  Richard Biener  <rguenther@suse.de>
14965
14966         PR middle-end/65517
14967         * tree-cfg.c (remove_edge_and_dominated_blocks): Mark loops
14968         for fixup if necessary.
14969
14970 2015-03-23  Sandra Loosemore  <sandra@codesourcery.com>
14971
14972         * doc/extend.texi (Function Attributes): Add @cindex entries
14973         for all attributes and regularize their format.  Delete text
14974         about long-obsolete 68HC11 and 68HC12 targets.  Move misplaced
14975         information about "eightbit_data", "tiny_data", and "model"
14976         variable attributes to the Variable Attributes section.  Fix
14977         some obvious typos and copy-editing issues.
14978         (Variable Attributes, Type Attributes): Likewise add/fix
14979         @cindex entries for all attributes.
14980
14981 2015-03-23  Jakub Jelinek  <jakub@redhat.com>
14982
14983         PR target/65523
14984         * tree-chkp.c (chkp_build_returned_bound): Ignore
14985         ERF_RETURNS_ARG calls if they have fewer than needed arguments.
14986
14987 2015-03-23  Oleg Endo  <olegendo@gcc.gnu.org>
14988
14989         PR target/65505
14990         * config/sh/predicates.md (simple_mem_operand,
14991         displacement_mem_operand): Add test for reg.
14992         (short_displacement_mem_operand): Test for displacement_mem_operand
14993         before invoking sh_disp_addr_displacement.
14994         * config/sh/constraints.md (Sdd, Sra): Simplify.
14995         * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1):
14996         Remove redundant displacement_mem_operand tests.
14997
14998 2015-03-23  Georg-Johann Lay  <avr@gjlay.de>
14999
15000         PR target/65296
15001         * config/avr/driver-avr.c (avr_devicespecs_file): Allow to specify
15002         the same -mmcu=MCU more than once.
15003
15004 2015-03-23  Jakub Jelinek  <jakub@redhat.com>
15005
15006         PR bootstrap/65522
15007         * ipa-devirt.c: Remove duplicate demangle.h include.
15008
15009         PR target/65504
15010         * config/i386/i386.c (ix86_copy_addr_to_reg): Set REG_POINTER
15011         on the pseudo.
15012         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Set
15013         REG_POINTER on *destptr after adjusting it for prologue size.
15014
15015         PR ipa/65521
15016         * ipa-icf.c (sem_item::update_hash_by_addr_refs): Hash
15017         ultimate_alias_target ()->order ints instead of
15018         ultimate_alias_target () pointers.
15019
15020 2015-03-23  Richard Biener  <rguenther@suse.de>
15021
15022         PR tree-optimization/65518
15023         * tree-vect-stmts.c (vectorizable_load): Reject single-element
15024         interleaving cases we generate absymal code for.
15025
15026 2015-03-23  Richard Biener  <rguenther@suse.de>
15027
15028         PR tree-optimization/65494
15029         * tree-vect-slp.c (vect_build_slp_tree): Do not (re-)allocate
15030         matches here.
15031         (vect_analyze_slp_instance): But do that here, always and once.
15032
15033 2015-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15034
15035         * expmed.c (synth_mult): Fix comment about multiplying by T-1 and
15036         adding T or multiplying by T+1 and subracting T.
15037
15038 2015-03-22  Jeff Law  <law@redhat.com>
15039
15040         PR rtl-optimization/64317
15041         * Makefile.in (OBJS): Add gcse-common.c
15042         * gcse.c: Include gcse-common.h
15043         (struct modify_pair_s): Move structure definition to gcse-common.h
15044         (compute_transp): Move function to gcse-common.c.
15045         (canon_list_insert): Similarly.
15046         (record_last_mem_set_info): Break out some code and put it into
15047         gcse-common.c.  Call into the new common code.
15048         (compute_local_properties): Pass additional arguments to compute_transp.
15049         * postreload-gcse.c: Include gcse-common.h and df.h
15050         (modify_mem_list_set, blocks_with_calls): New variables.
15051         (modify_mem_list, canon_modify_mem_list, transp): Likewise.
15052         (get_bb_avail_insn): Pass in the expression index too.
15053         (alloc_mem): Allocate memory for the new bitmaps and lists.
15054         (free_mem): Free memory for the new bitmaps and lists.
15055         (insert_expr_in_table): Record a bitmap index for each entry we
15056         add to the table.
15057         (record_last_mem_set_info): Call into common code in gcse-common.c.
15058         (get_bb_avail_insn): If no available insn was found in the requested
15059         BB.  If BB has a single predecessor, see if the expression is
15060         transparent in BB and available in that single predecessor.
15061         (compute_expr_transp): New wrapper for compute_transp.
15062         (eliminate_partially_redundant_load): Pass expression's bitmap_index
15063         to get_bb_avail_insn.  Compute next_pred_bb_end a bit later.
15064         (gcse_after_reload_main): If there are elements in the hash table,
15065         then compute transparency for all the elements in the hash table.
15066         * gcse-common.h: New file.
15067         * gcse-common.c: New file.
15068
15069 2015-03-22  Sandra Loosemore  <sandra@codesourcery.com>
15070
15071         * doc/cpp.texi (Search Path): Hyphenate "command-line" when used
15072         as an adjective.
15073         (System Headers): Likewise.
15074         (Ifdef): Likewise.
15075         (Traditional macros): Likewise.
15076         (Invocation): Likewise.
15077         (Option Index): Likewise.
15078         * doc/cppopts.texi (-M): Likewise.
15079         (-finput-charset): Likewise.
15080         (--help): Likewise.
15081         * doc.invoke.texi (AVR Options): Likewise.
15082         (V850 Options): Likewise.
15083
15084 2015-03-22  Jan Hubicka  <hubicka@ucw.cz>
15085
15086         PR ipa/65475
15087         * ipa-devirt.c: Include demangle.h
15088         (odr_type_d): Add field rtti_broken.
15089         (odr_subtypes_equivalent_p): Do not require name to match.
15090         (compare_virtual_tables): Fix typo; if type already has ODR violation,
15091         bypass the tests; be ready for function referneces in vtables that are
15092         not DECL_VIRTUAL; make warnings to be OPT_Wodr.
15093         (warn_odr): Give up for nameless types.
15094         (warn_types_mismatch): Report mismatch in mangled names;
15095         report mismatch in anonymous namespaces; look into component types to
15096         give useful error; report when mismatch is dragged in from other ODR
15097         type.
15098         (odr_types_equivalent_p): Match types for being polymorphic; avoid
15099         duplicated diagnostics.
15100         (add_type_duplicate): Reorder checks so more informative ones come
15101         first; fix typo; do not output "the extra base is defined here" when
15102         we did not warn.
15103         (BINFO_N_BASE_BINFOS): Relax sanity check.
15104
15105 2015-03-22  Martin Liska  <mliska@suse.cz>
15106             Jakub Jelinek  <jakub@redhat.com>
15107
15108         * config/i386/i386.c (def_builtin): Set deferred_isa_values for
15109         masks that can potentially include a builtin.
15110         (ix86_add_new_builtins): Introduce fast filter for isa values
15111         that cannot trigger builtin inclusion.
15112
15113 2015-03-22  Martin Liska  <mliska@suse.cz>
15114
15115         * ipa-icf.c (sem_item::update_hash_by_addr_refs): New function.
15116         (sem_item::update_hash_by_local_refs): Likewise.
15117         (sem_variable::get_hash): Empty line is fixed.
15118         (sem_item_optimizer::execute): Include adding of hash references.
15119         (sem_item_optimizer::update_hash_by_addr_refs): New function.
15120         (sem_item_optimizer::build_hash_based_classes): Use local hash.
15121         * ipa-icf.h (sem_item::update_hash_by_addr_refs): New function.
15122         (sem_item::update_hash_by_local_refs): Likewise.
15123
15124 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
15125
15126         PR ipa/65502
15127         * ipa-comdats.c (enqueue_references): Walk through thunks.
15128         (ipa_comdats): Likewise.
15129         (set_comdat_group_1): New function.
15130
15131 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
15132
15133         PR ipa/65475
15134         * ipa-devirt.c (add_type_duplicate): Prevail polymorphic type over
15135         non-polymorphic
15136
15137 2015-03-22  Dave Korn  <dave.korn.cygwin@gmail.com>
15138             Gerald Pfeifer  <gerald@pfeifer.com>
15139
15140         * doc/contrib.texi (Contributors): Update entry for Danny Smith.
15141
15142 2015-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
15143             Sandra Loosemore  <sandra@codesourcery.com>
15144
15145         * config/nios2/nios2-protos.h (nios2_adjust_call_address): Adjust
15146         function parameter declaration.
15147         * config/nios2/nios2.md (call,call_value,sibcall,sibcall_value):
15148         Update arguments to nios2_adjust_call_address().
15149         (sibcall_internal): Rename from *sibcall.
15150         (sibcall_value_internal): Rename from *sibcall_value.
15151         * config/nios2/nios2.c (nios2_emit_add_constant): New function.
15152         (nios2_large_got_address): Add target temp reg parameter.
15153         (nios2_got_address): Adjust call to nios2_large_got_address, add
15154         force_reg around it.
15155         (nios2_load_pic_address): Add target temp reg parameter, replace call
15156         to nios2_got_address with corresponding code.
15157         (nios2_legitimize_constant_address): Update call to
15158         nios2_load_pic_address.
15159         (nios2_adjust_call_address): Add temp reg parameter, update PIC case
15160         to use temp reg for PIC loading purposes.
15161         (nios2_asm_output_mi_thunk): Implement TARGET_ASM_OUTPUT_MI_THUNK.
15162         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
15163         (TARGET_ASM_OUTPUT_MI_THUNK): Likewise.
15164
15165 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
15166
15167         * doc/invoke.texi (-fno-diagnostics-show-caret): Fix
15168         usage of "the @option{...}".
15169         (-Wopenmp-simd): Likewise.
15170         (-fsanitize-recover): Likewise.
15171         (-fsanitize-undefined-trap-on-error): Likewise.
15172         (-flto): Likewise.
15173         (tracer-dynamic-coverage-feedback): Likewise.
15174         (reorder-block-duplicate-feedback): Likewise.
15175         (loop-unroll-jam-size): Likewise.
15176         (-B): Likewise.
15177         (-I-): Likewise.
15178         (-mabs=legacy): Likewise.
15179         (-mupper-regs-df): Likewise.
15180         (-mupper-regs-sf): Likewise.
15181         (-mpointers-to-nested-functions): Likewise.
15182
15183 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
15184
15185         * doc/extend.texi (Cilk Plus Builtins): Add markup.
15186
15187 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
15188
15189         * doc/invoke.texi (-fcheck-pointer-bounds): Copy-edit, add
15190         additional index entries and cross-references.
15191         (-fchkp-check-incomplete-type): Likewise.
15192         (-fchkp-first-field-has-own-bounds): Likewise.
15193         (-fchkp-narrow-to-innermost-array): Likewise.
15194         (-fchkp-use-fast-string-functions): Likewise.
15195         (-fchkp-use-nochk-string-functions): Likewise.
15196         (-fchkp-use-static-const-bounds): Likewise.
15197         (-fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
15198         (-fchkp-instrument-marked-only): Likewise.
15199         (-fchkp-use-wrappers): Likewise.
15200         (-static-libmpx): Likewise.
15201         (-static-libmpxwrappers): Likewise.
15202         * doc/extend.texi (bnd_legacy): Likewise.
15203         (bnd_instrument): Likewise.
15204         (bnd_variable_size): Likewise.
15205         (Pointer Bounds Checker builtins): Likewise.
15206
15207 2015-03-21  Tom de Vries  <tom@codesourcery.com>
15208
15209         PR tree-optimization/65458
15210         * cgraph.c (cgraph_node::dump): Handle parallelized_function field.
15211         * cgraph.h (cgraph_node): Add parallelized_function field.
15212         * lto-cgraph.c (lto_output_node): Write parallelized_function field.
15213         (input_overwrite_node): Read parallelized_function field.
15214         * omp-low.c (expand_omp_taskreg, finalize_task_copyfn): Set
15215         parallelized_function on cgraph_node for child_fn.
15216         * tree-parloops.c: Add include of plugin-api.h, ipa-ref.h and cgraph.h.
15217         Remove include of gt-tree-parloops.h.
15218         (parallelized_functions): Remove static variable.
15219         (parallelized_function_p): Rewrite using parallelized_function field of
15220         cgraph_node.
15221         (create_loop_fn): Remove adding to parallelized_functions.
15222         * Makefile.in (GTFILES): Remove tree-parloops.c
15223
15224 2015-03-20  Vladimir Makarov  <vmakarov@redhat.com>
15225
15226         PR rtl-optimization/64366
15227         * lra.c (lra_update_insn_regno_info): Consider regs in
15228         CALL_INSN_FUNCTION_USAGE memory.
15229
15230 2015-03-20  Richard Biener  <rguenther@suse.de>
15231
15232         PR middle-end/64715
15233         * tree-chrec.c (chrec_fold_poly_cst): Use useless_type_conversion_p
15234         for type comparison and gcc_checking_assert.
15235         (chrec_fold_plus_poly_poly): Likewise.
15236         (chrec_fold_multiply_poly_poly): Likewise.
15237         (chrec_convert_1): Likewise.
15238         * gimplify.c (gimplify_expr): Remove premature folding of
15239         &X + CST to &MEM[&X, CST].
15240
15241 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
15242
15243         * ipa-inline.c (can_inline_edge_p): Short circuit if inline_failed
15244         already is final.
15245         (ipa_inline): Recompute inline_failed codes.
15246         * cif-code.def (FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
15247         USES_COMDAT_LOCAL, ATTRIBUTE_MISMATCH, UNREACHABLE): Declare as
15248         CIF_FINAL_ERROR.
15249
15250 2015-03-20  Uros Bizjak  <ubizjak@gmail.com>
15251
15252         PR rtl-optimization/60851
15253         * recog.c (constrain_operands): Accept a pseudo register before reload
15254         for LRA enabled targets.
15255
15256 2015-03-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
15257
15258         PR target/65240
15259         * config/rs6000/predicates.md (easy_fp_constant): Remove special
15260         -ffast-math handling that kept non-0 constants live in the RTL
15261         until reload.  Remove logic testing the number of instructions it
15262         took to create a constant in a GPR that was never used, due to a
15263         test for soft-float earlier.
15264         (memory_fp_constant): Delete, no longer used.
15265
15266         * config/rs6000/rs6000.md (mov<MODE>_hardfloat): Remove
15267         alternatives for loading non-0 constants into GPRs for hard
15268         floating point that is no longer needed due to changes in
15269         easy_fp_constant.  Add support for loading 0.0 into GPRs.
15270         (mov<mode>_hardfloat32): Likewise.
15271         (mov<mode>_hardfloat64): Likewise.
15272         (mov<mode>_64bit_dm): Likewise.
15273         (movtd_64bit_nodm): Likewise.
15274         (pre-reload move FP constant define_split): Delete define_split,
15275         since it is no longer used.
15276         (extenddftf2_internal): Remove GHF constraints that are not valid
15277         for extenddftf2.
15278
15279 2015-03-19  Vladimir Makarov  <vmakarov@redhat.com>
15280
15281         PR rtl-optimization/63491
15282         * lra-constraints.c (check_and_process_move): Use src instead of
15283         sreg.  Remove some dead code.
15284
15285 2015-03-19  Jan Hubicka  <hubicka@ucw.cz>
15286
15287         PR ipa/65380
15288         * ipa-icf.c (sem_function::merge): Do not merge DECL_EXTERNAL symbols.
15289         (sem_variable::merge): Likewise.
15290
15291 2015-03-19  Martin Liska  <mliska@suse.cz>
15292
15293         PR ipa/65465
15294         * cgraphunit.c (cgraph_node::create_wrapper): Correctly reset
15295         all fields of cgraph_thunk_info.
15296
15297 2015-03-19  Ilya Enkovich  <ilya.enkovich@intel.com>
15298
15299         * ipa-chkp.c (chkp_maybe_create_clone): Don't try to
15300         clone instrumented thunks.
15301
15302 2015-03-19  Richard Biener  <rguenther@suse.de>
15303
15304         Revert
15305         2015-03-10  Richard Biener  <rguenther@suse.de>
15306
15307         PR middle-end/63155
15308         * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
15309         * tree-ssa-coalesce.c: Include timevar.h.
15310         (attempt_coalesce): Handle graph being NULL.
15311         (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
15312         Split out abnormal coalescing to ...
15313         (perform_abnormal_coalescing): ... this function.
15314         (coalesce_ssa_name): Perform abnormal coalescing without computing
15315         live/conflict.
15316         (verify_ssa_coalescing_worker): New function.
15317         (verify_ssa_coalescing): Likewise.
15318
15319 2015-03-19  Bernd Edlinger  <bernd.edlinger@hotmail.de>
15320             Jakub Jelinek  <jakub@redhat.com>
15321
15322         PR sanitizer/65400
15323         * tsan.c (instrument_gimple): Clear tail call flag on
15324         calls.
15325
15326 2015-03-19  Jakub Jelinek  <jakub@redhat.com>
15327
15328         PR sanitizer/65400
15329         * ipa-split.c (find_return_bb): Allow TSAN_FUNC_EXIT internal
15330         call in the return bb.
15331         (find_split_points): Add RETURN_BB argument, don't call
15332         find_return_bb.
15333         (split_function): Likewise.  Add ADD_TSAN_FUNC_EXIT argument,
15334         if true append TSAN_FUNC_EXIT internal call after the call to
15335         the split off function.
15336         (execute_split_functions): Call find_return_bb here.
15337         Don't optimize if TSAN_FUNC_EXIT is found in unexpected places.
15338         Adjust find_split_points and split_function calls.
15339
15340 2015-03-18  DJ Delorie  <dj@redhat.com>
15341
15342         * config/rl78/rl78-virt.md (andqi3_virt): Allow far operands.
15343         (iorqi3_virt): Likewise.
15344
15345 2015-03-18  Tom de Vries  <tom@codesourcery.com>
15346
15347         * tree-parloops.c (parallelize_loops): Make static.
15348         * tree-parloops.h (parallelize_loops): Remove extern declaration.
15349
15350 2015-03-18  Andrew Stubbs  <ams@codesourcery.com>
15351
15352         PR middle-end/64491
15353         Revert:
15354         2014-11-20  Andrew Stubbs  <ams@codesourcery.com>
15355
15356         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Warn if a loop
15357         condition would be removed due to undefined behaviour.
15358
15359 2015-03-18  Martin Liska  <mliska@suse.cz>
15360
15361         PR ipa/65432
15362         * cgraph.c (cgraph_node::get_create): Remove unnecessary
15363         xstrdup_for_dump wrapper.
15364         * ipa-icf.c (sem_item::dump): Use symtab_node::name instead of
15365         sem_item::name.
15366         (sem_function::equals): Wrap symtab_node::name and symtab_node::asm_name
15367         with xstrdup_for_dump.
15368         (sem_variable::equals): Likewise.
15369         (sem_item_optimizer::read_section): Use symtab_node::name instead of
15370         sem_item::name.
15371         (sem_item_optimizer::parse_funcs_and_vars): Likewise.
15372         (sem_item_optimizer::merge_classes): Wrap symtab_node::name and
15373         symtab_node::asm_name with xstrdup_for_dump.
15374         (congruence_class::dump): Use symtab_node::name instead of
15375         sem_item::name.
15376         * ipa-icf.h (symtab_node::name): Remove.
15377         (symtab_node::asm_name): Likewise.
15378
15379 2015-03-18  Jakub Jelinek  <jakub@redhat.com>
15380
15381         PR tree-optimization/65450
15382         * tree-vect-data-refs.c (vect_duplicate_ssa_name_ptr_info): New
15383         function.
15384         (vect_create_addr_base_for_vector_ref, vect_create_data_ref_ptr): Use
15385         it instead of duplicate_ssa_name_ptr_info.
15386
15387         PR target/65222
15388         * doc/invoke.texi: Add knl as x86 -march=/-mtune= CPU type.
15389
15390 2015-03-18  Richard Biener  <rguenther@suse.de>
15391
15392         * tree-data-ref.h (struct access_matrix): Remove.
15393         (AM_LOOP_NEST, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
15394         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
15395         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT): Likewise.
15396         (am_vector_index_for_loop): Likewise.
15397         (struct data_reference): Remove access_matrix member.
15398         (DR_ACCESS_MATRIX): Remove.
15399         (lambda_vector_new): Add comment.
15400         (lambda_matrix_new): Use XOBNEWVEC.
15401
15402 2015-03-18  Richard Biener  <rguenther@suse.de>
15403
15404         * tree-ssa-loop-ch.c (pass_data_ch): Remove TODO_cleanup_cfg.
15405         (pass_ch::execute): Cleanup the CFG only if we did sth.
15406         * tree-vect-generic.c (pass_data_lower_vector): Remove TODO_cleanup_cfg.
15407
15408 2015-03-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15409
15410         * expmed.c (synth_mult): Use std::swap instead of manually
15411         swapping algorithms.
15412
15413 2015-03-18  Jakub Jelinek  <jakub@redhat.com>
15414
15415         PR target/65078
15416         * config/i386/sse.md (movsi/movdi -> vec_extract_*_0 splitter): New.
15417
15418 2015-03-16  Georg-Johann Lay  <avr@gjlay.de>
15419
15420         PR target/65296
15421         * config/avr/avr.opt (-nodevicelib): New option.
15422         * doc/invoke.texi (AVR Options): Document it.
15423         * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC) [avr1]: Don't link
15424         libgcc.a, libc.a, libm.a.
15425         * config/avr/specs.h: Same.
15426         * config/avr/gen-avr-mmcu-specs.c (print_mcu): Don't print specs
15427         which don't (directly) depend on the device.  Print more help.
15428         (*avrlibc_devicelib) [-nodevicelib]: Don't link libdev.a.
15429         (*cpp): Don't define __AVR_DEV_LIB_NAME__.
15430         * config/avr/driver-avr.c: Remove -nodevicelib from option list in
15431         case of an error.
15432         (avr_devicespecs_file): Use suffix "%s" instead of absolute path
15433         for specs file name.
15434         * config/avr/avr-arch.h (avr_mcu_t) [.library_name]: Remove.
15435         * config/avr/avr-mcus.def: Adjust initializers and comments.
15436
15437 2015-03-16  Jan Hubicka  <hubicka@ucw.cz>
15438
15439         * tree-sra.c (ipa_sra_preliminary_function_checks): Use
15440         DECL_ONE_ONLY to check if decl is one only.
15441         * ipa-split.c (consider_split): Limit splitt of one only functions.
15442
15443 2015-03-16  Jakub Jelinek  <jakub@redhat.com>
15444
15445         PR tree-optimization/65427
15446         * tree-vect-generic.c (do_cond, expand_vector_scalar_condition): New
15447         functions.
15448         (expand_vector_operations_1): Handle BLKmode vector COND_EXPR.
15449
15450 2015-03-16  Marek Polacek  <polacek@redhat.com>
15451
15452         * cgraph.h (add_new_static_var): Remove declaration.
15453         * varpool.c (add_new_static_var): Remove function.
15454
15455 2015-03-16  Jakub Jelinek  <jakub@redhat.com>
15456
15457         * omp-low.c (expand_omp_target): Use auto_vec<tree, 11>
15458         instead of vec<tree> * with vec_alloc and release for args.
15459         Adjust all users.
15460
15461         PR middle-end/65431
15462         * omp-low.c (delete_omp_context): Only splay_tree_delete
15463         reduction_map in GIMPLE_OMP_TARGET is_gimple_omp_offloaded
15464         is_gimple_omp_oacc contexts.  Don't look at ctx->outer.
15465
15466 2015-03-16  Max Ostapenko  <m.ostapenko@partner.samsung.com>
15467
15468         PR sanitizer/64820
15469         * cfgexpand.c (align_base): New function.
15470         (alloc_stack_frame_space): Call it.
15471         (expand_stack_vars): Align prev_frame to be sure
15472         data->asan_vec elements aligned properly.
15473
15474 2015-03-16  Eric Botcazou  <ebotcazou@adacore.com>
15475
15476         PR middle-end/65409
15477         * expr.c (store_field): Do not do a direct block copy if the source is
15478         a PARALLEL with BLKmode.
15479
15480 2015-03-16  Tom de Vries  <tom@codesourcery.com>
15481
15482         PR middle-end/65414
15483         Revert:
15484         2015-03-12  Tom de Vries  <tom@codesourcery.com>
15485
15486         PR rtl-optimization/64895
15487         * lra-lives.c (check_pseudos_live_through_calls): Use
15488         actual_call_used_reg_set instead of call_used_reg_set, if available.
15489
15490 2015-03-16  Alan Modra  <amodra@gmail.com>
15491
15492         PR target/63150
15493         * config/rs6000/rs6000.md (bswapdi2): Remove one scratch reg.
15494         Modify Z->r bswapdi splitter to use dest in place of scratch.
15495         In r->Z and Z->r bswapdi splitter rename word_high, word_low
15496         to word1, word2 and rearrange logic to suit.
15497         (bswapdi2_64bit): Remove early clobber on Z->r alternative.
15498         (bswapdi2_ldbrx): Likewise.  Remove '??' on r->r.
15499         (bswapdi2_32bit): Remove early clobber on Z->r alternative.
15500         Add one '?' on r->r.  Modify Z->r splitter to avoid need for
15501         early clobber.
15502
15503 2015-03-14  Jakub Jelinek  <jakub@redhat.com>
15504
15505         PR tree-optimization/65369
15506         * tree-vect-stmts.c (vectorizable_load) <case dr_explicit_realign>:
15507         Set bump to vs * TYPE_SIZE_UNIT (elem_type) - 1 instead of
15508         (vs - 1) * TYPE_SIZE_UNIT (elem_type).
15509
15510         PR tree-optimization/65418
15511         * tree-ssa-reassoc.c (extract_bit_test_mask): If there
15512         are casts in the first PLUS_EXPR operand, ensure tbias and
15513         *totallowp are in the inner type.
15514
15515         PR rtl-optimization/65401
15516         * combine.c (rtx_equal_for_field_assignment_p): Add widen_x
15517         argument.  If true, adjust_address_nv of x with big-endian
15518         correction for the mode widening to GET_MODE (y).
15519         (make_field_assignment): Don't do MEM mode widening here.
15520         Use MEM_P instead of GET_CODE == MEM.
15521
15522 2015-03-13  Ilya Verbin  <ilya.verbin@intel.com>
15523
15524         * varpool.c (varpool_node::get_create): Don't set 'offloadable' flag for
15525         the external decls.
15526
15527 2015-03-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15528
15529         PR target/64600
15530         * config/arm/arm.c (arm_gen_constant, AND case): Use
15531         ARM_SIGN_EXTEND when constructing AND mask.
15532
15533 2015-03-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
15534
15535         * graph.c (print_graph_cfg): Make function names visible and append
15536         parenthesis to it.  Also make groups of basic blocks belonging to the
15537         same function visible.
15538
15539 2015-03-12  Richard Biener  <rguenther@suse.de>
15540
15541         PR middle-end/44563
15542         * tree-inline.c (gimple_expand_calls_inline): Walk BB backwards
15543         to avoid quadratic behavior with inline expansion splitting blocks.
15544         * tree-cfgcleanup.c (cleanup_tree_cfg_bb): Do not merge block
15545         with the successor if the predecessor will be merged with it.
15546         * tree-cfg.c (gimple_can_merge_blocks_p): We can't merge the
15547         entry block with its successor.
15548
15549 2015-03-13  Richard Biener  <rguenther@suse.de>
15550
15551         PR middle-end/44563
15552         * tree-cfgcleanup.c (split_bb_on_noreturn_calls): Remove.
15553         (cleanup_tree_cfg_1): Do not call it.
15554         (execute_cleanup_cfg_post_optimizing): Fixup the CFG here.
15555         (fixup_noreturn_call): Mark the stmt as control altering.
15556         * tree-cfg.c (execute_fixup_cfg): Do not dump the function
15557         here.
15558         (pass_data_fixup_cfg): Produce a dump file.
15559         * tree-ssa-dom.c: Include tree-cfgcleanup.h.
15560         (need_noreturn_fixup): New global.
15561         (pass_dominator::execute): Fixup queued noreturn calls.
15562         (optimize_stmt): Queue calls that became noreturn for fixup.
15563         * tree-ssa-forwprop.c (pass_forwprop::execute): Likewise.
15564         * tree-ssa-pre.c: Include tree-cfgcleanup.h.
15565         (el_to_fixup): New global.
15566         (eliminate_dom_walker::before_dom_childre): Queue calls that
15567         became noreturn for fixup.
15568         (eliminate): Fixup queued noreturn calls.
15569         * tree-ssa-propagate.c: Include tree-cfgcleanup.h.
15570         (substitute_and_fold_dom_walker): New member stmts_to_fixup.
15571         (substitute_and_fold_dom_walker::before_dom_children): Queue
15572         alls that became noreturn for fixup.
15573         (substitute_and_fold): Fixup queued noreturn calls.
15574
15575 2015-03-12  Jan Hubicka  <hubicka@ucw.cz>
15576
15577         * ipa-icf.c (sem_function::equals_wpa): Match CXX_CONSTRUCTOR_P
15578         and CXX_DESTURCTOR_P. For consutrctors match ODR type of class they
15579         are building; for methods check ODR type of class they belong to if
15580         they may lead to a polymorphic call.
15581         (sem_function::compare_polymorphic_p): Be bit smarter about testing
15582         when function may lead to a polymorphic call.
15583         (sem_function::compare_type_list): Remove.
15584         (sem_variable::equals): Update use of compatible_types_p.
15585         (sem_variable::parse_tree_refs): Remove.
15586         (sem_item_optimizer::filter_removed_items): Do not filter out CXX
15587         cdtor.
15588         * ipa-icf-gimple.c (func_checker::compare_decl): Do polymorphic
15589         matching here.
15590         (func_checker::compatible_polymorphic_types_p): Break out from ...
15591         (unc_checker::compatible_types_p): ... here.
15592         * ipa-icf-gimple.h (func_checker::compatible_polymorphic_types_p):
15593         Declare.
15594         (unc_checker::compatible_types_p): Update.
15595         * ipa-icf.h (compare_type_list, parse_tree_refs, compare_sections):
15596         Remove.
15597
15598 2015-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15599
15600         PR rtl-optimization/65235
15601         * simplify-rtx.c (simplify_binary_operation_1, VEC_SELECT case):
15602         When first element of vec_concat is const_int, calculate its size
15603         using second element.
15604
15605 2015-03-12  Richard Biener  <rguenther@suse.de>
15606
15607         PR middle-end/65270
15608         * fold-const.c (operand_equal_p): Fix ordering of resetting
15609         OEP_ADDRESS_OF and checking for it in the [TARGET_]MEM_REF case.
15610
15611 2015-03-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>
15612
15613         * config/s390/s390.c (s390_reorg): Move code to output nops after label
15614         to s390_reorg ().
15615         (s390_asm_output_function_label): Likewise.
15616         * config/s390/s390.c (s390_asm_output_function_label):
15617         Fix function label alignment with -mhtopatch.
15618         * config/s390/s390.md ("unspecv"): New values UNSPECV_NOP_2_BYTE,
15619         UNSPECV_NOP_4_BYTE and UNSPECV_NOP_6_BYTE
15620         ("nop_2_byte"): New define_insn.
15621         ("nop_4_byte"): Likewise.
15622         ("nop_6_byte"): Likewise.
15623         * doc/extend.texi (hotpatch): hotpatch attribute doc fixes.
15624         * doc/invoke.texi (-mhotpatch): -mhotpatch doc fixes.
15625
15626 2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>
15627
15628         PR target/65103
15629         * config/i386/i386.c (ix86_address_cost): Fix cost of a PIC
15630         register.
15631
15632 2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>
15633
15634         PR target/65044
15635         * toplev.c (process_options): Restrict Pointer Bounds Checker
15636         usage with Address Sanitizer.
15637
15638 2015-03-12  Richard Biener  <rguenther@suse.de>
15639
15640         * tree-cfg.c (gimple_split_block): Remove loop finding stmt
15641         to split on.
15642         * omp-low.c (expand_omp_taskreg): Split block before removing
15643         the stmt.
15644         (expand_omp_target): Likewise.
15645         * ubsan.c (ubsan_expand_null_ifn): Adjust stmt if we replaced it.
15646         * tree-parloops.c (create_call_for_reduction_1): Pass a proper
15647         stmt to split_block.
15648
15649 2015-03-12  Tom de Vries  <tom@codesourcery.com>
15650
15651         PR rtl-optimization/64895
15652         * lra-lives.c (check_pseudos_live_through_calls): Use
15653         actual_call_used_reg_set instead of call_used_reg_set, if available.
15654
15655 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
15656
15657         * cgraph.c (cgraph_node::release_body): Free function_in_decl_state.
15658         (cgraph_node::remove): Likewise.
15659         (cgraph_node::get_untransformed_body): Likewise.
15660         * varpool.c (varpool_node::remove): Likewise.
15661         (varpool_node::get_constructor): Add sanity check.
15662
15663 2015-03-11  Sandra Loosemore  <sandra@codesourcery.com>
15664
15665         * doc/invoke.texi (-fgnu89-inline): Remove discussion about
15666         old GCC versions.
15667         (-fabi-compat-version): Likewise.
15668         (-ffriend-injection): Likewise.
15669         (-Wdeclaration-after-statement): Likewise.
15670         (-fomit-frame-pointer): Likewise.
15671         (-ftree-coalesce-inlined-vars): Likewise.
15672         (-fvisibility=): Likewise.
15673         * doc/extend.texi (Typeof): Likewise.
15674         (Zero Length): Likewise.
15675         (Escaped Newlines): Likewise.
15676         (Compound Literals): Likewise.
15677         (Function Attributes): Likewise.
15678         (Label Attributes): Likewise.
15679         (Type Attributes): Likewise.
15680         (Function Names): Likewise.
15681         (Other Builtins): Likewise.
15682         (Function Specific Option Pragmas): Likewise.
15683         (C++ Interface): Likewise.
15684
15685 2015-03-11  Thomas Schwinge  <thomas@codesourcery.com>
15686
15687         * config/nvptx/nvptx.h (LIBSTDCXX): Define to "gcc".
15688
15689 2015-03-11  Marek Polacek  <polacek@redhat.com>
15690
15691         PR tree-optimization/65388
15692         * tree-ssa-tail-merge.c (same_succ_def::equal): Fix typo in comparison.
15693
15694 2015-03-10  Georg-Johann Lay  <avr@gjlay.de>
15695
15696         PR target/65296
15697         * configure.ac [avr]: Check as for options -mrmw, --mlink-relax.
15698         * configure: Regenerate.
15699         * config.in: Regenerate.
15700         * doc/invoke.texi (AVR Options) [-mrmw]: Document it.
15701         [-mn-flash]: Document it.
15702         [__AVR_ARCH__]: Document avrtiny.
15703
15704         * config/avr/gen-avr-mmcu-specs.c (config.h): Include it.
15705         (*asm_relax): Only define spec if HAVE_AS_AVR_MLINK_RELAX_OPTION.
15706         (*asm_rmw): Only define spec if HAVE_AS_AVR_MRMW_OPTION.
15707
15708 2015-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15709
15710         * doc/invoke.texi: Add missing cpu values (z196, zEC12).
15711
15712 2015-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
15713
15714         PR target/65242
15715         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Do not
15716         allow reloads of PLUS in floating point/VSX registers.
15717
15718 2015-03-11  Junmo Park  <junmoz.park@samsung.com>
15719
15720         * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Add
15721         crypto_sha256_fast.
15722         (cortex_a57_crypto_complex): Add crypto_sha256_slow.
15723
15724 2015-03-11  Richard Biener  <rguenther@suse.de>
15725
15726         PR tree-optimization/65310
15727         * tree-sra.c (build_ref_for_offset): Also preserve larger
15728         alignment.
15729
15730 2015-03-11  Marat Zakirov  <m.zakirov@samsung.com>
15731
15732         * asan.c (instrument_derefs): Disable instrumentation on asan-globals=0.
15733
15734 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
15735
15736         PR target/65368
15737         * config/i386/i386.md (bmi2_bzhi_<mode>3): Removed define_insn,
15738         new define_expand.
15739         (*bmi2_bzhi_<mode>3, *bmi2_bzhi_<mode>3_1): New define_insns.
15740
15741 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
15742
15743         * ipa-icf.c (sem_function::equals_wpa): Move here some checks from ...
15744         (sem_function::equals_wpa): ... here.
15745
15746 2015-03-10  Marek Polacek  <polacek@redhat.com>
15747             Jakub Jelinek  <jakub@redhat.com>
15748
15749         PR sanitizer/65367
15750         * ubsan.c (ubsan_expand_objsize_ifn): Update GSI instead of GSI_ORIG
15751         when only removing the statement.  Handle expanding UBSAN_OBJECT_SIZE
15752         separately.
15753
15754 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
15755
15756         PR target/65286
15757         * config/rs6000/t-linux: For powerpc64* target set
15758         MULTILIB_OSDIRNAMES instead of MULTIARCH_DIRNAME.
15759
15760 2015-03-10  Richard Biener  <rguenther@suse.de>
15761
15762         PR middle-end/44563
15763         * tree-inline.c (copy_cfg_body): Skip block mapped to entry/exit
15764         for redirect_all_calls.
15765
15766 2015-03-10  Marek Polacek  <polacek@redhat.com>
15767
15768         * gdbinit.in (pcfun): Define and document.
15769
15770 2015-03-10  Ilya Verbin  <ilya.verbin@intel.com>
15771
15772         * config/i386/intelmic-mkoffload.c: Include intelmic-offload.h instead
15773         of libgomp-plugin.h.
15774         (find_target_compiler): Support a case when the path to gcc is
15775         specified in the PATH env var, so COLLECT_GCC doesn't contain a path.
15776         (generate_host_descr_file): Use GOMP_DEVICE_INTEL_MIC from
15777         intelmic-offload.h instead of OFFLOAD_TARGET_TYPE_INTEL_MIC from
15778         libgomp-plugin.h.
15779         (main): Use GCC_INSTALL_NAME as target_driver_name.
15780         * config/i386/t-intelmic (CFLAGS-mkoffload.o): Add GCC_INSTALL_NAME
15781         define.
15782         (mkoffload.o): Remove obsolete include path and defines.
15783         (mkoffload$(exeext)): Use $(LINKER) instead of $(COMPILER).
15784
15785 2015-03-10  Richard Biener  <rguenther@suse.de>
15786
15787         PR middle-end/63155
15788         * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
15789         * tree-ssa-coalesce.c: Include timevar.h.
15790         (attempt_coalesce): Handle graph being NULL.
15791         (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
15792         Split out abnormal coalescing to ...
15793         (perform_abnormal_coalescing): ... this function.
15794         (coalesce_ssa_name): Perform abnormal coalescing without computing
15795         live/conflict.
15796         (verify_ssa_coalescing_worker): New function.
15797         (verify_ssa_coalescing): Likewise.
15798
15799 2015-03-10  Georg-Johann Lay  <avr@gjlay.de>
15800
15801         PR target/65296
15802         * config.gcc (extra_options) [avr]: Remove.
15803         (extra_gcc_objs) [avr]: Use driver-avr.o, avr-devices.o.
15804         (tm_file) [avr]: Add avr/specs.h after avr/avr.h.
15805         (tm_defines) [avr-*-rtems*]: Add WITH_RTEMS.
15806
15807         * config/avr/avr.opt (config/avr/avr-arch.h): Remove include.
15808         (-mmcu=): Add Var and MissingArgError properties.
15809         (-march=): Remove.
15810         * config/avr/genmultilib.awk: Use -mmcu= instead of -march=.
15811         * config/avr/t-multilib: Regenerate.
15812         * config/avr/specs.h: New file.
15813         * config/avr/driver-avr.c: New file.
15814         * config/avr/genopt.sh: Remove file.
15815         * config/avr/avr-tables.opt: Remove file.
15816         * config/avr/predicates.md (avr_current_arch): Rename to avr_arch.
15817         * config/avr/avr-c.c: Same.
15818         * avr-arch.h: Same.
15819         (avr_current_device): Remove proto.
15820         * config/avr/avr.h (avr_current_arch): Rename to avr_arch.
15821         (AVR_HAVE_8BIT_SP): Don't depend on avr_current_device.
15822         (EXTRA_SPEC_FUNCTIONS): Define.
15823         (avr_devicespecs_file): New specs function proto.
15824         (DRIVER_SELF_SPECS): Use device-specs-file spec function.
15825         * config/avr/avr.c (avr_current_arch): Rename to avr_arch.
15826         (avr_current_device): Remove definition and usage.
15827         (avr_set_core_architecture): New static function.
15828         (avr_option_override): Use it.
15829         * config/avr/avr-devices.c (diagnostic.h, avr-arch.h): Include them.
15830         (mcu_name): New static array.
15831         (comparator, avr_archs_str, avr_mcus_str): New static functions.
15832         (avr_inform_devices, avr_inform_core_architectures): New functions.
15833         * config/avr/gen-avr-mmcu-specs.c (avr-arch.h, specs.h): Include.
15834         (avrlibc.h) [WITH_AVRLIBC]: Include.
15835         (../rtems.h, rtems.h) [WITH_RTEMS]: Include.
15836         (print_mcu): Rewrite from scratch.
15837         * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC, STARTFILE_SPEC):
15838         Forward to avr-specific specs defined in device-specs file.
15839         * config/avr/t-avr (driver-avr.o): New rule.
15840         (avr-devices.o): Depend on avr-arch.h.
15841         (avr-mcus): No more depend on avr-tables.opt.
15842         (avr-tables.opt): Remove rule.
15843         (install-device-specs): Use INSTALL_DATA, not INSTALL_PROGRAM.
15844
15845 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
15846
15847         * c-family/c.opt (fchkp-use-wrappers): New.
15848         * ipa-chkp.c (CHKP_WRAPPER_SYMBOL_PREFIX): New.
15849         (chkp_wrap_function): New.
15850         (chkp_build_instrumented_fndecl): Support wrapped
15851         functions.
15852         * doc/invoke.texi (-fcheck-pointer-bounds): New.
15853         (-fchkp-check-incomplete-type): New.
15854         (-fchkp-first-field-has-own-bounds): New.
15855         (-fchkp-narrow-bounds): New.
15856         (-fchkp-narrow-to-innermost-array): New.
15857         (-fchkp-optimize): New.
15858         (-fchkp-use-fast-string-functions): New.
15859         (-fchkp-use-nochk-string-functions): New.
15860         (-fchkp-use-static-bounds): New.
15861         (-fchkp-use-static-const-bounds): New.
15862         (-fchkp-treat-zero-dynamic-size-as-infinite): New.
15863         (-fchkp-check-read): New.
15864         (-fchkp-check-write): New.
15865         (-fchkp-store-bounds): New.
15866         (-fchkp-instrument-calls): New.
15867         (-fchkp-instrument-marked-only): New.
15868         (-fchkp-use-wrappers): New.
15869         (-static-libmpx): New.
15870         (-static-libmpxwrappers): New.
15871
15872 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
15873
15874         * config/i386/linux-common.h (LIBMPX_WRAPPERSSPEC): New.
15875         (CHKP_SPEC): Add wrappers library.
15876         * c-family/c.opt (static-libmpxwrappers): New.
15877
15878 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
15879
15880         * config/i386/linux-common.h (LIBMPX_LIBS): New.
15881         (LIBMPX_SPEC): New.
15882         (CHKP_SPEC): New.
15883         * gcc.c (CHKP_SPEC): New.
15884         (LINK_COMMAND_SPEC): Add CHKP_SPEC.
15885         * c-family/c.opt (static-libmpx): New.
15886
15887 2015-03-10  Richard Biener  <rguenther@suse.de>
15888
15889         PR middle-end/44563
15890         * cgraph.h (struct cgraph_edge_hasher): Add hash overload
15891         for compare_type.
15892         * cgraph.c (cgraph_edge_hasher::hash): Inline htab_hash_pointer.
15893         (cgraph_update_edge_in_call_site_hash): Use cgraph_edge_hasher::hash.
15894         (cgraph_add_edge_to_call_site_hash): Likewise.
15895         (cgraph_node::get_edge): Likewise.
15896         (cgraph_edge::set_call_stmt): Likewise.
15897         (cgraph_edge::remove_caller): Likewise.
15898
15899 2015-03-10  Chung-Ju Wu  <jasonwucj@gmail.com>
15900
15901         * config/nds32/nds32.h (callee_saved_regs_size): Rename to ...
15902         (callee_saved_gpr_regs_size): ... this.
15903         (callee_saved_regs_first_regno): Rename to ...
15904         (callee_saved_first_gpr_regno): ... this.
15905         (callee_saved_regs_last_regno) Rename to ...
15906         (callee_saved_last_gpr_regno): ... this.
15907         * config/nds32/nds32.c (nds32_compute_stack_frame): Adjust renamed
15908         variables.
15909         (nds32_initial_elimination_offset): Likewise.
15910         (nds32_expand_prologue): Likewise.
15911         (nds32_expand_epilogue): Likewise.
15912         (nds32_expand_prologue_v3push): Likewise.
15913         (nds32_expand_epilogue_v3pop): Likewise.
15914         * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
15915         Adjust renamed variables.
15916         (nds32_output_stack_pop): Likewise.
15917
15918 2015-03-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>
15919
15920         * dominance.c (nearest_common_dominator_for_set): Fix A_Dominated_by_B
15921         code in comment.
15922
15923 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
15924
15925         PR rtl-optimization/65321
15926         * cfgexpand.c (expand_debug_expr): Ensure shift amount isn't wider
15927         than shift mode.
15928         * var-tracking.c (use_narrower_mode): Likewise.
15929
15930 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
15931
15932         PR tree-optimization/65355
15933         * varasm.c (notice_global_symbol): Do not produce RTL.
15934         * symtab.c (symtab_node::can_increase_alignment_p): Check for section
15935         anchor.
15936         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Do not
15937         check for section anchors.
15938
15939 2015-03-10  Alan Modra  <amodra@gmail.com>
15940
15941         PR target/65286
15942         * config.gcc (powerpc*-*-linux*): Arrange for powerpc64le-linux
15943         to be single-arch by default.  Set cpu_is_64bit for powerpc64
15944         given --with-cpu=native.
15945         * config/rs6000/t-fprules: Do not set default MULTILIB vars.
15946         * config/rs6000/t-linux (MULTIARCH_DIRNAME): Support powerpc64
15947         and powerpc64le.
15948         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Test
15949         rs6000_isa_flags rather than TARGET_64BIT.
15950
15951 2015-03-09  Yoshinori Sato  <ysato@users.sourceforge.jp>
15952             Kaz Kojima  <kkojima@gcc.gnu.org>
15953
15954         * config/sh/t-linux (MULTILIB_EXCEPTIONS): Define for m2a cases.
15955
15956 2015-03-09  Jakub Jelinek  <jakub@redhat.com>
15957
15958         PR lto/65361
15959         * ipa-devirt.c (add_type_duplicate): Don't use DECL_CONTEXT
15960         on a TREE_BINFO, instead use BINFO_TYPE.
15961
15962 2015-03-09  Richard Biener  <rguenther@suse.de>
15963
15964         PR middle-end/65270
15965         * tree-core.h (enum operand_equal_flag): Add OEP_ADDRESS_OF.
15966         * fold-const.c (operand_equal_p): When recursing for ADDR_EXPRs
15967         operand set OEP_ADDRESS_OF.  Clear it when recursing to non-bases
15968         of that.  When comparing dereferences compare alignment.
15969         When comparing MEM_REFs or TARGET_MEM_REFs compare dependence info.
15970
15971 2015-03-08  Jan Hubicka  <hubicka@ucw.cz>
15972
15973         * ipa-inline-analysis.c (check_callers): Check
15974         node->can_remove_if_no_direct_calls_and_refs_p.
15975         (growth_likely_positive): Reorganize to call
15976         can_remove_if_no_direct_calls_p later.
15977         * cgraph.h (will_be_removed_from_program_if_no_direct_calls_p,
15978         will_be_removed_from_program_if_no_direct_calls_p): Add
15979         will_inline parameter.
15980         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p,
15981         cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
15982         Handle inliner case correctly.
15983
15984 2015-03-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
15985
15986         PR tree-optimization/63743
15987         * cfgexpand.c (reorder_operands): Also reorder if only second operand
15988         had its definition forwarded by TER.
15989
15990 2015-03-08  Jan Hubicka  <hubicka@ucw.cz>
15991
15992         PR lto/65316
15993         * ipa-utils.h (types_odr_comparable): Add strict argument.
15994         * ipa-devirt.c: Fix whitespace;
15995         (odr_hasher): Remove.
15996         (odr_name_hasher, odr_vtable_hasher): New hashers.
15997         (can_be_name_hashed_p): New predicate.
15998         (hash_type_name): remove.
15999         (hash_odr_name): New.
16000         (odr_name_hasher::hash): new.
16001         (can_be_vtable_hashed_p): New.
16002         (hash_odr_vtable): New.
16003         (odr_vtable_hasher::hash): New.
16004         (types_same_for_odr): Add strict parameter.
16005         (types_odr_comparable): Likewise.
16006         (odr_name_hasher::equal): New.
16007         (odr_vtable_hasher::equal): New.
16008         (odr_name_hasher::remove): New.
16009         (odr_hash_type): Change to hash_table<odr_name_hasher>.
16010         (odr_vtable_hash_type): New.
16011         (odr_vtable_hash): New.
16012         (odr_subtypes_equivalent_p): Do strict comparsion.
16013         (add_type_duplicate): Merge type names; cleanup; avoid type
16014         duplicates.
16015         (register_odr_type): Initialize vtable hash.
16016         (build_type_inheritance_graph): Likewise
16017         (get_odr_type): Reorg to use two hashes.
16018         (dump_possible_polymorphic_call_targets): Move sanity check after debug
16019         output.
16020         (ipa_devirt): Dump type_inheritance_graph.
16021         (types_same_for_odr): Add strict mode.
16022
16023 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
16024
16025         PR ipa/65334
16026         * cgraph.h (symtab_node): Add definition_alignment,
16027         can_increase_alignment_p and increase_alignment.
16028         * symtab.c (symtab_node::can_increase_alignment_p,
16029         increase_alignment_1, symtab_node::increase_alignment,
16030         symtab_node::definition_alignment): New.
16031         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Use
16032         can_increase_alignment_p.
16033         * tree-vectorizer.c (increase_alignment): Use increase_alignment.
16034         * tree-vect-stmts.c (ensure_base_align): Likewise.
16035         * varasm.c (function_section_1): Use definition_alignment.
16036         (assemble_start_function): Likewise.
16037         (emit_local): likewise.
16038         (build_constant_desc): Likewsie.
16039         (output_constant_def_contents): Likewise.
16040         (place_block_symbol): Likewise.
16041         (output_object_block): Likewise.
16042
16043 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
16044
16045         PR ipa/65316
16046         * tree.c (free_lang_data_in_type): Be sure to keep BINFO_VTABLE
16047         when outputting debug.
16048
16049 2015-03-07  Marek Polacek  <polacek@redhat.com>
16050             Martin Uecker  <uecker@eecs.berkeley.edu>
16051
16052         PR sanitizer/65280
16053         * doc/invoke.texi: Update description of -fsanitize=bounds.
16054
16055 2015-03-06  Wilco Dijkstra  <wilco.dijkstra@arm.com>
16056
16057         * tree-ssa-phiopt.c (neg_replacement): Remove.
16058         (tree_ssa_phiopt_worker): Remove negate optimization.
16059
16060 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
16061
16062         PR ipa/65302
16063         * value-prof.c (gimple_ic): Pure dead eh edges when needed.
16064
16065 2015-03-06  Richard Biener  <rguenther@suse.de>
16066
16067         PR middle-end/64928
16068         * tree-ssa-live.h (struct tree_live_info_d): Add livein_obstack
16069         and liveout_obstack members.
16070         (calculate_live_on_exit): Remove.
16071         (calculate_live_ranges): Change declaration.
16072         * tree-ssa-live.c (liveness_bitmap_obstack): Remove global var.
16073         (new_tree_live_info): Adjust.
16074         (calculate_live_ranges): Delete livein when not wanted.
16075         (calculate_live_ranges): Do not initialize liveness_bitmap_obstack.
16076         Deal with partly deleted live info.
16077         (loe_visit_block): Remove temporary bitmap by using
16078         bitmap_ior_and_compl_into.
16079         (live_worklist): Adjust accordingly.
16080         (calculate_live_on_exit): Make static.
16081         * tree-ssa-coalesce.c (coalesce_ssa_name): Tell calculate_live_ranges
16082         we do not need livein.
16083
16084 2015-03-06  Jonathan Wakely  <jwakely@redhat.com>
16085
16086         * real.c (real_from_string): Fix typo in assertion.
16087
16088 2015-03-06  Alex Velenko  <alex.velenko@arm.com>
16089
16090         * ChangeLog (2015-03-05): Reflect Richard Henderson as actual author of
16091         the patch.
16092
16093 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
16094
16095         * ipa-icf.c (sem_variable::equals_wpa): Check FINAL flags.
16096
16097 2015-03-05  Vladimir Makarov  <vmakarov@redhat.com>
16098
16099         PR target/64342
16100         * lra-assigns.c (find_hard_regno_for): Rename to
16101         find_hard_regno_for_1.  Add a new parameter.
16102         (find_hard_regno_for): New function using find_hard_regno_for_1.
16103
16104 2015-03-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
16105
16106         PR rtl-optimization/65067
16107         * expmed.c (store_bit_field, extract_bit_field): Reworked the
16108         strict volatile bitfield handling.
16109
16110 2015-03-05  Martin Liska  <mliska@suse.cz>
16111
16112         PR ipa/65318
16113         * ipa-icf.c (sem_variable::equals): Compare variables types.
16114
16115 2015-03-05  Richard Henderson  <rth@redhat.com>
16116
16117         PR target/65121
16118         * config/arm/arm.c (arm_function_in_section_p): Fix predicate to
16119         correctly check weak symbol binding.
16120
16121 2015-03-05  Steve Ellcey  <sellcey@imgtec.com>
16122
16123         PR middle-end/65315
16124         * cfgexpand.c (expand_stack_vars): Update large_align to maximum
16125         needed alignment.
16126
16127 2015-03-05  Martin Liska  <mliska@suse.cz>
16128
16129         * ipa-inline.c (inline_small_functions): Set default value to
16130         prevent warning during bootstrap.
16131         * tree.h: Add pragma guard that ignores false positives during
16132         bootstrap.
16133
16134 2015-03-05  Richard Biener  <rguenther@suse.de>
16135
16136         PR tree-optimization/65310
16137         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
16138         Properly preserve alignment of the base of the access.
16139
16140 2015-03-05  Richard Biener  <rguenther@suse.de>
16141
16142         PR ipa/65270
16143         * ipa-icf-gimple.c (func_checker::compare_memory_operand):
16144         Compare dependence info.
16145
16146 2015-03-05  Richard Biener  <rguenther@suse.de>
16147
16148         PR middle-end/65233
16149         * ipa-polymorphic-call.c: Include tree-ssa-operands.h and
16150         tree-into-ssa.h.
16151         (walk_ssa_copies): Revert last chage.  Instead do not walk
16152         SSA names registered for SSA update.
16153
16154 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
16155
16156         PR ipa/65270
16157         * ipa-icf.c (sem_item::compare_cgraph_references): Compare
16158         vtable references for their containing type.
16159         (sem_function::equals_wpa): Compare TYPE_RESTRICT
16160         and type attributes.
16161
16162 2015-03-04  Eric Botcazou  <ebotcazou@adacore.com>
16163
16164         * fold-const.c (round_up_loc): Cast divisor to signed on all paths
16165         before negating it.
16166         * stor-layout.c (finalize_record_size): Revert latest change.
16167
16168 2015-03-04  Andreas Tobler  <andreast@gcc.gnu.org>
16169
16170         * config/rs6000/t-freebsd64: Remove 32-bit soft-float multilibs.
16171
16172 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
16173
16174         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p): Rewrite
16175         for correct comdat handling.
16176         (cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
16177         Likewise.
16178         * cgraph.h (call_for_symbol_and_aliases): Fix formating.
16179         (used_from_object_file_p_worker): Remove.
16180         (cgraph_node::only_called_directly_or_alised): Add
16181         used_from_object_file_p.
16182         * ipa-inline-analysis.c (growth_likely_positive): Optimie.
16183         * ipa-inline-transform.c (can_remove_node_now_p_1): Use
16184         can_remove_if_no_direct_calls_and_refs_p.
16185
16186 2015-03-04  Nick Clifton  <nickc@redhat.com>
16187
16188         * config/rl78/rl78.h (enum reg_class): Remove real registers from
16189         General register class.
16190         * config/rl78/rl78-real.md: Replace general register constraints
16191         with real+virtual register constraints.
16192
16193 2015-03-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16194
16195         * config/s390/s390.c (s390_expand_builtin): Exlude non-htm builtins
16196         from checking for -mhtm option.
16197
16198 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
16199
16200         * tree-sra.c (convert_callers): Use call_for_symbol_and_aliases.
16201         (struct ipa_sra_check_caller_data): Add has_thunk field.
16202         (ipa_sra_check_caller): Check for thunk.
16203         (ipa_sra_preliminary_function_checks): Give up on function with
16204         thunks.
16205         (ipa_early_sra): Use call_for_symbol_and_aliases.
16206
16207 2015-03-03  Kaz Kojima  <kkojima@gcc.gnu.org>
16208
16209         PR target/65249
16210         * config/sh/sh.md (symGOT_load): Use R0 reg for operands[2] when
16211         called for __stack_chk_guard symbol.
16212
16213 2015-03-03  DJ Delorie  <dj@redhat.com>
16214
16215         * config/rl78/rl78-real.md (*addqi_real): Allow SADDR types for
16216         inc/dec.
16217         (*addhi3_real): Likewise.
16218         * config/rl78/rl78-virt.md (*inc<mode>3_virt): Additional
16219         pattern to match incrementing memory.
16220         * config/rl78/predicates.md (rl78_1_2_operand): New.
16221         * config/rl78/rl78.c (rl78_force_nonfar_3): Allow far mem-mem if
16222         it's the same and only mem.
16223         (rl78_alloc_physical_registers_op2): If there's effectively only
16224         one MEM, transcode it into HL.
16225         (rl78_far_p): Reject addresses that aren't legitimate.
16226
16227 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
16228
16229         * fold-const.c (round_up_loc): Cast divisor to HOST_WIDE_INT before
16230         negating it.
16231
16232         * tree-sra.c (pa_sra_preliminary_function_checks): Fix typo in message.
16233
16234 2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
16235
16236         Implement call0 ABI for xtensa
16237         * config/xtensa/constraints.md ("a" constraint): Include stack
16238         pointer in case of call0 ABI.
16239         ("q" constraint): Make empty in case of call0 ABI.
16240         ("D" constraint): Include stack pointer in case of call0 ABI.
16241         * config/xtensa/xtensa-protos.h (xtensa_set_return_address,
16242         xtensa_expand_epilogue, xtensa_regno_to_class): Add new function
16243         prototypes.
16244         * config/xtensa/xtensa.c (xtensa_callee_save_size): New
16245         variable.
16246         (xtensa_regno_to_class): Make it a local variable in the
16247         function xtensa_regno_to_class.
16248         (xtensa_function_epilogue, TARGET_ASM_FUNCTION_EPILOGUE): Remove
16249         macro, function prototype and implementation.
16250         (reg_nonleaf_alloc_order): Make it a local variable in the
16251         function order_regs_for_local_alloc.
16252         (xtensa_conditional_register_usage): New function.
16253         (TARGET_CONDITIONAL_REGISTER_USAGE): Define macro.
16254         (xtensa_valid_move): Allow direct moves to stack pointer
16255         register in call0 ABI.
16256         (xtensa_setup_frame_addresses): Only spill register windows in
16257         windowed ABI.
16258         (xtensa_emit_call): Emit call(x)8 or call(x)0 in windowed and
16259         call0 ABI respectively.
16260         (xtensa_function_arg_1): Only mark a7 register for copying in
16261         windowed ABI.
16262         (xtensa_call_save_reg): New function.
16263         (compute_frame_size): Add space for callee saved register
16264         storage to the frame size in call0 ABI.
16265         (xtensa_expand_prologue): Generate code to set up stack frame
16266         and save callee-saved registers in call0 ABI.
16267         (xtensa_expand_epilogue): New function.
16268         (xtensa_set_return_address): New function.
16269         (xtensa_return_addr): Calculate return address in call0 ABI.
16270         (xtensa_builtin_saveregs): Only mark a7 register for copying and
16271         emit copying code in windowed ABI.
16272         (order_regs_for_local_alloc): Add preferred register allocation
16273         order for non-leaf function in call0 ABI.
16274         (xtensa_static_chain): Add atatic chain passing for call0 ABI.
16275         (xtensa_asm_trampoline_template): Add trampoline generation for
16276         call0 ABI.
16277         (xtensa_trampoline_init): Add trampoline initialization for
16278         call0 ABI.
16279         (xtensa_conditional_register_usage, xtensa_regno_to_class): New
16280         functions.
16281         * config/xtensa/xtensa.h (TARGET_WINDOWED_ABI): New macro.
16282         (TARGET_CPU_CPP_BUILTINS): Add built-in define for call0 ABI.
16283         (CALL_USED_REGISTERS): Modify to encode both windowed and call0
16284         ABI call-used registers.
16285         (HARD_FRAME_POINTER_REGNUM): Add frame pointer for call0 ABI.
16286         (INCOMING_REGNO, OUTGOING_REGNO): Use argument unchanged in
16287         call0 ABI.
16288         (REG_CLASS_CONTENTS): Include all registers into the preferred
16289         reload registers set, adjust the set in the
16290         xtensa_conditional_register_usage.
16291         (xtensa_regno_to_class): Drop variable declaration.
16292         (REGNO_REG_CLASS): Redefine to use xtensa_regno_to_class
16293         function.
16294         (WINDOW_SIZE): Define as 8 or 0 for windowed and call0 ABI
16295         respectively.
16296         (FUNCTION_PROFILER): Add _mcount call for call0 ABI.
16297         (TRAMPOLINE_SIZE): Define trampoline size for call0 ABI.
16298         (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 in call0 ABI.
16299         (ASM_OUTPUT_POOL_PROLOGUE): Always generate literal pool
16300         location in call0 ABI.
16301         (EH_RETURN_STACKADJ_RTX): New definition, use a10 for passing
16302         stack adjustment size when handling exception.
16303         (CRT_CALL_STATIC_FUNCTION): Add definition for call0 ABI.
16304         * config/xtensa/xtensa.md (A9_REG, UNSPECV_BLOCKAGE): New
16305         definitions.
16306         ("return" pattern): Generate ret.n/ret in call0 ABI.
16307         ("epilogue" pattern): Expand epilogue.
16308         ("nonlocal_goto" pattern): Use default in call0 ABI.
16309         ("eh_return" pattern): Move implementation to eh_set_a0_windowed,
16310         emit eh_set_a0_* depending on ABI.
16311         ("eh_set_a0_windowed" pattern): Former eh_return pattern.
16312         ("eh_set_a0_call0", "blockage"): New patterns.
16313
16314 2015-03-03  Martin Liska  <mliska@suse.cz>
16315
16316         PR ipa/65287
16317         * ipa-icf.c (sem_variable::parse): Skip all alias variables.
16318
16319 2015-03-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
16320
16321         PR 65138/target
16322         * config/rs6000/rs6000-tables.opt: Regenerate table.
16323
16324 2015-03-03  Renlin Li  <renlin.li@arm.com>
16325
16326         * doc/md.texi (@item ^): Change ? into ^.
16327
16328 2015-03-03  H.J. Lu  <hongjiu.lu@intel.com>
16329
16330         * doc/tm.texi: Regenerated.
16331
16332 2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
16333
16334         * builtins.c (expand_builtin_return_addr): Add
16335         RETURN_ADDR_IN_PREVIOUS_FRAME to 'if' condition, remove
16336         surrounding #ifdef.
16337         * config/sparc/sparc.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Change
16338         definition to 1.
16339         * config/xtensa/xtensa.h (RETURN_ADDR_IN_PREVIOUS_FRAME):
16340         Likewise.
16341         * defaults.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 if
16342         undefined.
16343         * doc/tm.texi.in (RETURN_ADDR_IN_PREVIOUS_FRAME): Update
16344         paragraph.
16345
16346 2015-03-03  Martin Jambor  <mjambor@suse.cz>
16347             Eric Botcazou  <ebotcazou@adacore.com>
16348
16349         * tree-sra.c (ipa_sra_check_caller_data): New type.
16350         (has_caller_p): Removed.
16351         (ipa_sra_check_caller): New function.
16352         (ipa_sra_preliminary_function_checks): Use it.
16353
16354 2015-03-03  Martin Liska  <mliska@suse.cz>
16355
16356         * ipa-icf.c (sem_item_optimizer::merge_classes): Use bit or
16357         instead of if branch.
16358
16359 2015-03-03  Martin Liska  <mliska@suse.cz>
16360
16361         PR ipa/65282
16362         * ipa-icf.c (sem_variable::equals): Fix wrong condition.
16363
16364 2015-03-23  Jeff Law  <law@redhat.com>
16365
16366         PR tree-optimization/65241
16367         * tree-ssa-dom.c (lookup_avail_expr): Only modify the avail_expr
16368         hash table if INSERT is true.
16369
16370 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
16371
16372         PR target/65296
16373         * config.gcc (extra_gcc_objs) [avr-*-rtems*]: Remove.
16374
16375 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
16376
16377         PR target/64331
16378         * config/avr/avr.c (context.h, tree-pass.h): Include them.
16379         (avr_pass_data_recompute_notes): New static variable.
16380         (avr_pass_recompute_notes): New class.
16381         (avr_register_passes): New static function.
16382         (avr_option_override): Call it.
16383
16384 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
16385
16386         Fix various problems with specs file generation.
16387
16388         PR target/65296
16389         * config.gcc (extra_gcc_objs) [avr]: Remove.
16390         * config/avr/driver-avr.c: Remove file.
16391         * config/avr/t-avr (driver-avr.o): Remove rule.
16392         (gen-avr-mmcu-specs): Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD and
16393         INCLUDES to build.  Depend on TM_H.
16394         * config/avr/gen-avr-mmcu-specs.c: Tidy up code.  Fix various
16395         build warnings.  Fix non-matching types and non-existing %-codes.
16396         (tm.h): Include.
16397         (*lib) [!WITH_AVRLIBC]: Don't link libdev.a.
16398         (*libgcc) [WITH_AVRLIBC]: Add "-lm".
16399         * config/avr/avrlibc.h (LIBGCC_SPEC): Remove definition.
16400         * config/avr/avr.h (DRIVER_SELF_SPECS): Fix handling of -march=.
16401         (CPP_SPEC, CC1PLUS_SPEC, ASM_SPEC, LINK_SPEC, LIB_SPEC)
16402         (LIBGCC_SPEC): Remove definitions.
16403
16404 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
16405
16406         * config/ia64/ia64.c (expand_vec_perm_interleave_2): Use gen_raw_REG
16407         to create a register in testing mode.
16408
16409 2015-03-03  Martin Liska  <mliska@suse.cz>
16410             Jan Hubicka  <hubicka@ucw.cz>
16411
16412         PR ipa/65263
16413         * cgraph.c (cgraph_node::has_thunk_p): New function.
16414         * cgraph.h (cgraph_node::has_thunk_p: Likewise.
16415         * ipa-icf.c (redirect_all_callers): Do not redirect thunks.
16416         (sem_function::merge): Assert is changed.
16417
16418 2015-03-03  Martin Liska  <mliska@suse.cz>
16419             Martin Jambor  <mjambor@suse.cz>
16420
16421         PR ipa/65087
16422         * ipa-icf.c (sem_item_optimizer::execute): Change function
16423         return value to boolean.
16424         (sem_item_optimizer::merge_classes): Likewise.
16425         (ipa_icf_driver): Return TODO_remove_functions in case there's
16426         a merge operation processed.
16427         * ipa-icf.h: Change function return value to boolean.
16428
16429 2015-03-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
16430
16431         PR 65138/target
16432         * config/rs6000/rs6000-cpus.def (powerpc64le): Add new generic
16433         processor type for 64-bit little endian PowerPC.
16434
16435         * config/rs6000/rs6000.c (rs6000_option_override_internal): If
16436         -mdebug=reg, print TARGET_DEFAULT.  Fix logic to use
16437         TARGET_DEFAULT if there is no default cpu.  Fix -mdebug=reg
16438         printing built-in mask so it does not pass NULL pointers.
16439
16440         * doc/invoke.texi (IBM RS/6000 and PowerPC options): Document
16441         -mcpu=powerpc64le.
16442
16443 2015-03-02  Steve Ellcey  <sellcey@imgtec.com>
16444
16445         PR target/58158
16446         * config/mips/mips.md (mov<mode>cc): Change ISA_HAS_SEL check to
16447         !ISA_HAS_FP_CONDMOVE.
16448
16449 2015-03-02  Aldy Hernandez  <aldyh@redhat.com>
16450
16451         * config/i386/i386.md (*udivmod<mode>4_pow2): Remove
16452         reload_completed.
16453
16454 2015-03-02  Ulrich Drepper  <drepper@gmail.com>
16455
16456         * doc/invoke.texi (Options for Code Generation Conventions):
16457         Fix URL of DSO paper.
16458
16459 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
16460
16461         PR ipa/65130
16462         * ipa-inline.c (check_callers): Looks for recursion.
16463         (inline_to_all_callers): Give up on uninlinable or recursive edges.
16464         * ipa-inline-analysis.c (inline_summary_t::duplicate): Do not update
16465         summary of inline clones.
16466         (do_estimate_growth_1): Fix recursion check.
16467
16468 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
16469
16470         PR ipa/64988
16471         * ipa-inline-transform.c (clone_inlined_nodes): Do not dissolve
16472         comdat groups.
16473
16474 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
16475             Aldy Hernandez  <aldyh@redhat.com>
16476
16477         PR lto/65276
16478         * ipa-devirt.c (add_type_duplicate): Remove odr_violated assert
16479         when checking TYPE_BINFO.
16480
16481 2015-03-02  Richard Biener  <rguenther@suse.de>
16482
16483         PR ipa/65270
16484         * ipa-icf-gimple.c: Include builtins.h.
16485         (func_checker::compare_memory_operand): Compare base alignment.
16486
16487 2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>
16488
16489         PR target/65184
16490         * gcc/config/i386/i386.c (ix86_pass_by_reference) Bounds
16491         are never passed by reference.
16492
16493 2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>
16494
16495         PR target/65183
16496         * tree-chkp.c (chkp_check_lower): Don't check against
16497         zero bounds for already instrumented functions.
16498         (chkp_check_upper): Likewise.
16499         (chkp_fini): Clean pass local data to avoid wrong reusage.
16500
16501 2015-02-28  Martin Liska  <mliska@suse.cz>
16502             Jan Hubicka  <hubicka@ucw.cz>
16503
16504         * ipa-icf.c (sem_variable::equals): Improve debug output;
16505         get variable constructor.
16506         (sem_variable::parse): Do not filter out too early; give up on
16507         volatile and register vars.
16508         (sem_item_optimizer::filter_removed_items): Filter out nonreadonly
16509         variables.
16510         * ipa-icf.h (sem_variable::init): Do not set ctor.
16511         (sem_variable::ctor): Remove.
16512
16513 2015-03-01  Aldy Hernandez  <aldyh@redhat.com>
16514
16515         PR middle-end/65233
16516         * ipa-polymorphic-call.c (walk_ssa_copies): Handle empty PHIs.
16517
16518 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
16519
16520         * ipa-icf.c: Include stor-layout.h
16521         (sem_function::compare_cgraph_references): Rename to ...
16522         (sem_item::compare_cgraph_references): ... this one.
16523         (sem_variable::equals_wpa): New function
16524         (sem_variable::equals): Do not check stuff already verified by
16525         equals_wpa.
16526         (sem_variable::equals): Reorg based on varasm.c:compare_constant.
16527         * ipa-icf.h (sem_item): Add compare_cgraph_references.
16528         (sem_function): Remove compare_cgraph_references.
16529         (sem_variable): Turns equals_wpa into non-inline.
16530
16531 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
16532
16533         * ipa-icf.c (sem_function::init): Fix formating; skip GIMPLE_PREDICT.
16534         (sem_item::add_expr): New function.
16535         (sem_function::hash_stmt): Handle operands of most statements.
16536         (sem_variable::get_hash): Hash the actual constructor.
16537         * ipa-icf.h (sem_item): Add add_expr.
16538         (sem_function): Update prototype of hash_stmt
16539
16540 2015-02-28  Martin Liska  <mliska@suse.cz>
16541             Jan Hubicka  <hubicka@ucw.cz>
16542
16543         PR ipa/65245
16544         * ipa-icf-gimple.c (func_checker::compare_function_decl):
16545         Remove.
16546         (func_checker::compare_variable_decl): Skip symtab vars.
16547         (func_checker::compare_cst_or_decl): Update.
16548         * ipa-icf.c (sem_function::parse): Do not consider aliases.
16549         (sem_function::compare_cgraph_references): Add ADDRESS parameter;
16550         use correct symtab predicates.
16551         (sem_function::equals_wpa): Update uses of compare_cgraph_references.
16552         (sem_variable::parse):  Update comment.
16553         (sem_item_optimizer::build_graph): Consider ultimate aliases
16554         for references.
16555
16556 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
16557
16558         * ipa-icf-gimple.c (func_checker::compare_operand): Fix handling
16559         of OBJ_TYPE_REF.
16560
16561 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
16562
16563         * ipa-icf.c (sem_function::merge): Fix handling of COMDAT.
16564         (sem_variable::merge) Likewise.
16565
16566 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
16567
16568         * ipa-inline.c (can_inline_edge_p): Match opt_for_fn on inline
16569         target; also match flag_ipa_devirt.
16570
16571 2015-03-01  Martin Liska  <mliska@suse.cz>
16572             Jan Hubicka  <hubicka@ucw.cz>
16573
16574         * ipa-icf-gimple.c (func_checker::compare_variable_decl):
16575         Validate variable alignment.
16576         * ipa-icf.c (sem_function::equals_private): Be more precise
16577         about non-common function attributes.
16578         (sem_variable::equals): Likewise.
16579
16580 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
16581
16582         PR ipa/65237
16583         * ipa-icf.c (sem_function::merge): Do not attempt to produce alias
16584         across COMDAT group boundary.
16585
16586 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
16587
16588         PR ipa/65232
16589         * ipa-icf.c (clear_decl_rtl): New function.
16590         (sem_function::merge): Clear RTL before forming alias.
16591         (sem_variable::merge): Clear RTL before forming alias.
16592
16593 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
16594
16595         PR ipa/65236
16596         * cgraphunit.c (cgraph_node::expand_thunk): Enable return slot opt.
16597
16598 2015-02-28  Xingxing Pan  <xxingpan@marvell.com>
16599
16600         * config/aarch64/aarch64.md: (mov<mode>_aarch64): Change type
16601         to neon_to_gp<q>.
16602
16603 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
16604
16605         * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): Fix
16606         a typo in the description.
16607
16608 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
16609
16610         PR target/64317
16611         * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
16612         * params.h (LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
16613         * lra-constraints.c: Include "params.h".
16614         (EBB_PROBABILITY_CUTOFF): Use
16615         LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF.
16616         (lra_inheritance): Use '<' instead of '<=' for
16617         EBB_PROBABILITY_CUTOFF.
16618         * doc/invoke.texi (lra-inheritance-ebb-probability-cutoff):
16619         Document change.
16620
16621 2015-02-27  Martin Liska  <mliska@suse.cz>
16622
16623         * ipa-icf.h (struct symbol_compare_hashmap_traits): Add missing
16624         vector length condition.
16625
16626 2015-02-27  Sandra Loosemore  <sandra@codesourcery.com>
16627
16628         * doc/extend.texi (x86 transactional memory intrinsics):
16629         Reorganize discussion of _xbegin.  Clarify that the return
16630         value is a bit mask.  Expand example and move to end of section.
16631
16632 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
16633             Aldy Hernandez  <aldyh@redhat.com>
16634
16635         PR rtl-optimization/65220
16636         * config/i386/i386.md (*udivmod<mode>4_pow2): New.
16637
16638 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
16639
16640         PR target/65032
16641         * lra-remat.c (update_scratch_ops): New.
16642         (do_remat): Call it.
16643         * lra.c (lra_register_new_scratch_op): New. Take code from ...
16644         (remove_scratches): ... here.
16645         * lra-int.h (lra_register_new_scratch_op): New prototype.
16646
16647 2015-02-27  Marek Polacek  <polacek@redhat.com>
16648
16649         PR c/65040
16650         * doc/invoke.texi: Update to reflect that -Wformat=2 doesn't enable
16651         -Wformat-signedness anymore.
16652
16653 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16654
16655         * config/s390/s390.c: (s390_atomic_assign_expand_fenv): New
16656         function.
16657         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define macro.
16658
16659 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16660
16661         * config/s390/s390.c (enum s390_builtin):
16662         Add S390_BUILTIN_S390_SFPC and S390_BUILTIN_S390_EFPC.
16663         (code_for_builtin): Add CODE_FOR_s390_sfpc and CODE_FOR_s390_efpc.
16664         (s390_init_builtins): Generate new builtin functions.
16665         * config/s390/s390.md (UNSPECV_SFPC, UNSPECV_EFPC): New constants.
16666         (s390_sfpc, s390_efpc): New pattern definitions.
16667
16668 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16669
16670         * config/s390/s390.c: (enum s390_builtin, s390_expand_builtin):
16671         Rename S390_BUILTIN_max to S390_BUILTIN_MAX.
16672         (s390_builtin_decls): New array.
16673         (s390_init_builtins): Put builtin decls into s390_builtin_decls.
16674         (s390_builtin_decl): New function.
16675         (TARGET_BUILTIN_DECL): Define macro.
16676
16677 2015-02-27  Richard Biener  <rguenther@suse.de>
16678
16679         PR middle-end/63175
16680         * builtins.c (get_object_alignment_2): Make sure to re-apply
16681         the ANDed mask after recursing to its operand gets us a new
16682         misalignment bit position.
16683
16684 2015-02-26  Jan Hubicka  <hubicka@ucw.cz>
16685             Martin Liska  <mliska@suse.cz>
16686
16687         PR bootstrap/65150
16688         * ipa-icf.c (symbol_compare_collection::symbol_compare_colleciton):
16689         Use address_matters_p.
16690         (redirect_all_callers, set_addressable): New functions.
16691         (sem_function::merge): Reorganize and fix merging issues.
16692         (sem_variable::merge): Likewise.
16693         (sem_variable::compare_sections): Remove.
16694         * common.opt (fmerge-all-constants, fmerge-constants): Remove
16695         Optimization flag.
16696         * symtab.c (symtab_node::resolve_alias): When alias has aliases,
16697         redirect them.
16698         (symtab_node::make_decl_local): Set ADDRESSABLE bit when
16699         decl is used.
16700         (address_matters_1): New function.
16701         (symtab_node::address_matters_p): New function.
16702         * cgraph.c (cgraph_edge::verify_corresponds_to_fndecl): Fix
16703         check for merged flag.
16704         * cgraph.h (address_matters_p): Declare.
16705         (symtab_node::address_taken_from_non_vtable_p): Remove.
16706         (symtab_node::address_can_be_compared_p): New method.
16707         (ipa_ref::address_matters_p): Move here from ipa-ref.c; simplify.
16708         * ipa-visibility.c (symtab_node::address_taken_from_non_vtable_p):
16709         Remove.
16710         (comdat_can_be_unshared_p_1) Use address_matters_p.
16711         (update_vtable_references): Fix formating.
16712         * ipa-ref.c (ipa_ref::address_matters_p): Move inline.
16713         * cgraphunit.c (cgraph_node::create_wrapper): Drop UNINLINABLE flag.
16714         * cgraphclones.c: Preserve merged and icf_merged flags.
16715
16716 2015-02-26  Sandra Loosemore  <sandra@codesourcery.com>
16717
16718         * doc/extend.texi (Function Attributes): Fix spelling and typos.
16719         (Label Attributes): Likewise.
16720         (Cilk Plus Builtins): Likewise.
16721         (ARC SIMD Built-in Functions): Likewise.
16722         (ARM C Language Extensions (ACLE)): Likewise.
16723         (PowerPC Built-in Functions): Likewise.
16724         (PowerPC Hardware Transactional Memory Built-in Functions):
16725         Likewise.
16726
16727 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
16728
16729         PR tree-optimization/65216
16730         * tree-ssa-reassoc.c (rewrite_expr_tree): Force creation of
16731         new stmt and new SSA_NAME for lhs whenever the arguments have
16732         changed and weren't just swapped.  Fix comment typo.
16733
16734         PR tree-optimization/65215
16735         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Return false
16736         for PDP endian targets.
16737         (perform_symbolic_merge, find_bswap_or_nop_1, find_bswap_or_nop):
16738         Fix up formatting issues.
16739         (bswap_replace): Likewise.  For BYTES_BIG_ENDIAN, if the final access
16740         size is smaller than the original, adjust MEM_REF offset by the
16741         difference of sizes.  Use is_gimple_mem_ref_addr instead of
16742         is_gimple_min_invariant test to avoid adding address temporaries.
16743
16744 2015-02-26  Martin Liska  <mliska@suse.cz>
16745             Jan Hubicka  <hubicka@ucw.cz>
16746
16747         PR ipa/64693
16748         * ipa-icf.c (symbol_compare_collection::symbol_compare_collection): New.
16749         (sem_item_optimizer::subdivide_classes_by_sensitive_refs): New function.
16750         (sem_item_optimizer::process_cong_reduction): Include division by
16751         sensitive references.
16752         * ipa-icf.h (struct symbol_compare_hashmap_traits): New class.
16753         * ipa-ref.c (ipa_ref::address_matters_p): New function.
16754         * ipa-ref.h (ipa_ref::address_matters_p): Likewise.
16755
16756 2015-02-26  Georg-Johann Lay  <avr@gjlay.de>
16757
16758         PR target/65192
16759         * config/avr/avr-protos.h (tiny_valid_direct_memory_access_range):
16760         Remove.
16761         * config/avr/avr.c: Same.
16762         (avr_legitimate_address_p) <AVR_TINY, CONSTANT_ADDRESS_P>:
16763         Refuse any constant address not in 0..0xbf.
16764         * config/avr/avr.md (*mov<mode>, *movsf): Remove
16765         tiny_valid_direct_memory_access_range from insn conditions.
16766         (mov<mode>): Don't special-case expansion of avrtiny addresses.
16767
16768 2015-02-26  Oleg Endo  <olegendo@gcc.gnu.org>
16769
16770         PR target/61142
16771         * config/sh/sh.c (sh_check_add_incdec_notes): New function.
16772         * config/sh/sh-protos.h (sh_check_add_incdec_notes): Declare it.
16773         * config/sh/predicates.md (const_logical_operand): New predicate.
16774         * config/sh/sh.md: Add new peephole2 patterns.
16775
16776 2015-02-26  Marek Polacek  <polacek@redhat.com>
16777
16778         PR ipa/65008
16779         * ipa-inline.c (early_inliner): Recompute inline parameters.
16780
16781 2015-02-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16782
16783         PR target/65171
16784         * config/rs6000/rs6000.c (rs6000_analyze_swaps): Ensure
16785         instructions with TImode operands are included in the analysis.
16786
16787 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
16788
16789         * tree-ssa-threadupdate.c (dump_jump_thread_path): Print all edges
16790         of an EDGE_FSM_THREAD.
16791
16792 2015-02-25  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
16793
16794         * config/rs6000/htm.md (tcheck): Fix assembly encoding.
16795
16796 2015-02-25  Aldy Hernandez  <aldyh@redhat.com>
16797
16798         PR debug/46102
16799         * dwarf2out.c (dwarf2out_init): Disable -feliminate-dwarf2-dups.
16800
16801 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
16802
16803         PR tree-optimization/65048
16804         * tree-ssa-threadupdate.c (valid_jump_thread_path): New.
16805         (thread_through_all_blocks): Call valid_jump_thread_path.
16806         Remove invalid FSM jump-thread paths.
16807
16808 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
16809
16810         * passes.c (ipa_write_summaries_1): Call lto_output_init_mode_table.
16811         (ipa_write_optimization_summaries): Likewise.
16812         * tree-streamer.h: Include data-streamer.h.
16813         (streamer_mode_table): Declare extern variable.
16814         (bp_pack_machine_mode, bp_unpack_machine_mode): New inline functions.
16815         * lto-streamer-out.c (lto_output_init_mode_table,
16816         lto_write_mode_table): New functions.
16817         (produce_asm_for_decls): Call lto_write_mode_table when streaming
16818         offloading LTO.
16819         * lto-section-in.c (lto_section_name): Add "mode_table" entry.
16820         (lto_create_simple_input_block): Add mode_table argument to the
16821         lto_input_block constructors.
16822         * ipa-prop.c (ipa_prop_read_section, read_replacements_section):
16823         Likewise.
16824         * data-streamer-in.c (string_for_index): Likewise.
16825         * ipa-inline-analysis.c (inline_read_section): Likewise.
16826         * ipa-icf.c (sem_item_optimizer::read_section): Likewise.
16827         * lto-cgraph.c (input_cgraph_opt_section): Likewise.
16828         * lto-streamer-in.c (lto_read_body_or_constructor,
16829         lto_input_toplevel_asms): Likewise.
16830         (lto_input_mode_table): New function.
16831         * tree-streamer-out.c (pack_ts_fixed_cst_value_fields,
16832         pack_ts_decl_common_value_fields, pack_ts_type_common_value_fields):
16833         Use bp_pack_machine_mode.
16834         * real.h (struct real_format): Add name field.
16835         * lto-streamer.h (enum lto_section_type): Add LTO_section_mode_table.
16836         (class lto_input_block): Add mode_table member.
16837         (lto_input_block::lto_input_block): Add mode_table_ argument,
16838         initialize mode_table.
16839         (struct lto_file_decl_data): Add mode_table field.
16840         (lto_input_mode_table, lto_output_init_mode_table): New prototypes.
16841         * tree-streamer-in.c (unpack_ts_fixed_cst_value_fields,
16842         unpack_ts_decl_common_value_fields,
16843         unpack_ts_type_common_value_fields): Call bp_unpack_machine_mode.
16844         * tree-streamer.c (streamer_mode_table): New variable.
16845         * real.c (ieee_single_format, mips_single_format,
16846         motorola_single_format, spu_single_format, ieee_double_format,
16847         mips_double_format, motorola_double_format,
16848         ieee_extended_motorola_format, ieee_extended_intel_96_format,
16849         ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format,
16850         ibm_extended_format, mips_extended_format, ieee_quad_format,
16851         mips_quad_format, vax_f_format, vax_d_format, vax_g_format,
16852         decimal_single_format, decimal_double_format, decimal_quad_format,
16853         ieee_half_format, arm_half_format, real_internal_format): Add name
16854         field.
16855         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
16856
16857 2015-02-26  Yuri Rumyantsev  <ysrumyan@gmail.com>
16858
16859         PR target/65161
16860         * config/i386/i386.c (ix86_sched_reorder): Skip instruction
16861         reordering for selective scheduling.
16862
16863 2015-02-26  Terry Guo  <terry.guo@arm.com>
16864
16865         * config/arm/arm-cores.def (cortex-m7): Add flag FL_NO_VOLATILE_CE.
16866         * config/arm/arm-protos.h (FL_NO_VOLATILE_CE): New flag.
16867         (arm_arch_no_volatile_ce): Declare new global variable.
16868         * config/arm/arm.c (arm_arch_no_volatile_ce): New global variable.
16869         (arm_option_override): Assign value to arm_arch_no_volatile_ce.
16870         * config/arm/arm.h (arm_arch_no_volatile_ce): Declare it.
16871         (TARGET_NO_VOLATILE_CE): New macro.
16872         * config/arm/arm.md (arm_comparison_operator): Disabled if not allow
16873         volatile memory access in IT block
16874
16875 2015-02-25  Kai Tietz  <ktietz@redhat.com>
16876
16877         PR tree-optimization/61917
16878         * tree-vect-loop.c (vectorizable_reduction): Handle obvious case
16879         that reduc_def_stmt is null.
16880
16881 2015-02-25  Martin Liska  <mliska@suse.cz>
16882
16883         * ipa-icf-gimple.c (func_checker::compare_variable_decl): Compare
16884         hard register variables.
16885
16886 2015-02-25  Kai Tietz  <ktietz@redhat.com>
16887
16888         PR target/64212
16889         * symtab.c (symtab::make_decl_local): Set DECL_IMPORT_P explicit to 0.
16890         (symtab::noninterposable_alias): Likewise.
16891
16892 2015-02-25  Ilya Enkovich  <ilya.enkovich@intel.com>
16893
16894         PR target/65167
16895         * gcc/config/i386/i386.c (ix86_function_arg_regno_p): Support
16896         bounds registers.
16897         (avoid_func_arg_motion): Add dependencies for BNDSTX insns.
16898
16899 2015-02-25  Alan Lawrence  <alan.lawrence@arm.com>
16900
16901         PR target/64997
16902         * config/aarch64/aarch64.md (*xor_one_cmpl<mode>3): Use FP_REGNUM_P
16903         as split condition; force split via '#' in output pattern.
16904
16905 2015-02-25  Richard Biener  <rguenther@suse.de>
16906             Kai Tietz  <ktietz@redhat.com>
16907
16908         PR tree-optimization/61917
16909         * tree-vect-loop.c (vectorizable_reduction): Allow
16910         vect_internal_def without reduction to exit graceful.
16911
16912 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
16913
16914         PR target/65196
16915         * config/avr/avr.c (avr_adjust_insn_length): Call recog_memoized
16916         only with NONDEBUG_INSN_P.
16917
16918 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
16919
16920         Use variadic macros with avr-log.c.
16921
16922         * config/avr/avr-protos.h (avr_vdump): New prototype.
16923         (avr_log_set_caller_e, avr_log_set_caller_f): Remove protos.
16924         (avr_edump, avr_fdump, avr_dump): (Re)define to use avr_vdump.
16925         * config/avr/avr-log.c: Adjust comments.
16926         (avr_vdump): New function.
16927         (avr_vadump): Pass caller as 2nd argument instead of format string.
16928         (avr_log_caller, avr_log_fdump_e, avr_log_fdump_f)
16929         (avr_log_set_caller_e, avr_log_set_caller_f): Remove.
16930
16931 2015-02-25  Jakub Jelinek  <jakub@redhat.com>
16932
16933         PR lto/64374
16934         * target.def (target_option_stream_in): New target hook.
16935         * tree-streamer-in.c (streamer_read_tree_bitfields): Invoke
16936         targetm.target_option.post_stream_in if non-NULL.
16937         * doc/tm.texi.in: Add @hook TARGET_OPTION_POST_STREAM_IN.
16938         * doc/tm.texi: Updated.
16939         * config/i386/i386.c (ix86_function_specific_post_stream_in): New
16940         function.
16941         (TARGET_OPTION_POST_STREAM_IN): Redefine.
16942
16943 2015-02-24  Jeff Law  <law@redhat.com>
16944
16945         PR target/65117
16946         * config/xtensa/xtensa.md (zero_cost_loop_start): Reverse numbering
16947         of operand 0 and operand 2.
16948         (zero_cost_loop_end, loop_end): Similarly.
16949
16950 2015-02-24  Aldy Hernandez  <aldyh@redhat.com>
16951
16952         * gimple.h (gimple_build_assign): Rename CXX_MEM_STAT_DECL to
16953         CXX_MEM_STAT_INFO.
16954
16955 2015-02-24  DJ Delorie  <dj@redhat.com>
16956
16957         * config/rl78/rl78-protos.h (rl78_split_movsi): Accept a mode as well.
16958         * config/rl78/rl78-expand.md (movsf): New, same as movsi.
16959         * config/rl78/rl78.c (rl78_split_movsi): Accept a mode, use it
16960         instead of hardcoding SImode.
16961
16962 2015-02-24  Bernd Schmidt  <bernds@codesourcery.com>
16963
16964         * omp-low.c (create_omp_child_function): Tag entrypoint
16965         functions with a special attribute.
16966
16967 2015-02-24  Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
16968
16969         PR target/65058
16970         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Drop unused variable.
16971
16972 2015-02-24  Vladimir Makarov  <vmakarov@redhat.com>
16973
16974         PR rtl-optimization/65123
16975         * lra-remat.c (operand_to_remat): Check hard regs in insn
16976         definition too.
16977
16978 2015-02-24  Nick Clifton  <nickc@redhat.com>
16979
16980         * config/v850/v850.h (ASM_SPEC): Pass -msoft-float/-mhard-float on
16981         to the assembler.
16982
16983 2015-02-24  Thomas Schwinge  <thomas@codesourcery.com>
16984
16985         PR libgomp/64625
16986         * omp-builtins.def (BUILT_IN_GOACC_DATA_START): Specify as
16987         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR, not
16988         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR.
16989         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_UPDATE): Specify as
16990         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR, not
16991         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR.
16992         (BUILT_IN_GOACC_PARALLEL): Specify as
16993         BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR, not
16994         BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR.
16995         * builtin-types.def
16996         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
16997         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
16998         Remove function types.
16999         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR)
17000         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR)
17001         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
17002         New function types.
17003
17004 2015-02-24  Georg-Johann Lay  <avr@gjlay.de>
17005
17006         * config/avr/stdfix.h [__WITH_AVRLIBC__]: Include <stdfix-avrlibc.h>.
17007
17008 2015-02-24  Jakub Jelinek  <jakub@redhat.com>
17009
17010         PR tree-optimization/65170
17011         * wide-int.cc (wi::mul_internal): For the umul_ppmm optimization,
17012         if val[1] < 0, clear also val[2] and return 3.
17013
17014 2015-02-24  Alan Modra  <amodra@gmail.com>
17015
17016         PR target/65172
17017         * config/rs6000/rs6000.c (get_memref_parts): Only return true
17018         when *base is a reg.  Handle nested plus addresses.  Simplify
17019         pre_modify test.
17020
17021 2015-02-22  Max Filippov  <jcmvbkbc@gmail.com>
17022
17023         * config/xtensa/xtensa.h (CONSTANT_ALIGNMENT, DATA_ALIGNMENT):
17024         use natural alignment when optimizing for size.
17025
17026 2015-02-23  Kaz Kojima  <kkojima@gcc.gnu.org>
17027
17028         PR target/65153
17029         * config/sh/sh.md (movsicc_true+3): Remove peephole.
17030         * config/sh/sh-protos.h (replace_n_hard_rtx): Don't declare.
17031         * config/sh/sh.c (replace_n_hard_rtx): Remove.
17032
17033 2015-02-23  Richard Sandiford  <richard.sandiford@arm.com>
17034
17035         PR fortran/63427
17036         * wide-int.cc (wi::from_mpz): Cope with unwrapped values that are
17037         too big for a wide_int.  Implement missing wrapping operation.
17038
17039 2015-02-23  Oleg Endo  <olegendo@gcc.gnu.org>
17040
17041         PR target/65163
17042         * config/sh/sh.md (swapbsi2, related peephole2): Use const_int -65536
17043         instead of const_int 4294901760.
17044
17045 2015-02-23  Georg-Johann Lay  <avr@gjlay.de>
17046
17047         * config/avr/t-avr: Fix typo in comment.
17048
17049 2015-02-21  Richard Sandiford  <richard.sandiford@arm.com>
17050
17051         * doc/rtl.texi (fma): Clarify documentation.
17052
17053 2015-02-20  Aldy Hernandez  <aldyh@redhat.com>
17054
17055         PR debug/58123
17056         * gimplify.c (gimplify_expr): Prefer location of TRY_FINALLY_EXPR
17057         over input_location.
17058
17059 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
17060
17061         * tree-streamer-in.c (unpack_ts_decl_common_value_fields,
17062         unpack_ts_type_common_value_fields): If ACCEL_COMPILER,
17063         restrict alignments to absolute_biggest_alignment.
17064         * config/i386/i386.c (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT):
17065         Define.
17066         * doc/tm.texi.in (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT): Add.
17067         * doc/tm.texi: Regenerate.
17068         * target.def (absolute_biggest_alignment): New DEFHOOKPOD.
17069
17070 2015-02-20  Vladimir Makarov  <vmakarov@redhat.com>
17071
17072         PR target/64172
17073         * ira-color.c (color_pass): Prevent splitting multi-register pseudos.
17074
17075 2015-02-20  Richard Biener  <rguenther@suse.de>
17076
17077         PR tree-optimization/65136
17078         * tree-ssa-propagate.c: Include cfgloop.h.
17079         (replace_phi_args_in): Avoid replacing loop latch edge PHI
17080         arguments with constants.
17081
17082 2015-02-20  Jakub Jelinek  <jakub@redhat.com>
17083             Martin Liska  <mliska@suse.cz>
17084
17085         PR target/63892
17086         * ipa-icf.c (sem_function::merge): If DECL_COMDAT_GROUP (alias->decl),
17087         don't try to create_thunk if stdarg_p.  If
17088         !sem_item::target_supports_symbol_aliases_p (), similarly, and try to
17089         redirect_callers if possible.
17090         (sem_item_optimizer::execute): Call unregister_hooks here...
17091         (ipa_icf_driver): ... instead of here.
17092
17093 2015-02-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17094
17095         * config/aarch64/aarch64.md (*aarch64_lshr_sisd_or_int_<mode>3):
17096         Mark operand 0 as earlyclobber in 2nd alternative.
17097         (1st define_split below *aarch64_lshr_sisd_or_int_<mode>3):
17098         Write negated shift amount into QI lowpart operand 0 and use it
17099         in the shift step.
17100         (2nd define_split below *aarch64_lshr_sisd_or_int_<mode>3): Likewise.
17101
17102 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
17103
17104         * cgraph.h (clone_function_name_1): Declare.
17105         * cgraphclones.c (clone_function_name_1): New function.
17106         (clone_function_name): Use it.
17107         * lto-partition.c: Include "stringpool.h".
17108         (must_not_rename, maybe_rewrite_identifier)
17109         (validize_symbol_for_target): New static functions.
17110         (privatize_symbol_name): Use must_not_rename.
17111         (promote_symbol): Call validize_symbol_for_target.
17112         (lto_promote_cross_file_statics): Likewise.
17113         (lto_promote_statics_nonwpa): Likewise.
17114
17115 2015-02-20  Georg-Johann Lay  <avr@gjlay.de>
17116
17117         PR target/64452
17118         * config/avr/avr.md (pushhi_insn): New insn.
17119         (push<mode>1): Push virtual regs in one chunk using pushhi1_insn.
17120
17121 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
17122             Jakub Jelinek  <jakub@redhat.com>
17123
17124         * tree-streamer.c (preload_common_nodes): Don't preload
17125         TI_VA_LIST* for offloading.
17126         * tree-stdarg.c (pass_stdarg::gate): Disable for ACCEL_COMPILER
17127         in_lto_p.
17128
17129 2015-02-19  John David Anglin  <danlgin@gcc.gnu.org>
17130
17131         * config/pa/pa.c (pa_emit_move_sequence): Always force
17132         (const (plus (symbol) (const_int))) to const mem.  Put REG_EQUAL
17133         note on insn.
17134
17135         * config/pa/pa.c (pa_reloc_rw_mask): New function.
17136         (TARGET_ASM_RELOC_RW_MASK): Define.
17137         (pa_cannot_force_const_mem): Revert previous change.
17138
17139 2015-02-19  Martin Jambor  <mjmabor@suse.cz>
17140             Jan Hubicka  <hubicka@ucw.cz>
17141
17142         PR ipa/65028
17143         * ipa-cp.c (propagate_alignment_accross_jump_function): Fix propagation
17144         across jump functions.
17145
17146 2015-02-19  Uros Bizjak  <ubizjak@gmail.com>
17147
17148         * config/alpha/alpha.c (alpha_in_small_data_p): Reject common symbols.
17149
17150 2015-02-19  Sandra Loosemore  <sandra@codesourcery.com>
17151
17152         * doc/extend.texi (x86 transactional memory intrinsics): Copy-edit.
17153
17154 2015-02-19  Richard Henderson  <rth@redhat.com>
17155
17156         PR middle-end/65074
17157         * varasm.c (default_binds_local_p_2): Don't test node->definition;
17158         test DECL_EXTERNAL independent of symtab_node.
17159
17160 2015-02-19  Jakub Jelinek  <jakub@redhat.com>
17161
17162         PR lto/65012
17163         * varpool.c (varpool_node::get_constructor): Return early
17164         if this->lto_file_data is NULL.
17165
17166 2015-02-19  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
17167
17168         * haifa-sched.c (enum rfs_decision, rfs_str): Remove RFS_DEBUG.
17169         (rank_for_schedule_debug): Update.
17170         (ready_sort): Make static.  Move sorting logic to ...
17171         (ready_sort_debug, ready_sort_real): New static functions.
17172         (schedule_block): Sort both debug insns and real insns in preparation
17173         for ready list trimming.  Improve debug output.
17174         * sched-int.h (ready_sort): Remove global declaration.
17175
17176 2015-02-18  Trevor Saunders  <tsaunders@mozilla.com>
17177
17178         * ipa-icf.c (sem_function::equals_private): Adjust.
17179         (sem_function::bb_dict_test): Take a vec<int> * instead of
17180         auto_vec<int>.
17181         * ipa-icf.h (bb_dict_test): Likewise.
17182
17183 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
17184
17185         PR gcov-profile/64634
17186         * tree-eh.c (frob_into_branch_around): Fix up typos
17187         in function comment.
17188         (lower_catch): Put eh_seq resulting from EH lowering of
17189         the cleanup sequence after the cleanup rather than before it.
17190
17191 2015-02-18  Tom de Vries  <tom@codesourcery.com>
17192
17193         * common.opt (fstdarg-opt): New option.
17194         * tree-stdarg.c (pass_stdarg::gate): Use flag_stdarg_opt.
17195         * doc/invoke.texi (@item Optimization Options): Add -fstdarg-opt.
17196         (@item -fstdarg-opt): New item.
17197
17198 2015-02-18  H.J. Lu  <hongjiu.lu@intel.com>
17199
17200         PR target/65064
17201         * config/ia64/predicates.md (sdata_symbolic_operand): Return false
17202         for common symbols.
17203
17204 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
17205
17206         * config/i386/t-intelmic (mkoffload.o): Remove dependency on
17207         insn-modes.h.
17208         (ALL_HOST_OBJS): Add mkoffload.o.
17209         * config/nvptx/t-nvptx (ALL_HOST_OBJS): Likewise.
17210
17211 2015-02-18  Jan Hubicka  <hubicka@ucw.cz>
17212
17213         * ipa-devirt.c (odr_subtypes_equivalent_p): Fix formating.
17214         (compare_virtual_tables): Be smarter about skipping typeinfos;
17215         do sane output on virtual table table mismatch.
17216         (warn_odr): Be ready for forward declarations of enums;
17217         output sane info on base mismatch and virtual table mismatch.
17218         (add_type_duplicate): Fix code choosing prevailing type; do not ICE
17219         when only one type is polymorphic.
17220         (get_odr_type): Fix hashtable corruption.
17221         (dump_odr_type): Dump mangled names.
17222
17223 2015-02-18  Richard Biener  <rguenther@suse.de>
17224
17225         PR tree-optimization/65063
17226         * tree-predcom.c (determine_unroll_factor): Return 1 if we
17227         have replaced looparound PHIs.
17228
17229 2015-02-18  Martin Liska  <mliska@suse.cz>
17230
17231         * lto-streamer.c (lto_streamer_init): Encapsulate
17232         streamer_check_handled_ts_structures with checking macro.
17233
17234 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
17235
17236         PR ipa/65087
17237         * cgraphclones.c (cgraph_node::create_virtual_clone): Only copy
17238         section if !implicit_section.
17239         (cgraph_node::create_version_clone_with_body): Likewise.
17240         * trans-mem.c (ipa_tm_create_version): Likewise.
17241
17242 2015-02-18  Richard Biener  <rguenther@suse.de>
17243
17244         PR tree-optimization/62217
17245         * tree-ssa-dom.c (cprop_operand): Avoid propagating copies
17246         into BIVs.
17247
17248 2015-02-18  Marek Polacek  <polacek@redhat.com>
17249
17250         PR sanitizer/65081
17251         * ubsan.c (OBJSZ_MAX_OFFSET): Define.
17252         (ubsan_expand_objsize_ifn): Don't emit run-time check if the offset
17253         is in range [-16K, -1].  Don't issue run-time error if
17254         (ptr > ptr + offset).
17255
17256 2015-02-18  Thomas Schwinge  <thomas@codesourcery.com>
17257
17258         * doc/install.texi (nvptx-*-none): New section.
17259         * doc/invoke.texi (Nvidia PTX Options): Likewise.
17260         * config/nvptx/nvptx.opt: Update.
17261
17262         * config/nvptx/mkoffload.c (parse_env_var, free_array_of_ptrs)
17263         (access_check): New functions, copied from
17264         config/i386/intelmic-mkoffload.c.
17265         (main): For non-installed testing, look in all COMPILER_PATHs for
17266         GCC_INSTALL_NAME.
17267
17268         * config/nvptx/nvptx.h (GOMP_SELF_SPECS): Define macro.
17269
17270 2015-02-18  Andrew Pinski  <apinski@cavium.com>
17271             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
17272
17273         * config/aarch64/aarch64.c (*aarch64_load_symref_appropriately):
17274         Check whether the destination of SYMBOL_SMALL_TPREL is Pmode.
17275
17276 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
17277
17278         * ipa-visibility.c (function_and_variable_visibility): Only
17279         check locality if node is not already local.
17280         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
17281         call_for_symbol_and_aliases instead of
17282         call_for_symbol_thunks_and_aliases.
17283         (ipa_inline): Likewise.
17284         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
17285         first walk aliases.
17286         * ipa.c (symbol_table::remove_unreachable_nodes): Use
17287         call_for_symbol_and_aliases.
17288         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
17289         (ipa_propagate_frequency_1): Use it; use opt_for_fn
17290         (ipa_propagate_frequency): Update.
17291         (ipa_profile): Add opt_for_fn gueards.
17292
17293 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
17294
17295         * config/sh/sh.opt (mcbranch-force-delay-slot): New option.
17296         * doc/invoke.texi (SH options): Document it.
17297         * config/sh/sh.c (sh_insn_length_adjustment): Check
17298         TARGET_CBRANCH_FORCE_DELAY_SLOT instead of sh_cpu_attr == CPU_SH2E.
17299
17300 2015-02-17  H.J. Lu  <hongjiu.lu@intel.com>
17301
17302         * common.opt (fipa-cp-alignment): New.
17303         * ipa-cp.c (ipcp_store_alignment_results): Check
17304         flag_ipa_cp_alignment.
17305         * opts.c (default_options_table): Enable -fipa-cp-alignment for
17306         -O2.
17307         (enable_fdo_optimizations): Set x_flag_ipa_cp_alignment.
17308         * doc/invoke.texi: Document -fipa-cp-alignment.
17309
17310 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
17311
17312         PR target/64793
17313         * config/sh/sh.md (cbranch define_delay): Set annulled true branch insn
17314         to nil.  Adjust comments.
17315
17316 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
17317
17318         * ipa-visibility.c (function_and_variable_visibility): Only
17319         check locality if node is not already local.
17320         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
17321         call_for_symbol_and_aliases instead of
17322         call_for_symbol_thunks_and_aliases.
17323         (ipa_inline): Likewise.
17324         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
17325         first walk aliases.
17326         * ipa.c (symbol_table::remove_unreachable_nodes): Use
17327         call_for_symbol_and_aliases.
17328         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
17329         (ipa_propagate_frequency_1): Use it; use opt_for_fn
17330         (ipa_propagate_frequency): Update.
17331         (ipa_profile): Add opt_for_fn guards.
17332
17333 2015-02-17  Thomas Schwinge  <thomas@codesourcery.com>
17334
17335         * config/nvptx/mkoffload.c (parse_file): Fix logic error in
17336         skipping of "strange" tokens.
17337
17338 2015-02-17  Jeff Law  <law@redhat.com>
17339
17340         * tree-vrp.c (identify_jump_threads): Use last_stmt.  Remove
17341         obsolete comment.
17342
17343 2015-02-17  James Greenhalgh  <james.greenhalgh@arm.com>
17344
17345         * haifa-sched.c (recompute_todo_spec): Treat SCHED_GROUP_P
17346         as forcing a HARD_DEP between instructions, thereby
17347         disallowing rewriting to break dependencies.
17348
17349 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
17350
17351         * symtab.c (symtab_node::verify_base): Verify body_removed->!definiton
17352         * lto-cgraph.c (lto_output_varpool_node): Do not keep definition of
17353         variables in boundary that have no inlitalizer encoded and are
17354         not aliases.
17355         * varasm.c (default_binds_local_p_2): External definitions do not
17356         count as definitions here.
17357
17358 2015-02-16  Jeff Law  <law@redhat.com>
17359
17360         PR tree-optimization/64823
17361         * tree-vrp.c (identify_jump_threads): Handle blocks with no real
17362         statements.
17363         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
17364         threading through blocks with PHIs, but no statements.
17365         (thread_through_normal_block): Distinguish between blocks where
17366         we did not process all the statements and blocks with no statements.
17367
17368 2015-02-16  Jakub Jelinek  <jakub@redhat.com>
17369             James Greenhalgh  <james.greenhalgh@arm.com>
17370
17371         PR ipa/64963
17372         * cgraphclones.c (cgraph_node::create_virtual_clone): Copy
17373         section if not linkonce.  Fix up formatting.
17374         (cgraph_node::create_version_clone_with_body): Copy section.
17375         * trans-mem.c (ipa_tm_create_version): Likewise.
17376
17377 2015-02-16  Richard Biener  <rguenther@suse.de>
17378
17379         PR tree-optimization/65077
17380         * tree-ssa-structalias.c (get_constraint_for_1): Handle
17381         IMAGPART_EXPR, REALPART_EXPR and BIT_FIELD_REF.
17382         (find_func_aliases): Allow float values to carry pointers again.
17383
17384 2015-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
17385
17386         * doc/install.texi (Specific): Reorder targets list to put
17387         aarch64 in alphabetical order.  Add a link to aarch64*-*-*
17388         from the top menu.
17389
17390 2015-02-16  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
17391             David Edelsohn  <dje.gcc@gmail.com>
17392
17393         PR target/65058
17394         * config/rs6000/rs6000.c (rs6000_output_symbol_ref): Append storage
17395         mapping class to external variable or function reference.
17396         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Do not append storage
17397         mapping class.
17398
17399 2015-02-16  David Eelsohn  <dje.gcc@gmail.com>
17400
17401         PR target/53348
17402         * config/rs6000/rs6000.c (rs6000_declare_alias): Only use
17403         ASM_WEAKEN_DECL if defined.
17404
17405 2015-02-16  Richard Biener  <rguenther@suse.de>
17406
17407         PR lto/65015
17408         * varasm.c (default_file_start): For LTO produced units
17409         emit <artificial> as file directive.
17410
17411 2015-02-16  Richard Biener  <rguenther@suse.de>
17412
17413         PR tree-optimization/63593
17414         * tree-predcom.c (execute_pred_commoning_chain): Delay removing
17415         stmts and releasing SSA names until...
17416         (execute_pred_commoning): ... after processing all chains.
17417
17418 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
17419
17420         PR ipa/65059
17421         * ipa-comdats.c (ipa_comdats): Do not categorize thunks to
17422         external functions.
17423
17424 2015-02-15  Sandra Loosemore  <sandra@codesourcery.com>
17425
17426         * doc/bugreport.texi: Adjust section titles throughout the file
17427         to use "Title Case".
17428         * doc/extend.texi: Likewise.
17429         * doc/gcov.texi: Likewise.
17430         * doc/implement-c.texi: Likewise.
17431         * doc/implement-cxx.texi: Likewise.
17432         * doc/invoke.texi: Likewise.
17433         * doc/objc.texi: Likewise.
17434         * doc/standards.texi: Likewise.
17435         * doc/trouble.texi: Likewise.
17436
17437 2015-02-15  Jan Hubicka  <hubicka@ucw.cz>
17438
17439         * cgraph.h (symtab_node::has_aliases_p): Simplify.
17440         (symtab_node::call_for_symbol_and_aliases): Use has_aliases_p
17441         * tree.c (lookup_binfo_at_offset): Make static.
17442         (get_binfo_at_offset): Do not shadow offset; add explanatory
17443         comment.
17444
17445 2015-02-15  John David Anglin  <danglin@gcc.gnu.org>
17446
17447         * config/pa/pa.c (pa_secondary_reload): Request a secondary reload
17448         for all floading point loads and stores except those using a register
17449         index address.
17450         * config/pa/pa.md: Add new patterns to load a lo_sum DLT operand
17451         to a register.
17452
17453 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
17454
17455         * ipa-inline-analysis.c (growth_data): Add uninlinable field.
17456         (do_estimate_growth_1): Record if any uninlinable edge was seen.
17457         (estimate_growth): Handle uninlinable edges correctly.
17458         (check_callers): New.
17459         (growth_likely_positive): Handle aliases correctly.
17460
17461 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
17462
17463         * ipa-chkp.c: Use iterate_direct_aliases.
17464         * symtab.c (resolution_used_from_other_file_p): Move inline.
17465         (symtab_node::create_reference): Fix formating.
17466         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
17467         (symtab_node::iterate_reference): Move inline.
17468         (symtab_node::iterate_referring): Move inline.
17469         (symtab_node::iterate_direct_aliases): Move inline.
17470         (symtab_node::used_from_object_file_p_worker): Inline into ...
17471         (symtab_node::used_from_object_file_p): ... this one; move inline.
17472         (symtab_node::call_for_symbol_and_aliases): Move inline;
17473         use iterate_direct_aliases.
17474         (symtab_node::call_for_symbol_and_aliases_1): New method.
17475         (cgraph_node::call_for_symbol_and_aliases): Move inline;
17476         use iterate_direct_aliases.
17477         (cgraph_node::call_for_symbol_and_aliases_1): New method.
17478         (varpool_node::call_for_node_and_aliases): Rename to ...
17479         (varpool_node::call_for_symbol_and_aliases): ... this one; Move inline;
17480         use iterate_direct_aliases.
17481         (varpool_node::call_for_symbol_and_aliases_1): New method.
17482         * ipa.c (ipa_single_use): Use iterate_direct_aliases.
17483         (ipa_discover_readonly_nonaddressable_var): Update.
17484         * ipa-devirt.c: Fix formating.
17485         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_and_refs_p):
17486         Move inline.
17487         (cgraph_node::call_for_symbol_and_aliases): Move inline.
17488         (cgraph_node::call_for_symbol_and_aliases_1): New function..
17489         * cgraph.h (used_from_object_file_p_worker): Remove.
17490         (resolution_used_from_other_file_p): Move inline.
17491         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
17492         (symtab_node::iterate_reference): Move inline.
17493         (symtab_node::iterate_referring): Move inline.
17494         (symtab_node::iterate_direct_aliases): Move inline.
17495         (symtab_node::used_from_object_file_p_worker): Inline into ...
17496         (symtab_node::used_from_object_file_p): Move inline.
17497         * tree-emutls.c (ipa_lower_emutls): Update.
17498         * varpool.c (varpool_node::call_for_symbol_and_aliases_1): New method.
17499         (varpool_node::call_for_node_and_aliases): Remove.
17500
17501 2015-02-14  Jakub Jelinek  <jakub@redhat.com>
17502
17503         PR tree-optimization/62209
17504         * tree-ssa-reassoc.c (update_range_test): If stmt is a PHI and
17505         op == range->exp, insert seq and gimplified code after labels
17506         instead of after the phi.
17507
17508 2015-02-13  Jeff Law  <law@redhat.com>
17509
17510         PR bootstrap/65060
17511         Revert my change for tree-optimization/64823.
17512
17513 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
17514
17515         PR tree-optimization/65053
17516         * tree-ssa-phiopt.c (value_replacement): When moving assign before
17517         cond, either reset VR on lhs or set it to phi result VR.
17518
17519 2015-02-13  Jeff Law  <law@redhat.com>
17520
17521         PR tree-optimization/64823
17522         * tree-vrp.c (identify_jump_threads): Handle blocks with no statements.
17523         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
17524         threading through blocks with PHIs, but no statements.
17525         (thread_through_normal_block): Distinguish between blocks where
17526         we did not process all the statements and blocks with no statements.
17527
17528         PR rtl-optimization/47477
17529         * match.pd (convert (plus/minus (convert @0) (convert @1): New
17530         simplifier to narrow arithmetic.
17531
17532 2015-02-13  Jan Hubicka  <hubicka@ucw.cz>
17533
17534         PR ipa/65028
17535         * ipa-prop.c (update_indirect_edges_after_inlining): Do not drop
17536         polymorphic call info when type is not known to be preserved.
17537
17538 2015-02-13  Maritn Jambor  <mjambor@suse.cz>
17539
17540         PR ipa/65028
17541         * ipa-inline-transform.c (mark_all_inlined_calls_cdtor): New function.
17542         (inline_call): Use it.
17543
17544 2015-02-13  Thomas Schwinge  <thomas@codesourcery.com>
17545
17546         * config/nvptx/offload.h (ACCEL_COMPILER_acc_device): Define to
17547         GOMP_DEVICE_NVIDIA_PTX.
17548
17549 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
17550
17551         PR ipa/65034
17552         * stmt.c (emit_case_nodes): Use void_type_node instead of
17553         NULL_TREE as LABEL_DECL type.
17554
17555 2015-02-13  John David Anglin  <danglin@gcc.gnu.org>
17556
17557         * config/pa/constraints.md: Change "Q" and "T" constraints to memory
17558         constraints.
17559         * config/pa/pa.c (pa_cannot_force_const_mem): Don't allow constant
17560         symbolic references to data to be forced to constant memory on the
17561         SOM target.
17562
17563 2015-02-13  Ilya Enkovich  <ilya.enkovich@intel.com>
17564
17565         PR tree-optimization/65002
17566         * tree-cfg.c (pass_data_fixup_cfg): Don't update
17567         SSA on start.
17568         * tree-sra.c (some_callers_have_no_vuse_p): New.
17569         (ipa_early_sra): Reject functions whose callers
17570         assume function is read only.
17571
17572 2015-02-13  Richard Biener  <rguenther@suse.de>
17573
17574         PR lto/65015
17575         * dwarf2out.c (dwarf2out_finish): Use <artificial> as DW_AT_name
17576         for LTO produced CUs.
17577
17578 2015-02-13  Bin Cheng  <bin.cheng@arm.com>
17579
17580         PR tree-optimization/64705
17581         * tree-ssa-loop-niter.h (expand_simple_operations): New parameter.
17582         * tree-ssa-loop-niter.c (expand_simple_operations): New parameter.
17583         * tree-ssa-loop-ivopts.c (extract_single_var_from_expr): New.
17584         (find_bivs, find_givs_in_stmt_scev): Pass new argument to
17585         expand_simple_operations.
17586
17587 2015-02-13  H.J. Lu  <hongjiu.lu@intel.com>
17588             Richard Henderson  <rth@redhat.com>
17589
17590         PR rtl/32219
17591         * cgraphunit.c (cgraph_node::finalize_function): Set definition
17592         before notice_global_symbol.
17593         (varpool_node::finalize_decl): Likewise.
17594         * varasm.c (default_binds_local_p_2): Rename from
17595         default_binds_local_p_1, add weak_dominate argument.  Use direct
17596         returns instead of assigning to local variable.  Unify varpool and
17597         cgraph paths via symtab_node.  Reject undef weak variables before
17598         testing visibility.  Reorder tests for simplicity.
17599         (default_binds_local_p): Use default_binds_local_p_2.
17600         (default_binds_local_p_1): Likewise.
17601         (decl_binds_to_current_def_p): Unify varpool and cgraph paths
17602         via symtab_node.
17603         (default_elf_asm_output_external): Emit visibility when specified.
17604
17605 2015-02-13  Alan Modra  <amodra@gmail.com>
17606
17607         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Fix typo in
17608         code setting up r11 for out-of-line fp restore.
17609
17610 2015-02-13  Eric Botcazou  <ebotcazou@adacore.com>
17611
17612         * config/visium/visium.opt (msv-mode): Add RejectNegative and Report.
17613         (muser-mode): Likewise.
17614
17615 2015-02-13  Alan Modra  <amodra@gmail.com>
17616
17617         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Use addsi3_carry
17618         or adddi3_carry when restoring frame_reg_rtx from r0 after restvr.
17619
17620 2015-02-12  David Howells  <dhowells@redhat.com>
17621
17622         * tree-sra.c (dump_dereferences_table): Avoid -Wformat-security
17623         warning.
17624         * tree-ssa-uninit.c (dump_predicates): Likewise.
17625         * opts.c (print_filtered_help): Likewise.
17626
17627 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
17628
17629         * dwarf2out.c (output_die): Use "%s", name instead of name to
17630         avoid -Wformat-security warning.
17631
17632         * dwarf2asm.c (dw2_asm_output_vms_delta): Only define
17633         if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
17634         * dwarf2out.c (output_die): Use dw2_asm_output_vms_delta
17635         only if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
17636
17637 2015-02-12  Jason Merrill  <jason@redhat.com>
17638
17639         * common.opt (-flifetime-dse): New.
17640
17641 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
17642
17643         PR sanitizer/65019
17644         * ubsan.c (ubsan_expand_objsize_ifn): Always return true.
17645
17646         PR tree-optimization/65014
17647         * fold-const.c (fold_binary_loc): When creating {L,R}ROTATE_EXPR,
17648         use original second operand of arg0 or arg1 instead of
17649         that adjusted by STRIP_NOPS.
17650
17651 2015-02-11  Jeff Law  <law@redhat.com>
17652
17653         PR target/63347
17654         * haifa-sched.c (prune_ready_list): If we have a SCHED_GROUP_P insn
17655         that needs to be queued, just queue it for a single cycle.
17656
17657 2015-02-11  Jan Hubicka  <hubicka@ucw.cz>
17658
17659         * ipa.c (symbol_table::remove_unreachable_nodes): Avoid releasing
17660         bodies of thunks; comment on why.
17661         * symtab.c (symtab_node::get_partitioning_class): Aliases of extern
17662         symbols are extern.
17663
17664 2015-02-11  Richard Henderson  <rth@redhat.com>
17665
17666         PR sanitize/65000
17667         * tree-eh.c (mark_reachable_handlers): Mark source and destination
17668         regions of __builtin_eh_copy_values.
17669
17670 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
17671
17672         PR middle-end/65003
17673         * varasm.c (place_block_symbol): Assert that DECL_RTL of the
17674         ultimate alias is MEM with SYMBOL_REF satisfying
17675         SYMBOL_REF_HAS_BLOCK_INFO_P as its operand.  Don't pass the MEM
17676         to place_block_symbol, but instead pass the SYMBOL_REF operand of it.
17677
17678 2015-02-11  Thomas Schwinge  <thomas@codesourcery.com>
17679
17680         * config/nvptx/mkoffload.c: Include "diagnostic.h" instead of
17681         "diagnostic-core.h".
17682         (main): Initialize progname, and call diagnostic_initialize.
17683
17684         * config/nvptx/mkoffload.c (process): Refer to __OFFLOAD_TABLE__
17685         instead of __OPENMP_TARGET__.
17686
17687         * config/nvptx/mkoffload.c: Include "gomp-constants.h".
17688         (process): Use its GOMP_DEVICE_NVIDIA_PTX instead of (wrongly)
17689         hard-coding PTX_ID.
17690
17691 2015-02-11  H.J. Lu  <hongjiu.lu@intel.com>
17692
17693         * doc/sourcebuild.texi (pie_enabled): Document.
17694
17695 2015-02-11  Martin Liska  <mliska@suse.cz>
17696
17697         PR ipa/64813
17698         * cgraphunit.c (cgraph_node::expand_thunk): Do not create
17699         a return value for call to a function that is noreturn.
17700
17701 2015-02-11  Richard Biener  <rguenther@suse.de>
17702
17703         PR lto/65015
17704         * dwarf2out.c (gen_producer_string): Drop -fltrans-output-list
17705         and -fresolution.
17706
17707 2015-02-11  Andrew Pinski  <apinski@cavium.com>
17708
17709         PR target/64893
17710         * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
17711         Change the first argument type to size_type_node and add another
17712         size_type_node.
17713         (aarch64_simd_expand_builtin): Handle the new argument to
17714         AARCH64_SIMD_BUILTIN_LANE_CHECK and don't ICE but rather
17715         print an out when the first two arguments are not
17716         nonzero integer constants.
17717         * config/aarch64/arm_neon.h (__AARCH64_LANE_CHECK):
17718         Pass the sizeof directly to __builtin_aarch64_im_lane_boundsi.
17719
17720 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
17721
17722         PR target/61925
17723         * config/i386/i386.c (ix86_reset_to_default_globals): Removed.
17724         (ix86_reset_previous_fndecl): Restore it here, unconditionally.
17725         (ix86_set_current_function): Rewritten.
17726         (ix86_add_new_builtins): Temporarily clear current_target_pragma
17727         when creating builtin fndecls.
17728
17729 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
17730
17731         PR ipa/65005
17732         * ipa-visibility.c (cgraph_node::non_local_p): Turn into static
17733         function.
17734         * symtab.c (symtab_node::verify_base): Remove check that non-definitions
17735         have no comdat group.
17736         * lto-cgraph.c (lto_output_node): Always output thunk and alias info.
17737         (lto_output_varpool_node): Always output alias info.
17738         (output_refs): Output refs of boundary aliases, too.
17739         (compute_ltrans_boundary): Add alias and thunk target into boundaries.
17740         (output_symtab): Output call eges in thunks in boundary.
17741         (get_alias_symbol): Remove.
17742         (input_node, input_varpool_node): Do not special case weakrefs.
17743         * ipa.c (symbol_table::remove_unreachable_nodes): Do not remove
17744         alias and thunks targets in the boundary; do not take removed symbols
17745         from their comdat groups.
17746         * cgraph.c (cgraph_node::local_info): Look through aliases and thunks.
17747         (cgraph_node::global_info): Remove.
17748         (cgraph_node::rtl_info): Look through aliases and thunks.
17749         * cgrpah.h (global_info): Remove.
17750         (non_local_p): Remove.
17751
17752 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
17753             Sandra Loosemore  <sandra@codesourcery.com>
17754
17755         * doc/invoke.texi (x86 Options [-masm=dialect]): Add cross-references
17756         to inline asm.  List dialects in proper order.
17757
17758 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
17759             Sandra Loosemore  <sandra@codesourcery.com>
17760
17761         * doc/extend.texi (Loop-Specific Pragmas): Fix grammar error.
17762
17763 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
17764
17765         * doc/extend.texi (Symbol-Renaming Pragmas): Restore (slightly
17766         modified) reference to Solaris.
17767
17768 2015-02-10  Sandra Loosemore  <sandra@codesourcery.com>
17769
17770         * doc/extend.texi (Extended Asm): Fix typos.
17771
17772 2015-02-10  Jakub Jelinek  <jakub@redhat.com>
17773
17774         PR sanitizer/65004
17775         * ubsan.c (ubsan_expand_vptr_ifn): Always return true.
17776
17777 2015-02-10  Oleg Endo  <olegendo@gcc.gnu.org>
17778
17779         PR target/64661
17780         * config/sh/sh-protos.h (TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
17781         TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
17782         TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): Add parentheses.
17783         * config/sh/constraints.md (Ara, Add): New constraints.
17784         * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1): New
17785         predicates.
17786         (atomic_compare_and_swap<mode>, atomic_exchange<mode>): Use
17787         atomic_mem_operand_0.  Don't use force_reg on the memory address.
17788         (atomic_compare_and_swapsi_hard): Use atomic_mem_operand_0 predicate and
17789         Sra constraint.  Convert to insn_and_split.  Add workaround for
17790         PR 64974.
17791         (atomic_compare_and_swap<mode>_hard): Copy to
17792         atomic_compare_and_swap<mode>_hard_1.  Convert to insn_and_split.
17793         Use atomic_mem_operand_0 predicate.
17794         (atomic_compare_and_swap<mode>_soft_gusa,
17795         atomic_exchange<mode>_soft_gusa): Use atomic_mem_operand_0 predicate and
17796         AraAdd constraints.
17797         (atomic_compare_and_swap<mode>_soft_tcb,
17798         atomic_compare_and_swap<mode>_soft_imask,
17799         atomic_exchange<mode>_soft_tcb, atomic_exchange<mode>_soft_imask): Use
17800         atomic_mem_operand_0 predicate and SraSdd constraints.
17801         (atomic_exchangesi_hard) Use atomic_mem_operand_0 predicate and Sra
17802         constraint.
17803         (atomic_exchange<mode>_hard): Copy to atomic_exchange<mode>_hard_1.
17804         Convert to insn_and_split.  Use atomic_mem_operand_0 predicate.
17805         (atomic_fetch_<fetchop_name><mode>, atomic_fetch_nand<mode>,
17806         atomic_<fetchop_name>_fetch<mode>): Use atomic_mem_operand_1.  Don't use
17807         force_reg on the memory address.
17808         (atomic_fetch_<fetchop_name>si_hard, atomic_fetch_notsi_hard,
17809         atomic_fetch_nandsi_hard, atomic_<fetchop_name>_fetchsi_hard,
17810         atomic_not_fetchsi_hard, atomic_nand_fetchsi_hard): Use
17811         atomic_mem_operand_1 predicate and Sra constraint.
17812         (atomic_fetch_<fetchop_name><mode>_hard): Copy to
17813         atomic_fetch_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
17814         Use atomic_mem_operand_1 predicate.
17815         (atomic_<fetchop_name><mode>_hard): Copy to
17816         atomic_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
17817         Use atomic_mem_operand_1 predicate.
17818         (atomic_fetch_nand<mode>_hard): Copy to atomic_fetch_nand<mode>_hard_1.
17819         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
17820         (atomic_nand<mode>_hard): Copy to atomic_nand<mode>_hard_1.  Convert to
17821         insn_and_split.  Use atomic_mem_operand_1 predicate.
17822         (atomic_<fetchop_name>_fetch<mode>_hard): Copy to
17823         atomic_<fetchop_name>_fetch<mode>_hard_1.  Convert to insn_and_split.
17824         Use atomic_mem_operand_1 predicate.
17825         (atomic_nand_fetch<mode>_hard): Copy to atomic_nand_fetch<mode>_hard_1.
17826         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
17827         (atomic_fetch_not<mode>_hard, atomic_not_fetch<mode>_hard): Replace mems
17828         in generated insn with original mem operand before emitting the insn.
17829         (atomic_fetch_<fetchop_name><mode>_soft_gusa,
17830         atomic_fetch_not<mode>_soft_gusa, atomic_fetch_nand<mode>_soft_gusa,
17831         atomic_<fetchop_name>_fetch<mode>_soft_gusa,
17832         atomic_not_fetch<mode>_soft_gusa, atomic_nand_fetch<mode>_soft_gusa):
17833         Use atomic_mem_operand_1 predicate and AraAdd constraints.
17834         (atomic_fetch_<fetchop_name><mode>_soft_tcb,
17835         atomic_<fetchop_name><mode>_soft_tcb, atomic_fetch_not<mode>_soft_tcb,
17836         atomic_not<mode>_soft_tcb, atomic_fetch_<fetchop_name><mode>_soft_imask,
17837         atomic_fetch_not<mode>_soft_imask, atomic_fetch_nand<mode>_soft_tcb,
17838         atomic_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask,
17839         atomic_<fetchop_name>_fetch<mode>_soft_tcb,
17840         atomic_not_fetch<mode>_soft_tcb,
17841         atomic_<fetchop_name>_fetch<mode>_soft_imask,
17842         atomic_not_fetch<mode>_soft_imask, atomic_nand_fetch<mode>,
17843         atomic_nand_fetch<mode>_soft_tcb, atomic_nand_fetch<mode>_soft_imask):
17844         Use atomic_mem_operand_1 predicate and SraSdd constraints.
17845
17846 2015-02-10  Uros Bizjak  <ubizjak@gmail.com>
17847
17848         * config/alpha/alpha.md (reload_out<mode>_aligned): Make operands 2
17849         and 3 earlyclobber operands.
17850
17851 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
17852
17853         * common.opt (fstack-reuse): Mark as optimization.
17854
17855 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
17856
17857         PR ipa/64982
17858         * cgraphunit.c (cgraph_node::expand_thunk): Look for stdarg thunks.
17859
17860 2015-02-10  Trevor Saunders  <tsaunders@mozilla.com>
17861
17862         PR tree-optimization/64326
17863         * cfghooks.c (make_forwarder_block): Cap frequency of created block.
17864
17865 2015-02-10  Rainer Emrich  <rainer@emrich-ebersheim.de>
17866
17867         PR gcov-profile/61889
17868         * gcov-tool.c: Remove wrong #if !defined(_WIN32)
17869
17870 2015-02-10  Richard Biener  <rguenther@suse.de>
17871
17872         PR tree-optimization/64995
17873         * tree-ssa-sccvn.c (set_ssa_val_to): Assert that the
17874         value we use is final.
17875         (visit_reference_op_store): Always valueize op.
17876         (visit_use): Properly valueize vuses.
17877
17878 2015-02-10  Richard Biener  <rguenther@suse.de>
17879
17880         PR tree-optimization/64909
17881         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Properly
17882         pass a scalar-stmt count estimate to the cost model.
17883         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Likewise.
17884
17885 2015-02-10  Alexander Monakov  <amonakov@ispras.ru>
17886
17887         * doc/invoke.texi (-fvar-tracking-assignments): Clarify that VTA is
17888         enabled by default together with var-tracking.
17889
17890 2015-02-10  Nick Clifton  <nickc@redhat.com>
17891
17892         * config/rl78/rl78.c: Remove DIV attribute code accidentally
17893         included in previous rl78 commit.
17894
17895 2015-02-10  Richard Biener  <rguenther@suse.de>
17896
17897         * tree-streamer.h (streamer_read_tree_bitfields): Adjust.
17898         * tree-streamer-in.c (streamer_read_tree_bitfields): Do not
17899         return the bitpack.
17900
17901 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
17902
17903         PR gcov-profile/61889
17904         * config.in: regenerate.
17905         * configure.in: Likewise.
17906         * configure.ac: Check for ftw.h.
17907         * gcov-tool.c: Check for ftw.h before using nftw.
17908
17909 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
17910
17911         PR lto/64076
17912         * ipa-visibility.c (update_visibility_by_resolution_info): Only
17913         assert when not in lto mode.
17914
17915 2015-02-09  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
17916
17917         * ira-color.c (setup_left_conflict_sizes_p): Simplify
17918         initialization/assignment of conflict_size.
17919
17920 2015-02-09  Jan Hubicka  <hubicka@ucw.cz>
17921
17922         PR ipa/64978
17923         * ipa-cp.c (gather_caller_stats): Skip thunks.
17924         (propagate_constants_topo): Skip aliases.
17925
17926 2015-02-09  Kaz Kojima  <kkojima@gcc.gnu.org>
17927
17928         PR target/64761
17929         * config/sh/sh.c (sh_option_override): Don't change
17930         -freorder-blocks-and-partition to -freorder-blocks even when
17931         unwinding is enabled.
17932         (sh_can_follow_jump): Return false if the followee jump is
17933         a crossing jump when -freorder-blocks-and-partition is specified.
17934         * config/sh/sh.md (*jump_compact_crossing): New insn.
17935
17936 2015-02-09  Joern Rennecke  <joern.rennecke@embecosm.com>
17937             Kaz Kojima  <kkojima@gcc.gnu.org>
17938
17939         PR target/64761
17940         * config/sh/sh-protos.h (sh_can_redirect_branch): Don't declare.
17941         * config/sh/sh.c (TARGET_CAN_FOLLOW_JUMP): Redefine.
17942         (sh_can_redirect_branch): Rename to ...
17943         (sh_can_follow_jump): ... this.  Constify argument types.
17944         * config/sh/sh.h (MD_CAN_REDIRECT_BRANCH): Don't define.
17945         * doc/tm.texi.in (MD_CAN_REDIRECT_BRANCH): Remove documentation.
17946         * reorg.c (steal_delay_list_from_target): Use targetm.can_follow_jump.
17947         * doc/tm.texi: Regenerate.
17948
17949 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
17950
17951         PR sanitizer/64981
17952         * builtins.c (expand_builtin): Call targetm.expand_builtin
17953         for BUILT_IN_MD builtins regardless of asan_intercepted_p.
17954
17955 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
17956
17957         PR ipa/61548
17958         * tree-emutls.c (ipa_lower_emutls): Avoid duplicates in TLS_VARS.
17959
17960 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
17961
17962         PR ipa/63566
17963         * ipa-icf.c (set_local): New function.
17964         (sem_function::merge): Use it.
17965
17966 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
17967
17968         * ipa-devirt.c (odr_types_equivalent_p): Fix formating.
17969         (add_type_duplicate): Fix comparison of BINFOs.
17970
17971 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
17972
17973         * ipa-polymorphic-call.c (ipa_polymorphic_call_context): Avoid ICE
17974         on getting VOID pointer.
17975
17976 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
17977
17978         PR target/64979
17979         * tree-stdarg.c (pass_stdarg::execute): Scan phi node args for
17980         va_list escapes.
17981
17982 2015-02-09  Richard Biener  <rguenther@suse.de>
17983
17984         * genmatch.c (replace_id): Copy expr_type.
17985
17986 2015-02-09  Richard Biener  <rguenther@suse.de>
17987
17988         * tree-streamer.h (streamer_pack_tree_bitfields): Remove.
17989         (streamer_write_tree_bitfields): Declare.
17990         * tree-streamer-in.c (unpack_ts_base_value_fields): Inline,
17991         properly unpack padding.
17992         (unpack_value_fields): Inline ...
17993         (streamer_read_tree_bitfields): ... here.
17994         * tree-streamer-out.c (pack_ts_base_value_fields): Inline
17995         and properly add padding bits.
17996         (streamer_pack_tree_bitfields): Fold into ...
17997         (streamer_write_tree_bitfields): ... this new function,
17998         exposing the bitpack object.
17999         * lto-streamer-out.c (lto_write_tree_1): Call
18000         streamer_write_tree_bitfields.
18001
18002 2015-02-09  Richard Biener  <rguenther@suse.de>
18003
18004         PR tree-optimization/54000
18005         * tree-ssa-looo-ivopts.c: Include tree-vectorizer.h.
18006         (struct ivopts_data): Add loop_loc member.
18007         (tree_ssa_iv_optimize_loop): Dump loop location.
18008         (create_new_ivs): Likewise, also dump number of IVs generated.
18009
18010 2015-02-09  Martin Liska  <mliska@suse.cz>
18011
18012         * ipa-icf.c (sem_item_optimizer::register_hooks): Register hooks
18013         just if not yet registered.
18014         (ipa_icf_generate_summary): Register callgraph hooks.
18015
18016 2015-02-08  Andrew Pinski  <apinski@cavium.com>
18017
18018         * config/aarch64/aarch64.c (gty_dummy): Delete.
18019
18020 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
18021
18022         PR ipa/63566
18023         * ipa-visibility.c (cgraph_node::non_local_p): Accept aliases.
18024         (cgraph_node::local_p): Remove thunk related FIXME.
18025
18026 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
18027
18028         PR ipa/63566
18029         * i386.c (ix86_function_regparm): Look through aliases to see if callee
18030         is local and optimized.
18031         (ix86_function_sseregparm): Likewise; also use target's SSE math
18032         settings; error out instead of silently generating wrong code
18033         on mismatches.
18034         (init_cumulative_args): Look through aliases.
18035
18036 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
18037
18038         PR ipa/63566
18039         * ipa-split.c (execute_split_functions): Split if function has aliases.
18040
18041 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
18042
18043         PR ipa/63566
18044         * cgraphunit.c (cgraph_node::analyze): Be sure target of thunk is
18045         aliases before trying to expand it.
18046         (cgraph_node::expand_thunk): Fix formating.
18047
18048 2015-02-07  Sandra Loosemore  <sandra@codesourcery.com>
18049
18050         * doc/extend.texi (Function Attributes [naked]): Copy-edit.
18051         (Using Assembly Language with C): Expand introduction.
18052         (Basic Asm): Copy-edit.  Add more information about uses of
18053         basic asm.
18054         (Extended Asm): Copy-edit.  Document new escape syntax and
18055         %l[label] syntax.
18056         (Global Reg Vars): Copy-edit.
18057         (Local Reg Vars): Likewise.
18058
18059 2015-02-06  David Edelsohn  <dje.gcc@gmail.com>
18060
18061         PR debug/2714
18062         PR bootstrap/64256
18063         * xcoffout.h (DBX_CONTIN_LENGTH): Define as 16384.
18064         (DBX_CONTIN_CHAR): Define.
18065
18066 2015-02-06  Sebastian Pop  <s.pop@samsung.com>
18067             Brian Rzycki  <b.rzycki@samsung.com>
18068
18069         PR tree-optimization/64878
18070         * tree-ssa-threadedge.c: Include tree-ssa-loop.h.
18071         (fsm_find_control_statement_thread_paths): Add parameter seen_loop_phi.
18072         Stop recursion at loop phi nodes after having visited a loop phi node.
18073
18074 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
18075
18076         * toplev.c (process_options): Change flag_ipa_ra before creating
18077         optimization_{default,current}_node.
18078
18079         PR ipa/64896
18080         * cgraphunit.c (cgraph_node::expand_thunk): If
18081         restype is not is_gimple_reg_type nor the thunk_fndecl
18082         returns aggregate_value_p, set restmp to a temporary variable
18083         instead of resdecl.
18084
18085 2015-02-06  Vladimir Makarov  <vmakarov@redhat.com>
18086
18087         * lra.c (lra_emit_add): Fix a typo in using disp instead of base.
18088
18089 2015-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
18090
18091         PR target/64205
18092         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
18093         add a general secondary reload handler for SDmode, unless we have
18094         both read/write support for SDmode.
18095
18096 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
18097
18098         PR middle-end/64937
18099         * dwarf2out.c (set_block_abstract_flags, set_decl_abstract_flags):
18100         Replace setting argument with abstract_vec, always set BLOCK_ABSTRACT
18101         or DECL_ABSTRACT_P flags to 1 rather than to setting, and if it wasn't
18102         1 before, push it to abstract_vec.
18103         (dwarf2out_abstract_function): Adjust caller.  Don't call
18104         set_decl_abstract_flags second time, instead clear BLOCK_ABSTRACT or
18105         DECL_ABSTRACT_P flags for all abstract_vec elts.
18106
18107 2015-02-06  Renlin Li  <renlin.li@arm.com>
18108
18109         * tree-ssa-forwprop.c (execute): Keep location info while rewrite
18110         complex gimple.
18111         * tree-ssa.c (execute_update_addresses_taken): Likewise.
18112
18113 2015-02-06  Jeff Law  <law@redhat.com>
18114
18115         PR target/64889
18116         * config/h8300/h8300.c (push): New argument "in_prologue".
18117         Pass "in_prologue" along to "F".
18118         (h8300_push_pop): Corresponding changes.
18119         (h8300_expand_prologue): Likewise.
18120         (h8300_swap_into_er6): Likewise.  Do not set RTX_FRAME_RELATED_P.
18121
18122 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
18123
18124         PR rtl-optimization/64957
18125         PR debug/64817
18126         * simplify-rtx.c (simplify_binary_operation_1): Use ~cval for
18127         IOR rather than for AND.
18128
18129 2015-02-06  Eric Botcazou  <ebotcazou@adacore.com>
18130
18131         PR target/62631
18132         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Use the mininum of costs
18133         of shift-add and (add + shift) operations.  Rename local variable.
18134
18135 2015-02-05  Jeff Law  <law@redhat.com>
18136
18137         PR target/17306
18138         * config/h8300/constraints.md (U): Correctly dectect
18139         "eightbit_data" memory addresses.
18140         * config/h8300/h8300.c (eightbit_constant_address_p): Also
18141         handle (const (plus (symbol_ref (x)))) where x is declared
18142         as an 8-bit data memory address.
18143         * config/h8300/h8300.md (call, call_value): Correctly detect
18144         "funcvec" functions.
18145
18146         PR target/43264
18147         * config/h8300/h8300.c (get_shift_alg): Fix ASHIFTRT by
18148         24 to 28 bits for the H8/300.
18149
18150 2015-02-06  Alan Modra  <amodra@gmail.com>
18151
18152         PR target/64876
18153         * config/rs6000/rs6000.c (chain_already_loaded): New function.
18154         (rs6000_call_aix): Use it.
18155
18156 2015-02-05  Jan Hubicka <hubicka@ucw.cz>
18157
18158         * ipa-cp.c (ipa_value_from_jfunc, ipa_context_from_jfunc): Add bounds
18159         check.
18160
18161 2015-02-05  Joern Rennecke  <joern.rennecke@embecosm.com>
18162
18163         * config/h8300/constraints.md ("U" constraint): Use strict
18164         variant of REG_OK_FOR_BASE_P after reload has started.
18165
18166 2015-02-04  Mantas Mikaitis  <mantas.mikaitis@arm.com>
18167
18168         * config/arm/arm.h (TARGET_NEON_FP): Removed conditional definition,
18169         define to zero if !TARGET_NEON.
18170         (TARGET_ARM_FP): Added !TARGET_SOFT_FLOAT into conditional definition.
18171
18172 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
18173             Trevor Saunders  <tsaunders@mozilla.com>
18174
18175         PR ipa/61548
18176         * tree-emultls.c (new_emutls_decl): Resolve alias after creating it.
18177
18178 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
18179
18180         PR ipa/61548
18181         * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering issue
18182         when removing varpool nodes.
18183
18184 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
18185
18186         PR ipa/61548
18187         * varpool.c (varpool_node::remove): Fix order of variables.
18188
18189 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
18190
18191         PR ipa/64686
18192         * ipa-inline.c (inline_small_functions): Fix ordering issue between
18193         speculation resolution and key updates.
18194
18195 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
18196
18197         * ipa-prop.c (update_indirect_edges_after_inlining): By more careful
18198         about not letting any speculative edges unupdated.
18199
18200 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
18201
18202         PR gcov/64123
18203         * gcov-io.c (gcov_var): Export.
18204
18205 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
18206
18207         PR middle-end/64922
18208         * ipa-prop.c (update_indirect_edges_after_inlining): Correctly update
18209         edges that become speculative.
18210
18211 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
18212
18213         * dwarf2out.c (is_fortran): Also return true for DW_LANG_Fortran03
18214         or DW_LANG_Fortran08.
18215         (lower_bound_default): Return 1 for DW_LANG_Fortran03 or
18216         DW_LANG_Fortran08.
18217         (gen_compile_unit_die): Handle "GNU Fortran2003" and
18218         "GNU Fortran2008" language strings.
18219         * dbxout.c (get_lang_number): Use lang_GNU_Fortran.
18220         * langhooks.h (lang_GNU_Fortran): New prototype.
18221         * langhooks.c (lang_GNU_Fortran): New function.
18222         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
18223         lang_GNU_Fortran.
18224
18225 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
18226
18227         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P): Fix off-by-one error.
18228         (RTX_OK_FOR_OLO10_P): Likewise.
18229
18230 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
18231
18232         * tree-ssa-loop-ivopts.c (get_address_cost): Use right mode for offset.
18233
18234 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
18235
18236         PR middle-end/64922
18237         * gimple.c: Include gimple-ssa.h.
18238         (maybe_remove_unused_call_args): New function.
18239         * gimple.h (maybe_remove_unused_call_args): Declare.
18240         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
18241         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
18242         * gimple-fold.c (gimple_fold_call): Likewise.
18243
18244 2015-02-04  H.J. Lu  <hongjiu.lu@intel.com>
18245
18246         PR rtl-optimization/64905
18247         * lra-eliminations.c (setup_can_eliminate): Clear hard frame
18248         pointer alignment if it isn't needed.
18249
18250 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
18251
18252         * config/aarch64/aarch64-cores.def: Add cortex-a72 and
18253         cortex-a72.cortex-a53.
18254         * config/aarch64/aarch64-tune.md: Regenerate.
18255         * doc/invoke.texi (AArch64 Options/-mtune): Add "cortex-a72".
18256
18257 2015-02-04  Nick Clifton  <nickc@redhat.com>
18258
18259         * config/rl78/rl78.c (rl78_note_reg_set): Note the use of REGs
18260         inside a MEM.
18261
18262 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
18263
18264         * builtins.def (DEF_BUILTIN_CHKP): Define if not defined.
18265         (DEF_LIB_BUILTIN_CHKP, DEF_EXT_LIB_BUILTIN_CHKP): Redefine.
18266         (DEF_CHKP_BUILTIN): Define using DEF_BUILTIN_CHKP instead
18267         of DEF_BUILTIN.
18268         (BUILT_IN_MEMCPY, BUILT_IN_MEMMOVE, BUILT_IN_MEMSET, BUILT_IN_STRCAT,
18269         BUILT_IN_STRCHR, BUILT_IN_STRCPY, BUILT_IN_STRLEN): Use
18270         DEF_LIB_BUILTIN_CHKP macro instead of DEF_LIB_BUILTIN.
18271         (BUILT_IN_MEMCPY_CHK, BUILT_IN_MEMMOVE_CHK, BUILT_IN_MEMPCPY_CHK,
18272         BUILT_IN_MEMPCPY, BUILT_IN_MEMSET_CHK, BUILT_IN_STPCPY_CHK,
18273         BUILT_IN_STPCPY, BUILT_IN_STRCAT_CHK, BUILT_IN_STRCPY_CHK): Use
18274         DEF_EXT_LIB_BUILTIN_CHKP macro instead of DEF_EXT_LIB_BUILTIN.
18275         * tree-core.h (enum built_in_function): In between
18276         BEGIN_CHKP_BUILTINS and END_CHKP_BUILTINS only define enum values
18277         for builtins that use DEF_BUILTIN_CHKP macro.
18278
18279 2015-02-04  Alexandre Oliva <aoliva@redhat.com>
18280
18281         PR debug/64817
18282         * cfgexpand.c (expand_debug_expr): Compute unsignedp from
18283         operands for tcc_comparison exprs.  Fix typos.
18284
18285         PR debug/64817
18286         * simplify-rtx.c (simplify_binary_operation_1): Simplify one
18287         of two XORs that have an intervening AND or IOR.
18288
18289         PR debug/64817
18290         * simplify-rtx.c (simplify_binary_operation_1): Rewrite
18291         simplification of XOR of AND to not allocate new rtx before
18292         committing to a simplification.
18293
18294 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18295
18296         * config/aarch64/aarch64-ldpstp.md: Use std::swap instead of
18297         manual swaps in all peepholes.
18298
18299 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18300
18301         * config/aarch64/aarch64.c (aarch64_evpc_ext): Use std::swap instead
18302         of manual swapping implementation.
18303         (aarch64_expand_vec_perm_const_1): Likewise.
18304
18305 2015-02-04  James Greenhalgh <james.greenhalgh@arm.com>
18306
18307         * config/aarch64/aarch64.c (NAMED_PARAM): Delete it.
18308         (generic_addrcost_table): Remove NAMED_PARAM.
18309         (cortexa57_addrcost_table): Likewise.
18310         (xgene1_addrcost_table): Likewise.
18311         (generic_regmove_table): Likewise.
18312         (cortexa53_regmove_table): Likewise.
18313         (xgene1_regmove_table): Likewise.
18314         (generic_vector_table): Likewise.
18315         (cortexa57_vector_table): Likewise.
18316         (xgene1_vector_table): Likewise.
18317         (generic_tunings): Likewise.
18318         (cortexa53_tunings): Likewise.
18319         (cortexa57_tunings): Likewise.
18320         (xgene1_tunings): Likewise.
18321
18322 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
18323
18324         * config/arm/arm-cores.def: Add cortex-a72 and
18325         cortex-a72.cortex-a53.
18326         * config/arm/bpabi.h (BE8_LINK_SPEC): Likewise.
18327         * config/arm/t-aprofile (MULTILIB_MATCHES): Likewise.
18328         * config/arm/arm-tune.md: Regenerate.
18329         * config/arm/arm-tables.opt: Add entries for "cortex-a72" and
18330         "cortex-a72.cortex-a53".
18331         * doc/invoke.texi (ARM Options/-mtune): Likewise.
18332
18333 2015-02-04  Nick Clifton  <nickc@redhat.com>
18334
18335         PR target/64408
18336         * config/fr30/predicates.md (di_operand): Add SUBREG to the list
18337         of accepted codes.
18338         (nonimmediate_di_operand): Likewise.
18339
18340         * config/msp430/msp430.c (msp430_use_f5_series_hwmult): Add more
18341         prefixes of known F5 using MSP430 MCUs.
18342
18343 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18344
18345         * config/aarch64/aarch64-simd-builtins.def (sqrt): Use BUILTIN_VDQF_DF.
18346         * config/aarch64/arm_neon.h (vsqrt_f64): Use __builtin_aarch64_sqrtdf
18347         instead of __builtin_sqrt.
18348
18349 2015-02-04  Ilya Enkovich  <ilya.enkovich@intel.com>
18350
18351         * varasm.c (do_assemble_alias): Follow transparent alias
18352         chain for target.
18353         (default_assemble_visibility): Follow transparent alias
18354         chain for decl name.
18355
18356 2015-02-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
18357
18358         PR middle-end/62103
18359         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use TYPE_PRECISION
18360         to compute size of referenced value in the constant case.
18361
18362 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
18363
18364         PR rtl-optimization/64756
18365         * cse.c (invalidate_dest): New function.
18366         (cse_insn): Use it.  If dest != SET_DEST (sets[i].rtl) and
18367         HASH (SET_DEST (sets[i].rtl), mode) computation sets do_not_record,
18368         invalidate and do not record it.
18369
18370 2015-02-03  Oleg Endo  <olegendo@gcc.gnu.org>
18371
18372         PR target/64660
18373         * config/sh/sync.md (atomic_<fetchop_name><mode>_hard,
18374         atomic_not<mode>_hard, atomic_<fetchop_name><mode>_soft_tcb,
18375         atomic_not<mode>_soft_tcb, atomic_nand<mode>_hard,
18376         atomic_nand<mode>_soft_tcb): New insns.
18377         (atomic_fetch_<fetchop_name>si_hard): Convert to insn_and_split.
18378         Split into atomic_<fetchop_name>_fetchsi_hard if operands[0] is unused.
18379         (define_insn "atomic_fetch_notsi_hard): Convert to insn_and_split.
18380         Split into atomic_not_fetchsi_hard if operands[0] is unused.
18381         (atomic_fetch_<fetchop_name><mode>_hard): Convert to insn_and_split.
18382         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
18383         (atomic_fetch_not<mode>_hard): Convert to insn_and_split.  Split into
18384         atomic_not<mode>_hard if operands[0] is unused.
18385         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Convert to
18386         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_gusa
18387         if operands[0] is unused.
18388         (atomic_fetch_not<mode>_soft_gusa): Convert to insn_and_split.  Split
18389         into atomic_not_fetch<mode>_soft_gusa if operands[0] is unused.
18390         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Convert to insn_and_split.
18391         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
18392         unused.
18393         (atomic_fetch_not<mode>_soft_tcb): Convert to insn_and_split.  Split
18394         into atomic_not<mode>_soft_tcb if operands[0] is unused.
18395         (atomic_fetch_<fetchop_name><mode>_soft_imask): Convert to
18396         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_imask
18397         if operands[0] is unused.
18398         (atomic_fetch_not<mode>_soft_imask): Convert to insn_and_split.  Split
18399         into atomic_not_fetch<mode>_soft_imask is operands[0] is unused.
18400         (atomic_fetch_nandsi_hard): Convert to insn_and_split.  Split into
18401         atomic_nand_fetchsi_hard if operands[0] is unused.
18402         (atomic_fetch_nand<mode>_hard): Convert to insn_and_split.  Split into
18403         atomic_nand<mode>_hard if operands[0] is unused.
18404         (atomic_fetch_nand<mode>_soft_gusa): Convert to insn_and_split.  Split
18405         into atomic_nand_fetch<mode>_soft_gusa if operands[0] is unused.
18406         (atomic_fetch_nand<mode>_soft_tcb): Convert to insn_and_split.  Split
18407         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
18408         (atomic_fetch_nand<mode>_soft_imask): Convert to insn_and_split.  Split
18409         into atomic_nand_fetch<mode>_soft_imask if operands[0] is unused.
18410         (atomic_<fetchop_name>_fetch<mode>_hard): Convert to insn_and_split.
18411         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
18412         (atomic_not_fetch<mode>_hard): Convert to insn_and_split.  Split into
18413         atomic_not<mode>_hard if operands[0] is unused.
18414         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Convert to insn_and_split.
18415         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
18416         unused.
18417         (atomic_not_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
18418         into atomic_not<mode>_soft_tcb if operands[0] is unused.
18419         (atomic_nand_fetch<mode>_hard): Convert to insn_and_split.  Split into
18420         atomic_nand<mode>_hard if operands[0] is unused.
18421         (atomic_nand_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
18422         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
18423
18424 2015-02-03  David Malcolm  <dmalcolm@redhat.com>
18425
18426         PR jit/64810
18427         * Makefile.in (GCC_OBJS): Add gcc-main.o.
18428         * gcc-main.c: New file, containing "main" taken from gcc.c.
18429         * gcc.c (do_self_spec): Free decoded_options.
18430         (class driver): Move declaration to gcc.h.
18431         (main): Move declaration and implementation to new file
18432         gcc-main.c.
18433         (driver_get_configure_time_options): New function.
18434         * gcc.h (class driver): Move this declaration here, from
18435         gcc.c.
18436         (driver_get_configure_time_options): New declaration.
18437
18438 2015-02-03  Jan Hubicka  <hubicka@ucw.cz>
18439
18440         * ipa-inline-analysis.c (simple_edge_hints): Fix check for
18441         cross-module inlining.
18442         * cgraph.h (cgraph_node): Add flag merged.
18443         * ipa-icf.c (sem_function::merge): Maintain it.
18444
18445 2015-02-03  Richard Sandiford  <richard.sandiford@arm.com>
18446
18447         * config/arm/arm.c (thumb2_reorg): Test UNARY_P and BINARY_P
18448         instead of OBJECT_P.
18449
18450 2015-02-03  Eric Botcazou  <ebotcazou@adacore.com>
18451
18452         PR target/62631
18453         * config/sparc/sparc.h (TARGET_HARD_MUL): Remove TARGET_V8PLUS.
18454         (TARGET_HARD_MUL32): Rewrite based on TARGET_HARD_MUL.
18455         * config/sparc/sparc.c (sparc_rtx_costs) <MULT>: Return costs based on
18456         int_mulX for integers in 64-bit mode if TARGET_HARD_MUL is not set.
18457
18458 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
18459
18460         PR other/63504
18461         * combine.c (reg_n_sets_max): New variable.
18462         (can_change_dest_mode, reg_nonzero_bits_for_combine,
18463         reg_num_sign_bit_copies_for_combine, get_last_value_validate,
18464         get_last_value): Use REG_N_SETS only on pseudos < reg_n_sets_max.
18465         (try_combine): Use INC_REG_N_SETS only on pseudos < reg_n_sets_max.
18466         (rest_of_handle_combine): Initialize reg_n_sets_max.
18467
18468 2015-02-02  Jan Hubicka  <hubicka@ucw.cz>
18469
18470         * ipa-inline.c (early_inliner): Skip inlining only in always_inlined;
18471         if some always_inline was inlined, apply changes before inlining
18472         heuristically.
18473
18474 2015-02-02  David Malcolm  <dmalcolm@redhat.com>
18475
18476         PR jit/64810
18477         * config/arm/arm.c (arm_option_override): Set
18478         arm_selected_arch/cpu/tune to NULL on entry.
18479
18480 2015-02-02  Tejas Belagod  <tejas.belagod@arm.com>
18481             Andrew Pinski  <pinskia@gcc.gnu.org>
18482             Jakub Jelinek  <jakub@gcc.gnu.org>
18483
18484         PR target/64231
18485         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix large
18486         integer typing for small model. Use IN_RANGE.
18487
18488 2015-02-02  Richard Biener  <rguenther@suse.de>
18489
18490         * tree-ssa-ccp.c (valueize_op_1): Always allow valueizing default-defs.
18491         * tree-vrp.c (vrp_valueize_1): Likewise.
18492
18493 2015-02-02  Alan Modra  <amodra@gmail.com>
18494
18495         * config/rs6000/rs6000.c (rs6000_call_aix): Use unspec rather
18496         than mem for toc_restore.
18497         * config/rs6000/rs6000.md (UNSPEC_TOCSLOT): Define.
18498         (call_indirect_aix, call_value_indirect_aix): Adjust to suit.
18499         (call_indirect_elfv2, call_value_indirect_elfv2): Likewise.
18500
18501 2015-02-01  David Edelsohn  <dje.gcc@gmail.com>
18502
18503         PR target/64047
18504         * config/rs6000/rs6000.c (rs6000_set_current_function): Handle
18505         explicit default options.
18506
18507 2015-02-01  Jan Hubicka  <hubicka@ucw.cz>
18508
18509         PR ipa/64872
18510         * ipa-utils.c (ipa_merge_profiles): Add release argument.
18511         * ipa-icf.c (sem_function::merge): Do not release body when merging.
18512         * ipa-utils.h (ipa_merge_profiles): Update prototype.
18513
18514 2015-02-01  Jakub Jelinek  <jakub@redhat.com>
18515
18516         PR debug/64817
18517         * cfgexpand.c (deep_ter_debug_map): New variable.
18518         (avoid_deep_ter_for_debug): New function.
18519         (expand_debug_expr): If TERed SSA_NAME is in
18520         deep_ter_debug_map, use the corresponding DEBUG_EXPR_DECL
18521         instead of trying to expand SSA_NAME's def stmt.
18522         (expand_debug_locations): When expanding debug bind
18523         of a DEBUG_EXPR_DECL to corresponding SSA_NAME,
18524         temporarily remove the DEBUG_EXPR_DECL from deep_ter_debug_map's
18525         value.
18526         (pass_expand::execute): Call avoid_deep_ter_for_debug on
18527         all debug bind stmts.  Delete deep_ter_debug_map after
18528         expand_debug_location if non-NULL and clear it.
18529
18530 2015-02-01  Oleg Endo  <olegendo@gcc.gnu.org>
18531
18532         PR target/64851
18533         * config/sh/sync.md (atomic_fetch_notsi_hard,
18534         atomic_fetch_not<mode>_hard, atomic_fetch_not<mode>_soft_gusa,
18535         atomic_fetch_not<mode>_soft_tcb, atomic_fetch_not<mode>_soft_imask,
18536         atomic_not_fetchsi_hard, atomic_not_fetch<mode>_hard,
18537         atomic_not_fetch<mode>_soft_gusa, atomic_not_fetch<mode>_soft_tcb,
18538         atomic_not_fetch<mode>_soft_imask): New insns.
18539
18540 2015-02-01  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
18541
18542         * haifa-sched.c (INSN_RFS_DEBUG_ORIG_ORDER): New access macro.
18543         (rank_for_schedule_debug): Split from ...
18544         (rank_for_schedule): ... this.
18545         (ready_sort): Sort DEBUG_INSNs separately from normal INSNs.
18546         * sched-int.h (struct _haifa_insn_data): New field rfs_debug_orig_order.
18547
18548 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
18549
18550         * doc/md.texi (Machine Constraints): Alphabetize table by target.
18551         * doc/extend.texi (x86 Variable Attributes): Move section to
18552         correct alphabetization after renaming.
18553         (x86 Type Attributes): Likewise.
18554         (Target Builtins): Re-alphabetize menu.
18555         (x86 Built-in Functions): Move section to correct alphabetization
18556         after renaming.
18557         (x86 transactional memory intrinsics): Likewise.
18558         * doc/invoke.texi (Option Summary): Re-alphabetize x86 Options
18559         and x86 Windows Options in table and menu.
18560         (x86 Options): Move section to correct alphabetization after
18561         renaming.
18562         (x86 Windows Options): Likewise.
18563
18564 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
18565
18566         * doc/extend.texi: Use "x86", "x86-32", and "x86-64" as the
18567         preferred names of the architecture and its 32- and 64-bit
18568         variants.
18569         * doc/invoke.texi: Likewise.
18570         * doc/md.texi: Likewise.
18571
18572 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
18573
18574         PR target/64882
18575         * config/i386/predicates.md (address_no_seg_operand): Reject
18576         non-CONST_INT_P operands in invalid mode.
18577
18578 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
18579
18580         * config/i386/i386.md (*prefetch_prefetchw1): Remove mode of
18581         address_operand 0.  Rename from *prefetch_prefetchwt1_<mode>.
18582         * config/i386/predicates.md (address_no_seg_operand): Call
18583         address_operand with VOIDmode.
18584         (vsib_address_operand): Ditto.
18585         (address_mpx_no_base_operand): Ditto.
18586         (address_mpx_no_index_operand): Ditto.
18587
18588 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
18589
18590         PR target/64688
18591         * lra-constraints.c (original_subreg_reg_mode): New.
18592         (simplify_operand_subreg): Try to simplify subreg of const.  Use
18593         original_subreg_reg_mode for it.
18594         (swap_operands): Update original_subreg_reg_mode.
18595         (curr_insn_transform): Set up original_subreg_reg_mode.
18596
18597 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
18598
18599         PR target/64617
18600         * lra-constraints.c (prohibited_class_reg_set_mode_p): New
18601         function.
18602         (process_alt_operands): Use it.
18603         (curr_insn_transform): Check the optional reload pseudo class is
18604         ok for the mode.
18605
18606 2015-01-30  Joseph Myers  <joseph@codesourcery.com>
18607
18608         * diagnostic.c (fatal_error (const char *, ...)): Remove function.
18609         * diagnostic-core.h (fatal_error (const char *, ...)): Remove
18610         prototype.
18611         * toplev.h (init_asm_output): Update comment on use of
18612         UNKNOWN_LOCATION with fatal_error.
18613         * cgraph.c, collect-utils.c, collect2.c, config/arc/arc.c,
18614         config/arc/arc.md, config/avr/avr.c, config/c6x/c6x.h,
18615         config/darwin.c, config/host-darwin.c, config/i386/host-cygwin.c,
18616         config/i386/intelmic-mkoffload.c, config/nios2/nios2.c,
18617         config/nvptx/mkoffload.c, config/nvptx/nvptx.h,
18618         config/rs6000/host-darwin.c, config/rs6000/rs6000.c,
18619         config/s390/s390.c, gcc.c, gcov-io.h, gcov-tool.c, ggc-common.c,
18620         ggc-page.c, graph.c, ipa-inline-analysis.c, ipa-reference.c,
18621         lto-cgraph.c, lto-section-in.c, lto-streamer-in.c, lto-streamer.c,
18622         lto-wrapper.c, objc/objc-act.c, opts.c, passes.c, plugin.c,
18623         tlink.c, toplev.c, tree-streamer-in.c, varpool.c: All callers of
18624         fatal_error changed to pass input_location as first argument.
18625
18626 2015-01-30  Martin Liska  <mliska@suse.cz>
18627
18628         * tree.h: Change GCC_VERSION >= 4004 to GCC_VERSION >= 4006
18629         in #pragma GCC diagnostic guards.
18630
18631 2015-01-30  Richard Biener  <rguenther@suse.de>
18632
18633         PR tree-optimization/64829
18634         * tree-vect-patterns.c (vect_handle_widen_op_by_const): Do
18635         not add a widening conversion pattern but hand off extra
18636         widenings to callers.
18637         (vect_recog_widen_mult_pattern): Handle extra widening produced
18638         by vect_handle_widen_op_by_const.
18639         (vect_recog_widen_shift_pattern): Likewise.
18640         (vect_pattern_recog_1): Remove excess vertical space in dumping.
18641         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
18642         (vect_init_vector_1): Likewise.
18643         (vect_get_vec_def_for_operand): Likewise.
18644         (vect_finish_stmt_generation): Likewise.
18645         (vectorizable_load): Likewise.
18646         (vect_analyze_stmt): Likewise.
18647         (vect_is_simple_use): Likewise.
18648
18649 2015-01-29  Jeff Law  <law@redhat.com>
18650
18651         * combine.c (try_combine): Fix typo in comment.
18652
18653 2015-01-29  Segher Boessenkool  <segher@kernel.crashing.org>
18654
18655         PR target/64580
18656         * config.rs6000/rs6000.c (compute_vrsave_mask): Reverse loop order.
18657         (rs6000_stack_info): Add assert.
18658         (rs6000_output_savres_externs): New function, split off from...
18659         (rs6000_output_function_prologue): ... here.  Do not call it for
18660         thunks.
18661
18662 2015-01-29  Jeff Law  <law@redhat.com>
18663
18664         PR target/15184
18665         * combine.c (try_combine): If I0 is a memory load and I3 a store
18666         to a related address, increase the "goodness" of doing a 4-insn
18667         combination with I0-I3.
18668         (make_field_assignment): Handle SUBREGs in the ior+and case.
18669
18670 2015-01-29  Yuri Rumyantsev  <ysrumyan@gmail.com>
18671
18672         PR tree-optimization/64746
18673         * tree-if-conv.c (mask_exists): New function.
18674         (predicate_mem_writes): Save created mask with given size for further
18675         use.
18676         (stmt_is_root_of_bool_pattern): Remove argument VAR and store to it.
18677         (ifcvt_repair_bool_pattern): Collect all statements that are root
18678         of bool pattern and use iterative algorithm to remove multiple uses
18679         of predicates, display number of required iterations.
18680
18681 2015-01-29  Richard Biener  <rguenther@suse.de>
18682
18683         PR tree-optimization/64853
18684         * tree-vrp.c (vrp_valueize_1): Do not return anything if the
18685         stmt will get simulated again.
18686         * tree-ssa-ccp.c (valueize_op_1): Likewise.
18687
18688 2015-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18689
18690         * config/arm/arm.c (arm_emit_multi_reg_pop): Simplify definition of
18691         return_in_pc.  Remove redundant assignments.
18692         (thumb2_emit_ldrd_pop): Simplify definition of return_in_pc.
18693         (arm_expand_epilogue): Don't compare boolean with true in if condition.
18694
18695 2015-01-29  Uros Bizjak  <ubizjak@gmail.com>
18696
18697         * config/i386/i386.c (ix86_mode_after): Make static.
18698
18699 2015-01-29  Richard Biener  <rguenther@suse.de>
18700
18701         PR tree-optimization/64844
18702         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Always
18703         dump cost model analysis.
18704         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
18705         Do not register adjusted load/store costs here.
18706
18707 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
18708             Uros Bizjak  <ubizjak@gmail.com>
18709
18710         * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): New.
18711         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Simplify by
18712         using x86_use_pseudo_pic_reg.
18713         * config/i386/i386.c (ix86_conditional_register_usage): Remove
18714         support for fixed PIC register.
18715         (ix86_use_pseudo_pic_reg): Not static any more.
18716
18717 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
18718
18719         PR middle-end/64805
18720         * ipa-inline.c (early_inliner): Rebuild IPA_REF_CHKP reference
18721         to avoid error in cgraph node verification.
18722
18723 2015-01-29  Marek Polacek  <polacek@redhat.com>
18724
18725         * doc/standards.texi: Reflect that the default for C is gnu11.
18726
18727 2015-01-29  Kaz Kojima  <kkojima@gcc.gnu.org>
18728
18729         PR target/64761
18730         * reorg.c (switch_text_sections_between_p): New function.
18731         (relax_delay_slots): Call it when testing if the jump insn
18732         is removable.  Use targetm.can_follow_jump when testing if
18733         the conditional branch can follow an unconditional jump.
18734
18735 2015-01-27  Caroline Tice  <cmtice@google.com>
18736
18737         Committing VTV Cywin/Ming patch for Patrick Wollgast
18738         * config/i386/cygwin.h (STARTFILE_SPEC): Add vtv_start.o,
18739         if -fvtable-verify=preinit/std is used.
18740         * config/i386/mingw-w64.h (STARTFILE_SPEC): Likewise.
18741         * config/i386/mingw32.h (STARTFILE_SPEC): Likewise.
18742         * config/i386/cygwin.h (ENDFILE_SPEC): Add vtv_end.o,
18743         if -fvtable-verify=preinit/std is used.
18744         * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
18745         * config/i386/cygwin.h (LIB_SPEC): Pass -lvtv and -lpsapi,
18746         if -fvtable-verify=preinit/std is used.
18747         * config/i386/mingw-w64.h (LIB_SPEC): Likewise.
18748         * config/i386/mingw32.h (LIB_SPEC): Likewise.
18749         * varasm.c (assemble_variable): Add code to properly set the comdat
18750         section and name for the .vtable_map_vars section in case the
18751         target is PE or COFF.
18752
18753 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
18754
18755         PR ipa/64801
18756         * cgraphunit.c (init_lowered_empty_function): Add CoUNT parameter;
18757         make sane BB profile.
18758         (cgraph_node::expand_thunk): Make sane BB profile.
18759         (cgraph_node::create_wrapper): Do not set call_stmt_cannot_inline_p.
18760         * cgraph.h (init_lowered_empty_function): Update prototype.
18761         * config/i386/i386.c (make_resolver_func): Update call.
18762         * predict.c (gate): Disable branch prediction pass if
18763         profile is already there.
18764
18765 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
18766
18767         * optc-save-gen.awk: flag_fp_contract_mode is no longer speical.
18768         * opth-gen.awk: Likewise.
18769         * common.opt: Mark flag_fp_contract_mode as Optimization.
18770
18771 2015-01-29  Bernd Edlinger  <bernd.edlinger@hotmail.de>
18772
18773         * config/i386/cygwin.h (LIBGCJ_SONAME): Set libgcj version to -16.
18774         * config/i386/mingw32.h (LIBGCJ_SONAME): Set libgcj version to -16.
18775
18776 2015-01-28  Oleg Endo  <olegendo@gcc.gnu.org>
18777
18778         PR target/64659
18779         * config/sh/predicates.md (atomic_arith_operand,
18780         atomic_logical_operand): Remove.
18781         * config/sh/sync.md (fetchop_predicate, fetchop_constraint): Remove.
18782         (atomic_arith_operand_0): New predicate.
18783         (atomic_compare_and_swap<mode>): Use arith_reg_dest for output values.
18784         Use atomic_arith_operand_0 for input values.
18785         (atomic_compare_and_swapsi_hard, atomic_compare_and_swap<mode>_hard,
18786         atomic_compare_and_swap<mode>_soft_gusa,
18787         atomic_compare_and_swap<mode>_soft_tcb,
18788         atomic_compare_and_swap<mode>_soft_imask): Use arith_reg_dest and
18789         arith_reg_operand instead of register_operand.
18790         (atomic_exchange<mode>): Use arith_reg_dest for output value.  Use
18791         atomic_arith_operand_0 for newval input.
18792         (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
18793         atomic_exchange<mode>_soft_gusa, atomic_exchange<mode>_soft_tcb,
18794         atomic_exchange<mode>_soft_imask): Use arith_reg_dest and
18795         arith_reg_operand instead of register_operand.
18796         (atomic_arith_operand_1, atomic_logical_operand_1): New predicates.
18797         fetchop_predicate_1, fetchop_constraint_1_llcs,
18798         fetchop_constraint_1_gusa, fetchop_constraint_1_tcb,
18799         fetchop_constraint_1_imask): New code iterator attributes.
18800         (atomic_fetch_<fetchop_name><mode>): Use arith_reg_dest instead of
18801         register_operand.  Use fetchop_predicate_1.
18802         (atomic_fetch_<fetchop_name>si_hard,
18803         atomic_fetch_<fetchop_name><mode>_hard): Use arith_reg_dest instead of
18804         register_operand.  Use fetchop_predicate_1, fetchop_constraint_1_llcs.
18805         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Use arith_reg_dest
18806         and arith_reg_operand instead of register_operand.  Use
18807         fetchop_predicate_1, fetchop_constraint_1_gusa.
18808         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Use arith_reg_dest
18809         and arith_reg_operand instead of register_operand.  Use
18810         fetchop_predicate_1, fetchop_constraint_1_tcb.  Adjust asm sequence
18811         to allow R0 usage.
18812         (atomic_fetch_<fetchop_name><mode>_soft_imask): Use arith_reg_dest
18813         and arith_reg_operand instead of register_operand.  Use
18814         fetchop_predicate_1, fetchop_constraint_1_imask.  Adjust asm sequence
18815         to allow R0 usage.
18816         (atomic_fetch_nand<mode>): Use arith_reg_dest instead of
18817         register_operand.  Use atomic_logical_operand_1.
18818         (atomic_fetch_nandsi_hard, atomic_fetch_nand<mode>_hard,
18819         atomic_fetch_nand<mode>_soft_gusa): Use arith_reg_dest and
18820         arith_reg_operand instead of register_operand.
18821         (atomic_fetch_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask):
18822         Use arith_reg_dest and arith_reg_operand instead of register_operand.
18823         Use logical_operand and rK08.  Adjust asm sequence to allow R0 usage.
18824         (atomic_<fetchop_name>_fetch<mode>): Use arith_reg_dest instead of
18825         register_operand.  Use fetchop_predicate_1.
18826         (atomic_<fetchop_name>_fetchsi_hard,
18827         atomic_<fetchop_name>_fetch<mode>_hard): Use arith_reg_dest and
18828         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
18829         fetchop_constraint_1_llcs.
18830         (atomic_<fetchop_name>_fetch<mode>_soft_gusa): Use arith_reg_dest and
18831         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
18832         fetchop_constraint_1_gusa.
18833         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Use arith_reg_dest and
18834         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
18835         fetchop_constraint_1_tcb.  Adjust asm sequence to allow R0 usage.
18836         (atomic_<fetchop_name>_fetch<mode>_soft_imask): Use arith_reg_dest and
18837         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
18838         fetchop_constraint_1_imask.  Adjust asm sequence to allow R0 usage.
18839         (atomic_nand_fetch<mode>): Use arith_reg_dest instead of
18840         register_operand.  Use atomic_logical_operand_1.
18841         (atomic_nand_fetchsi_hard, atomic_nand_fetch<mode>_hard,
18842         atomic_nand_fetch<mode>_soft_gusa): Use arith_reg_dest and
18843         arith_reg_operand instead of register_operand.
18844         (atomic_nand_fetch<mode>_soft_tcb): Use arith_reg_dest and
18845         arith_reg_operand instead of register_operand.  Use logical_operand
18846         and K08.  Adjust asm sequence to allow R0 usage.
18847         (atomic_nand_fetch<mode>_soft_imask): Use arith_reg_dest and
18848         arith_reg_operand instead of register_operand.  Use logical_operand
18849         and K08.
18850
18851 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
18852
18853         PR other/63504
18854         * dwarf2out.c (add_AT_wide, mem_loc_descriptor, loc_descriptor):
18855         Use ggc_alloc<wide_int> instead of ggc_cleared_alloc<wide_int>.
18856         (attr_checksum, attr_checksum_ordered, hash_loc_operands): Checksum
18857         only get_full_len HOST_WIDE_INTs from get_val () array rather than
18858         all bits in *val_wide.
18859
18860 2015-01-28  Jan Hubicka  <hubicka@ucw.cz>
18861
18862         * varpool.c (tls_model_names): Fix names.
18863         (varpool_node::dump): Dump tls- prefix for tls models.
18864
18865 2015-01-28  Thomas Schwinge  <thomas@codesourcery.com>
18866             Bernd Schmidt  <bernds@codesourcery.com>
18867             Nathan Sidwell  <nathan@codesourcery.com>
18868
18869         * config/nvptx/mkoffload.c: New file.
18870         * config/nvptx/t-nvptx: Add build rules for it.
18871         * config.gcc <nvptx-*> [$enable_as_accelerator = yes]
18872         (extra_programs): Add mkoffload.
18873         * config/nvptx/nvptx.c (nvptx_record_offload_symbol): New
18874         function.
18875         (TARGET_RECORD_OFFLOAD_SYMBOL): Define macro to use it.
18876
18877 2015-01-28  Yuri Rumyantsev  <ysrumyan@gmail.com>
18878
18879         PR middle-end/64809
18880         * cfgexpand.c (reorder_operands): Skip debug gimples.
18881
18882 2015-01-28  Ilya Enkovich  <ilya.enkovich@intel.com>
18883
18884         PR tree-optimization/64277
18885         * tree-ssa-loop-niter.c (record_nonwrapping_iv): Use base
18886         range info when possible to refine estimation.
18887
18888 2015-01-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
18889
18890         PR tree-optimization/64718
18891         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Make bswap_type
18892         be a 16bit unsigned integer when n->range is 16.
18893         (bswap_replace): Convert src to that type if necessary for all bswap
18894         sizes.  Fix rotation right notation in nearby comment.  Use bswap_type
18895         set in pass_optimize_bswap::execute ().
18896
18897 2015-01-28  James Greenhalgh  <james.greenhalgh@arm.com>
18898
18899         * config/aarch64/aarch64-simd.md (aarch64_abs<mode>): New.
18900         * config/aarch64/aarch64-simd-builtins.def (abs): Split by
18901         integer and floating point variants.
18902         * config/aarch64/iterators.md (unspec): Add UNSPEC_ABS.
18903
18904 2015-01-28  Robert Suchanek  <robert.suchanek@imgtec.com>
18905
18906         * config/mips/mips.c (mips_hard_regno_mode_ok_p): Prohibit accumulators
18907         for all vector modes.
18908
18909 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
18910
18911         PR bootstrap/64612
18912         * doc/sourcebuild.texi (comdat_group): Document.
18913
18914 2015-01-28  Terry Guo  <terry.guo@arm.com>
18915
18916         * config/arm/thumb1.md (*thumb1_movpc_insn): New insn pattern.
18917
18918 2015-01-27  David Malcolm  <dmalcolm@redhat.com>
18919
18920         * toplev.c (print_version): Add param "show_global_state", and
18921         only print GGC and plugin information if it is true.
18922         (init_asm_output): Pass in "true" for the new param when calling
18923         print_version.
18924         (process_options): Likewise.
18925         (toplev::main): Likewise.
18926         * toplev.h (print_version): Add new param to decl.
18927
18928 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
18929
18930         PR ipa/60871
18931         PR ipa/64139
18932         * tree.c (lookup_binfo_at_offset): New function.
18933         (get_binfo_at_offset): Use it.
18934
18935 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
18936
18937         PR ipa/64282
18938         * gimple-fold.c (gimple_get_virt_method_for_vtable): Remove assert
18939         on vtable being vtable.
18940
18941 2015-01-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
18942
18943         * doc/extend.texi: s/390: Update documentation of hotpatch attribute.
18944         * doc/invoke.texi (-mhotpatch): s/390: Update documentation of
18945         -mhotpatch= option.
18946         * config/s390/s390.opt (mhotpatch): s/390: Remove -mhotpatch and
18947         -mno-hotpatch options.  Change syntax of -mhotpatch= option.
18948         * config/s390/s390.c (s390_hotpatch_trampoline_halfwords_default):
18949         Renamed.
18950         (s390_hotpatch_trampoline_halfwords_max): Renamed.
18951         (s390_hotpatch_hw_max): New name.
18952         (s390_hotpatch_trampoline_halfwords): Renamed.
18953         (s390_hotpatch_hw_before_label): New name.
18954         (get_hotpatch_attribute): Removed.
18955         (s390_hotpatch_hw_after_label): New name.
18956         (s390_handle_hotpatch_attribute): Add second parameter to hotpatch
18957         attribute.
18958         (s390_attribute_table): Ditto.
18959         (s390_function_num_hotpatch_trampoline_halfwords): Renamed.
18960         (s390_function_num_hotpatch_hw): New name.
18961         Remove special handling of inline functions and hotpatching.
18962         Return number of nops before and after the function label.
18963         (s390_can_inline_p): Removed.
18964         (s390_asm_output_function_label): Emit a configurable number of nops
18965         after the function label.
18966         (s390_option_override): Update -mhotpatch= syntax and remove -mhotpatch.
18967         (TARGET_CAN_INLINE_P) Removed.
18968         (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): New.
18969
18970 2015-01-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18971             Jiong Wang  <jiong.wang@arm.com>
18972
18973         * config/aarch64/aarch64.md (tb<optab><mode>1): Clobber CC reg instead
18974         of scratch reg.
18975         (cb<optab><mode>1): Likewise.
18976         * config/aarch64/iterators.md (bcond): New define_code_attr.
18977
18978 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18979
18980         * config/s390/s390.c (s390_memory_move_cost): Increase costs for
18981         memory accesses.
18982
18983 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18984
18985         * config/s390/s390.c (s390_register_move_cost): Increase costs for
18986         FPR->GPR moves.
18987
18988 2015-01-27  Richard Biener  <rguenther@suse.de>
18989
18990         * tree-vrp.c (update_value_range): Intersect the range with
18991         old recorded SSA name range information.
18992
18993 2015-01-27  Nick Clifton  <nickc@redhat.com>
18994
18995         * config/rl78/rl78.c (rl78_expand_prologue): In G10 mode push the
18996         BC, DE and HL registers directly, not via AX.
18997         When decrementing the stack pointer by a large amount, transfer SP
18998         into AX and perform the subtraction there.
18999         (rl78_expand_epilogue): Perform the inverse of the above
19000         enhancements.
19001
19002 2015-01-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19003
19004         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Remove.
19005
19006 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
19007             Yury Gribov  <y.gribov@samsung.com>
19008
19009         PR ubsan/64741
19010         * ubsan.c (ubsan_source_location): Refactor code.
19011         (ubsan_type_descriptor): Update type size. Refactor code.
19012
19013 2015-01-27  Richard Biener  <rguenther@suse.de>
19014
19015         PR tree-optimization/56273
19016         PR tree-optimization/59124
19017         PR tree-optimization/64277
19018         * tree-vrp.c (vrp_finalize): Emit array-bound warnings only
19019         from the first VRP pass.
19020
19021 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
19022
19023         PR ipa/64776
19024         * cgraphunit.c (cgraph_node::expand_thunk): If not this_adjusting,
19025         handle the first argument in the same loop as all the other arguments.
19026
19027         PR rtl-optimization/61058
19028         * jump.c (cleanup_barriers): Update basic block boundaries
19029         if BLOCK_FOR_INSN is non-NULL on PREV.
19030
19031 2015-01-27  Ilya Enkovich  <ilya.enkovich@intel.com>
19032
19033         * tree-chkp.c (chkp_call_returns_bounds_p): Fix handling of
19034         bounds narrowing, already instrumented calls and calls to
19035         not instrumentable functions.
19036
19037 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
19038
19039         PR tree-optimization/64807
19040         * wide-int.cc (wi::divmod_internal): Clear
19041         b_dividend[dividend_blocks_needed].
19042
19043 2015-01-26  DJ Delorie  <dj@redhat.com>
19044
19045         * config/rl78/rl78.c (move_elim_pass): Don't optimize away
19046         volatile memory references.
19047
19048 2015-01-26  Oleg Endo  <olegendo@gcc.gnu.org>
19049
19050         PR target/49263
19051         * config/sh/sh.c (sh_split_treg_set_expr): Invoke emit_insn before
19052         remove_insn.
19053         * config/sh/sh.md (tstsi_t): Don't try to optimize constant with right
19054         shifts if it already fits into K08.
19055
19056 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
19057
19058         PR ipa/64730
19059         * ipa-inline.c (inline_small_functions): Print "unknown" even
19060         if edge->call_stmt is non-NULL, but has builtins or unknown
19061         location.
19062
19063         PR middle-end/64421
19064         * omp-low.c (simd_clone_mangle): If DECL_ASSEMBLER_NAME starts
19065         with asterisk, skip the first character.
19066
19067 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
19068
19069         PR target/64806
19070         * config/i386/i386 (feature_priority): Revert the last P_POPCNT
19071         order change.
19072
19073 2015-01-26  Uros Bizjak  <ubizjak@gmail.com>
19074
19075         PR target/64795
19076         * config/i386/i386.md (*movdi_internal): Also check operand 0
19077         to determine TYPE_LEA operand.
19078         (*movsi_internal): Ditto.
19079
19080 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
19081
19082         * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add
19083         OPTION_MASK_QUAD_MEMORY_ATOMIC.
19084
19085 2015-01-26  Renlin Li  <renlin.li@arm.com>
19086
19087         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Correct
19088         the comment.
19089         * config/aarch64/aarch64.md (tlsle_small_<mode>): Add left shift 12-bit
19090         for higher part.
19091
19092 2015-01-26  Richard Biener  <rguenther@suse.de>
19093
19094         PR middle-end/64764
19095         * tree-ssa-uninit.c (is_pred_expr_subset_of): Handle
19096         combining two BIT_AND_EXPR predicates.
19097
19098 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
19099
19100         PR bootstrap/64754
19101         * tree-ssa-structalias.c (new_var_info): Initialize ruid.
19102
19103 2015-01-26  Terry Guo  <terry.guo@arm.com>
19104
19105         * config/arm/arm.c (arm_file_start): Update the assignment of
19106         Tag_ABI_HardFP_use.
19107
19108 2015-01-25  James Greenhalgh  <james.greenhalgh@arm.com>
19109
19110         * config/arm/arm-cores.def (cortex-a57): Use the new Cortex-A57
19111         pipeline model.
19112         config/arm/arm.md: Include the new Cortex-A57 model.
19113         (generic_sched): Don't use generic_sched when tuning for
19114         Cortex-A57.
19115
19116 2015-01-25  Allan Sandfeld Jensen  <sandfeld@kde.org>
19117             Uros Bizjak  <ubizjak@gmail.com>
19118
19119         * config/i386/i386.c (get_builtin_code_for_version): Add
19120         support for BMI and BMI2 multiversion functions.
19121
19122 2015-01-25  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
19123
19124         * emit-rtl.h (store_bit_field): Move prototype to expmed.h.
19125         (extract_bit_field): Likewise.
19126         (extract_low_bits): Likewise.
19127         (expand_mult): Likewise.
19128         (expand_mult_highpart_adjust): Likewise.
19129
19130 2015-01-24  H.J. Lu  <hongjiu.lu@intel.com>
19131
19132         * config/i386/driver-i386.c (host_detect_local_cpu): Check new
19133         Silvermont, Haswell, Broadwell and Knights Landing model numbers.
19134         * config/i386/i386.c (processor_model): Add
19135         M_INTEL_COREI7_BROADWELL.
19136         (arch_names_table): Add "broadwell".
19137
19138 2015-01-24  Oleg Endo  <olegendo@gcc.gnu.org>
19139
19140         PR target/49263
19141         PR target/53987
19142         PR target/64345
19143         PR target/59533
19144         PR target/52933
19145         PR target/54236
19146         PR target/51244
19147         * config/sh/sh-protos.h
19148         (sh_extending_set_of_reg::can_use_as_unextended_reg,
19149         sh_extending_set_of_reg::use_as_unextended_reg,
19150         sh_is_nott_insn, sh_movt_set_dest, sh_movrt_set_dest, sh_is_movt_insn,
19151         sh_is_movrt_insn, sh_insn_operands_modified_between_p,
19152         sh_reg_dead_or_unused_after_insn, sh_in_recog_treg_set_expr,
19153         sh_recog_treg_set_expr, sh_split_treg_set_expr): New functions.
19154         (sh_treg_insns): New class.
19155         * config/sh/sh.c (TARGET_LEGITIMATE_COMBINED_INSN): Define target hook.
19156         (scope_counter): New class.
19157         (sh_legitimate_combined_insn, sh_is_nott_insn, sh_movt_set_dest,
19158         sh_movrt_set_dest, sh_reg_dead_or_unused_after_insn,
19159         sh_extending_set_of_reg::can_use_as_unextended_reg,
19160         sh_extending_set_of_reg::use_as_unextended_reg, sh_recog_treg_set_expr,
19161         sh_in_recog_treg_set_expr, sh_try_split_insn_simple,
19162         sh_split_treg_set_expr): New functions.
19163         (addsubcosts): Handle treg_set_expr.
19164         (sh_rtx_costs): Handle IF_THEN_ELSE and ZERO_EXTRACT.
19165         (sh_rtx_costs): Use arith_reg_operand in SIGN_EXTEND and ZERO_EXTEND.
19166         (sh_rtx_costs): Handle additional bit test patterns in EQ and AND cases.
19167         (sh_insn_operands_modified_between_p): Make non-static.
19168         * config/sh/predicates.md (zero_extend_movu_operand): Allow
19169         simple_mem_operand in addition to displacement_mem_operand.
19170         (zero_extend_operand): Don't allow zero_extend_movu_operand.
19171         (treg_set_expr, treg_set_expr_not_const01,
19172         arith_reg_or_treg_set_expr): New predicates.
19173         * config/sh/sh.md (tstsi_t): Use arith_reg_operand and
19174         arith_or_int_operand instead of logical_operand.  Convert to
19175         insn_and_split.  Try to optimize constant operand in splitter.
19176         (tsthi_t, tstqi_t): Fold into *tst<mode>_t.  Convert to insn_and_split.
19177         (*tstqi_t_zero): Delete.
19178         (*tst<mode>_t_subregs): Add !sh_in_recog_treg_set_expr split condition.
19179         (tstsi_t_and_not): Delete.
19180         (tst<mode>_t_zero_extract_eq): Rename to *tst<mode>_t_zero_extract.
19181         Convert to insn_and_split.
19182         (unnamed split, tstsi_t_zero_extract_xor,
19183         tstsi_t_zero_extract_subreg_xor_little,
19184         tstsi_t_zero_extract_subreg_xor_big): Delete.
19185         (*tstsi_t_shift_mask): New insn_and_split.
19186         (cmpeqsi_t, cmpgesi_t): Add new split for const_int 0 operands and try
19187         to recombine with surrounding insns when splitting.
19188         (*negtstsi): Add !sh_in_recog_treg_set_expr condition.
19189         (cmp_div0s_0, cmp_div0s_1, *cmp_div0s_0, *cmp_div0s_1): Rewrite as ...
19190         (cmp_div0s, *cmp_div0s_1, *cmp_div0s_2, *cmp_div0s_3, *cmp_div0s_4,
19191         *cmp_div0s_5, *cmp_div0s_6): ... these new insn_and_split patterns.
19192         (*cbranch_div0s: Delete.
19193         (*addc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
19194         Try to recombine with surrounding insns when splitting.  Add operand
19195         order variants.
19196         (*addc_t_r, *addc_r_t): Use treg_set_expr_not_const01.
19197         (*addc_r_r_1, *addc_r_lsb, *addc_r_r_lsb, *addc_r_lsb_r, *addc_r_msb,
19198         *addc_r_r_msb, *addc_2r_msb): Delete.
19199         (*addc_2r_lsb): Rename to *addc_2r_t.  Use treg_set_expr.  Add operand
19200         order variant.
19201         (*addc_negreg_t): New insn_and_split.
19202         (*subc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
19203         Try to recombine with surrounding insns when splitting.
19204         Add operand order variants.
19205         (*subc_negt_reg, *subc_negreg_t, *reg_lsb_t, *reg_msb_t): New
19206         insn_and_split patterns.
19207         (*rotcr): Use arith_reg_or_treg_set_expr.  Try to recombine with
19208         surrounding insns when splitting.
19209         (unnamed rotcr split): Use arith_reg_or_treg_set_expr.
19210         (*rotcl): Likewise.  Add zero_extract variant.
19211         (*ashrsi2_31): New insn_and_split.
19212         (*negc): Convert to insn_and_split.  Use treg_set_expr.
19213         (*zero_extend<mode>si2_disp_mem): Update comment.
19214         (movrt_negc, *movrt_negc, nott): Add !sh_in_recog_treg_set_expr split
19215         condition.
19216         (*mov_t_msb_neg, mov_neg_si_t): Use treg_set_expr.  Try to recombine
19217         with surrounding insns when splitting.
19218         (any_treg_expr_to_reg): New insn_and_split.
19219         (*neg_zero_extract_0, *neg_zero_extract_1, *neg_zero_extract_2,
19220         *neg_zero_extract_3, *neg_zero_extract_4, *neg_zero_extract_5,
19221         *neg_zero_extract_6, *zero_extract_0, *zero_extract_1,
19222         *zero_extract_2): New single bit zero extract patterns.
19223         (bld_reg, *bld_regqi): Fold into bld<mode>_reg.
19224         (*get_thread_pointersi, store_gbr, *mov<mode>_gbr_load,
19225         *mov<mode>_gbr_load, *mov<mode>_gbr_load, *mov<mode>_gbr_load,
19226         *movdi_gbr_load): Use arith_reg_dest instead of register_operand for
19227         set destination.
19228         (set_thread_pointersi, load_gbr): Use arith_reg_operand instead of
19229         register_operand for set source.
19230
19231 2015-01-23  Jan Hubicka  <hubicka@ucw.cz>
19232
19233         * i386.opt (prefetch_sse): New targetsave.
19234         * i386.c (ix86_function_specific_save): Save prefetch_sse.
19235         (ix86_function_specific_restore): Restore prefetch_sse and initialize
19236         ix86_cost/ix86_tune_cost.
19237
19238 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
19239
19240         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
19241         Support the JIT by using 0 as the language type.
19242
19243 2015-01-23  Vladimir Makarov  <vmakarov@redhat.com>
19244
19245         PR target/64317
19246         * lra-lives.c (make_hard_regno_born): Add parameter.  Don't make
19247         REAL_PIC_OFFSET_TABLE_REGNUM conflicting with pic offset pseudo.
19248         (mark_regno_live, process_bb_lives): Pass new parameter value to
19249         make_hard_regno_born.
19250
19251 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
19252
19253         PR rtl-optimization/63637
19254         PR rtl-optimization/60663
19255         * cse.c (merge_equiv_classes): Set new_elt->cost to MAX_COST
19256         if elt->cost is MAX_COST for ASM_OPERANDS.
19257         (find_sets_in_insn): Fix up comment typo.
19258         (cse_insn): Don't set src_volatile for all non-volatile
19259         ASM_OPERANDS in PARALLELs, but just those with multiple outputs
19260         or with "memory" clobber.  Set elt->cost to MAX_COST
19261         for ASM_OPERANDS in PARALLEL.  Set src_elt->cost to MAX_COST
19262         if new_src is ASM_OPERANDS and elt->cost is MAX_COST.
19263
19264 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
19265
19266         * config/i386/sse.md (sse2_loadld): Set attribute isa to sse2 for
19267         alternative 1.
19268
19269 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
19270
19271         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Move definition to
19272         libgcc/config/i386/elf-lib.h.
19273
19274 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
19275
19276         PR driver/64737
19277         * gcc.c (print_configuration): Don't print a blank line at the end
19278         here...
19279         (run_attempt): ... but here unstead.
19280
19281         PR middle-end/64734
19282         * omp-low.c (scan_sharing_clauses): Don't ignore
19283         OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION GOMP_MAP_POINTER clauses
19284         on target data/update constructs.
19285
19286 2015-01-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
19287
19288         PR target/50928
19289         * config/m32c/m32c.c (encode_pattern_1): Removed gcc_unreachable here.
19290         (DEBUG_RELOAD): Removed define.
19291         (m32c_limit_reload_class): Enable traces with if DEBUG0.
19292         (m32c_function_arg): Added a type cast.
19293         (m32c_legitimize_reload_address): Push A_REGS reload with PSImode.
19294         * config/m32c/addsub.md (addsi3_1): Specify the mode of all arguments.
19295         * config/m32c/bitops.md (andqi3_16): Likewise.
19296         * config/m32c/mov.md (m32c_immd_dbl_mov): Likewise.
19297         (push_a01_l): Likewise.
19298
19299 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
19300
19301         PR jit/64721
19302         * main.c (main): Construct toplev instances with init_signals=true.
19303         * toplev.c (general_init): Add param "init_signals", and use it to
19304         conditionalize the calls to signal and host_hooks.extra_signals.
19305         (toplev::toplev): Add param "init_signals".
19306         (toplev::main): When invoking general_init, pass m_init_signals
19307         to control whether signal-handlers are installed.
19308         * toplev.h (toplev::toplev): Add param "init_signals".
19309         (toplev::m_init_signals): New field.
19310
19311 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
19312
19313         PR jit/64722
19314         * emit-rtl.c (init_emit_regs): Set pic_offset_table_rtx to
19315         NULL_RTX before testing PIC_OFFSET_TABLE_REGNUM, since the
19316         latter may be affected by the former (e.g. on i686).
19317
19318 2015-01-23  Martin Liska  <mliska@suse.cz>
19319
19320         * tree.h (tree_vec_elt_check): Workaround -Wstrict-overflow
19321         false positive during profiledbootstrap.
19322
19323 2015-01-23  Tom de Vries  <tom@codesourcery.com>
19324
19325         PR libgomp/64672
19326         * lto-opts.c (lto_write_options): Output non-explicit conservative
19327         -fno-openacc.
19328         * lto-wrapper.c (merge_and_complain): Handle merging -fopenacc.
19329         (append_compiler_options): Pass -fopenacc through.
19330
19331 2015-01-23  Tom de Vries  <tom@codesourcery.com>
19332
19333         PR libgomp/64707
19334         * lto-opts.c (lto_write_options): Output non-explicit conservative
19335         -fno-openmp.
19336         * lto-wrapper.c (merge_and_complain): Handle merging -fopenmp.
19337         (append_compiler_options): Pass -fopenmp through.
19338
19339 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
19340
19341         PR debug/64511
19342         * dwarf2out.c (struct dw_loc_descr_node): Add chain_next
19343         GTY markup.
19344
19345         * diagnostic-core.h (internal_error_no_backtrace): New prototype.
19346         * diagnostic.def (DK_ICE_NOBT): New kind.
19347         * diagnostic.c (diagnostic_action_after_output): Handle DK_ICE_NOBT
19348         like DK_ICE, but never print backtrace.
19349         (diagnostic_report_diagnostic): Handle DK_ICE_NOBT like DK_ICE.
19350         (internal_error_no_backtrace): New function.
19351         * gcc.c (execute): Use internal_error_no_backtrace instead of
19352         internal_error.
19353
19354 2015-01-22  Jeff Law  <law@redhat.com>
19355
19356         PR target/52076
19357         * config/m68k/m68k.md (xorsi3_internal): Twiddle constraints to
19358         improve code density for small immediate to memory case.
19359         (insv): Better handle bitfield assignments when the field is
19360         being set to all ones.
19361         * config/m68k/predicates.md (reg_or_pow2_m1_operand): New
19362         operand predicate.
19363
19364 2015-01-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19365             Jakub Jelinek  <jakub@redhat.com>
19366
19367         PR middle-end/64729
19368         * gcc.c (LINK_SSP_SPEC): Handle -fstack-protector-explicit
19369         for !TARGET_LIBC_PROVIDES_SSP version and
19370         -fstack-protector-{all,strong,explicit} otherwise.
19371         * config/freebsd.h (LINK_SSP_SPEC): Handle
19372         -fstack-protector-{strong,explicit}.
19373
19374 2015-01-22  Jan Hubicka  <hubicka@ucw.cz>
19375             H.J. Lu  <hongjiu.lu@intel.com>
19376
19377         PR ipa/64694
19378         * ipa-inline.c (inline_small_functions): Fix thinko in maintenance of
19379         heap.
19380
19381 2015-01-22  Wei Mi  <wmi@google.com>
19382
19383         PR rtl-optimization/64557
19384         * dse.c (record_store): Call get_addr for mem_addr.
19385         (check_mem_read_rtx): Likewise.
19386
19387 2015-01-22  Eric Botcazou  <ebotcazou@adacore.com>
19388
19389         * fold-const.c (const_binop): Add early return for non-tcc_binary.
19390
19391 2015-01-22  Chen Gang  <gang.chen.5i5j@gmail.com>
19392
19393         * toplev.c (init_local_tick): Process the failure when read
19394         fails for random_seed.
19395
19396         * ubsan.c (ubsan_type_descriptor): Use 'pretty_print' for
19397         'pretty_name' to avoid memory overflow.
19398
19399 2015-01-22  Richard Biener  <rguenther@suse.de>
19400
19401         PR middle-end/64728
19402         * tree-ssa-coalesce.c (coalesce_partitions): Do not perform
19403         abnormal coalescing on undefined SSA names.
19404
19405 2015-22-01  Uros Bizjak  <ubizjak@gmail.com>
19406
19407         PR target/64688
19408         PR target/64477
19409         * config/i386/sse.md (vec_set<mode>_0): Use (Yi/r/C) constraints
19410         for alternative 3.
19411         (*vec_dup<mode>): Use (Yi/$r) constraints for alternative 1.
19412
19413 2015-01-22  Trevor Saunders  <tsaunders@mozilla.com>
19414
19415         PR middle-end/63325
19416         * fold-const.c (fold_checksum_tree): Don't include value of
19417         expr->decl_with_vis.symtab_node in the checksum.
19418
19419 2015-01-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19420
19421         * config/s390/s390.md (atomic code attribute): Fix typo "ior" -> "or".
19422
19423 2015-01-22  Max Ostapenko  <m.ostapenko@partner.samsung.com>
19424
19425         PR driver/64690
19426         * gcc.c (insert_comments): New function.
19427         (try_generate_repro): Call it.
19428         (append_text): Removed.
19429
19430 2015-01-22  Richard Biener  <rguenther@suse.de>
19431
19432         * ipa-inline.c (can_inline_edge_p): Disable inlining of edges
19433         with IL incompatible options.  Properly honor user optimize
19434         attributes.
19435
19436 2015-01-21  Segher Boessenkool  <segher@kernel.crashing.org>
19437
19438         PR rtl-optimization/64682
19439         * combine.c (distribute_notes): When moving a death note for
19440         a register that is set in the new I2, make sure to put it
19441         before that new I2.
19442
19443 2015-01-21  David Edelsohn  <dje.gcc@gmail.com>
19444
19445         * config/rs6000/rs6000.c (rs6000_file_start): Use rs6000_isa_flags
19446         not TARGET_DEFAULT.
19447
19448 2015-01-21  Jakub Jelinek  <jakub@redhat.com>
19449
19450         PR debug/64511
19451         * simplify-rtx.c (simplify_relational_operation_1): Don't try to
19452         optimize (eq/ne (and (side_effects) (const_int 0)) (const_int 0))
19453         into (eq/ne (and (not (side_effects)) (const_int 0)) (const_int 0)).
19454
19455         PR sanitizer/64706
19456         * doc/invoke.texi (-fsanitize=vptr): Document.
19457
19458         PR rtl-optimization/62078
19459         * dse.c: Include cfgcleanup.h.
19460         (rest_of_handle_dse): For -fnon-call-exceptions, if DSE removed
19461         anything call purge_all_dead_edges and cleanup_cfg at the end
19462         of the pass.
19463
19464 2015-01-21  Jan Hubicka  <hubicka@ucw.cz>
19465
19466         * ipa-utils.c (ipa_merge_profiles): Avoid ICE on mismatch in indirect
19467         edges.
19468
19469 2015-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
19470
19471         * gimplify.c (gimplify_function_tree): Check the no_sanitize_thread
19472         decl attribute.
19473
19474 2015-01-21  David Sherwood  <david.sherwood@arm.com>
19475             Tejas Belagod <Tejas.Belagod@arm.com>
19476
19477         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Removed.
19478         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class): Removed.
19479         * config/aarch64/aarch64-protos.h (aarch64_cannot_change_mode_class):
19480         Removed.
19481
19482 2015-01-21  David Sherwood  <david.sherwood@arm.com>
19483             Tejas Belagod <Tejas.Belagod@arm.com>
19484
19485         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist)
19486         (aarch64_reverse_mask): New decls.
19487         * config/aarch64/iterators.md (UNSPEC_REV_REGLIST): New enum.
19488         (insn_count): New mode_attr.
19489         * config/aarch64/aarch64-simd.md (vec_store_lanesoi, vec_store_lanesci)
19490         (vec_store_lanesxi, vec_load_lanesoi, vec_load_lanesci)
19491         (vec_load_lanesxi): Made ABI compliant for Big Endian targets.
19492         (aarch64_rev_reglist, aarch64_simd_ld2, aarch64_simd_ld3)
19493         (aarch64_simd_ld4, aarch64_simd_st2, aarch64_simd_st3)
19494         (aarch64_simd_st4): New patterns.
19495         * config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist)
19496         (aarch64_reverse_mask): New functions.
19497
19498 2015-01-21  Richard Sandiford  <richard.sandiford@arm.com>
19499
19500         * config/aarch64/aarch64-protos.h (aarch64_simd_disambiguate_copy):
19501         Declare.
19502         * config/aarch64/aarch64.c (aarch64_classify_address): Allow extra
19503         addressing modes for BE.
19504         (aarch64_print_operand): Add 'R' specifier.
19505         (aarch64_simd_disambiguate_copy): Delete.
19506         (aarch64_simd_emit_reg_reg_move): New function.
19507         * config/aarch64/aarch64-simd.md: Use aarch64_simd_emit_reg_reg_move
19508         in define_splits for structural moves.
19509         (mov<mode>): Use less restrictive predicates.
19510         (*aarch64_mov<mode>): Simplify and only allow for LE.
19511         (*aarch64_be_movoi, *aarch64_be_movci, *aarch64_be_movxi): New.
19512
19513 2015-01-21  Alan Hayward  <alan.hayward@arm.com>
19514
19515         * rtlanal.c (subreg_get_info): Exit early for simple and common cases.
19516
19517 2015-01-21  Richard Henderson  <rth@redhat.com>
19518
19519         PR target/64669
19520         * ccmp.c (used_in_cond_stmt_p): Remove.
19521         (expand_ccmp_expr): Don't use it.
19522
19523 2015-01-21  Nick Clifton  <nickc@redhat.com>
19524
19525         * config/rl78/rl78.c (rl78_calculate_death_notes): Look inside
19526         PARALLELs.
19527
19528 2015-01-21  Richard Biener  <rguenther@suse.de>
19529
19530         PR middle-end/64313
19531         * tree-core.h (builtin_info, builtin_info_type): Turn from
19532         an object with two arrays into an array of an object with
19533         decl and two flags, implicit_p and declared_p.
19534         * tree.h (builtin_decl_explicit, builtin_decl_implicit,
19535         set_builtin_decl, set_builtin_decl_implicit_p,
19536         builtin_decl_explicit_p, builtin_decl_implicit_p): Adjust.
19537         (set_builtin_decl_declared_p, builtin_decl_declared_p): New functions.
19538         * builtins.c (builtin_info): Adjust.
19539         * gimplify.c (gimplify_addr_expr): References to builtins
19540         that have been declared by the user makes them eligible for
19541         use by the compiler.  Call set_builtin_decl_implicit_p on them.
19542
19543 2015-01-20  Jeff Law  <law@redhat.com>
19544
19545         PR target/59946
19546         * config/m68k/m68k.md (Comparison expanders and patterns): Do not
19547         allow pc-relative addresses in operand predicates or constraints.
19548
19549 2015-01-21  Bin Cheng  <bin.cheng@arm.com>
19550
19551         * config/arm/arm.c (arm_cortex_a53_tune, arm_cortex_a57_tune): Prefer
19552         neon on aarch32 processors for stringops.
19553
19554 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
19555
19556         PR ipa/63576
19557         * ipa-utils.c (ipa_merge_profiles): Merge speculative edges.
19558
19559 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
19560
19561         PR lto/45375
19562         * ipa-inline.c: Include lto-streamer.h
19563         (report_inline_failed_reason): Output source file differences and
19564         flags on optimization/target node mismatch.
19565         (can_inline_edge_p): Consider caller to be the outer inline function;
19566         be less restrictive about matching opimize and optimize_size attributes.
19567         (inline_account_function_p): Break out from ...
19568         (inline_small_functions): ... here.
19569         * ipa-inline-transform.c (clone_inlined_nodes): Use
19570         inline_account_function_p.
19571         (inline_call): Use optimize attribution; use inline_account_function_p.
19572         (inline_transform): Use opt_for_fn.
19573         * ipa-inline.h (inline_account_function_p): Declare.
19574
19575 2015-01-20  Jakub Jelinek  <jakub@redhat.com>
19576
19577         PR debug/64663
19578         * dwarf2out.c (decl_piece_node): Don't put bitsize into
19579         mode if bitsize <= 0.
19580         (decl_piece_bitsize, adjust_piece_list, add_var_loc_to_decl,
19581         dw_sra_loc_expr): Use HOST_WIDE_INT instead of int for bit
19582         sizes and positions.
19583
19584 2015-01-20  Chung-Lin Tang  <cltang@codesourcery.com>
19585
19586         * config/nios2/nios2.c (nios2_asm_file_end): Implement
19587         TARGET_ASM_FILE_END hook for adding .note.GNU-stack section when
19588         needed.
19589         (TARGET_ASM_FILE_END): Define.
19590
19591 2015-01-20  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
19592
19593         * config/arm/arm-protos.h (enum arm_sched_autopref): New constants.
19594         (struct tune_params): Use the enum.
19595         * arm.c (arm_*_tune): Update.
19596         (arm_option_override): Update.
19597
19598 2015-01-20  Richard Biener  <rguenther@suse.de>
19599
19600         PR ipa/64684
19601         * ipa-reference.c (add_static_var): Inline ...
19602         (analyze_function): ... here after splitting out from ...
19603         (is_proper_for_analysis): ... this.
19604
19605 2015-01-20  Matthew Wahab  <matthew.wahab@arm.com>
19606
19607         PR target/64149
19608         * config/arm/arm.opt: Remove lra option and arm_lra_flag variablesle.
19609         * config/arm/arm.h (MODE_BASE_REG_CLASS): Remove use of arm_lra_flagag,
19610         replace the conditional with it's true branch.
19611         * config/arm/arm.config (TARGET_LRA_P): Set to hook_bool_void_true.
19612         (arm_lra_p): Remove.
19613
19614 2015-01-20  Eric Botcazou  <ebotcazou@adacore.com>
19615
19616         * config/visium/visium.h (LIB_SPEC): Adjust in default case.
19617
19618 2015-01-20  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
19619
19620         * config/tilegx/mul-tables.c: Move symtab.h include after
19621         coretypes.h include.
19622         * config/tilepro/mul-tables.c: Add includes hashtab.h, hash-set.h,
19623         vec.h, machmode.h, tm.h, hard-reg-set.h, input.h, function.h, rtl.h,
19624         flags.h, statistics.h, double-int.h, real.h, fixed-value.h, alias.h,
19625         wide-int.h, inchash.h, tree.h, insn-config.h, expmed.h, dojump.h,
19626         explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
19627
19628 2015-01-20  Igor Zamyatin  <igor.zamyatin@intel.com>
19629
19630         PR bootstrap/64676
19631         Revert:
19632         2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
19633
19634         PR rtl-optimization/64081
19635         * loop-iv.c (def_pred_latch_p): New function.
19636         (latch_dominating_def): Allow specific cases with non-single
19637         definitions.
19638         (iv_get_reaching_def): Likewise.
19639         (check_complex_exit_p): New function.
19640         (check_simple_exit): Use check_complex_exit_p to allow certain cases
19641         with exits not executing on any iteration.
19642
19643 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
19644
19645         PR lto/45375
19646         * i386.c (ix86_option_override_internal): Use ix86_tune_cost
19647         to set branch cost.
19648
19649 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
19650
19651         PR lto/45375
19652         * i386.c (gate): Check flag_expensive_optimizations and
19653         optimize_size.
19654         (ix86_option_override_internal): Drop optimize_size condition
19655         on MASK_ACCUMULATE_OUTGOING_ARGS, MASK_VZEROUPPER,
19656         MASK_AVX256_SPLIT_UNALIGNED_LOAD, MASK_AVX256_SPLIT_UNALIGNED_STORE,
19657         MASK_PREFER_AVX128.
19658         (ix86_avx256_split_vector_move_misalign,
19659         ix86_avx256_split_vector_move_misalign): Check optimize_insn_for_speed.
19660         * sse.md (all uses of TARGET_PREFER_AVX128): Add
19661         optimize_insn_for_speed_p check.
19662
19663 2015-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
19664
19665         * config/mips/mips.h (FP_ASM_SPEC): New define.
19666         (ASM_SPEC): Remove floating-point options and use FP_ASM_SPEC
19667         instead.
19668
19669 2015-01-19  Oleg Endo  <olegendo@gcc.gnu.org>
19670
19671         PR target/53988
19672         * config/sh/sh-protos.h (sh_find_set_of_reg): Make sure not to return
19673         nullptr for insn when reaching the first insn.
19674         * config/sh/sh.c (sh_unspec_insn_p): Rewrite using subrtx_iterator.
19675         (sh_insn_operands_modified_between_p): Add nullptr check.
19676         (sh_find_extending_set_of_reg): Fix log message.  Don't accept
19677         sign extending mem load if the insn contains any UNSPEC or
19678         UNSPEC_VOLATILE.
19679
19680 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
19681
19682         * params.def (inline-unit-growth): Drop to 15%.
19683         * invoke.texi (inline-unit-growth): Document change.
19684
19685 2015-01-19  Martin Liska  <mliska@suse.cz>
19686
19687         PR ipa/64668
19688         * ipa-icf-gimple.c (func_checker::compare_operand): Call proper
19689         function for second argument of OBJ_TYPE_REF.
19690
19691 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
19692
19693         PR ipa/64218
19694         * ipa-inline.c (want_inline_function_to_all_callers_p): Fix check
19695         whether function is an alias.
19696
19697 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
19698
19699         * ipa-devirt.c (ipa_devirt): Drop polymorphic call info in hopeless
19700         cases.
19701
19702 2015-01-19  Vladimir Makarov  <vmakarov@redhat.com>
19703
19704         PR rtl-optimization/64671
19705         * lra-remat.c (operand_to_remat): Don't consider jump and call
19706         insns.
19707
19708 2015-01-19  David Edelsohn  <dje.gcc@gmail.com>
19709
19710         PR target/59828
19711         * config/rs6000/default64.h: Include rs6000-cpus.def.
19712         (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use ISA 2.7 (POWER8).
19713         (TARGET_DEFAULT) [BIG_ENDIAN]: Use POWER4.
19714         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add POWER7
19715         and POWER8.
19716         * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Always default to
19717         POWER8.
19718         * config/rs6000/rs6000.c (rs6000_file_start): Emit .machine
19719         pseudo-op to specify assembler dialect.
19720
19721 2015-01-19  Martin Liska  <mliska@suse.cz>
19722
19723         PR ipa/64664
19724         * ipa-icf.c (sem_item_optimizer::filter_removed_items):
19725         Handle safe potentially removed nodes during filtering.
19726
19727 2015-01-19  Martin Liska  <mliska@suse.cz>
19728
19729         * doc/extend.texi (no_icf): Add new attribute description.
19730         * ipa-icf.c (sem_item_optimizer::merge_classes): Handle cases
19731         where the pass attempts to merge a function with no_icf attribute.
19732
19733 2015-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19734
19735         PR target/64532
19736         * doc/md.texi (ARM Options): Document register constraints.
19737
19738 2015-01-19  Jiong Wang  <jiong.wang@arm.com>
19739             Andrew Pinski  <apinski@cavium.com>
19740
19741         PR target/64304
19742         * config/aarch64/aarch64.md (define_insn "*ashl<mode>3_insn"): Deleted.
19743         (ashl<mode>3): Don't expand if operands[2] is not constant.
19744
19745 2015-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19746
19747         PR target/64448
19748         * config/aarch64/aarch64-simd.md (aarch64_simd_bsl<mode>_internal):
19749         Match xor-and-xor RTL pattern.
19750
19751 2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
19752
19753         PR rtl-optimization/64081
19754         * loop-iv.c (def_pred_latch_p): New function.
19755         (latch_dominating_def): Allow specific cases with non-single
19756         definitions.
19757         (iv_get_reaching_def): Likewise.
19758         (check_complex_exit_p): New function.
19759         (check_simple_exit): Use check_complex_exit_p to allow certain cases
19760         with exits not executing on any iteration.
19761
19762 2015-01-19  Jakub Jelinek  <jakub@redhat.com>
19763
19764         * common.opt (fgraphite): Fix a typo.
19765
19766 2015-01-19  Felix Yang  <felix.yang@huawei.com>
19767
19768         * config/aarch64/aarch64-simd.md (aarch64_<maxmin_uns>p<mode>): New
19769         pattern.
19770         * config/aarch64/aarch64-simd-builtins.def (smaxp, sminp, umaxp,
19771         uminp, smax_nanp, smin_nanp): New builtins.
19772         * config/aarch64/arm_neon.h (vpmax_s8, vpmax_s16, vpmax_s32,
19773         vpmax_u8, vpmax_u16, vpmax_u32, vpmaxq_s8, vpmaxq_s16, vpmaxq_s32,
19774         vpmaxq_u8, vpmaxq_u16, vpmaxq_u32, vpmax_f32, vpmaxq_f32, vpmaxq_f64,
19775         vpmaxqd_f64, vpmaxs_f32, vpmaxnm_f32, vpmaxnmq_f32, vpmaxnmq_f64,
19776         vpmaxnmqd_f64, vpmaxnms_f32, vpmin_s8, vpmin_s16, vpmin_s32, vpmin_u8,
19777         vpmin_u16, vpmin_u32, vpminq_s8, vpminq_s16, vpminq_s32, vpminq_u8,
19778         vpminq_u16, vpminq_u32, vpmin_f32, vpminq_f32, vpminq_f64, vpminqd_f64,
19779         vpmins_f32, vpminnm_f32, vpminnmq_f32, vpminnmq_f64, vpminnmqd_f64,
19780         vpminnms_f32): Rewrite using builtin functions.
19781
19782 2015-01-19  Thomas Schwinge  <thomas@codesourcery.com>
19783
19784         PR libgomp/64625
19785         * omp-low.c (offload_symbol_decl): Remove variable.
19786         (get_offload_symbol_decl): Remove function.
19787         (expand_omp_target): For BUILT_IN_GOMP_TARGET,
19788         BUILT_IN_GOMP_TARGET_DATA, BUILT_IN_GOMP_TARGET_UPDATE pass NULL
19789         instead of &__OFFLOAD_TABLE__, for BUILT_IN_GOACC_DATA_START,
19790         BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL,
19791         BUILT_IN_GOACC_UPDATE don't pass it at all.
19792
19793 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
19794
19795         * tree-sra.c (some_callers_have_mismatched_arguments_p): Allow thunk
19796         callers.
19797
19798 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
19799
19800         * ipa-chkp.c (chkp_produce_thunks): Add early param
19801         to split thunks production into two passes.  Keep
19802         'always_inline' function bodies after the first pass.
19803         (pass_data_ipa_chkp_early_produce_thunks): New.
19804         (pass_ipa_chkp_early_produce_thunks): New.
19805         (pass_ipa_chkp_produce_thunks::execute): Adjust to new
19806         chkp_produce_thunks signature.
19807         (make_pass_ipa_chkp_early_produce_thunks): New.
19808         * passes.def (pass_ipa_chkp_early_produce_thunks): New.
19809         (pass_ipa_chkp_produce_thunks): Move after local optimizations.
19810         * tree-pass.h (make_pass_ipa_chkp_early_produce_thunks): New.
19811
19812 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
19813
19814         * cgraph.c (cgraph_node::dump): Dump profile flags.
19815
19816 2015-01-18  Oleg Endo  <olegendo@gcc.gnu.org>
19817
19818         PR target/64652
19819         * config/sh/sh.md (udivsi3_i4, divsi3_i4): Make use of sfunc address
19820         reg appear first in the parallel.
19821
19822 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
19823
19824         * ipa-reference.c (set_reference_optimization_summary,
19825         ipa_reference_get_not_written_global): Do nothing if ipa-reference is
19826         disabled.
19827         (ignore_module_statics): New static var.
19828         (propagate_bits): If ipa-reference is disabled, do not look into local
19829         properties.
19830         (analyze_function): Disable analysis when ipa_reference is disabled.
19831         (generate_summary): Do not dump when reference is disabled;
19832         collect vars accessed from functions with ipa-reference disabled.
19833         (get_read_write_all_from_node): When ipa-reference is disabled, use the
19834         node flags.
19835         (gate): Enable for LTO.
19836         (ignore_edge_p): New function.
19837         (propagate): Skip functions w/o ipa-reference analysis.
19838         * optc-save-gen.awk: Handle optimize_debug correctly.
19839         * opth-gen.awk: Likewise.
19840         * common.opt (fauto-inc-dec, fdelete-dead-exceptions, ffunction-cse,
19841         fgraphite, fstrict-volatile-bitfields, fira-algorithm, fira-region,
19842         fira-share-save-slots, fira-share-spill-slots,
19843         fmodulo-sched-allow-regmoves, fpartial-inlining,
19844         sched-stalled-insns, fsched-stalled-insns-dep, fstrict-overflow,
19845         ftracer, ftree-parallelize-loops, fassociative-math,
19846         freciprocal-math, fvect-cost-model, fsimd-cost-model): Mark as
19847         Optimization
19848         (fauto-profile, fcommon, fdata-sections, fipa-icf-variables,
19849         ftoplevel-reorder, funit-at-a-time, fwhole-program): Do not mark as
19850         Optimization.
19851         * ipa-icf.c (gate, sem_item_optimizer::filter_removed_items):
19852         Fix for IPA.
19853
19854 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
19855
19856         PR ipa/64378
19857         * ipa-prop.c (try_make_edge_direct_virtual_call): Clear speculative
19858         flag correctly.
19859         * ipa-cp.c (ipa_get_indirect_edge_target_1): Handle speculation.
19860
19861 2015-01-18  Sandra Loosemore  <sandra@codesourcery.com>
19862
19863         * doc/invoke.texi ([-funroll-loops], [-funroll-all-loops]):
19864         Remove duplicate option listings.
19865
19866 2015-01-18  Felix Yang  <felix.yang@huawei.com>
19867
19868         * auto-profile.c (afdo_find_equiv_class): Remove unnecessary test.
19869         (autofdo_source_profile::get_callsite_total_count,
19870         function_instance::get_function_instance_by_decl,
19871         string_table::get_index, string_table::get_index_by_decl,
19872         afdo_vpt_for_early_inline, afdo_callsite_hot_enough_for_early_inline):
19873         Fix comment typos. Reformatting and minor code rearrangement.
19874
19875 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
19876
19877         * config/rs6000/rs6000.md (probe_stack): Delete.
19878         (probe_stack_address): New.
19879
19880 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
19881
19882         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use TARGET_32BIT
19883         to test for 32-bit ABIs, not !TARGET_POWERPC64.
19884
19885 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
19886
19887         * config/rs6000/rs6000.c (rs6000_parallel_return): New function.
19888         (rs6000_function_value): Use it.  Handle SCmode and TCmode as well,
19889         for TARGET_32BIT && TARGET_POWERPC64.  Fix another BITS_PER_WORD
19890         snafu.
19891         (rs6000_libcall_value): Use the new function.
19892
19893 2015-01-17  Sandra Loosemore  <sandra@codesourcery.com>
19894
19895         * doc/invoke.texi ([-ftracer]): Remove duplicate option listing.
19896
19897 2015-01-17  Eric Botcazou  <ebotcazou@adacore.com>
19898
19899         * reorg.c (fill_simple_delay_slots): If TARGET_FLAGS_REGNUM is valid,
19900         implement a more precise life analysis for it during backward scan.
19901
19902 2015-01-17  Jan Kratochvil  <jan.kratochvil@redhat.com>
19903
19904         * dwarf2out.c (gen_producer_string): Ignore also OPT_fpreprocessed.
19905
19906 2015-01-17  Bernd Schmidt  <bernds@codesourcery.com>
19907
19908         PR rtl-optimization/52773
19909         * calls.c (emit_library_call_value): When pushing arguments use
19910         stack_pointer_rtx rather than virtual_outgoing_args_rtx in
19911         CALL_INSN_FUNCTION_USAGE.  Only emit one of use of the magic
19912         stack pointer reference into CALL_INSN_FUNCTION_USAGE.
19913
19914 2015-01-17  Jeff Law  <law@redhat.com>
19915
19916         PR rtl-optimization/32790
19917         * reginfo.c (reg_scan_mark_refs): Look for ZERO_EXTRACT,
19918         not ZERO_EXTEND in SET_DESTs.
19919
19920 2015-01-17  Alan Modra  <amodra@gmail.com>
19921
19922         * cprop.c (do_local_cprop): Revert last change.
19923
19924 2015-01-16  DJ Delorie  <dj@redhat.com>
19925             Nick Clifton  <nickc@redhat.com>
19926
19927         * config/rl78/rl78-real.md (addqi3_real): Allow volatiles.
19928         (addhi3_real): Likewise.  Fix [HL+0] syntax.
19929         (subqi3_real): Likewise.
19930         (subhi3_real): Likewise.
19931         (cbranchqi4_real): Likewise.  Allow saddr,#imm.
19932         (cbranchhi4_real): Likewise.
19933         (cbranchhi4_real_inverted): Likewise.
19934         (cbranchsi4_real_lt): Likewise.
19935         (cbranchsi4_real_ge): Likewise.
19936         (cbranchsi4_real_ge): Likewise.
19937         * config/rl78/rl78-virt.md (add<mode>3_virt): Likewise.
19938         (sub<mode>3_virt): Likewise.
19939         (cbranchqi4_virt): Likewise.
19940         (cbranchhi4_virt): Likewise.
19941         * config/rl78/rl78.c (rl78_print_operand_1): 'p' modifier means
19942         always use '[reg+imm]' even when imm is zero.
19943         * config/rl78/predicates.md (rl78_volatile_memory_operand): New.
19944         (rl78_general_operand): New.
19945         (rl78_nonimmediate_operand): New.
19946         (rl78_nonfar_operand): Use them.
19947         (rl78_nonfar_nonimm_operand): Likewise.
19948         (rl78_stack_based_mem): Fix.
19949         * config/rl78/constraints.md (Ibqi): New.
19950         (IBqi): New.
19951         (Wsa): New.
19952         (Wsf): New.
19953         (Cs1): Fix.
19954         * config/rl78/rl78-expand.md (andqi3): Accept volatiles.
19955         (iorqi3): Likewise.
19956         (xorqi3): Likewise.
19957         * config/rl78/rl78-protos.h (rl78_sfr_p): New.
19958
19959         * config/rl78/constrains (Qs8): New constraint.
19960         * config/rl78/rl78.c (rl78_flags_already_set): New function.
19961         * config/rl78/rl78-protos.h (rl78_flags_already_set): New prototype.
19962         * config/rl78/rl78-real.md (update_Z): New attribute.
19963         Update patterns to set it.
19964         (cbranchqi4_real): Call rl78_flags_already_set() to determine if a
19965         shorter compare and branch sequence can be used.
19966         (cbranchhi4_real): Likewise.
19967         (cbranchhi4_real_inverted): Likewise.
19968
19969         * config/rl78/predicates.md (uword_operand): Allow symbol_refs.
19970         * config/rl78/rl78-c.c (rl78_register_pragmas): Register __near
19971         address space.
19972         * config/rl78/rl78.c (rl78_get_name_encoding): New.
19973         (rl78_option_override): Allow -mes0 only if C.
19974         (characterize_address): Support subregs of symbol_refs.
19975         (rl78_addr_space_address_mode): Move.  Add __near.
19976         (rl78_far_p): Likewise.
19977         (rl78_addr_space_pointer_mode): Likewise.
19978         (rl78_as_legitimate_address): Likewise.
19979         (rl78_addr_space_subset_p): Likewise.
19980         (rl78_addr_space_convert): Likewise.
19981         (rl78_print_operand_1): Support 16-bit addressing of 32-bit
19982         symbols with -mes0.
19983         (transcode_memory_rtx): Don't copy ES if -mes0.  Allow symbol[BC]
19984         addressing.
19985         (rl78_alloc_physical_registers_op1): Change logic to prefer
19986         symbol[BC] addressing.
19987         (frodata_section): New.
19988         (rl78_asm_init_sections): Initialize it.
19989         (rl78_select_section): Put __far readonly symbols in .frodata.
19990         (rl78_make_type_far): New.
19991         (rl78_insert_attributes): Force all readonly symbols to be
19992         __far when -mes0.
19993         (rl78_asm_out_integer): New.
19994         * config/rl78/rl78.h (ADDR_SPACE_NEAR): New.
19995         * config/rl78/rl78.opt (-mes0): New.
19996
19997         * config/rl78/rl78.h (ASM_OUTPUT_LABELREF): New.
19998         (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
19999         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
20000         * config/rl78/rl78-protos.h (rl78_output_labelref): New.
20001         (rl78_saddr_p): New.
20002         (rl78_output_aligned_common): New.
20003         * config/rl78/rl78.c (rl78_output_symbol_ref): Strip encodings.
20004         (rl78_handle_saddr_attribute): New.
20005         (rl78_handle_naked_attribute): New.
20006         (rl78_attribute_table): Add saddr.
20007         (rl78_print_operand_1): Don't print '!' on saddr operands.
20008         (rl78_print_operand_1): Strip encodings.
20009         (rl78_sfr_p): New.
20010         (rl78_strip_name_encoding): New.
20011         (rl78_attrlist_to_encoding): New.
20012         (rl78_encode_section_info): New.
20013         (rl78_asm_init_sections): New.
20014         (rl78_select_section): New.
20015         (rl78_output_labelref): New.
20016         (rl78_output_aligned_common): New.
20017         (rl78_asm_out_integer): New.
20018         (rl78_asm_ctor_dtor): New.
20019         (rl78_asm_constructor): New.
20020         (rl78_asm_destructor): New.
20021
20022         * config/rl78/rl78-real.md (movqi_es): Rename to movqi_to_es.
20023         * config/rl78/rl78.c (rl78_expand_epilogue): Update.
20024         (transcode_memory_rtx): Update.
20025         (rl78_expand_epilogue): Use A_REG instead of 0.
20026
20027 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
20028
20029         * config/arm/arm-protos.h (struct tune_params): New field
20030         sched_autopref_queue_depth.
20031         * config/arm/arm.c (sched-int.h): Include header.
20032         (arm_first_cycle_multipass_dfa_lookahead_guard,)
20033         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define hook.
20034         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,)
20035         (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,)
20036         (arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,)
20037         (arm_cortex_a53_tune, arm_cortex_a57_tune, arm_xgene1_tune,)
20038         (arm_cortex_a5_tune, arm_cortex_a9_tune, arm_cortex_a12_tune,)
20039         (arm_v7m_tune, arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune):
20040         Specify sched_autopref_queue_depth value.  Enabled for A15 and A57.
20041         * config/arm/t-arm (arm.o): Update.
20042         * haifa-sched.c (update_insn_after_change): Update.
20043         (rank_for_schedule): Use auto-prefetcher model, if requested.
20044         (autopref_multipass_init): New static function.
20045         (autopref_rank_for_schedule): New rank_for_schedule heuristic.
20046         (autopref_multipass_dfa_lookahead_guard_started_dump_p): New static
20047         variable for debug dumps.
20048         (autopref_multipass_dfa_lookahead_guard_1): New static helper function.
20049         (autopref_multipass_dfa_lookahead_guard): New global function that
20050         implements TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD hook.
20051         (init_h_i_d): Update.
20052         * params.def (PARAM_SCHED_AUTOPREF_QUEUE_DEPTH): New tuning knob.
20053         * sched-int.h (enum autopref_multipass_data_status): New const enum.
20054         (autopref_multipass_data_): Structure for auto-prefetcher data.
20055         (autopref_multipass_data_def, autopref_multipass_data_t): New typedefs.
20056         (struct _haifa_insn_data:autopref_multipass_data): New field.
20057         (INSN_AUTOPREF_MULTIPASS_DATA): New access macro.
20058         (autopref_multipass_dfa_lookahead_guard): Declare.
20059
20060 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
20061
20062         * rtlanal.c (get_base_term): Handle SCRATCH.
20063
20064 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
20065
20066         * config/aarch64/aarch64.c
20067         (aarch64_sched_first_cycle_multipass_dfa_lookahead): Implement hook.
20068         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
20069         * config/arm/arm.c
20070         (arm_first_cycle_multipass_dfa_lookahead): Implement hook.
20071         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
20072
20073 2015-01-17  Alan Modra  <amodra@gmail.com>
20074
20075         * cprop.c (do_local_cprop): Disallow replacement of fixed
20076         hard registers.
20077
20078 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20079
20080         PR target/62066
20081         * config/arm/arm-builtins.c (arm_expand_neon_args): Call va_end before
20082         early return 0.
20083
20084 2015-01-16  Bernd Edlinger  <bernd.edlinger@hotmail.de>
20085
20086         * sanitizer.def (BUILT_IN_TSAN_VPTR_UPDATE): Fixed parameters.
20087         * tsan.c (instrument_expr): Fixed parameters of __tsan_vptr_update.
20088
20089 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20090
20091         * config/arm/arm.md: Move comment about splitting Thumb1 patterns to...
20092         * config/arm/thumb1.md: ... Here.
20093
20094 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
20095
20096         * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Disallow
20097         TImode for TARGET_32BIT.
20098
20099 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
20100
20101         * config/rs6000/rs6000.c (TARGET_LIBGCC_CMP_RETURN_MODE,
20102         TARGET_LIBGCC_SHIFT_COUNT_MODE, TARGET_UNWIND_WORD_MODE): Implement
20103         as ...
20104         (rs6000_abi_word_mode): New function.
20105
20106 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
20107
20108         * config/rs6000/rs6000.c (rs6000_va_start): Use MIN_UNITS_PER_WORD
20109         instead of UNITS_PER_WORD to describe the size of stack slots.
20110
20111 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
20112
20113         * config/rs6000/rs6000.c (TARGET_PROMOTE_FUNCTION_MODE): Implement
20114         as rs6000_promote_function_mode.  Move comment to there.
20115         (rs6000_promote_function_mode): New function.
20116
20117 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
20118
20119         * config/rs6000/rs6000.h (PROMOTE_MODE): Correct test for when -m32
20120         -mpowerpc64 is active.
20121
20122 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
20123
20124         PR middle-end/64353
20125         * tree-cfg.c (pass_data_fixup_cfg): Update SSA for
20126         virtuals on start.
20127
20128 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
20129
20130         * config/arm/cortex-a57.md: Remove duplicate of file accidentally
20131         introduced in revision 219724.
20132
20133 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20134             Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
20135
20136         PR target/64263
20137         * config/aarch64/aarch64.md (*movsi_aarch64): Don't split if the
20138         destination is not a GP reg.
20139         (*movdi_aarch64): Likewise.
20140
20141 2015-01-16  David Edelsohn  <dje.gcc@gmail.com>
20142
20143         PR target/64623
20144         * config/rs6000/default64.h: Revert ISA change.
20145
20146 2015-01-16  Richard Biener  <rguenther@suse.de>
20147
20148         PR middle-end/64614
20149         * tree-ssa-uninit.c: Include tree-cfg.h.
20150         (MAX_SWITCH_CASES): New define.
20151         (convert_control_dep_chain_into_preds): Handle switch statements.
20152         (is_pred_expr_subset_of): Handle x == CST vs. (x & CST) != 0.
20153         (normalize_one_pred_1): Do not split bit-manipulations.
20154         Record (x & CST).
20155
20156 2015-01-16  Richard Biener  <rguenther@suse.de>
20157
20158         PR tree-optimization/64568
20159         * tree-ssa-forwprop.c (pass_forwprop::execute): Guard
20160         complex load rewriting for TARGET_MEM_REFs.
20161
20162 2015-01-16  Uros Bizjak  <ubizjak@gmail.com>
20163
20164         * builtins.c (expand_builtin_acc_on_device): Check target for NULL.
20165
20166 2015-01-16  Matthew Wahab  <matthew.wahab@arm.com>
20167
20168         PR target/64149
20169         * config/aarch64/aarch64.opt: Remove lra option and aarch64_lra_flag
20170         variable.
20171         * config/aarch64/aarch64.c (TARGET_LRA_P): Set to hook_bool_void_true.
20172         (aarch64_lra_p): Remove.
20173
20174 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
20175
20176         PR target/64363
20177         * ipa-chkp.h (chkp_instrumentable_p): New.
20178         * ipa-chkp.c: Include tree-inline.h.
20179         (chkp_instrumentable_p): New.
20180         (chkp_maybe_create_clone): Use chkp_instrumentable_p.
20181         Fix processing of not instrumentable functions.
20182         (chkp_versioning): Use chkp_instrumentable_p. Warn about
20183         not instrumentable functions.
20184         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Use
20185         chkp_instrumentable_p.
20186         * tree-inline.h (copy_forbidden): New.
20187         * tree-inline.c (copy_forbidden): Not static anymore.
20188
20189 2015-01-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20190
20191         * optc-save-gen.awk (cl_target_option_print_diff): Mark indent,
20192         ptr1, ptr2 unused.
20193
20194 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
20195
20196         * lra-constraints.c (curr_insn_transform): Change a reload pseudo of
20197         type OP_OUT to OP_INOUT.
20198
20199 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
20200
20201         * simplify-rtx.c (simplify_replace_fn_rtx): Simplify (lo_sum
20202         (high x) y) to y if x and y have the same base.
20203
20204 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
20205
20206         * config/arm/cortex-a57.md: New.
20207         * config/aarch64/aarch64.md: Include it.
20208         * config/aarch64/aarch64-cores.def (cortex-a57): Tune for it.
20209         * config/aarch64/aarch64-tune.md: Regenerate.
20210
20211 2015-01-16  Zhenqiang Chen  <zhenqiang.chen@arm.com>
20212
20213         PR target/64015
20214         * ccmp.c (expand_ccmp_next): New function.
20215         (expand_ccmp_expr_1, expand_ccmp_expr): Handle operand insn sequence
20216         and compare insn sequence.
20217         * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
20218         aarch64_gen_ccmp_first, aarch64_gen_ccmp_next): New functions.
20219         (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New MICRO.
20220         * config/aarch64/aarch64.md (*ccmp_and): Changed to ccmp_and<mode>.
20221         (*ccmp_ior): Changed to ccmp_ior<mode>.
20222         (cmp<mode>): New pattern.
20223         * doc/tm.texi (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Update
20224         parameters.
20225         * target.def (gen_ccmp_first, gen_ccmp_next): Update parameters.
20226
20227 2015-01-16  Ilya Tocar  <ilya.tocar@intel.com>
20228
20229         * config/i386/avx2intrin.h (_mm256_bslli_epi128,
20230         _mm256_bsrli_epi128): New.
20231         * config/i386/emmintrin.h (_mm_bsrli_si128, _mm_bslli_si128): Ditto.
20232
20233 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
20234
20235         * expmed.c (store_bit_field_using_insv): Improve warning message.
20236         Use %wu instead of HOST_WIDE_INT_PRINT_UNSIGNED.
20237
20238 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
20239
20240         PR rtl-optimization/64011
20241         * expmed.c (store_bit_field_using_insv): Warn and truncate bitsize when
20242         there is partial overflow.
20243
20244 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
20245
20246         * config/nds32/nds32-protos.h (nds32_expand_epilogue): Change
20247         prototype.
20248         (nds32_expand_epilogue_v3pop): Likewise.
20249         * config/nds32/nds32.md (sibcall): Define this for sibling call
20250         optimization.
20251         (sibcall_register): Likewise.
20252         (sibcall_immediate): Likewise.
20253         (sibcall_value): Likewise.
20254         (sibcall_value_register): Likewise.
20255         (sibcall_value_immediate): Likewise.
20256         (sibcall_epilogue): Likewise.
20257         (epilogue): Pass false to indicate this is not a sibcall epilogue.
20258         * config/nds32/nds32.c (nds32_expand_epilogue): Consider sibcall case.
20259         (nds32_expand_epilogue_v3pop): Likewise.
20260
20261 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
20262
20263         * config/nds32/nds32-protos.h (nds32_can_use_return_insn): New.
20264         * config/nds32/nds32.md (unspec_volatile_func_return): Remove.
20265         (return_internal): New.
20266         (return): Define this named pattern.
20267         (simple_return): Define this named pattern.
20268         * config/nds32/nds32.c (nds32_expand_epilogue): Emit return_internal
20269         pattern instead of unspec_volatile_func_return.
20270         (nds32_expand_epilogue_v3pop): Likewise.
20271         (nds32_can_use_return_insn): New function.
20272
20273 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
20274
20275         * config/nds32/constants.md (UNSPEC_VOLATILE_POP25_RETURN): New.
20276         * config/nds32/nds32.md (pop25return): New.
20277         * config/nds32/nds32.c (nds32_expand_epilogue_v3pop): Emit
20278         pop25return pattern.
20279
20280 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
20281
20282         * doc/invoke.texi (NDS32 Options): Remove -mforce-fp-as-gp,
20283         -mforbid-fp-as-gp, and -mex9 options.
20284
20285 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
20286
20287         * doc/invoke.texi (NDS32 Options): Add -mcmodel= option and
20288         remove -mgp-direct option.
20289
20290 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
20291
20292         * doc/invoke.texi (--param early-inlining-insns): Update default value.
20293         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 14.
20294
20295 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
20296
20297         * ipa-inline.c (inline_small_functions): Work around hints
20298         cache issue.
20299
20300 2015-01-15  Sandra Loosemore  <sandra@codesourcery.com>
20301
20302         PR target/59710
20303         * doc/invoke.texi (Option Summary): Document new Nios II
20304         -mgpopt= syntax.
20305         (Nios II Options): Likewise.
20306         * config/nios2/nios2.opt: Add -mgpopt= option support.
20307         Modify existing -mgpopt and -mno-gpopt options to be aliases.
20308         * config/nios2/nios2-opts.h (enum nios2_gpopt_type): New.
20309         * config/nios2/nios2.c (nios2_option_override): Adjust
20310         -mgpopt defaulting.
20311         (nios2_in_small_data_p): Return true for explicit small data
20312         sections even with -G0.
20313         (nios2_symbol_ref_in_small_data_p): Adjust to handle new -mgpopt=
20314         option choices.
20315
20316 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
20317
20318         PR ipa/64612
20319         * ipa-inline-transform.c (can_remove_node_now_p): Fix handling
20320         of comdat locals.
20321         (inline_call): Fix removal of aliases.
20322
20323 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
20324
20325         * flag-types.h (enum sanitize_code): Add SANITIZE_VPTR,
20326         include SANITIZE_VPTR in SANITIZE_UNDEFINED.
20327         * opts.c (common_handle_option): Add -fsanitize=vptr.
20328         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS,
20329         BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS_ABORT): New.
20330         * ubsan.h (enum ubsan_null_ckind): Add UBSAN_DOWNCAST_POINTER,
20331         UBSAN_DOWNCAST_REFERENCE, UBSAN_UPCAST and UBSAN_CAST_TO_VBASE.
20332         (ubsan_expand_vptr_ifn): New prototype.
20333         * internal-fn.c (expand_ANNOTATE, expand_GOMP_SIMD_LANE,
20334         expand_GOMP_SIMD_VF, expand_GOMP_SIMD_LAST_LANE, expand_UBSAN_NULL,
20335         expand_UBSAN_BOUNDS, expand_UBSAN_OBJECT_SIZE, expand_ASAN_CHECK,
20336         expand_LOOP_VECTORIZED): Make argument nameless, remove
20337         ATTRIBUTE_UNUSED.
20338         (expand_UBSAN_VPTR): New function.
20339         * internal-fn.def (UBSAN_NULL, ASAN_CHECK): Use R instead of W
20340         in fn spec.
20341         (UBSAN_VPTR): New internal function.
20342         * sanopt.c (tree_map_traits): Renamed to ...
20343         (sanopt_tree_map_traits): ... this.
20344         (sanopt_tree_triplet, sanopt_tree_triplet_map_traits): New classes.
20345         (sanopt_ctx): Adjust asan_check_map type for tree_map_traits
20346         to sanopt_tree_map_traits renaming.  Add vptr_check_map field.
20347         (maybe_optimize_ubsan_vptr_ifn): New function.
20348         (sanopt_optimize_walker): Handle IFN_UBSAN_VPTR.
20349         (pass_sanopt::execute): Likewise.  Call sanopt_optimize even for
20350         -fsanitize=vptr.
20351         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Handle certain
20352         internal calls like pure functions for aliasing, even when they
20353         have other side-effects that prevent making them ECF_PURE.
20354         * ubsan.c (ubsan_vptr_type_cache_decl): New variable.
20355         (ubsan_expand_vptr_ifn): New function.
20356
20357 2015-01-15  Vladimir Makarov  <vmakarov@redhat.com>
20358
20359         PR rtl-optimization/64110
20360         * stmt.c (parse_output_constraint): Process '^' and '$'.
20361         (parse_input_constraint): Ditto.
20362         * lra-constraints.c (process_alt_operands): Process the new
20363         constraints.
20364         * ira-costs.c (record_reg_classes): Process the new constraint
20365         '^'.
20366         * genoutput.c (indep_constraints): Add '^' and '$'.
20367         * config/i386/sse.md (*vec_dup<mode>): Use '$' instead of '!'.
20368         * doc/md.texi: Add description of the new constraints.
20369
20370 2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
20371             Bernd Schmidt  <bernds@codesourcery.com>
20372             Cesar Philippidis  <cesar@codesourcery.com>
20373             James Norris  <jnorris@codesourcery.com>
20374             Tom de Vries  <tom@codesourcery.com>
20375             Ilmir Usmanov  <i.usmanov@samsung.com>
20376             Dmitry Bocharnikov  <dmitry.b@samsung.com>
20377             Evgeny Gavrin  <e.gavrin@samsung.com>
20378             Jakub Jelinek  <jakub@redhat.com>
20379
20380         * builtin-types.def (BT_FN_VOID_INT_INT_VAR)
20381         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
20382         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
20383         New function types.
20384         * builtins.c: Include "gomp-constants.h".
20385         (expand_builtin_acc_on_device): New function.
20386         (expand_builtin, is_inexpensive_builtin): Handle
20387         BUILT_IN_ACC_ON_DEVICE.
20388         * builtins.def (DEF_GOACC_BUILTIN, DEF_GOACC_BUILTIN_COMPILER):
20389         New macros.
20390         * cgraph.c (cgraph_node::create): Consider flag_openacc next to
20391         flag_openmp.
20392         * config.gcc <nvptx-*> (tm_file): Add nvptx/offload.h.
20393         <*-intelmic-* | *-intelmicemul-*> (tm_file): Add
20394         i386/intelmic-offload.h.
20395         * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): For -fopenacc, link
20396         to libgomp and its dependencies.
20397         * config/arc/arc.h (LINK_COMMAND_SPEC): Likewise.
20398         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
20399         * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
20400         * config/ia64/hpux.h (LIB_SPEC): Likewise.
20401         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
20402         * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
20403         * doc/generic.texi: Update for OpenACC changes.
20404         * doc/gimple.texi: Likewise.
20405         * doc/invoke.texi: Likewise.
20406         * doc/sourcebuild.texi: Likewise.
20407         * gimple-pretty-print.c (dump_gimple_omp_for): Handle
20408         GF_OMP_FOR_KIND_OACC_LOOP.
20409         (dump_gimple_omp_target): Handle GF_OMP_TARGET_KIND_OACC_KERNELS,
20410         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_DATA,
20411         GF_OMP_TARGET_KIND_OACC_UPDATE,
20412         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
20413         Dump more data.
20414         * gimple.c: Update comments for OpenACC changes.
20415         * gimple.def: Likewise.
20416         * gimple.h: Likewise.
20417         (enum gf_mask): Add GF_OMP_FOR_KIND_OACC_LOOP,
20418         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
20419         GF_OMP_TARGET_KIND_OACC_DATA, GF_OMP_TARGET_KIND_OACC_UPDATE,
20420         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
20421         (gimple_omp_for_cond, gimple_omp_for_set_cond): Sort in the
20422         appropriate place.
20423         (is_gimple_omp_oacc, is_gimple_omp_offloaded): New functions.
20424         * gimplify.c: Include "gomp-constants.h".
20425         Update comments for OpenACC changes.
20426         (is_gimple_stmt): Handle OACC_PARALLEL, OACC_KERNELS, OACC_DATA,
20427         OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE, OACC_ENTER_DATA,
20428         OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
20429         (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
20430         OMP_CLAUSE__CACHE_, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
20431         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
20432         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER,
20433         OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
20434         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
20435         OMP_CLAUSE_SEQ.
20436         (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Use
20437         GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
20438         OMP_CLAUSE_SET_MAP_KIND.
20439         (gimplify_oacc_cache): New function.
20440         (gimplify_omp_for): Handle OACC_LOOP.
20441         (gimplify_omp_workshare): Handle OACC_KERNELS, OACC_PARALLEL,
20442         OACC_DATA.
20443         (gimplify_omp_target_update): Handle OACC_ENTER_DATA,
20444         OACC_EXIT_DATA, OACC_UPDATE.
20445         (gimplify_expr): Handle OACC_LOOP, OACC_CACHE, OACC_HOST_DATA,
20446         OACC_DECLARE, OACC_KERNELS, OACC_PARALLEL, OACC_DATA,
20447         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE.
20448         (gimplify_body): Consider flag_openacc next to flag_openmp.
20449         * lto-streamer-out.c: Include "gomp-constants.h".
20450         * omp-builtins.def (BUILT_IN_ACC_GET_DEVICE_TYPE)
20451         (BUILT_IN_GOACC_DATA_START, BUILT_IN_GOACC_DATA_END)
20452         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL)
20453         (BUILT_IN_GOACC_UPDATE, BUILT_IN_GOACC_WAIT)
20454         (BUILT_IN_GOACC_GET_THREAD_NUM, BUILT_IN_GOACC_GET_NUM_THREADS)
20455         (BUILT_IN_ACC_ON_DEVICE): New builtins.
20456         * omp-low.c: Include "gomp-constants.h".
20457         Update comments for OpenACC changes.
20458         (struct omp_context): Add reduction_map, gwv_below, gwv_this
20459         members.
20460         (extract_omp_for_data, use_pointer_for_field, install_var_field)
20461         (new_omp_context, delete_omp_context, scan_sharing_clauses)
20462         (create_omp_child_function, scan_omp_for, scan_omp_target)
20463         (check_omp_nesting_restrictions, lower_reduction_clauses)
20464         (build_omp_regions_1, diagnose_sb_0, make_gimple_omp_edges):
20465         Update for OpenACC changes.
20466         (scan_sharing_clauses): Handle OMP_CLAUSE_NUM_GANGS:
20467         OMP_CLAUSE_NUM_WORKERS: OMP_CLAUSE_VECTOR_LENGTH,
20468         OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT, OMP_CLAUSE_GANG,
20469         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
20470         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_INDEPENDENT,
20471         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ.  Use GOMP_MAP_* instead of
20472         OMP_CLAUSE_MAP_*.
20473         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
20474         Handle GF_OMP_FOR_KIND_OACC_LOOP.
20475         (expand_omp_target, lower_omp_target): Handle
20476         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
20477         GF_OMP_TARGET_KIND_OACC_UPDATE,
20478         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA,
20479         GF_OMP_TARGET_KIND_OACC_DATA.
20480         (pass_expand_omp::execute, execute_lower_omp)
20481         (pass_diagnose_omp_blocks::gate): Consider flag_openacc next to
20482         flag_openmp.
20483         (offload_symbol_decl): New variable.
20484         (oacc_get_reduction_array_id, oacc_max_threads)
20485         (get_offload_symbol_decl, get_base_type, lookup_oacc_reduction)
20486         (maybe_lookup_oacc_reduction, enclosing_target_ctx)
20487         (oacc_loop_or_target_p, oacc_lower_reduction_var_helper)
20488         (oacc_gimple_assign, oacc_initialize_reduction_data)
20489         (oacc_finalize_reduction_data, oacc_process_reduction_data): New
20490         functions.
20491         (is_targetreg_ctx): Remove function.
20492         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CACHE_,
20493         OMP_CLAUSE_DEVICE_RESIDENT, OMP_CLAUSE_USE_DEVICE,
20494         OMP_CLAUSE_GANG, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
20495         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT,
20496         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_NUM_GANGS,
20497         OMP_CLAUSE_NUM_WORKERS, OMP_CLAUSE_VECTOR_LENGTH.
20498         * tree.c (omp_clause_code_name, walk_tree_1): Update accordingly.
20499         * tree.h (OMP_CLAUSE_GANG_EXPR, OMP_CLAUSE_GANG_STATIC_EXPR)
20500         (OMP_CLAUSE_ASYNC_EXPR, OMP_CLAUSE_WAIT_EXPR)
20501         (OMP_CLAUSE_VECTOR_EXPR, OMP_CLAUSE_WORKER_EXPR)
20502         (OMP_CLAUSE_NUM_GANGS_EXPR, OMP_CLAUSE_NUM_WORKERS_EXPR)
20503         (OMP_CLAUSE_VECTOR_LENGTH_EXPR): New macros.
20504         * tree-core.h: Update comments for OpenACC changes.
20505         (enum omp_clause_map_kind): Remove.
20506         (struct tree_omp_clause): Change type of map_kind member from enum
20507         omp_clause_map_kind to unsigned char.
20508         * tree-inline.c: Update comments for OpenACC changes.
20509         * tree-nested.c: Likewise.  Include "gomp-constants.h".
20510         (convert_nonlocal_reference_stmt, convert_local_reference_stmt)
20511         (convert_tramp_reference_stmt, convert_gimple_call): Update for
20512         OpenACC changes.  Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
20513         OMP_CLAUSE_SET_MAP_KIND.
20514         * tree-pretty-print.c: Include "gomp-constants.h".
20515         (dump_omp_clause): Handle OMP_CLAUSE_DEVICE_RESIDENT,
20516         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_GANG,
20517         OMP_CLAUSE_ASYNC, OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ,
20518         OMP_CLAUSE_WAIT, OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR,
20519         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
20520         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_INDEPENDENT.  Use GOMP_MAP_*
20521         instead of OMP_CLAUSE_MAP_*.
20522         (dump_generic_node): Handle OACC_PARALLEL, OACC_KERNELS,
20523         OACC_DATA, OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE,
20524         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
20525         * tree-streamer-in.c: Include "gomp-constants.h".
20526         (unpack_ts_omp_clause_value_fields) Use GOMP_MAP_* instead of
20527         OMP_CLAUSE_MAP_*.  Use OMP_CLAUSE_SET_MAP_KIND.
20528         * tree-streamer-out.c: Include "gomp-constants.h".
20529         (pack_ts_omp_clause_value_fields): Use GOMP_MAP_* instead of
20530         OMP_CLAUSE_MAP_*.
20531         * tree.def (OACC_PARALLEL, OACC_KERNELS, OACC_DATA)
20532         (OACC_HOST_DATA, OACC_LOOP, OACC_CACHE, OACC_DECLARE)
20533         (OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE): New tree codes.
20534         * tree.c (omp_clause_num_ops): Update accordingly.
20535         * tree.h (OMP_BODY, OMP_CLAUSES, OMP_LOOP_CHECK, OMP_CLAUSE_SIZE):
20536         Likewise.
20537         (OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES, OACC_KERNELS_BODY)
20538         (OACC_KERNELS_CLAUSES, OACC_DATA_BODY, OACC_DATA_CLAUSES)
20539         (OACC_HOST_DATA_BODY, OACC_HOST_DATA_CLAUSES, OACC_CACHE_CLAUSES)
20540         (OACC_DECLARE_CLAUSES, OACC_ENTER_DATA_CLAUSES)
20541         (OACC_EXIT_DATA_CLAUSES, OACC_UPDATE_CLAUSES)
20542         (OACC_KERNELS_COMBINED, OACC_PARALLEL_COMBINED): New macros.
20543         * tree.h (OMP_CLAUSE_MAP_KIND): Cast it to enum gomp_map_kind.
20544         (OMP_CLAUSE_SET_MAP_KIND): New macro.
20545         * varpool.c (varpool_node::get_create): Consider flag_openacc next
20546         to flag_openmp.
20547         * config/i386/intelmic-offload.h: New file.
20548         * config/nvptx/offload.h: Likewise.
20549
20550 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
20551
20552         * explow.h: Remove duplicate contents.
20553         * dojump.h: Likewise.
20554
20555 2015-01-15  Richard Earnshaw  <rearnsha@arm.com>
20556
20557         * arm.c (arm_xgene_tune): Add default initializer for instruction
20558         fusion.
20559
20560 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
20561
20562         PR ipa/64068
20563         PR ipa/64559
20564         * ipa.c (symbol_table::remove_unreachable_nodes):
20565         Do not put abstract origins into boundary.
20566
20567 2015-01-15  Evgeny Stupachenko  <evstupac@gmail.com>
20568
20569         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Remove EBX register usage.
20570         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Ditto.
20571
20572 2015-01-15  Steve Ellcey  <sellcey@mips.com>
20573
20574         * Makefile.in (PLUGIN_HEADERS): Add dominance.h, cfg.h, cfgrtl.h,
20575         cfganal.h, cfgbuild.h, cfgcleanup.h, lcm.h, cfgloopmanip.h,
20576         builtins.def, and chkp-builtins.def.
20577
20578 2015-01-15  David Edelsohn  <dje.gcc@gmail.com>
20579
20580         * config/rs6000/default64.h (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use
20581         ISA 2.7 (POWER8).
20582
20583 2015-01-15  Richard Biener  <rguenther@suse.de>
20584
20585         PR tree-optimization/61743
20586         * tree-ssa-pre.c (insert_into_preds_of_block): Preserve range
20587         information on PHIs for some simple cases.
20588
20589 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
20590
20591         * config/arm/arm.md (generic_sched): Specify xgene1 in 'no' list.
20592         Include xgene1.md.
20593         * config/arm/arm.c (arm_issue_rate): Specify 4 for xgene1.
20594         * config/arm/arm-cores.def (xgene1): New entry.
20595         * config/arm/arm-tables.opt: Regenerate.
20596         * config/arm/arm-tune.md: Regenerate.
20597         * config/arm/bpabi.h (BE8_LINK_SPEC): Specify mcpu=xgene1.
20598
20599 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
20600
20601         * tree-if-conv.c: Include hash-map.h.
20602         (aggressive_if_conv): New variable.
20603         (fold_build_cond_expr): Add simplification of non-zero condition.
20604         (add_to_dst_predicate_list): Invoke add_to_predicate_list if edge
20605         destination block is not always executed.
20606         (if_convertible_phi_p): Fix commentary, allow phi nodes have more
20607         than two predecessors if AGGRESSIVE_IF_CONV is true.
20608         (if_convertible_stmt_p): Fix commentary.
20609         (all_preds_critical_p): New function.
20610         (has_pred_critical_p): New function.
20611         (if_convertible_bb_p): Fix commentary, if AGGRESSIVE_IF_CONV is true
20612         BB can have more than two predecessors and all incoming edges can be
20613         critical.
20614         (predicate_bbs): Skip predication for loop exit block, use build2_loc
20615         to compute predicate for true edge.
20616         (find_phi_replacement_condition): Delete this function.
20617         (is_cond_scalar_reduction): Add arguments ARG_0, ARG_1 and EXTENDED.
20618         Allow interchange PHI arguments if EXTENDED is false.
20619         Change check that block containing reduction statement candidate
20620         is predecessor of phi-block since phi may have more than two arguments.
20621         (phi_args_hash_traits): New helper structure.
20622         (struct phi_args_hash_traits): New type.
20623         (phi_args_hash_traits::hash): New function.
20624         (phi_args_hash_traits::equal_keys): New function.
20625         (gen_phi_arg_condition): New function.
20626         (predicate_scalar_phi): Add handling of phi nodes with more than two
20627         arguments, delete COND and TRUE_BB arguments, insert body of
20628         find_phi_replacement_condition to predicate ordinary phi nodes.
20629         (predicate_all_scalar_phis): Skip blocks with the only predecessor,
20630         delete call of find_phi_replacement_condition and invoke
20631         predicate_scalar_phi with two arguments.
20632         (insert_gimplified_predicates): Add assert that non-predicated block
20633         don't have statements to insert.
20634         (ifcvt_split_critical_edges): New function.
20635         (ifcvt_split_def_stmt): Likewise.
20636         (ifcvt_walk_pattern_tree): Likewise.
20637         (stmt_is_root_of_bool_pattern): Likewise.
20638         (ifcvt_repair_bool_pattern): Likewise.
20639         (ifcvt_local_dce): Likewise.
20640         (tree_if_conversion): Add initialization of AGGRESSIVE_IF_CONV which
20641         is copy of inner or outer loop force_vectorize field, invoke
20642         ifcvt_split_critical_edges, ifcvt_local_dce and
20643         ifcvt_repair_bool_pattern for aggressive if-conversion.
20644
20645 2015-01-15  Philipp Tomsich  <ptomsich@theobroma-systems.com>
20646
20647         * config/aarch64/aarch64.md: Include xgene1.md.
20648         * config/aarch64/xgene1.md: New file.
20649
20650 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
20651
20652         * config/aarch64/aarch64-cores.def (xgene1): Update/add the
20653         xgene1 (APM XGene-1) core definition.
20654         * gcc/config/aarch64/aarch64.c: Add cost tables for APM XGene-1
20655         * config/arm/aarch-cost-tables.h: Add cost tables for APM XGene-1
20656         * doc/invoke.texi: Document -mcpu=xgene1.
20657
20658 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
20659
20660         * dojump.h: New header file.
20661         * explow.h: Likewise.
20662         * expr.h: Remove includes.
20663         Move expmed.c prototypes to expmed.h.
20664         Move dojump.c prototypes to dojump.h.
20665         Move alias.c prototypes to alias.h.
20666         Move explow.c prototypes to explow.h.
20667         Move calls.c prototypes to calls.h.
20668         Move emit-rtl.c prototypes to emit-rtl.h.
20669         Move varasm.c prototypes to varasm.h.
20670         Move stmt.c prototypes to stmt.h.
20671         (saved_pending_stack_adjust): Move to dojump.h.
20672         (adjust_address): Move to explow.h.
20673         (adjust_address_nv): Move to emit-rtl.h.
20674         (adjust_bitfield_address): Likewise.
20675         (adjust_bitfield_address_size): Likewise.
20676         (adjust_bitfield_address_nv): Likewise.
20677         (adjust_automodify_address_nv): Likewise.
20678         * explow.c (expr_size): Move to expr.c.
20679         (int_expr_size): Likewise.
20680         (tree_expr_size): Likewise.
20681         Include calls.h dojump.h emit-rtl.h explow.h expmed.h
20682         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
20683         * genemit.c (main): Generate includes statistics.h, real.h,
20684         fixed-value.h, insn-config.h, expmed.h, dojump.h, explow.h, emit-rtl.h,
20685         stmt.h.
20686         * genopinit.c (main): Generate includes hashtab.h, hard-reg-set.h,
20687         function.h, statistics.h, real.h, fixed-value.h, expmed.h, dojump.h,
20688         explow.h, emit-rtl.h, stmt.h.
20689         * genoutput.c (main): Generate includes hashtab.h, statistics.h, real.h,
20690         fixed-value.h, expmed.h, dojump.h, explow.h, emit-rtl.h, stmt.h.
20691         * genemit.c (open_base_files): Generate includes flags.h, statistics.h,
20692         real.h, fixed-value.h, tree.h, expmed.h, dojump.h, explow.h, calls.h,
20693         emit-rtl.h, varasm.h, stmt.h.
20694         * config/tilepro/gen-mul-tables.cc: Generate includes hashtab.h,
20695         hash-set.h, vec.h, machmode.h, tm.h, hard-reg-set.h, input.h,
20696         function.h, rtl.h, flags.h, statistics.h, double-int.h, real.h,
20697         fixed-value.h, alias.h, wide-int.h, inchash.h, tree.h, insn-config.h,
20698         expmed.h, dojump.h, explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
20699         * config/tilegx/mul-tables.c: Include alias.h calls.h dojump.h
20700         double-int.h emit-rtl.h explow.h expmed.h fixed-value.h flags.h
20701         function.h hard-reg-set.h hash-set.h hashtab.h inchash.h input.h
20702         insn-config.h machmode.h real.h rtl.h statistics.h stmt.h symtab.h
20703         tm.h tree.h varasm.h vec.h wide-int.h.
20704         * rtlhooks.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
20705         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
20706         hash-set.h hashtab.h inchash.h input.h insn-config.h machmode.h
20707         real.h statistics.h stmt.h tree.h varasm.h vec.h wide-int.h.
20708         * cfgloopanal.c: Include alias.h calls.h dojump.h double-int.h
20709         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h
20710         insn-config.h real.h statistics.h stmt.h tree.h varasm.h wide-int.h.
20711         * loop-iv.c: Likewise.
20712         * lra-assigns.c: Include alias.h calls.h dojump.h double-int.h
20713         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h real.h
20714         statistics.h stmt.h tree.h varasm.h wide-int.h.
20715         * lra-constraints.c: Likewise.
20716         * lra-eliminations.c: Likewise.
20717         * lra-lives.c: Likewise.
20718         * lra-remat.c: Likewise.
20719         * bt-load.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
20720         explow.h expmed.h fixed-value.h inchash.h insn-config.h real.h
20721         statistics.h stmt.h tree.h varasm.h wide-int.h.
20722         * hw-doloop.c: Likewise.
20723         * ira-color.c: Likewise.
20724         * ira-emit.c: Likewise.
20725         * loop-doloop.c: Likewise.
20726         * loop-invariant.c: Likewise.
20727         * reload.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
20728         explow.h expmed.h fixed-value.h inchash.h real.h rtl.h
20729         statistics.h stmt.h tree.h varasm.h wide-int.h.
20730         * caller-save.c: Include alias.h calls.h dojump.h double-int.h
20731         emit-rtl.h explow.h expmed.h fixed-value.h inchash.h real.h
20732         statistics.h stmt.h tree.h varasm.h wide-int.h.
20733         * combine-stack-adj.c: Likewise.
20734         * cse.c: Likewise.
20735         * ddg.c: Likewise.
20736         * ifcvt.c: Likewise.
20737         * ira-costs.c: Likewise.
20738         * jump.c: Likewise.
20739         * lra-coalesce.c: Likewise.
20740         * lra-spills.c: Likewise.
20741         * profile.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
20742         explow.h expmed.h fixed-value.h insn-config.h real.h statistics.h
20743         stmt.h varasm.h wide-int.h.
20744         * lra.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
20745         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
20746         varasm.h.
20747         * config/sh/sh_treg_combine.cc: Include alias.h calls.h dojump.h
20748         double-int.h explow.h expmed.h fixed-value.h flags.h real.h
20749         statistics.h stmt.h varasm.h wide-int.h.
20750         * reorg.c: Include alias.h calls.h dojump.h double-int.h explow.h
20751         expmed.h fixed-value.h inchash.h real.h statistics.h stmt.h tree.h
20752         varasm.h wide-int.h.
20753         * reload1.c: Include alias.h calls.h dojump.h double-int.h explow.h
20754         expmed.h fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
20755         * config/tilegx/tilegx.c: Include alias.h dojump.h double-int.h
20756         emit-rtl.h explow.h expmed.h fixed-value.h flags.h real.h
20757         statistics.h stmt.h.
20758         * config/tilepro/tilepro.c: Likewise.
20759         * config/mmix/mmix.c: Include alias.h dojump.h double-int.h emit-rtl.h
20760         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h.
20761         * config/pdp11/pdp11.c: Likewise.
20762         * config/xtensa/xtensa.c: Likewise.
20763         * config/lm32/lm32.c: Include alias.h dojump.h double-int.h emit-rtl.h
20764         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
20765         varasm.h.
20766         * tree-chkp.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
20767         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
20768         insn-config.h real.h rtl.h statistics.h stmt.h tm.h.
20769         * cilk-common.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
20770         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
20771         insn-config.h real.h rtl.h statistics.h stmt.h tm.h varasm.h.
20772         * rtl-chkp.c: Likewise.
20773         * tree-chkp-opt.c: Likewise.
20774         * config/arm/arm-builtins.c: Include calls.h dojump.h emit-rtl.h
20775         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
20776         hashtab.h insn-config.h real.h statistics.h stmt.h varasm.h.
20777         * ipa-icf.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
20778         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
20779         statistics.h stmt.h.
20780         * tree-vect-data-refs.c: Likewise.
20781         * graphite-sese-to-poly.c: Include calls.h dojump.h emit-rtl.h explow.h
20782         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
20783         rtl.h statistics.h stmt.h varasm.h.
20784         * internal-fn.c: Likewise.
20785         * ipa-icf-gimple.c: Likewise.
20786         * lto-section-out.c: Likewise.
20787         * tree-data-ref.c: Likewise.
20788         * tree-nested.c: Likewise.
20789         * tree-outof-ssa.c: Likewise.
20790         * tree-predcom.c: Likewise.
20791         * tree-pretty-print.c: Likewise.
20792         * tree-scalar-evolution.c: Likewise.
20793         * tree-ssa-strlen.c: Likewise.
20794         * tree-vect-loop.c: Likewise.
20795         * tree-vect-patterns.c: Likewise.
20796         * tree-vect-slp.c: Likewise.
20797         * tree-vect-stmts.c: Likewise.
20798         * tsan.c: Likewise.
20799         * targhooks.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
20800         fixed-value.h flags.h hashtab.h insn-config.h real.h statistics.h
20801         stmt.h.
20802         * config/sh/sh-mem.cc: Include calls.h dojump.h emit-rtl.h explow.h
20803         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
20804         statistics.h stmt.h varasm.h.
20805         * loop-unroll.c: Likewise.
20806         * ubsan.c: Likewise.
20807         * tree-ssa-loop-prefetch.c: Include calls.h dojump.h emit-rtl.h explow.h
20808         expmed.h fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h
20809         stmt.h varasm.h.
20810         * dse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
20811         fixed-value.h function.h hashtab.h statistics.h stmt.h varasm.h.
20812         * tree-switch-conversion.c: Include calls.h dojump.h emit-rtl.h explow.h
20813         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
20814         statistics.h stmt.h.
20815         * generic-match-head.c: Include calls.h dojump.h emit-rtl.h explow.h
20816         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
20817         statistics.h stmt.h varasm.h.
20818         * gimple-match-head.c: Likewise.
20819         * lto-cgraph.c: Likewise.
20820         * lto-section-in.c: Likewise.
20821         * lto-streamer-in.c: Likewise.
20822         * lto-streamer-out.c: Likewise.
20823         * tree-affine.c: Likewise.
20824         * tree-cfg.c: Likewise.
20825         * tree-cfgcleanup.c: Likewise.
20826         * tree-if-conv.c: Likewise.
20827         * tree-into-ssa.c: Likewise.
20828         * tree-ssa-alias.c: Likewise.
20829         * tree-ssa-copyrename.c: Likewise.
20830         * tree-ssa-dse.c: Likewise.
20831         * tree-ssa-forwprop.c: Likewise.
20832         * tree-ssa-live.c: Likewise.
20833         * tree-ssa-math-opts.c: Likewise.
20834         * tree-ssa-pre.c: Likewise.
20835         * tree-ssa-sccvn.c: Likewise.
20836         * tree-tailcall.c: Likewise.
20837         * tree-vect-generic.c: Likewise.
20838         * tree-sra.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
20839         fixed-value.h hashtab.h insn-config.h real.h rtl.h stmt.h varasm.h.
20840         * stor-layout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
20841         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h.
20842         * varasm.c: Likewise.
20843         * coverage.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
20844         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h
20845         varasm.h.
20846         * init-regs.c: Likewise.
20847         * ira.c: Likewise.
20848         * omp-low.c: Likewise.
20849         * stack-ptr-mod.c: Likewise.
20850         * tree-ssa-reassoc.c: Likewise.
20851         * tree-complex.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
20852         fixed-value.h hashtab.h insn-config.h rtl.h statistics.h stmt.h
20853         varasm.h.
20854         * dwarf2cfi.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
20855         fixed-value.h hashtab.h insn-config.h statistics.h stmt.h varasm.h.
20856         * shrink-wrap.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
20857         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h.
20858         * recog.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
20859         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h varasm.h.
20860         * tree-ssa-phiopt.c: Likewise.
20861         * config/darwin.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
20862         fixed-value.h hashtab.h real.h statistics.h stmt.h.
20863         * config/fr30/fr30.c: Likewise.
20864         * config/frv/frv.c: Likewise.
20865         * expr.c: Likewise.
20866         * final.c: Likewise.
20867         * optabs.c: Likewise.
20868         * passes.c: Likewise.
20869         * simplify-rtx.c: Likewise.
20870         * stmt.c: Likewise.
20871         * toplev.c: Likewise.
20872         * var-tracking.c: Likewise.
20873         * gcse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
20874         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
20875         * lower-subreg.c: Likewise.
20876         * postreload-gcse.c: Likewise.
20877         * ree.c: Likewise.
20878         * reginfo.c: Likewise.
20879         * store-motion.c: Likewise.
20880         * combine.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
20881         fixed-value.h hashtab.h real.h stmt.h varasm.h.
20882         * emit-rtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
20883         fixed-value.h hashtab.h statistics.h stmt.h.
20884         * dojump.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
20885         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
20886         * except.c: Likewise.
20887         * explow.c: Likewise.
20888         * tree-dfa.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
20889         fixed-value.h insn-config.h real.h rtl.h statistics.h stmt.h
20890         varasm.h.
20891         * gimple-fold.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
20892         fixed-value.h insn-config.h real.h rtl.h statistics.h varasm.h.
20893         * tree-ssa-structalias.c: Likewise.
20894         * cfgexpand.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
20895         fixed-value.h insn-config.h real.h statistics.h.
20896         * calls.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
20897         fixed-value.h insn-config.h real.h statistics.h stmt.h.
20898         * bb-reorder.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
20899         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
20900         * cfgbuild.c: Likewise.
20901         * function.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
20902         fixed-value.h real.h rtl.h statistics.h stmt.h.
20903         * cfgrtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
20904         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
20905         * dbxout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
20906         fixed-value.h real.h statistics.h stmt.h.
20907         * auto-inc-dec.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
20908         fixed-value.h real.h statistics.h stmt.h varasm.h.
20909         * cprop.c: Likewise.
20910         * modulo-sched.c: Likewise.
20911         * postreload.c: Likewise.
20912         * ccmp.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
20913         flags.h function.h hard-reg-set.h hashtab.h insn-config.h real.h
20914         statistics.h stmt.h varasm.h.
20915         * gimple-ssa-strength-reduction.c: Include calls.h dojump.h emit-rtl.h
20916         explow.h fixed-value.h flags.h hashtab.h insn-config.h real.h
20917         rtl.h statistics.h stmt.h varasm.h.
20918         * tree-ssa-loop-ivopts.c: Include calls.h dojump.h emit-rtl.h explow.h
20919         fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h stmt.h
20920         varasm.h.
20921         * expmed.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
20922         function.h hard-reg-set.h hashtab.h real.h statistics.h stmt.h
20923         varasm.h.
20924         * target-globals.c: Include calls.h dojump.h emit-rtl.h explow.h
20925         fixed-value.h function.h hashtab.h real.h statistics.h stmt.h
20926         varasm.h.
20927         * tree-ssa-address.c: Include calls.h dojump.h emit-rtl.h explow.h
20928         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
20929         * cfgcleanup.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
20930         function.h real.h statistics.h stmt.h varasm.h.
20931         * alias.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
20932         insn-config.h real.h statistics.h stmt.h.
20933         * dwarf2out.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
20934         statistics.h stmt.h.
20935         * config/nvptx/nvptx.c: Include dojump.h emit-rtl.h explow.h expmed.h
20936         fixed-value.h flags.h hard-reg-set.h insn-config.h real.h
20937         statistics.h stmt.h varasm.h.
20938         * gimplify.c: Include dojump.h emit-rtl.h explow.h expmed.h
20939         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h statistics.h.
20940         * asan.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
20941         flags.h hashtab.h insn-config.h real.h rtl.h statistics.h stmt.h.
20942         * ipa-devirt.c: Include dojump.h emit-rtl.h explow.h expmed.h
20943         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
20944         statistics.h stmt.h varasm.h.
20945         * ipa-polymorphic-call.c: Likewise.
20946         * config/aarch64/aarch64.c: Include dojump.h emit-rtl.h explow.h
20947         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
20948         statistics.h stmt.h.
20949         * config/c6x/c6x.c: Likewise.
20950         * config/aarch64/aarch64-builtins.c: Include dojump.h emit-rtl.h
20951         explow.h expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
20952         statistics.h stmt.h varasm.h.
20953         * ipa-prop.c: Include dojump.h emit-rtl.h explow.h expmed.h
20954         fixed-value.h hashtab.h insn-config.h real.h rtl.h statistics.h
20955         stmt.h varasm.h.
20956         * ipa-split.c: Likewise.
20957         * tree-eh.c: Likewise.
20958         * tree-ssa-dce.c: Likewise.
20959         * tree-ssa-loop-niter.c: Likewise.
20960         * tree-vrp.c: Likewise.
20961         * config/nds32/nds32-cost.c: Include dojump.h emit-rtl.h explow.h
20962         expmed.h fixed-value.h hashtab.h insn-config.h real.h statistics.h
20963         stmt.h.
20964         * config/nds32/nds32-fp-as-gp.c: Likewise.
20965         * config/nds32/nds32-intrinsic.c: Likewise.
20966         * config/nds32/nds32-isr.c: Likewise.
20967         * config/nds32/nds32-md-auxiliary.c: Likewise.
20968         * config/nds32/nds32-memory-manipulation.c: Likewise.
20969         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
20970         * config/nds32/nds32-predicates.c: Likewise.
20971         * config/nds32/nds32.c: Likewise.
20972         * config/cris/cris.c: Include dojump.h emit-rtl.h explow.h expmed.h
20973         fixed-value.h hashtab.h real.h statistics.h.
20974         * config/alpha/alpha.c: Include dojump.h emit-rtl.h explow.h expmed.h
20975         fixed-value.h hashtab.h real.h statistics.h stmt.h.
20976         * config/arm/arm.c: Likewise.
20977         * config/avr/avr.c: Likewise.
20978         * config/bfin/bfin.c: Likewise.
20979         * config/h8300/h8300.c: Likewise.
20980         * config/i386/i386.c: Likewise.
20981         * config/ia64/ia64.c: Likewise.
20982         * config/iq2000/iq2000.c: Likewise.
20983         * config/m32c/m32c.c: Likewise.
20984         * config/m32r/m32r.c: Likewise.
20985         * config/m68k/m68k.c: Likewise.
20986         * config/mcore/mcore.c: Likewise.
20987         * config/mep/mep.c: Likewise.
20988         * config/mips/mips.c: Likewise.
20989         * config/mn10300/mn10300.c: Likewise.
20990         * config/moxie/moxie.c: Likewise.
20991         * config/pa/pa.c: Likewise.
20992         * config/rl78/rl78.c: Likewise.
20993         * config/rx/rx.c: Likewise.
20994         * config/s390/s390.c: Likewise.
20995         * config/sh/sh.c: Likewise.
20996         * config/sparc/sparc.c: Likewise.
20997         * config/spu/spu.c: Likewise.
20998         * config/stormy16/stormy16.c: Likewise.
20999         * config/v850/v850.c: Likewise.
21000         * config/vax/vax.c: Likewise.
21001         * config/cr16/cr16.c: Include dojump.h emit-rtl.h explow.h expmed.h
21002         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
21003         * config/msp430/msp430.c: Likewise.
21004         * predict.c: Likewise.
21005         * value-prof.c: Likewise.
21006         * config/epiphany/epiphany.c: Include dojump.h emit-rtl.h explow.h
21007         expmed.h fixed-value.h hashtab.h statistics.h stmt.h.
21008         * config/microblaze/microblaze.c: Likewise.
21009         * config/nios2/nios2.c: Likewise.
21010         * config/rs6000/rs6000.c: Likewise.
21011         * tree.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
21012         insn-config.h real.h rtl.h statistics.h stmt.h.
21013         * cgraph.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
21014         insn-config.h real.h statistics.h stmt.h.
21015         * fold-const.c: Include dojump.h emit-rtl.h explow.h expmed.h
21016         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
21017         * tree-inline.c: Include dojump.h emit-rtl.h explow.h expmed.h
21018         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
21019         * builtins.c: Include dojump.h emit-rtl.h explow.h expmed.h
21020         fixed-value.h real.h statistics.h stmt.h.
21021         * config/arc/arc.c: Include dojump.h emit-rtl.h explow.h expmed.h
21022         fixed-value.h statistics.h stmt.h.
21023         * config/visium/visium.c: Include dojump.h emit-rtl.h explow.h expmed.h
21024         stmt.h.
21025
21026 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
21027
21028         * gengtype.c (create_user_defined_type): Workaround
21029         -Wmaybe-uninitialized false positives.
21030         * cse.c (fold_rtx): Likewise.
21031         * loop-invariant.c (gain_for_invariant): Likewise.
21032
21033 2015-01-15  Eric Botcazou  <ebotcazou@adacore.com>
21034
21035         * expr.c (expand_expr_real_1) <normal_inner_ref>: Use the expression to
21036         set the memory attributes in all cases but clear MEM_EXPR if need be.
21037
21038 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
21039
21040         PR tree-optimization/64434
21041         * cfgexpand.c (reorder_operands): New function.
21042         (expand_gimple_basic_block): Insert call of reorder_operands if
21043         optimized is true.
21044
21045 2015-01-15  Matthew Fortune  <matthew.fortune@imgtec.com>
21046
21047         * config/mips/micromips.md (*swp): Remove explicit parallel.
21048         (jraddiusp, *movep<MOVEP1:mode><MOVEP2:mode>): Likewise.
21049         * config/mips/mips-dsp.md (add<DSPV:mode>3): Likewise.
21050         (mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>, sub<DSPV:mode>3): Likewise.
21051         (mips_sub<DSP:dspfmt1>_s_<DSP:dspfmt2>, mips_addsc): Likewise.
21052         (mips_addwc, mips_absq_s_<DSPQ:dspfmt2>): Likewise.
21053         (mips_precrq_rs_ph_w, mips_precrqu_s_qb_ph): Likewise.
21054         (mips_shll_<DSPV:dspfmt2>, mips_shll_s_<DSPQ:dspfmt2>): Likewise.
21055         (mips_muleu_s_ph_qbl, mips_muleu_s_ph_qbr): Likewise.
21056         (mips_mulq_rs_ph, mips_muleq_s_w_phl, mips_muleq_s_w_phr): Likewise.
21057         (mips_dpaq_s_w_ph, mips_dpsq_s_w_ph, mips_mulsaq_s_w_ph): Likewise.
21058         (mips_dpaq_sa_l_w, mips_dpsq_sa_l_w, mips_maq_s_w_phl): Likewise.
21059         (mips_maq_s_w_phr, mips_maq_sa_w_phl, mips_maq_sa_w_phr): Likewise.
21060         (mips_extr_w, mips_extr_r_w, mips_extr_rs_w): Likewise.
21061         (mips_extr_s_h, mips_extp, mips_extpdp, mips_mthlip): Likewise.
21062         (mips_wrdsp): Likewise.
21063         * config/mips/mips-dspr2.md (mips_absq_s_qb): Remove explicit
21064         parallel.
21065         (mips_addu_ph, mips_addu_s_ph, mips_cmpgdu_eq_qb): Likewise.
21066         (mips_cmpgdu_lt_qb, mips_cmpgdu_le_qb, mulv2hi3): Likewise.
21067         (mips_mul_s_ph, mips_mulq_rs_w, mips_mulq_s_ph): Likewise.
21068         (mips_mulq_s_w, mips_subu_ph, mips_subu_s_ph): Likewise.
21069         (mips_dpaqx_s_w_ph, mips_dpaqx_sa_w_ph): Likewise.
21070         (mips_dpsqx_s_w_ph, mips_dpsqx_sa_w_ph): Likewise.
21071         * config/mips/mips-fixed.md (usadd<mode>3): Remove explicit parallel.
21072         (ssadd<mode>3, ussub<mode>3, sssub<mode>3, ssmul<mode>3): Likewise.
21073         (ssmaddsqdq4, ssmsubsqdq4): Likewise.
21074
21075 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
21076
21077         * config/mips/mips.c (mips_rtx_costs): Set costs for LSA/DLSA.
21078         (mips_print_operand): Support 'y' to print exact log2 in decimal
21079         of a const_int.
21080         * config/mips/mips.h (ISA_HAS_LSA): New define.
21081         (ISA_HAS_DLSA): Likewise.
21082         * config/mips/mips.md (<GPR:d>lsa): New define_insn.
21083         * config/mips/predicates.md (const_immlsa_operand): New predicate.
21084
21085 2015-01-15  Martin Liska  <mliska@suse.cz>
21086
21087         PR target/64377
21088         * optc-save-gen.awk: Add support for array types.
21089
21090 2015-01-15  Richard Biener  <rguenther@suse.de>
21091
21092         PR middle-end/64365
21093         * tree-data-ref.c (dr_analyze_indices): Make sure that accesses
21094         for MEM_REF access functions with the same base can never partially
21095         overlap.
21096
21097 2015-01-14  Marcos Diaz <marcos.diaz@tallertechnologies.com>
21098
21099         * common.opt: New option -fstack-protector-explicit.
21100         * cfgexpand.c (SPCT_FLAG_EXPLICIT): New enum.
21101         (stack_protect_decl_phase): Handle stack_protect attribute for
21102         explicit stack protection requests.
21103         (expand_used_vars): Similarly.
21104         * doc/cpp.texi (__SSP_EXPLICIT__): Document predefined macro.
21105         * doc/extend.texi: Add documentation for "stack_protect" attribute.
21106         * doc/invoke.texi: Add documentation for -fstack-protector-explicit.
21107
21108 2015-01-14  Oleg Endo  <olegendo@gcc.gnu.org>
21109
21110         PR target/53988
21111         * config/sh/sh-protos.h (sh_find_set_of_reg): Add option to ignore
21112         reg-reg copies.
21113         (sh_extending_set_of_reg): New struct.
21114         (sh_find_extending_set_of_reg, sh_split_tst_subregs,
21115         sh_remove_reg_dead_or_unused_notes): New Declarations.
21116         * config/sh/sh.c (sh_remove_reg_dead_or_unused_notes,
21117         sh_find_extending_set_of_reg, sh_split_tst_subregs,
21118         sh_extending_set_of_reg::use_as_extended_reg): New functions.
21119         * config/sh/sh.md (*tst<mode>_t_zero): Rename to *tst<mode>_t_subregs,
21120         convert to insn_and_split and use new function sh_split_tst_subregs.
21121
21122 2015-01-14  Sandra Loosemore  <sandra@codesourcery.com>
21123
21124         * doc/invoke.texi (Option Summary): Reclassify -fuse-ld as a linker
21125         option.
21126         (Optimization Options): Move -fuse-ld documentation to...
21127         (Link Options): ...here.
21128
21129 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
21130
21131         * config/mips/constraints.md (ZC): Add support for R6 LL/SC
21132         offsets.
21133         (ZD): Update to use ISA_HAS_9BIT_DISPLACEMENT.
21134         * config/mips/mips.h (ISA_HAS_PREFETCH_9BIT): Rename to...
21135         (ISA_HAS_9BIT_DISPLACEMENT): ... this. New macro.
21136         * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZC
21137         instead of ZR for the memory operand of LL/SC.
21138         (compare_and_swap_12, sync_add<mode>): Likewise.
21139         (sync_<optab>_12, sync_old_<optab>_12): Likewise.
21140         (sync_new_<optab>_12, sync_nand_12): Likewise.
21141         (sync_old_nand_12, sync_new_nand_12): Likewise.
21142         (sync_sub<mode>, sync_old_add<mode>): Likewise.
21143         (sync_old_sub<mode>, sync_new_add<mode>): Likewise.
21144         (sync_new_sub<mode>, sync_<optab><mode>): Likewise.
21145         (sync_old_<optab><mode>, sync_new_<optab><mode>"): Likewise.
21146         (sync_nand<mode>, sync_old_nand<mode>): Likewise.
21147         (sync_new_nand<mode>, sync_lock_test_and_set<mode>): Likewise.
21148         (test_and_set_12, atomic_compare_and_swap<mode>): Likewise.
21149         (atomic_exchange<mode>_llsc, atomic_fetch_add<mode>_llsc): Likewise.
21150         * doc/md.texi (ZC): Update description.
21151
21152 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
21153
21154         * builtins.c (expand_builtin_atomic_exchange): Remove error when
21155         memory model is CONSUME.
21156         (expand_builtin_atomic_compare_exchange, expand_builtin_atomic_load,
21157         expand_builtin_atomic_store): Change invalid memory model errors to
21158         warnings.
21159         (expand_builtin_atomic_clear): Change invalid model errors to warnings
21160         and issue warning for CONSUME.
21161
21162 2015-01-14  Aldy Hernandez  <aldyh@redhat.com>
21163
21164         * lto-cgraph: Update function comments for
21165         lto_symtab_encoder_encode_*.
21166
21167 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
21168
21169         * Makefile.in (site.exp): Do not set ENABLE_LTO.
21170
21171 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
21172
21173         * cgraphunit.c (ipa_passes): Remove argument from ipa_write_summaries.
21174         * lto-cgraph.c (select_what_to_stream): Remove argument, use
21175         lto_stream_offload_p instead.
21176         * lto-streamer.h (select_what_to_stream): Remove argument.
21177         * passes.c (ipa_write_summaries): Likewise.
21178         * tree-pass.h (ipa_write_summaries): Likewise.
21179
21180 2015-01-14  Richard Biener  <rguenther@suse.de>
21181
21182         PR tree-optimization/59354
21183         * tree-vect-slp.c (vect_build_slp_tree_1): Treat loads from
21184         groups larger than the slp group size as having gaps.
21185
21186 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
21187
21188         PR middle-end/59448
21189         * builtins.c (get_memmodel): Promote consume to acquire always.
21190
21191 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
21192
21193         PR target/64386
21194         * config/i386/i386.c (ix86_expand_sse_cmp): Handle V64QImode,
21195         V32HImode.
21196
21197 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
21198
21199         PR target/64393
21200         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET):
21201         Enable AVX512BW.
21202         (OPTION_MASK_ISA_AVX512BW_UNSET): Disable AVX512VBMI.
21203         * config/i386/i386.c (ix86_hard_regno_mode_ok): Don't check
21204         AVX512VBMI, as it implies AVX512BW.
21205
21206 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
21207
21208         PR target/64387
21209         * config/i386/sse.md (vec_unpacks_hi_v8sf): Fix predicate.
21210         (vec_unpacks_hi_v16sf): Ditto.
21211
21212 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21213
21214         * config/aarch64/arm_neon.h: Error out if AdvancedSIMD
21215         is not available.
21216
21217 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21218
21219         * doc/invoke.texi (mapcs): Mention deprecation.
21220         (mapcs-frame): Likewise.
21221
21222 2015-01-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
21223
21224         PR target/64453
21225         * config/arm/arm.c (callee_saved_reg_p): Define.
21226         (arm_compute_save_reg0_reg12_mask): Use callee_saved_reg_p to check if
21227         register is callee saved instead of !call_used_regs[reg].
21228         (thumb1_compute_save_reg_mask): Likewise.
21229
21230 2015-01-14  Hale Wang  <hale.wang@arm.com>
21231
21232         * config/arm/arm.c: Tune the max_cond_insns/branch_cost for
21233         Cortex-M7.
21234
21235 2015-01-14  Richard Biener  <rguenther@suse.de>
21236
21237         PR lto/64415
21238         * tree-inline.c (insert_debug_decl_map): Check destination
21239         function MAY_HAVE_DEBUG_STMTS.
21240         (insert_init_debug_bind): Likewise.
21241         (insert_init_stmt): Remove redundant check.
21242         (remap_gimple_stmt): Drop debug stmts if the destination
21243         function has var-tracking assignments disabled.
21244
21245 2015-01-14  Martin Liska  <mliska@suse.cz>
21246
21247         * ipa-icf-gimple.c (func_checker::compare_operand): Add support for
21248         IMAGPART_EXPR and REALPART_EXPR and fix BIT_FIELD_REF comparison.
21249
21250 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21251
21252         PR target/64460
21253         * config/arm/arm.md (*<arith_shift_insn>_multsi): Set 'shift' to 2.
21254         (*<arith_shift_insn>_shiftsi): Set 'shift' attr to 3.
21255
21256 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
21257
21258         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Only infer an ISA
21259         level from an ARCH; do not inject the default.
21260         (MIPS_DEFAULT_ISA_LEVEL_SPEC): New macro split out from
21261         MIPS_ISA_LEVEL_SPEC.
21262         (MIPS_ISA_NAN2008_SPEC): Update comment.
21263         (BASE_DRIVER_SELF_SPECS): Likewise.
21264         * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Add
21265         MIPS_DEFAULT_ISA_LEVEL_SPEC.
21266         * config/mips/mti-elf.h (DRIVER_SELF_SPECS): Likewise.
21267         * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Likewise.
21268         * config/mips/sde.h (DRIVER_SELF_SPECS): Likewise.
21269
21270 2015-01-14  Richard Biener  <rguenther@suse.de>
21271
21272         PR tree-optimization/64493
21273         PR tree-optimization/64495
21274         * tree-vect-loop.c (vect_finalize_reduction): For double-reductions
21275         assign the proper vectorized PHI to the inner loop exit PHIs.
21276
21277 2015-01-14  Joey Ye  <joey.ye@arm.com>
21278
21279         * config/arm/arm.c (arm_compute_save_reg_mask):
21280         Do not save lr in case of tail call.
21281         * config/arm/thumb2.md (*thumb2_pop_single): New pattern.
21282
21283 2015-01-14  Martin Uecker <uecker@eecs.berkeley.edu>
21284
21285         * tree-vrp.c (check_array_ref): Emit more warnings
21286         for warn_array_bounds >= 2.
21287         * common.opt: New option -Warray-bounds=.
21288         * doc/invoke.texi: Document -Warray-bounds=.
21289
21290 2015-01-14  Chung-Ju Wu  <jasonwucj@gmail.com>
21291
21292         * config/nds32/nds32.opt (mforce-fp-as-gp): Remove.
21293         (mforbid-fp-as-gp): Remove.
21294         (mex9): Remove.
21295         * config/nds32/nds32-fp-as-gp.c (nds32_have_prologue_p): Remove.
21296         (nds32_symbol_load_store_p): Remove.
21297         (nds32_fp_as_gp_check_available): Clean up implementation.
21298         * config/nds32/nds32.h (LINK_SPEC): Remove -mforce-as-gp and -mex9
21299         cases.
21300         * config/nds32/nds32.c (nds32_asm_file_start): No need to consider
21301         fp-as-gp and ex9 cases.
21302
21303 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
21304
21305         * tree-profile.c (init_ic_make_global_vars): Drop workaround
21306         for bintuils bug 14342.
21307         (init_ic_make_global_vars): Likewise.
21308         (gimple_init_edge_profiler): Likewise.
21309         (gimple_gen_ic_func_profiler): Likewise.
21310
21311 2015-01-13  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
21312
21313         * ipa-inline.c (inline_small_functions): Swap the operands in
21314         enum.
21315
21316 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
21317
21318         PR ipa/64481
21319         * ipa-inline-analysis.c (node_growth_cache): Remove.
21320         (initialize_growth_caches): Do not initialize it.
21321         (free_growth_caches): Do not free it.
21322         (do_estimate_growth): Rename to ...
21323         (estimate_growth): ... this one; drop growth cache code.
21324         (growth_likely_positive): Always go the heuristics way.
21325         * ipa-inline.c (can_inline_edge_p): Walk through aliases.
21326         (reset_edge_caches): Do not reset node growth.
21327         (heap_edge_removal_hook): Do not maintain cache.
21328         (inline_small_functions): Likewise; strenghten sanity check.
21329         (ipa_inline): Do not maintain caches.
21330         * ipa-inline.h (node_growth_cache): Remove.
21331         (do_estimate_growth): Remove to ...
21332         (estimate_growth): this one; remove inline version.
21333         (reset_node_growth_cache): Remove.
21334
21335 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
21336
21337         PR ipa/64565
21338         * ipa-inline.c (inline_small_functions): Update callee keys after
21339         resolving speculation
21340         (inline_small_functions): Always check monotonicity of the queue.
21341
21342 2015-01-13  Marek Polacek  <polacek@redhat.com>
21343
21344         PR middle-end/64391
21345         * trans-mem.c (get_attrs_for): Return NULL_TREE if X is NULL_TREE.
21346
21347 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
21348
21349         PR rtl-optimization/64286
21350         * ree.c (combine_reaching_defs): Move part of comment earlier,
21351         remove !SCALAR_INT_MODE_P check.
21352         (add_removable_extension): Don't add vector mode
21353         extensions if all uses of the source register aren't the same
21354         vector extensions.
21355
21356 2015-01-13  Renlin Li  <renlin.li@arm.com>
21357
21358         * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO): Return 2.
21359         (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
21360
21361 2015-01-13  Martin Liska  <mliska@suse.cz>
21362
21363         * ipa-icf.c (sem_function::equals_private): Call new functions
21364         cl_target_option_print_diff and cl_optimization_print_diff.
21365         * optc-save-gen.awk (cl_target_option_print_diff): New function.
21366         (cl_optimization_print_diff): Likewise.
21367         * opth-gen.awk: Likewise.
21368
21369 2015-01-13  Richard Sandiford  <richard.sandiford@arm.com>
21370
21371         * config/aarch64/aarch64.md (subsi3, *subsi3_uxtw, subdi3)
21372         (*sub_<optab><ALLX:mode>_<GPI:mode>, *sub_<optab><SHORT:mode>_si_uxtw)
21373         (*sub_<optab><ALLX:mode>_shft_<GPI:mode>)
21374         (*sub_<optab><SHORT:mode>_shft_si_uxtw, *sub_<optab><mode>_multp2)
21375         (*sub_<optab>si_multp2_uxtw, *sub_uxt<mode>_multp2)
21376         (*sub_uxtsi_multp2_uxtw): Add stack pointer sources.
21377
21378 2015-01-13  Andrew Pinski  <apinski@cavium.com>
21379
21380         * config/aarch64/aarch64.c (fusion_load_store): Check dest mode
21381         instead of src mode.
21382
21383 2015-01-13  Richard Biener  <rguenther@suse.de>
21384
21385         PR lto/64373
21386         * lto-streamer-out.c (tree_is_indexable): Guard for NULL
21387         DECL_CONTEXT.
21388
21389 2015-01-13  Andrew Pinski  <apinski@cavium.com>
21390
21391         * config/aarch64/aarch64.c (aarch64_operands_ok_for_ldpstp): Reject
21392         volatile mems.
21393         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
21394
21395 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
21396
21397         PR middle-end/63974
21398         * cfgexpand.c (expand_computed_goto): Don't call
21399         convert_memory_address here.
21400
21401 2015-01-13  Richard Biener  <rguenther@suse.de>
21402
21403         PR tree-optimization/64406
21404         * tree-loop-distibution.c (pass_loop_distribution::execute):
21405         Reset the SCEV hashtable if we distributed anything.
21406
21407 2015-01-13  Richard Biener  <rguenther@suse.de>
21408
21409         PR tree-optimization/64404
21410         * tree-vect-stmts.c (vectorizable_load): Reject conflicting
21411         SLP types for CSEd loads.
21412
21413 2015-01-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
21414
21415         PR tree-optimization/64436
21416         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Move code performing the
21417         merge of two symbolic numbers for a bitwise OR to ...
21418         (perform_symbolic_merge): This. Also fix computation of the range and
21419         end of the symbolic number corresponding to the result of a bitwise OR.
21420
21421 2015-01-13  Richard Biener  <rguenther@suse.de>
21422
21423         PR tree-optimization/64568
21424         * tree-ssa-forwprop.c (pass_forwprop::execute): Properly
21425         release defs of removed stmts, avoid splitting TARGET_MEM_REFs.
21426
21427 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
21428
21429         * config/nds32/nds32.c (nds32_legitimate_address_p): Consider
21430         TARGET_CMODEL_LARGE and TARGET_CMODEL_MEDIUM cases.
21431
21432 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
21433
21434         * config/nds32/nds32.h (NDS32_SYMBOL_FLAG_RODATA): Define our own
21435         target-specific symbol_ref flag.
21436         (NDS32_SYMBOL_REF_RODATA_P): Define it to check if the symbol_ref
21437         resides in rodata section.
21438         * config/nds32/nds32.c (TARGET_ENCODE_SECTION_INFO): Define.
21439         (nds32_encode_section_info): New function.
21440
21441 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
21442
21443         * config/nds32/nds32.md (call): Use pseudo instruction bal which
21444         clobbers TA_REGNUM if large code model is specified.
21445         (call_register): Likewise.
21446         (call_immediate): Likewise.
21447         (call_value): Likewise.
21448         (call_value_register): Likewise.
21449         (call_value_immediate): Likewise.
21450
21451 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
21452
21453         * config/nds32/nds32.h (TARGET_CMODEL_SMALL): New macro.
21454         (TARGET_CMODEL_MEDIUM): New macro.
21455         (TARGET_CMODEL_LARGE): New macro.
21456         * config/nds32/nds32.c (nds32_asm_file_start): Display corresponding
21457         code model setting in assembly code.
21458
21459 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
21460
21461         * common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS):
21462         Remove MASK_GP_DIRECT flag.
21463         * config/nds32/nds32.h (MULTILIB_DEFAULTS): Have -mcmodel=medium as
21464         one of the multilib default options.
21465         * config/nds32/nds32.opt (mgp-direct): Remove.
21466         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Use -mcmodel instead of
21467         -mgp-direct.  We also remove unnecessary -mlittle-endian/-mbig-endian.
21468
21469 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
21470
21471         * config/nds32/nds32.opt (mcmodel): Add new option.
21472         * config/nds32/nds32-opts.h (nds32_cmodel_type): Add new enum type
21473         to describe code model.
21474
21475 2015-01-13  Oleg Endo  <olegendo@gcc.gnu.org>
21476
21477         PR target/64479
21478         * rtlanal.c (set_reg_p): Handle SEQUENCE constructs.
21479
21480 2015-01-12  Kaz Kojima  <kkojima@gcc.gnu.org>
21481
21482         * config/sh/sh.c (sh_atomic_assign_expand_fenv): New function.
21483         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
21484         (sh_builtin_get_fpscr, sh_builtin_set_fpscr): New variables.
21485         (sh_init_builtins): Record decls for __builtin_sh_get_fpscr and
21486         __builtin_sh_set_fpscr.
21487
21488 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
21489
21490         * doc/invoke.texi ([-Wsuggest-attribute=]): Don't use parentheses
21491         after a funtion name just to indicate it is a function.
21492         ([-fsanitize-undefined-trap-on-error]): Likewise.
21493         ([-fdbg-cnt=]): Likewise.
21494         ([-mmemcpy]): Likewise.
21495         ([-mflush-func]): Likewise.
21496         ([-msynci]): Likewise.
21497
21498 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
21499
21500         * doc/invoke.texi ([-Wbad-function-cast]): Rewrite to avoid confusing
21501         example.
21502
21503 2015-01-12  Jakub Jelinek  <jakub@redhat.com>
21504
21505         PR tree-optimization/64563
21506         * tree-vrp.c (vrp_evaluate_conditional): Check for VR_RANGE
21507         instead of != VR_VARYING.
21508
21509         PR target/64513
21510         * config/i386/i386.c (ix86_expand_prologue): Add
21511         REG_FRAME_RELATED_EXPR to %rax and %r10 pushes.
21512
21513         PR tree-optimization/64454
21514         * tree-vrp.c (simplify_div_or_mod_using_ranges): Optimize
21515         op0 % op1 into op0 if op0 is in range [-op1 + 1, op1 - 1]
21516         for signed or [0, op1 - 1] for unsigned modulo.
21517         (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
21518         even if op1 does not satisfy integer_pow2p.
21519
21520         PR other/64370
21521         * sreal.c (sreal::to_double): Use ldexp instead of scalbnl.
21522
21523 2015-01-12  Jeff Law  <law@redhat.com>
21524
21525         PR target/64461
21526         * config/m68k/m68k.md (truncsiqi2): Disable for TARGET_COLDFIRE.
21527         (trunchiqi2, truncsihi2): Similarly.
21528
21529         * config/h8300/h8300.c (Fpa): Use RTX_FRAME_RELATED_P directly
21530         rather than calling F.
21531
21532 2015-01-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>
21533
21534         * tsan.c (instrument_expr): Use force_gimple_operand.
21535         Use may_be_nonaddressable_p instead of is_gimple_addressable.
21536
21537 2015-01-12  Richard Biener  <rguenther@suse.de>
21538
21539         PR tree-optimization/64530
21540         * tree-loop-distribution.c (pg_add_dependence_edges): Shuffle
21541         back dr1.
21542
21543 2015-01-12  Richard Biener  <rguenther@suse.de>
21544
21545         PR middle-end/64357
21546         * tree-cfg.c (gimple_can_merge_blocks_p): Protect simple
21547         latches properly.
21548
21549 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21550
21551         * config/arm/arm.c (arm_cortex_a12_tune): Update entries to match
21552         Cortex-A17 tuning parameters.
21553         * config/arm/arm-cores.def (cortex-a12): Schedule for cortex-a17.
21554
21555 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21556
21557         * config/arm/arm-protos.h (tune_params): Add fuseable_ops field.
21558         * config/arm/arm.c (arm_macro_fusion_p): New function.
21559         (arm_macro_fusion_pair_p): Likewise.
21560         (TARGET_SCHED_MACRO_FUSION_P): Define.
21561         (TARGET_SCHED_MACRO_FUSION_PAIR_P): Likewise.
21562         (ARM_FUSE_NOTHING): Likewise.
21563         (ARM_FUSE_MOVW_MOVT): Likewise.
21564         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,
21565         arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,
21566         arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,
21567         arm_cortex_a53_tune, arm_cortex_a57_tune, arm_cortex_a9_tune,
21568         arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune
21569         arm_cortex_a5_tune): Specify fuseable_ops value.
21570
21571 2015-01-12  H.J. Lu  <hongjiu.lu@intel.com>
21572
21573         PR bootstrap/64561
21574         * configure.ac (HAVE_LD_PIE_COPYRELOC): Update Linux/x86-64 linker
21575         test for PIE with copy reloc.
21576         * configure: Regenerated.
21577
21578 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21579
21580         * config/arm/arm.c (arm_load_tp): Use R0_REGNUM instead of constant 0
21581         in gen_rtx_REG.
21582         (arm_tls_descseq_addr): Likewise.
21583         (arm_gen_movmemqi): Likewise.
21584         (arm_expand_epilogue_apcs_frame): Likewise.
21585         (arm_expand_epilogue): Likewise.
21586         (arm_expand_prologue): Likewise.  Use R1_REGNUM instead of constant 1
21587         in gen_rtx_REG.
21588
21589 2015-01-12  Martin Liska  <mliska@suse.cz>
21590
21591         PR ipa/64550
21592         * ipa-icf-gimple.c (func_checker::compare_memory_operand): Compare
21593         volatility for correct operands.
21594
21595 2015-01-12  Martin Liska  <mliska@suse.cz>
21596
21597         * ipa-icf.c (sem_function::equals_wpa): Add indirect_calls as
21598         indication that a function is not leaf.
21599         (sem_function::compare_polymorphic_p): Likewise.
21600
21601 2015-01-12  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
21602
21603         * config/visium/visium.c: Add includes hashtab.h, hash-set.h,
21604         machmode.h, input.h, statistics.h, vec.h, double-int.h, real.h,
21605         fixed-value.h, alias.h, symtab.h, tree-core.h, wide-int.h, inchash.h,
21606         fold-const.h, tree-check.h.
21607
21608 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
21609
21610         PR ipa/63967
21611         PR ipa/64425
21612         * ipa-inline.c (compute_uninlined_call_time,
21613         compute_inlined_call_time): Use counts for extra precision when
21614         needed possible.
21615         (big_speedup_p): Fix formating.
21616         (RELATIVE_TIME_BENEFIT_RANGE): Remove.
21617         (relative_time_benefit): Remove.
21618         (edge_badness): Turn DECL_DISREGARD_INLINE_LIMITS into hint;
21619         merge guessed and read profile paths.
21620         (inline_small_functions): Count only !optimize_size functions into
21621         initial size; be more lax about sanity check when profile is used;
21622         be sure to update inlined function profile when profile is read.
21623
21624 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
21625
21626         PR ipa/63470
21627         * ipa-inline-analysis.c (inline_edge_duplication_hook): Adjust
21628         cost when edge becomes direct.
21629         * ipa-prop.c (make_edge_direct): Do not adjust when speculation
21630         is resolved or when introducing new speculation.
21631
21632 2015-01-12  Chen Gang  <gang.chen.5i5j@gmail.com>
21633
21634         PR ipa/64551
21635         PR ipa/64552
21636         * ipa-icf.c (sem_function::equals_private): Use '&&' instead of
21637         '||' to fix typo issue.
21638
21639         * gcc/tree.h (target_opts_for_fn): Check NULL_TREE since it can
21640         accept and return NULL.
21641
21642 2015-01-12  Martin Liska  <mliska@suse.cz>
21643
21644         * cgraph.c (cgraph_edge::remove_callee): Move function to header
21645         file for being inlined.
21646         (cgraph_set_edge_callee): Delete.
21647         (cgraph_edge::redirect_callee): Move function to header file
21648         for being inlined.
21649         (cgraph_edge::make_direct): Use new function.
21650         (cgraph_edge::dump_edge_flags): New function created from
21651         static dump_edge_flags function.
21652         (cgraph_node::dump): Use new function.
21653         (cgraph_edge::verify_count_and_frequency): New function created
21654         from verify_edge_count_and_frequency.
21655         (cgraph_edge::verify_corresponds_to_fndecl): New function created
21656         from verify_edge_corresponds_to_fndecl.
21657         (verify_edge_corresponds_to_fndecl): Delete.
21658         (cgraph_node::verify_node): Use new function.
21659         * cgraph.h (cgraph_edge::set_callee): New function.
21660         (cgraph_edge::dump_edge_flags): Likewise.
21661         (cgraph_edge::verify_corresponds_to_fndecl): Likewise.
21662
21663 2015-01-11  Jan Hubicka  <hubicka@ucw.cz>
21664
21665         * ipa-utils.c (estimate_function_body_sizes): Do not
21666         free node params when called late with early=true.
21667
21668 2015-01-11  James Greenhalgh  <james.greenhalgh@arm.com>
21669
21670         * doc/md.texi (Instruction Patterns): Rewrite text for
21671         clarity.
21672         (Example): Likewise.
21673
21674 2015-01-10  Sandra Loosemore  <sandra@codesourcery.com>
21675
21676         * doc/invoke.texi (Option Summary): Break long lines.
21677         [(-fdiagnostics-color)]: Put long literal in @smallexample
21678         instead of inline.
21679         [(-fsanitize-recover)]: Likewise.
21680         [(-fdump-rtl-split*)]: Rewrite to fix over-full hbox.
21681         [(-ffast-math)]: Likewise.
21682         [(--param max-inline-insns-recursive)]: Likewise.
21683         [(--param max-inline-recursive-depth)]: Likewise.
21684         [(-mno-text-section-literals)]: Likewise.
21685
21686 2015-01-10  Thomas Schwinge  <thomas@codesourcery.com>
21687
21688         * doc/install.texi: Update for libgomp being renamed from "GNU
21689         OpenMP Runtime Library" to "GNU Offloading and Multi Processing
21690         Runtime Library".
21691         * doc/sourcebuild.texi: Likewise.
21692
21693 2015-01-10  Anthony Green  <green@moxielogic.com>
21694
21695         * config/moxie/moxie.c (moxie_option_override): Fix forcing of
21696         mul.x availability for moxiebox configuration.
21697
21698 2015-01-09  Anthony Green  <green@moxielogic.com>
21699
21700         * config/moxie/moxie.md: Tabify assembly output.
21701
21702 2015-01-09  Anthony Green  <green@moxielogic.com>
21703
21704         * config/moxie/moxie.md (CC_REG): Correct register definition.
21705
21706 2015-01-09  Sandra Loosemore  <sandra@codesourcery.com>
21707
21708         * doc/invoke.texi ([-fvtable-verify]): Copy-edit and fix markup.
21709         ([-fvtv-debug], [-fvtv-counts]): Likewise.  Correct location
21710         of log files.
21711
21712 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
21713
21714         * config/arm/arm.h (MAX_SYNC_LIBFUNC_SIZE): Delete semicolon.
21715
21716 2015-01-09  Bernd Schmidt  <bernds@codesourcery.com>
21717             Jakub Jelinek  <jakub@redhat.com>
21718
21719         PR middle-end/64412
21720         * lto-streamer.h (lto_stream_offload_p): New declaration.
21721         * lto-streamer.c (lto_stream_offload_p): New variable.
21722         * cgraphunit.c (ipa_passes): Set lto_stream_offload_p
21723         at the same time as section_name_prefix.
21724         * lto-streamer-out.c (hash_tree): Don't hash TREE_TARGET_OPTION
21725         if lto_stream_offload_p.
21726         * tree-streamer-out.c (streamer_pack_tree_bitfields): Don't
21727         stream TREE_TARGET_OPTION if lto_stream_offload_p.
21728         (write_ts_function_decl_tree_pointers): Don't
21729         stream DECL_FUNCTION_SPECIFIC_TARGET if lto_stream_offload_p.
21730         * tree-streamer-in.c (unpack_value_fields): Don't stream
21731         TREE_TARGET_OPTION in if ACCEL_COMPILER.
21732         (lto_input_ts_function_decl_tree_pointers): Don't stream
21733         DECL_FUNCTION_SPECIFIC_TARGET in if ACCEL_COMPILER.
21734         * lto-opts.c (lto_write_options): Use lto_stream_offload_p
21735         instead of section_name_prefix string comparisons.
21736
21737 2015-01-09  Jakub Jelinek  <jakub@redhat.com>
21738
21739         PR rtl-optimization/64536
21740         * cfgrtl.c (rtl_tidy_fallthru_edge): Handle removal of degenerate
21741         tablejumps.
21742
21743 2015-01-09  Michael Collison  <michael.collison@linaro.org>
21744
21745         PR tree-optimization/64322
21746         * tree-vrp.c (extract_range_from_binary_expr_1): Attempt to derive
21747         range for RSHIFT_EXPR even if vr0 range is not VR_RANGE or is symbolic.
21748
21749 2015-01-09  Tom de Vries  <tom@codesourcery.com>
21750
21751         PR rtl-optimization/64539
21752         * regcprop.c (kill_clobbered_values): Factor out of ...
21753         (copyprop_hardreg_forward_1): ... here.  Use kill_clobbered_values
21754         instead of note_stores with kill_clobbered_value.
21755
21756 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
21757
21758          * ginclude/unwind-arm-common.h: Revert previous commit.
21759
21760 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
21761
21762         * config.gcc (arm*-*-freebsd*): New configuration.
21763         * config/arm/freebsd.h: New file.
21764         * config.host: Add extra components for arm*-*-freebsd*.
21765         * config/arm/arm.h: Introduce MAX_SYNC_LIBFUNC_SIZE.
21766         * config/arm/arm.c (arm_init_libfuncs): Use MAX_SYNC_LIBFUNC_SIZE.
21767
21768 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
21769
21770         * config/rs6000/rtems.h (CPP_OS_RTEMS_SPEC): Define __PPC_CPU_E6500__
21771         for -mcpu=e6500.
21772         * config/rs6000/t-rtems: Add e6500 multilibs.
21773
21774 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
21775
21776         * config/rs6000/t-rtems: Add -mno-spe to soft-float multilib for
21777         MPC8540.
21778
21779 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
21780
21781         * config/rs6000/t-rtems: Use MULTILIB_REQUIRED instead of
21782         MULTILIB_EXCEPTIONS.
21783
21784 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
21785
21786         * config/arm/t-rtems: Use MULTILIB_REQUIRED instead of
21787         MULTILIB_EXCEPTIONS.
21788
21789 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
21790
21791         * config/arm/t-rtems-eabi: Rename to...
21792         * config/arm/t-rtems: ...this.
21793         * config/arm/rtems-eabi.h: Rename to...
21794         * config/arm/rtems.h: ...this.
21795         * config.gcc (arm*-*-rtems*): Reflect changes above.
21796
21797 2015-01-09  Richard Biener  <rguenther@suse.de>
21798
21799         PR tree-optimization/64410
21800         * tree-ssa.c (non_rewritable_lvalue_p): Allow REALPART/IMAGPART_EXPR
21801         on the LHS.
21802         (execute_update_addresses_taken): Deal with that.
21803         * tree-ssa-forwprop.c (pass_forwprop::execute): Use component-wise
21804         loads/stores for complex variables.
21805
21806 2015-01-09  Martin Liska  <mliska@suse.cz>
21807
21808         * ipa-icf-gimple.c (func_checker::compare_ssa_name): Enhance SSA
21809         name comparison.
21810         (func_checker::compare_memory_operand): New function.
21811         (func_checker::compare_operand): Split case to newly
21812         added functions.
21813         (func_checker::compare_cst_or_decl): New function.
21814         (func_checker::compare_gimple_call): Identify
21815         memory operands.
21816         (func_checker::compare_gimple_assign): Likewise.
21817         * ipa-icf-gimple.h: New function.
21818
21819 2015-01-09  Martin Liska  <mliska@suse.cz>
21820
21821         PR ipa/64503
21822         * sreal.c (sreal::dump): Change unsigned format to signed for
21823         m_exp value.
21824         (sreal::to_double): Replace exp2 with scalbln.
21825
21826 2015-01-09  Martin Liska  <mliska@suse.cz>
21827
21828         * cgraphunit.c (cgraph_node::create_wrapper): Fix level of indentation.
21829         * ipa-icf.c (sem_function::equals_private): Add support for target and
21830         (sem_item_optimizer::merge_classes): Remove redundant function
21831         optimization flags comparison.
21832         * tree.h (target_opts_for_fn): New function.
21833
21834 2015-01-09  Tom de Vries  <tom@codesourcery.com>
21835
21836         * omp-low.c (expand_omp_for_static_chunk): Fix assert.
21837
21838 2015-01-09  Kito Cheng  <kito@0xlab.org>
21839
21840         PR rtl-optimization/64348
21841         * lra-constraints.c (split_reg): Fix caller-save store/restore
21842         instruction generation.
21843
21844 2015-01-08  John David Anglin  <danglin@gcc.gnu.org>
21845
21846         PR gcov-profile/61790
21847         * gcov-tool.c (do_rewrite): Use strtoll instead of atoll if host has
21848         long long.  Fallback to int64_t if host doesn't have long long and
21849         use strtol if int64_t is long.  Otherwise, use sscanf for conversion.
21850
21851 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
21852
21853         PR tree-optimization/63989
21854         * params.def (PARAM_MAX_TRACKED_STRLENS): Increment default
21855         from 1000 to 10000.
21856         * tree-ssa-strlen.c (get_strinfo): Moved earlier.
21857         (get_stridx): If we don't have a record for certain SSA_NAME,
21858         but it is POINTER_PLUS_EXPR of some SSA_NAME we do with
21859         constant offset, call get_stridx_plus_constant.
21860         (get_stridx_plus_constant): New function.
21861         (zero_length_string): Don't use get_stridx here.
21862
21863         PR target/55023
21864         PR middle-end/64388
21865         * dse.c (struct insn_info): Mention frame_read set also
21866         before reload for tail calls on some targets.
21867         (scan_insn): Revert 2014-12-22 change.  Set frame_read
21868         also before reload for tail calls if
21869         HARD_FRAME_POINTER_IS_ARG_POINTER.  Call add_wild_read
21870         instead of add_non_frame_wild_read for non-const/memset
21871         tail calls after reload.
21872
21873 2015-01-08  Jason Merrill  <jason@redhat.com>
21874
21875         * ubsan.c (do_ubsan_in_current_function): New.
21876         (pass_ubsan::gate): Use it.
21877         * ubsan.h: Declare it.
21878         * convert.c (convert_to_integer): Use it.
21879
21880 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
21881
21882         PR target/64338
21883         * config/i386/i386.c (ix86_expand_int_movcc): Don't reverse
21884         compare_code when it is unconditionally overwritten afterwards.
21885         Use ix86_reverse_condition instead of reverse_condition.  Don't
21886         change code if *reverse_condition* returned UNKNOWN and don't
21887         swap ct/cf and negate diff in that case.
21888
21889 2015-01-08  Mike Stump  <mikestump@comcast.net>
21890
21891         * tsan.c (pass_tsan::gate): Add no_sanitize_thread support.
21892         (pass_tsan_O0::gate): Likewise.
21893         * extend.texi (Function Attributes): Add no_sanitize_thread
21894         documentation.
21895
21896 2015-01-08  Thomas Schwinge  <thomas@codesourcery.com>
21897
21898         * builtins.def (DEF_GOMP_BUILTIN): Also consider flag_offload_abi
21899         for registering builtins.
21900         * config/i386/intelmic-mkoffload.c (prepare_target_image): Don't
21901         add -fopenmp to the argv_obstack used when invoking
21902         compile_for_target.
21903
21904         * config/i386/intelmic-mkoffload.c (compile_for_target): Always
21905         add "-m32" or "-m64" to argv_obstack.
21906         (generate_host_descr_file): Likewise, when invoking host_compiler.
21907         (main): Always add "-m elf_i386" or "-m elf_x86_64" when invoking
21908         ld.
21909
21910 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
21911
21912         * config/sh/sh-mem.cc: Use constant as second operand when emitting
21913         tstsi_t insns.
21914
21915 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
21916
21917         PR target/55212
21918         * config/sh/sh.md (*addsi3_compact): Emit reg-reg copy instead of
21919         constant load if constant operand fits into I08.
21920
21921 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
21922
21923         PR sanitizer/64336
21924         * tree.c (build2_stat): Fix up initialization of TREE_READONLY
21925         and TREE_THIS_VOLATILE for MEM_REFs.
21926         (build5_stat): Fix up initialization of TREE_READONLY and
21927         TREE_THIS_VOLATILE for TARGET_MEM_REFs.
21928
21929 2015-01-08  Kaz Kojima  <kkojima@gcc.gnu.org>
21930
21931         PR target/64533
21932         * config/sh/sh.md (*addsi3_compact): Use u constraint instead
21933         of r for the second alternative of the destination operand.
21934
21935 2015-01-07  Segher Boessenkool  <segher@kernel.crashing.org>
21936
21937         PR target/36557
21938         * config/rs6000/rs6000.md (*eqsi3_ext<mode>, *nesi3_ext<mode>): New.
21939
21940 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
21941
21942         * doc/invoke.texi ([-fvtable-verify]): Fix markup on option
21943         keywords.
21944         ([-fivar-visibility], [-fvisibility]): Likewise.
21945
21946 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
21947
21948         * doc/invoke.texi: Fix incorrect uses of @samp markup throughout
21949         the file where @code, @command, etc is more appropriate.
21950
21951 2015-01-06  Sandra Loosemore  <sandra@codesourcery.com>
21952
21953         * doc/invoke.texi (RS/6000 and PowerPC Options): Tidy formatting
21954         of -mrecip= documentation.
21955
21956 2015-01-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
21957
21958         PR target/64505
21959         * config/rs6000/rs6000.c (rs6000_secondary_reload): Return the
21960         correct reload handler if -m32 -mpowerpc64 is used.
21961
21962 2015-01-06  Tom de Vries  <tom@codesourcery.com>
21963
21964         * tree-ssa-tail-merge.c: Fix typo in struct same_succ_def comment.
21965
21966 2015-01-08  Christian Bruel  <christian.bruel@st.com>
21967
21968         PR target/64507
21969         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Check 0 length.
21970
21971 2015-01-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
21972
21973         PR tree-optimization/63259
21974         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Stop checking
21975         if optab exists for 16bit byteswap.
21976
21977 2015-01-06  Jakub Jelinek  <jakub@redhat.com>
21978
21979         * opts.c (common_handle_option): Add support for
21980         -fno-sanitize=all and -f{,no-}sanitize-recover=all.
21981         * doc/invoke.texi: Document -fno-sanitize=all,
21982         -f{,no-}sanitize-recover=all.  Document that
21983         -fsanitize=float-cast-overflow is not enabled
21984         by -fsanitize=undefined.  Fix up documentation
21985         of -f{,no-}sanitize-recover.
21986
21987 2015-01-06  Eric Botcazou  <ebotcazou@adacore.com>
21988
21989         * config.gcc: Add Visium support.
21990         * configure.ac: Likewise.
21991         * configure: Regenerate.
21992         * doc/extend.texi (interrupt attribute): Add Visium.
21993         * doc/invoke.texi: Document Visium options.
21994         * doc/install.texi: Document Visium target.
21995         * doc/md.texi: Document Visium constraints.
21996         * common/config/visium: New directory.
21997         * config/visium: Likewise.
21998
21999 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
22000
22001         * simplify-rtx.c (simplify_binary_operation_1): Handle more cases
22002         for the "(and X (ior (not X) Y) -> (and X Y)" transform.
22003
22004 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
22005
22006         * combine.c (combine_validate_cost): Do not count the cost of a
22007         split I2 twice.  Do not display it twice in the dump, either.
22008
22009 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
22010
22011         Revert parts of r219199.
22012         * doc/invoke.texi ([-Wliteral-suffix]): Restore markup on
22013         <inttypes.h>.
22014         ([-Wtraditional]): Restore markup on <limits.h>.
22015
22016 2015-01-05  Trevor Saunders  <tsaunders@mozilla.com>
22017
22018         PR c++/31397
22019         * doc/invoke.texi: Document -Wsuggest-override.
22020
22021 2015-01-05  Radovan Obradovic  <radovan.obradovic@imgtec.com>
22022
22023         PR rtl-optimization/64287
22024         * toplev.c (HAVE_epilogue, HAVE_prologue): Provide default.
22025         (process_options): Disable flag_ipa_ra if profiling.
22026
22027 2015-01-05  Eric Botcazou  <ebotcazou@adacore.com>
22028
22029         * config/nds32/nds32-peephole2.md: Do not mention define_peephole.
22030
22031 2015-01-05  Max Filippov  <jcmvbkbc@gmail.com>
22032
22033         * config/xtensa/xtensa.c (hwloop_optimize, hwloop_fail,
22034         hwloop_pattern_reg, xtensa_doloop_hooks, xtensa_reorg_loops):
22035         put under #if TARGET_LOOPS guard.
22036
22037 2015-01-05  Uros Bizjak  <ubizjak@gmail.com>
22038
22039         * config/i386/i386.c (output_387_binary_op): Use std::swap.
22040
22041 2015-01-05  Oleg Endo  <olegendo@gcc.gnu.org>
22042
22043         * rtlanal.c (refers_to_regno_p): Change return value from int to bool.
22044         * rtl.h (refers_to_regno_p): Add overload.
22045         * cse.c: Use it.
22046         * bt-load.c: Likewise.
22047         * combine.c: Likewise.
22048         * df-scan.c: Likewise.
22049         * sched-deps.c: Likewise.
22050         * config/s390/s390.c: Likewise.
22051         * config/m32r/m32r.c: Likewise.
22052         * config/rs6000/spe.md: Likewise.
22053         * config/rs6000/rs6000.c: Likewise.
22054         * config/pa/pa.c: Likewise.
22055         * config/stormy16/stormy16.c: Likewise.
22056         * config/cris/cris.c: Likewise.
22057         * config/arc/arc.md: Likewise.
22058         * config/arc/arc.c: Likewise.
22059         * config/sh/sh.md: Likewise.
22060         * config/sh/sh.c: Likewise.
22061         * config/frv/frv.c: Likewise.
22062
22063 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
22064
22065         PR sanitizer/64265
22066         * gimplify.c (gimplify_function_tree): Add TSAN_FUNC_EXIT internal
22067         call as cleanup of the whole body.
22068         * internal-fn.def (TSAN_FUNC_EXIT): New internal call.
22069         * tsan.c (replace_func_exit): New function.
22070         (instrument_func_exit): Moved earlier.
22071         (instrument_memory_accesses): Adjust TSAN_FUNC_EXIT internal calls.
22072         Call instrument_func_exit if no TSAN_FUNC_EXIT internal calls have
22073         been found.
22074         (tsan_pass): Don't call instrument_func_exit.
22075         * internal-fn.c (expand_TSAN_FUNC_EXIT): New function.
22076         * tree-inline.c (copy_bb): Drop TSAN_FUNC_EXIT internal calls during
22077         inlining.
22078
22079         PR sanitizer/64344
22080         * ubsan.h (ubsan_instrument_float_cast): Add ARG argument.
22081         * ubsan.c (ubsan_instrument_float_cast): Add ARG argument, pass
22082         it to libubsan handler instead of EXPR.  Fold comparisons earlier,
22083         if the result is integer_zerop, return NULL_TREE.
22084         * convert.c (convert_to_integer): Pass expr as ARG.
22085
22086         PR tree-optimization/64465
22087         * tree-inline.c (redirect_all_calls): During inlining
22088         clean up EH stmts and EH edges if redirect_call_stmt_to_callee
22089         changed the stmt to a non-throwing call.
22090
22091 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
22092
22093         * doc/invoke.texi: Fix incorrect uses of @code, @option, @samp,
22094         etc markup throughout the file.
22095
22096 2015-01-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
22097
22098         Enable experimental TSAN support for Ada.
22099         * tsan.c (instrument_expr): Handle VIEW_CONVERT_EXPR.
22100
22101 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
22102
22103         PR tree-optimization/64494
22104         * tree-ssa-loop-im.c (move_computations_dom_walker::before_dom): Also
22105         clear SSA_NAME_ANTI_RANGE_P flag.
22106
22107 2015-01-05  Marek Polacek  <polacek@redhat.com>
22108
22109         * doc/extend.texi (Arrays of Length Zero): Add missing comma.
22110
22111 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
22112
22113         Update copyright years.
22114
22115         * gcc.c (process_command): Update copyright notice dates.
22116         * gcov-dump.c: Ditto.
22117         * gcov.c: Ditto.
22118         * doc/cpp.texi: Bump @copying's copyright year.
22119         * doc/cppinternals.texi: Ditto.
22120         * doc/gcc.texi: Ditto.
22121         * doc/gccint.texi: Ditto.
22122         * doc/gcov.texi: Ditto.
22123         * doc/install.texi: Ditto.
22124         * doc/invoke.texi: Ditto.
22125
22126         * auto-profile.c, auto-profile.h: Fix up Copyright line.
22127
22128 2015-01-04  Sandra Loosemore  <sandra@codesourcery.com>
22129
22130         * doc/invoke.texi ([-fsized-deallocation]): Copy-edit to fix
22131         verb tense, etc.
22132         ([-fvtable-verify], [-fvtv-debug]): Likewise.
22133         ([-Wabi]): Likewise.
22134         ([-fmessage-length]): Likewise.
22135         ([-Wsuggest-final-types], [-Wsuggest-final-methods]): Likewise.
22136         ([-Wno-discarded-qualifiers]): Likewise.
22137         ([-Wnodiscarded-array-qualifiers]): Likewise.
22138         ([-Wno-virtual-move-assign]): Likewise.
22139         ([-fsanitize=address], [-fsanitize=thread]): Likewise.
22140         ([-fsanitize=leak], [-fsanitize=undefined]): Likewise.
22141         ([-fsanitize=unreachable], [-fsanitize-recover]): Likewise.
22142         ([-fsanitize-undefined-trap-on-error]): Likewise.
22143         ([-floop-interchange]): Likewise.
22144         ([-ftree-coalesce-inlined-vars]): Likewise.
22145         ([-fvect-cost-model]): Likewise.
22146         ([-flto]): Likewise.
22147         ([--param]): Likewise.
22148         (Spec Files): Likewise.
22149         ([-mstrict-align]): Likewise.
22150         ([-mfix-cortex-a53-835769]): Likewise.
22151         ([-march], [-mtune]): Likewise.
22152         ([-mpic-register]): Likewise.
22153         ([-munaligned-access]): Likewise.
22154         ([-msp8]): Likewise.
22155         (EIND and Devices with more than 128 Ki Bytes of Flash): Likewise.
22156         (AVR Built-in Macros): Likewise.
22157         ([-mpreferred-stack-boundary]): Likewise.
22158         ([-mtune-crtl]): Likewise.
22159         ([-mashf]): Likewise.
22160         ([-mmcu=]): Likewise.
22161         ([-minrt]): Likewise.
22162         ([-maltivec], [-maltivec=be], [-maltivec=le]): Likewise.
22163         ([-mupper-regs]): Likewise.
22164         ([-matomic-model]): Likewise.
22165         ([-mdiv]): Likewise.
22166         ([-mzdcbranch]): Likewise.
22167         ([-mdisable-callt]): Likewise.
22168         ([-msoft-float]): Likewise.
22169         ([-m8byte-align]): Likewise.
22170         ([-fstack-reuse]): Likewise.
22171
22172 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
22173
22174         * doc/invoke.texi ([-fprofile-generate], [-fprofile-use]):
22175         Fix markup, light copy-editing.
22176         ([-fauto-profile]): Rewrite to fix formatting and content
22177         problems.
22178
22179 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
22180
22181         * doc/invoke.texi ([-fisolate-erroneous-paths-dereference]):
22182         Copy-edit description.
22183         ([-fisolate-erroneous-paths-attribute]): Likewise.
22184         * common.opt (fisolate-erroneous-paths-dereference):
22185         Copy-edit description.
22186         (fisolate-erroneous-paths-attribute): Likewise.
22187
22188 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
22189
22190         * doc/invoke.texi ([-fsemantic-interposition]): Fix typos and
22191         tidy grammar.
22192
22193 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
22194
22195         * doc/invoke.texi ([-fplan9-extensions]): Add/fix @opindex.
22196         ([-fvtv-debug]): Likewise.
22197         ([-Wc++-compat]): Likewise.
22198         ([-Wc++11-compat]): Likewise.
22199         ([-Wc++14-compat]): Likewise.
22200         ([-Wno-sized-deallocation]): Likewise.
22201         ([-femit-class-debug-always]): Likewise.
22202         ([-femit-struct-debug-detailed]): Likewise.
22203         ([-fno-keep-inline-dllexport]): Likewise.
22204         ([-fira-algorithm]): Likewise.
22205         ([-fira-region]): Likewise.
22206         ([-flra-remat]): Likewise.
22207         ([-fipa-ra]): Likewise.
22208         ([-fhoist-adjacent-loads]): Likewise.
22209         ([-fisolate-erroneous-paths-dereference]): Likewise.
22210         ([-fisolate-erroneous-paths-attribute]): Likewise.
22211         ([-ftree-switch-conversion]): Likewise.
22212         ([-ftree-tail-merge]): Likewise.
22213         ([-ftree-loop-if-convert]): Likewise.
22214         ([-ftree-loop-if-convert-stores]): Likewise.
22215         ([-ftree-loop-distribution]): Likewise.
22216         ([-ftree-loop-distribute-patterns]): Likewise.
22217         ([-flto-compression-level]): Likewise.
22218         ([-flto-report]): Likewise.
22219         ([-flto-report-wpa]): Likewise.
22220         ([-fuse-linker-plugin]): Likewise.
22221         ([-mfix-cortex-a53-835769]): Likewise.
22222         ([-mno-fix-cortex-a53-835769]): Likewise.
22223         ([-mmmx]...[-mno-3dnow]): Remove the -mno- forms from the
22224         explicit listing; add a note to the discussion indicating they
22225         exist.  Reorder table to group similar options.  Add missing
22226         @opindex entries.  Add @need commands throughout the table to
22227         allow it to be split across multiple pages.
22228         ([-m8bit-idiv]): Fix @opindex.
22229         ([-mavx256-split-unaligned-load]): Likewise.
22230         ([-mavx256-split-unaligned-store]): Likewise.
22231         ([-mstack-protector-guard]): Likewise.
22232         ([-mcpu=]): Likewise.
22233         ([-mcpu]): Likewise.
22234         ([-mpointer-size=]): Likewise.
22235
22236 2015-01-03  John David Anglin  <danglin@gcc.gnu.org>
22237
22238         * config/pa/pa.md (decrement_and_branch_until_zero): Use `Q' constraint
22239         instead of `m' constraint.  Likewise for unnamed movb comparison
22240         patterns using reg_before_reload_operand predicate.
22241         * config/pa/predicates.md (reg_before_reload_operand): Tighten
22242         predicate to reject register index and LO_SUM DLT memory forms
22243         after reload.
22244
22245 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
22246
22247         * doc/invoke.texi (Option Summary): Fix spelling of
22248         -fdevirtualize-at-ltrans.
22249         ([-fdevirtualize]): Fix markup.
22250         ([-fdevirtualize-speculatively]): Fix typo.
22251         ([-fdevirtualize-at-ltrans]): Likewise.  Make description less
22252         implementor-speaky.
22253         * common.opt (fdevirtualize-at-ltrans): Likewise.
22254         * ipa-devirt.c: Fix typos in comments throughout the file.
22255         (ipa_devirt): Fix typos in format strings for dump output.
22256
22257 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
22258
22259         * doc/invoke.texi ([-fopt-info]): Fix markup, consolidate
22260         discussion of defaults, light copy-editing.
22261
22262 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
22263
22264         * tsan.c (instrument_expr): corrected previous checkin.
22265
22266 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
22267
22268         Instrument bit field and unaligned accesses for TSAN.
22269         * sanitizer.def (BUILT_IN_TSAN_READ_RANGE): New built-in function.
22270         (BUILT_IN_TSAN_WRITE_RANGE): New built-in function.
22271         * tsan.c (instrument_expr): Handle COMPONENT_REF and BIT_FIELD_REF.
22272         Use BUILT_IN_TSAN_READ_RANGE and BUILT_IN_TSAN_WRITE_RANGE for
22273         unaligned memory regions.
22274
22275 2015-01-01  Anthony Green  <green@moxielogic.com>
22276
22277         * config/moxie/predicates.md (moxie_general_movsrc_operand):
22278         Restrict move source register offsets to 16 bits.
22279 \f
22280 Copyright (C) 2015 Free Software Foundation, Inc.
22281
22282 Copying and distribution of this file, with or without modification,
22283 are permitted in any medium without royalty provided the copyright
22284 notice and this notice are preserved.