rl78-real.md (andqi3_real): Expand operands for clr1.
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2015-07-20  DJ Delorie  <dj@redhat.com>
2
3         * config/rl78/rl78-real.md (andqi3_real): Expand operands for clr1.
4         (iorqi3_real): Likewise for set1.
5
6 2015-07-20  Uros Bizjak  <ubizjak@gmail.com>
7
8         * config/i386/i386.c (ix86_md_asm_adjust): Handle DImode dest_mode
9         for !TARGET_64BIT.
10
11 2015-07-20  Aditya Kumar  <hiraditya@msn.com>
12
13         * graphite-isl-ast-to-gimple.c:
14         Refactor so that each function can access 'region'. This will help
15         maintain a parameter rename_map within a region.
16
17 2015-07-20  Segher Boessenkool  <segher@kernel.crashing.org>
18
19         * config/rs6000/rs6000.md (*lt0_disi): New.
20
21 2015-07-20  Segher Boessenkool  <segher@kernel.crashing.org>
22
23         PR target/66217
24         * config/rs6000/constraints.md ("S", "T", "t"): Delete.  Update
25         "available letters" comment.
26         * config/rs6000/predicates.md (mask_operand, mask_operand_wrap,
27         mask64_operand, mask64_2_operand, any_mask_operand, and64_2_operand,
28         and_2rld_operand):  Delete.
29         (and_operand): Adjust.
30         (rotate_mask_operator): New.
31         * config/rs6000/rs6000-protos.h (build_mask64_2_operands,
32         includes_lshift_p, includes_rshift_p, includes_rldic_lshift_p,
33         includes_rldicr_lshift_p, insvdi_rshift_rlwimi_p, extract_MB,
34         extract_ME): Delete.
35         (rs6000_is_valid_mask, rs6000_is_valid_and_mask,
36         rs6000_is_valid_shift_mask, rs6000_is_valid_insert_mask,
37         rs6000_insn_for_and_mask, rs6000_insn_for_shift_mask,
38         rs6000_insn_for_insert_mask, rs6000_is_valid_2insn_and,
39         rs6000_emit_2insn_and): New.
40         * config/rs6000/rs6000.c (num_insns_constant): Adjust.
41         (build_mask64_2_operands, includes_lshift_p, includes_rshift_p,
42         includes_rldic_lshift_p, includes_rldicr_lshift_p,
43         insvdi_rshift_rlwimi_p, extract_MB, extract_ME): Delete.
44         (rs6000_is_valid_mask, rs6000_is_valid_and_mask,
45         rs6000_insn_for_and_mask, rs6000_is_valid_shift_mask,
46         s6000_insn_for_shift_mask, rs6000_is_valid_insert_mask,
47         rs6000_insn_for_insert_mask, rs6000_is_valid_2insn_and,
48         rs6000_emit_2insn_and): New.
49         (print_operand) <'b', 'B', 'm', 'M', 's', 'S', 'W'>: Delete.
50         (rs6000_rtx_costs) <CONST_INT>: Delete mask_operand and mask64_operand
51         handling.
52         <NOT>: Don't fall through to next case.
53         <AND>: Handle the various rotate-and-mask cases directly.
54         <IOR>: Always cost as one insn.
55         * config/rs6000/rs6000.md (splitter for bswap:SI): Adjust.
56         (and<mode>3): Adjust expander for the new patterns.
57         (and<mode>3_imm, and<mode>3_imm_dot, and<mode>3_imm_dot2,
58         and<mode>3_imm_mask_dot, and<mode>3_imm_mask_dot2): Adjust condition.
59         (*and<mode>3_imm_dot_shifted): New.
60         (*and<mode>3_mask): Delete, rewrite as ...
61         (and<mode>3_mask): ... New.
62         (*and<mode>3_mask_dot, *and<mode>3_mask_dot): Rewrite.
63         (andsi3_internal0_nomc): Delete.
64         (*andsi3_internal6): Delete.
65         (*and<mode>3_2insn): New.
66         (insv, insvsi_internal, *insvsi_internal1, *insvsi_internal2,
67         *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
68         *insvsi_internal6, insvdi_internal, *insvdi_internal2,
69         *insvdi_internal3): Delete.
70         (*rotl<mode>3_mask, *rotl<mode>3_mask_dot, *rotl<mode>3_mask_dot2,
71         *rotl<mode>3_insert, *rotl<mode>3_insert_2, *rotl<mode>3_insert_3,
72         *rotl<mode>3_insert_4, two splitters for multi-precision shifts,
73         *ior<mode>_mask): New.
74         (extzv, extzvdi_internal, *extzvdi_internal1, *extzvdi_internal2,
75         *rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
76         *ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
77         *lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
78         Delete.
79         (ashr<mode>3): Delete expander.
80         (*ashr<mode>3): Rename to ...
81         (ashr<mode>3): ... This.
82         (ashrdi3_no_power, *ashrdisi3_noppc64be): Delete.
83         (*rotldi3_internal4, *rotldi3_internal5 and split,
84         *rotldi3_internal6 and split, *ashldi3_internal4, ashldi3_internal5
85         and split, *ashldi3_internal6 and split, *ashldi3_internal7,
86         ashldi3_internal8 and split, *ashldi3_internal9 and split): Delete.
87         (*anddi3_2rld, *anddi3_2rld_dot, *anddi3_2rld_dot2): Delete.
88         (splitter for loading a mask): Adjust.
89         * doc/md.texi (Machine Constraints): Remove q, S, T, t constraints.
90
91 2015-07-20  Marek Polacek  <polacek@redhat.com>
92
93         * genemit.c (print_code, gen_exp, gen_insn, gen_expand, gen_split,
94         output_add_clobbers, output_added_clobbers_hard_reg_p,
95         gen_rtx_scratch): Remove declarations.
96
97 2015-07-20  Marek Polacek  <polacek@redhat.com>
98
99         PR c++/55095
100         * doc/invoke.texi: Document -Wshift-overflow and -Wshift-overflow=.
101
102 2015-07-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
103
104         * simplify-rtx.c (simplify_unary_operation_1, NEG case):
105         (neg (x ? (neg y) : y)) -> !x ? (neg y) : y.
106
107 2015-07-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
108
109         * combine.c (combine_simplify_rtx): Move simplification step
110         before various transformations/substitutions.
111
112 2015-07-20  Mikhail Maltsev  <maltsevm@gmail.com>
113
114         * wide-int.h (struct binary_traits): Fix partial specialization syntax.
115         (struct int_traits): Likewise.
116
117 2015-07-18  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
118
119         * vmsdbgout.c (vmsdbgout_decl): Change name of prototyped
120         function to vmsdbgout_function_decl.
121
122 2015-07-18  Uros Bizjak  <ubizjak@gmail.com>
123
124         PR target/66922
125         * config/i386/i386.c (ix86_expand_pextr): Reject extractions
126         from misaligned positions.
127         (ix86_expand_pinsr): Reject insertions to misaligned positions.
128
129 2015-07-18  Sebastian Pop  <s.pop@samsung.com>
130
131         PR middle-end/46851
132         PR middle-end/60340
133         * Makefile.in: Removed omega.o.
134         * common.opt: Document flag fcheck-data-deps as deprecated.
135         * doc/invoke.texi: Remove documentation for fcheck-data-deps and
136         its associated params: omega-max-vars, omega-max-geqs,
137         omega-max-eqs, omega-max-wild-cards, omega-hash-table-size,
138         omega-max-keys, omega-eliminate-redundant-constraints.
139         * doc/loop.texi: Remove all the section on Omega.
140         * graphite-blocking.c: Include missing params.h: it used to be
141         included through tree-data-ref.h and omega.h.
142         * graphite-isl-ast-to-gimple.c: Same.
143         * graphite-optimize-isl.c: Same.
144         * graphite-sese-to-poly.c: Same.
145         * graphite.c: Same.
146         * omega.c: Remove.
147         * omega.h: Remove.
148         * params.def: Removed PARAM_OMEGA_MAX_VARS, PARAM_OMEGA_MAX_GEQS,
149         PARAM_OMEGA_MAX_EQS, PARAM_OMEGA_MAX_WILD_CARDS,
150         PARAM_OMEGA_HASH_TABLE_SIZE, PARAM_OMEGA_MAX_KEYS, and
151         PARAM_OMEGA_ELIMINATE_REDUNDANT_CONSTRAINTS.
152         * passes.def: Remove pass_check_data_deps.
153         * tree-data-ref.c (dump_affine_function): Declare DEBUG_FUNCTION.
154         (dump_conflict_function): Same.
155         (dump_subscript): Same.
156         (print_direction_vector): Same.
157         (print_dir_vectors): Same.
158         (print_lambda_vector): Same.
159         (print_dist_vectors): Same.
160         (dump_data_dependence_relation): Same.
161         (dump_data_dependence_relations): Same.
162         (dump_dist_dir_vectors): Same.
163         (dump_ddrs): Same.
164         (init_omega_eq_with_af): Removed.
165         (omega_extract_distance_vectors): Removed.
166         (omega_setup_subscript): Removed.
167         (init_omega_for_ddr_1): Removed.
168         (init_omega_for_ddr): Removed.
169         (ddr_consistent_p): Removed.
170         (compute_affine_dependence): Do not use omega to check data
171         dependences.
172         (compute_data_dependences_for_bb): Removed.
173         (analyze_all_data_dependences): Removed.
174         (tree_check_data_deps): Removed.
175         * tree-data-ref.h: Do not include omega.h.
176         (compute_data_dependences_for_bb): Removed.
177         (tree_check_data_deps): Removed.
178         * tree-ssa-loop.c (pass_check_data_deps): Removed.
179         (make_pass_check_data_deps): Removed.
180         * tree-ssa-phiopt.c: Include params.h.
181         * tree-vect-data-refs.c: Same.
182         * tree-vect-slp.c: Same.
183
184 2015-07-18  Uros Bizjak  <ubizjak@gmail.com>
185
186         * config/i386/i386.md (pushsf splitter): Pass curr_insn to
187         find_constant_src.  FAIL if find_constant_src returns NULL_RTX.
188         (mem->fpreg splitters): Ditto.
189         (general_operand->nonimmediate_operand splitter): Use explicit modes.
190         Disable DFmode for TARGET_64BIT.
191
192 2015-07-17  H.J. Lu  <hongjiu.lu@intel.com>
193
194         PR target/66906
195         * config/i386/i386.c (ix86_expand_prologue): Replicate static
196         chain on the stack.
197
198 2015-07-17  Nathan Sidwell  <nathan@codesourcery.com>
199
200         * config/nvptx/mkoffload.c (process): Constify host data.
201         * config/i386/intelmic-mkoffload.c (generate_target_descr_file):
202         Constify host data.
203         (generate_host_descr_file): Likewise.
204
205 2015-07-17  Aditya Kumar  <aditya.k7@samsung.com>
206             Sebastian Pop  <s.pop@samsung.com>
207
208         PR middle-end/61929
209         * graphite-dependences.c (add_pdr_constraints): Renamed
210         pdr->extent to pdr->subscript_sizes.
211         * graphite-interchange.c (build_linearized_memory_access): Add
212         back all gcc_assert's that the "isl_int to isl_val conversion"
213         patch has removed.  Refactored.
214         (pdr_stride_in_loop): Renamed pdr->extent to pdr->subscript_sizes.
215         * graphite-poly.c (new_poly_dr): Same.
216         (free_poly_dr): Same.
217         * graphite-poly.h (struct poly_dr): Same.
218         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Ignore
219         all data references other than ARRAY_REF, MEM_REF, and COMPONENT_REF.
220         * graphite-scop-detection.h: Fix space.
221         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Add
222         back all gcc_assert's removed by a previous patch.
223         (wrap): Remove the_isl_ctx global variable that the same patch has
224         added.
225         (build_loop_iteration_domains): Same.
226         (add_param_constraints): Same.
227         (pdr_add_data_dimensions): Same.  Refactored.
228         (build_poly_dr): Renamed extent to subscript_sizes.
229
230 2015-07-17  Marek Polacek  <polacek@redhat.com>
231
232         * fold-const.c (fold_binary_loc): Move A - (A & B) into ~B & A ...
233         * match.pd: ... here.
234
235 2015-07-17  Nathan Sidwell  <nathan@codesourcery.com>
236
237         * config/nvptx/mkoffload.c (process): Constify target data.
238         * config/i386/intelmic-mkoffload.c (generate_target_descr_file):
239         Constify target data.
240         (generate_target_offloadend_file): Likewise.
241
242 2015-07-17  Yuri Rumyantsev  <ysrumyan@gmail.com>
243
244         * tree-vect-loop-manip.c (rename_variables_in_bb): Add argument
245         to allow renaming of PHI arguments on edges incoming from outer
246         loop header, add corresponding check before start PHI iterator.
247         (slpeel_tree_duplicate_loop_to_edge_cfg): Introduce new bool
248         variable DUPLICATE_OUTER_LOOP and set it to true for outer loops
249         with true force_vectorize.  Set-up dominator for outer loop too.
250         Pass DUPLICATE_OUTER_LOOP as argument to rename_variables_in_bb.
251         (slpeel_can_duplicate_loop_p): Allow duplicate of outer loop if it
252         was marked with force_vectorize and has restricted cfg.
253         (slpeel_tree_peel_loop_to_edge): Do not rename exit PHI uses in
254         inner loop.
255         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
256         do peeling for outer loops.
257
258 2015-07-17  Yvan Roux  <yvan.roux@linaro.org>
259             Matthias Klose  <doko@ubuntu.com>
260
261         * configure.ac: Move AC_ARG_WITH checks for native-system-header-dir,
262         build-sysroot, sysroot from the `Miscenalleous configure options' to
263         the `Directories' section and strip trailing `/' from with_sysroot.
264         (gcc_gxx_include_dir): Don't strip a `/' sysroot value.
265         * configure: Regenerated.
266
267 2015-07-17  Uros Bizjak  <ubizjak@gmail.com>
268
269         PR target/66824
270         * config/i386/i386.h (TARGET_HARD_SF_REGS): New define.
271         (TARGET_HARD_DF_REGS): Ditto.
272         (TARGET_HARD_XF_REGS): Ditto.
273         * config/i386/i386.md (*movxf_internal): Add alternatives 9 and 10.
274         Enable alternatives 9 and 10 only for !TARGET_HARD_XF_REG target.
275         (*movdf_internal): Add alternatives 22, 23, 24 and 25. Enable
276         alternatives 22, 23, 24 and 25 only for !TARGET_HARD_DF_REG target.
277         (*movsf_internal): Add alternatives 16 and 17. Enable
278         alternatives 16 and 17 only for !TARGET_HARD_SF_REG target.
279
280 2015-07-17  Uros Bizjak  <ubizjak@gmail.com>
281
282         PR rtl-optimization/66891
283         * calls.c (expand_call): Wrap precompute_register_parameters with
284         NO_DEFER_POP/OK_DEFER_POP to prevent deferred pops.
285
286 2015-07-16  Nathan Sidwell  <nathan@codesourcery.com>
287
288         * config/nvptx/mkoffload.c (process): Constify mapping variables.
289         Define target data struct and initialize it.
290
291 2015-07-16  Vladimir Makarov  <vmakarov@redhat.com>
292
293         PR rtl-optimization/66626
294         * ira.h (emit-rtl.h): Include.
295         (non_spilled_static_chain_regno_p): New.
296         * ira-color.c (setup_profitable_hard_regs): Clear profitable regs
297         unless it is non spilled static chain pseudo.
298         (assign_hard_rego): Spill memory profitable allocno unless it is
299         non spilled static chain pseudo.
300         (allocno_spill_priority_compare): Put non spilled static chain
301         pseudo at the end of sorted array.
302         (improve_allocation): Do nothing if we have static chain and
303         non-local goto.
304         (allocno__priority_compare_func): Put non spilled static chain
305         pseudo at the beginning of sorted array.
306         (move_spill_restore): Ignore non spilled static chain pseudo.
307         * ira-costs.c (find_costs_and_classes): Don't assign class NO_REGS
308         to non spilled static chain pseudo.
309         * lra-assigns.c (pseudo_compare_func): Put non spilled static chain
310         pseudo at the beginning of sorted array.
311         (spill_for): Spill non spilled static chain pseudo last.
312         * lra-constraints.c (lra_constraints): Remove static chain pseudo
313         check for equivalence.
314
315 2015-07-16  Martin Liska  <mliska@suse.cz>
316
317         PR ipa/66896.
318         * ipa-prop.c (update_jump_functions_after_inlining): Create properly
319         dst_ctx if it does not exist.
320
321 2015-07-16  Martin Liska  <mliska@suse.cz>
322
323         * hash-set.h (remove): New function.
324         (iterator): New iteration class for hash_set.
325
326 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
327
328         * genattrtab.c (make_canonical): Add a file_location parameter.
329         Use fatal_at rather than fatal.
330         (get_attr_value): Likewise.  Update call to make_canonical.
331         (fill_attr, make_length_attrs, optimize_attrs, gen_attr)
332         (make_internal_attr): Update calls accordingly.
333
334 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
335
336         * read-md.h (message_with_line, error_with_line): Delete.
337         * read-md.c (message_with_line, error_with_line): Delete.
338         * gensupport.h: Include read-md.h.
339         (md_rtx_info): New structure.
340         (read_md_rtx): Use it.  Return a bool success value.
341         * gensupport.c (read_md_rtx): Likewise.
342         * genattr-common.c (gen_attr): Take an md_rtx_info rather than an rtx.
343         (main): Update after interface changes.
344         * genattr.c (gen_attr): Take an md_rtx_info rather than an rtx.
345         (main): Update after interface changes.
346         * genattrtab.c (insn_code_number): Delete.
347         (optimize_attrs): Add a max_insn_code parameter and use it instead
348         of insn_code_number.
349         (gen_attr): Take an md_rtx_info rather than an rtx and lineno.
350         Use *_at rather than *_with_line functions.
351         (gen_insn): Likewise.
352         (gen_delay): Likewise.
353         (gen_insn_reserv): Likewise.
354         (gen_bypass): Take an md_rtx_info rather than an rtx.
355         (main): Update after interface changes.  Use a local max_insn_code
356         variable instead of insn_code_number.
357         * genautomata.c (gen_cpu_unit): Take an md_rtx_info rather than
358         an rtx.  Use fatal_at rather than fatal.
359         (gen_query_cpu_unit, gen_bypass, gen_excl_set)
360         (gen_presence_absence_set, gen_presence_set, gen_final_presence_set)
361         (gen_absence_set, gen_final_absence_set, gen_automaton)
362         (gen_automata_option, gen_reserv, gen_insn_reserv): Likewise.
363         (main): Update after interface changes.
364         * gencodes.c (gen_insn): Take an md_rtx_info rather than an rtx
365         and code number.
366         (main): Update after interface changes.
367         * genconditions.c (main): Use new read_md_rtx interface.
368         * genconfig.c (gen_insn): Take an md_rtx_info rather than an rtx.
369         (gen_expand, gen_split, gen_peephole, gen_peephole2): Likewise.
370         (main): Update after interface changes.
371         * genemit.c (insn_code_number, insn_index_number): Delete.
372         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
373         Use fatal_at rather than fatal.
374         (gen_expand): Take an md_rtx_info rather than an rtx.  Use fatal_at
375         rather than fatal.
376         (gen_split): Likewise.
377         (main): Update after interface changes.
378         * genextract.c (line_no): Delete.
379         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
380         Update call to walk_rtx.
381         (VEC_safe_set_locstr): Add an md_rtx_info argument.  Use message_at
382         rather than message_with_line.
383         (walk_rtx): Add an md_rtx_info argument.  Update call to
384         VEC_safe_set_locstr.
385         (main): Update after interface changes.
386         * genflags.c (gen_insn): Take an md_rtx_info rather than an rtx
387         and lineno.  Use error_at rather than separate message_with_line
388         calls and have_error assignments.
389         (main): Update after interface changes.
390         * genmddump.c (main): Use new read_md_rtx interface.
391         * genopinit.c (insn): Take an md_rtx_info rather than an rtx.
392         (main): Update after interface changes.
393         * genoutput.c (next_code_number): Delete.
394         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
395         (gen_peephole, gen_expand, gen_split): Likewise.
396         (note_constraint): Likewise.  Use *_at rather than *_with_line
397         functions.
398         (main): Update after interface changes.
399         * genpeep.c (gen_peephole): Take an md_rtx_info rather than an
400         rtx and lineno.
401         (main): Update after interface changes.
402         * genpreds.c (process_define_predicate): Take an md_rtx_info rather
403         than an rtx and lineno.
404         (process_define_constraint): Likewise.
405         (process_define_register_constraint): Likewise.
406         (main): Update after interface changes.
407         * genrecog.c (next_insn_code, pattern_lineno): Delete.
408         (validate_pattern): Replace top-level rtx with an md_rtx_info.
409         Use *_at rather than *_with_line functions.
410         (match_pattern_2): Likewise.
411         (match_pattern_1, match_pattern): Add an md_rtx_info parameter.
412         (get_peephole2_pattern): Take an md_rtx_info rather than an rtvec.
413         Use *_at rather than *_with_line functions.
414         * gentarget-def.c (add_insn): New function.
415         (main): Use it.  Use new read_md_rtx interface.
416
417 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
418
419         * gensupport.h (compute_test_codes): Take a file_location rather
420         than a line number.
421         * gensupport.c (compute_test_codes): Likewise.  Use *_at functions
422         rather than *_with_line functions.
423         (process_define_predicate): Update call to compute_test_codes.
424         * genpreds.c (validate_exp): Take a file_location rather than a
425         line number.  Use *_at functions rather than *_with_line functions.
426         (process_define_predicate): Update call to validate_exp.
427         (constraint_data): Replace lineno field with a file_location.
428         (add_constraint): Take a file_location rather than a line number.
429         Use *_at functions rather than *_with_line functions.  Fix error
430         message for address constraints.  Update after changes to
431         validate_exp, constraint_data and compute_test_codes.
432         (process_define_constraint): Update accordingly.
433         (process_define_register_constraint): Likewise.
434
435 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
436
437         * genoutput.c (data): Use a file_location to record the source
438         position.
439         (nothing): Delete.
440         (idata, idata_end): Remove initialization.
441         (constraint_data): Replace lineno with a file_location.
442         (output_insn_data): Update after changes to data.
443         (gen_insn, gen_peephole, gen_expand, gen_split): Likewise.
444         (scan_operands): Likewise, using *_at rather than *_with_line
445         functions.
446         (process_template): Likewise.
447         (validate_insn_alternatives): Likewise.
448         (validate_insn_operands): Likewise.
449         (validate_optab_operands): Likewise.
450         (init_insn_for_nothing): Initialize idata and idata_end.
451         (note_constraint): Update after changes to constraint_data,
452         using at rather than with_line functions.
453         (mdep_constraint_len): Take a file_location rather than a
454         line number.  Use at rather than with_line functions.
455
456 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
457
458         * read-md.h (fatal_at): Declare.
459         * read-md.c (fatal_at): New function.
460         * genattrtab.c (insn_def, attr_desc, delay_desc): Use a file_location
461         to record the source position.
462         (check_attr_test): Take a file_location instead of a line number.
463         Use fatal_at instead of fatal.
464         (check_attr_value): Update after above changes, using "at"
465         rather than "with_line" reporting functions.
466         (convert_set_attr_alternative): Likewise.
467         (gen_attr): Likewise.
468         (check_defs): Likewise.  Don't assign to read_md_filename.
469         (gen_insn): Update initialization after above changes.
470         (gen_delay): Likewise.
471         (write_insn_cases): Print the filename for a define_peephole.
472         (gen_insn_reserv): Take a line number as argument and update
473         the call to check_attr_test.
474         (main): Pass a line number to gen_insn_reserv.
475
476 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
477
478         * read-md.h (file_location): New structure.
479         (directive_handler_t): Take a file_location rather than a line number.
480         (message_at, error_at): Declare.
481         (read_skip_construct): Delete.
482         * read-md.c (message_with_line_1): Replace with...
483         (message_at_1): ...this new function.
484         (message_at, error_at): New functions.
485         (message_with_line, error_with_line): Update to use message_at_1.
486         (handle_enum): Take a file_location rather than a line number
487         and use error_at for error reporting.
488         (handle_include): Likewise.
489         (read_skip_construct): Likewise.  Make static.
490         (handle_file): Update after above changes.  Pass a file_location
491         rather than a line number to handle_directive.
492         * gensupport.c (queue_elem): Replace separate filename and lineno
493         with a file_location.
494         (queue_pattern): Replace filename and lineno arguments with a
495         file_location.  Update after change to queue_elem.
496         (process_define_predicate): Replace lineno argument with a
497         file_location and use error_at for error reporting.  Update
498         after above changes.
499         (process_rtx): Likewise.
500         (subst_pattern_match): Likewise.
501         (get_alternatives_number): Likewise.
502         (alter_predicate_for_insn): Likewise.
503         (rtx_handle_directive): Likewise.
504         (is_predicable): Update after above changes, using error_at rather
505         than error_with_line.
506         (has_subst_attribute): Likewise.
507         (identify_predicable_attribute): Likewise.
508         (alter_attrs_for_subst_insn): Likewise.
509         (process_one_cond_exec): Likewise.
510         (process_substs_on_one_elem): Likewise.
511         (process_define_subst): Likewise.
512         (check_define_attr_duplicates): Likewise.
513         (read_md_rtx): Update after change to queue_elem.
514
515 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
516
517         * genoutput.c (next_index_number): Delete.
518         (data): Remove index_number.
519         (gen_insn, gen_peephole, gen_expand, gen_split): Update accordingly.
520         (main): Remove manipulation of next_index_number.
521
522 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
523
524         * genattrtab.c (check_attr_value): Remove handling of null attrs.
525         (make_canonical): Likewise.
526
527 2015-07-16  Eric Botcazou  <ebotcazou@adacore.com>
528
529         * config/sparc/sparc.md (save_stack_nonlocal): Use adjust_address
530         instead of adjust_address_nv.
531         (restore_stack_nonlocal): Likewise.
532         (nonlocal_goto): Likewise.
533
534 2015-07-16  Tom de Vries  <tom@codesourcery.com>
535
536         * tree-parloops.c (create_parallel_loop): Handle case that exit phi does
537         not have a corresponding loop header phi.
538
539 2015-07-16  Tom de Vries  <tom@codesourcery.com>
540
541         * tree-parloops.c (create_loads_for_reductions): Handle case that
542         reduction is unused.
543
544 2015-07-16  Richard Biener  <rguenther@suse.de>
545
546         PR tree-optimization/66894
547         * tree-vrp.c (register_edge_assert_for_2): Fix bad assumption
548         about deriving NE_EXPR from truncated values.
549
550 2015-07-16  Martin Liska  <mliska@suse.cz>
551
552         * alloc-pool.h
553         (object_allocator): Add new class.
554         (pool_allocator::initialize): Use the underlying class.
555         (pool_allocator::allocate): Likewise.
556         (pool_allocator::remove): Likewise.
557         (operator new): A new generic allocator.
558         * asan.c (struct asan_mem_ref): Remove unused members.
559         (asan_mem_ref_new): Replace new operator with
560         object_allocator::allocate.
561         (free_mem_ref_resources): Change deallocation.
562         * cfg.c (initialize_original_copy_tables): Replace pool_allocator
563         with object_allocator.
564         * config/sh/sh.c (add_constant): Replace new operator with
565         object_allocator::allocate.
566         (sh_reorg): Change call to a release method.
567         * cselib.c (struct elt_list): Remove unused members.
568         (new_elt_list): Replace new operator with
569         object_allocator::allocate.
570         (new_elt_loc_list): Likewise.
571         (new_cselib_val): Likewise.
572         (unchain_one_elt_list): Change delete operator with remove method.
573         (unchain_one_elt_loc_list): Likewise.
574         (unchain_one_value): Likewise.
575         (cselib_finish): Release newly added static allocators.
576         * cselib.h (struct cselib_val): Remove unused members.
577         (struct elt_loc_list): Likewise.
578         * df-problems.c (df_chain_alloc): Replace pool_allocator with
579         object_allocator.
580         * df-scan.c (struct df_scan_problem_data): Likewise.
581         (df_scan_alloc): Likewise.
582         * df.h (struct dataflow): Likewise.
583         * dse.c (struct read_info_type): Likewise.
584         (struct insn_info_type): Likewise.
585         (struct dse_bb_info_type): Likewise.
586         (struct group_info): Likewise.
587         (struct deferred_change): Likewise.
588         (get_group_info): Likewise.
589         (delete_dead_store_insn): Likewise.
590         (free_read_records): Likewise.
591         (replace_read): Likewise.
592         (check_mem_read_rtx): Likewise.
593         (scan_insn): Likewise.
594         (dse_step1): Likewise.
595         (dse_step7): Likewise.
596         * et-forest.c (struct et_occ): Remove unused members.
597         (et_new_occ): Use allocate instead of new operator.
598         (et_new_tree): Likewise.
599         (et_free_tree): Call release method explicitly.
600         (et_free_tree_force): Likewise.
601         (et_free_pools): Likewise.
602         (et_split): Use remove instead of delete operator.
603         * et-forest.h (struct et_node): Remove unused members.
604         * ipa-cp.c: Change pool_allocator to object_allocator.
605         * ipa-inline-analysis.c: Likewise.
606         * ipa-profile.c: Likewise.
607         * ipa-prop.c: Likewise.
608         * ipa-prop.h: Likewise.
609         * ira-build.c (initiate_cost_vectors): Cast return value.
610         (ira_allocate_cost_vector): Likewise.
611         * ira-color.c (struct update_cost_record): Remove unused members.
612         * lra-int.h (struct lra_live_range): Likewise.
613         (struct lra_copy): Likewise.
614         (struct lra_insn_reg): Likewise.
615         * lra-lives.c (lra_live_ranges_finish): Release new static allocator.
616         * lra.c (new_insn_reg): Replace new operator with allocate method.
617         (free_insn_regs): Same for operator delete.
618         (finish_insn_regs): Release new static allocator.
619         (finish_insn_recog_data): Likewise.
620         (lra_free_copies): Replace delete operator with remove method.
621         (lra_create_copy): Replace operator new with allocate method.
622         (invalidate_insn_data_regno_info): Same for remove method.
623         * regcprop.c (struct queued_debug_insn_change): Remove unused members.
624         (free_debug_insn_changes): Replace delete operator with remove method.
625         (replace_oldest_value_reg): Replace operator new with allocate method.
626         (pass_cprop_hardreg::execute): Release new static variable.
627         * sched-deps.c (sched_deps_init): Change pool_allocator to
628         object_allocator.
629         * sel-sched-ir.c: Likewise.
630         * sel-sched-ir.h: Likewise.
631         * stmt.c (expand_case): Likewise.
632         (expand_sjlj_dispatch_table): Likewise.
633         * tree-sra.c (struct access): Remove unused members.
634         (struct assign_link): Likewise.
635         (sra_deinitialize): Release newly added static pools.
636         (create_access_1):Replace operator new with allocate method.
637         (build_accesses_from_assign): Likewise.
638         (create_artificial_child_access): Likewise.
639         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Change
640         pool_allocator to object_allocator.
641         * tree-ssa-pre.c: Likewise.
642         * tree-ssa-reassoc.c: Likewise.
643         * tree-ssa-sccvn.c (allocate_vn_table): Likewise.
644         * tree-ssa-strlen.c: Likewise.
645         * tree-ssa-structalias.c: Likewise.
646         * var-tracking.c (onepart_pool_allocate): New function.
647         (unshare_variable): Use the newly added function.
648         (variable_merge_over_cur): Likewise.
649         (variable_from_dropped): Likewise.
650         (variable_was_changed): Likewise.
651         (set_slot_part): Likewise.
652         (emit_notes_for_differences_1): Likewise.
653         (vt_finalize): Release newly added static pools.
654
655 2015-07-16  Martin Jambor  <mjambor@suse.cz>
656
657         * ipa-prop.h (param_aa_status): Rename to ipa_param_aa_status.  Adjust
658         all uses.  Fix two typos in its general comment.
659         (func_body_info): Rename to ipa_func_body_info.  Adjust all uses.
660
661 2015-07-16  Ilya Enkovich  <enkovich.gnu@gmail.com>
662
663         * config/i386/linux-common.h (LINK_MPX): New.
664         (MPX_SPEC): Use LINK_MPX instead of %(link_mpx).
665         * configure.ac: Add HAVE_LD_BNDPLT_SUPPORT macro
666         indicating '-z bndplt' support by linker.
667         * configure: Regenerate.
668         * config.in: Regenerate.
669
670 2015-07-16  Richard Biener  <rguenther@suse.de>
671
672         * fold-const.c (fold_widened_comparison): Remove.
673         (fold_sign_changed_comparison): Likewise.
674         (fold_comparison): Move widened and sign-changed comparison
675         simplification ...
676         * match.pd: ... to patterns here.
677         * generic-match-head.c: Include target.h.
678         * gimple-match-head.c: Likewise.
679
680 2015-07-16  Richard Biener  <rguenther@suse.de>
681
682         * tree-ssa-dom.c (dom_valueize): New function.
683         (record_temporary_equivalences): Also record equivalences
684         for dominating stmts that have uses of equivalences we are
685         about to record.
686
687 2015-07-16  Bin Cheng  <bin.cheng@arm.com>
688
689         * tree-ssa-loop-ivopts.c (add_candidate): Remove call to
690         add_autoinc_candidates.
691         (add_iv_candidate_for_biv): Rename to add_iv_candidate_for_biv.
692         (add_iv_candidate_for_biv): Rename from add_iv_candidate_for_biv.
693         (add_old_ivs_candidates): Rename to add_iv_candidate_for_bivs.
694         (add_iv_candidate_for_bivs): Rename from add_old_ivs_candidates.
695         Call new function.
696         (add_iv_value_candidates): Rename to add_iv_candidate_for_use.
697         (add_iv_candidate_for_use): Rename from add_iv_value_candidates.
698         Remove parameter struct iv*.  Call add_autoinc_candidates here.
699         (add_derived_ivs_candidates): Rename to add_iv_candidate_for_uses.
700         (add_iv_candidate_for_uses): Rename from add_derived_ivs_candidates.
701         Call new function.
702         (find_iv_candidates): Call new functions.
703
704 2015-07-16  Sandra Loosemore  <sandra@codesourcery.com>
705
706         * config/nios2/nios2.c (nios2_emit_stack_limit_check): Fix
707         uninitialized-variable warning.
708
709 2015-07-16  Kaz Kojima  <kkojima@gcc.gnu.org>
710
711         PR target/65249
712         * config/sh/sh.md (movdi): Split simple reg move to two movsi
713         when the destination is R0.
714
715 2015-07-16  Uros Bizjak  <ubizjak@gmail.com>
716
717         PR target/66866
718         * config/i386/i386-protos.h (ix86_expand_pextr): New prototype.
719         * config/i386/i386.c (ix86_expand_pextr): New function.
720         (ix86_expand_pinsr): Handle V1TI and TI modes.  Call ix86_expand_pextr
721         for non-lowpart subregs.
722         * config/i386/i386.md (extzv<mode>): Expand with ix86_expand_pextr.
723         (insv<mode>): Use SWI248 mode iterator.
724         (insv<mode>_1): Ditto.
725
726 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
727             Sebastian Pop  <s.pop@samsung.com>
728
729         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Point
730         iterator to use_stmt.
731
732 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
733             Sebastian Pop <s.pop@samsung.com>
734
735         * graphite-scop-detection.c (build_scops_1): Discard scops for
736         which entry==exit.
737
738 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
739             Sebastian Pop <s.pop@samsung.com>
740
741         * graphite-scop-detection.c (stmt_simple_for_scop_p): Bail out in
742         case of a return statement in scop.
743
744 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
745             Sebastian Pop <s.pop@samsung.com>
746
747         * graphite-sese-to-poly.c (parameter_index_in_region): Only handle
748         INTEGER_TYPE parameters.
749         (scan_tree_for_params): Handle REAL_CST, COMPLEX_CST, and
750         VECTOR_CST in scan_tree_for_params.
751         (add_conditions_to_domain): Only constrain on INTEGER_TYPE.
752
753 2015-07-15  Andrew MacLeod  <amacleod@redhat.com>
754
755         * gimple-pretty-print.h: Don't include pretty-print.h.
756         * tree-streamer.h: Don't include lto-streamer.h.
757         * gimple-streamer.h: Include tree-streamer.h rather than lto-streamer.h.
758         * gimple-streamer-in.c: Remove redundant includes.
759         * gimple-streamer-out.c: Likewise.
760         * ipa-devirt.c: Likewise.
761         * ipa-icf.c: Likewise.
762         * ipa-inline-analysis.c: Likewise.
763         * ipa-polymorphic-call.c: Likewise.
764         * ipa-profile.c: Likewise.
765         * ipa-prop.c: Likewise.
766         * ipa-pure-const.c: Likewise.
767         * lto-cgraph.c: Likewise.
768         * lto-streamer-in.c: Likewise.
769         * lto-streamer-out.c: Likewise.
770         * lto-streamer.c: Likewise.
771         * tree-streamer-in.c: Likewise.
772         * tree-streamer-out.c: Likewise.
773         * tree-streamer.c: Likewise.
774
775 2015-07-15  Andrew MacLeod  <amacleod@redhat.com>
776
777         * opth-gen.awk: Check for UNKNOWN_LOCATION rather than GCC_TM_H, don't
778         include input.h.
779         * opts.c: Remove multiline #include comment.
780
781 2015-07-15  Nathan Sidwell  <nathan@codesourcery.com>
782
783         * config/nvptx/mkoffload.c (process): Add C++ protection to
784         emitted code.
785
786 2015-07-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
787
788         PR target/66854
789         * config/rs6000/rs6000.c (rs6000_pass_by_reference): Move test for
790         null before IEEE 128-bit floating point support patch.
791
792 2015-07-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
793
794         * simplify-rtx.c (simplify_ternary_operation): Add simplification
795         for (!c) != {0,...,0} ? a : b for vector modes.
796
797 2015-07-15  Paolo Bonzini  <bonzini@gnu.org>
798             Martin Jambor  <mjambor@suse.cz>
799
800         * ipa-inline-analysis.c (unmodified_parm_or_parm_agg_item): Accept
801         struct func_body_info* instead of struct ipa_node_params*, expecting
802         fbi->info to be filled in.  Replace throughout.  Adjust call to
803         ipa_load_from_parm_agg.
804         (set_cond_stmt_execution_predicate): Accept struct func_body_info*
805         instead of struct ipa_node_params*.  Adjust calls to other functions
806         so that they pass either fbi or fbi->info.
807         (set_switch_stmt_execution_predicate): Likewise.
808         (will_be_nonconstant_predicate): Likewise.
809         (compute_bb_predicates): Likewise.
810         (estimate_function_body_sizes): Move asserts earlier.  Fill in
811         struct func_body_info, replace parms_info with fbi.info.  Adjust
812         calls to functions that now accept struct func_body_info.
813         * ipa-prop.c (param_aa_status, struct ipa_bb_info): Move to ipa-prop.h.
814         (struct func_body_info): Likewise.
815         (ipa_load_from_parm_agg_1): Rename to ipa_load_from_parm_agg,
816         remove static.  Adjust callers.
817         (ipa_load_from_parm_agg): Remove.
818         * ipa-prop.h (param_aa_status, ipa_bb_info): Move from ipa-prop.c.
819         (func_body_info): Likewise.
820         (ipa_load_from_parm_agg): Adjust prototype.
821
822 2015-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
823
824         * gensupport.c (rtx_handle_directive): Adjust.
825         * read-rtl.c (apply_iterators): Take vector to add rtxs to
826         instead of expr list rtx.
827         (add_define_attr_for_define_subst): Likewise.
828         (add_define_subst_attr): Likewise.
829         (read_subst_mapping): Likewise.
830         (read_rtx): Likewise.
831         * rtl.h (read_rtx): Adjust.
832
833 2015-07-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
834
835         * config/aarch64/aarch64.md (*csinc2<mode>_insn): Use cinc mnemonic.
836
837 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
838
839         PR target/58066
840         * config/i386/i386.md (*tls_global_dynamic_64_<mode>): Depend on SP_REG.
841         (*tls_local_dynamic_base_64_<mode>): Ditto.
842         (*tls_local_dynamic_base_64_largepic): Ditto.
843         (tls_global_dynamic_64_<mode>): Update expander pattern.
844         (tls_local_dynamic_base_64_<mode>): Ditto.
845
846 2015-07-15  Richard Biener  <rguenther@suse.de>
847
848         * fold-const.c (fold_binary_loc): Move bool_var != 0 -> bool_var
849         and bool_var == 1 -> bool_var simplifications ...
850         * match.pd: ... to patterns here.  Factor out negate_expr_p
851         cases from the A - B -> A + (-B) patterns as negate_expr_p
852         predicate and add a -(A + B) -> (-B) - A pattern.
853
854 2015-07-15  Robert Suchanek  <robert.suchanek@imgtec.com>
855
856         * config/mips/mips.c (mips_emit_save_slot_move): Fix typo.
857
858 2015-07-15  Matthew Fortune  <matthew.fortune@imgtec.com>
859             Robert Suchanek  <robert.suchanek@imgtec.com>
860
861         * config/mips/mips.c (mips_int_mask): New enum.
862         (mips_shadow_set): Likewise.
863         (int_mask): New variable.
864         (use_shadow_register_set_p): Change type to enum mips_shadow_set.
865         (machine_function): Add int_mask and use_shadow_register_set.
866         (mips_attribute_table): Add attribute handlers for interrupt and
867         use_shadow_register_set.
868         (mips_interrupt_mask): New static function.
869         (mips_handle_interrupt_attr): Likewise.
870         (mips_handle_use_shadow_register_set_attr): Likewise.
871         (mips_use_shadow_register_set): Change return type to enum
872         mips_shadow_set.  Add argument handling for use_shadow_register_set
873         attribute.
874         (mips_interrupt_extra_called_saved_reg_p): Update the conditional to
875         compare with mips_shadow_set enum.
876         (mips_compute_frame_info): Add interrupt mask and
877         use_shadow_register_set to per-function information structure.
878         Add a stack slot for EPC unconditionally.
879         (mips_expand_prologue): Compare use_shadow_register_set value
880         with mips_shadow_set enum.  Save EPC always in K1, clobber only K1 for
881         masked interrupt register but in EIC mode use K0 and save Cause in K0.
882         EPC saved and restored unconditionally.  Use PMODE_INSN macro when
883         copying the stack pointer from the shadow register set.
884         * config/mips/mips.h (SR_IM0): New define.
885         * config/mips/mips.md (mips_rdpgpr): Rename to...
886         (mips_rdpgpr_<mode>): ...this.  Use the Pmode iterator.
887         * doc/extend.texi (Declaring Attributes of Functions): Document
888         optional arguments for interrupt and use_shadow_register_set
889         attributes.
890
891 2015-07-15  Robert Suchanek  <robert.suchanek@imgtec.com>
892
893         * config/mips/mips.c (mips_compute_frame_info): Allow -mhard-float in
894         interrupt attribute.
895         (mips_expand_prologue): Disable the floating point unit in an ISR.
896         * config/mips/mips.h (SR_COP1): New define.
897
898 2015-07-15  Richard Biener  <rguenther@suse.de>
899
900         * genmatch.c (parser::peek, parser::peek_ident): Add argument
901         to tell how many tokens to peek ahead (default 1).
902         (parser::eat_token, parser::eat_ident): Return token consumed.
903         (parser::parse_result): Parse new switch statement.
904         * match.pd: Use case statements where appropriate.
905
906 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
907
908         PR rtl-optimization/58066
909         * calls.c (expand_call): Precompute register parameters before stack
910         alignment is performed.
911
912 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
913
914         PR rtl-optimization/66838
915         * postreload.c (reload_cse_move2add): Also process
916         CALL_INSN_FUNCTION_USAGE when resetting information of
917         call-clobbered registers.
918
919 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
920             Cesar Philippidis  <cesar@codesourcery.com>
921             Chung-Lin Tang  <cltang@codesourcery.com>
922
923         * config/nios2/constraints.md (U, v): New constraints.
924         * config/nios2/predicates.md (rdprs_dcache_operand): New.
925         (ldstex_memory_operand): New.
926         * config/nios2/sync.md: New file.
927         * config/nios2/nios2.md (unspecv): Add new builtin function
928         UNSPECV codes.
929         (rdprs, flushd, flushda, wrpie, eni): New patterns.
930         (top-level): Include sync.md.
931         * config/nios2/nios2.c (N2_FTYPES): Add function types for
932         new builtins.
933         (N2_BUILTINS): Add arch field setting, add new builtins.
934         (enum nios2_builtin_code,nios2_builtins): Update N2_BUILTIN_DEF
935         for arch field.
936         (nios2_expand_ldst_builtin): Rename from nios2_expand_ldstio_builtin.
937         Also handle ldex/stex/ldsex/stsex builtins.
938         (nios2_expand_rdprs_builtin): New function.
939         (nios2_expand_cache_builtin): New function.
940         (nios2_expand_wrpie_builtin): New function.
941         (nios2_expand_eni_builtin): New function.
942         (nios2_expand_builtin): Add arch field handling and new builtin
943         cases.
944         * doc/extend.texi (Altera Nios II Built-in Functions): Document
945         new builtins.
946         * doc/md.texi (Machine Constraints): Document U and v constraints.
947
948 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
949             Cesar Philippidis  <cesar@codesourcery.com>
950             Chung-Lin Tang  <cltang@codesourcery.com>
951
952         * config/nios2/nios2-protos.h (nios2_expand_return): Declare.
953         * config/nios2/nios2.c (struct GTY (()) machine_function): Add
954         callee_save_reg_size and uses_anonymous_args fields.
955         (nios2_compute_frame_layout): Update for CDX push.n/pop.n usage.
956         (nios2_create_cfa_notes): New function.
957         (nios2_adjust_stack): New function for adjusting stack.
958         (nios2_expand_prologue): Update for CDX push.n/pop.n usage.
959         Use nios2_adjust_stack.
960         (nios2_expand_epilogue): Likewise.
961         (nios2_expand_return): New function.
962         (nios2_can_use_return_insn): Update for CDX pop.n usage.
963         (nios2_setup_incoming_varargs): Set uses_anonymous_args flag.
964         If TARGET_HAS_CDX, defer pushing regs to nios2_expand_prologue.
965         * config/nios2/nios2.md (return): Use nios2_expand_return.
966
967 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
968             Cesar Philippidis  <cesar@codesourcery.com>
969             Chung-Lin Tang  <cltang@codesourcery.com>
970
971         * config/nios2/predicates.md (pop_operation): New.
972         (ldwm_operation, stwm_operation): New.
973         (nios2_hard_register_operand): New.
974         * config/nios2/nios2-protos.h (pop_operation_p): Declare.
975         (ldstwm_operation_p): Declare.
976         (gen_ldstwm_peep): Declare.
977         * config/nios2/nios2.c: (nios2_ldst_parallel): Declare.
978         (base_reg_adjustment_p): New.
979         (pop_operation_p): New.
980         (CDX_LDSTWM_VALID_REGS_0, CDX_LDSTWM_VALID_REGS_1): Define.
981         (nios2_ldstwm_regset_p): New.
982         (ldstwm_operation_p): New.
983         (gen_ldst): New.
984         (nios2_ldst_parallel): New.
985         (struct ldswm_operand): Declare.
986         (compare_ldstwm_operands): New.
987         (can_use_cdx_ldstw): New.
988         (gen_ldstwm_peep): New.
989         * config/nios2/nios2-ldstwm.sml: New.
990         * config/nios2/nios2.md: Include ldstwm.md.
991         * config/nios2/ldstwm.md: Generated.
992
993 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
994             Cesar Philippidis  <cesar@codesourcery.com>
995             Chung-Lin Tang  <cltang@codesourcery.com>
996
997         * config/nios2/nios2.h (LABEL_ALIGN): Define.
998         (REG_ALLOC_ORDER): Define.
999         (ADJUST_REG_ALLOC_ORDER): Define.
1000         (HONOR_REG_ALLOC_ORDER): Define.
1001         (CDX_REG_P): Define.
1002         (ANDCLEAR_INT): Define.
1003         * config/nios2/nios2-protos.h (nios2_add_insn_asm): Declare.
1004         (nios2_label_align): Declare.
1005         (nios2_cdx_narrow_form_p): Declare.
1006         (nios2_adjust_reg_alloc_order): Declare.
1007         * config/nios2/nios2.c (nios2_rtx_costs): Adjust for BMX zero-extract
1008         operation.
1009         (nios2_large_unspec_reloc_p): New function, split from...
1010         (nios2_legitimate_pic_operand_p): ...here.
1011         (nios2_emit_move_sequence): Add *high/*lo_sum constant expand code.
1012         (nios2_print_operand_punct_valid_p): New.
1013         (nios2_print_operand): Add %., %!, %x, %y, %A.  Remove %U.
1014         (split_mem_address): New.
1015         (split_alu_insn): New.
1016         (cdxreg): New.
1017         (cdx_add_immed, cdx_and_immed, cdx_mov_immed, cdx_shift_immed): New.
1018         (enum nios2_add_insn_kind): New.
1019         (nios2_add_insn_names, nios2_add_insn_narrow): New.
1020         (nios2_add_insn_classify): New.
1021         (nios2_add_insn_asm): New.
1022         (nios2_cdx_narrow_form_p): New.
1023         (label_align, min_labelno, max_labelno): New.
1024         (nios2_reorg): New.
1025         (nios2_label_align): New.
1026         (nios2_adjust_reg_alloc_order): New.
1027         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
1028         (TARGET_MACHINE_DEPENDENT_REORG): Define.
1029         * config/nios2/constraints.md (P): New constraint.
1030         * config/nios2/predicates.md (const_and_operand): New.
1031         (and_operand): New.
1032         (stack_memory_operand): New.
1033         * config/nios2/nios2.md (SP_REGNO): Define stack pointer regno.
1034         (length): Update to use nios2_cdx_narrow_form_p().
1035         (type): Add new insn type values.
1036         (control, alu, st, ld, shift): Update insn reservations with
1037         new insn type values.
1038         (*high, *lo_sum): Define new insn patterns for constant generation.
1039         (movqi_internal, movhi_internal, movsi_internal): Reduce
1040         alternatives, update asm template to handle CDX variants, update
1041         type attributes.
1042         (zero_extendhisi2, zero_extendqi<mode>2): Add CDX variants to asm
1043         template, update type attributes.
1044         (extendhisi2, extendqi<mode>2): Likewise.
1045         (addsi3): Change to use function for asm string.
1046         (subsi3): Add CDX notation to asm template, update type attributes.
1047         (negsi3, one_cmplsi3): Likewise.
1048         (andsi3): New pattern, specialized from logical patterns.
1049         (<code>si3): Remove and case, combine alternatives, update asm
1050         template.
1051         (<shift_op>si3): Add CDX notation, update type attributes.
1052         (rotrsi3): Update type attribute.
1053         (*merge, extzv, insv): New insn patterns.
1054         (return): Change to define_expand.
1055         (simple_return): Add CDX notation, update type attributes.
1056         (indirect_jump): Add CDX notation.
1057         (jump): Update asm cases, update length attribute expression.
1058         (*call, *call_value, *sibcall, *sibcall_value): Add CDX variant.
1059         (nios2_cbranch): Update asm cases and length attribute expression
1060         to handle CDX variants.
1061         (nios2_cmp<code>): Update asm template.
1062         (nop): Add CDX notation, update type attributes.
1063         (trap): Add CDX notation.
1064         (ctrapsi4): Update asm cases and length attribute expression to
1065         handle CDX variant.
1066         * doc/md.texi (Machine Constraints): Document P constraint.
1067
1068 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
1069             Cesar Philippidis  <cesar@codesourcery.com>
1070             Chung-Lin Tang  <cltang@codesourcery.com>
1071
1072         * config/nios2/nios2.h (SMALL_INT12): New macro.
1073         * config/nios2/nios2.c (nios2_valid_addr_offset_p): New function.
1074         (nios2_valid_addr_expr_p): Use it.
1075         (nios2_symbol_ref_in_small_data_p): Disallow GP-relative addressing
1076         with implicit "io" instructions on R2.
1077         * config/nios2/constraints.md (w): New constraint.
1078         * config/nios2/predicates.md (ldstio_memory_operand): New.
1079         * config/nios2/nios2.md (ld<bhw_uns>io, ld<bh>io): Update memory
1080         operand predicate and constraint.
1081         (ld<bh>io_signed, st<bhw>io>): Likewise.
1082         * doc/md.texi (Machine Constraints): Document w constraint.
1083
1084 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
1085             Cesar Philippidis  <cesar@codesourcery.com>
1086             Chung-Lin Tang  <cltang@codesourcery.com>
1087
1088         * config/nios2/nios2.opt (march, mbmx, mcdx): New options.
1089         * config/nios2/nios2-opts.h (enum nios2_arch_type): New enum for
1090         Nios II architecture level.
1091         * config/nios2/nios2.h (TARGET_ARCH_R2): New define.
1092         (TARGET_CPU_CPP_BUILTINS): Add definition of __nios2_arch__ symbol.
1093         (OPTION_DEFAULT_SPECS): Define.
1094         (ASM_SPEC): Add -march= spec strings.
1095         * config/nios2/nios2.c (nios2_option_override): Check for
1096         conflicts involving new options.
1097         * config.gcc (nios2*-*-*): Support --with-arch=.
1098         * doc/invoke.texi (Option Summary, Nios II Options): Document
1099         -march=, -mbmx, and -mcdx.
1100
1101 2015-07-14  Vladimir Makarov  <vmakarov@redhat.com>
1102
1103         PR rtl-optimization/66626
1104         * lra-constraints.c (lra_constraints): Prevent equivalence
1105         substitution for static chain pseudo in functions with nonlocal
1106         goto.
1107
1108 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
1109
1110         * config/nios2/nios2.c (TEMP_REG_NUM): Move define up in file.
1111         (nios2_emit_stack_limit_check): Add size parameter.  Handle
1112         -fstack-limit-symbol as well as -fstack-limit-register.
1113         (nios2_expand_prologue): Emit only a single stack limit check,
1114         even if multiple stack adjustments are required.
1115         (nios2_option_override): Diagnose unsupported combination of -fpic
1116         and -stack-limit-symbol.
1117
1118 2015-07-14  H.J. Lu  <hongjiu.lu@intel.com>
1119
1120         * Makefile.in (top_srcdir): New.
1121         * configure.ac: Use AM_ZLIB.
1122         * configure: Regeneated.
1123
1124 2015-07-14  Matthias Klose  <doko@ubuntu.com>
1125
1126         PR target/66840
1127         * config/rs6000/t-rs6000 (TM_H): Add rs6000-cpus.def.
1128
1129 2015-07-14  Richard Biener  <rguenther@suse.de>
1130
1131         PR tree-optimization/66863
1132         * tree-vrp.c (register_edge_assert_for_2): Properly restrict
1133         what we record for conversion use stmt lhs inequalities.
1134
1135 2015-07-14  Richard Biener  <rguenther@suse.de>
1136
1137         * genmatch.c (dt_node::gen_kids_1): Fix case label indenting.
1138         (decision_tree::gen_gimple): Likewise.
1139
1140 2015-07-14  Tom de Vries  <tom@codesourcery.com>
1141
1142         * gcc.c (greater_than_spec_func): Declare forward.
1143         (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use gt to ignore
1144         -ftree-parallelize-loops={0,1}.
1145         (static_spec_functions): Add greater_than_spec_func function with name
1146         "gt".
1147         (greater_than_spec_func): New function.
1148
1149 2015-07-14  Richard Biener  <rguenther@suse.de>
1150
1151         * tree-ssa-dom.c (record_temporary_equivalences): Merge
1152         wideing type conversion case from record_equivalences_from_incoming_edge
1153         and use record_equality to record equivalences.
1154         (record_equivalences_from_incoming_edge): Call
1155         record_temporary_equivalences.
1156
1157 2015-07-14  Richard Biener  <rguenther@suse.de>
1158
1159         * genmatch.c (struct operand): Add OP_IF and OP_WITH op_types.
1160         (struct if_expr): New.
1161         (struct with_expr): Likewise.
1162         (is_a_helper): Add helpers for if_expr and with_expr.
1163         (struct simplify): Add simplify_kind enum and member.  Remove
1164         ifexpr_vec member.
1165         (simplify::simplify): Adjust.
1166         (lower_commutative): Adjust.
1167         (lower_opt_convert): Likewise.
1168         (lower_cond): Likewise.
1169         (replace_id): Handle with_expr and if_expr.
1170         (lower_for): Adjust.
1171         (dt_simplify::gen_1): New recursive worker, split out from ...
1172         (dt_simplify::gen): ... here.  Deal with if and with expansion
1173         recursively.
1174         (capture_info::capture_info): Take context argument
1175         (capture_info::walk_result): Only analyze specific result.
1176         (parser::parse_result): New function.
1177         (parser::parse_simplify): Adjust to parse ifs with then end
1178         else case.
1179         (parser::parse_if): Simplify.
1180         (parser::parse_pattern): Pass down simplify kind.
1181         * match.pd: Convert if structure to new syntax.
1182
1183 2015-07-13  Marek Polacek  <polacek@redhat.com>
1184
1185         * rtl.c (rtx_equal_p_cb): Fix typo.
1186
1187 2015-07-13  Andrew MacLeod  <amacleod@redhat.com>
1188
1189         * omega.h: Don't include config.h, don't include params.h again if
1190         omega.h has already been included.
1191         * graphite-poly.h: Include sese.h.
1192         * graphite.c: Don't include sese.h, remove needless includes and
1193         minimize includes outside #ifdef HAVE_isl block.
1194         * graphite-blocking.c: Don't include sese.h, remove needless includes,
1195         and wrap entire file in #ifdef HAVE_isl
1196         * graphite-dependences.c: Likewise.
1197         * graphite-interchange.c: Likewise.
1198         * graphite-isl-ast-to-gimple.c: Likewise.
1199         * graphite-optimize-isl.c: Likewise.
1200         * graphite-poly.c: Likewise.
1201         * graphite-scop-detection.c: Likewise.
1202         * graphite-sese-to-poly.c: Likewise.
1203
1204 2015-07-13  Tom de Vries  <tom@codesourcery.com>
1205
1206         * omp-low.c (build_receiver_ref): Mark *.omp_data_i as non-trapping.
1207
1208 2015-07-13  Renlin Li  <renlin.li@arm.com>
1209
1210         PR rtl/66556
1211         * simplify-rtx.c (simplify_const_relational_operation): Add
1212         side_effects_p checks.
1213
1214 2015-07-12  Aldy Hernandez  <aldyh@redhat.com>
1215
1216         * bitmap.h: Fix double word typos.
1217         * builtins.c: Same.
1218         * calls.c: Same.
1219         * cfgloopmanip.c: Same.
1220         * cgraph.c: Same.
1221         * cgraph.h: Same.
1222         * cgraphclones.c: Same.
1223         * combine.c: Same.
1224         * config/aarch64/aarch64-protos.h: Same.
1225         * config/aarch64/aarch64.c: Same.
1226         * config/aarch64/aarch64.md: Same.
1227         * config/arm/arm.md: Same.
1228         * config/arm/arm1020e.md: Same.
1229         * config/arm/arm1026ejs.md: Same.
1230         * config/arm/arm926ejs.md: Same.
1231         * config/arm/fa526.md: Same.
1232         * config/arm/fa606te.md: Same.
1233         * config/arm/fa626te.md: Same.
1234         * config/arm/fa726te.md: Same.
1235         * config/arm/fmp626.md: Same.
1236         * config/darwin.c: Same.
1237         * config/epiphany/epiphany.c: Same.
1238         * config/frv/frv.c: Same.
1239         * config/ft32/ft32.c: Same.
1240         * config/gnu-user.h: Same.
1241         * config/h8300/constraints.md: Same.
1242         * config/i386/i386.c: Same.
1243         * config/i386/i386.md: Same.
1244         * config/iq2000/iq2000.md: Same.
1245         * config/mips/mips.c: Same.
1246         * config/mmix/mmix.md: Same.
1247         * config/moxie/moxie.c: Same.
1248         * config/nds32/nds32.md: Same.
1249         * config/pa/pa.h: Same.
1250         * config/rs6000/aix.h: Same.
1251         * config/rs6000/rs6000.h: Same.
1252         * config/sh/sh.c: Same.
1253         * config/tilegx/tilegx.md: Same.
1254         * config/tilepro/gen-mul-tables.cc: Same.
1255         * cse.c: Same.
1256         * dbxout.c: Same.
1257         * doc/invoke.texi: Same.
1258         * dse.c: Same.
1259         * dwarf2out.c: Same.
1260         * final.c: Same.
1261         * gcc.c: Same.
1262         * genmatch.c: Same.
1263         * gimplify.c: Same.
1264         * hash-table.h: Same.
1265         * internal-fn.c: Same.
1266         * ipa-cp.c: Same.
1267         * ipa-devirt.c: Same.
1268         * ipa-icf.c: Same.
1269         * ipa-icf.h: Same.
1270         * ipa-profile.c: Same.
1271         * ipa-prop.c: Same.
1272         * ipa-prop.h: Same.
1273         * ira.c: Same.
1274         * omp-low.c: Same.
1275         * reg-stack.c: Same.
1276         * regcprop.c: Same.
1277         * reorg.c: Same.
1278         * rtl.h: Same.
1279         * sbitmap.h: Same.
1280         * tree-eh.c: Same.
1281         * tree-inline.c: Same.
1282         * tree-sra.c: Same.
1283         * tree-ssa-dom.c: Same.
1284         * tree-ssa-loop-ivopts.c: Same.
1285         * tree-ssa-structalias.c: Same.
1286         * tree-ssa-tail-merge.c: Same.
1287         * tree-ssa-ter.c: Same.
1288         * tree-ssa-threadupdate.c: Same.
1289         * tree-ssa-uninit.c: Same.
1290         * tree-ssanames.c: Same.
1291         * tree-vect-loop-manip.c: Same.
1292         * tree-vrp.c: Same.
1293         * tree.c: Same.
1294         * valtrack.c: Same.
1295         * vec.h: Same.
1296
1297 2015-07-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
1298
1299         PR middle-end/66726
1300         * tree-ssa-phiopt.c(factor_out_conditional_conversion): New function.
1301         tree_ssa_phiopt_worker): Call it.
1302
1303 2015-07-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
1304
1305         * cse.c (cse_insn): Calculate src_eqv for ZERO_EXTRACT.
1306         * emit-rtl.c (set_for_reg_notes): Allow ZERO_EXTRACT to set
1307         REG_EQUAL note.
1308
1309 2015-07-11  Marek Polacek  <polacek@redhat.com>
1310
1311         PR middle-end/66353
1312         * basic-block.h (has_abnormal_call_or_eh_pred_edge_p): New function.
1313         * ira-lives.c (bb_has_abnormal_call_pred): Remove function.
1314         (process_bb_node_lives): Call has_abnormal_call_or_eh_pred_edge_p
1315         rather than bb_has_abnormal_call_pred.
1316         * lra-lives.c (bb_has_abnormal_call_pred): Remove function.
1317         (process_bb_lives): Call has_abnormal_call_or_eh_pred_edge_p
1318         rather than bb_has_abnormal_call_pred.
1319
1320 2015-07-10  Anatoly Sokolov  <aesok@post.ru>
1321
1322         * config/v850/v850.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
1323         REG_OK_FOR_BASE_P_STRICT, REG_OK_FOR_INDEX_P_STRICT, STRICT,
1324         RTX_OK_FOR_BASE_P, GO_IF_LEGITIMATE_ADDRESS): Remove macros.
1325         * config/v850/v850.c (v850_reg_ok_for_base_, v850_rtx_ok_for_base_p,
1326         v850_legitimate_address_p): New functions.
1327         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
1328
1329 2015-07-10  H.J. Lu  <hongjiu.lu@intel.com>
1330
1331         PR target/66819
1332         * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow
1333         indirect sibcall with register arguments if register available
1334         for argument passing.
1335         (init_cumulative_args): Set cfun->machine->arg_reg_available
1336         to (cum->nregs > 0) or to true if function has a variable
1337         argument list.
1338         (function_arg_advance_32): Set cfun->machine->arg_reg_available
1339         to false if cum->nregs <= 0.
1340         * config/i386/i386.h (machine_function): Add arg_reg_available.
1341
1342 2015-07-10  Uros Bizjak  <ubizjak@gmail.com>
1343
1344         * config/i386/sse.md (movdi_to_sse): Use gen_lowpart
1345         and gen_higpart instead of gen_rtx_SUBREG.
1346         * config/i386/i386.md
1347         (floatdi<X87MODEF:mode>2_i387_with_xmm splitter): Ditto.
1348         (read-modify peephole2): Use gen_lowpart instead of
1349         gen_rtx_SUBREG for operand 5.
1350
1351 2015-07-10  Andrew MacLeod  <amacleod@redhat.com>
1352
1353         * config/tilepro/gen-mul-tables.cc (main): Change include list for
1354         generated files.
1355         * config/tilepro/mul-tables.c: Regenerate.
1356         * config/tilegx/mul-tables.c: Regenerate.
1357
1358 2015-07-10  Richard Biener  <rguenther@suse.de>
1359
1360         * fold-const.c (distribute_bit_expr): Remove.
1361         (fold_binary_loc): Move simplifying (A & C1) + (B & C2)
1362         to (A & C1) | (B & C2), distributing (A & B) | (A & C)
1363         to A & (B | C) and simplifying A << C1 << C2 to ...
1364         * match.pd: ... patterns here.
1365
1366 2015-07-10  Jiong Wang  <jiong.wang@arm.com>
1367
1368         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
1369         Mark mem as READONLY and NOTRAP for PIC symbol.
1370
1371 2015-07-10  Andrew MacLeod  <amacleod@redhat.com>
1372
1373         * gimple-predict.h: New file.
1374         (gimple_predict_predictor, gimple_predict_set_predictor,
1375         gimple_predict_outcome, gimple_predict_set_outcome,
1376         gimple_build_predict): Relocate here.
1377         * gimple.h (gimple_predict_predictor, gimple_predict_set_predictor,
1378         gimple_predict_outcome, gimple_predict_set_outcome): Move to
1379         gimple-predict.h.
1380         * gimple.c (gimple_build_predict): Move to gimple-predict.h
1381         * basic-block.h: Don't include cfghooks.h.
1382         * backend.h: Don't include predict.h.
1383         * cfghooks.h: Include predict.h.
1384         * gimple-pretty-print.c: Include gimple-predict.h.
1385         * gimplify.c: Likwise.
1386         * predict.c: Adjust includes.
1387         * tree-inline.c: Likewise.
1388         * asan.c: Likewise.
1389         * auto-inc-dec.c: Likewise.
1390         * auto-profile.c: Likewise.
1391         * bb-reorder.c: Likewise.
1392         * builtins.c: Likewise.
1393         * caller-save.c: Likewise.
1394         * calls.c: Likewise.
1395         * cfganal.c: Likewise.
1396         * cfgbuild.c: Likewise.
1397         * cfg.c: Likewise.
1398         * cfgcleanup.c: Likewise.
1399         * cfgexpand.c: Likewise.
1400         * cfghooks.c: Likewise.
1401         * cfgloopanal.c: Likewise.
1402         * cfgloop.c: Likewise.
1403         * cfgloopmanip.c: Likewise.
1404         * cfgrtl.c: Likewise.
1405         * cgraph.c: Likewise.
1406         * cgraphunit.c: Likewise.
1407         * combine.c: Likewise.
1408         * cprop.c: Likewise.
1409         * cse.c: Likewise.
1410         * dce.c: Likewise.
1411         * dojump.c: Likewise.
1412         * dse.c: Likewise.
1413         * except.c: Likewise.
1414         * expmed.c: Likewise.
1415         * expr.c: Likewise.
1416         * final.c: Likewise.
1417         * fold-const.c: Likewise.
1418         * function.c: Likewise.
1419         * fwprop.c: Likewise.
1420         * gcc-plugin.h: Likewise.
1421         * gcse.c: Likewise.
1422         * genattrtab.c: Likewise.
1423         * genemit.c: Likewise.
1424         * gengtype.c: Likewise.
1425         * genopinit.c: Likewise.
1426         * genoutput.c: Likewise.
1427         * genpreds.c: Likewise.
1428         * genrecog.c: Likewise.
1429         * gimple-fold.c: Likewise.
1430         * gimple-iterator.c: Likewise.
1431         * gimple-ssa-isolate-paths.c: Likewise.
1432         * gimple-ssa-strength-reduction.c: Likewise.
1433         * graph.c: Likewise.
1434         * graphite-blocking.c: Likewise.
1435         * graphite.c: Likewise.
1436         * graphite-dependences.c: Likewise.
1437         * graphite-interchange.c: Likewise.
1438         * graphite-isl-ast-to-gimple.c: Likewise.
1439         * graphite-optimize-isl.c: Likewise.
1440         * graphite-poly.c: Likewise.
1441         * graphite-scop-detection.c: Likewise.
1442         * graphite-sese-to-poly.c: Likewise.
1443         * haifa-sched.c: Likewise.
1444         * ifcvt.c: Likewise.
1445         * internal-fn.c: Likewise.
1446         * ipa-cp.c: Likewise.
1447         * ipa-profile.c: Likewise.
1448         * ipa-split.c: Likewise.
1449         * ipa-utils.c: Likewise.
1450         * ira-build.c: Likewise.
1451         * ira-color.c: Likewise.
1452         * ira-conflicts.c: Likewise.
1453         * ira-costs.c: Likewise.
1454         * ira-emit.c: Likewise.
1455         * ira-lives.c: Likewise.
1456         * jump.c: Likewise.
1457         * loop-doloop.c: Likewise.
1458         * loop-init.c: Likewise.
1459         * loop-invariant.c: Likewise.
1460         * loop-unroll.c: Likewise.
1461         * lower-subreg.c: Likewise.
1462         * lra-assigns.c: Likewise.
1463         * lra.c: Likewise.
1464         * lra-coalesce.c: Likewise.
1465         * lra-constraints.c: Likewise.
1466         * lra-lives.c: Likewise.
1467         * lto-cgraph.c: Likewise.
1468         * lto-streamer-in.c: Likewise.
1469         * mode-switching.c: Likewise.
1470         * modulo-sched.c: Likewise.
1471         * omp-low.c: Likewise.
1472         * optabs.c: Likewise.
1473         * passes.c: Likewise.
1474         * postreload.c: Likewise.
1475         * postreload-gcse.c: Likewise.
1476         * profile.c: Likewise.
1477         * recog.c: Likewise.
1478         * regstat.c: Likewise.
1479         * reload1.c: Likewise.
1480         * reorg.c: Likewise.
1481         * rtlanal.c: Likewise.
1482         * sched-ebb.c: Likewise.
1483         * sel-sched-ir.c: Likewise.
1484         * sese.c: Likewise.
1485         * shrink-wrap.c: Likewise.
1486         * simplify-rtx.c: Likewise.
1487         * stmt.c: Likewise.
1488         * store-motion.c: Likewise.
1489         * tracer.c: Likewise.
1490         * trans-mem.c: Likewise.
1491         * tree-call-cdce.c: Likewise.
1492         * tree-cfg.c: Likewise.
1493         * tree-cfgcleanup.c: Likewise.
1494         * tree-chkp.c: Likewise.
1495         * tree-complex.c: Likewise.
1496         * tree-eh.c: Likewise.
1497         * tree-if-conv.c: Likewise.
1498         * tree-loop-distribution.c: Likewise.
1499         * tree-outof-ssa.c: Likewise.
1500         * tree-parloops.c: Likewise.
1501         * tree-predcom.c: Likewise.
1502         * tree-pretty-print.c: Likewise.
1503         * tree-profile.c: Likewise.
1504         * tree-sra.c: Likewise.
1505         * tree-ssa.c: Likewise.
1506         * tree-ssa-coalesce.c: Likewise.
1507         * tree-ssa-dce.c: Likewise.
1508         * tree-ssa-dom.c: Likewise.
1509         * tree-ssa-forwprop.c: Likewise.
1510         * tree-ssa-ifcombine.c: Likewise.
1511         * tree-ssa-loop-ch.c: Likewise.
1512         * tree-ssa-loop-im.c: Likewise.
1513         * tree-ssa-loop-ivcanon.c: Likewise.
1514         * tree-ssa-loop-ivopts.c: Likewise.
1515         * tree-ssa-loop-manip.c: Likewise.
1516         * tree-ssa-loop-prefetch.c: Likewise.
1517         * tree-ssa-loop-unswitch.c: Likewise.
1518         * tree-ssa-math-opts.c: Likewise.
1519         * tree-ssa-phiopt.c: Likewise.
1520         * tree-ssa-pre.c: Likewise.
1521         * tree-ssa-reassoc.c: Likewise.
1522         * tree-ssa-sink.c: Likewise.
1523         * tree-ssa-tail-merge.c: Likewise.
1524         * tree-ssa-threadedge.c: Likewise.
1525         * tree-ssa-threadupdate.c: Likewise.
1526         * tree-switch-conversion.c: Likewise.
1527         * tree-tailcall.c: Likewise.
1528         * tree-vect-data-refs.c: Likewise.
1529         * tree-vect-loop.c: Likewise.
1530         * tree-vect-loop-manip.c: Likewise.
1531         * tree-vectorizer.c: Likewise.
1532         * tree-vrp.c: Likewise.
1533         * ubsan.c: Likewise.
1534         * value-prof.c: Likewise.
1535         * varasm.c: Likewise.
1536         * var-tracking.c: Likewise.
1537         * config/aarch64/aarch64-builtins.c: Likewise.
1538         * config/aarch64/aarch64.c: Likewise.
1539         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
1540         * config/alpha/alpha.c: Likewise.
1541         * config/arc/arc.c: Likewise.
1542         * config/arm/arm.c: Likewise.
1543         * config/avr/avr.c: Likewise.
1544         * config/bfin/bfin.c: Likewise.
1545         * config/c6x/c6x.c: Likewise.
1546         * config/cr16/cr16.c: Likewise.
1547         * config/cris/cris.c: Likewise.
1548         * config/darwin.c: Likewise.
1549         * config/darwin-c.c: Likewise.
1550         * config/epiphany/epiphany.c: Likewise.
1551         * config/epiphany/mode-switch-use.c: Likewise.
1552         * config/epiphany/resolve-sw-modes.c: Likewise.
1553         * config/fr30/fr30.c: Likewise.
1554         * config/frv/frv.c: Likewise.
1555         * config/ft32/ft32.c: Likewise.
1556         * config/h8300/h8300.c: Likewise.
1557         * config/i386/i386.c: Likewise.
1558         * config/i386/winnt.c: Likewise.
1559         * config/ia64/ia64.c: Likewise.
1560         * config/iq2000/iq2000.c: Likewise.
1561         * config/lm32/lm32.c: Likewise.
1562         * config/m32c/m32c.c: Likewise.
1563         * config/m32r/m32r.c: Likewise.
1564         * config/m68k/m68k.c: Likewise.
1565         * config/mcore/mcore.c: Likewise.
1566         * config/mep/mep.c: Likewise.
1567         * config/microblaze/microblaze.c: Likewise.
1568         * config/mips/mips.c: Likewise.
1569         * config/mmix/mmix.c: Likewise.
1570         * config/mn10300/mn10300.c: Likewise.
1571         * config/moxie/moxie.c: Likewise.
1572         * config/msp430/msp430.c: Likewise.
1573         * config/nds32/nds32.c: Likewise.
1574         * config/nds32/nds32-cost.c: Likewise.
1575         * config/nds32/nds32-fp-as-gp.c: Likewise.
1576         * config/nds32/nds32-intrinsic.c: Likewise.
1577         * config/nds32/nds32-isr.c: Likewise.
1578         * config/nds32/nds32-md-auxiliary.c: Likewise.
1579         * config/nds32/nds32-memory-manipulation.c: Likewise.
1580         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
1581         * config/nds32/nds32-predicates.c: Likewise.
1582         * config/nios2/nios2.c: Likewise.
1583         * config/nvptx/nvptx.c: Likewise.
1584         * config/pa/pa.c: Likewise.
1585         * config/pdp11/pdp11.c: Likewise.
1586         * config/rl78/rl78.c: Likewise.
1587         * config/rs6000/rs6000.c: Likewise.
1588         * config/rx/rx.c: Likewise.
1589         * config/s390/s390.c: Likewise.
1590         * config/sh/sh.c: Likewise.
1591         * config/sh/sh-mem.cc: Likewise.
1592         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
1593         * config/sh/sh_treg_combine.cc: Likewise.
1594         * config/sparc/sparc.c: Likewise.
1595         * config/spu/spu.c: Likewise.
1596         * config/stormy16/stormy16.c: Likewise.
1597         * config/tilegx/tilegx.c: Likewise.
1598         * config/tilepro/tilepro.c: Likewise.
1599         * config/v850/v850.c: Likewise.
1600         * config/vax/vax.c: Likewise.
1601         * config/visium/visium.c: Likewise.
1602         * config/xtensa/xtensa.c: Likewise.
1603
1604 2015-07-10  Richard Biener  <rguenther@suse.de>
1605
1606         * genmatch.c (dt_node::gen_kids_1): Fix indenting of case labels.
1607         (decision_tree::gen_gimple): Likewise.
1608         (decision_tree::gen_generic): Likewise.
1609
1610 2015-07-10  Uros Bizjak  <ubizjak@gmail.com>
1611
1612         PR target/66813
1613         * config/i386/i386.c (ix86_md_asm_adjust): Emit movstrictqi
1614         sequence for TARGET_ZERO_EXTEND_WITH_AND targets.
1615
1616 2015-07-10  Jakub Jelinek  <jakub@redhat.com>
1617
1618         PR middle-end/66820
1619         * gimplify.c (maybe_fold_stmt): Don't fold in ORT_PARALLEL
1620         or ORT_TASK contexts.
1621         * omp-low.c (lower_omp): Call fold_stmt even if taskreg_nesting_level
1622         is non-zero.
1623
1624 2015-07-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1625
1626         * expr.c (expand_cond_expr_using_cmove): Fix typos in comment
1627         above function.
1628
1629 2015-07-10  Tom de Vries  <tom@codesourcery.com>
1630
1631         * tree-parloops.c (try_transform_to_exit_first_loop_alt): If not found,
1632         insert nit + 1 bound.
1633
1634 2015-07-10  Richard Biener  <rguenther@suse.de>
1635
1636         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p):
1637         Use ifcvt_could_trap_p also when not flag_tree_loop_if_convert_stores.
1638         (if_convertible_loop_p_1): For this always compute bb predicates.
1639         (if_convertible_loop_p): And free them.
1640
1641 2015-07-10  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1642
1643         * ipa-icf.c (sem_item_optimizer::do_congruence_step): Fix typo
1644         in dump message.
1645
1646 2015-07-10  Richard Biener  <rguenther@suse.de>
1647
1648         PR tree-optimization/66823
1649         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Fix
1650         inverted predicate.
1651
1652 2015-07-09  Steve Ellcey  <sellcey@imgtec.com>
1653
1654         * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): Update
1655         to handle mips[32|64]r3 and mips[32|64]r5.
1656
1657 2015-07-09  Jakub Jelinek  <jakub@redhat.com>
1658
1659         PR middle-end/66633
1660         * tree-nested.c (get_static_chain): Or in a flag into
1661         info->static_chain_added.
1662         (get_frame_field, get_nonlocal_debug_decl): Likewise.
1663         (convert_nonlocal_omp_clauses, convert_local_omp_clauses): Revert
1664         2015-07-01 changes.
1665         (convert_tramp_reference_stmt): If a frame_decl or chain_decl
1666         is needed newly inside of GIMPLE_OMP_{PARALLEL,TASK,TARGET} body,
1667         add it to clauses.
1668
1669         PR tree-optimization/66718
1670         * tree-vect-stmts.c (struct simd_call_arg_info): Add simd_lane_linear
1671         field.
1672         (vect_simd_lane_linear): New function.
1673         (vectorizable_simd_clone_call): Support using linear arguments for
1674         addresses of arrays elements indexed by GOMP_SIMD_LANE result.
1675
1676 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
1677
1678         PR target/66821
1679         * config/i386/i386.c (iamcu_cost): Adjust variable shift costs.
1680
1681 2015-07-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
1682
1683         * config/rs6000/rs6000-protos.h (rs6000_secondary_reload_memory):
1684         Use machine mode, not enum machine_mode in the prototype.
1685
1686         * config/rs6000/rs6000.h (FLOAT128_IEEE_P): New helper macros to
1687         classify 128-bit floating point support.
1688         (FLOAT128_IBM_P): Likewise.
1689         (FLOAT128_VECTOR_P): Likewise.
1690         (FLOAT128_2REG_P): Likewise.
1691         (SCALAR_FLOAT_MODE_NOT_VECTOR_P): Likewise.
1692         (SLOW_UNALIGNED_ACCESS): Add IEEE 128-bit floating point support.
1693         (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
1694         (HARD_REGNO_CALL_PART_CLOBBERED): Likewise.
1695
1696         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Drop
1697         tests against TFmode/TDmode, since those modes do not use VSX
1698         addresses.
1699         (rs6000_hard_regno_mode_ok): Add IEEE 128-bit floating point
1700         support.
1701         (rs6000_init_hard_regno_mode_ok): Use new helper macros instead of
1702         tests against TFmode, etc.
1703         (invalid_e500_subreg): Add tests against IFmode/KFmode.
1704         (reg_offset_addressing_ok_p): Likewise.
1705         (rs6000_legitimate_offset_address_p): Likewise.
1706         (rs6000_legitimize_address): Likewise.
1707         (rs6000_legitimize_reload_address): Likewise.
1708         (rs6000_legitimate_address_p): Clean up tests against TFmode and
1709         TDmode to use the new helper macros, which will include IFmode and
1710         KFmode.
1711         (rs6000_emit_move): Likewise.
1712         (rs6000_darwin64_record_arg_recurse): Likewise.
1713         (print_operand): Likewise.
1714         (rs6000_member_type_forces_blk): Treat IEEE 128-bit floating point
1715         that uses a single vector register as a vector and not as a
1716         floating point register in terms of the calling sequence.
1717         (rs6000_discover_homogeneous_aggregate): Likewise.
1718         (rs6000_return_in_memory): Likewise.
1719         (init_cumulative_args): Likewise.
1720         (rs6000_function_arg_boundary): Likewise.
1721         (rs6000_function_arg_advance_1): Likewise.
1722         (rs6000_function_arg): Likewise.
1723         (rs6000_pass_by_reference): Likewise.
1724         (rs6000_gimplify_va_arg): Likewise.
1725         (rs6000_secondary_reload_memory): Use machine_mode not enum
1726         machine mode.
1727         (rs6000_split_multireg_move): Use new helper macros.
1728         (spe_func_has_64bit_regs_p): Likewise.
1729         (rs6000_output_function_epilogue): Add IFmode/KFmode support.
1730         (output_toc): Use new helper macros.
1731         (rs6000_register_move_cost): Likewise.
1732         (rs6000_function_value): Add IEEE 128-bit floating point calling
1733         sequence support.
1734         (rs6000_libcall_value): Likewise.
1735         (rs6000_scalar_mode_supported_p): Add support for IEEE 128-bit
1736         floating point support.
1737         (rs6000_vector_mode_supported_p): Likewise.
1738
1739 2015-07-09  Vladimir Makarov  <vmakarov@redhat.com>
1740
1741         PR rtl-optimization/66782
1742         * lra-int.h (struct lra_insn_recog_data): Add comment about
1743         clobbered hard regs for arg_hard_regs.
1744         * lra.c (lra_set_insn_recog_data): Add clobbered hard regs.
1745         * lra-lives.c (process_bb_lives): Process clobbered hard regs.
1746         Add condition for processing used hard regs.
1747         * lra-constraints.c (update_ebb_live_info, inherit_in_ebb):
1748         Process clobbered hard regs.
1749
1750 2015-07-09  Michael Matz  <matz@suse.de>
1751
1752         * genmatch.c (fprintf_indent): New function.
1753         (operand::gen_transform): Add indent parameter.
1754         (expr::gen_transform, c_expr::gen_transform,
1755         capture::gen_transform): Ditto and use fprintf_indent.
1756         (dt_node::gen, dt_node::gen_kids, dt_node::gen_kids_1): Ditto.
1757         (dt_operand::gen, dt_operand::gen_predicate,
1758         dt_operand::gen_match_op, dt_operand::gen_gimple_expr,
1759         dt_operand::gen_generic_expr, dt_simplify::gen): Ditto.
1760         (decision_tree::gen_gimple): Adjust calls and indent generated
1761         code.
1762         (decision_tree::gen_generic): Ditto.
1763         (write_predicate): Ditto.
1764
1765 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
1766
1767         PR target/66814
1768         * config/i386/predicates.md (nonimmediate_gr_operand): New predicate.
1769         * config/i386/i386.md (not peephole2): Use nonimmediate_gr_operand.
1770         (varous peephole2s): Use {GENERAL,SSE,MMX}_REGNO_P instead of
1771         {GENERAL,SSE,MMX}_REG_P where appropriate.
1772
1773 2015-07-09  Andrew MacLeod  <amacleod@redhat.com>
1774
1775         * lto-streamer.h: Don't include target.h and alloc-pool.h.
1776         * builtins.c: Adjust includes.
1777         * gimple.c: Likewise.
1778         * ipa-icf.c: Likewise.
1779         * lto-opts.c: Likewise.
1780         * ipa-reference.c: Likewise.
1781         * lto-section-out.c: Likewise.
1782         * lto-streamer-in.c: Likewise.
1783         * lto-streamer-out.c: Likewise.
1784         * opts-global.c: Likewise.
1785         * symtab.c: Likewise.
1786         * tree-chkp.c: Likewise.
1787         * tree-ssa-live.c: Likewise.
1788         * tree-streamer-in.c: Likewise.
1789         * tree-streamer-out.c: Likewise.
1790         * config/darwin.c: Likewise.
1791         * config/i386/winnt.c: Likewise.
1792
1793 2015-07-09  Richard Biener  <rguenther@suse.de>
1794
1795         * genmatch.c (struct expr): Add force_single_use flag.
1796         (expr::expr): Add copy constructor.
1797         (capture_info::walk_match): Gather force_single_use captures.
1798         (expr::gen_transform): Use possibly NULLified sequence.
1799         (dt_simplify::gen): Apply single-use restrictions by NULLifying
1800         seq if any constrained expr is not single-use.
1801         (parser::parse_expr): Refactor to allow multiple flags.  Handle
1802         's' flag to force an expression have a single-use if the pattern
1803         simplifies to more than one statement.
1804         * match.pd: Convert most single_use conditionals to :s flags.
1805
1806 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
1807
1808         * config/i386/iamcu.h (ASM_OUTPUT_ALIGNED_BSS): New.
1809         (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
1810         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
1811
1812 2015-07-09  Andrew MacLeod  <amacleod@redhat.com>
1813
1814         * flags.h: Don't include flag-types.h or options.h.
1815         * opts-common.c: Adjust includes.
1816         * opts-global.c: Likewise.
1817         * common/config/epiphany/epiphany-common.c: Likewise.
1818
1819 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
1820
1821         PR target/66818
1822         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Defined to 32
1823         for IA MCU.
1824
1825 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
1826
1827         PR target/66817
1828         * config/i386/i386.c (ix86_return_in_memory): Return true
1829         if int_size_in_bytes returns negative for IA MCU.
1830
1831 2015-07-09  Marek Polacek  <polacek@redhat.com>
1832
1833         PR tree-optimization/66718
1834         * Makefile.in (OBJS): Add gimple-laddress.o.
1835         * passes.def: Schedule pass_laddress.
1836         * timevar.def (DEFTIMEVAR): Add TV_GIMPLE_LADDRESS.
1837         * tree-pass.h (make_pass_laddress): Declare.
1838         * gimple-laddress.c: New file.
1839
1840 2015-07-09  Richard Biener  <rguenther@suse.de>
1841
1842         * toplev.c (compile_file): Reset maximum_field_alignment after parsing.
1843
1844 2015-07-09  Richard Biener  <rguenther@suse.de>
1845
1846         PR tree-optimization/66807
1847         * tree-chkp-opt.c (chkp_opt_fini): Free post dominator info.
1848
1849 2015-07-08  Kito Cheng  <kito.cheng@gmail.com>
1850
1851         * function.c (stack_protect_epilogue): Use if rather than switch for
1852         check targetm.have_stack_protect_test.
1853
1854 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1855
1856         * defaults.h: Provide default for WORD_REGISTER_OPERATIONS.
1857         * config/alpha/alpha.h: Define WORD_REGISTER_OPERATIONS to 1.
1858         * config/arc/arc.h: Likewise.
1859         * config/arm/arm.h: Likewise.
1860         * config/bfin/bfin.h: Likewise.
1861         * config/epiphany/epiphany.h: Likewise.
1862         * config/frv/frv.h: Likewise.
1863         * config/ia64/ia64.h: Likewise.
1864         * config/iq2000/iq2000.h: Likewise.
1865         * config/lm32/lm32.h: Likewise.
1866         * config/m32r/m32r.h: Likewise.
1867         * config/mcore/mcore.h: Likewise.
1868         * config/mep/mep.h: Likewise.
1869         * config/microblaze/microblaze.h: Likewise.
1870         * config/mips/mips.h: Likewise.
1871         * config/mmix/mmix.h: Likewise.
1872         * config/mn10300/mn10300.h: Likewise.
1873         * config/nds32/nds32.h: Likewise.
1874         * config/nios2/nios2.h: Likewise.
1875         * config/pa/pa.h: Likewise.
1876         * config/rl78/rl78.h: Likewise.
1877         * config/sh/sh.h: Likewise.
1878         * config/sparc/sparc.h: Likewise.
1879         * config/stormy16/stormy16.h: Likewise.
1880         * config/tilegx/tilegx.h: Likewise.
1881         * config/tilepro/tilepro.h: Likewise.
1882         * config/v850/v850.h: Likewise.
1883         * config/xtensa/xtensa.h: Likewise.
1884         * doc/tm.texi: Regenerate.
1885         * doc/tm.texi.in: Adjust.
1886         * combine.c (simplify_set): Likewise.
1887         (simplify_comparison): Likewise.
1888         * expr.c (store_constructor): Likewise.
1889         * internal-fn.c (expand_arith_overflow): Likewise.
1890         * reload.c (push_reload): Likewise.
1891         (find_reloads): Likewise.
1892         (find_reloads_subreg_address): Likewise.
1893         * reload1.c (eliminate_regs_1): Likewise.
1894         * rtlanal.c (nonzero_bits1): Likewise.
1895         (num_sign_bit_copies1): Likewise.
1896         * simplify-rtx.c (simplify_truncation): Likewise.
1897
1898 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1899
1900         * auto-inc-dec.c (pass_inc_dec::execute): Don't check the value
1901         of AUTO_INC_DEC with the preprocessor.
1902         * combine.c (combine_instructions): Likewise.
1903         (can_combine_p): Likewise.
1904         (try_combine): Likewise.
1905         * emit-rtl.c (try_split): Likewise.
1906         * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
1907         * lower-subreg.c (resolve_simple_move): Likewise.
1908         * lra.c (update_inc_notes): Likewise.
1909         * recog.c (asm_operand_ok): Likewise.
1910         (constrain_operands): Likewise.
1911         * regrename.c (scan_rtx_address): Likewise.
1912         * reload.c (update_auto_inc_notes): Likewise.
1913         (reg_inc_found_and_valid_p): Likewise.
1914         * reload1.c (reload): Likewise.
1915         (emit_input_reload_insns): Likewise.
1916         (delete_output_reload): Likewise.
1917         * sched-deps.c (init_insn_reg_pressure_info): Likewise.
1918         * valtrack.c (cleanup_auto_inc_dec): Likewise.
1919
1920 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1921
1922         * rtl.h: Always define AUTO_INC_DEC.
1923         * auto-inc-dec.c (pass_inc_dec::execute): Adjust.
1924         * combine.c (combine_instructions): Likewise.
1925         (can_combine_p): Likewise.
1926         (try_combine): Likewise.
1927         * emit-rtl.c (try_split): Likewise.
1928         * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
1929         * lower-subreg.c (resolve_simple_move): Likewise.
1930         * lra.c (update_inc_notes): Likewise.
1931         * recog.c (asm_operand_ok): Likewise.
1932         (constrain_operands): Likewise.
1933         * regrename.c (scan_rtx_address): Likewise.
1934         * reload.c (update_auto_inc_notes): Likewise.
1935         (find_equiv_reg): Likewise.
1936         * reload1.c (reload): Likewise.
1937         (reload_as_needed): Likewise.
1938         (choose_reload_regs): Likewise.
1939         (emit_input_reload_insns): Likewise.
1940         (delete_output_reload): Likewise.
1941         * sched-deps.c (init_insn_reg_pressure_info): Likewise.
1942         * valtrack.c (cleanup_auto_inc_dec): Likewise.
1943
1944 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1945
1946         * combine.c (can_combine_def_p): Don't check the value of
1947         HARD_FRAME_POINTER_IS_FRAME_POINTER with the preprocessor.
1948         (combinable_i3pat): Likewise.
1949         (mark_used_regs_combine): Likewise.
1950         * regrename.c (rename_chains): Likewise.
1951         * reload.c (find_reloads_address): Likewise.
1952         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
1953
1954 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1955
1956         * combine.c (update_rsp_from_reg_equal): Don't check if
1957         SHORT_IMMEDIATES_SIGN_EXTEND is defined.
1958         (reg_nonzero_bits_for_combine): Likewise.
1959         * config/alpha/alpha.h: Define SHORT_IMMEDIATES_SIGN_EXTEND to
1960         1.
1961         * config/frv/frv.h: Likewise.
1962         * config/lm32/lm32.h: Likewise.
1963         * config/mep/mep.h: Likewise.
1964         * config/mips/mips.h: Likewise.
1965         * config/rs6000/rs6000.h: Likewise.
1966         * config/sh/sh.h: Likewise.
1967         * config/tilegx/tilegx.h (enum reg_class): Likewise.
1968         * config/tilepro/tilepro.h: Likewise.
1969         * defaults.h: Add default for SHORT_IMMEDIATES_SIGN_EXTEND.
1970         * doc/tm.texi: Regenerate.
1971         * doc/tm.texi.in: Adjust.
1972         * rtlanal.c (nonzero_bits1): Likewise.
1973
1974 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1975
1976         * combine.c (do_SUBST_MODE): Don't check the value of HAVE_cc0
1977         with the preprocessor.
1978         (combine_instructions): Likewise.
1979         (try_combine): Likewise.
1980         (subst): Likewise.
1981         (distribute_notes): Likewise.
1982
1983 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1984
1985         * combine.c (try_combine): Don't check if LOAD_EXTEND_OP is
1986         defined.
1987         (simplify_set): Likewise.
1988         * cse.c (cse_insn): Likewise.
1989         * fold-const.c (fold_single_bit_test): Likewise.
1990         (fold_unary_loc): Likewise.
1991         * postreload.c (reload_cse_simplify_set): Likewise.
1992         (reload_cse_simplify_operands): Likewise.
1993
1994 2015-07-08  Jiong Wang  <jiong.wang@arm.com>
1995
1996         * config/aarch64/aarch64.c (aarch64_unspec_may_trap_p): New function.
1997         (TARGET_UNSPEC_MAY_TRAP_P): Define as aarch64_unspec_may_trap_p.
1998
1999 2015-07-08  H.J. Lu  <hongjiu.lu@intel.com>
2000
2001         PR target/66746
2002         * config/i386/x86intrin.h: Include <adxintrin.h> even if
2003         __iamcu__ is defined.
2004
2005 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
2006
2007         * config/i386/predicates.md (general_reg_operand): Use GENERAL_REGNO_P.
2008
2009 2015-07-08  Iain Sandoe  <iain@codesourcery.com>
2010
2011         PR target/66523
2012         * config/darwin.c (darwin_mark_decl_preserved): Exclude 'L' label
2013         names from preservation.
2014
2015 2015-07-08  H.J. Lu  <hongjiu.lu@intel.com>
2016
2017         PR target/66806
2018         * config/i386/i386.c (type_natural_mode): Don't warn vector ABI
2019         change for IAMCU.
2020         (function_arg_advance_32): Don't pass vectors in registers for
2021         IAMCU.
2022         (function_arg_32): Likewise.
2023         (ix86_return_in_memory): Don't return vectors in registers for
2024         IAMCU.
2025
2026 2015-07-08  Vladimir Makarov  <vmakarov@redhat.com>
2027
2028         PR middle-end/66334
2029         * ira-lives.c (process_bb_node_lives): Make conflicts with PIC
2030         hard regno live at the start of BB with incoming abnormal edges.
2031         * lra-lives.c (process_bb_lives): Ditto.
2032
2033 2015-07-08  Thomas Schwinge  <thomas@codesourcery.com>
2034
2035         PR libgomp/65099
2036         * config/nvptx/mkoffload.c (main): Create an offload image only in
2037         64-bit configurations.
2038
2039 2015-07-08  Martin Liska  <mliska@suse.cz>
2040
2041         PR bootstrap/66744
2042         * tree-sra.c (create_access_1): Call ctor without brackets.
2043         (create_artificial_child_access): Likewise.
2044
2045 2015-07-08  Richard Biener  <rguenther@suse.de>
2046
2047         PR tree-optimization/66793
2048         * gimple-ssa-isolate-paths.c (insert_trap_and_remove_trailing_statemen):
2049         Properly split the block after stmts ending it.
2050
2051 2015-07-08  Richard Biener  <rguenther@suse.de>
2052
2053         PR tree-optimization/66794
2054         * passes.c (execute_function_todo): Assert that post-dominators
2055         are not computed.
2056         * gimple-ssa-isolate-paths.c (gimple_ssa_isolate_erroneous_paths):
2057         Free post-dominators.
2058
2059 2015-07-08  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2060
2061         * config/s390/s390.c (s390_init_frame_layout): Replace assertion
2062         with early exit.
2063
2064 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
2065
2066         * config/i386/i386.md (*jcc_bt<mode>): Only allow const_int values
2067         more than or equal 8 and less than 32 when optimizing for size.
2068
2069 2015-07-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2070
2071         * config/arm/arm.c (arm_new_rtx_costs): Initialise cost to
2072         COSTS_N_INSNS (1) and increment it appropriately throughout the
2073         function.
2074
2075 2015-07-08  Richard Biener  <rguenther@suse.de>
2076
2077         * fold-const.c (fold_widened_comparison): Fix inverted comparison.
2078
2079 2015-07-08  Alan Modra  <amodra@gmail.com>
2080
2081         * target.def (rtx_costs): Remove "code" param, add "mode".
2082         * rtl.h (rtx_cost, get_full_rtx_cost): Update prototype.
2083         (set_src_cost, get_full_set_src_cost): Likewise.  Move later in file.
2084         (set_rtx_cost, get_full_set_rtx_cost): Move later in file.
2085         * rtlanal.c (rtx_cost): Add "mode" parameter.  Update targetm.rtx_costs
2086         call.  Track mode when given in rtx.
2087         (get_full_rtx_cost): Add "mode" parameter.  Update rtx_cost calls.
2088         (default_address_cost): Pass Pmode to rtx_cost.
2089         (insn_rtx_cost): Pass dest mode of set to set_src_cost.
2090         * cprop.c (try_replace_reg): Ensure set_rtx_cost is not called
2091         with NULL set.
2092         * cse.c (COST, COST_IN): Add MODE param.  Update all uses.
2093         (notreg_cost): Add mode param.  Use it.
2094         * gcse.c (want_to_gcse_p): Delete forward declaration.  Add
2095         mode param and pass to set_src_cost.  Update all calls.
2096         (hash_scan_set): Formatting.
2097         * hooks.c (hook_bool_rtx_int_int_int_intp_bool_false): Delete.
2098         (hook_bool_rtx_mode_int_int_intp_bool_false): New function.
2099         * hooks.h: Ditto.
2100         * expmed.c (init_expmed_one_conv, init_expmed_one_mode,
2101         init_expmed, expand_mult, mult_by_coeff_cost, expand_smod_pow2,
2102         emit_store_flag): Update set_src_cost and rtx_cost calls.
2103         * auto-inc-dec.c (attempt_change): Likewise.
2104         * calls.c (precompute_register_parameters): Likewise.
2105         * combine.c (expand_compound_operation, make_extraction,
2106         force_to_mode, distribute_and_simplify_rtx): Likewise.
2107         * dojump.c (prefer_and_bit_test): Likewise.
2108         * dse.c (find_shift_sequence): Likewise.
2109         * expr.c (compress_float_constant): Likewise.
2110         * fwprop.c (should_replace_address, try_fwprop_subst): Likewise.
2111         * ifcvt.c (noce_try_sign_mask): Likewise.
2112         * loop-doloop.c (doloop_optimize): Likewise.
2113         * loop-invariant.c (create_new_invariant): Likewise.
2114         * lower-subreg.c (shift_cost, compute_costs): Likewise.
2115         * optabs.c (avoid_expensive_constant, prepare_cmp_insn,
2116         lshift_cheap_p): Likewise.
2117         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
2118         try_replace_in_use, reload_cse_move2add): Likewise.
2119         * reload1.c (calculate_elim_costs_all_insns, note_reg_elim_costly):
2120         Likewise.
2121         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
2122         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
2123         * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Likewise.
2124         * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
2125         * config/aarch64/aarch64.c (aarch64_rtx_costs): Delete "code" param,
2126         add "mode" param.  Use "mode: in place of GET_MODE (x).  Pass mode
2127         to rtx_cost calls.
2128         * config/alpha/alpha.c (alpha_rtx_costs): Likewise.
2129         * config/arc/arc.c (arc_rtx_costs): Likewise.
2130         * config/arm/arm.c (arm_rtx_costs): Likewise.
2131         * config/avr/avr.c (avr_rtx_costs, avr_rtx_costs_1): Likewise.
2132         * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
2133         * config/c6x/c6x.c (c6x_rtx_costs): Likewise.
2134         * config/cris/cris.c (cris_rtx_costs): Likewise.
2135         * config/epiphany/epiphany.c (epiphany_rtx_costs): Likewise.
2136         * config/frv/frv.c (frv_rtx_costs): Likewise.
2137         * config/h8300/h8300.c (h8300_rtx_costs): Likewise.
2138         * config/i386/i386.c (ix86_rtx_costs): Likewise.
2139         * config/ia64/ia64.c (ia64_rtx_costs): Likewise.
2140         * config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
2141         * config/lm32/lm32.c (lm32_rtx_costs): Likewise.
2142         * config/m32c/m32c.c (m32c_rtx_costs): Likewise.
2143         * config/m32r/m32r.c (m32r_rtx_costs): Likewise.
2144         * config/m68k/m68k.c (m68k_rtx_costs): Likewise.
2145         * config/mcore/mcore.c (mcore_rtx_costs): Likewise.
2146         * config/mep/mep.c (mep_rtx_cost): Likewise.
2147         * config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
2148         * config/mips/mips.c (mips_rtx_costs): Likewise.
2149         * config/mmix/mmix.c (mmix_rtx_costs): Likewise.
2150         * config/mn10300/mn10300.c (mn10300_rtx_costs): Likewise.
2151         * config/msp430/msp430.c (msp430_rtx_costs): Likewise.
2152         * config/nds32/nds32-cost.c (nds32_rtx_costs_impl): Likewise.
2153         * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Likewise.
2154         * config/nds32/nds32.c (nds32_rtx_costs): Likewise.
2155         * config/nios2/nios2.c (nios2_rtx_costs): Likewise.
2156         * config/pa/pa.c (hppa_rtx_costs): Likewise.
2157         * config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
2158         * config/rl78/rl78.c (rl78_rtx_costs): Likewise.
2159         * config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
2160         * config/s390/s390.c (s390_rtx_costs): Likewise.
2161         * config/sh/sh.c (sh_rtx_costs): Likewise.
2162         * config/sparc/sparc.c (sparc_rtx_costs): Likewise.
2163         * config/spu/spu.c (spu_rtx_costs): Likewise.
2164         * config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
2165         * config/tilegx/tilegx.c (tilegx_rtx_costs): Likewise.
2166         * config/tilepro/tilepro.c (tilepro_rtx_costs): Likewise.
2167         * config/v850/v850.c (v850_rtx_costs): Likewise.
2168         * config/vax/vax.c (vax_rtx_costs): Likewise.
2169         * config/visium/visium.c (visium_rtx_costs): Likewise.
2170         * config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.
2171         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Change type of
2172         "code" param, and pass as outer_code to first rtx_cost call.  Pass
2173         mode to rtx_cost calls.
2174         (aarch64_address_cost, aarch64_if_then_else_costs): Update rtx_cost
2175         calls.
2176         (aarch64_rtx_costs_wrapper): Update.
2177         * config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs,
2178         arm_unspec_cost, arm_new_rtx_costs, arm_slowmul_rtx_costs): Update
2179         rtx_cost calls.
2180         * config/avr/avr.c (avr_final_prescan_insn): Update set_src_cost
2181         and rtx_cost calls.
2182         (avr_operand_rtx_cost): Similarly.
2183         (avr_rtx_costs_1): Correct mode passed to avr_operand_rtx_cost
2184         for subexpressions of ZERO_EXTEND, SIGN_EXTEND and COMPARE.
2185         * config/mips/mips.c (mips_stack_address_p): Comment typo.
2186         (mips_binary_cost): Update rtx_cost and set_src_cost calls.
2187         (mips_rtx_costs): Use GET_MODE (x) to detect const_int.
2188         * config/mn10300/mn10300.c (mn10300_address_cost): Pass Pmode to
2189         rtx_cost.
2190         (mn10300_rtx_costs): Correct mode passed to mn10300_address_cost.
2191         * config/rs6000/rs6000.c (rs6000_debug_rtx_costs): Update.
2192         * config/sh/sh.c (and_xor_ior_costs): Update rtx_cost call.
2193         * doc/tm.texi: Regenerate.
2194
2195 2015-07-07  Andrew MacLeod  <amacleod@redhat.com>
2196
2197         * tree-core.h: Include symtab.h.
2198         * rtl.h: Include hard-reg-set.h but not flags.h.
2199         (HARD_CONST): Remove condition compilation involving HARD_CONST since
2200         hard-reg-set.h is always included.
2201         * regs.h: Don't include hard-reg-set.h or rtl.h.
2202         * cfg.h: Include dominance.h.
2203         * gimple.h: Include tree-ssa-alias.h and gimple-expr.h.
2204         * backend.h: New.  Aggregate commonly used backend header files.
2205         * gimple-ssa.h: Don't include tree-hasher.h.
2206         * ssa.h: New.  Aggregate commonly used SSA header files.
2207         * regset.h: Remove bitmap.h and hard-reg-set.h #includes.
2208         * sel-sched-ir.h: Flatten includes.
2209         * lra-int.h: Flatten completely.
2210         * sel-sched-dump.h: Flatten includes.
2211         * ira-int.h: Flatten includes.
2212         * gimple-streamer.h: Remove all includes.
2213         * cfgloop.h: Remove all #includes except cfgloopmanip.h.
2214         * resource.h: Flatten hard-reg-set.h and df.h.
2215         * sched-int.h: Flatten insn-arrt.h and df.h.
2216         * valtrack.h: flatten bitmap.h, df.h, and rtl.h
2217         * df.h: Flatten includes, leaving regset.h, alloc-pool.h and timevar.h.
2218         * genattrtab.c (write_header): Adjust generated includes.
2219         * genautomata.c (main): Likewise.
2220         * genconditions.c (write-header): Likewise.
2221         * genemit.c (main): Likewise.
2222         * gengtype.c (open_base_files): Likewise.
2223         * genopinit.c (main): Likewise.
2224         * genoutput.c (output_prologue): Likewise.
2225         * genpeep.c (main): Likewise.
2226         * genpreds.c (write_insn_preds_c): Likewise.
2227         * genrecog.c (write_header): Likewise.
2228         * alias.c: Adjust includes.
2229         * asan.c: Likewise.
2230         * attribs.c: Likewise.
2231         * auto-inc-dec.c: Likewise.
2232         * auto-profile.c: Likewise.
2233         * bb-reorder.c: Likewise.
2234         * bt-load.c: Likewise.
2235         * builtins.c: Likewise.
2236         * caller-save.c: Likewise.
2237         * calls.c: Likewise.
2238         * ccmp.c: Likewise.
2239         * cfg.c: Likewise.
2240         * cfganal.c: Likewise.
2241         * cfgbuild.c: Likewise.
2242         * cfgcleanup.c: Likewise.
2243         * cfgexpand.c: Likewise.
2244         * cfghooks.c: Likewise.
2245         * cfgloop.c: Likewise.
2246         * cfgloopanal.c: Likewise.
2247         * cfgloopmanip.c: Likewise.
2248         * cfgrtl.c: Likewise.
2249         * cgraph.c: Likewise.
2250         * cgraphbuild.c: Likewise.
2251         * cgraphclones.c: Likewise.
2252         * cgraphunit.c: Likewise.
2253         * cilk-common.c: Likewise.
2254         * combine-stack-adj.c: Likewise.
2255         * combine.c: Likewise.
2256         * compare-elim.c: Likewise.
2257         * convert.c: Likewise.
2258         * coverage.c: Likewise.
2259         * cppbuiltin.c: Likewise.
2260         * cprop.c: Likewise.
2261         * cse.c: Likewise.
2262         * cselib.c: Likewise.
2263         * data-streamer-in.c: Likewise.
2264         * data-streamer-out.c: Likewise.
2265         * data-streamer.c: Likewise.
2266         * dbxout.c: Likewise.
2267         * dce.c: Likewise.
2268         * ddg.c: Likewise.
2269         * debug.c: Likewise.
2270         * df-core.c: Likewise.
2271         * df-problems.c: Likewise.
2272         * df-scan.c: Likewise.
2273         * dfp.c: Likewise.
2274         * dojump.c: Likewise.
2275         * dominance.c: Likewise.
2276         * domwalk.c: Likewise.
2277         * double-int.c: Likewise.
2278         * dse.c: Likewise.
2279         * dumpfile.c: Likewise.
2280         * dwarf2asm.c: Likewise.
2281         * dwarf2cfi.c: Likewise.
2282         * dwarf2out.c: Likewise.
2283         * emit-rtl.c: Likewise.
2284         * et-forest.c: Likewise.
2285         * except.c: Likewise.
2286         * explow.c: Likewise.
2287         * expmed.c: Likewise.
2288         * expr.c: Likewise.
2289         * final.c: Likewise.
2290         * fixed-value.c: Likewise.
2291         * fold-const.c: Likewise.
2292         * function.c: Likewise.
2293         * fwprop.c: Likewise.
2294         * gcc-plugin.h: Likewise.
2295         * gcse-common.c: Likewise.
2296         * gcse.c: Likewise.
2297         * generic-match-head.c: Likewise.
2298         * ggc-page.c: Likewise.
2299         * gimple-builder.c: Likewise.
2300         * gimple-expr.c: Likewise.
2301         * gimple-fold.c: Likewise.
2302         * gimple-iterator.c: Likewise.
2303         * gimple-low.c: Likewise.
2304         * gimple-match-head.c: Likewise.
2305         * gimple-pretty-print.c: Likewise.
2306         * gimple-ssa-isolate-paths.c: Likewise.
2307         * gimple-ssa-strength-reduction.c: Likewise.
2308         * gimple-streamer-in.c: Likewise.
2309         * gimple-streamer-out.c: Likewise.
2310         * gimple-walk.c: Likewise.
2311         * gimple.c: Likewise.
2312         * gimplify-me.c: Likewise.
2313         * gimplify.c: Likewise.
2314         * godump.c: Likewise.
2315         * graph.c: Likewise.
2316         * graphite-blocking.c: Likewise.
2317         * graphite-dependences.c: Likewise.
2318         * graphite-interchange.c: Likewise.
2319         * graphite-isl-ast-to-gimple.c: Likewise.
2320         * graphite-optimize-isl.c: Likewise.
2321         * graphite-poly.c: Likewise.
2322         * graphite-scop-detection.c: Likewise.
2323         * graphite-sese-to-poly.c: Likewise.
2324         * graphite.c: Likewise.
2325         * haifa-sched.c: Likewise.
2326         * hw-doloop.c: Likewise.
2327         * ifcvt.c: Likewise.
2328         * init-regs.c: Likewise.
2329         * internal-fn.c: Likewise.
2330         * ipa-chkp.c: Likewise.
2331         * ipa-comdats.c: Likewise.
2332         * ipa-cp.c: Likewise.
2333         * ipa-devirt.c: Likewise.
2334         * ipa-icf-gimple.c: Likewise.
2335         * ipa-icf.c: Likewise.
2336         * ipa-inline-analysis.c: Likewise.
2337         * ipa-inline-transform.c: Likewise.
2338         * ipa-inline.c: Likewise.
2339         * ipa-polymorphic-call.c: Likewise.
2340         * ipa-profile.c: Likewise.
2341         * ipa-prop.c: Likewise.
2342         * ipa-pure-const.c: Likewise.
2343         * ipa-ref.c: Likewise.
2344         * ipa-reference.c: Likewise.
2345         * ipa-split.c: Likewise.
2346         * ipa-utils.c: Likewise.
2347         * ipa-visibility.c: Likewise.
2348         * ipa.c: Likewise.
2349         * ira-build.c: Likewise.
2350         * ira-color.c: Likewise.
2351         * ira-conflicts.c: Likewise.
2352         * ira-costs.c: Likewise.
2353         * ira-emit.c: Likewise.
2354         * ira-lives.c: Likewise.
2355         * ira.c: Likewise.
2356         * jump.c: Likewise.
2357         * langhooks.c: Likewise.
2358         * lcm.c: Likewise.
2359         * loop-doloop.c: Likewise.
2360         * loop-init.c: Likewise.
2361         * loop-invariant.c: Likewise.
2362         * loop-iv.c: Likewise.
2363         * loop-unroll.c: Likewise.
2364         * lower-subreg.c: Likewise.
2365         * lra-assigns.c: Likewise.
2366         * lra-coalesce.c: Likewise.
2367         * lra-constraints.c: Likewise.
2368         * lra-eliminations.c: Likewise.
2369         * lra-lives.c: Likewise.
2370         * lra-remat.c: Likewise.
2371         * lra-spills.c: Likewise.
2372         * lra.c: Likewise.
2373         * lto-cgraph.c: Likewise.
2374         * lto-compress.c: Likewise.
2375         * lto-opts.c: Likewise.
2376         * lto-section-in.c: Likewise.
2377         * lto-section-out.c: Likewise.
2378         * lto-streamer-in.c: Likewise.
2379         * lto-streamer-out.c: Likewise.
2380         * lto-streamer.c: Likewise.
2381         * mcf.c: Likewise.
2382         * mode-switching.c: Likewise.
2383         * modulo-sched.c: Likewise.
2384         * omega.c: Likewise.
2385         * omp-low.c: Likewise.
2386         * optabs.c: Likewise.
2387         * opts-global.c: Likewise.
2388         * passes.c: Likewise.
2389         * plugin.c: Likewise.
2390         * postreload-gcse.c: Likewise.
2391         * postreload.c: Likewise.
2392         * predict.c: Likewise.
2393         * print-rtl.c: Likewise.
2394         * print-tree.c: Likewise.
2395         * profile.c: Likewise.
2396         * real.c: Likewise.
2397         * realmpfr.c: Likewise.
2398         * recog.c: Likewise.
2399         * ree.c: Likewise.
2400         * reg-stack.c: Likewise.
2401         * regcprop.c: Likewise.
2402         * reginfo.c: Likewise.
2403         * regrename.c: Likewise.
2404         * regstat.c: Likewise.
2405         * reload.c: Likewise.
2406         * reload1.c: Likewise.
2407         * reorg.c: Likewise.
2408         * resource.c: Likewise.
2409         * rtl-chkp.c: Likewise.
2410         * rtlanal.c: Likewise.
2411         * rtlhooks.c: Likewise.
2412         * sanopt.c: Likewise.
2413         * sched-deps.c: Likewise.
2414         * sched-ebb.c: Likewise.
2415         * sched-rgn.c: Likewise.
2416         * sched-vis.c: Likewise.
2417         * sdbout.c: Likewise.
2418         * sel-sched-dump.c: Likewise.
2419         * sel-sched-ir.c: Likewise.
2420         * sel-sched.c: Likewise.
2421         * sese.c: Likewise.
2422         * shrink-wrap.c: Likewise.
2423         * simplify-rtx.c: Likewise.
2424         * stack-ptr-mod.c: Likewise.
2425         * stmt.c: Likewise.
2426         * stor-layout.c: Likewise.
2427         * store-motion.c: Likewise.
2428         * stringpool.c: Likewise.
2429         * symtab.c: Likewise.
2430         * target-globals.c: Likewise.
2431         * targhooks.c: Likewise.
2432         * toplev.c: Likewise.
2433         * tracer.c: Likewise.
2434         * trans-mem.c: Likewise.
2435         * tree-affine.c: Likewise.
2436         * tree-browser.c: Likewise.
2437         * tree-call-cdce.c: Likewise.
2438         * tree-cfg.c: Likewise.
2439         * tree-cfgcleanup.c: Likewise.
2440         * tree-chkp-opt.c: Likewise.
2441         * tree-chkp.c: Likewise.
2442         * tree-chrec.c: Likewise.
2443         * tree-complex.c: Likewise.
2444         * tree-data-ref.c: Likewise.
2445         * tree-dfa.c: Likewise.
2446         * tree-diagnostic.c: Likewise.
2447         * tree-dump.c: Likewise.
2448         * tree-eh.c: Likewise.
2449         * tree-emutls.c: Likewise.
2450         * tree-if-conv.c: Likewise.
2451         * tree-inline.c: Likewise.
2452         * tree-into-ssa.c: Likewise.
2453         * tree-iterator.c: Likewise.
2454         * tree-loop-distribution.c: Likewise.
2455         * tree-nested.c: Likewise.
2456         * tree-nrv.c: Likewise.
2457         * tree-object-size.c: Likewise.
2458         * tree-outof-ssa.c: Likewise.
2459         * tree-parloops.c: Likewise.
2460         * tree-phinodes.c: Likewise.
2461         * tree-predcom.c: Likewise.
2462         * tree-pretty-print.c: Likewise.
2463         * tree-profile.c: Likewise.
2464         * tree-scalar-evolution.c: Likewise.
2465         * tree-sra.c: Likewise.
2466         * tree-ssa-address.c: Likewise.
2467         * tree-ssa-alias.c: Likewise.
2468         * tree-ssa-ccp.c: Likewise.
2469         * tree-ssa-coalesce.c: Likewise.
2470         * tree-ssa-copy.c: Likewise.
2471         * tree-ssa-copyrename.c: Likewise.
2472         * tree-ssa-dce.c: Likewise.
2473         * tree-ssa-dom.c: Likewise.
2474         * tree-ssa-dse.c: Likewise.
2475         * tree-ssa-forwprop.c: Likewise.
2476         * tree-ssa-ifcombine.c: Likewise.
2477         * tree-ssa-live.c: Likewise.
2478         * tree-ssa-loop-ch.c: Likewise.
2479         * tree-ssa-loop-im.c: Likewise.
2480         * tree-ssa-loop-ivcanon.c: Likewise.
2481         * tree-ssa-loop-ivopts.c: Likewise.
2482         * tree-ssa-loop-manip.c: Likewise.
2483         * tree-ssa-loop-niter.c: Likewise.
2484         * tree-ssa-loop-prefetch.c: Likewise.
2485         * tree-ssa-loop-unswitch.c: Likewise.
2486         * tree-ssa-loop.c: Likewise.
2487         * tree-ssa-math-opts.c: Likewise.
2488         * tree-ssa-operands.c: Likewise.
2489         * tree-ssa-phiopt.c: Likewise.
2490         * tree-ssa-phiprop.c: Likewise.
2491         * tree-ssa-pre.c: Likewise.
2492         * tree-ssa-propagate.c: Likewise.
2493         * tree-ssa-reassoc.c: Likewise.
2494         * tree-ssa-sccvn.c: Likewise.
2495         * tree-ssa-scopedtables.c: Likewise.
2496         * tree-ssa-sink.c: Likewise.
2497         * tree-ssa-strlen.c: Likewise.
2498         * tree-ssa-structalias.c: Likewise.
2499         * tree-ssa-tail-merge.c: Likewise.
2500         * tree-ssa-ter.c: Likewise.
2501         * tree-ssa-threadedge.c: Likewise.
2502         * tree-ssa-threadupdate.c: Likewise.
2503         * tree-ssa-uncprop.c: Likewise.
2504         * tree-ssa-uninit.c: Likewise.
2505         * tree-ssa.c: Likewise.
2506         * tree-ssanames.c: Likewise.
2507         * tree-stdarg.c: Likewise.
2508         * tree-streamer-in.c: Likewise.
2509         * tree-streamer-out.c: Likewise.
2510         * tree-streamer.c: Likewise.
2511         * tree-switch-conversion.c: Likewise.
2512         * tree-tailcall.c: Likewise.
2513         * tree-vect-data-refs.c: Likewise.
2514         * tree-vect-generic.c: Likewise.
2515         * tree-vect-loop-manip.c: Likewise.
2516         * tree-vect-loop.c: Likewise.
2517         * tree-vect-patterns.c: Likewise.
2518         * tree-vect-slp.c: Likewise.
2519         * tree-vect-stmts.c: Likewise.
2520         * tree-vectorizer.c: Likewise.
2521         * tree-vrp.c: Likewise.
2522         * tree.c: Likewise.
2523         * tsan.c: Likewise.
2524         * ubsan.c: Likewise.
2525         * valtrack.c: Likewise.
2526         * value-prof.c: Likewise.
2527         * var-tracking.c: Likewise.
2528         * varasm.c: Likewise.
2529         * varpool.c: Likewise.
2530         * vmsdbgout.c: Likewise.
2531         * vtable-verify.c: Likewise.
2532         * web.c: Likewise.
2533         * wide-int.cc: Likewise.
2534         * xcoffout.c: Likewise.
2535         * config/aarch64/aarch64-builtins.c: Likewise.
2536         * config/aarch64/aarch64.c: Likewise.
2537         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
2538         * config/alpha/alpha.c: Likewise.
2539         * config/arc/arc.c: Likewise.
2540         * config/arm/aarch-common.c: Likewise.
2541         * config/arm/arm-builtins.c: Likewise.
2542         * config/arm/arm-c.c: Likewise.
2543         * config/arm/arm.c: Likewise.
2544         * config/avr/avr-c.c: Likewise.
2545         * config/avr/avr-log.c: Likewise.
2546         * config/avr/avr.c: Likewise.
2547         * config/bfin/bfin.c: Likewise.
2548         * config/c6x/c6x.c: Likewise.
2549         * config/cr16/cr16.c: Likewise.
2550         * config/cris/cris.c: Likewise.
2551         * config/darwin-c.c: Likewise.
2552         * config/darwin.c: Likewise.
2553         * config/epiphany/epiphany.c: Likewise.
2554         * config/epiphany/mode-switch-use.c: Likewise.
2555         * config/epiphany/resolve-sw-modes.c: Likewise.
2556         * config/fr30/fr30.c: Likewise.
2557         * config/frv/frv.c: Likewise.
2558         * config/ft32/ft32.c: Likewise.
2559         * config/h8300/h8300.c: Likewise.
2560         * config/i386/i386-c.c: Likewise.
2561         * config/i386/i386.c: Likewise.
2562         * config/i386/msformat-c.c: Likewise.
2563         * config/i386/winnt-cxx.c: Likewise.
2564         * config/i386/winnt-stubs.c: Likewise.
2565         * config/i386/winnt.c: Likewise.
2566         * config/ia64/ia64-c.c: Likewise.
2567         * config/ia64/ia64.c: Likewise.
2568         * config/iq2000/iq2000.c: Likewise.
2569         * config/lm32/lm32.c: Likewise.
2570         * config/m32c/m32c-pragma.c: Likewise.
2571         * config/m32c/m32c.c: Likewise.
2572         * config/m32r/m32r.c: Likewise.
2573         * config/m68k/m68k.c: Likewise.
2574         * config/mcore/mcore.c: Likewise.
2575         * config/mep/mep-pragma.c: Likewise.
2576         * config/mep/mep.c: Likewise.
2577         * config/microblaze/microblaze-c.c: Likewise.
2578         * config/microblaze/microblaze.c: Likewise.
2579         * config/mips/mips.c: Likewise.
2580         * config/mmix/mmix.c: Likewise.
2581         * config/mn10300/mn10300.c: Likewise.
2582         * config/moxie/moxie.c: Likewise.
2583         * config/msp430/msp430-c.c: Likewise.
2584         * config/msp430/msp430.c: Likewise.
2585         * config/nds32/nds32-cost.c: Likewise.
2586         * config/nds32/nds32-fp-as-gp.c: Likewise.
2587         * config/nds32/nds32-intrinsic.c: Likewise.
2588         * config/nds32/nds32-isr.c: Likewise.
2589         * config/nds32/nds32-md-auxiliary.c: Likewise.
2590         * config/nds32/nds32-memory-manipulation.c: Likewise.
2591         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
2592         * config/nds32/nds32-predicates.c: Likewise.
2593         * config/nds32/nds32.c: Likewise.
2594         * config/nios2/nios2.c: Likewise.
2595         * config/nvptx/nvptx.c: Likewise.
2596         * config/pa/pa.c: Likewise.
2597         * config/pdp11/pdp11.c: Likewise.
2598         * config/rl78/rl78-c.c: Likewise.
2599         * config/rl78/rl78.c: Likewise.
2600         * config/rs6000/rs6000-c.c: Likewise.
2601         * config/rs6000/rs6000.c: Likewise.
2602         * config/rx/rx.c: Likewise.
2603         * config/s390/s390-c.c: Likewise.
2604         * config/s390/s390.c: Likewise.
2605         * config/sh/sh-c.c: Likewise.
2606         * config/sh/sh-mem.cc: Likewise.
2607         * config/sh/sh.c: Likewise.
2608         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
2609         * config/sh/sh_treg_combine.cc: Likewise.
2610         * config/sol2-c.c: Likewise.
2611         * config/sol2-cxx.c: Likewise.
2612         * config/sol2-stubs.c: Likewise.
2613         * config/sol2.c: Likewise.
2614         * config/sparc/sparc-c.c: Likewise.
2615         * config/sparc/sparc.c: Likewise.
2616         * config/spu/spu-c.c: Likewise.
2617         * config/spu/spu.c: Likewise.
2618         * config/stormy16/stormy16.c: Likewise.
2619         * config/tilegx/mul-tables.c: Likewise.
2620         * config/tilegx/tilegx-c.c: Likewise.
2621         * config/tilegx/tilegx.c: Likewise.
2622         * config/tilepro/mul-tables.c: Likewise.
2623         * config/tilepro/tilepro-c.c: Likewise.
2624         * config/tilepro/tilepro.c: Likewise.
2625         * config/v850/v850-c.c: Likewise.
2626         * config/v850/v850.c: Likewise.
2627         * config/vax/vax.c: Likewise.
2628         * config/visium/visium.c: Likewise.
2629         * config/vms/vms-c.c: Likewise.
2630         * config/vms/vms.c: Likewise.
2631         * config/vxworks.c: Likewise.
2632         * config/xtensa/xtensa.c: Likewise.
2633
2634 2015-07-07  Uros Bizjak  <ubizjak@gmail.com>
2635
2636         * config/i386/i386.md (*jcc_bt<mode>): Only split before reload.
2637         Remove operand constraints.  Change operand 2 predicate to
2638         nonmemory operand.  Limit const_int values to mode bitsize.  Only
2639         allow const_int values less than 32 when optimizing for size.
2640         (*jcc_bt<mode>_1, *jcc_bt<mode>_mask): Only split before reload.
2641         Remove operand constraints.
2642         (*bt<mode>): Use SImode for const_int values less than 32.
2643         (regmode): Remove mode attribute.
2644
2645 2015-07-07  Anatoly Sokolov  <aesok@post.ru>
2646
2647         * config/moxie/moxie.h (GO_IF_LEGITIMATE_ADDRESS): Remove macros.
2648         * config/moxie/moxie.c (moxie_reg_ok_for_base_p,
2649           moxie_legitimate_address_p): New functions.
2650           (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
2651
2652 2015-07-07  Tom de Vries  <tom@codesourcery.com>
2653
2654         PR tree-optimization/66642
2655         * tree-parloops.c (transform_to_exit_first_loop_alt): Update function
2656         header comment.  Rename split_edge variable to edge_at_split.  Split
2657         exit edge to create new loop exit bb.  Insert loop exit phis in new
2658         loop exit bb.
2659
2660 2015-07-07  Tom de Vries  <tom@codesourcery.com>
2661
2662         * tree-cfg.c (get_virtual_phi): New function.
2663         * tree-cfg.h (get_virtual_phi): Declare.
2664         * tree-ssa-loop-manip.c (replace_uses_in_dominated_bbs)
2665         (rewrite_virtuals_into_loop_closed_ssa): New function.
2666         * tree-ssa-loop-manip.h (rewrite_virtuals_into_loop_closed_ssa):
2667         Declare.
2668         * tree-parloops.c (replace_uses_in_bbs_by): Remove.
2669         (transform_to_exit_first_loop_alt): Use
2670         rewrite_virtuals_into_loop_closed_ssa.
2671
2672 2015-07-07  Richard Biener  <rguenther@suse.de>
2673
2674         * fold-const.c (fold_binary_loc): Move
2675         (X & C2) << C1 -> (X << C1) & (C2 << C1) simplification ...
2676         * match.pd: ... here.
2677         Add (X * C1) % C2 -> 0 simplification pattern derived from
2678         extract_muldiv_1.
2679
2680 2015-07-07  Kaz Kojima  <kkojima@gcc.gnu.org>
2681
2682         PR target/66780
2683         * config/sh/sh.md (symGOT_load): Revert a part of 2015-03-03
2684         change for target/65249.
2685
2686 2015-07-07  Paulo Matos  <pmatos@broadcom.com>
2687
2688         * symtab.c (address_matters_1): Fix typo in comment above.
2689         (can_increase_alignment_p): Likewise.
2690
2691 2015-07-07  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
2692
2693         * function.c (free_after_compilation): Clear PROP_cfg in
2694         f->curr_properties.
2695
2696 2015-07-07  Richard Biener  <rguenther@suse.de>
2697
2698         * tree-ssa-propagate.c (add_ssa_edge): Dump what edge list we
2699         add which use to.
2700         (add_control_edge): Remove excessive vertical space in dumping.
2701         (process_ssa_edge_worklist): Simulate at most one statement and
2702         return whether we did.  Do not simulate PHIs if they are in a
2703         BB not yet simulated.
2704         (ssa_propagate): Adjust to always drain the BB worklist whenever
2705         a BB is available there, likewise the VARYING edges list before
2706         the interesting edge list.
2707
2708 2015-07-07  Christian Bruel  <christian.bruel@st.com>
2709
2710         PR target/52144
2711         * config/arm/elf.h (TARGET_ASM_FILE_START_APP_OFF): Delete.
2712
2713 2015-07-07  Richard Biener  <rguenther@suse.de>
2714
2715         PR middle-end/66739
2716         * match.pd: Condition A - B ==/!= 0 -> A ==/!= B on single-use
2717         A - B.
2718
2719 2015-07-06  Uros Bizjak  <ubizjak@gmail.com>
2720
2721         * config/i386/i386.md (insv<mode>): Rename from insv.  Use SWI48
2722         modes for operands 0 and 3.  Use SImode for operands 2 and 3.
2723         Copy operand 0 to a temporary if !ext_register_operand.  Remove
2724         ancient extract_bit_field workaround.
2725         (insv<mode>_1): Rename from mov<mode>_insv_1.
2726         (*insvqi): Rename from *movqi_insv_2.
2727         * config/i386/i386.c (emit_i386_cw_initialization): Update calls
2728         for renamed insvsi_1.
2729         (promote_duplicated_reg): Ditto for renamed insv<mode>_1.
2730
2731 2015-07-06  Nathan Sidwell  <nathan@codesourcery.com>
2732
2733         * config/nvptx/nvptx.c (nvptx_reorg): Remove unused vars.  Fix
2734         call to nvptx_reorg_subreg.
2735
2736 2015-07-06  Jim Wilson  <jim.wilson@linaro.org>
2737
2738         * graphite-blocking.c (HAVE_isl): Include <stddef.h>.
2739         * graphite-dependencies.c, graphite-interchange.c,
2740         graphite-isl-ast-to-gimple.c, graphite-optimize-isl.c, graphite-poly.c,
2741         graphite-scop-detection.c, graphite-sese-to-poly.c, graphite.c:
2742         Likewise.
2743
2744 2015-07-06  Marc Glisse  <marc.glisse@inria.fr>
2745
2746         * match.pd: Remove element_mode inside HONOR_*.
2747         (~ (-A) -> A - 1, ~ (A - 1) -> -A): Handle complex types.
2748         (~X | X -> -1, ~X ^ X -> -1): Merge.
2749         * tree.c (build_each_one_cst): New function.
2750         * tree.h (build_each_one_cst): Likewise.
2751
2752 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
2753
2754         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
2755         PROCESSOR_IAMCU.
2756
2757 2015-07-06  Steve Ellcey  <sellcey@imgtec.com>
2758
2759         * config.gcc <mips*-*-*>: Add fused-madd.opt.
2760         * config/mips/mips.opt (mfused-madd): Remove.
2761         * config/mips/mips.c (mips_rtx_costs): Update cost calculations.
2762         * config/mips/mips.h (TARGET_MIPS8000): New.
2763         (ISA_HAS_FP_MADD4_MSUB4): Remove.
2764         (ISA_HAS_FP_MADDF_MSUBF): Remove.
2765         (ISA_HAS_FP_MADD3_MSUB3): Remove.
2766         (ISA_HAS_NMADD4_NMSUB4): Remove.
2767         (ISA_HAS_NMADD3_NMSUB3): Remove.
2768         (ISA_HAS_FUSED_MADD4): New.
2769         (ISA_HAS_UNFUSED_MADD4): New.
2770         (ISA_HAS_FUSED_MADDF): New.
2771         (ISA_HAS_FUSED_MADD3): New.
2772         * config/mips/mips.md: (fma<mode>4) Change from insn to expand.
2773         (*fma<mode>4_madd3) New.
2774         (*fma<mode>4_madd4) New.
2775         (*fma<mode>4_maddf) New.
2776         (fms<mode>4) New.
2777         (*fms<mode>4_msub3) New.
2778         (*fms<mode>4_msub4) New.
2779         (fnma<mode>4) New.
2780         (*fnma<mode>4_nmadd3) New.
2781         (*fnma<mode>4_nmadd4) New.
2782         (fnms<mode>4) New.
2783         (*fnms<mode>4_nmsub3) New.
2784         (*fnms<mode>4_nmsub4) New.
2785         (*madd4<mode>) Modify to be unfused only.
2786         (*msub4<mode>) Modify to be unfused only.
2787         (*nmadd4<mode>) Modify to be unfused only.
2788         (*nmsub4<mode>) Modify to be unfused only.
2789         (*madd3<mode>) Remove.
2790         (*msub3<mode>) Remove.
2791         (*nmadd3<mode>) Remove.
2792         (*nmsub3<mode>) Remove.
2793         (*nmadd3<mode>_fastmath) Remove.
2794         (*nmsub3<mode>_fastmath) Remove.
2795         (*nmadd4<mode>_fastmath) Update condition.
2796         (*nmsub4<mode>_fastmath) Update condition.
2797
2798 2015-07-06  Alan Lawrence  <alan.lawrence@arm.com>
2799
2800         PR target/65956
2801         * config/arm/arm.c (arm_needs_doubleword_align): Drop any outer
2802         alignment attribute, exploring one level down for records and arrays.
2803
2804 2015-07-06  Uros Bizjak  <ubizjak@gmail.com>
2805
2806         * config/i386/i386.md (extv<mode>): Rename from extv.  Use SWI24
2807         modes for operands 0 and 1.  Use SImode for operands 2 and 3.
2808         Copy operand 1 to a temporary if !ext_register_operand.  Remove
2809         ancient extract_bit_field workaround.
2810         (*extv<mode>): Rename from *mov<mode>_extv_1.
2811         (*extvqi): Rename from *movqi_extv_1.
2812         (extzv<mode>): Rename from extzv.  Use SWI248 modes for
2813         operands 0 and 1.  Use SImode for operands 2 and 3. Copy operand 1
2814         to a temporary if !ext_register_operand.  Remove ancient
2815         extract_bit_field workaround.
2816         (*extzv<mode>): Rename from *mov<mode>_extzv_1.
2817         (*extzvqi): Rename from *movqi_extzv_2.
2818         (*testqi_ext_3): Remove modes from const_int_operand predicated
2819         operands.  Add "n" constraint.
2820         (*btsq, *btrq, *btcq): Remove mode from const_0_to_63 predicated
2821         operand.  Add "J" constraint.
2822         (*btsq, *btrq, *btcq peephole2s): Remove mode from
2823         const_0_to_63 predicated operand.
2824         (regmode): New insn attribute.
2825         (*bt<mode>): Use SImode for operand 1.  Change operand 1 predicate
2826         to nonmemory_operand.  Use regmode insn attribute.
2827         (*jcc_bt<mode>_1): Convert operand 2 to SImode.
2828         (*jcc_bt<mode>_mask): Remove mode from operand 3.
2829         (*jcc_btsi_1, *jcc_btsi_mask_1): Remove patterns.
2830         (tbm_bextri_<mode>): Remove modes from const_0_to_255 predicated
2831         operands.  Use "N" constraint instead of "n".
2832
2833 2015-07-06  Alan Lawrence  <alan.lawrence@arm.com>
2834
2835         * config/arm/arm.md (movdi): Avoid odd-number ldrd/strd in ARM state.
2836
2837 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
2838
2839         PR target/66749
2840         * config/i386/i386.c (iamcu_cost): New.
2841         (m_IAMCU): Likewise.
2842         (initial_ix86_arch_features): Disable X86_ARCH_CMOV for m_IAMCU.
2843         (processor_target_table): Add an entry for "iamcu".
2844         (processor_alias_table): Likewise.
2845         (ix86_issue_rate): Handle PROCESSOR_IAMCU.
2846         (ix86_adjust_cost): Likewise.
2847         (ia32_multipass_dfa_lookahead): Likewise.
2848         * config/i386/i386.h (processor_type): Add PROCESSOR_IAMCU.
2849         * config/i386/x86-tune.def: Updated for m_IAMCU.
2850
2851 2015-07-06  Richard Biener  <rguenther@suse.de>
2852
2853         PR tree-optimization/66772
2854         * tree-ssa-ccp.c (ccp_visit_phi_node): Make sure that copy
2855         values are available in the PHI node BB when there are
2856         still unexecutable edges.
2857
2858 2015-07-06  Richard Biener  <rguenther@suse.de>
2859
2860         PR tree-optimization/66767
2861         * tree-vect-loop-manip.c (vect_create_cond_for_align_checks):
2862         Make sure to build the alignment test on a SSA name without
2863         final alignment info valid only if the alignment test
2864         evaluates to true.
2865
2866 2015-07-06  Bernd Schmidt  <bernds@codesourcery.com>
2867
2868         PR target/66620
2869         * config/bfin/bfin.c (hwloop_optimize): Create new bb between jump and
2870         loop start when inserting LSETUP.
2871
2872 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
2873
2874         PR target/53383
2875         * config/i386/i386.c (ix86_option_override_internal): Allow
2876         -mincoming-stack-boundary=3 for 64-bit if SSE is disabled.
2877
2878 2015-07-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2879
2880         * read-md.c (decimal_string): Rename to ...
2881         (md_decimal_string): ... this.
2882         (handle_enum): Reflect this.
2883
2884 2015-07-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>
2885
2886         PR target/66731
2887         * config/aarch64/aarch64.md (fnmul<mode>3): Handle -frounding-math.
2888
2889 2015-07-06  Richard Biener  <rguenther@suse.de>
2890
2891         PR middle-end/66759
2892         * match.pd: Add missing constraint of y to REAL_CST in
2893         REAL_CST - x CMP y to y - CST CMP x simplification.
2894
2895 2015-07-06  Eric Botcazou  <ebotcazou@adacore.com>
2896
2897         PR tree-optimization/66757
2898         * match.pd: Add missing condition to ~X ^ C -> X ^ ~C.
2899
2900 2015-07-05  Chung-Lin Tang  <cltang@codesourcery.com>
2901             Sandra Loosemore <sandra@codesourcery.com>
2902
2903         * config/nios2/nios2-protos.h (nios2_symbol_ref_in_small_data_p):
2904         Delete extern declaration.
2905         (gprel_constant_p): Add extern declaration.
2906         * config/nios2/constraints.md ("S"): Use gprel_constant_p
2907         instead of nios2_symbol_ref_in_small_data_p.
2908         * config/nios2/nios2.c (nios2_legitimate_address_p): Likewise.
2909         (nios2_symbol_ref_in_small_data_p): Make static.
2910         (gprel_constant_p): Make non-static.
2911
2912 2015-07-05  Gerald Pfeifer  <gerald@pfeifer.com>
2913
2914         * doc/fragments.texi (Target Fragment): Convert debian.org
2915         link to use https.
2916         * doc/install.texi (Configuration): Ditto.
2917
2918 2015-07-05  Jakub Jelinek  <jakub@redhat.com>
2919
2920         PR tree-optimization/66718
2921         * tree-vect-stmts.c (vectorizable_call): Replace uses of
2922         GOMP_SIMD_LANE outside of loop with vf - 1 rather than 0.
2923
2924         PR tree-optimization/66718
2925         * tree-vect-stmts.c (vectorizable_assignment, vectorizable_store,
2926         vectorizable_load, vectorizable_condition): Move vectype,
2927         nunits, ncopies computation after checking what kind of statement
2928         stmt is.
2929
2930 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
2931
2932         * target-insns.def (extv, extzv, insv): New targetm instruction
2933         patterns.
2934         * optabs.c (get_extraction_insn): Use them instead of HAVE_*/gen_*
2935         interface.
2936         * recog.c (simplify_while_replacing): Likewise.
2937
2938 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
2939
2940         * target-insns.def (doloop_begin, doloop_end): New targetm
2941         instruction patterns.
2942         * loop-init.c: Include target.h.
2943         (pass_loop2::gate): Use the new targetm patterns instead of
2944         HAVE_*/gen_* interface.
2945         (pass_rtl_doloop::gate): Likewise.
2946         (pass_rtl_doloop::execute): Remove preprocessor condition.
2947         * hw-doloop.c: Build unconditionally.
2948         * loop-doloop.c: Likewise.
2949         (doloop_optimize): Use the new targetm patterns instead of
2950         HAVE_*/gen_* interface.
2951         (doloop_modify): Likewise. Change type of doloop_seq to rtx_insn *.
2952         * modulo-sched.c (doloop_register_get): Likewise.
2953
2954 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
2955
2956         * target-insns.def (clear_cache): New targetm instruction pattern.
2957         * builtins.c (expand_builtin___clear_cache): Use it instead of
2958         HAVE_*/gen_* interface.
2959
2960 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
2961
2962         * target-insns.def (allocate_stack, check_stack, probe_stack)
2963         (probe_stack_address, split_stack_prologue, split_stack_space_check):
2964         New targetm instruction patterns.
2965         * explow.c (allocate_dynamic_stack_space): Use them instead of
2966         HAVE_*/gen_* interface.
2967         (emit_stack_probe): Likewise.
2968         (probe_stack_range): Likewise.
2969         * function.c (thread_prologue_and_epilogue_insns): Likewise.
2970
2971 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
2972
2973         * target-insns.def (stack_protect_set, stack_protect_test): New
2974         targetm instruction patterns.
2975         * cfgexpand.c (stack_protect_prologue): Use them instead of
2976         HAVE_*/gen_* interface.
2977         * function.c (stack_protect_epilogue): Likewise.
2978
2979 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
2980
2981         * expr.h (gen_move_insn_uncast): Delete.
2982         * expr.c (gen_move_insn_uncast): Delete.
2983
2984 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
2985
2986         * target-insns.def (restore_stack_block, restore_stack_function)
2987         (restore_stack_nonlocal, save_stack_block, save_stack_function)
2988         (save_stack_nonlocal): New targetm instruction patterns.
2989         * builtins.c (expand_builtin_apply): Use them instead of
2990         HAVE_*/gen_* interface.
2991         * explow.c (emit_stack_save, emit_stack_restore): Likewise.
2992
2993 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
2994
2995         * target-insns.def (trap): New targetm instruction pattern.
2996         * builtins.c (expand_builtin_trap): Use it instead of HAVE_*/gen_*
2997         interface.
2998         * explow.c (allocate_dynamic_stack_space): Likewise.
2999         * ifcvt.c (find_if_header): Likewise.
3000
3001 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3002
3003         * target-insns.def (prefetch): New targetm instruction pattern.
3004         * tree-ssa-loop-prefetch.c: Include targeth.
3005         (tree_ssa_prefetch_arrays): Use prefetch targetm pattern instead
3006         of HAVE_*/gen_* interface.
3007         * builtins.c (expand_builtin_prefetch): Likewise.
3008         * toplev.c (process_options): Likewise.
3009
3010 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3011
3012         * target-insns.def (untyped_call, untyped_return): New targetm
3013         instruction patterns.
3014         * builtins.c (expand_builtin_apply): Use them instead of
3015         HAVE_*/gen_* interface.
3016         (result_vector): Define unconditionally.
3017
3018 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3019
3020         * target-insns.def (builtin_longjmp, builtin_setjmp_receiver)
3021         (builtin_setjmp_setup, exception_receiver, nonlocal_goto)
3022         (nonlocal_goto_receiver): New targetm instruction patterns.
3023         * builtins.c (expand_builtin_setjmp_setup): Use them instead
3024         of HAVE_*/gen_* interface.
3025         (expand_builtin_setjmp_receiver): Likewise.
3026         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
3027         * except.c (expand_dw2_landing_pad_for_region): Likewise.
3028
3029 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3030
3031         * target.def: Add code_for_* hooks.
3032         * gentarget-def.c (def_target_insn): Add TARGET_CODE_FOR_* macros.
3033         * defaults.h (HAVE_tablejump, gen_tablejump): Delete.
3034         * target-insns.def (casesi, tablejump): New targetm instruction
3035         patterns.
3036         * expr.c (try_casesi): Use them instead of HAVE_*/gen_* interface.
3037         (do_tablejump): Likewise.
3038         * stmt.c (expand_switch_as_decision_tree_p): Likewise.
3039         (expand_sjlj_dispatch_table): Likewise.
3040         * targhooks.c (default_case_values_threshold): Likewise.
3041
3042 2015-07-04  Sandra Loosemore  <sandra@codesourcery.com>
3043
3044         * config/nios2/nios2.c (save_reg, restore_reg): Use plus_constant.
3045         Use rtx_insn * instead of rtx.
3046         (nios2_emit_add_constant): Use rtx_insn * instead of rtx.
3047         (nios2_expand_prologue, nios2_expand_epilogue): Likewise.
3048         (nios2_call_tls_get_addr): Likewise.
3049         (nios2_emit_expensive_div): Likewise.
3050         (nios2_emit_move_sequence): Change return type to bool.
3051         * config/nios2/nios2-protos.h (nios2_emit_move_sequence):
3052         Change return type to bool.
3053
3054 2015-07-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3055
3056         PR target/66747
3057         * config/mips/mips.c (mips_find_gp_ref): Handle instruction sequences.
3058
3059 2015-07-04  John David Anglin  <danglin@gcc.gnu.org>
3060
3061         PR target/66114
3062         * config/pa/pa.md (indirect_jump): Use pmode_register_operand instead
3063         of register_operand.  Remove constraint.
3064
3065 2015-07-04  Marc Glisse  <marc.glisse@inria.fr>
3066
3067         * tree-cfg.c (verify_gimple_assign_ternary) <VEC_COND_EXPR>: Check
3068         the first argument.
3069
3070 2015-07-03  Paolo Carlini  <paolo.carlini@oracle.com>
3071
3072         * attribs.c (decl_attributes): Guard inform with the return value
3073         of the preceding warning.
3074
3075 2015-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
3076
3077         * doc/invoke.texi (moverride): Move to correct section.
3078
3079 2015-07-03  Richard Biener  <rguenther@suse.de>
3080
3081         * genmatch.c (commutative_tree_code, commutative_ternary_tree_code):
3082         Copy from tree.c
3083         (dt_operand::gen_gimple_expr): After valueizing operands
3084         re-canonicalize operand order for commutative tree codes.
3085
3086 2015-07-03  H.J. Lu  <hongjiu.lu@intel.com>
3087
3088         PR target/66746.
3089         * config/i386/ia32intrin.h (__crc32b): Don't define if __iamcu__
3090         is defined.
3091         (__crc32w): Likewise.
3092         (__crc32d): Likewise.
3093         (__rdpmc): Likewise.
3094         (__rdtscp): Likewise.
3095         (_rdpmc): Likewise.
3096         (_rdtscp): Likewise.
3097         * config/i386/x86intrin.h: Only include ia32intrin.h if __iamcu__
3098         is defined.
3099
3100 2015-07-03  Richard Biener  <rguenther@suse.de>
3101
3102         * fold-const.c (fold_mathfn_compare): Remove.
3103         (fold_inf_compare): Likewise.
3104         (fold_comparison): Move floating point comparison simplifications...
3105         * match.pd: ... to patterns here.  Introduce simple_comparisons
3106         operator list and use it for patterns formerly in fold_comparison.
3107
3108 2015-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
3109
3110         PR tree-optimization/66119
3111         * toplev.c (process_options): Don't set up default values for
3112         the sra_max_scalarization_size_{speed,size} parameters.
3113         * tree-sra (analyze_all_variable_accesses): If no values
3114         have been set for the sra_max_scalarization_size_{speed,size}
3115         parameters, call get_move_ratio to get target defaults.
3116
3117 2015-07-03  Richard Biener  <rguenther@suse.de>
3118
3119         * fold-const.c (fold_binary_loc): Move (T)ptr & CST folding...
3120         * match.pd: ... here.
3121
3122 2015-07-03  Gerald Pfeifer  <gerald@pfeifer.com>
3123
3124         PR target/37072
3125         * doc/invoke.texi (i386 and x86-64 Options): -mno-fancy-math-387
3126         is not actually the default on FreeBSD.
3127
3128 2015-07-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3129
3130         * config/rs6000/rs6000-builtin.def (CMPGE_16QI): New built-in
3131         definition.
3132         (CMPGE_8HI): Likewise.
3133         (CMPGE_4SI): Likewise.
3134         (CMPGE_2DI): Likewise.
3135         (CMPGE_U16QI): Likewise.
3136         (CMPGE_U8HI): Likewise.
3137         (CMPGE_U4SI): Likewise.
3138         (CMPGE_U2DI): Likewise.
3139         (CMPLE_16QI): Likewise.
3140         (CMPLE_8HI): Likewise.
3141         (CMPLE_4SI): Likewise.
3142         (CMPLE_2DI): Likewise.
3143         (CMPLE_U16QI): Likewise.
3144         (CMPLE_U8HI): Likewise.
3145         (CMPLE_U4SI): Likewise.
3146         (CMPLE_U2DI): Likewise.
3147         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
3148         overloads for ALTIVEC_BUILTIN_VEC_CMPGE and
3149         ALTIVEC_BUILTIN_VEC_CMPLE.
3150         * config/rs6000/vector.md (vector_ge<mode>): Restrict to
3151         floating-point vector modes.
3152         (vector_nlt<mode>): New define_expand.
3153         (vector_nltu<mode>): Likewise.
3154         (vector_ngt<mode>): Likewise.
3155         (vector_ngtu<mode>): Likewise.
3156
3157 2015-07-02  Segher Boessenkool  <segher@kernel.crashing.org>
3158
3159         PR rtl-optimization/66706
3160         * combine.c (make_compound_operation): If an AND of SUBREG of
3161         LSHIFTRT does not simplify, see if just the AND of SUBREG does.
3162
3163 2015-07-02  Alan Lawrence  <alan.lawrence@arm.com>
3164
3165         * tree-pass.h (make_pass_ch_vect): New.
3166         * passes.def: Add pass_ch_vect just before pass_if_conversion.
3167
3168         * tree-ssa-loop-ch.c (ch_base, pass_ch_vect, pass_data_ch_vect,
3169         pass_ch::process_loop_p, pass_ch_vect::process_loop_p,
3170         make_pass_ch_vect): New.
3171         (pass_ch): Extend ch_base.
3172
3173         (pass_ch::execute): Move all but loop_optimizer_init/finalize to...
3174         (ch_base::copy_headers): ...here.
3175
3176 2015-07-02  Richard Biener  <rguenther@suse.de>
3177
3178         * builtins.c (get_pointer_alignment_1): Handle POINTER_PLUS_EXPR.
3179         * fold-const.c (get_pointer_modulus_and_residue): Remove.
3180         (fold_binary_loc): Implement (T)ptr & CST in terms of
3181         get_pointer_alignment_1.
3182         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop):
3183         Make sure to build the alignment test on a SSA name without
3184         final alignment info valid only after the prologue.
3185
3186 2015-07-02  Hans-Peter Nilsson  <hp@axis.com>
3187
3188         * config/cris/cris.md ("epilogue"): Remove condition.
3189         ("prologue"): Ditto.
3190
3191 2015-07-02  Richard Biener  <rguenther@suse.de>
3192
3193         * tree-ssa-dom.c (build_and_record_new_cond): Add optional
3194         parameter to record a condition that is false.
3195         (record_conditions): When recording an extra NE_EXPR that is
3196         true also record a EQ_EXPR that is false.
3197
3198 2015-07-02  Bin Cheng  <bin.cheng@arm.com>
3199
3200         * tree-ssa-loop-ivopts.c (struct ivopts_data): New field iv_obstack.
3201         (tree_ssa_iv_optimize_init): Initialize iv_obstack.
3202         (alloc_iv): New parameter.  Allocate struct iv using obstack_alloc.
3203         (set_iv, find_interesting_uses_address, add_candidate_1): New
3204         argument to alloc_iv.
3205         (find_interesting_uses_op, find_interesting_uses_cond): Don't
3206         duplicate struct iv.
3207         (free_loop_data): Don't free struct iv explicitly.
3208         (tree_ssa_iv_optimize_finalize): Free iv_obstack.
3209
3210 2015-07-01  DJ Delorie  <dj@redhat.com>
3211
3212         * config/s390/tpf.h (LIBSTDCXX): Change to CPP1.
3213         (LIB_SPEC): Add.
3214         (SUPPORTS_DISCRIMINATOR): Define.
3215
3216 2015-07-01  Richard Sandiford  <richard.sandiford@arm.com>
3217
3218         PR bootstrap/66685
3219         * rtl.c (classify_insn): Only return JUMP_INSN for parallel returns if
3220         there are no CALLs in the same pattern.
3221
3222 2015-07-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3223
3224         PR rtl-optimization/61047
3225         * rtlanal.c (get_initial_register_offset): New function.
3226         (rtx_addr_can_trap_p_1): Check offsets of stack references.
3227
3228 2015-07-01  Richard Biener  <rguenther@suse.de>
3229
3230         * fold-const.c (fold_comparison): Move X - Y CMP 0 -> X CMP Y,
3231         X * C1 CMP 0 -> X CMP 0, X CMP X, ~X CMP ~Y -> Y CMP X and
3232         ~X CMP C -> X CMP' ~C to ...
3233         * match.pd: ... patterns here.
3234
3235 2015-07-01  Nick Clifton  <nickc@redhat.com>
3236
3237         * config/msp430/msp430.md (zero_extendhipsi2): Use MOVX.A to store
3238         a 16-bit value into a 20-bit memory slot.
3239
3240 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
3241
3242         * doc/sourcebuild.texi (AArch64-specific attributes): Document
3243         "aarch64_tiny", "aarch64_small", "aarch64_large",
3244         "aarch64_little_endian", "aarch64_big_endian".
3245
3246 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
3247
3248         * doc/sourcebuild.texi (AArch64-specific attributes): New subsection.
3249         Document "aarch64_small_fpic".
3250
3251 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
3252
3253         * configure.ac: Add check for aarch64 assembler -fpic relocation
3254         modifier support.
3255         * configure: Regenerate.
3256         * config.in: Regenerate.
3257         * config/aarch64/aarch64.c (initialize_aarch64_code_model): Fall back
3258         to -fPIC if not support of -fpic relocation modifier in assembler.
3259
3260 2015-07-01  Richard Sandiford  <richard.sandiford@arm.com>
3261
3262         PR bootstrap/66685
3263         * rtl.c (classify_insn): Handle returns in PARALLELs.
3264
3265 2015-07-01  Eric Botcazou  <ebotcazou@adacore.com>
3266
3267         PR middle-end/66633
3268         * tree-nested.c (convert_nonlocal_omp_clauses): Initialize need_chain
3269         to true if the function is nested and if not optimizing.
3270         (convert_local_omp_clauses): Initialize need_frame to true if the
3271         function contains nested functions and if not optimizing.
3272
3273 2015-07-01  Richard Biener  <rguenther@suse.de>
3274
3275         * fold-const.c (fold_binary_loc): Move ~X ^ X -> -1 and
3276         (X & Y) ^ Y -> ~X & Y transforms to ...
3277         * match.pd: ... here.
3278
3279 2015-07-01  Richard Biener <rguenther@suse.de>
3280
3281         * genmatch.c (expr::gen_transform): Shortcut re-simplifying
3282         of converts to avoid uninteresting noise from the conversion
3283         simplifying patterns.
3284
3285 2015-06-30  Sandra Loosemore <sandra@codesourcery.com>
3286
3287         * config/c6x/c6x.c (try_rename_operands): Do not depend on
3288         gcc_assert evaluating its argument for side-effect.
3289
3290 2015-06-30  Kaz Kojima  <kkojima@gcc.gnu.org>
3291
3292         PR target/64833
3293         * config/sh/sh.md (casesi_worker_1): Set length to 8 when
3294         flag_pic is set.
3295
3296 2015-06-30  Eric Botcazou  <ebotcazou@adacore.com>
3297
3298         * lto-streamer-out.c (class DFS): Adjust hash_scc method.
3299         (DFS::DFS): Pass this_ref_p and ref_p to hash_scc.
3300         (hash_scc): Add this_ref_p and ref_p parameters and pass them
3301         to the inner DFS walk.
3302
3303 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
3304
3305         * target-insns.def (jump): New targetm instruction pattern.
3306         * bb-reorder.c (get_uncond_jump_length): Use targetm.gen_jump
3307         instead of gen_jump.
3308         (fix_up_crossing_landing_pad): Likewise.
3309         (add_labels_and_missing_jumps): Likewise.
3310         (fix_crossing_conditional_branches): Likewise.
3311         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
3312         (force_nonfallthru_and_redirect): Likewise.
3313         * cse.c (cse_insn): Likewise.
3314         * expmed.c (expand_divmod): Likewise.
3315         * expr.c (store_expr_with_bounds, expand_expr_real_2): Likewise.
3316         * haifa-sched.c (init_before_recovery): Likewise.
3317         (sched_create_recovery_edges): Likewise.
3318         * ifcvt.c (find_cond_trap): Likewise.
3319         * optabs.c (expand_doubleword_shift, expand_doubleword_clz): Likewise.
3320         (expand_float, expand_fix): Likewise.
3321         * stmt.c (emit_jump): Likewise.
3322
3323 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
3324
3325         * defaults.h (HAVE_load_multiple, gen_load_multiple)
3326         (HAVE_store_multiple, gen_store_multiple): Delete.
3327         * target-insns.def (load_multiple, store_multiple): New targetm
3328         instruction patterns.
3329         * expr.c (move_block_to_reg, move_block_from_reg): Use them instead
3330         of HAVE_*/gen_* interface.
3331
3332 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
3333
3334         * defaults.h (HAVE_mem_thread_fence, gen_mem_thread_fence)
3335         (HAVE_memory_barrier, gen_memory_barrier, HAVE_mem_signal_fence)
3336         (gen_mem_signal_fence): Delete.
3337         * target-insns.def (mem_signal_fence, mem_thread_fence)
3338         (memory_barrier): New targetm instruction patterns.
3339         * optabs.c (expand_mem_thread_fence): Use them instead of HAVE_*/gen_*
3340         interface.
3341         (expand_mem_signal_fence): Likewise.
3342
3343 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
3344
3345         * defaults.h (HAVE_epilogue, gen_epilogue): Delete.
3346         * target-insns.def (epilogue, prologue, sibcall_prologue): New
3347         targetm instruction patterns.
3348         * alias.c (init_alias_analysis): Use them instead of HAVE_*/gen_*
3349         interface.
3350         * calls.c (expand_call): Likewise.
3351         * cfgrtl.c (cfg_layout_finalize): Likewise.
3352         * df-scan.c (df_get_entry_block_def_set): Likewise.
3353         (df_get_exit_block_use_set): Likewise.
3354         * dwarf2cfi.c (pass_dwarf2_frame::gate): Likewise.
3355         * final.c (final_start_function): Likewise.
3356         * function.c (thread_prologue_and_epilogue_insns): Likewise.
3357         (reposition_prologue_and_epilogue_notes): Likewise.
3358         * reorg.c (find_end_label): Likewise.
3359         * toplev.c (process_options): Likewise.
3360
3361 2015-06-30  David Malcolm  <dmalcolm@redhat.com>
3362
3363         * typed-splay-tree.h: New file.
3364
3365 2015-06-30  Vladimir Makarov  <vmakarov@redhat.com>
3366
3367         PR debug/66691
3368         * lra-int.h (lra_substitute_pseudo): Add a parameter.
3369         (lra_substitute_pseudo_within_insn): Ditto.
3370         * lra.c (lra_substitute_pseudo): Add a parameter.  Simplify subreg
3371         of constant.
3372         (lra_substitute_pseudo_within_insn): Add a parameter.  Transfer it
3373         to lra_substitute_pseudo.
3374         * lra-lives.c (process_bb_lives): Add an argument to
3375         lra_substitute_pseudo_within_insn call.
3376         * lra-constraints.c (inherit_reload_reg, split_reg): Add an
3377         argument to lra_substitute_pseudo and
3378         lra_substitute_pseudo_within_insn calls.
3379         (remove_inheritance_pseudos, undo_optional_reloads): Ditto.
3380
3381 2015-06-30  H.J. Lu  <hongjiu.lu@intel.com>
3382
3383         * configure: Regenerated.
3384
3385 2015-06-30  H.J. Lu  <hongjiu.lu@intel.com>
3386
3387         * config.gcc: Support i[34567]86-*-elfiamcu target.
3388         * config/i386/iamcu.h: New.
3389         * config/i386/i386.opt: Add -miamcu.
3390         * doc/invoke.texi: Document -miamcu.
3391         * common/config/i386/i386-common.c  (ix86_handle_option): Turn
3392         off x87/MMX/SSE/AVX codegen for -miamcu.
3393         * config/i386/i386-c.c (ix86_target_macros_internal): Define
3394         __iamcu/__iamcu__ for -miamcu.
3395         * config/i386/i386.h (PREFERRED_STACK_BOUNDARY_DEFAULT): Set
3396         to MIN_STACK_BOUNDARY if TARGET_IAMCU is true.
3397         (BIGGEST_ALIGNMENT): Set to 32 if TARGET_IAMCU is true.
3398         * config/i386/i386.c (ix86_option_override_internal): Ignore and
3399         warn -mregparm for Intel MCU.  Turn on -mregparm=3 for Intel
3400         MCU by default.  Default long double to 64-bit for Intel MCU.
3401         Turn on -freg-struct-return for Intel MCU.  Issue an error when
3402         -miamcu is used in 64-bit or x32 mode or if x87, MMX, SSE or
3403         AVX is turned on.
3404         (function_arg_advance_32): Pass value whose size is no larger
3405         than 8 bytes in registers for Intel MCU.
3406         (function_arg_32): Likewise.
3407         (ix86_return_in_memory): Return value whose size is no larger
3408         than 8 bytes in registers for Intel MCU.
3409         (iamcu_alignment): New function.
3410         (ix86_data_alignment): Call iamcu_alignment if TARGET_IAMCU is
3411         true.
3412         (ix86_local_alignment): Don't increase alignment for Intel MCU.
3413         (x86_field_alignment): Return iamcu_alignment if TARGET_IAMCU is
3414         true.
3415
3416 2015-06-30  Marek Polacek  <polacek@redhat.com>
3417
3418         * match.pd (X - (X / Y) * Y): Use convert1 and convert2.  Convert
3419         both operands of the resulting expression.
3420
3421         * match.pd (~x | x): Don't use tree_nop_conversion_p.  Build
3422         the final expression with the operand's type and then convert
3423         it to the type of the expression.
3424
3425 2015-06-30  Richard Biener  <rguenther@suse.de>
3426
3427         * fold-const.c (fold_binary_loc): Move ~x & ~y -> ~(x | y) and
3428         ~x | ~y -> ~(x & y), (x & CST) ^ (x & CST2) -> (x & CST) | (x & CST2),
3429         (X | Y) ^ X -> Y & ~ X, ~X ^ ~Y to X ^ Y and ~X ^ C to X ^ ~C ...
3430         * match.pd: ... to patterns here.
3431
3432 2015-06-30  Richard Biener  <rguenther@suse.de>
3433
3434         PR tree-optimization/66704
3435         * tree-vect-data-refs.c (vect_setup_realignment): Use
3436         make_ssa_name for non-SSA name source.
3437
3438 2015-06-30  Jakub Jelinek  <jakub@redhat.com>
3439
3440         PR middle-end/66702
3441         * omp-low.c (simd_clone_adjust): Handle addressable linear
3442         or uniform parameters or non-gimple type uniform parameters.
3443
3444 2015-06-30  Richard Biener  <rguenther@suse.de>
3445
3446         * fold-const.c (fold_unary_loc): Move abs(abs(x)) -> abs(x),
3447         ~ (-A) to A - 1, ~ (A - 1) or ~ (A + -1) to -A and some cases of
3448         ~(X ^ Y) to ~X ^ Y or X ^ ~Y if ~X or ~Y simplify to ...
3449         * match.pd: ... here.
3450         Add a few cases of A - B -> A + (-B) when B "easily" negates.
3451         Move (x & y) | x -> x and friends before
3452         (x | CST1) & CST2 -> (x & CST2) | (CST1 & CST2).
3453
3454 2015-06-30  Eric Botcazou  <ebotcazou@adacore.com>
3455
3456         * config/sparc/leon.md (leon_load): Enable for all LEON variants if
3457         -mfix-ut699 is not specified.
3458         (leon3_load): Rename into...
3459         (ut699_load): ...this.  Enable for all LEON variants if -mfix-ut699
3460         is specified.
3461
3462 2015-06-30  Marek Polacek  <polacek@redhat.com>
3463
3464         * fold-const.c (fold_binary_loc): Move ~X | X folding ...
3465         * match.pd: ... here.
3466
3467 2015-06-30  Richard Biener  <rguenther@suse.de>
3468
3469         * target-insns.def (canonicalize_funcptr_for_compare): Add.
3470         * fold-const.c (build_range_check): Replace uses of
3471         HAVE_canonicalize_funcptr_for_compare.
3472         (fold_widened_comparison): Likewise.
3473         (fold_sign_changed_comparison): Likewise.
3474         * dojump.c: Include "target.h".
3475         (do_compare_and_jump): Replace uses of
3476         HAVE_canonicalize_funcptr_for_compare and
3477         gen_canonicalize_funcptr_for_compare.
3478         * expr.c (do_store_flag): Likewise.
3479
3480 2015-06-30  Tom de Vries  <tom@codesourcery.com>
3481
3482         PR tree-optimization/66652
3483         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
3484         max_loop_iterations to determine if nit + 1 overflows.
3485
3486 2015-06-30  Richard Biener  <rguenther@suse.de>
3487
3488         * tree-vrp.c (register_edge_assert_for_2): Also register
3489         asserts for dominating conversion results.
3490
3491 2015-06-30  Bin Cheng  <bin.cheng@arm.com>
3492
3493         * tree-ssa-loop-ivopts.c (record_sub_use): Don't reset ssa_name
3494         field in struct iv.
3495
3496 2015-06-29  Jack Howarth  <howarth.at.gcc@gmail.com>
3497
3498         PR target/66509
3499         * configure.ac: Fix filds and fildq test for 64-bit.
3500         * configure: Regenerated.
3501
3502 2015-06-29  Nathan Sidwell  <nathan@codesourcery.com>
3503
3504         * config/nvptx/nvptx.md (nvptx_reorg_subreg): New fn, broken out of ...
3505         (nvptx_reorg): Here.  Keep the non-subreg pieces.
3506
3507 2015-06-29  H.J. Lu  <hongjiu.lu@intel.com>
3508
3509         * config/gnu-user.h (GNU_USER_TARGET_ENDFILE_SPEC): Use
3510         PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
3511
3512 2015-06-29  Uros Bizjak  <ubizjak@gmail.com>
3513
3514         * config/i386/i386.md (*jcc_1): Use %! in asm template.
3515         Set attribute "length_nobnd" instead of "length".
3516         (*jcc_2): Ditto.
3517         (jump): Ditto.
3518         (*jcc_1_bnd, *jcc_2_bnd, jump_bnd): Remove insn patterns.
3519
3520 2015-06-29  Sandra Loosemore  <sandra@codesourcery.com>
3521
3522         * config/nios2/nios2.c (nios2_delegitimize_address): Make
3523         assert less restrictive.
3524
3525 2015-06-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3526
3527         PR fortran/66605
3528         * cgraphunit.c (cgraph_node::finalize_function): Do not call
3529         do_warn_unused_parameter.
3530         * function.c (do_warn_unused_parameter): Move from here.
3531         * function.h (do_warn_unused_parameter): Do not declare.
3532
3533 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
3534
3535         PR target/65697
3536         * gcc.target/arm/armv-sync-comp-swap.c: New.
3537         * gcc.target/arm/armv-sync-op-acquire.c: New.
3538         * gcc.target/arm/armv-sync-op-full.c: New.
3539         * gcc.target/arm/armv-sync-op-release.c: New.
3540
3541 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
3542
3543         PR target/65697
3544         * config/armc/arm.c (arm_split_compare_and_swap): For ARMv8, replace an
3545         initial acquire barrier with final barrier.
3546
3547 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
3548
3549         PR target/65697
3550         * config/armc/arm.c (arm_split_atomic_op): For ARMv8, replace an
3551         initial acquire barrier with final barrier.
3552
3553 2015-06-29  Richard Henderson  <rth@redhat.com>
3554
3555         * config/i386/constraints.md (Bf): New constraint.
3556         * config/i386/i386-c.c (ix86_target_macros): Define
3557         __GCC_ASM_FLAG_OUTPUTS__.
3558         * config/i386/i386.c (ix86_md_asm_adjust): Handle =@cc* constraints
3559         as flags outputs.
3560         * doc/extend.texi (FlagOutputOperands): Document them.
3561
3562 2015-06-29  Jiong Wang  <jiong.wang@arm.com>
3563
3564         * config/arch64/aarch64.md (UNSPEC_TLSLE): New enumeration.
3565         * config/arch64/aarch64.md (tlsle_small): Rename to tlsle and use new
3566         unspec name.
3567         (tlsle_small_<mode>): Rename to tlsle_<mode> and use new unspec name.
3568         * config/arch64/aarch64-protos.h (arch64_symbol_type): Rename
3569         SYMBOL_SMALL_TPREL to SYMBOL_TLSLE.
3570         (aarch64_symbol_context): Ditto.
3571         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto
3572         and use new pattern name.
3573         (aarch64_expand_mov_immediate): Ditto.
3574         (aarch64_print_operand): Ditto.
3575         (aarch64_classify_tls_symbol): Ditto.
3576
3577 2015-06-29  Marek Polacek  <polacek@redhat.com>
3578             Marc Glisse  <marc.glisse@inria.fr>
3579
3580         * fold-const.c (fold_binary_loc): Move X - (X / Y) * Y -> X % Y to ...
3581         * match.pd: ... pattern here.
3582
3583 2015-06-29  Tom de Vries  <tom@codesourcery.com>
3584
3585         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Simplify
3586         function structure.
3587
3588 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
3589
3590         * doc/invoke.texi (Aarch64 Options, -march): Split out arch and
3591         feature description, split out the native option, add a link to
3592         the feature documentation, rearrange and slightly rewrite text.
3593         (Aarch64 options, -mcpu): Likewise.
3594         (Aarch64 options, Feature Modifiers): Add an anchor.  Mention
3595         +rdma implies Adv. SIMD.
3596
3597 2015-06-29  Marek Polacek  <polacek@redhat.com>
3598
3599         PR c/66322
3600         * function.c (stack_protect_epilogue): Remove a cast to int.
3601         * doc/invoke.texi: Update -Wswitch-bool description.
3602
3603 2015-06-29  Richard Biener  <rguenther@suse.de>
3604
3605         * genmatch.c (add_operator): Treat ADDR_EXPR as atom.
3606         * fold-const.c (fold_binary_loc): Move &A - &B simplification
3607         via ptr_difference_const ...
3608         * match.pd: ... here.
3609         When matching (X ^ Y) == Y also match with swapped operands.
3610
3611 2015-06-29  Richard Biener  <rguenther@suse.de>
3612
3613         * lto-streamer.h (LTO_major_version): Bump to 5.
3614
3615 2015-06-29  Richard Biener  <rguenther@suse.de>
3616
3617         PR tree-optimization/66677
3618         * tree-vect-stmts.c (vect_transform_stmt): Make assert about
3619         STMT_VINFO_VEC_STMT clobbering less strict.
3620
3621 2015-06-29  Kugan Vivekanandarajah  <kuganv@linaro.org>
3622
3623         PR middle-end/64130
3624         * tree-vrp.c (extract_range_from_binary_expr_1): For unsigned
3625         division, compute max and min when value ranges for dividend and
3626         divisor are available.
3627
3628 2015-06-28  Chung-Lin Tang <cltang@codesourcery.com>
3629             Sandra Loosemore <sandra@codesourcery.com>
3630
3631         * regrename.h (regrename_do_replace): Change to return bool.
3632         * regrename.c (rename_chains): Check return value of
3633         regname_do_replace.
3634         (regrename_do_replace): Re-validate the modified insns and
3635         return bool status.
3636         * config/aarch64/cortex-a57-fma-steering.c (rename_single_chain):
3637         Update to match rename_chains changes.
3638         * config/c6x/c6x.c (try_rename_operands): Assert that
3639         regrename_do_replace returns true.
3640
3641 2015-06-28  Uros Bizjak  <ubizjak@gmail.com>
3642
3643         * config/i386/i386.md (<mode>_ldx): Do not zero-extend non-Pmode
3644         operand 2 here.  Use copy_addr_to_reg to copy non-index
3645         register operand 2 to a temporary.
3646         (<mode>_stx): Ditto for operand 1.
3647         (*<mode>_ldx, *<mode>_stx): Remove enclosing parallel.
3648         * config/i386/i386.c (ix86_load_bounds): Zero-extend non-Pmode ptr here.
3649         (ix86_store_bounds): Ditto.
3650
3651 2015-06-27  Patrick Palka  <ppalka@gcc.gnu.org>
3652
3653         * print-tree.c (print_node) [TREE_VEC]: Print its length.
3654
3655 2015-06-26  Andrew MacLeod  <amacleod@redhat.com>
3656
3657         * gimple.c (gimple_call_set_fndecl): Remove.
3658         * gimple.h (gimple_call_set_fndecl): Relocate to gimple.h and call
3659         build1_loc directly instead of build_fold_addr_expr_loc.
3660
3661 2015-06-26  Richard Sandiford  <richard.sandiford@arm.com>
3662
3663         * hash-map.h (hash_map::traverse): Use the definition of the
3664         Key typedef rather than the typedef itself.
3665
3666 2015-06-26  Martin Jambor  <mjambor@suse.cz>
3667
3668         PR debug/66301
3669         * tree-ssa-pre.c (before_dom_children): Check that dump_file is not
3670         NULL instead of calling dump_enabled_p.
3671
3672 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
3673
3674         * config/aarch64/aarch64.opt: (override): New.
3675         * doc/invoke.texi (override): Document.
3676         * config/aarch64/aarch64.c (aarch64_flag_desc): New
3677         (aarch64_fusible_pairs): Likewise.
3678         (aarch64_tuning_flags): Likewise.
3679         (aarch64_tuning_override_function): Likewise.
3680         (aarch64_tuning_override_functions): Likewise.
3681         (aarch64_parse_one_option_token): Likewise.
3682         (aarch64_parse_boolean_options): Likewise.
3683         (aarch64_parse_fuse_string): Likewise.
3684         (aarch64_parse_tune_string): Likewise.
3685         (aarch64_parse_one_override_token): Likewise.
3686         (aarch64_parse_override_string): Likewise.
3687         (aarch64_override_options): Parse the -override string if it
3688         is present.
3689
3690 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
3691
3692         * config/aarch64/aarch64-protos.h (tune_params): Remove
3693         const from members.
3694         (aarch64_tune_params): Remove const, change to no longer be
3695         a pointer.
3696         * config/aarch64/aarch64.c (aarch64_tune_params): Remove const,
3697         change to no longer be a pointer, initialize to generic_tunings.
3698         (aarch64_min_divisions_for_recip_mul): Change dereference of
3699         aarch64_tune_params to member access.
3700         (aarch64_reassociation_width): Likewise.
3701         (aarch64_rtx_mult_cost): Likewise.
3702         (aarch64_address_cost): Likewise.
3703         (aarch64_branch_cost): Likewise.
3704         (aarch64_rtx_costs): Likewise.
3705         (aarch64_register_move_cost): Likewise.
3706         (aarch64_memory_move_cost): Likewise.
3707         (aarch64_sched_issue_rate): Likewise.
3708         (aarch64_builtin_vectorization_cost): Likewise.
3709         (aarch64_override_options): Take a copy of the selected tuning
3710         struct in to aarch64_tune_params, rather than just setting
3711         a pointer, change dereferences of aarch64_tune_params to member
3712         accesses.
3713         (aarch64_override_options_after_change): Change dereferences of
3714         aarch64_tune_params to member access.
3715         (aarch64_macro_fusion_p): Likewise.
3716         (aarch_macro_fusion_pair_p): Likewise.
3717         * config/aarch64/cortex-a57-fma-steering.c (gate): Likewise.
3718
3719 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
3720
3721         * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Delete.
3722         (aarch64_tune_flags): Likewise.
3723         (AARCH64_TUNE_FMA_STEERING): Likewise.
3724         * config/aarch64/aarch64-cores.def (cortex-a57): Remove reference
3725         to AARCH64_FL_USE_FMA_STEERING_PASS.
3726         (cortex-a57.cortex-a53): Likewise.
3727         (cortex-a72): Use cortexa72_tunings.
3728         (cortex-a72.cortex-a53): Likewise.
3729         (exynos-m1): Likewise.
3730         * config/aarch64/aarch64-protos.h (tune_params): Add
3731         a field: extra_tuning_flags.
3732         * config/aarch64/aarch64-tuning-flags.def: New.
3733         * config/aarch64/aarch64-protos.h (AARCH64_EXTRA_TUNING_OPTION): New.
3734         (aarch64_extra_tuning_flags): Likewise.
3735         (aarch64_tune_params): Declare here.
3736         * config/aarch64/aarch64.c (generic_tunings): Set extra_tuning_flags.
3737         (cortexa53_tunings): Likewise.
3738         (cortexa57_tunings): Likewise.
3739         (thunderx_tunings): Likewise.
3740         (xgene1_tunings): Likewise.
3741         (cortexa72_tunings): New.
3742         * config/aarch64/cortex-a57-fma-steering.c: Include aarch64-protos.h.
3743          (gate): Check against aarch64_tune_params.
3744         * config/aarch64/t-aarch64 (cortex-a57-fma-steering.o): Depend on
3745         aarch64-protos.h.
3746
3747 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
3748
3749         * config/aarch64/aarch64-fusion-pairs.def: New.
3750         * config/aarch64/aarch64-protos.h (aarch64_fusion_pairs): New.
3751         * config/aarch64/aarch64.c (AARCH64_FUSE_NOTHING): Move to
3752         aarch64_fusion_pairs.
3753         (AARCH64_FUSE_MOV_MOVK): Likewise.
3754         (AARCH64_FUSE_ADRP_ADD): Likewise.
3755         (AARCH64_FUSE_MOVK_MOVK): Likewise.
3756         (AARCH64_FUSE_ADRP_LDR): Likewise.
3757         (AARCH64_FUSE_CMP_BRANCH): Likewise.
3758
3759 2015-06-26  Jiong Wang  <jiong.wang@arm.com>
3760
3761         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): New type
3762         SYMBOL_SMALL_GOT_28K.
3763         * config/aarch64/aarch64.md: (ldr_got_small_<mode>): Support new GOT
3764         relocation modifiers.
3765         (unspec): New enum "UNSPEC_GOTMALLPIC28K.
3766         (ldr_got_small_28k_<mode>): New.
3767         (ldr_got_small_28k_sidi): New.
3768         * config/aarch64/iterators.md (got_modifier): New mode iterator.
3769         * config/aarch64/aarch64-otps.h (aarch64_code_model): New model.
3770         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Support
3771         SYMBOL_SMALL_GOT_28K.
3772         (aarch64_rtx_costs): Add costs for new instruction sequences.
3773         (initialize_aarch64_code_model): Initialize new model.
3774         (aarch64_classify_symbol): Recognize new model and new symbol classification.
3775         (aarch64_asm_preferred_eh_data_format): Support new model.
3776         (aarch64_load_symref_appropriately): Generate new instruction
3777         sequences for -fpic.
3778         (TARGET_USE_PSEUDO_PIC_REG): New definition.
3779         (aarch64_use_pseudo_pic_reg): New function.
3780
3781 2015-06-26  Jiong Wang  <jiong.wang@arm.com>
3782
3783         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Rename
3784         SYMBOL_SMALL_GOT to SYMBOL_SMALL_GOT_4G.
3785         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto.
3786         (aarch64_expand_mov_immediate): Ditto.
3787         (aarch64_print_operand): Ditto.
3788         (aarch64_classify_symbol): Ditto.
3789
3790 2015-06-26  Nathan Sidwell  <nathan@codesourcery.com>
3791
3792         * config/nvptx/nvptx.md (call_operation): Remove unused variables.
3793
3794 2015-06-26  Bin Cheng  <bin.cheng@arm.com>
3795
3796         PR bootstrap/66638
3797         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Skip if
3798         assertion failed.  Remove assertion itself.
3799
3800 2015-06-26  Richard Biener  <rguenther@suse.de>
3801
3802         * fold-const.c (fold_binary_loc): Remove -A CMP -B -> A CMP B
3803         and -A CMP CST -> A CMP -CST which is redundant with a pattern
3804         in match.pd.
3805         Move (A | C) == D where C & ~D != 0 -> 0, (X ^ Y) ==/!= 0 -> X ==/!= Y,
3806         (X ^ Y) ==/!= {Y,X} -> {X,Y} ==/!= 0 and
3807         (X ^ C1) op C2 -> X op (C1 ^ C2) to ...
3808         * match.pd: ... patterns here.
3809
3810 2015-06-26  Marek Polacek  <polacek@redhat.com>
3811
3812         * match.pd ((x | y) & ~(x & y) -> x ^ y,
3813         (x | y) & (~x ^ y) -> x & y): New patterns.
3814
3815 2015-06-26  Richard Sandiford  <richard.sandiford@arm.com>
3816
3817         * rtl.h (emit): Add an optional boolean parameter to control
3818         whether barriers are emitted.
3819         * emit-rtl.c (emit): Likewise.
3820         * gensupport.c (get_emit_function): Return null rather than "emit".
3821         * genemit.c (gen_emit_seq): Handle the null return value.
3822         Don't emit barriers after the final instruction in the sequence.
3823         * gentarget-def.c (main): Don't emit barriers after the instruction.
3824
3825 2015-06-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3826
3827         * config/arm/arm.c (arm_output_multireg_pop): Fix use of
3828         TARGET_UNIFIED_ASM.
3829
3830 2015-06-26  Richard Biener  <rguenther@suse.de>
3831
3832         * match.pd: Allow associating FLOAT_TYPE_P when flag_associative_math.
3833
3834 2015-06-26  Richard Biener  <rguenther@suse.de>
3835
3836         * match.pd: Allow (p +p off1) +p off2 to (p +p (off1 + off2))
3837         irrespective on whether the inner operation has a single use
3838         of both off are constant.
3839
3840 2015-06-26  Uros Bizjak  <ubizjak@gmail.com>
3841             Segher Boessenkool  <segher@kernel.crashing.org>
3842
3843         PR target/66412
3844         * config/i386/i386.md (various splitters): Use shallow_copy_rtx
3845         before doing PUT_MODE or PUT_CODE on operands to avoid
3846         in-place RTX modification.
3847
3848 2015-06-25  H.J. Lu  <hongjiu.lu@intel.com>
3849
3850         * gentarget-def.c (def_target_insn): Cast return of strtol to
3851         unsigned int.
3852
3853 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
3854
3855         * gimple.h (gimple_call_set_fn): Move inline function.
3856         * gimple.c (gimple_call_set_fn): Relocate here.
3857
3858 2015-06-25  Oleg Endo  <olegendo@gcc.gnu.org>
3859
3860         PR target/65979
3861         PR target/66611
3862         * config/sh/sh.md (tstsi_t peephole2): Use insn_invalid_p to check if
3863         the replacement insn will work.
3864
3865 2015-06-25  H.J. Lu  <hongjiu.lu@intel.com>
3866
3867         * gcc.c (driver_handle_option): Validate -pie if PIE is enabled
3868         by default.
3869
3870 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
3871
3872         * function.h (ipa_opt_pass, ipa_opt_pass_d): Move forward declarations.
3873         * cgraph.h: Include ipa-ref.h and plugin-api.h.
3874         (ipa_opt_pass, ipa_opt_pass_d)): Relocate forward declarations here.
3875         (symtab_node::address_can_be_compared_p): Move function.
3876         * cgraph.c (symtab_node::address_can_be_compared_p): Relocate function
3877         definition here.
3878         * asan.c: Remove ipa-ref.h and plugin-api.h from include list.
3879         * auto-profile.c: Likewise.
3880         * bb-reorder.c: Likewise.
3881         * builtins.c: Likewise.
3882         * calls.c: Likewise.
3883         * cfgexpand.c: Likewise.
3884         * cgraphbuild.c: Likewise.
3885         * cgraphclones.c: Likewise.
3886         * cgraphunit.c: Likewise.
3887         * combine.c: Likewise.
3888         * coverage.c: Likewise.
3889         * data-streamer-in.c: Likewise.
3890         * data-streamer-out.c: Likewise.
3891         * data-streamer.c: Likewise.
3892         * dbxout.c: Likewise.
3893         * dwarf2out.c: Likewise.
3894         * except.c: Likewise.
3895         * expr.c: Likewise.
3896         * final.c: Likewise.
3897         * fold-const.c: Likewise.
3898         * ggc-page.c: Likewise.
3899         * gimple-fold.c: Likewise.
3900         * gimple-iterator.c: Likewise.
3901         * gimple-pretty-print.c: Likewise.
3902         * gimple-streamer-in.c: Likewise.
3903         * gimple-streamer-out.c: Likewise.
3904         * gimple.c: Likewise.
3905         * gimplify.c: Likewise.
3906         * ipa-chkp.c: Likewise.
3907         * ipa-comdats.c: Likewise.
3908         * ipa-cp.c: Likewise.
3909         * ipa-devirt.c: Likewise.
3910         * ipa-icf-gimple.c: Likewise.
3911         * ipa-icf.c: Likewise.
3912         * ipa-inline-analysis.c: Likewise.
3913         * ipa-inline-transform.c: Likewise.
3914         * ipa-inline.c: Likewise.
3915         * ipa-polymorphic-call.c: Likewise.
3916         * ipa-profile.c: Likewise.
3917         * ipa-prop.c: Likewise.
3918         * ipa-pure-const.c: Likewise.
3919         * ipa-ref.c: Likewise.
3920         * ipa-reference.c: Likewise.
3921         * ipa-split.c: Likewise.
3922         * ipa-utils.c: Likewise.
3923         * ipa-visibility.c: Likewise.
3924         * ipa.c: Likewise.
3925         * langhooks.c: Likewise.
3926         * lto-cgraph.c: Likewise.
3927         * lto-compress.c: Likewise.
3928         * lto-opts.c: Likewise.
3929         * lto-section-in.c: Likewise.
3930         * lto-section-out.c: Likewise.
3931         * lto-streamer-in.c: Likewise.
3932         * lto-streamer-out.c: Likewise.
3933         * lto-streamer.c: Likewise.
3934         * omp-low.c: Likewise.
3935         * opts-global.c: Likewise.
3936         * passes.c: Likewise.
3937         * predict.c: Likewise.
3938         * print-tree.c: Likewise.
3939         * profile.c: Likewise.
3940         * ree.c: Likewise.
3941         * sanopt.c: Likewise.
3942         * stor-layout.c: Likewise.
3943         * symtab.c: Likewise.
3944         * toplev.c: Likewise.
3945         * trans-mem.c: Likewise.
3946         * tree-cfg.c: Likewise.
3947         * tree-chkp.c: Likewise.
3948         * tree-eh.c: Likewise.
3949         * tree-emutls.c: Likewise.
3950         * tree-inline.c: Likewise.
3951         * tree-nested.c: Likewise.
3952         * tree-parloops.c: Likewise.
3953         * tree-pretty-print.c: Likewise.
3954         * tree-profile.c: Likewise.
3955         * tree-sra.c: Likewise.
3956         * tree-ssa-alias.c: Likewise.
3957         * tree-ssa-live.c: Likewise.
3958         * tree-ssa-loop-ivcanon.c: Likewise.
3959         * tree-ssa-loop-ivopts.c: Likewise.
3960         * tree-ssa-pre.c: Likewise.
3961         * tree-ssa-sccvn.c: Likewise.
3962         * tree-ssa-strlen.c: Likewise.
3963         * tree-ssa-structalias.c: Likewise.
3964         * tree-streamer-in.c: Likewise.
3965         * tree-streamer-out.c: Likewise.
3966         * tree-streamer.c: Likewise.
3967         * tree-switch-conversion.c: Likewise.
3968         * tree-tailcall.c: Likewise.
3969         * tree-vect-data-refs.c: Likewise.
3970         * tree-vect-stmts.c: Likewise.
3971         * tree-vectorizer.c: Likewise.
3972         * tree.c: Likewise.
3973         * tsan.c: Likewise.
3974         * ubsan.c: Likewise.
3975         * value-prof.c: Likewise.
3976         * varasm.c: Likewise.
3977         * varpool.c: Likewise.
3978         * config/arm/arm.c: Likewise.
3979         * config/bfin/bfin.c: Likewise.
3980         * config/c6x/c6x.c: Likewise.
3981         * config/cris/cris.c: Likewise.
3982         * config/darwin-c.c: Likewise.
3983         * config/darwin.c: Likewise.
3984         * config/i386/i386.c: Likewise.
3985         * config/i386/winnt.c: Likewise.
3986         * config/microblaze/microblaze.c: Likewise.
3987         * config/mips/mips.c: Likewise.
3988         * config/rs6000/rs6000.c: Likewise.
3989         * config/rx/rx.c: Likewise.
3990         * config/s390/s390.c: Likewise.
3991         * config/tilegx/mul-tables.c: Likewise.
3992
3993 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
3994
3995         * config/aarch64/aarch64.c, config/alpha/alpha.c,
3996         config/arm/arm.c, config/avr/avr.c, config/bfin/bfin.c,
3997         config/c6x/c6x.c, config/cr16/cr16.c, config/cris/cris.c,
3998         config/fr30/fr30.c, config/frv/frv.c, config/h8300/h8300.c,
3999         config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
4000         config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
4001         config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
4002         config/microblaze/microblaze.c, config/mips/mips.c,
4003         config/mmix/mmix.c, config/mn10300/mn10300.c,
4004         config/moxie/moxie.c, config/msp430/msp430.c,
4005         config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
4006         config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
4007         config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
4008         config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
4009         config/stormy16/stormy16.c, config/tilegx/tilegx.c,
4010         config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
4011         config/visium/visium.c, config/xtensa/xtensa.c: Add comment above
4012         target-def.h include.
4013         * config/ft32/ft32.c: Likewise.  Fix misapplied hunk.
4014
4015 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4016
4017         * Makefile.in (TARGET_DEF): Add target-insns.def.
4018         (.PRECIOUS, simple_rtl_generated_h): Add insn-target-def.h.
4019         (build/gentarget-def.o): New rule.
4020         (genprogrtl): Add target-def.
4021         * target-insns.def, gentarget-def.c: New files.
4022         * target.def: Add targetm.have_* and targetm.gen_* hooks,
4023         based on the contents of target-insns.def.
4024         * defaults.h (HAVE_simple_return, gen_simple_return): Delete.
4025         (HAVE_return, gen_return): Delete.
4026         * target-def.h: Include insn-target-def.h.
4027         * cfgrtl.c (force_nonfallthru_and_redirect): Use targetm interface
4028         instead of direct calls.  Rely on them to do the appropriate assertions.
4029         * function.c (gen_return_pattern): Likewise.  Return an rtx_insn *.
4030         (convert_jumps_to_returns): Use targetm interface instead of
4031         direct calls.
4032         (thread_prologue_and_epilogue_insns): Likewise.
4033         * reorg.c (find_end_label, dbr_schedule): Likewise.
4034         * shrink-wrap.h (SHRINK_WRAPPING_ENABLED): Likewise.
4035         * shrink-wrap.c (convert_to_simple_return): Likewise.
4036         (try_shrink_wrapping): Use SHRINK_WRAPPING_ENABLED.
4037
4038 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4039
4040         * config/aarch64/aarch64.c, config/alpha/alpha.c, config/arm/arm.c,
4041         config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
4042         config/cr16/cr16.c, config/cris/cris.c, config/fr30/fr30.c,
4043         config/frv/frv.c, config/ft32/ft32.c, config/h8300/h8300.c,
4044         config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
4045         config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
4046         config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
4047         config/microblaze/microblaze.c, config/mips/mips.c, config/mmix/mmix.c,
4048         config/mn10300/mn10300.c, config/moxie/moxie.c, config/msp430/msp430.c,
4049         config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
4050         config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
4051         config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
4052         config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
4053         config/stormy16/stormy16.c, config/tilegx/tilegx.c,
4054         config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
4055         config/visium/visium.c, config/xtensa/xtensa.c: Move target-def.h
4056         includes to end.
4057
4058 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4059
4060         * hash-map-traits.h (simple_hashmap_traits::key_type): New typedef.
4061         (unbounded_int_hashmap_traits::key_type): Likewise.
4062         * hash-map.h (hash_map): Get the key type from the traits.
4063         * hash-traits.h (default_hash_traits): By default, inherit from the
4064         template parameter.
4065         * alias.c (alias_set_traits): Delete.
4066         (alias_set_entry_d::children): Use alias_set_hash as the first
4067         template parameter.
4068         (record_alias_subset): Update accordingly.
4069         * except.c (tree_hash_traits): Delete.
4070         (type_to_runtime_map): Use tree_hash as the first template parameter.
4071         (init_eh): Update accordingly.
4072         * genmatch.c (capture_id_map_hasher): Delete.
4073         (cid_map_t): Use nofree_string_hash as first template parameter.
4074         * ipa-icf.h (symbol_compare_hashmap_traits): Delete.
4075         * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
4076         Use symbol_compare_hash as the first template parameter in
4077         subdivide_hash_map.
4078         * mem-stats.h (mem_usage_pair::mem_alloc_hashmap_traits): Delete.
4079         (mem_usage_pair::mem_map_t): Use mem_location_hash as the first
4080         template parameter.
4081         * passes.c (pass_registry_hasher): Delete.
4082         (name_to_pass_map): Use nofree_string_hash as the first template
4083         parameter.
4084         (register_pass_name): Update accordingly.
4085         * sanopt.c (sanopt_tree_map_traits): Delete.
4086         (sanopt_tree_triplet_map_traits): Delete.
4087         (sanopt_ctx::asan_check_map): Use tree_operand_hash as the first
4088         template parameter.
4089         (sanopt_ctx::vptr_check_map): Use sanopt_tree_triplet_hash as
4090         the first template parameter.
4091         * sese.c (rename_map_hasher): Delete.
4092         (rename_map_type): Use tree_ssa_name_hash as the first template
4093         parameter.
4094         * symbol-summary.h (function_summary::summary_hashmap_traits): Delete.
4095         (function_summary::m_map): Use map_hash as the first template
4096         parameter.
4097         (function_summary::release): Update accordingly.
4098         * tree-if-conv.c (phi_args_hash_traits): Delete.
4099         (predicate_scalar_phi): Use tree_operand_hash as the first template
4100         parameter to phi_arg_map.
4101         * tree-inline.h (dependence_hasher): Delete.
4102         (copy_body_data::dependence_map): Use dependence_hash as the first
4103         template parameter.
4104         * tree-inline.c (remap_dependence_clique): Update accordingly.
4105         * tree-ssa-strlen.c (stridxlist_hash_traits): Delete.
4106         (decl_to_stridxlist_htab): Use tree_decl_hash as the first template
4107         parameter.
4108         (addr_stridxptr): Update accordingly.
4109         * value-prof.c (profile_id_traits): Delete.
4110         (cgraph_node_map): Use profile_id_hash as the first template
4111         parameter.
4112         (init_node_map): Update accordingly.
4113         * config/alpha/alpha.c (string_traits): Delete.
4114         (machine_function::links): Use nofree_string_hash as the first
4115         template parameter.
4116         (alpha_use_linkage, alpha_write_linkage): Update accordingly.
4117         * config/m32c/m32c.c (pragma_traits): Delete.
4118         (pragma_htab): Use nofree_string_hash as the first template parameter.
4119         (m32c_note_pragma_address): Update accordingly.
4120         * config/mep/mep.c (pragma_traits): Delete.
4121         (pragma_htab): Use nofree_string_hash as the first template parameter.
4122         (mep_note_pragma_flag): Update accordingly.
4123         * config/mips/mips.c (mips16_flip_traits): Delete.
4124         (mflip_mips16_htab): Use nofree_string_hash as the first template
4125         parameter.
4126         (mflip_mips16_use_mips16_p): Update accordingly.
4127         (local_alias_traits): Delete.
4128         (mips16_local_aliases): Use nofree_string_hash as the first template
4129         parameter.
4130         (mips16_local_alias): Update accordingly.
4131
4132 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4133
4134         * hash-map-traits.h (default_hashmap_traits): Delete.
4135
4136 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4137
4138         * hash-map-traits.h (unbounded_hashmap_traits): New class.
4139         (unbounded_int_hashmap_traits): Likewise.
4140         * cfgexpand.c (part_traits): Use unbounded_int_hashmap_traits.
4141
4142 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4143
4144         * ipa-icf.h (symbol_compare_hash): New class.
4145         (symbol_compare_hashmap_traits): Use it.
4146         * mem-stats.h (mem_alloc_description::mem_location_hash): New class.
4147         (mem_alloc_description::mem_alloc_hashmap_traits): Use it.
4148         (mem_alloc_description::reverse_mem_map_t): Remove redundant
4149         default_hashmap_traits.
4150         * sanopt.c (sanopt_tree_triplet_hash): New class.
4151         (sanopt_tree_triplet_map_traits): Use it.
4152
4153 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4154
4155         * gengtype-parse.c (require_template_declaration): Allow '+' in
4156         template parameters.  Consolidate cases.
4157         * hash-traits.h (int_hash): New class.
4158         * alias.c (alias_set_hash): New structure.
4159         (alias_set_traits): Use it.
4160         * symbol-summary.h (function_summary::map_hash): New class.
4161         (function_summary::summary_hashmap_traits): Use it.
4162         * tree-inline.h (dependence_hash): New class.
4163         (dependence_hasher): Use it.
4164         * tree-ssa-reassoc.c (oecount_hasher): Use int_hash.
4165         * value-prof.c (profile_id_hash): New class.
4166         (profile_id_traits): Use it.
4167
4168 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4169
4170         * config/mips/mips.c (mips16_flip_traits): Use it.
4171         (local_alias_traits, mips16_local_aliases): Convert from a map of
4172         rtxes to a map of symbol names.
4173         (mips16_local_alias): Update accordingly.
4174
4175 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4176
4177         * hash-traits.h (string_hash, nofree_string_hash): New classes.
4178         * genmatch.c (capture_id_map_hasher): Use nofree_string_hash.
4179         * passes.c (pass_registry_hasher): Likewise.
4180         * config/alpha/alpha.c (string_traits): Likewise.
4181         * config/i386/winnt.c (i386_find_on_wrapper_list): Likewise.
4182         * config/m32c/m32c.c (pragma_traits): Likewise.
4183         * config/mep/mep.c (pragma_traits): Likewise.
4184
4185 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4186
4187         * tree-hash-traits.h (tree_hash): New class.
4188         * except.c: Include tree-hash-traits.h.
4189         (tree_hash_traits): Use tree_hash.
4190
4191 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4192
4193         * tree-hash-traits.h (tree_ssa_name_hasher): New class.
4194         * sese.c: Include tree-hash-traits.h.
4195         (rename_map_hasher): Use tree_ssa_name_hasher.
4196
4197 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4198
4199         * tree-hash-traits.h (tree_decl_hash): New class.
4200         * tree-ssa-strlen.c: Include tree-hash-traits.h.
4201         (stridxlist_hash_traits): Use tree_decl_hash.
4202
4203 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4204
4205         * tree-hash-traits.h: New file.
4206         (tree_operand_hash): New class.
4207         * sanopt.c: Include tree-hash-traits.h.
4208         (sanopt_tree_map_traits): Use tree_operand_hash.
4209         * tree-if-conv.c: Include tree-hash-traits.h.
4210         (phi_args_hash_traits): Use tree_operand_hash.
4211         * tree-ssa-uncprop.c: Include tree-hash-traits.h.
4212         (val_ssa_equiv_hash_traits): Use tree_operand_hash.
4213
4214 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4215
4216         * hash-map-traits.h: Include hash-traits.h.
4217         (simple_hashmap_traits): New class.
4218         * mem-stats.h (hash_map): Change the default traits to
4219         simple_hashmap_traits<default_hash_traits<Key> >.
4220
4221 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4222
4223         * hash-table.h: Update comments.
4224
4225 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4226
4227         * hash-traits.h (default_hash_traits): New structure.
4228         * hash-set.h (default_hashset_traits): Delete.
4229         (hash_set): Use default_hash_traits<Key> instead of
4230         default_hashset_traits.  Delete hash_entry type and use Key directly.
4231         * ipa-devirt.c (pair_traits): Delete.
4232         (default_hash_traits <type_pair>): Override.
4233         (odr_subtypes_equivalent_p): Remove pair_types template parameter.
4234         (odr_types_equivalent_p, add_type_duplicate): Likewise.
4235
4236 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4237
4238         * hash-traits.h (typed_noop_remove): Don't require a pointer type.
4239
4240 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4241
4242         * hash-table.h (has_is_deleted, is_deleted_helper): Delete.
4243         (has_is_empty, is_empty_helper): Delete.
4244         (has_mark_deleted, mark_deleted_helper): Delete.
4245         (has_mark_empty, mark_empty_helper): Delete.
4246         (hash_table::is_deleted): Call the Descriptor unconditionally.
4247         (hash_table::is_empty): Likewise.
4248         (hash_table::mark_deleted): Likewise.
4249         (hash_table::mark_empty): Likewise.
4250
4251 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4252
4253         * cgraph.h (asmname_hasher): Inherit from ggc_ptr_hash.  Remove
4254         redundant typedefs and members.
4255         * coverage.c (counts_entry): Inherit from pointer_hash.  Remove
4256         redundant typedefs.
4257         * dwarf2out.c (cu_hash_table_entry_hasher): Likewise.
4258         * ipa-devirt.c (odr_name_hasher): Likewise.
4259         (polymorphic_call_target_hasher): Likewise.
4260         * ira-costs.c (cost_classes_hasher): Likewise.
4261         * statistics.c (stats_counter_hasher): Likewise.
4262         * trans-mem.c (log_entry_hasher): Likewise.
4263         * tree-ssa-dom.c (expr_elt_hasher): Likewise.
4264         * tree-ssa-sccvn.c (vn_phi_hasher, vn_reference_hasher): Likewise.
4265         * tree-ssa-tail-merge.c (same_succ_def): Likewise.
4266         * var-tracking.c (variable_hasher): Likewise.
4267         * valtrack.h (dead_debug_hash_descr): Inherit from free_ptr_hash.
4268         Remove redundant typedefs and members.
4269
4270 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4271
4272         * hash-traits.h (ggc_cache_hasher): Rename to...
4273         (ggc_cache_remove): ...this and remove typedefs.
4274         (ggc_cache_ptr_hash): New class.
4275         * hash-table.h: Update commentary.
4276         * emit-rtl.c (const_int_hasher): Inherit from ggc_cache_ptr_hash
4277         rather than ggc_cache_hasher.
4278         (const_wide_int_hasher, reg_attr_hasher): Likewise.
4279         (const_double_hasher, const_fixed_hasher): Likewise.
4280         * function.c (insn_cache_hasher): Likewise.
4281         * trans-mem.c (tm_wrapper_hasher): Likewise.
4282         * tree.h (tree_decl_map_cache_hasher): Likewise.
4283         * tree.c (type_cache_hasher, int_cst_hasher): Likewise.
4284         (cl_option_hasher, tree_vec_map_cache_hasher): Likewise.
4285         * ubsan.c (tree_type_map_cache_hasher): Likewise.
4286         * varasm.c (tm_clone_hasher): Likewise.
4287         * config/i386/i386.c (dllimport_hasher): Likewise.
4288         * config/nvptx/nvptx.c (declared_libfunc_hasher): Likewise.
4289         (tree_hasher): Likewise.
4290
4291 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4292
4293         * hash-traits.h (ggc_hasher): Rename to...
4294         (ggc_remover): ...this and remove typedefs.
4295         (ggc_cache_hasher): Update accordingly.  Add typedefs.
4296         (ggc_ptr_hash): New class.
4297         * hash-table.h: Update comment.
4298         * cfgloop.h (loop_exit_hasher): Inherit from ggc_ptr_hash rather than
4299         ggc_hasher.
4300         * cgraph.h (section_name_hasher, cgraph_edge_hasher): Likewise.
4301         (tree_descriptor_hasher): Likewise.
4302         * cgraph.c (function_version_hasher): Likewise.
4303         * dwarf2out.c (indirect_string_hasher, dwarf_file_hasher): Likewise.
4304         (decl_die_hasher, block_die_hasher, decl_loc_hasher): Likewise.
4305         (dw_loc_list_hasher, addr_hasher): Likewise.
4306         * function.h (used_type_hasher): Likewise.
4307         * function.c (temp_address_hasher): Likewise.
4308         * gimple-ssa.h (tm_restart_hasher, ssa_name_hasher): Likewise.
4309         * libfuncs.h (libfunc_hasher): Likewise.
4310         * lto-streamer.h (decl_state_hasher): Likewise.
4311         * optabs.c (libfunc_decl_hasher): Likewise.
4312         * tree-scalar-evolution.c (scev_info_hasher): Likewise.
4313         * varasm.c (section_hasher, object_block_hasher): Likewise.
4314         (const_rtx_desc_hasher): Likewise.
4315         * config/darwin.c (indirection_hasher, cfstring_hasher): Likewise.
4316         * config/rs6000/rs6000.c (toc_hasher, builtin_hasher): Likewise.
4317
4318 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4319
4320         * hash-traits.h (free_ptr_hash): New class.
4321         * dwarf2out.c (decl_table_entry_hasher): Inherit from free_ptr_hash
4322         rather than typed_free_remove.  Remove redudant typedefs.
4323         (external_ref_hasher): Likewise.
4324         * except.c (action_record_hasher, ttypes_filter_hasher): Likewise.
4325         (ehspec_hasher): Likewise.
4326         * ggc-common.c (saving_hasher): Likewise.
4327         * gimplify.c (gimplify_hasher): Likewise.
4328         * haifa-sched.c (delay_i2_hasher): Likewise.
4329         * loop-invariant.c (invariant_expr_hasher): Likewise.
4330         * loop-iv.c (biv_entry_hasher): Likewise.
4331         * loop-unroll.c (iv_split_hasher, var_expand_hasher): Likewise.
4332         * trans-mem.c (tm_mem_map_hasher, tm_memop_hasher): Likewise.
4333         * tree-cfg.c (locus_discrim_hasher): Likewise.
4334         * tree-eh.c (finally_tree_hasher): Likewise.
4335         * tree-into-ssa.c (var_info_hasher): Likewise.
4336         * tree-parloops.c (reduction_hasher, name_to_copy_hasher): Likewise.
4337         * tree-ssa-loop-ivopts.c (iv_inv_expr_hasher): Likewise.
4338         * tree-ssa-phiopt.c (ssa_names_hasher): Likewise.
4339         * tree-ssa-pre.c (expr_pred_trans_d): Likewise.
4340         * tree-ssa-sccvn.c (vn_constant_hasher): Likewise.
4341         * tree-ssa-structalias.c (equiv_class_hasher): Likewise.
4342         (shared_bitmap_hasher): Likewise.
4343         * tree-ssa-threadupdate.c (redirection_data): Likewise.
4344         * tree-vectorizer.h (peel_info_hasher): Likewise.
4345         * tree-vectorizer.c (simduid_to_vf, simd_array_to_simduid): Likewise.
4346         * config/mips/mips.c (mips_lo_sum_offset_hasher): Likewise.
4347
4348 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4349
4350         * hash-table.h: Update comments.
4351         * hash-traits.h (pointer_hash): Don't inherit from typed_noop_remove.
4352         (nofree_ptr_hash): New class.
4353         * asan.c (asan_mem_ref_hasher): Inherit from nofree_ptr_hash rather
4354         than typed_noop_remove.  Remove redudant typedefs.
4355         * attribs.c (attribute_hasher): Likewise.
4356         * cfg.c (bb_copy_hasher): Likewise.
4357         * cselib.c (cselib_hasher): Likewise.
4358         * dse.c (invariant_group_base_hasher): Likewise.
4359         * dwarf2cfi.c (trace_info_hasher): Likewise.
4360         * dwarf2out.c (macinfo_entry_hasher): Likewise.
4361         (comdat_type_hasher, loc_list_hasher): Likewise.
4362         * gcse.c (pre_ldst_expr_hasher): Likewise.
4363         * genmatch.c (id_base): Likewise.
4364         * genrecog.c (test_pattern_hasher): Likewise.
4365         * gimple-ssa-strength-reduction.c (cand_chain_hasher): Likewise.
4366         * haifa-sched.c (delay_i1_hasher): Likewise.
4367         * hard-reg-set.h (simplifiable_subregs_hasher): Likewise.
4368         * ipa-icf.h (congruence_class_group_hash): Likewise.
4369         * ipa-profile.c (histogram_hash): Likewise.
4370         * ira-color.c (allocno_hard_regs_hasher): Likewise.
4371         * lto-streamer.h (string_slot_hasher): Likewise.
4372         * lto-streamer.c (tree_entry_hasher): Likewise.
4373         * plugin.c (event_hasher): Likewise.
4374         * postreload-gcse.c (expr_hasher): Likewise.
4375         * store-motion.c (st_expr_hasher): Likewise.
4376         * tree-sra.c (uid_decl_hasher): Likewise.
4377         * tree-ssa-coalesce.c (coalesce_pair_hasher): Likewise.
4378         (ssa_name_var_hash): Likewise.
4379         * tree-ssa-live.c (tree_int_map_hasher): Likewise.
4380         * tree-ssa-loop-im.c (mem_ref_hasher): Likewise.
4381         * tree-ssa-pre.c (pre_expr_d): Likewise.
4382         * tree-ssa-sccvn.c (vn_nary_op_hasher): Likewise.
4383         * vtable-verify.h (registration_hasher): Likewise.
4384         * vtable-verify.c (vtbl_map_hasher): Likewise.
4385         * config/arm/arm.c (libcall_hasher): Likewise.
4386         * config/i386/winnt.c (wrapped_symbol_hasher): Likewise.
4387         * config/ia64/ia64.c (bundle_state_hasher): Likewise.
4388         * config/sol2.c (comdat_entry_hasher): Likewise.
4389         * fold-const.c (fold): Use nofree_ptr_hash instead of pointer_hash.
4390         (print_fold_checksum, fold_checksum_tree): Likewise.
4391         (debug_fold_checksum, fold_build1_stat_loc): Likewise.
4392         (fold_build2_stat_loc, fold_build3_stat_loc): Likewise.
4393         (fold_build_call_array_loc): Likewise.
4394         * tree-ssa-ccp.c (gimple_htab): Likewise.
4395         * tree-browser.c (tree_upper_hasher): Inherit from nofree_ptr_hash
4396         rather than pointer_type.
4397
4398 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4399
4400         * hash-traits.h (pointer_hash::mark_deleted, pointer_hash::mark_empty)
4401         (pointer_hash::is_deleted, pointer_hash::is_empty): New functions.
4402
4403 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4404
4405         * hash-traits.h (ggc_hasher::remove): Take a reference parameter.
4406         (ggc_hasher::ggc_mx): Likewise.
4407         (ggc_cache_hasher): Inherit from ggc_hasher.  Remove definitions
4408         that duplicate ggc_hasher ones.
4409
4410 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4411
4412         * hash-table.h (hash_table): Add gt_cleare_cache as a friend.
4413         (gt_cleare_cache): Check here for deleted and empty entries.
4414         Replace handle_cache_entry with a call to keep_cache_entry.
4415         * hash-traits.h (ggc_cache_hasher::handle_cache_entry): Delete.
4416         (ggc_cache_hasher::keep_cache_entry): New function.
4417         * trans-mem.c (tm_wrapper_hasher::handle_cache_entry): Delete.
4418         (tm_wrapper_hasher::keep_cache_entry): New function.
4419         * tree.h (tree_decl_map_cache_hasher::handle_cache_entry): Delete.
4420         (tree_vec_map_cache_hasher::keep_cache_entry): New function.
4421         * tree.c (type_cache_hasher::handle_cache_entry): Delete.
4422         (type_cache_hasher::keep_cache_entry): New function.
4423         (tree_vec_map_cache_hasher::handle_cache_entry): Delete.
4424         (tree_vec_map_cache_hasher::keep_cache_entry): New function.
4425         * ubsan.c (tree_type_map_cache_hasher::handle_cache_entry): Delete.
4426         (tree_type_map_cache_hasher::keep_cache_entry): New function.
4427         * varasm.c (tm_clone_hasher::handle_cache_entry): Delete.
4428         (tm_clone_hasher::keep_cache_entry): New function.
4429         * config/i386/i386.c (dllimport_hasher::handle_cache_entry): Delete.
4430         (dllimport_hasher::keep_cache_entry): New function.
4431
4432 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4433
4434         * hash-table.h: Include hash-traits.h.
4435         (typed_free_remove, typed_noop_remove, pointer_hash, ggc_hasher)
4436         (ggc_cache_hasher): Move to...
4437         * hash-traits.h: ...this new file.
4438
4439 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
4440
4441         * tree-core.h (struct tree_optimization_option): Make opts a pointer to
4442         struct cl_optimization.
4443         * tree.h (TREE_OPTIMIZATION): Return the pointer, not the address of it.
4444         * tree.c (make_node_stat): Allocate cl_optimization struct.
4445         (copy_node_stat): Allocate and copy cl_optimization struct.
4446
4447 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
4448
4449         * function.h (struct incoming_args): Move struct.
4450         (pass_by_reference, reference_callee_copied): Remove prototypes.
4451         * emit-rtl.h (struct incoming_args): Relocate struct here.
4452         * calls.h (pass_by_reference, reference_callee_copied): Relocate
4453         prototypes here.
4454         * function.c (pass_by_reference, reference_callee_copied): Move.
4455         * calls.c (pass_by_reference, reference_callee_copied): Relocate here.
4456         * cfgloop.h: Don't include tm.h or hard-reg-set.h.
4457         * ipa-chkp.c: Include calls.h.
4458
4459 2015-06-25  Andrew Macleod  <amacleod@redhat.com>
4460
4461         * alias.h (alias_set_type): Move typedef.
4462         * coretypes.h (alias_set_type): Relocate typedef here.
4463         * rtl.h: Don't include alias.h.
4464
4465 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
4466
4467         * cgraph.h (cgraph_rtl_info): Move to rtl.h
4468         (cgraph_node): Maintain pointer to struct cgraph_rtl_info instead of
4469         and instance.
4470         * rtl.h (struct cgraph_rtl_info): Define when HARD_REG_SET available.
4471         * cgraph.c (cgraph_node::rtl_info): Allocate cgraph_rtl_info if one
4472         doesn't exist.
4473         * calls.c: Include hard-reg-set.h before rtl.h.
4474         * ira.c: Likewise.
4475
4476 2015-06-25  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
4477             Vladimir Makarov  <vmakarov@redhat.com>
4478
4479         * ira-color.c (assign_hard_reg): Remove unecessary bitmap check.
4480         Add assert.
4481
4482 2015-06-25  Richard Biener  <rguenther@suse.de>
4483
4484         * fold-const.c (fold_binary_loc): Move simplification of
4485         (X <<>> C1) & C2 ...
4486         * match.pd: ... here.
4487
4488 2015-06-25  Eric Botcazou  <ebotcazou@adacore.com>
4489
4490         * lto-streamer-out.c (DFS::hash_scc): Fix typos & formatting glitches.
4491
4492 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4493
4494         * match.pd: Add patterns for vec_conds between 1 and 0.
4495
4496 2015-06-25  Richard Biener  <rguenther@suse.de>
4497
4498         * tree-vect-stmts.c (vectorizable_conversion): Do not set
4499         STMT_VINFO_VEC_STMT for SLP.
4500         (vectorizable_store): Likewise.
4501         (vectorizable_load): Likewise.
4502         (vect_transform_stmt): Catch SLP vectorization clobbering
4503         STMT_VINFO_VEC_STMT.
4504
4505 2015-06-25  Richard Biener  <rguenther@suse.de>
4506
4507         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Improve debug
4508         dumping.
4509         (vect_create_mask_and_perm): Do not set STMT_VINFO_VEC_STMT and
4510         cleanup resulting dead code and parameters.
4511         (vect_transform_slp_perm_load): Adjust.
4512
4513 2015-06-25  Nick Clifton  <nickc@redhat.com>
4514
4515         * config/bfin/bfin.c (bfin_expand_prologue): Set
4516         current_function_static_stack_size if flag_stack_usage_info is set.
4517         * config/ft32/ft32.c (ft32_expand_prologue): Likewise.
4518         * config/h8300/h8300.c (h8300_expand_prologue): Likewise.
4519         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
4520         * config/m32c/m32c.c (m32c_emit_prologue): Likewise.
4521
4522 2015-06-25  Tom de Vries  <tom@codesourcery.com>
4523
4524         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Don't claim in header
4525         comment that the generated IV is unsigned.
4526
4527 2015-06-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4528
4529         PR target/29693
4530         * config/arm/arm.c (arm_dbx_register_number): Return
4531         DWARF_FRAME_REGISTERS by default.
4532
4533 2015-06-25  Tom de Vries  <tom@codesourcery.com>
4534
4535         * dominance.c (calculate_dominance_info): Fix verify_dominators call
4536         argument.  Call verify_dominator when reusing dominator info.
4537
4538 2015-06-24  Kaz Kojima  <kkojima@gcc.gnu.org>
4539
4540         PR target/66563
4541         * config/sh/sh.md (GOTaddr2picreg): Add a new operand for
4542         an additional element of the unspec vector.  Modify indices
4543         of operands.
4544         (builtin_setjmp_receiver): Pass const0_rtx to gen_GOTaddr2picreg.
4545         * config/sh/sh.c (prepare_move_operands): Pass incremented
4546         const_int to gen_GOTaddr2picreg.
4547         (sh_expand_prologue): Pass const0_rtx to gen_GOTaddr2picreg.
4548
4549 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
4550
4551         * config/aarch64/aarch64.md (<optab><fcvt_target><GPF:mode>2):
4552         Condition on TARGET_FLOAT.
4553
4554 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
4555
4556         * doc/invoke.texi: Clarify AArch64 feature modifiers (no)fp, (no)simd
4557         and (no)crypto.
4558
4559 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
4560
4561         * config/aarch64/aarch64-protos.h (aarch64_err_no_fpadvsimd): New.
4562
4563         * config/aarch64/aarch64.md (mov<mode>/GPF, movtf): Use
4564         aarch64_err_no_fpadvsimd.
4565
4566         * config/aarch64/aarch64.c (aarch64_err_no_fpadvsimd): New.
4567         (aarch64_layout_arg, aarch64_init_cumulative_args): Use
4568         aarch64_err_no_fpadvsimd if !TARGET_FLOAT and we need FP regs.
4569         (aarch64_expand_builtin_va_start, aarch64_setup_incoming_varargs):
4570         Turn error into assert, test TARGET_FLOAT.
4571         (aarch64_gimplify_va_arg_expr): Use aarch64_err_no_fpadvsimd, test
4572         TARGET_FLOAT.
4573
4574 2015-06-24  Aldy Hernandez  <aldyh@redhat.com>
4575
4576         PR debug/66482
4577         * dwarf2out.c (gen_formal_parameter_die): Remove assert.
4578
4579 2015-06-24  Ilya Enkovich  <enkovich.gnu@gmail.com>
4580
4581         * tree-vect-slp.c (vect_build_slp_tree_1): Init vectype.
4582
4583 2015-06-24 Renlin Li <renlin.li@arm.com>
4584
4585         * config/aarch64/aarch64.h(TARGET_CPU_CPP_BUILTINS): Add
4586         __ARM_ALIGN_MAX_PWR, __ARM_ALIGN_MAX_STACK_PWR.
4587
4588 2015-06-24  Richard Biener  <rguenther@suse.de>
4589
4590         * genmatch.c (enum tree_code): Add VIEW_CONVERT[012].
4591         (main): Likewise.
4592         (lower_opt_convert): Support lowering of conditional view_convert.
4593         (parser::parse_operation): Likewise.
4594         (parser::parse_for): Likewise.
4595
4596 2015-06-24  Renlin Li  <renlin.li@arm.com>
4597
4598         * varasm.c (emit_local): Use unsigned int for align variable.
4599
4600 2015-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4601
4602         PR target/63408
4603         * config/arm/arm.c (vfp3_const_double_for_fract_bits): Disable
4604         for negative numbers.
4605
4606 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4607
4608         PR rtl-optimization/66306
4609         * reload.c (find_reloads): Swap the match_dup info for
4610         commutative operands.
4611
4612 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4613
4614         * config/s390/vx-builtins.md
4615         ("vec_scatter_element<mode>_<non_vec_int>")
4616         ("vec_scatter_element<V_HW_64:mode>_SI"): Replace gf mode
4617         attribute with bhfgq.
4618
4619 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4620
4621         * config/s390/s390-builtins.def: Fix vpopct instruction comments.
4622
4623 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4624
4625         * config/s390/s390-builtin-types.def: Add flag to indicate the
4626         options under which the function type is needed.
4627         * config/s390/s390-builtins.def: Add flag to indicate the options
4628         under which the builtin is enabled.
4629         * config/s390/s390-builtins.h: Add flags parameter to macro
4630         definitions.
4631         (bflags_for_builtin): New function.
4632         (flags_for_builtin): Renamed to ...
4633         (opflags_for_builtin): ... this.
4634         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Rename
4635         flags_for_builtin to bflags_for_builtin and
4636         flags_overloaded_builtin_var to opflags_overloaded_builtin_var.
4637         * config/s390/s390.c: Add initialization of bflags_builtin and
4638         opflags_builtin arrays.
4639         Remove code for flags_builtin.
4640         (s390_init_builtins): Only create builtin function types if one of
4641         their flags is active.
4642         Only create builtins if all of their flags are active.
4643         (s390_expand_builtin): Rename flags_for_builtin to
4644         opflags_for_builtin.
4645
4646 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4647
4648         * config/s390/vecintrin.h: Remove internal builtins.
4649
4650 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4651
4652         * config/s390/s390.c (s390_secondary_reload): Fix check for
4653         GENERAL_REGS register class.
4654
4655 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4656
4657         * config/s390/s390.c (s390_support_vector_misalignment): Call
4658         default implementation for !TARGET_VX.
4659
4660 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4661
4662         * config/s390/s390.c (s390_legitimate_constant_p): Add
4663         TARGET_VX check.
4664
4665 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4666
4667         * config/s390/s390.c (s390_vector_abi): New variable definition.
4668         (s390_check_type_for_vector_abi): New function.
4669         (TARGET_ASM_FILE_END): New macro definition.
4670         (s390_asm_file_end): New function.
4671         (s390_function_arg): Call s390_check_type_for_vector_abi.
4672         (s390_gimplify_va_arg): Likewise.
4673         * configure: Regenerate.
4674         * configure.ac: Check for .gnu_attribute Binutils feature.
4675
4676 2015-06-23  Chen Gang  <gang.chen.5i5j@gmail.com>
4677
4678         PR target/65803
4679         * config/bfin/bfin.c (hwloop_optimize): Initialize
4680         JUMP_LABEL for newly created jump.
4681
4682 2015-06-23  Tristan Gingold  <gingold@adacore.com>
4683
4684         * collect-utils.c (collect_wait): Unlink the response file here
4685         instead of...
4686         (do_wait): ...here.
4687         (utils_cleanup): ...and here.
4688
4689 2015-06-23  Richard Sandiford  <richard.sandiford@arm.com>
4690
4691         * df-scan.c: Don't include target-def.h.
4692         * targhooks.c: Likewise.
4693         * config/arm/arm-c.c: Likewise.
4694         * config/i386/i386-c.c: Likewise.
4695         * config/nds32/nds32-cost.c: Likewise.
4696         * config/nds32/nds32-fp-as-gp.c: Likewise.
4697         * config/nds32/nds32-intrinsic.c: Likewise.
4698         * config/nds32/nds32-isr.c: Likewise.
4699         * config/nds32/nds32-md-auxiliary.c: Likewise.
4700         * config/nds32/nds32-memory-manipulation.c: Likewise.
4701         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
4702         * config/nds32/nds32-predicates.c: Likewise.
4703
4704 2015-06-23  Richard Biener  <rguenther@suse.de>
4705
4706         PR tree-optimization/66636
4707         * tree-vect-stmts.c (vectorizable_store): Properly compute the
4708         def type for further defs for strided stores.
4709
4710 2015-06-23  Nathan Sidwell  <nathan@codesourcery.com>
4711
4712         * config/nvptx/nvptx.md (sel_true<mode>, sel_false<mode>): New
4713         conditional selects.
4714         (setcc_int<mode>, setcc_float<mode>): Reformat.
4715
4716 2015-06-23  Marek Polacek  <polacek@redhat.com>
4717
4718         * match.pd ((x + y) - (x | y) -> x & y,
4719         (x + y) - (x & y) -> x | y): New patterns.
4720
4721 2015-06-23  Ludovic Courtès  <ludo@gnu.org>
4722
4723         PR 65711
4724         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Move
4725         '-dynamic-linker' within %{!shared: ...}.
4726
4727 2015-06-23  Uros Bizjak  <ubizjak@gmail.com>
4728
4729         PR target/66560
4730         * config/i386/predicates.md (addsub_vm_operator): New predicate.
4731         (addsub_vs_operator): Ditto.
4732         (addsub_vs_parallel): Ditto.
4733         * config/i386/sse.md (ssedoublemode): Add V4SF and V2DF modes.
4734         (avx_addsubv4df3, avx_addsubv8sf3, sse3_addsubv2df3, sse3_addsubv4sf3):
4735         Put minus RTX before plus and adjust vec_merge selector.
4736         (*avx_addsubv4df3_1, *avx_addsubv4df3_1s, *sse3_addsubv2df3_1)
4737         (*sse_addsubv2df3_1s, *avx_addsubv8sf3_1, *avx_addsubv8sf3_1s)
4738         (*sse3_addsubv4sf3_1, *sse_addsubv4sf3_1s): Remove insn patterns.
4739         (addsub vec_merge splitters): New combiner splitters.
4740         (addsub vec_select/vec_concat splitters): Ditto.
4741
4742 2015-06-23  Bin Cheng  <bin.cheng@arm.com>
4743
4744         PR tree-optimization/66449
4745         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Use
4746         POINTER_PLUS_EXPR for pointers.
4747
4748 2015-06-23  Alan Modra  <amodra@gmail.com>
4749
4750         * rtlanal.c (commutative_operand_precedence): Correct comments.
4751         * simplify-rtx.c (simplify_plus_minus_op_data_cmp): Delete forward
4752         declaration.  Return an int.  Distinguish REG,REG return from
4753         others.
4754         (struct simplify_plus_minus_op_data): Make local to function.
4755         (simplify_plus_minus): Don't set canonicalized if merely sorting
4756         registers.  Avoid packing ops if nothing changes.  White space fixes.
4757
4758 2015-06-22  Pierre-Marie de Rodat  <derodat@adacore.com>
4759
4760         * gcc.c (default_compilers): Pass "-o %g.s" to cc1 for headers even if
4761         -fdump-ada-spec is passed but not if -fsyntax-only is.
4762
4763 2015-06-22  Vladimir Makarov  <vmakarov@redhat.com>
4764
4765         PR bootstrap/63740
4766         * lra-lives.c (process_bb_lives): Check insn copying the same
4767         reload pseudo and don't create a copy for it.
4768
4769 2015-06-22  Tom de Vries  <tom@codesourcery.com>
4770
4771         * tree-parloops.c (transform_to_exit_first_loop_alt): Add update_stmt
4772         for cond_stmt.
4773
4774 2015-06-22  Tom de Vries  <tom@codesourcery.com>
4775
4776         * builtins.def (DEF_GOMP_BUILTIN): Test
4777         'flag_tree_parallelize_loops > 1' instead of
4778         'flag_tree_parallelize_loops'.  Test flag_cilkplus.
4779
4780 2015-06-22  Tom de Vries  <tom@codesourcery.com>
4781
4782         * dominance.c (calculate_dominance_info): Verify dominators if
4783         early-out.
4784
4785 2015-06-22  Marek Polacek  <polacek@redhat.com>
4786
4787         * match.pd ((x ^ y) ^ (x | y) -> x & y,
4788         (x & y) + (x ^ y) -> x | y, (x & y) | (x ^ y) -> x | y,
4789         (x & y) ^ (x ^ y) -> x | y, (x & y) + (x | y) -> x + y,
4790         (x | y) - (x ^ y) -> x & y, (x | y) - (x & y) -> x ^ y): New patterns.
4791
4792 2015-06-22  Uros Bizjak  <ubizjak@gmail.com>
4793
4794         PR target/65871
4795         * config/i386/i386.c (ix86_rtx_costs) <case COMPARE>: Ignore the
4796         cost of embedded comparison.
4797
4798 2015-06-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4799
4800         PR target/65914
4801         * config/rs6000/predicates.md (altivec_register_operand): Permit
4802         virtual stack registers.
4803         (vsx_register_operand): Likewise.
4804         (vfloat_operand): Likewise.
4805         (vint_operand): Likewise.
4806         (vlogical_operand): Likewise.
4807
4808 2015-06-22  Richard Biener  <rguenther@suse.de>
4809
4810         * tree-vectorizer.h (_loop_vec_info): Add scalar_cost_vec
4811         and single_scalar_iteration_cost members.
4812         (LOOP_VINFO_SCALAR_ITERATION_COST): New.
4813         (LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST): Likewise.
4814         (vect_get_single_scalar_iteration_cost): Remove.
4815         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
4816         Use LOOP_VINFO_SCALAR_ITERATION_COST.
4817         * tree-vect-loop.c (destroy_loop_vec_info): Free
4818         scalar_cost_vec.
4819         (vect_get_single_scalar_iteration_cost): Compute result into
4820         LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST and
4821         LOOP_VINFO_SCALAR_ITERATION_COST.  Make static.
4822         (vect_analyze_loop_2): Call vect_get_single_scalar_iteration_cost.
4823         (vect_estimate_min_profitable_iters): Use them.
4824
4825 2015-06-22  Christian Bruel  <christian.bruel@st.com>
4826
4827         PR target/52144
4828         * config/arm/arm.c (add_attribute, arm_insert_attributes): New functions
4829         (TARGET_INSERT_ATTRIBUTES): Define.
4830         (thumb_flipper): New var.
4831         * config/arm/arm.opt (-mflip-thumb): New switch.
4832
4833 2015-06-22  Jan Hubicka  <hubicka@ucw.cz>
4834             Martin Liska  <mliska@suse.cz>
4835
4836         PR ipa/65908
4837         * ipa-icf.c (sem_item::target_supports_symbol_aliases): Remove
4838         construction of arg_types.
4839         (sem_function::sem_function): Likewise.
4840         (sem_function::~sem_function): Remove destruction of arg_types.
4841         (sem_function::compatible_parm_types_p): New function.
4842         (sem_function::equals_wpa): Reorg matching of return values
4843         and parameter types.
4844         (sem_function::equals_private): Reorg mathcing of argument types.
4845         (sem_function::parse_tree_args): Remove.
4846         * ipa-icf.h (init_wpa): Do not call it.
4847         (parse_tree_args): Remove.
4848         (compatible_parm_types_p): Declare.
4849         (result_type): Remove.
4850         (arg_types): Remove.
4851
4852 2015-06-22  Jan Hubicka  <hubicka@ucw.cz>
4853
4854         PR ipa/66351
4855         * ipa-polymorphic-call.c
4856         (ipa_polymorphic_call_context::get_dynamic_type): Fix thinko when
4857         initializing alias oracle; fix formating; set base_alias_set if it
4858         is known.
4859
4860 2015-06-22  Mikhail Maltsev  <maltsevm@gmail.com>
4861
4862         * auto-inc-dec.c (reverse_mem, reverse_inc): Remove.
4863         (parse_add_or_inc): Use std::swap instead of reverse_{mem,inc}.
4864         (find_inc): Likewise.
4865         * combine.c (combine_simplify_rtx): Use std::swap instead of manually
4866         swapping.
4867         * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
4868         * df-scan.c (df_swap_refs): Remove.
4869         (df_sort_and_compress_refs): Use std::swap instead of df_swap_refs.
4870         * dominance.c (link_roots): Use std::swap instead of manually swapping.
4871         * expr.c (expand_expr_real_2, do_store_flag): Likewise.
4872         * fold-const.c (fold_relational_const): Likewise.
4873         * genattrtab.c (simplify_test_exp): Likewise.
4874         * gimple-match-head.c (gimple_resimplify2, gimple_resimplify3,
4875         gimple_simplify): Likewise.
4876         * ifcvt.c (noce_try_abs, find_if_header): Likewise.
4877         * internal-fn.c (expand_addsub_overflow, expand_mul_overflow): Likewise.
4878         * ipa-devirt.c (add_type_duplicate): Likewise.
4879         * loop-iv.c (get_biv_step_1, iv_number_of_iterations): Likewise.
4880         * lra-lives.c (lra_setup_reload_pseudo_preferenced_hard_reg): Likewise.
4881         * lra.c (lra_create_copy): Likewise.
4882         * lto-streamer-out.c (DFS::DFS): Likewise.
4883         * modulo-sched.c (get_sched_window): Likewise.
4884         * omega.c (omega_pretty_print_problem): Likewise.
4885         * optabs.c (prepare_float_lib_cmp, expand_mult_highpart): Likewise.
4886         * reload1.c (reloads_unique_chain_p): Likewise.
4887         * sel-sched-ir.c (exchange_lv_sets, exchange_av_sets): Remove.
4888         (exchange_data_sets): Move logic from exchange_{av,lv}_sets here and
4889         use std::swap.
4890         * simplify-rtx.c (simplify_unary_operation_1): Use std::swap instead of
4891         manually swapping.
4892         * tree-if-conv.c (is_cond_scalar_reduction, predicate_scalar_phi,
4893         predicate_mem_writes): Likewise.
4894         * tree-loop-distribution.c (pg_add_dependence_edges): Likewise.
4895         * tree-predcom.c (combine_chains): Likewise.
4896         * tree-ssa-alias.c (nonoverlapping_component_refs_p,
4897         refs_may_alias_p_1): Likewise.
4898         * tree-ssa-ifcombine.c (recognize_if_then_else): Likewise.
4899         * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
4900         * tree-ssa-loop-niter.c (refine_bounds_using_guard,
4901         number_of_iterations_cond): Likewise.
4902         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
4903         * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
4904         * tree-vect-slp.c (vect_build_slp_tree): Likewise.
4905         * tree-vect-stmts.c (supportable_widening_operation): Likewise.
4906         * tree-vrp.c (extract_range_from_binary_expr_1,
4907         extract_range_from_unary_expr_1): Likewise.
4908
4909 2015-06-20  Marek Polacek  <polacek@redhat.com>
4910
4911         * common.opt (fsanitize-undefined-trap-on-error): Add Driver.
4912
4913 2015-06-19  Kaz Kojima  <kkojima@gcc.gnu.org>
4914
4915         PR target/66591
4916         * config/sh/sh.c (prepare_move_operands): Replace subreg
4917         index term with R0 for base and index addressing.
4918
4919 2015-06-19  Jim Wilson  <jim.wilson@linaro.org>
4920
4921         * config/aarch64/aarch64.md (mov<mode>:GPF): Don't call force_reg if
4922         op1 is an fp zero.
4923         (movsf_aarch64): Change condition from register_operand to
4924         aarch64_reg_or_fp_zero for op1.  Change type for alternative 6 to
4925         load1.  Change type for alternative 7 to store1.
4926         (movdf_aarch64): Likewise.
4927
4928 2015-06-19  James Greenhalgh  <james.greenhalgh@arm.com>
4929
4930         * config/vax/vax.md: Adjust sign/zero extend patterns to
4931         handle SUBREGs in operands[1].
4932
4933 2015-06-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4934
4935         * config/i386/i386.c (ix86_function_versions): Use std::swap instead
4936         of manually swapping.
4937         (expand_vec_perm_interleave2): Likewise.
4938
4939 2015-06-19  Ilya Enkovich  <enkovich.gnu@gmail.com>
4940
4941         * tree-chkp.c (chkp_compute_bounds_for_assignment): Don't
4942         reuse bounds created for abnormal ssa names.
4943
4944 2015-06-19  Jakub Jelinek  <jakub@redhat.com>
4945
4946         * config/nvptx/nvptx.md (allocate_stack): Rename to...
4947         (allocate_stack_<mode>): ... this, and add :P on both
4948         match_operand and unspec.
4949         (allocate_stack): New expander.
4950
4951 2015-06-19  Christian Bruel  <christian.bruel@st.com>
4952
4953         PR target/66541
4954         PR target/52144
4955         * config/arm/arm.c (arm_set_current_function): Handle
4956         explicit default options.
4957
4958 2015-06-18  Uros Bizjak  <ubizjak@gmail.com>
4959
4960         * config/i386/i386.md (*movsicc_noc_zext): New insn.
4961         (zero-extended cmove with mem peephole2): New pattern.
4962         (cmove with mem peephole2): Merge patterns.
4963
4964 2015-06-18  Segher Boessenkool  <segher@kernel.crashing.org>
4965
4966         * config/rs6000/rs6000.h (WORD_REGISTER_OPERATIONS): Delete.
4967
4968 2015-06-18  Steve Ellcey  <sellcey@imgtec.com>
4969
4970         * config/mips/mips.c (mips_rtx_costs): Remove HONOR_NAN check.
4971         * config/mips/mips.md (*madd4<mode>): Ditto.
4972         (*nmadd3<mode>) Ditto.
4973         (*nmadd4<mode>_fastmath): Ditto.
4974         (*nmadd3<mode>_fastmath): Ditto.
4975         (*nmsub4<mode>): Ditto.
4976         (*nmsub3<mode>): Ditto.
4977         (*nmsub4<mode>_fastmath): Ditto.
4978         (*nmsub3<mode>_fastmath): Ditto.
4979
4980 2015-06-18  Michael Matz  <matz@suse.de>
4981
4982         PR middle-end/66253
4983         * tree-vect-stmts.c (vectorizable_store): Implement non-SLP
4984         grouped strided stores.
4985         (vectorizable_load): Don't use the DR from first_stmt in
4986         the non-SLP grouped strided case.
4987
4988 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
4989
4990         PR target/66569
4991         * function.c (assign_bounds): Add arguments assign_regs,
4992         assign_special, assign_bt.
4993         (assign_parms): For vararg functions handle bounds in BT
4994         and special slots after incoming vararg bounds.
4995
4996 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
4997
4998         PR middle-end/66568
4999         * cfgexpand.c (expand_return): Handle missing bounds.
5000         (expand_gimple_stmt_1): Likewise.
5001         * tree-chkp.c (chkp_expand_zero_bounds): New.
5002         * tree-chkp.h (chkp_expand_zero_bounds): New.
5003
5004 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
5005
5006         PR middle-end/66567
5007         * ipa-chkp.c (chkp_maybe_create_clone): Require
5008         functions to be instrumentable.
5009         * tree-chkp.c (chkp_replace_function_pointer): Use
5010         chkp_instrumentable_p instead of attribute check.
5011
5012 2015-06-18  Richard Biener  <rguenther@suse.de>
5013
5014         PR tree-optimization/66510
5015         * tree-vect-stmts.c (vectorizable_load): Properly compute the
5016         number of vector loads for SLP permuted loads.
5017         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Also
5018         check the stride for loop vectorization.
5019         (vect_enhance_data_refs_alignment): Deal with SLP adjusted
5020         vectorization factor.
5021         (vect_analyze_group_access): If the group size is not a power
5022         of two require a epilogue loop.
5023         * tree-vect-loop.c (vect_analyze_loop_2): Move alignment
5024         compute and optimizing and alias test pruning after final
5025         vectorization factor computation.
5026         * tree-vect-slp.c (vect_build_slp_tree_1): Remove check on
5027         vector alignment.
5028         (vect_transform_slp_perm_load): Properly compute the original
5029         number of vector load stmts.
5030
5031 2015-06-18  Uros Bizjak  <ubizjak@gmail.com>
5032
5033         * doc/invoke.texi (-fsanitize-sections): Split @var to avoid
5034         "unlikely character , in @var" warning.
5035
5036 2015-06-17  Uros Bizjak  <ubizjak@gmail.com>
5037
5038         * config/i386/i386.c (ix86_function_arg): Nest TARGET_64BIT code.
5039         (ix86_function_arg_advance): Ditto.
5040         (ix86_pass_by_reference): Ditto.  Rewrite MS_ABI part.
5041
5042 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
5043
5044         * function.h (struct rtl_data): Remove struct and accessor macros.
5045         * emit-rtl.h (struct rtl_data): Relocate to here.
5046         * Makefile.in (GTFILES): Add emit-rtl.h.
5047         * df-core.c: Include emit-rtl.h.
5048         * genattrtab.c: Likewise.
5049         * genconditions.c: Likewise.
5050         * genpreds.c: Likewise.
5051         * genrecog.c: Likewise.
5052         * regcprop.c: Likewise.
5053         * resource.c: Likewise.
5054         * sched-rgn.c: Likewise.
5055         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
5056         * config/i386/winnt.c: Likewise.
5057
5058 2015-06-17  Jakub Jelinek  <jakub@redhat.com>
5059
5060         PR middle-end/66429
5061         * omp-low.c (expand_omp_taskreg, expand_omp_target): Use child_cfun
5062         instead of DECL_STRUCT_FUNCTION (child_fn).  Or in has_simduid_loops
5063         and has_force_vectorize_loops flags from cfun into
5064         child_cfun.
5065         (expand_omp_simd): For broken loop, set cfun->has_simduid_loops
5066         if simduid is non-NULL.
5067         * tree-pass.h (make_pass_simduid_cleanup): New prototype.
5068         * passes.def (pass_simduid_cleanup): Add new pass after loop
5069         passes.
5070         * tree-vectorizer.c (adjust_simduid_builtins): Remove one unnecessary
5071         indirection from htab argument's type.
5072         (shrink_simd_arrays): New function.
5073         (vectorize_loops): Use it.  Adjust adjust_simduid_builtins caller.
5074         Don't call adjust_simduid_builtins if there are no loops.
5075         (pass_data_simduid_cleanup, pass_simduid_cleanup): New variables.
5076         (pass_simduid_cleanup::execute): New method.
5077         (make_pass_simduid_cleanup): New function.
5078
5079 2017-06-17  Andrew MacLeod  <amacleod@redhat.com>
5080
5081         * tree-core.h (tree_target_option): Make opts field a pointer to a
5082         cl_target_option instead of an instance of the struct.
5083         * tree.h (TREE_TARGET_OPTION): Return the pointer, not an address of
5084         the structure.
5085         * tree.c (make_node_stat ): Allocate a cl_target_option struct for
5086         TARGET_OPTION_NODE.
5087         (copy_node_stat): Allocate and copy struct cl_target_option.
5088
5089 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
5090
5091         * tree.h (merge_dllimport_decl_attributes, handle_dll_attribute):
5092         Remove conditional exposure of prototypes.
5093         (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Delete.
5094         * tree.c (anon_aggrname_format, anon_aggrname_p): New.  Replace macro
5095         definitions in tree.h with functions.
5096         * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Use
5097         anon_aggrname_p.
5098         * tree-streamer-out.c (write_ts_decl_minimal_tree_pointers): Likewise.
5099
5100 2015-06-17  Segher Boessenkool  <segher@kernel.crashing.org>
5101
5102         * config/rs6000/rs6000.md (*cmp<mode>_internal1): Rename to...
5103         (*cmp<mode>_signed): ... this.
5104         (*cmpsi_internal2, *cmpdi_internal2): Merge, rename to...
5105         (*cmp<mode>_unsigned): ... this.  Remove %b.
5106
5107 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
5108
5109         * coretypes.h: Include input.h and as-a.h.
5110         * rtl.h: Include input.h and as-a.h for generator files.
5111         * hwint.c: Include coretypes.h, don't include diagnostic-core.h.
5112         * vec.c: Don't include diagnostic-core.h.
5113         * alias.c: Do not include input.h, line-map.h or is-a.h.
5114         * asan.c: Likewise.
5115         * attribs.c: Likewise.
5116         * auto-inc-dec.c: Likewise.
5117         * auto-profile.c: Likewise.
5118         * bb-reorder.c: Likewise.
5119         * bt-load.c: Likewise.
5120         * builtins.c: Likewise.
5121         * caller-save.c: Likewise.
5122         * calls.c: Likewise.
5123         * ccmp.c: Likewise.
5124         * cfg.c: Likewise.
5125         * cfganal.c: Likewise.
5126         * cfgbuild.c: Likewise.
5127         * cfgcleanup.c: Likewise.
5128         * cfgexpand.c: Likewise.
5129         * cfghooks.c: Likewise.
5130         * cfgloop.c: Likewise.
5131         * cfgloop.h: Likewise.
5132         * cfgloopanal.c: Likewise.
5133         * cfgloopmanip.c: Likewise.
5134         * cfgrtl.c: Likewise.
5135         * cgraph.c: Likewise.
5136         * cgraphbuild.c: Likewise.
5137         * cgraphclones.c: Likewise.
5138         * cgraphunit.c: Likewise.
5139         * cilk-common.c: Likewise.
5140         * combine-stack-adj.c: Likewise.
5141         * combine.c: Likewise.
5142         * compare-elim.c: Likewise.
5143         * convert.c: Likewise.
5144         * coverage.c: Likewise.
5145         * cppbuiltin.c: Likewise.
5146         * cprop.c: Likewise.
5147         * cse.c: Likewise.
5148         * cselib.c: Likewise.
5149         * data-streamer-in.c: Likewise.
5150         * data-streamer-out.c: Likewise.
5151         * data-streamer.c: Likewise.
5152         * dbxout.c: Likewise.
5153         * dce.c: Likewise.
5154         * ddg.c: Likewise.
5155         * debug.c: Likewise.
5156         * df-core.c: Likewise.
5157         * df-problems.c: Likewise.
5158         * df-scan.c: Likewise.
5159         * df.h: Likewise.
5160         * dfp.c: Likewise.
5161         * diagnostic-core.h: Likewise.
5162         * diagnostic.c: Likewise.
5163         * dojump.c: Likewise.
5164         * dominance.c: Likewise.
5165         * domwalk.c: Likewise.
5166         * double-int.c: Likewise.
5167         * dse.c: Likewise.
5168         * dumpfile.c: Likewise.
5169         * dumpfile.h: Likewise.
5170         * dwarf2asm.c: Likewise.
5171         * dwarf2cfi.c: Likewise.
5172         * dwarf2out.c: Likewise.
5173         * emit-rtl.c: Likewise.
5174         * et-forest.c: Likewise.
5175         * except.c: Likewise.
5176         * explow.c: Likewise.
5177         * expmed.c: Likewise.
5178         * expr.c: Likewise.
5179         * final.c: Likewise.
5180         * fixed-value.c: Likewise.
5181         * fold-const.c: Likewise.
5182         * function.c: Likewise.
5183         * fwprop.c: Likewise.
5184         * gcc-plugin.h: Likewise.
5185         * gcse.c: Likewise.
5186         * generic-match-head.c: Likewise.
5187         * ggc-page.c: Likewise.
5188         * gimple-builder.c: Likewise.
5189         * gimple-expr.c: Likewise.
5190         * gimple-fold.c: Likewise.
5191         * gimple-iterator.c: Likewise.
5192         * gimple-low.c: Likewise.
5193         * gimple-match-head.c: Likewise.
5194         * gimple-pretty-print.c: Likewise.
5195         * gimple-ssa-isolate-paths.c: Likewise.
5196         * gimple-ssa-strength-reduction.c: Likewise.
5197         * gimple-streamer-in.c: Likewise.
5198         * gimple-streamer-out.c: Likewise.
5199         * gimple-streamer.h: Likewise.
5200         * gimple-walk.c: Likewise.
5201         * gimple.c: Likewise.
5202         * gimplify-me.c: Likewise.
5203         * gimplify.c: Likewise.
5204         * godump.c: Likewise.
5205         * graph.c: Likewise.
5206         * graphite-blocking.c: Likewise.
5207         * graphite-dependences.c: Likewise.
5208         * graphite-interchange.c: Likewise.
5209         * graphite-isl-ast-to-gimple.c: Likewise.
5210         * graphite-optimize-isl.c: Likewise.
5211         * graphite-poly.c: Likewise.
5212         * graphite-scop-detection.c: Likewise.
5213         * graphite-sese-to-poly.c: Likewise.
5214         * graphite.c: Likewise.
5215         * haifa-sched.c: Likewise.
5216         * hw-doloop.c: Likewise.
5217         * ifcvt.c: Likewise.
5218         * init-regs.c: Likewise.
5219         * input.c: Likewise.
5220         * internal-fn.c: Likewise.
5221         * ipa-chkp.c: Likewise.
5222         * ipa-comdats.c: Likewise.
5223         * ipa-cp.c: Likewise.
5224         * ipa-devirt.c: Likewise.
5225         * ipa-icf-gimple.c: Likewise.
5226         * ipa-icf.c: Likewise.
5227         * ipa-inline-analysis.c: Likewise.
5228         * ipa-inline-transform.c: Likewise.
5229         * ipa-inline.c: Likewise.
5230         * ipa-polymorphic-call.c: Likewise.
5231         * ipa-profile.c: Likewise.
5232         * ipa-prop.c: Likewise.
5233         * ipa-pure-const.c: Likewise.
5234         * ipa-ref.c: Likewise.
5235         * ipa-reference.c: Likewise.
5236         * ipa-split.c: Likewise.
5237         * ipa-utils.c: Likewise.
5238         * ipa-visibility.c: Likewise.
5239         * ipa.c: Likewise.
5240         * ira-build.c: Likewise.
5241         * ira-color.c: Likewise.
5242         * ira-conflicts.c: Likewise.
5243         * ira-costs.c: Likewise.
5244         * ira-emit.c: Likewise.
5245         * ira-lives.c: Likewise.
5246         * ira.c: Likewise.
5247         * jump.c: Likewise.
5248         * langhooks.c: Likewise.
5249         * lcm.c: Likewise.
5250         * loop-doloop.c: Likewise.
5251         * loop-init.c: Likewise.
5252         * loop-invariant.c: Likewise.
5253         * loop-iv.c: Likewise.
5254         * loop-unroll.c: Likewise.
5255         * lower-subreg.c: Likewise.
5256         * lra-assigns.c: Likewise.
5257         * lra-coalesce.c: Likewise.
5258         * lra-constraints.c: Likewise.
5259         * lra-eliminations.c: Likewise.
5260         * lra-lives.c: Likewise.
5261         * lra-remat.c: Likewise.
5262         * lra-spills.c: Likewise.
5263         * lra.c: Likewise.
5264         * lto-cgraph.c: Likewise.
5265         * lto-compress.c: Likewise.
5266         * lto-opts.c: Likewise.
5267         * lto-section-in.c: Likewise.
5268         * lto-section-out.c: Likewise.
5269         * lto-streamer-in.c: Likewise.
5270         * lto-streamer-out.c: Likewise.
5271         * lto-streamer.c: Likewise.
5272         * mcf.c: Likewise.
5273         * mode-switching.c: Likewise.
5274         * modulo-sched.c: Likewise.
5275         * omega.c: Likewise.
5276         * omp-low.c: Likewise.
5277         * optabs.c: Likewise.
5278         * opts-global.c: Likewise.
5279         * opts.h: Likewise.
5280         * passes.c: Likewise.
5281         * plugin.c: Likewise.
5282         * postreload-gcse.c: Likewise.
5283         * postreload.c: Likewise.
5284         * predict.c: Likewise.
5285         * pretty-print.h: Likewise.
5286         * print-rtl.c: Likewise.
5287         * print-tree.c: Likewise.
5288         * profile.c: Likewise.
5289         * real.c: Likewise.
5290         * realmpfr.c: Likewise.
5291         * recog.c: Likewise.
5292         * ree.c: Likewise.
5293         * reg-stack.c: Likewise.
5294         * regcprop.c: Likewise.
5295         * reginfo.c: Likewise.
5296         * regrename.c: Likewise.
5297         * regstat.c: Likewise.
5298         * reload.c: Likewise.
5299         * reload1.c: Likewise.
5300         * reorg.c: Likewise.
5301         * resource.c: Likewise.
5302         * rtl-chkp.c: Likewise.
5303         * rtl-error.c: Likewise.
5304         * rtlanal.c: Likewise.
5305         * rtlhooks.c: Likewise.
5306         * sanopt.c: Likewise.
5307         * sched-deps.c: Likewise.
5308         * sched-ebb.c: Likewise.
5309         * sched-rgn.c: Likewise.
5310         * sched-vis.c: Likewise.
5311         * sdbout.c: Likewise.
5312         * sel-sched-dump.c: Likewise.
5313         * sel-sched-ir.c: Likewise.
5314         * sel-sched.c: Likewise.
5315         * sese.c: Likewise.
5316         * shrink-wrap.c: Likewise.
5317         * simplify-rtx.c: Likewise.
5318         * stack-ptr-mod.c: Likewise.
5319         * statistics.c: Likewise.
5320         * stmt.c: Likewise.
5321         * stor-layout.c: Likewise.
5322         * store-motion.c: Likewise.
5323         * streamer-hooks.c: Likewise.
5324         * stringpool.c: Likewise.
5325         * symtab.c: Likewise.
5326         * target-globals.c: Likewise.
5327         * targhooks.c: Likewise.
5328         * toplev.c: Likewise.
5329         * tracer.c: Likewise.
5330         * trans-mem.c: Likewise.
5331         * tree-affine.c: Likewise.
5332         * tree-browser.c: Likewise.
5333         * tree-call-cdce.c: Likewise.
5334         * tree-cfg.c: Likewise.
5335         * tree-cfgcleanup.c: Likewise.
5336         * tree-chkp-opt.c: Likewise.
5337         * tree-chkp.c: Likewise.
5338         * tree-chrec.c: Likewise.
5339         * tree-complex.c: Likewise.
5340         * tree-data-ref.c: Likewise.
5341         * tree-dfa.c: Likewise.
5342         * tree-diagnostic.c: Likewise.
5343         * tree-dump.c: Likewise.
5344         * tree-eh.c: Likewise.
5345         * tree-emutls.c: Likewise.
5346         * tree-if-conv.c: Likewise.
5347         * tree-inline.c: Likewise.
5348         * tree-into-ssa.c: Likewise.
5349         * tree-iterator.c: Likewise.
5350         * tree-loop-distribution.c: Likewise.
5351         * tree-nested.c: Likewise.
5352         * tree-nrv.c: Likewise.
5353         * tree-object-size.c: Likewise.
5354         * tree-outof-ssa.c: Likewise.
5355         * tree-parloops.c: Likewise.
5356         * tree-phinodes.c: Likewise.
5357         * tree-predcom.c: Likewise.
5358         * tree-pretty-print.c: Likewise.
5359         * tree-profile.c: Likewise.
5360         * tree-scalar-evolution.c: Likewise.
5361         * tree-sra.c: Likewise.
5362         * tree-ssa-address.c: Likewise.
5363         * tree-ssa-alias.c: Likewise.
5364         * tree-ssa-ccp.c: Likewise.
5365         * tree-ssa-coalesce.c: Likewise.
5366         * tree-ssa-copy.c: Likewise.
5367         * tree-ssa-copyrename.c: Likewise.
5368         * tree-ssa-dce.c: Likewise.
5369         * tree-ssa-dom.c: Likewise.
5370         * tree-ssa-dse.c: Likewise.
5371         * tree-ssa-forwprop.c: Likewise.
5372         * tree-ssa-ifcombine.c: Likewise.
5373         * tree-ssa-live.c: Likewise.
5374         * tree-ssa-loop-ch.c: Likewise.
5375         * tree-ssa-loop-im.c: Likewise.
5376         * tree-ssa-loop-ivcanon.c: Likewise.
5377         * tree-ssa-loop-ivopts.c: Likewise.
5378         * tree-ssa-loop-manip.c: Likewise.
5379         * tree-ssa-loop-niter.c: Likewise.
5380         * tree-ssa-loop-prefetch.c: Likewise.
5381         * tree-ssa-loop-unswitch.c: Likewise.
5382         * tree-ssa-loop.c: Likewise.
5383         * tree-ssa-math-opts.c: Likewise.
5384         * tree-ssa-operands.c: Likewise.
5385         * tree-ssa-phiopt.c: Likewise.
5386         * tree-ssa-phiprop.c: Likewise.
5387         * tree-ssa-pre.c: Likewise.
5388         * tree-ssa-propagate.c: Likewise.
5389         * tree-ssa-reassoc.c: Likewise.
5390         * tree-ssa-sccvn.c: Likewise.
5391         * tree-ssa-scopedtables.c: Likewise.
5392         * tree-ssa-sink.c: Likewise.
5393         * tree-ssa-strlen.c: Likewise.
5394         * tree-ssa-structalias.c: Likewise.
5395         * tree-ssa-tail-merge.c: Likewise.
5396         * tree-ssa-ter.c: Likewise.
5397         * tree-ssa-threadedge.c: Likewise.
5398         * tree-ssa-threadupdate.c: Likewise.
5399         * tree-ssa-uncprop.c: Likewise.
5400         * tree-ssa-uninit.c: Likewise.
5401         * tree-ssa.c: Likewise.
5402         * tree-ssanames.c: Likewise.
5403         * tree-stdarg.c: Likewise.
5404         * tree-streamer-in.c: Likewise.
5405         * tree-streamer-out.c: Likewise.
5406         * tree-streamer.c: Likewise.
5407         * tree-switch-conversion.c: Likewise.
5408         * tree-tailcall.c: Likewise.
5409         * tree-vect-data-refs.c: Likewise.
5410         * tree-vect-generic.c: Likewise.
5411         * tree-vect-loop-manip.c: Likewise.
5412         * tree-vect-loop.c: Likewise.
5413         * tree-vect-patterns.c: Likewise.
5414         * tree-vect-slp.c: Likewise.
5415         * tree-vect-stmts.c: Likewise.
5416         * tree-vectorizer.c: Likewise.
5417         * tree-vrp.c: Likewise.
5418         * tree.c: Likewise.
5419         * tsan.c: Likewise.
5420         * ubsan.c: Likewise.
5421         * valtrack.c: Likewise.
5422         * value-prof.c: Likewise.
5423         * var-tracking.c: Likewise.
5424         * varasm.c: Likewise.
5425         * varpool.c: Likewise.
5426         * vmsdbgout.c: Likewise.
5427         * vtable-verify.c: Likewise.
5428         * web.c: Likewise.
5429         * wide-int.cc: Likewise.
5430         * xcoffout.c: Likewise.
5431         * common/common-target.h: Do not include input.h, line-map.h or is-a.h.
5432         * common/common-targhooks.c: Likewise.
5433         * config/aarch64/aarch64-builtins.c: Likewise.
5434         * config/aarch64/aarch64.c: Likewise.
5435         * config/alpha/alpha.c: Likewise.
5436         * config/arc/arc.c: Likewise.
5437         * config/arm/aarch-common.c: Likewise.
5438         * config/arm/arm-builtins.c: Likewise.
5439         * config/arm/arm-c.c: Likewise.
5440         * config/arm/arm.c: Likewise.
5441         * config/avr/avr-c.c: Likewise.
5442         * config/avr/avr-log.c: Likewise.
5443         * config/avr/avr.c: Likewise.
5444         * config/bfin/bfin.c: Likewise.
5445         * config/c6x/c6x.c: Likewise.
5446         * config/cr16/cr16.c: Likewise.
5447         * config/cris/cris.c: Likewise.
5448         * config/darwin-c.c: Likewise.
5449         * config/darwin.c: Likewise.
5450         * config/default-c.c: Likewise.
5451         * config/epiphany/epiphany.c: Likewise.
5452         * config/epiphany/mode-switch-use.c: Likewise.
5453         * config/epiphany/resolve-sw-modes.c: Likewise.
5454         * config/fr30/fr30.c: Likewise.
5455         * config/frv/frv.c: Likewise.
5456         * config/ft32/ft32.c: Likewise.
5457         * config/glibc-c.c: Likewise.
5458         * config/h8300/h8300.c: Likewise.
5459         * config/i386/i386-c.c: Likewise.
5460         * config/i386/i386.c: Likewise.
5461         * config/i386/msformat-c.c: Likewise.
5462         * config/i386/winnt-cxx.c: Likewise.
5463         * config/i386/winnt-stubs.c: Likewise.
5464         * config/i386/winnt.c: Likewise.
5465         * config/ia64/ia64-c.c: Likewise.
5466         * config/ia64/ia64.c: Likewise.
5467         * config/iq2000/iq2000.c: Likewise.
5468         * config/lm32/lm32.c: Likewise.
5469         * config/m32c/m32c-pragma.c: Likewise.
5470         * config/m32c/m32c.c: Likewise.
5471         * config/m32r/m32r.c: Likewise.
5472         * config/m68k/m68k.c: Likewise.
5473         * config/mcore/mcore.c: Likewise.
5474         * config/mep/mep-pragma.c: Likewise.
5475         * config/mep/mep.c: Likewise.
5476         * config/microblaze/microblaze-c.c: Likewise.
5477         * config/microblaze/microblaze.c: Likewise.
5478         * config/mips/mips.c: Likewise.
5479         * config/mmix/mmix.c: Likewise.
5480         * config/mn10300/mn10300.c: Likewise.
5481         * config/moxie/moxie.c: Likewise.
5482         * config/msp430/msp430-c.c: Likewise.
5483         * config/msp430/msp430.c: Likewise.
5484         * config/nds32/nds32-cost.c: Likewise.
5485         * config/nds32/nds32-fp-as-gp.c: Likewise.
5486         * config/nds32/nds32-intrinsic.c: Likewise.
5487         * config/nds32/nds32-isr.c: Likewise.
5488         * config/nds32/nds32-md-auxiliary.c: Likewise.
5489         * config/nds32/nds32-memory-manipulation.c: Likewise.
5490         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
5491         * config/nds32/nds32-predicates.c: Likewise.
5492         * config/nds32/nds32.c: Likewise.
5493         * config/nios2/nios2.c: Likewise.
5494         * config/nvptx/nvptx.c: Likewise.
5495         * config/pa/pa.c: Likewise.
5496         * config/pdp11/pdp11.c: Likewise.
5497         * config/rl78/rl78-c.c: Likewise.
5498         * config/rl78/rl78.c: Likewise.
5499         * config/rs6000/rs6000-c.c: Likewise.
5500         * config/rs6000/rs6000.c: Likewise.
5501         * config/rx/rx.c: Likewise.
5502         * config/s390/s390-c.c: Likewise.
5503         * config/s390/s390.c: Likewise.
5504         * config/sh/sh-c.c: Likewise.
5505         * config/sh/sh-mem.cc: Likewise.
5506         * config/sh/sh.c: Likewise.
5507         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
5508         * config/sh/sh_treg_combine.cc: Likewise.
5509         * config/sol2-c.c: Likewise.
5510         * config/sol2-cxx.c: Likewise.
5511         * config/sol2-stubs.c: Likewise.
5512         * config/sol2.c: Likewise.
5513         * config/sparc/sparc-c.c: Likewise.
5514         * config/sparc/sparc.c: Likewise.
5515         * config/spu/spu-c.c: Likewise.
5516         * config/spu/spu.c: Likewise.
5517         * config/stormy16/stormy16.c: Likewise.
5518         * config/tilegx/mul-tables.c: Likewise.
5519         * config/tilegx/tilegx-c.c: Likewise.
5520         * config/tilegx/tilegx.c: Likewise.
5521         * config/tilepro/mul-tables.c: Likewise.
5522         * config/tilepro/tilepro-c.c: Likewise.
5523         * config/tilepro/tilepro.c: Likewise.
5524         * config/v850/v850-c.c: Likewise.
5525         * config/v850/v850.c: Likewise.
5526         * config/vax/vax.c: Likewise.
5527         * config/visium/visium.c: Likewise.
5528         * config/vms/vms-c.c: Likewise.
5529         * config/vms/vms.c: Likewise.
5530         * config/vxworks.c: Likewise.
5531         * config/winnt-c.c: Likewise.
5532         * config/xtensa/xtensa.c: Likewise.
5533
5534 2015-06-17  Robert Suchanek  <robert.suchanek@imgtec.com>
5535
5536         * config/mips/mips.c (mips_ira_change_pseudo_allocno_class): New
5537         function.
5538         (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define macro.
5539
5540 2015-06-17  Richard Biener  <rguenther@suse.de>
5541
5542         PR tree-optimization/66251
5543         * tree-vect-stmts.c (vectorizable_store): Fix gathering of vectorized
5544         stmts for SLP strided stores.
5545
5546         Revert
5547         2015-05-22  Richard Biener  <rguenther@suse.de>
5548
5549         PR tree-optimization/66251
5550         * tree-vect-stmts.c (vectorizable_conversion): Properly
5551         set STMT_VINFO_VEC_STMT even for the SLP case.
5552
5553         2015-05-26  Michael Matz  <matz@suse.de>
5554
5555         PR middle-end/66251
5556         * tree-vect-stmts.c (vect_create_vectorized_demotion_stmts): Always set
5557         STMT_VINFO_VEC_STMT, also with SLP.
5558
5559 2015-06-16  Uros Bizjak  <ubizjak@gmail.com>
5560
5561         PR target/56766
5562         * config/i386/sse.md (*avx_addsubv4df3_1): New insn pattern.
5563         (*avx_addsubv4df3_1s): Ditto.
5564         (*sse3_addsubv2df3_1): Ditto.
5565         (*sse3_addsubv2df3_1s): Ditto.
5566         (*avx_addsubv8sf3_1): Ditto.
5567         (*avx_addsubv8sf3_1s): Ditto.
5568         (*sse3_addsubv4sf3_1): Ditto.
5569         (*sse3_addsubv4sf3_1s): Ditto.
5570
5571 2015-06-16  Steve Ellcey  <sellcey@imgtec.com>
5572
5573         * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): New.
5574         (SYSROOT_SUFFIX_SPEC): Update.
5575         (SYSROOT_HEADERS_SUFFIX_SPEC): New.
5576         (STARTFILE_PREFIX_SPEC): Update.
5577         * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Remove.
5578         (MULTILIB_REQUIRED): New.
5579         (MULTILIB_OSDIRNAMES): New.
5580         * config/mips/t-img-linux (MULTILIB_EXCEPTIONS): Remove.
5581         (MULTILIB_REQUIRED): New.
5582         (MULTILIB_OSDIRNAMES): New.
5583
5584 2015-06-16  Matthew Wahab  <matthew.wahab@arm.com>
5585
5586         * config/aarch64/aarch64-arches.def: Add "armv8.1-a".
5587         * config/aarch64/aarch64-options-extensions.def: Update "fP",
5588         "simd" and "crypto".  Add "lse", "pan", "lor" and "rdma".
5589         * gcc/config/aarch64/aarch64.h (AARCH64_FL_LSE): New.
5590         (AARCH64_FL_PAN): New.
5591         (AARCH64_FL_LOR): New.
5592         (AARCH64_FL_RDMA): New.
5593         (AARCH64_FL_FOR_ARCH8_1): New.
5594         * doc/invoke.texi (AArch64 Options): Add "armv8.1-a" to
5595         -march. Add "lse", "pan", "lor", "rdma" to feature modifiers.
5596
5597 2015-06-16  Martin Liska  <mliska@suse.cz>
5598
5599         * bitmap.c (dump_bitmap_statistics): Fix GNU coding style.
5600         * hash-table.c (void dump_hash_table_loc_statistics): Add missing
5601         guard.
5602
5603 2015-06-16  Richard Biener  <rguenther@suse.de>
5604
5605         * tree-vect-stmts.c (vectorizable_store): Adjust.
5606         (vectorizable_load): Likewise.
5607         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
5608         Simplify.
5609         (vect_create_data_ref_ptr): Likewise.
5610         (bump_vector_ptr): Adjust.
5611
5612 2015-06-16  Richard Biener  <rguenther@suse.de>
5613
5614         * tree-vect-stmts.c (vectorizable_load): Properly start loads
5615         with the first element if this is grouped loads.
5616
5617 2015-06-16  James Greenhalgh  <james.greenhalgh@arm.com>
5618
5619         * config/arm/arm-protos.h (struct tune_params): Rename
5620         log_op_non_sc to log_op_non_short_circuit, and rename enum
5621         values to expand SC to SHORT_CIRCUIT.
5622         * config/arm/arm.c (arm_slowmul_tune): Expand LOG_OP_NON_SC
5623         to LOG_OP_NON_SHORT_CIRCUIT.
5624         (arm_fastmul_tune):Likewise
5625         (arm_strongarm_tune): Likewise.
5626         (arm_xscale_tune): Likewise.
5627         (arm_9e_tune): Likewise.
5628         (arm_marvell_pj4_tune): Likewise.
5629         (arm_v6t2_tune): Likewise.
5630         (arm_cortex_tune): Likewise.
5631         (arm_cortex_a8_tune): Likewise.
5632         (arm_cortex_a7_tune): Likewise.
5633         (arm_cortex_a15_tune): Likewise.
5634         (arm_cortex_a53_tune): Likewise.
5635         (arm_cortex_a57_tune): Likewise.
5636         (arm_xgene1_tune): Likewise.
5637         (arm_cortex_a5_tune): Likewise.
5638         (arm_cortex_a9_tune): Likewise.
5639         (arm_cortex_a12_tune): Likewise.
5640         (arm_v7m_tune): Likewise.
5641         (arm_cortex_m7_tune): Likewise.
5642         (arm_v6m_tune): Likewise.
5643         (arm_fa726te_tune): Likewise.
5644
5645 2015-06-15  David Edelsohn  <dje.gcc@gmail.com>
5646
5647         * altivec.md: Delete UNSPEC_VMLADDUHM.
5648         (mulv4si3_p8): New pattern.
5649         (mulv4si3): Use it for POWER8.
5650         (mulv8hi3): Use vmladduhm with zero addend.
5651         (altivec_vmladduhm): Descriptive RTL.
5652
5653 2015-06-15  Jim Wilson  <jim.wilson@linaro.org>
5654
5655         * config/aarch64/aarch64.md (mov<mode>_aarch64): Change alternative 2
5656         to use neon_move instead of mov_imm.
5657         (movdi_aarch64): Change alternative 14 to use neon_move not fmov.
5658         (movtf_aarch64): Change alternative 4 to use neon_move_q not fconstd.
5659
5660         * config/aarch64/aarch64.c (aarch64_valid_floating_const): Move
5661         aarch64_float_const_zero_rtx_p check before TFmode check.
5662         * config/aarch64/aarch64.md (movtf): Don't call force_reg if op1 is
5663         an fp zero.
5664         (movtf_aarch64): Separate ?rY alternative into two.  Adjust assembly
5665         code and attributes to match.  Change condition from register_operand
5666         to aarch64_reg_or_fp_zero for op1.  Change type for ldp from
5667         neon_load1_2reg to load2.  Change type for stp from neon_store1_2reg
5668         to store2.
5669
5670 2015-06-15  Aldy Hernandez  <aldyh@redhat.com>
5671
5672         PR debug/66535
5673         * dwarf2out.c (gen_subprogram_die): Do not check a parent's tag if
5674         there is no parent.
5675
5676 2015-06-14  Shiva Chen  <shiva0217@gmail.com>
5677
5678         * aarch64.c (aarch64_simd_lane_bounds): Change %ld to %wd for
5679         HOST_WIDE_INT parameter.
5680
5681 2015-06-14  Jan Hubicka  <hubicka@ucw.cz>
5682
5683         PR ipa/66181
5684         * lto-streamer-out.c (hash_tree): Do not hash TYPE_NO_FORCE_BLK.
5685         * tree-streamer-out.c (pack_ts_type_common_value_fields): Do not stream
5686         TYPE_NO_FORCE_BLK.
5687         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Likewise.
5688
5689 2015-06-14  Richard Sandiford  <richard.sandiford@arm.com>
5690
5691         * rtl.h (classify_insn): Declare.
5692         * emit-rtl.c (classify_insn): Move to...
5693         * rtl.c: ...here and add generator support.
5694         * gensupport.h (get_emit_function, needs_barrier_p): Declare.
5695         * gensupport.c (get_emit_function, needs_barrier_p): New functions.
5696         * genemit.c (gen_emit_seq): New function.
5697         (gen_expand, gen_split): Use it.
5698
5699 2015-06-13  Patrick Palka  <ppalka@gcc.gnu.org>
5700
5701         * tree.c (make_vector_stat): Fix comment to state that the
5702         function returns a VECTOR_CST.
5703
5704 2015-06-13  Richard Sandiford  <richard.sandiford@arm.com>
5705
5706         * gensupport.h (add_implicit_parallel): Declare.
5707         * genrecog.c (add_implicit_parallel): Move to...
5708         * gensupport.c (add_implicit_parallel): ...here.
5709         (process_one_cond_exec): Use it.
5710         * genemit.c (gen_insn): Likewise.
5711
5712 2015-06-13  Iain Sandoe  <iain@codesourcery.com>
5713
5714         PR bootstrap/66448
5715         * passes.c (rest_of_decl_compilation): Do not register globals for
5716         early debug if they are declared in built-ins.
5717
5718 2015-06-12  Aldy Hernandez  <aldyh@redhat.com>
5719
5720         * dwarf2out.c (check_die): Protect with ENABLE_CHECKING.
5721
5722 2015-06-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5723
5724         * ifcvt.c (noce_try_store_flag_constants): Use std::swap instead of
5725         manually swapping.
5726         (noce_try_cmove_arith): Likewise.
5727         (noce_get_alt_condition): Likewise.
5728
5729 2015-06-12  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
5730
5731         * common/config/i386/i386-common.c
5732         (OPTION_MASK_ISA_MWAITX_SET): New.
5733         (ix86_handle_option): Handle mwaitx.
5734         * config.gcc (i[34567]86-*-*): Add mwaitxintrin.h,
5735         (x86_64-*-*): Likewise.
5736         * config/i386/mwaitxintrin.h: New header.
5737         * config/i386/cpuid.h (bit_MWAITX):  Define.
5738         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
5739         MWAITX support.
5740         * config/i386/i386.opt (mwaitx): New.
5741         * config/i386/i386-builtin-types.def
5742         (VOID_FTYPE_UNSIGNED_ UNSIGNED_UNSIGNED): New function type.
5743         * config/i386/i386-c.c: Define __MWAITX__ if needed.
5744         * config/i386/i386.c (ix86_target_string): Define -mmwaitx option.
5745         (PTA_MWAITX): New.
5746         (ix86_option_override_internal): Handle new option.
5747         (processor_alias_table): Added PTA_MWAITX.
5748         (ix86_valid_target_attribute_inner_p): Add OPT_mmwaitx.
5749         (ix86_builtins): Add IX86_BUILTIN_MWAITX, IX86_BUILTIN_MONITORX.
5750         (ix86_expand_builtin): Handle IX86_BUILTIN_MWAITX and
5751         IX86_BUILTIN_MONITORX  built-ins.
5752         * config/i386/i386.h (TARGET_MWAITX): New.
5753         * config/i386/i386.md (unspecv): Add UNSPEC_MWAITX and
5754         UNSPEC_MONITORX.
5755         (mwaitx):  New pattern.
5756         (monitorx_<mode>): New pattern.
5757         * config/i386/x86intrin.h: Include mwaitxintrin.h.
5758         * doc/extend.texi: Document monitorx and mwaitx builtins.
5759         * doc/invoke.texi: Document -mmwaitx option.
5760
5761 2015-06-12  Uros Bizjak  <ubizjak@gmail.com>
5762
5763         * emit-rtl.c (need_atomic_barrier_p): Mask model with
5764         MEMMODEL_BASE_MASK.  Remove MEMMODEL_SYNC_* cases.
5765
5766 2015-06-11  David Edelsohn  <dje.gcc@gmail.com>
5767
5768         * dbxout.c (xcoff_debug_hooks): Provide a function for
5769         register_main_translation_unit hook.
5770
5771 2015-06-11  David Edelsohn  <dje.gcc@gmail.com>
5772
5773         * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier): Remove SYNC
5774         variants cases from switch.
5775         (rs6000_post_atomic_barrier): Same.
5776         (rs6000_expand_atomic_compare_and_swap): Use memmodel_base.
5777         (rs6000_expand_atomic_exchange): Same.
5778         (rs6000_expand_atomic_op): Same.
5779         * config/rs6000/sync.md (mem_thread_fence): Use memodel_base. Remove
5780         SYNC variants cases from switch.
5781         (atomic_load): Same.
5782         (atomic_store): Same.
5783
5784 2015-06-11  John David Anglin  <danglin@gcc.gnu.org>
5785
5786         * config/pa/pa.c (pa_output_global_address): Handle LABEL_REF plus
5787         CONST_INT for goto.
5788
5789 2015-06-11  Aldy Hernandez  <aldyh@redhat.com>
5790
5791         PR bootstrap/66448
5792         * dwarf2out.c (check_die): Check for common duplicate attributes.
5793         (add_location_or_const_value_attribute): Do not add duplicate
5794         attributes.
5795         (gen_formal_parameter_die): Do not add DW_AT_artificial the second
5796         time around.
5797         (gen_struct_or_union_type_die): Bail early if TREE_ASM_WRITTEN.
5798         (gen_type_die_with_usage): Call check_die.
5799         (dwarf2out_decl): Only call check_die() when ENABLE_CHECKING.
5800
5801 2015-06-11  Jason Merrill  <jason@redhat.com>
5802
5803         * dwarf2out.c (prune_unused_types): Handle unused top-level limbo
5804         dies.
5805
5806 2015-06-11  Marek Polacek  <polacek@redhat.com>
5807
5808         * match.pd ((x & y) ^ (x | y)): Don't check for single_use.
5809
5810 2015-06-11  Eric Botcazou  <ebotcazou@adacore.com>
5811
5812         PR bootstrap/66252
5813         * config/sparc/sparc.c (hard_regno_mode_classes): Add ??? comment.
5814         * config/sparc/sparc.md (zero_extendsidi2_insn_sp32): Use single order.
5815         (*addx_extend_sp32): Fix pasto.
5816         (*subx_extend): Rename into...
5817         (*subx_extend_sp32): ...this.
5818         (*adddi3_extend_sp32): Add earlyclobber.
5819         (*subdi3_insn_sp32): Likewise.
5820         (*subdi3_extend_sp32): Likewise.
5821         (*and_not_di_sp32): Likewise.
5822         (*or_not_di_sp32): Likewise.
5823         (*xor_not_di_sp32): Likewise.
5824         (*negdi2_sp32): Likewise.
5825         (*one_cmpldi2_sp32): Likewise.
5826
5827 2015-06-11  Pierre-Marie de Rodat  <derodat@adacore.com>
5828
5829         * debug.h (struct gcc_debug_hooks): Add a
5830         register_main_translation_unit hook.
5831         * debug.c (do_nothing_debug_hooks): Provide a function for this
5832         new hook.
5833         * dbxout.c (dbx_debug_hooks): Likewise.
5834         * sdbout.c (sdb_debug_hooks): Likewise.
5835         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
5836         * dwarf2out.c (main_translation_unit): New global variable.
5837         (dwarf2out_register_main_translation_unit): New function
5838         implementing the new hook.
5839         (dwarf2_debug_hooks): Assign
5840         dwarf2out_register_main_translation_unit to this new hook.
5841         (dwarf2out_init): Associate any main translation unit to
5842         comp_unit_die ().
5843
5844 2015-06-11  Marek Polacek  <polacek@redhat.com>
5845
5846         * match.pd ((x & y) ^ (x | y) -> x ^ y): New pattern.
5847
5848 2015-06-11  Marek Polacek  <polacek@redhat.com>
5849
5850         * match.pd: Use single_use throughout.
5851
5852 2015-06-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5853
5854         * config/arm/arm.c (arm_option_params_internal): When optimising
5855         for speed set max_insns_skipped when arm_restrict_it.
5856
5857 2015-06-11  Christian Bruel  <christian.bruel@st.com>
5858
5859         PR target/52144
5860         * config/arm/arm-c.c (arm_cpu_cpp_builtins): Conditionally define
5861          macros in ...
5862         (arm_cpu_builtins): New function.
5863         (arm_pragma_target_parse): Call arm_cpu_builtins.
5864         * config/arm/arm-protos.h (arm_cpu_builtins): Declare.
5865         (arm_register_target_pragmas): Likewise.
5866         * config/arm/arm.h (REGISTER_TARGET_PRAGMAS):
5867          Call arm_register_target_pragmas.
5868         * config/arm/arm-c.c (arm_register_target_pragmas): New function.
5869         (arm_pragma_target_parse): Likewise.
5870
5871 2015-06-10  Kaz Kojima  <kkojima@gcc.gnu.org>
5872
5873         * config/sh/sh.md (tstsi_t): Add '?' modifier to 'r' alternative
5874         of the second operand.
5875
5876 2015-06-10  Uros Bizjak  <ubizjak@gmail.com>
5877
5878         PR target/66473
5879         * config/i386/i386.c (ix86_expand_vector_set): Use gen_int_mode
5880         to prepare mask operand for AVX512 modes.
5881
5882 2015-06-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
5883
5884         PR target/66474
5885         * doc/md.texi (Machine Constraints): Document that on the PowerPC
5886         if you use a constraint that targets a VSX register, you must use
5887         %x<n> in the template.
5888
5889 2015-06-10  Max Filippov  <jcmvbkbc@gmail.com>
5890
5891         * config/xtensa/xtensa.h (TARGET_DEBUG): New definition.
5892         * config/xtensa/xtensa.md (define_attr "type"): New type "trap".
5893         (define_insn "trap"): New definition.
5894
5895 2015-06-10  Richard Biener  <rguenther@suse.de>
5896
5897         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Split
5898         out from ...
5899         (vect_supported_load_permutation_p): ... here.  Handle
5900         supportable permutations in reductions.
5901         * tree-vect-stmts.c (vectorizable_load): Handle SLP permutations
5902         for vectorizing strided group loads.
5903
5904 2015-06-10  Jakub Jelinek  <jakub@redhat.com>
5905
5906         PR target/66470
5907         * config/i386/i386.c (ix86_split_long_move): For collisions
5908         involving direct tls segment refs, move the UNSPEC_TP possibly
5909         wrapped in ZERO_EXTEND out of the address for lea, to each of
5910         the memory loads.
5911
5912 2015-06-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5913
5914         * config/arm/sync.md (*memory_barrier): Use dmb ish instead of
5915         dmb sy. Adjust tabs.
5916
5917 2015-06-10  Tom de Vries  <tom@codesourcery.com>
5918
5919         * omp-low.c (expand_omp_target): Remove duplicate declaration of node.
5920
5921 2015-06-10  Martin Liska  <mliska@suse.cz>
5922
5923         PR bootstrap/66471
5924         * mem-stats-traits.h (enum mem_alloc_origin): Add _ORIGIN suffix for
5925         all enum values in mem_alloc_origin.
5926         * alloc-pool.c (dump_alloc_pool_statistics): Use newly changed enum
5927         name.
5928         * alloc-pool.h (pool_allocator::pool_allocator): Likewise.
5929         * bitmap.c (bitmap_register): Likewise.
5930         (dump_bitmap_statistics): Likewise.
5931         * ggc-common.c (dump_ggc_loc_statistics): Likewise.
5932         (ggc_record_overhead): Likewise.
5933         * hash-map.h: Likewise.
5934         * hash-set.h: Likewise.
5935         * hash-table.c (void dump_hash_table_loc_statistics): Likewise.
5936         * hash-table.h: Likewise.
5937         * vec.c (vec_prefix::register_overhead): Likewise.
5938         (vec_prefix::release_overhead): Likewise.
5939         (dump_vec_loc_statistics): Likewise.
5940
5941 2015-06-09  Christian Bruel  <christian.bruel@st.com>
5942
5943         PR target/52144
5944         * config/arm/arm.opt (THUMB, arm_restrict_it, inline_asm_unified): Save.
5945         * config/arm/arm-protos.h (arm_valid_target_attribute_tree): Declare.
5946         (arm_reset_previous_fndecl, arm_change_mode_p): Likewise.
5947         * config/arm/arm.h (SWITCHABLE_TARGET): Define.
5948         * config/arm/arm.c (arm_reset_previous_fndecl): New functions.
5949         (arm_valid_target_attribute_tree, arm_change_mode_p): Likewise.
5950         (arm_valid_target_attribute_p): Likewise.
5951         (arm_set_current_function, arm_can_inline_p): Likewise.
5952         (arm_valid_target_attribute_rec): Likewise.
5953         (arm_previous_fndecl): New variable.
5954         (TARGET_SET_CURRENT_FUNCTION, TARGET_OPTION_VALID_ATTRIBUTE_P): Define.
5955         (TARGET_CAN_INLINE_P): Define.
5956         (arm_asm_trampoline_template): Emit mode.
5957         (arm_file_start): Don't set unified syntax.
5958         (arm_declare_function_name): Set unified syntax and mode.
5959         (arm_option_override): Init target_option_default_node.
5960         and target_option_current_node.
5961         * config/arm/arm.md (*call_value_symbol): Set mode when possible.
5962         (*call_symbol): Likewise.
5963         * doc/extend.texi: Document ARM/Thumb target attribute.
5964         * doc/invoke.texi: Likewise.
5965
5966 2015-06-09  Alexandre Oliva <aoliva@redhat.com>
5967
5968         Revert:
5969         2015-06-09  Alexandre Oliva <aoliva@redhat.com>
5970         PR rtl-optimization/64164
5971         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
5972         * tree-ssa-copyrename.c: Removed.
5973         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
5974         -ftree-coalesce-vars.
5975         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
5976         * common.opt (ftree-copyrename): Ignore.
5977         (ftree-coalesce-inlined-vars): Likewise.
5978         * doc/invoke.texi: Remove the ignored options above.
5979         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
5980         * tree-ssa-coalesce.h: ... here.
5981         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
5982         headers required by it.
5983         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
5984         across variables when flag_tree_coalesce_vars.  Check register
5985         use and promoted modes to allow coalescing.  Moved to
5986         tree-ssa-coalesce.c.
5987         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
5988         with its member functions to tree-ssa-coalesce.c.
5989         (var_map_base_init): Likewise.  Renamed to
5990         compute_samebase_partition_bases.
5991         (partition_view_normal): Drop want_bases parameter.
5992         (partition_view_bitmap): Likewise.
5993         * tree-ssa-live.h: Adjust declarations.
5994         * tree-ssa-coalesce.c: Include explow.h.
5995         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
5996         default defs at the entry point.
5997         (dump_part_var_map): New.
5998         (compute_optimized_partition_bases): New, called by...
5999         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
6000         of compute_samebase_partition_bases.  Adjust.
6001         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
6002         * cfgexpand.c (leader_merge): New.
6003         (get_rtl_for_parm_ssa_default_def): New.
6004         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
6005         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
6006         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
6007         redundant MEM attr setting.
6008         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
6009         from...
6010         (expand_one_stack_var): ... this.  New wrapper to check and
6011         skip already expanded SSA partitions.
6012         (record_alignment_for_reg_var): New, factored out of...
6013         (expand_one_var): ... this.
6014         (expand_one_ssa_partition): New.
6015         (adjust_one_expanded_partition_var): New.
6016         (expand_one_register_var): Check and skip already expanded SSA
6017         partitions.
6018         (expand_used_vars): Don't create DECLs for anonymous SSA
6019         names.  Expand all SSA partitions, then adjust all SSA names.
6020         (pass::execute): Replace the loops that set
6021         SA.partition_to_pseudo from partition leaders and cleared
6022         DECL_RTL for multi-location variables, and that which used to
6023         rename vars and set attrs, with one that clears DECL_RTL and
6024         checks that PARMs and RESULTs default_defs match DECL_RTL.
6025         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
6026         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
6027         * explow.c (promote_ssa_mode): New.
6028         * explow.h (promote_ssa_mode): Declare.
6029         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
6030         * function.c: Include cfgexpand.h.
6031         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
6032         (use_register_for_parm_decl): Wrapper for the above to
6033         special-case the result_ptr.
6034         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
6035         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
6036         multiple locations.
6037         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
6038         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
6039         (assign_parm_setup_block): Prefer SSA-assigned location.
6040         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
6041         if stack_parm is NULL.
6042         (assign_parm_setup_stack): Prefer SSA-assigned location.
6043         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
6044         rtl before testing for pointer bounds.  Special-case result_ptr.
6045         (expand_function_start): Maybe reset DECL_RTL of result.
6046         Prefer SSA-assigned location for result and static chain.
6047         Factor out DECL_RESULT and SET_DECL_RTL.
6048         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
6049         anonymous SSA names.  Use promote_ssa_mode.
6050         (get_temp_reg): Likewise.
6051         (remove_ssa_form): Adjust.
6052         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
6053         and get its reg_usage for reg invalidation.
6054         (compute_bb_dataflow): Pass it insn.
6055         (emit_notes_in_bb): Likewise.
6056         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
6057         fail assert on conversion between unsigned types.
6058
6059 2015-06-09  Tom de Vries  <tom@codesourcery.com>
6060
6061         PR tree-optimization/65460
6062         * omp-low.c (expand_omp_target): Set parallelized_function on
6063         cgraph_node for child_fn.
6064
6065 2015-06-09  Tom de Vries  <tom@codesourcery.com>
6066
6067         * omp-low.c (finalize_task_copyfn, expand_omp_taskreg): Mark function
6068         parallelized_function before add_new_function.
6069
6070 2015-06-09  Andrew MacLeod  <amacleod@redhat.com>
6071
6072         * gcc-plugin.h: Move decls to plugin.h and include it.
6073         * plugin.h: Relocate decls from gcc-plugin.h
6074         * ggc-page.c: Include required header files.
6075         * passes.c: Likewise.
6076         * cgraphunit.c: Likewise.
6077
6078 2015-06-09  Tom de Vries  <tom@codesourcery.com>
6079
6080         * tree-stdarg.c (expand_ifn_va_arg_1): Handle location.
6081
6082 2015-06-09  Jason Merrill  <jason@redhat.com>
6083
6084         PR bootstrap/66448
6085         * toplev.c (check_global_declaration): Don't warn about a clone.
6086
6087 2015-06-09  Marek Polacek  <polacek@redhat.com>
6088
6089         PR tree-optimization/66299
6090         * match.pd ((CST1 << A) == CST2 -> A == ctz (CST2) - ctz (CST1)
6091         ((CST1 << A) != CST2 -> A != ctz (CST2) - ctz (CST1)): New
6092         patterns.
6093
6094 2015-06-09  Richard Biener  <rguenther@suse.de>
6095
6096         * tree-vect-slp.c (vect_build_slp_tree_1): Remove bailout on gaps.
6097         (vect_analyze_slp_instance): Instead do not falsely drop
6098         load permutations.
6099
6100 2015-06-09  Richard Biener  <rguenther@suse.de>
6101
6102         PR middle-end/66423
6103         * match.pd: Handle A % (unsigned)(1 << B).
6104
6105 2015-06-09  Aldy Hernandez  <aldyh@redhat.com>
6106
6107         * varasm.c (output_object_block_htab): Remove.
6108         (output_object_block_compare): New.
6109         (output_object_blocks): Sort named object_blocks before outputting
6110         them.
6111
6112 2015-06-09  Richard Biener  <rguenther@suse.de>
6113
6114         PR tree-optimization/66419
6115         * tree-vect-slp.c (vect_supported_load_permutation_p): Properly
6116         consider GROUP_GAP when detecting a perfect subchain.
6117
6118 2015-06-09  Nick Clifton  <nickc@redhat.com>
6119
6120         * config/rl78/rl78.c (rl78_select_section): When -mes0 is active
6121         place read only data in the .frodata section.
6122
6123 2015-06-09  Shiva Chen  <shiva0217@gmail.com>
6124
6125         * sync.md (atomic_load<mode>): Add conditional code for lda/ldr
6126         (atomic_store<mode>): Likewise.
6127
6128 2015-06-09  Richard Biener  <rguenther@suse.de>
6129
6130         * cfgloop.c (get_loop_body_in_bfs_order): Fix assert.
6131
6132 2015-06-09  Richard Biener  <rguenther@suse.de>
6133
6134         PR middle-end/66413
6135         * tree-inline.c (insert_init_debug_bind): Unshare value.
6136
6137 2015-06-09  Richard Biener  <rguenther@suse.de>
6138
6139         PR tree-optimization/66396
6140         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
6141         Rename virtual operands.
6142
6143 2015-06-09  Tom de Vries  <tom@codesourcery.com>
6144
6145         * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Don't
6146         always return false.
6147
6148 2015-06-09  Alexandre Oliva <aoliva@redhat.com>
6149
6150         PR rtl-optimization/64164
6151         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
6152         * tree-ssa-copyrename.c: Removed.
6153         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
6154         -ftree-coalesce-vars.
6155         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
6156         * common.opt (ftree-copyrename): Ignore.
6157         (ftree-coalesce-inlined-vars): Likewise.
6158         * doc/invoke.texi: Remove the ignored options above.
6159         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
6160         * tree-ssa-coalesce.h: ... here.
6161         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
6162         headers required by it.
6163         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
6164         across variables when flag_tree_coalesce_vars.  Check register
6165         use and promoted modes to allow coalescing.  Moved to
6166         tree-ssa-coalesce.c.
6167         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
6168         with its member functions to tree-ssa-coalesce.c.
6169         (var_map_base_init): Likewise.  Renamed to
6170         compute_samebase_partition_bases.
6171         (partition_view_normal): Drop want_bases parameter.
6172         (partition_view_bitmap): Likewise.
6173         * tree-ssa-live.h: Adjust declarations.
6174         * tree-ssa-coalesce.c: Include explow.h.
6175         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
6176         default defs at the entry point.
6177         (dump_part_var_map): New.
6178         (compute_optimized_partition_bases): New, called by...
6179         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
6180         of compute_samebase_partition_bases.  Adjust.
6181         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
6182         * cfgexpand.c (leader_merge): New.
6183         (get_rtl_for_parm_ssa_default_def): New.
6184         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
6185         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
6186         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
6187         redundant MEM attr setting.
6188         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
6189         from...
6190         (expand_one_stack_var): ... this.  New wrapper to check and
6191         skip already expanded SSA partitions.
6192         (record_alignment_for_reg_var): New, factored out of...
6193         (expand_one_var): ... this.
6194         (expand_one_ssa_partition): New.
6195         (adjust_one_expanded_partition_var): New.
6196         (expand_one_register_var): Check and skip already expanded SSA
6197         partitions.
6198         (expand_used_vars): Don't create DECLs for anonymous SSA
6199         names.  Expand all SSA partitions, then adjust all SSA names.
6200         (pass::execute): Replace the loops that set
6201         SA.partition_to_pseudo from partition leaders and cleared
6202         DECL_RTL for multi-location variables, and that which used to
6203         rename vars and set attrs, with one that clears DECL_RTL and
6204         checks that PARMs and RESULTs default_defs match DECL_RTL.
6205         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
6206         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
6207         * explow.c (promote_ssa_mode): New.
6208         * explow.h (promote_ssa_mode): Declare.
6209         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
6210         * function.c: Include cfgexpand.h.
6211         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
6212         (use_register_for_parm_decl): Wrapper for the above to
6213         special-case the result_ptr.
6214         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
6215         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
6216         multiple locations.
6217         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
6218         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
6219         (assign_parm_setup_block): Prefer SSA-assigned location.
6220         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
6221         if stack_parm is NULL.
6222         (assign_parm_setup_stack): Prefer SSA-assigned location.
6223         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
6224         rtl before testing for pointer bounds.  Special-case result_ptr.
6225         (expand_function_start): Maybe reset DECL_RTL of result.
6226         Prefer SSA-assigned location for result and static chain.
6227         Factor out DECL_RESULT and SET_DECL_RTL.
6228         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
6229         anonymous SSA names.  Use promote_ssa_mode.
6230         (get_temp_reg): Likewise.
6231         (remove_ssa_form): Adjust.
6232         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
6233         and get its reg_usage for reg invalidation.
6234         (compute_bb_dataflow): Pass it insn.
6235         (emit_notes_in_bb): Likewise.
6236         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
6237         fail assert on conversion between unsigned types.
6238
6239 2015-06-09  Alexandre Oliva <aoliva@redhat.com>
6240
6241         PR debug/58315
6242         * tree-inline.c (reset_debug_binding): New.
6243         (reset_debug_bindings): Likewise.
6244         (expand_call_inline): Call it.
6245
6246 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
6247
6248         * tree.c (gimple_canonical_types_compatible_p): Drop comparsion of
6249         TYPE_STRING_FLAG.
6250
6251 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
6252
6253         * lto-streamer-out.c (lto_output_location): Stream
6254         reserved locations correctly.
6255         * lto-streamer-in.c (lto_output_location): Likewise.
6256
6257 2015-06-08  Andrew MacLeod  <amacleod@redhat.com>
6258
6259         * coretypes.h: Include hash-table.h and hash-set.h for host files.
6260         * ggc.h: Don't include statistics.h>
6261         * hash-map.h: Remove all includes.
6262         * hash-set.h: Likewise.
6263         * hash-table.h: Add statistics.h, inchash.h and hash-map-traits.h to
6264         the include list. Remove <new>.
6265         * inchash.h: Remove all includes.
6266         * mem-stats.h: Likewise.
6267         * vec.h: No special processing for generators or ggc.
6268         * alias.c : Adjust include files.
6269         * alloc-pool.c : Likewise.
6270         * alloc-pool.h : Likewise.
6271         * asan.c : Likewise.
6272         * attribs.c : Likewise.
6273         * auto-inc-dec.c : Likewise.
6274         * auto-profile.c : Likewise.
6275         * bb-reorder.c : Likewise.
6276         * bitmap.c : Likewise.
6277         * bitmap.h : Likewise.
6278         * bt-load.c : Likewise.
6279         * builtins.c : Likewise.
6280         * caller-save.c : Likewise.
6281         * calls.c : Likewise.
6282         * ccmp.c : Likewise.
6283         * cfg.c : Likewise.
6284         * cfganal.c : Likewise.
6285         * cfgbuild.c : Likewise.
6286         * cfgcleanup.c : Likewise.
6287         * cfgexpand.c : Likewise.
6288         * cfghooks.c : Likewise.
6289         * cfgloop.c : Likewise.
6290         * cfgloop.h : Likewise.
6291         * cfgloopanal.c : Likewise.
6292         * cfgloopmanip.c : Likewise.
6293         * cfgrtl.c : Likewise.
6294         * cgraph.c : Likewise.
6295         * cgraphbuild.c : Likewise.
6296         * cgraphclones.c : Likewise.
6297         * cgraphunit.c : Likewise.
6298         * cilk-common.c : Likewise.
6299         * combine-stack-adj.c : Likewise.
6300         * combine.c : Likewise.
6301         * compare-elim.c : Likewise.
6302         * context.c : Likewise.
6303         * convert.c : Likewise.
6304         * coverage.c : Likewise.
6305         * cppbuiltin.c : Likewise.
6306         * cprop.c : Likewise.
6307         * cse.c : Likewise.
6308         * cselib.c : Likewise.
6309         * data-streamer-in.c : Likewise.
6310         * data-streamer-out.c : Likewise.
6311         * data-streamer.c : Likewise.
6312         * data-streamer.h : Likewise.
6313         * dbxout.c : Likewise.
6314         * dce.c : Likewise.
6315         * ddg.c : Likewise.
6316         * debug.c : Likewise.
6317         * df-core.c : Likewise.
6318         * df-problems.c : Likewise.
6319         * df-scan.c : Likewise.
6320         * df.h : Likewise.
6321         * dfp.c : Likewise.
6322         * dojump.c : Likewise.
6323         * dominance.c : Likewise.
6324         * domwalk.c : Likewise.
6325         * double-int.c : Likewise.
6326         * dse.c : Likewise.
6327         * dumpfile.c : Likewise.
6328         * dwarf2asm.c : Likewise.
6329         * dwarf2cfi.c : Likewise.
6330         * dwarf2out.c : Likewise.
6331         * emit-rtl.c : Likewise.
6332         * et-forest.c : Likewise.
6333         * except.c : Likewise.
6334         * except.h : Likewise.
6335         * explow.c : Likewise.
6336         * expmed.c : Likewise.
6337         * expr.c : Likewise.
6338         * final.c : Likewise.
6339         * fixed-value.c : Likewise.
6340         * fold-const.c : Likewise.
6341         * function.c : Likewise.
6342         * fwprop.c : Likewise.
6343         * gcc-plugin.h : Likewise.
6344         * gcc.c : Likewise.
6345         * gcse-common.c : Likewise.
6346         * gcse.c : Likewise.
6347         * genattrtab.c : Likewise.
6348         * genautomata.c : Likewise.
6349         * genconditions.c : Likewise.
6350         * genemit.c : Likewise.
6351         * generic-match-head.c : Likewise.
6352         * genextract.c : Likewise.
6353         * gengtype-state.c : Likewise.
6354         * gengtype.c : Likewise.
6355         * genhooks.c : Likewise.
6356         * genmatch.c : Likewise.
6357         * genmodes.c : Likewise.
6358         * genrecog.c : Likewise.
6359         * gensupport.c : Likewise.
6360         * ggc-common.c : Likewise.
6361         * ggc-internal.h : Likewise.
6362         * ggc-none.c : Likewise.
6363         * ggc-page.c : Likewise.
6364         * gimple-builder.c : Likewise.
6365         * gimple-expr.c : Likewise.
6366         * gimple-fold.c : Likewise.
6367         * gimple-iterator.c : Likewise.
6368         * gimple-low.c : Likewise.
6369         * gimple-match-head.c : Likewise.
6370         * gimple-pretty-print.c : Likewise.
6371         * gimple-ssa-isolate-paths.c : Likewise.
6372         * gimple-ssa-strength-reduction.c : Likewise.
6373         * gimple-ssa.h : Likewise.
6374         * gimple-streamer-in.c : Likewise.
6375         * gimple-streamer-out.c : Likewise.
6376         * gimple-streamer.h : Likewise.
6377         * gimple-walk.c : Likewise.
6378         * gimple.c : Likewise.
6379         * gimplify-me.c : Likewise.
6380         * gimplify.c : Likewise.
6381         * godump.c : Likewise.
6382         * graph.c : Likewise.
6383         * graphds.c : Likewise.
6384         * graphite-blocking.c : Likewise.
6385         * graphite-dependences.c : Likewise.
6386         * graphite-interchange.c : Likewise.
6387         * graphite-isl-ast-to-gimple.c : Likewise.
6388         * graphite-optimize-isl.c : Likewise.
6389         * graphite-poly.c : Likewise.
6390         * graphite-scop-detection.c : Likewise.
6391         * graphite-sese-to-poly.c : Likewise.
6392         * graphite.c : Likewise.
6393         * haifa-sched.c : Likewise.
6394         * hard-reg-set.h : Likewise.
6395         * hw-doloop.c : Likewise.
6396         * ifcvt.c : Likewise.
6397         * inchash.c : Likewise.
6398         * incpath.c : Likewise.
6399         * init-regs.c : Likewise.
6400         * input.c : Likewise.
6401         * internal-fn.c : Likewise.
6402         * ipa-chkp.c : Likewise.
6403         * ipa-comdats.c : Likewise.
6404         * ipa-cp.c : Likewise.
6405         * ipa-devirt.c : Likewise.
6406         * ipa-icf-gimple.c : Likewise.
6407         * ipa-icf.c : Likewise.
6408         * ipa-inline-analysis.c : Likewise.
6409         * ipa-inline-transform.c : Likewise.
6410         * ipa-inline.c : Likewise.
6411         * ipa-polymorphic-call.c : Likewise.
6412         * ipa-profile.c : Likewise.
6413         * ipa-prop.c : Likewise.
6414         * ipa-pure-const.c : Likewise.
6415         * ipa-ref.c : Likewise.
6416         * ipa-reference.c : Likewise.
6417         * ipa-split.c : Likewise.
6418         * ipa-utils.c : Likewise.
6419         * ipa-visibility.c : Likewise.
6420         * ipa.c : Likewise.
6421         * ira-build.c : Likewise.
6422         * ira-color.c : Likewise.
6423         * ira-conflicts.c : Likewise.
6424         * ira-costs.c : Likewise.
6425         * ira-emit.c : Likewise.
6426         * ira-lives.c : Likewise.
6427         * ira.c : Likewise.
6428         * jump.c : Likewise.
6429         * langhooks.c : Likewise.
6430         * lcm.c : Likewise.
6431         * libfuncs.h : Likewise.
6432         * lists.c : Likewise.
6433         * loop-doloop.c : Likewise.
6434         * loop-init.c : Likewise.
6435         * loop-invariant.c : Likewise.
6436         * loop-iv.c : Likewise.
6437         * loop-unroll.c : Likewise.
6438         * lower-subreg.c : Likewise.
6439         * lra-assigns.c : Likewise.
6440         * lra-coalesce.c : Likewise.
6441         * lra-constraints.c : Likewise.
6442         * lra-eliminations.c : Likewise.
6443         * lra-lives.c : Likewise.
6444         * lra-remat.c : Likewise.
6445         * lra-spills.c : Likewise.
6446         * lra.c : Likewise.
6447         * lto-cgraph.c : Likewise.
6448         * lto-compress.c : Likewise.
6449         * lto-opts.c : Likewise.
6450         * lto-section-in.c : Likewise.
6451         * lto-section-out.c : Likewise.
6452         * lto-streamer-in.c : Likewise.
6453         * lto-streamer-out.c : Likewise.
6454         * lto-streamer.c : Likewise.
6455         * lto-streamer.h : Likewise.
6456         * mcf.c : Likewise.
6457         * mode-switching.c : Likewise.
6458         * modulo-sched.c : Likewise.
6459         * omega.c : Likewise.
6460         * omp-low.c : Likewise.
6461         * optabs.c : Likewise.
6462         * opts-global.c : Likewise.
6463         * opts.h : Likewise.
6464         * passes.c : Likewise.
6465         * plugin.c : Likewise.
6466         * postreload-gcse.c : Likewise.
6467         * postreload.c : Likewise.
6468         * predict.c : Likewise.
6469         * print-rtl.c : Likewise.
6470         * print-tree.c : Likewise.
6471         * profile.c : Likewise.
6472         * read-md.c : Likewise.
6473         * read-md.h : Likewise.
6474         * read-rtl.c : Likewise.
6475         * real.c : Likewise.
6476         * realmpfr.c : Likewise.
6477         * recog.c : Likewise.
6478         * ree.c : Likewise.
6479         * reg-stack.c : Likewise.
6480         * regcprop.c : Likewise.
6481         * reginfo.c : Likewise.
6482         * regrename.c : Likewise.
6483         * regstat.c : Likewise.
6484         * reload.c : Likewise.
6485         * reload1.c : Likewise.
6486         * reorg.c : Likewise.
6487         * resource.c : Likewise.
6488         * rtl-chkp.c : Likewise.
6489         * rtl.c : Likewise.
6490         * rtl.h : Likewise.
6491         * rtlanal.c : Likewise.
6492         * rtlhash.c : Likewise.
6493         * rtlhash.h : Likewise.
6494         * rtlhooks.c : Likewise.
6495         * sanopt.c : Likewise.
6496         * sched-deps.c : Likewise.
6497         * sched-ebb.c : Likewise.
6498         * sched-rgn.c : Likewise.
6499         * sched-vis.c : Likewise.
6500         * sdbout.c : Likewise.
6501         * sel-sched-dump.c : Likewise.
6502         * sel-sched-ir.c : Likewise.
6503         * sel-sched-ir.h : Likewise.
6504         * sel-sched.c : Likewise.
6505         * sese.c : Likewise.
6506         * shrink-wrap.c : Likewise.
6507         * shrink-wrap.h : Likewise.
6508         * simplify-rtx.c : Likewise.
6509         * stack-ptr-mod.c : Likewise.
6510         * statistics.c : Likewise.
6511         * stmt.c : Likewise.
6512         * stor-layout.c : Likewise.
6513         * store-motion.c : Likewise.
6514         * stringpool.c : Likewise.
6515         * symtab.c : Likewise.
6516         * target-globals.c : Likewise.
6517         * targhooks.c : Likewise.
6518         * tlink.c : Likewise.
6519         * toplev.c : Likewise.
6520         * tracer.c : Likewise.
6521         * trans-mem.c : Likewise.
6522         * tree-affine.c : Likewise.
6523         * tree-affine.h : Likewise.
6524         * tree-browser.c : Likewise.
6525         * tree-call-cdce.c : Likewise.
6526         * tree-cfg.c : Likewise.
6527         * tree-cfgcleanup.c : Likewise.
6528         * tree-chkp-opt.c : Likewise.
6529         * tree-chkp.c : Likewise.
6530         * tree-chrec.c : Likewise.
6531         * tree-complex.c : Likewise.
6532         * tree-data-ref.c : Likewise.
6533         * tree-dfa.c : Likewise.
6534         * tree-diagnostic.c : Likewise.
6535         * tree-dump.c : Likewise.
6536         * tree-eh.c : Likewise.
6537         * tree-eh.h : Likewise.
6538         * tree-emutls.c : Likewise.
6539         * tree-hasher.h : Likewise.
6540         * tree-if-conv.c : Likewise.
6541         * tree-inline.c : Likewise.
6542         * tree-inline.h : Likewise.
6543         * tree-into-ssa.c : Likewise.
6544         * tree-iterator.c : Likewise.
6545         * tree-loop-distribution.c : Likewise.
6546         * tree-nested.c : Likewise.
6547         * tree-nrv.c : Likewise.
6548         * tree-object-size.c : Likewise.
6549         * tree-outof-ssa.c : Likewise.
6550         * tree-parloops.c : Likewise.
6551         * tree-phinodes.c : Likewise.
6552         * tree-predcom.c : Likewise.
6553         * tree-pretty-print.c : Likewise.
6554         * tree-profile.c : Likewise.
6555         * tree-scalar-evolution.c : Likewise.
6556         * tree-sra.c : Likewise.
6557         * tree-ssa-address.c : Likewise.
6558         * tree-ssa-alias.c : Likewise.
6559         * tree-ssa-ccp.c : Likewise.
6560         * tree-ssa-coalesce.c : Likewise.
6561         * tree-ssa-copy.c : Likewise.
6562         * tree-ssa-copyrename.c : Likewise.
6563         * tree-ssa-dce.c : Likewise.
6564         * tree-ssa-dom.c : Likewise.
6565         * tree-ssa-dse.c : Likewise.
6566         * tree-ssa-forwprop.c : Likewise.
6567         * tree-ssa-ifcombine.c : Likewise.
6568         * tree-ssa-live.c : Likewise.
6569         * tree-ssa-loop-ch.c : Likewise.
6570         * tree-ssa-loop-im.c : Likewise.
6571         * tree-ssa-loop-ivcanon.c : Likewise.
6572         * tree-ssa-loop-ivopts.c : Likewise.
6573         * tree-ssa-loop-manip.c : Likewise.
6574         * tree-ssa-loop-niter.c : Likewise.
6575         * tree-ssa-loop-prefetch.c : Likewise.
6576         * tree-ssa-loop-unswitch.c : Likewise.
6577         * tree-ssa-loop.c : Likewise.
6578         * tree-ssa-math-opts.c : Likewise.
6579         * tree-ssa-operands.c : Likewise.
6580         * tree-ssa-phiopt.c : Likewise.
6581         * tree-ssa-phiprop.c : Likewise.
6582         * tree-ssa-pre.c : Likewise.
6583         * tree-ssa-propagate.c : Likewise.
6584         * tree-ssa-reassoc.c : Likewise.
6585         * tree-ssa-sccvn.c : Likewise.
6586         * tree-ssa-scopedtables.c : Likewise.
6587         * tree-ssa-sink.c : Likewise.
6588         * tree-ssa-strlen.c : Likewise.
6589         * tree-ssa-structalias.c : Likewise.
6590         * tree-ssa-tail-merge.c : Likewise.
6591         * tree-ssa-ter.c : Likewise.
6592         * tree-ssa-threadedge.c : Likewise.
6593         * tree-ssa-threadupdate.c : Likewise.
6594         * tree-ssa-uncprop.c : Likewise.
6595         * tree-ssa-uninit.c : Likewise.
6596         * tree-ssa.c : Likewise.
6597         * tree-ssanames.c : Likewise.
6598         * tree-stdarg.c : Likewise.
6599         * tree-streamer-in.c : Likewise.
6600         * tree-streamer-out.c : Likewise.
6601         * tree-streamer.c : Likewise.
6602         * tree-streamer.h : Likewise.
6603         * tree-switch-conversion.c : Likewise.
6604         * tree-tailcall.c : Likewise.
6605         * tree-vect-data-refs.c : Likewise.
6606         * tree-vect-generic.c : Likewise.
6607         * tree-vect-loop-manip.c : Likewise.
6608         * tree-vect-loop.c : Likewise.
6609         * tree-vect-patterns.c : Likewise.
6610         * tree-vect-slp.c : Likewise.
6611         * tree-vect-stmts.c : Likewise.
6612         * tree-vectorizer.c : Likewise.
6613         * tree-vectorizer.h : Likewise.
6614         * tree-vrp.c : Likewise.
6615         * tree.c : Likewise.
6616         * tsan.c : Likewise.
6617         * ubsan.c : Likewise.
6618         * valtrack.c : Likewise.
6619         * valtrack.h : Likewise.
6620         * value-prof.c : Likewise.
6621         * var-tracking.c : Likewise.
6622         * varasm.c : Likewise.
6623         * varpool.c : Likewise.
6624         * vec.c: Likewise.
6625         * vmsdbgout.c : Likewise.
6626         * vtable-verify.c : Likewise.
6627         * vtable-verify.h : Likewise.
6628         * web.c : Likewise.
6629         * wide-int.cc : Likewise.
6630         * xcoffout.c : Likewise.
6631         * config/aarch64/aarch64-builtins.c : Likewise.
6632         * config/aarch64/aarch64.c : Likewise.
6633         * config/aarch64/cortex-a57-fma-steering.c : Likewise.
6634         * config/alpha/alpha.c : Likewise.
6635         * config/arc/arc.c : Likewise.
6636         * config/arm/aarch-common.c : Likewise.
6637         * config/arm/arm-builtins.c : Likewise.
6638         * config/arm/arm-c.c : Likewise.
6639         * config/arm/arm.c : Likewise.
6640         * config/avr/avr-c.c : Likewise.
6641         * config/avr/avr-log.c : Likewise.
6642         * config/avr/avr.c : Likewise.
6643         * config/bfin/bfin.c : Likewise.
6644         * config/c6x/c6x.c : Likewise.
6645         * config/cr16/cr16.c : Likewise.
6646         * config/cris/cris.c : Likewise.
6647         * config/darwin-c.c : Likewise.
6648         * config/darwin.c : Likewise.
6649         * config/default-c.c : Likewise.
6650         * config/epiphany/epiphany.c : Likewise.
6651         * config/epiphany/mode-switch-use.c : Likewise.
6652         * config/epiphany/resolve-sw-modes.c : Likewise.
6653         * config/fr30/fr30.c : Likewise.
6654         * config/frv/frv.c : Likewise.
6655         * config/ft32/ft32.c : Likewise.
6656         * config/glibc-c.c : Likewise.
6657         * config/h8300/h8300.c : Likewise.
6658         * config/i386/i386-c.c : Likewise.
6659         * config/i386/i386.c : Likewise.
6660         * config/i386/msformat-c.c : Likewise.
6661         * config/i386/winnt-cxx.c : Likewise.
6662         * config/i386/winnt-stubs.c : Likewise.
6663         * config/i386/winnt.c : Likewise.
6664         * config/ia64/ia64-c.c : Likewise.
6665         * config/ia64/ia64.c : Likewise.
6666         * config/iq2000/iq2000.c : Likewise.
6667         * config/lm32/lm32.c : Likewise.
6668         * config/m32c/m32c-pragma.c : Likewise.
6669         * config/m32c/m32c.c : Likewise.
6670         * config/m32r/m32r.c : Likewise.
6671         * config/m68k/m68k.c : Likewise.
6672         * config/mcore/mcore.c : Likewise.
6673         * config/mep/mep-pragma.c : Likewise.
6674         * config/mep/mep.c : Likewise.
6675         * config/microblaze/microblaze-c.c : Likewise.
6676         * config/microblaze/microblaze.c : Likewise.
6677         * config/mips/mips.c : Likewise.
6678         * config/mmix/mmix.c : Likewise.
6679         * config/mn10300/mn10300.c : Likewise.
6680         * config/moxie/moxie.c : Likewise.
6681         * config/msp430/msp430-c.c : Likewise.
6682         * config/msp430/msp430.c : Likewise.
6683         * config/nds32/nds32-cost.c : Likewise.
6684         * config/nds32/nds32-fp-as-gp.c : Likewise.
6685         * config/nds32/nds32-intrinsic.c : Likewise.
6686         * config/nds32/nds32-isr.c : Likewise.
6687         * config/nds32/nds32-md-auxiliary.c : Likewise.
6688         * config/nds32/nds32-memory-manipulation.c : Likewise.
6689         * config/nds32/nds32-pipelines-auxiliary.c : Likewise.
6690         * config/nds32/nds32-predicates.c : Likewise.
6691         * config/nds32/nds32.c : Likewise.
6692         * config/nios2/nios2.c : Likewise.
6693         * config/nvptx/nvptx.c : Likewise.
6694         * config/pa/pa.c : Likewise.
6695         * config/pdp11/pdp11.c : Likewise.
6696         * config/rl78/rl78-c.c : Likewise.
6697         * config/rl78/rl78.c : Likewise.
6698         * config/rs6000/rs6000-c.c : Likewise.
6699         * config/rs6000/rs6000.c : Likewise.
6700         * config/rx/rx.c : Likewise.
6701         * config/s390/s390-c.c : Likewise.
6702         * config/s390/s390.c : Likewise.
6703         * config/sh/sh-c.c : Likewise.
6704         * config/sh/sh-mem.cc : Likewise.
6705         * config/sh/sh.c : Likewise.
6706         * config/sh/sh_optimize_sett_clrt.cc : Likewise.
6707         * config/sh/sh_treg_combine.cc : Likewise.
6708         * config/sol2-c.c : Likewise.
6709         * config/sol2-cxx.c : Likewise.
6710         * config/sol2-stubs.c : Likewise.
6711         * config/sol2.c : Likewise.
6712         * config/sparc/sparc-c.c : Likewise.
6713         * config/sparc/sparc.c : Likewise.
6714         * config/spu/spu-c.c : Likewise.
6715         * config/spu/spu.c : Likewise.
6716         * config/stormy16/stormy16.c : Likewise.
6717         * config/tilegx/mul-tables.c : Likewise.
6718         * config/tilegx/tilegx-c.c : Likewise.
6719         * config/tilegx/tilegx.c : Likewise.
6720         * config/tilepro/mul-tables.c : Likewise.
6721         * config/tilepro/tilepro-c.c : Likewise.
6722         * config/tilepro/tilepro.c : Likewise.
6723         * config/v850/v850-c.c : Likewise.
6724         * config/v850/v850.c : Likewise.
6725         * config/vax/vax.c : Likewise.
6726         * config/visium/visium.c : Likewise.
6727         * config/vms/vms-c.c : Likewise.
6728         * config/vms/vms.c : Likewise.
6729         * config/vxworks.c : Likewise.
6730         * config/winnt-c.c : Likewise.
6731         * config/xtensa/xtensa.c : Likewise.
6732
6733 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
6734
6735         PR lto/65378
6736         * ipa-utils.h (warn_types_mismatch): Update prototype.
6737         * ipa-devirt.c (odr_types_equivalent_p): Add loc1/loc2
6738         parameters.
6739         (type_mismatch_p): New function.
6740         (warn_types_mismatch): Reorg to work better on non-C++ types.
6741         (odr_types_equivalent_p): Add loc1/loc2 parameters.
6742         (add_type_duplicate): Update.
6743
6744 2015-06-08  Tom de Vries  <tom@codesourcery.com>
6745
6746         PR rtl-optimization/66444
6747         * postreload.c (reload_combine): Use get_call_reg_set_usage instead of
6748         call_used_regs.
6749
6750 2015-06-08  Richard Biener  <rguenther@suse.de>
6751
6752         PR tree-optimization/66422
6753         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Split
6754         block after inserted gcc_unreachable.
6755
6756 2015-06-08  Nick Clifton  <nickc@redhat.com>
6757
6758         * config/rx/rx.c (rx_function_value): Do not promote vector types.
6759         (rx_promote_function_mode): Likewise.
6760         * config/rx/rx.h (LIBCALL_VALUE): Likewise.
6761
6762 2015-06-08  Jakub Jelinek  <jakub@redhat.com>
6763
6764         * genattrtab.c (insn_alternatives): Change type from int *
6765         to uint64_t *.
6766         (check_attr_test): Shift ((uint64_t) 1) instead of 1 up.
6767         (get_attr_value): Change type of num_alt to uint64_t.
6768         (compute_alternative_mask): Change return type from
6769         int to uint64_t, shift ((uint64_t) 1) instead of 1 up.
6770         (make_alternative_compare, mk_attr_alt): Change argument type
6771         from int to uint64_t.
6772         (simplify_test_exp): Change type of i from int to uint64_t.
6773         Shift ((uint64_t) 1) instead of 1 up.
6774         (main): Adjust oballocvec first argument from int to uint64_t.
6775         Shift ((uint64_t) 1) instead of 1 up.
6776
6777 2015-06-08  Jan Kratochvil  <jan.kratochvil@redhat.com>
6778
6779         PR other/65366
6780         * gdbhooks.py: Import sys.
6781         (intptr): New function.  Replace int(...) by intptr(...).
6782
6783 2015-06-08  Richard Biener  <rguenther@suse.de>
6784
6785         * tree-vect-stmts.c (vectorizable_load): Compute the pointer
6786         adjustment for gaps at the end of a SLP load group properly.
6787         * tree-vect-slp.c (vect_supported_load_permutation_p): Allow
6788         all permutations we can generate.
6789         (vect_transform_slp_perm_load): Use the correct group-size.
6790
6791 2015-06-08  Marc Glisse  <marc.glisse@inria.fr>
6792
6793         * genmatch.c (expr::gen_transform): For conditions, guess the type
6794         from the second operand.
6795
6796 2015-06-08  Tom de Vries  <tom@codesourcery.com>
6797
6798         PR tree-optimization/66442
6799         * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Add function.
6800         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Return false
6801         if the loop latch is not a singleton.  Use
6802         gimple_seq_nondebug_singleton_p instead of gimple_seq_singleton_p.
6803
6804 2015-06-08  Marek Polacek  <polacek@redhat.com>
6805
6806         PR sanitizer/66452
6807         * toplev.c (check_global_declaration): Don't warn about artificial
6808         decls.
6809
6810 2015-06-08  Tom de Vries  <tom@codesourcery.com>
6811
6812         PR tree-optimization/66436
6813         * cgraphunit.c (cgraph_node::analyze): Don't dump function to gimple
6814         dump file.
6815         * gimplify.c: Add tree-dump.h include.
6816         (gimplify_function_tree): Dump function to gimple dump file.
6817         * stor-layout.c (finalize_size_functions): Don't dump function to gimple
6818         dump file.
6819
6820 2015-06-08  Tom de Vries  <tom@codesourcery.com>
6821
6822         PR tree-optimization/66435
6823         * cgraphunit.c (cgraph_node::add_new_function): Dump message on new
6824         function.
6825
6826 2015-06-06  Jan Hubicka  <hubicka@ucw.cz>
6827
6828         * alias.c (get_alias_set): Be ready for TYPE_CANONICAL
6829         of ptr_type_node to not be ptr_to_node.
6830         * tree.c (gimple_types_compatible_p): Do not match TREE_CODE of
6831         TREE_TYPE of pointers.
6832         * gimple-expr.c (useless_type_conversion): Reorder the check for
6833         function pointers and TYPE_CANONICAL.
6834
6835 2015-06-06  John David Anglin  <danglin@gcc.gnu.org>
6836
6837         PR bootstrap/66319
6838         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Rearrange builtin
6839         defines.  Define _LARGEFILE_SOURCE and _LARGEFILE64_SOURCE for c++.
6840         Define _XOPEN_UNIX and _XOPEN_SOURCE_EXTENDED for c++ if unix95 or
6841         later.
6842         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Likewise.
6843         Define _INCLUDE_STDC_SOURCE_PRE_199901, _INCLUDE_STDC_SOURCE_199901,
6844         _INCLUDE_XOPEN_SOURCE_PRE_500, _INCLUDE_XOPEN_SOURCE_520,
6845         _INCLUDE_XOPEN_SOURCE_PRE_600 and _INCLUDE_XOPEN_SOURCE_600 for c++
6846         and non iso if unix2003.
6847
6848 2015-06-06  Aldy Hernandez  <aldyh@redhat.com>
6849
6850         * dwarf2out.c (gen_lexical_block_die): Initialize stmt_die.
6851
6852 2015-06-06  Richard Sandiford  <richard.sandiford@arm.com>
6853
6854         * emit-rtl.c, expr.c, gcse.c, optabs.c, optabs.h, print-rtl.c,
6855         rtl.h, bb-reorder.c, builtins.c, calls.c, cfgbuild.c, cfgexpand.c,
6856         cfgrtl.c, cilk-common.c, config/i386/i386.md, cse.c, dwarf2cfi.c,
6857         except.c, final.c, function.c, gcse-common.c, genemit.c,
6858         haifa-sched.c, ifcvt.c, jump.c, loop-invariant.c, loop-iv.c,
6859         lra-constraints.c, lra.c, reload1.c, resource.c, rtlanal.c,
6860         sched-deps.c, sched-ebb.c, sel-sched-ir.c, sel-sched.c,
6861         shrink-wrap.c, stmt.c, store-motion.c: Replace rtx base types with
6862         more derived ones.
6863
6864 2015-06-06  Mikhail Maltsev  <maltsevm@gmail.com>
6865
6866         * combine.c (combine_split_insns): Remove cast.
6867         * config/bfin/bfin.c (hwloop_fail): Add cast in try_split call.
6868         * config/sh/sh.c (sh_try_split_insn_simple): Remove cast.
6869         * config/sh/sh_treg_combine.cc (sh_treg_combine::execute): Add cast.
6870         * emit-rtl.c (try_split): Promote type of trial argument to rtx_insn.
6871         * genemit.c (gen_split): Change return type of generated functions to
6872         rtx_insn.
6873         * genrecog.c (get_failure_return): Use NULL instead of NULL_RTX.
6874         (print_subroutine_start): Promote rtx to rtx_insn in gen_split_* and
6875         gen_peephole2_* functions.
6876         (print_subroutine, main): Likewise.
6877         * recog.c (peephole2_optimize): Remove cast.
6878         (peep2_next_insn): Promote return type to rtx_insn.
6879         * recog.h (peep2_next_insn): Fix prototype.
6880         * rtl.h (try_split, split_insns): Likewise.
6881
6882 2015-06-06  DJ Delorie  <dj@redhat.com>
6883
6884         * config/msp430/msp430.c (msp430_asm_integer): Support addition
6885         and subtraction too.
6886
6887 2015-06-05  Kaz Kojima  <kkojima@gcc.gnu.org>
6888
6889         PR target/66410
6890         * config/sh/constraints.md (Sid, Ssd): New memory constraints.
6891         * config/sh/sh.md (*mov<mode>): Use Sid and Ssd alternatives
6892         instead of Snd.  Disparage Sid/z alternative with '^'.
6893
6894 2015-06-05  Aldy Hernandez  <aldyh@redhat.com>
6895
6896         * dwarf2out.c: Remove deferred_locations*.
6897         (dwarf2_debug_hooks): Add early_finish hook.
6898         Remove global_decl hook.
6899         Add early_global_decl and late_global_decl hook.
6900         New global early_dwarf.
6901         New structure set_early_dwarf.
6902         (output_die): Indicate whether a DIE was generated early
6903         when generating assembly with -dA.
6904         (struct limbo_die_struct): Document created_for field.
6905         Remove file_table_last_lookup.
6906         (remove_AT): Return TRUE if successful.
6907         (remove_child_TAG): Clear die_parent.
6908         (reparent_child): New function abstracted from...
6909         (splice_child_die): ...here.
6910         (new_die): ICE if a DIE ends up in limbo too late.
6911         (check_die): New.
6912         (defer_location): Remove.
6913         (add_subscript_info): Reuse DW_TAG_subrange_type if available.
6914         (fill_variable_array_bounds): New.
6915         (decl_start_label): Call fill_variable_array_bounds.
6916         (gen_formal_parameter_die): Rewrite to reuse previously generated
6917         DIEs.
6918         (gen_subprogram_die): Same.
6919         (gen_variable_die): Same.
6920         (gen_const_die): Same.
6921         (gen_label_die): Same.
6922         (gen_lexical_block_die): Same.
6923         (decl_will_get_specification_p): New.
6924         (local_function_static): New.
6925         (gen_struct_or_union_type_die): Fill in variable-length fields.
6926         (gen_typedef_die): Fill in variable-length typedefs.
6927         (gen_tagged_type_die): Gracefully return on error_mark_node.
6928         Handle re-entrancy.
6929         (gen_type_die_with_usage): Handle variable-length types.
6930         Remove duplicate code for ARRAY_TYPE case.
6931         (process_scope_var): Only process imported modules during early
6932         dwarf.
6933         (dwarf2out_early_global_decl): New.
6934         (dwarf2out_late_global_decl): Rename from dwarf2out_global_decl.
6935         (dwarf2out_type_decl): Set early_dwarf while calling
6936         dwarf2out_decl.
6937         (dwarf2out_decl): Verify that we did not recreate a previously
6938         generated DIE.
6939         Do not return on DECL_EXTERNALs in VAR_DECLs.
6940         Abstract some code to local_function_static.
6941         (lookup_filename): Remove use of file_table_last_lookup.
6942         Gracefully exit on missing file_name.
6943         (dwarf2out_finish): Verify limbo list.
6944         Remove deferred_locations_list use.
6945         Move deferred_asm_name and limbo flushing to...
6946         (dwarf2out_early_finish): ...here.  New.
6947         (dwarf2out_c_finalize): Remove set of deferred_location_list,
6948         deferred_asm_name, and file_table_last_lookup.
6949         * cgraph.h (referred_to_p): Add default argument.
6950         * cgraphunit.c (referred_to_p): Add and handle include_self
6951         argument.
6952         (analyze_functions): Add first_time argument.
6953         Call check_global_declaration for all symbols.
6954         Call late_global_decl for nodes for moribund nodes.
6955         (finalize_compilation_unit): Add new argument to
6956         analyze_functions.
6957         Call early_global_decl for functions.
6958         Call early_finish debug hook.
6959         * dbxout.c (dbxout_early_global_decl): New.
6960         (dbxout_late_global_decl): New.  Adapted from dbxout_global_decl.
6961         (dbx_debug_hooks): Add new hooks.
6962         (xcoff_debug_hooks): Same.
6963         * debug.c (do_nothing_debug_hooks): Add early_finish field.
6964         Add early and late debug hooks.
6965         Remove global_decl hook.
6966         * debug.h (struct gcc_debug_hooks): Add early_finish,
6967         early_global_decl, and late_global_decl fields.
6968         Remove global_decl field.
6969         Document gcc_debug_hooks.
6970         * gengtype.c (output_typename): Remove.
6971         * godump.c (go_early_global_decl): New.
6972         (go_late_global_decl): New.
6973         (go_global_decl): Remove.
6974         (dump_go_spec_init): Remove global_decl.  Add
6975         {early,late}_global_decl.
6976         * langhooks-def.h (LANG_HOOKS_WRITE_GLOBALS): Remove.
6977         (LANG_HOOKS_POST_COMPILATION_PARSING_CLEANUPS): New.
6978         * langhooks.c (lhd_warn_unused_global_decl): Adjust comment.
6979         (write_global_declarations): Remove.
6980         (global_decl_processing): New.
6981         * langhooks.h (struct lang_hooks_for_decls): Remove
6982         final_write_globals field.
6983         Add post_compilation_parsing_cleanups field.
6984         * passes.c (rest_of_decl_compilation): Call early_global_decl.
6985         * sdbout.c: Add early and late_global_decl hooks.  Remove
6986         sdbout_global_decl hook.
6987         Add early_finish field for sdb_debug_hooks.
6988         (sdbout_global_decl): Remove.
6989         (sdbout_early_global_decl): New.
6990         (sdbout_late_global_decl): New.
6991         * timevar.def (TV_PHASE_LATE_PARSING_CLEANUPS): New.
6992         * toplev.c (check_global_declaration): Rename from
6993         check_global_declaration_1.
6994         Adapt to use symtab infrastructure.
6995         (check_global_declarations): Remove.
6996         (emit_debug_global_declarations): Remove.
6997         (compile_file): Remove call to final_write_globals langhook.
6998         Run the actual compilation process.
6999         Perform any post compilation parser cleanups.
7000         Generate late debug info.
7001         * toplev.h (check_global_declaration): New.
7002         (check_global_declaration_1): Remove.
7003         (check_global_declarations): Remove.
7004         (write_global_declarations): Remove.
7005         (emit_debug_global_declarations): Remove.
7006         (global_decl_processing): New.
7007         * tree-core.h (struct tree_block): Add DIE field.
7008         * tree.h (BLOCK_DIE): New.
7009         * vmsdbgout.c (vmsdbgout_global_decl): Remove function and its use
7010         throughout.
7011         (vmsdbgout_early_global_decl): New.
7012         (vmsdbgout_late_global_decl): New.
7013         Add early_finish debug hook field to vmsdbg_debug_hooks.
7014         Remove vmsdbgout_decl to vmsdbgout_function_decl.
7015         Add early and late_global_decl debug hooks.
7016
7017 2015-06-05  Julian Brown  <julian@codesourcery.com>
7018             Sandra Loosemore  <sandra@codesourcery.com>
7019
7020         * config/print-sysroot-suffix.sh: Handle MULTILIB_REUSE settings.
7021         * config/t-sysroot-suffix (sysroot-suffix.h): Pass MULTILIB_REUSE
7022         to print-sysroot-suffix.sh script.
7023
7024 2015-06-05  Tom de Vries  <tom@codesourcery.com>
7025
7026         merge from gomp4 branch:
7027         2015-05-28  Tom de Vries  <tom@codesourcery.com>
7028
7029         PR tree-optimization/65443
7030         * tree-parloops.c (replace_imm_uses, replace_uses_in_bb_by)
7031         (replace_uses_in_bbs_by, transform_to_exit_first_loop_alt)
7032         (try_transform_to_exit_first_loop_alt): New function.
7033         (transform_to_exit_first_loop): Use
7034         try_transform_to_exit_first_loop_alt.
7035
7036 2015-06-05  James Greenhalgh  <james.greenhalgh@arm.com>
7037
7038         * builtins.c (expand_builtin_atomic_compare_exchange): Call
7039         emit_cmp_and_jump_insns with the mode of target.
7040
7041 2015-06-05  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
7042
7043         * config/i386/sse.md (sse3_mwait): Swap the operand constriants.
7044
7045 2015-06-04  DJ Delorie  <dj@redhat.com>
7046
7047         * config/msp430/msp430.md (movsi_s): New.  Special case for
7048         storing a 20-bit symbol into a 32-bit register.
7049         * config/msp430/msp430.c (msp430_subreg): Add support for it.
7050         * config/msp430/predicates.md (msp430_symbol_operand): New.
7051
7052 2015-06-04  Sriraman Tallam  <tmsriram@google.com>
7053
7054         * c-family/c-common.c (noplt): New attribute.
7055         (handle_noplt_attribute): New handler.
7056         * calls.c (prepare_call_address): Check for noplt
7057         attribute.
7058         * config/i386/i386.c (ix86_expand_call): Check
7059         for noplt attribute.
7060         (ix86_nopic_noplt_attribute_p): New function.
7061         (ix86_output_call_insn): Output indirect call for non-pic
7062         no plt calls.
7063         * doc/extend.texi (noplt): Document new attribute.
7064         * doc/invoke.texi: Document new attribute.
7065
7066 2015-06-04  Andrew MacLeod  <amacleod@redhat.com>
7067
7068         * coretypes.h: Include machmode.h, signop.h, wide-int.h, double-int.h,
7069         real.h, and fixed-value.h when included in host source files.
7070         * double-int.h: Remove redundant #includes listed above.
7071         * fixed-value.h: Likewise.
7072         * real.h: Likewise.
7073         * wide-int.h: Likewise.
7074         * inchash.h: Likewise.
7075         * rtl.h: Add some include files When included from a generator file.
7076         * target.h: Remove wide-int.h and insn-modes.h from the include list.
7077         * internal-fn.h: Don't include coretypes.h.
7078         * alias.c: Adjust includes for restructured coretypes.h.
7079         * asan.c: Likewise.
7080         * attribs.c: Likewise.
7081         * auto-inc-dec.c: Likewise.
7082         * auto-profile.c: Likewise.
7083         * bb-reorder.c: Likewise.
7084         * bt-load.c: Likewise.
7085         * builtins.c: Likewise.
7086         * caller-save.c: Likewise.
7087         * calls.c: Likewise.
7088         * ccmp.c: Likewise.
7089         * cfg.c: Likewise.
7090         * cfganal.c: Likewise.
7091         * cfgbuild.c: Likewise.
7092         * cfgcleanup.c: Likewise.
7093         * cfgexpand.c: Likewise.
7094         * cfghooks.c: Likewise.
7095         * cfgloop.c: Likewise.
7096         * cfgloop.h: Likewise.
7097         * cfgloopanal.c: Likewise.
7098         * cfgloopmanip.c: Likewise.
7099         * cfgrtl.c: Likewise.
7100         * cgraph.c: Likewise.
7101         * cgraphbuild.c: Likewise.
7102         * cgraphclones.c: Likewise.
7103         * cgraphunit.c: Likewise.
7104         * cilk-common.c: Likewise.
7105         * combine-stack-adj.c: Likewise.
7106         * combine.c: Likewise.
7107         * compare-elim.c: Likewise.
7108         * convert.c: Likewise.
7109         * coverage.c: Likewise.
7110         * cppbuiltin.c: Likewise.
7111         * cprop.c: Likewise.
7112         * cse.c: Likewise.
7113         * cselib.c: Likewise.
7114         * data-streamer-in.c: Likewise.
7115         * data-streamer-out.c: Likewise.
7116         * data-streamer.c: Likewise.
7117         * dbxout.c: Likewise.
7118         * dce.c: Likewise.
7119         * ddg.c: Likewise.
7120         * debug.c: Likewise.
7121         * df-core.c: Likewise.
7122         * df-problems.c: Likewise.
7123         * df-scan.c: Likewise.
7124         * df.h: Likewise.
7125         * dfp.c: Likewise.
7126         * dojump.c: Likewise.
7127         * dominance.c: Likewise.
7128         * domwalk.c: Likewise.
7129         * double-int.c: Likewise.
7130         * dse.c: Likewise.
7131         * dumpfile.c: Likewise.
7132         * dwarf2asm.c: Likewise.
7133         * dwarf2cfi.c: Likewise.
7134         * dwarf2out.c: Likewise.
7135         * dwarf2out.h: Likewise.
7136         * emit-rtl.c: Likewise.
7137         * et-forest.c: Likewise.
7138         * except.c: Likewise.
7139         * explow.c: Likewise.
7140         * expmed.c: Likewise.
7141         * expr.c: Likewise.
7142         * final.c: Likewise.
7143         * fixed-value.c: Likewise.
7144         * fold-const.c: Likewise.
7145         * function.c: Likewise.
7146         * fwprop.c: Likewise.
7147         * gcc-plugin.h: Likewise.
7148         * gcse.c: Likewise.
7149         * generic-match-head.c: Likewise.
7150         * ggc-page.c: Likewise.
7151         * gimple-builder.c: Likewise.
7152         * gimple-expr.c: Likewise.
7153         * gimple-fold.c: Likewise.
7154         * gimple-iterator.c: Likewise.
7155         * gimple-low.c: Likewise.
7156         * gimple-match-head.c: Likewise.
7157         * gimple-pretty-print.c: Likewise.
7158         * gimple-ssa-isolate-paths.c: Likewise.
7159         * gimple-ssa-strength-reduction.c: Likewise.
7160         * gimple-streamer-in.c: Likewise.
7161         * gimple-streamer-out.c: Likewise.
7162         * gimple-streamer.h: Likewise.
7163         * gimple-walk.c: Likewise.
7164         * gimple.c: Likewise.
7165         * gimplify-me.c: Likewise.
7166         * gimplify.c: Likewise.
7167         * godump.c: Likewise.
7168         * graph.c: Likewise.
7169         * graphite-blocking.c: Likewise.
7170         * graphite-dependences.c: Likewise.
7171         * graphite-interchange.c: Likewise.
7172         * graphite-isl-ast-to-gimple.c: Likewise.
7173         * graphite-optimize-isl.c: Likewise.
7174         * graphite-poly.c: Likewise.
7175         * graphite-scop-detection.c: Likewise.
7176         * graphite-sese-to-poly.c: Likewise.
7177         * graphite.c: Likewise.
7178         * haifa-sched.c: Likewise.
7179         * hooks.h: Likewise.
7180         * hw-doloop.c: Likewise.
7181         * ifcvt.c: Likewise.
7182         * incpath.c: Likewise.
7183         * init-regs.c: Likewise.
7184         * internal-fn.c: Likewise.
7185         * ipa-chkp.c: Likewise.
7186         * ipa-comdats.c: Likewise.
7187         * ipa-cp.c: Likewise.
7188         * ipa-devirt.c: Likewise.
7189         * ipa-icf-gimple.c: Likewise.
7190         * ipa-icf.c: Likewise.
7191         * ipa-inline-analysis.c: Likewise.
7192         * ipa-inline-transform.c: Likewise.
7193         * ipa-inline.c: Likewise.
7194         * ipa-polymorphic-call.c: Likewise.
7195         * ipa-profile.c: Likewise.
7196         * ipa-prop.c: Likewise.
7197         * ipa-pure-const.c: Likewise.
7198         * ipa-ref.c: Likewise.
7199         * ipa-reference.c: Likewise.
7200         * ipa-split.c: Likewise.
7201         * ipa-utils.c: Likewise.
7202         * ipa-visibility.c: Likewise.
7203         * ipa.c: Likewise.
7204         * ira-build.c: Likewise.
7205         * ira-color.c: Likewise.
7206         * ira-conflicts.c: Likewise.
7207         * ira-costs.c: Likewise.
7208         * ira-emit.c: Likewise.
7209         * ira-lives.c: Likewise.
7210         * ira.c: Likewise.
7211         * jump.c: Likewise.
7212         * langhooks.c: Likewise.
7213         * lcm.c: Likewise.
7214         * loop-doloop.c: Likewise.
7215         * loop-init.c: Likewise.
7216         * loop-invariant.c: Likewise.
7217         * loop-iv.c: Likewise.
7218         * loop-unroll.c: Likewise.
7219         * lower-subreg.c: Likewise.
7220         * lra-assigns.c: Likewise.
7221         * lra-coalesce.c: Likewise.
7222         * lra-constraints.c: Likewise.
7223         * lra-eliminations.c: Likewise.
7224         * lra-lives.c: Likewise.
7225         * lra-remat.c: Likewise.
7226         * lra-spills.c: Likewise.
7227         * lra.c: Likewise.
7228         * lto-cgraph.c: Likewise.
7229         * lto-compress.c: Likewise.
7230         * lto-opts.c: Likewise.
7231         * lto-section-in.c: Likewise.
7232         * lto-section-out.c: Likewise.
7233         * lto-streamer-in.c: Likewise.
7234         * lto-streamer-out.c: Likewise.
7235         * lto-streamer.c: Likewise.
7236         * mcf.c: Likewise.
7237         * mode-switching.c: Likewise.
7238         * modulo-sched.c: Likewise.
7239         * omega.c: Likewise.
7240         * omp-low.c: Likewise.
7241         * optabs.c: Likewise.
7242         * opts-global.c: Likewise.
7243         * passes.c: Likewise.
7244         * plugin.c: Likewise.
7245         * postreload-gcse.c: Likewise.
7246         * postreload.c: Likewise.
7247         * predict.c: Likewise.
7248         * print-rtl.c: Likewise.
7249         * print-tree.c: Likewise.
7250         * profile.c: Likewise.
7251         * real.c: Likewise.
7252         * realmpfr.c: Likewise.
7253         * realmpfr.h: Likewise.
7254         * recog.c: Likewise.
7255         * ree.c: Likewise.
7256         * reg-stack.c: Likewise.
7257         * regcprop.c: Likewise.
7258         * reginfo.c: Likewise.
7259         * regrename.c: Likewise.
7260         * regs.h: Likewise.
7261         * regstat.c: Likewise.
7262         * reload.c: Likewise.
7263         * reload1.c: Likewise.
7264         * reorg.c: Likewise.
7265         * resource.c: Likewise.
7266         * rtl-chkp.c: Likewise.
7267         * rtlanal.c: Likewise.
7268         * rtlhooks.c: Likewise.
7269         * sanopt.c: Likewise.
7270         * sched-deps.c: Likewise.
7271         * sched-ebb.c: Likewise.
7272         * sched-rgn.c: Likewise.
7273         * sched-vis.c: Likewise.
7274         * sdbout.c: Likewise.
7275         * sel-sched-dump.c: Likewise.
7276         * sel-sched-ir.c: Likewise.
7277         * sel-sched.c: Likewise.
7278         * sese.c: Likewise.
7279         * shrink-wrap.c: Likewise.
7280         * shrink-wrap.h: Likewise.
7281         * simplify-rtx.c: Likewise.
7282         * stack-ptr-mod.c: Likewise.
7283         * statistics.c: Likewise.
7284         * stmt.c: Likewise.
7285         * stor-layout.c: Likewise.
7286         * store-motion.c: Likewise.
7287         * stringpool.c: Likewise.
7288         * symtab.c: Likewise.
7289         * target-globals.c: Likewise.
7290         * targhooks.c: Likewise.
7291         * toplev.c: Likewise.
7292         * tracer.c: Likewise.
7293         * trans-mem.c: Likewise.
7294         * tree-affine.c: Likewise.
7295         * tree-affine.h: Likewise.
7296         * tree-browser.c: Likewise.
7297         * tree-call-cdce.c: Likewise.
7298         * tree-cfg.c: Likewise.
7299         * tree-cfgcleanup.c: Likewise.
7300         * tree-chkp-opt.c: Likewise.
7301         * tree-chkp.c: Likewise.
7302         * tree-chrec.c: Likewise.
7303         * tree-complex.c: Likewise.
7304         * tree-data-ref.c: Likewise.
7305         * tree-dfa.c: Likewise.
7306         * tree-diagnostic.c: Likewise.
7307         * tree-dump.c: Likewise.
7308         * tree-eh.c: Likewise.
7309         * tree-emutls.c: Likewise.
7310         * tree-if-conv.c: Likewise.
7311         * tree-inline.c: Likewise.
7312         * tree-into-ssa.c: Likewise.
7313         * tree-iterator.c: Likewise.
7314         * tree-loop-distribution.c: Likewise.
7315         * tree-nested.c: Likewise.
7316         * tree-nrv.c: Likewise.
7317         * tree-object-size.c: Likewise.
7318         * tree-outof-ssa.c: Likewise.
7319         * tree-parloops.c: Likewise.
7320         * tree-phinodes.c: Likewise.
7321         * tree-predcom.c: Likewise.
7322         * tree-pretty-print.c: Likewise.
7323         * tree-pretty-print.h: Likewise.
7324         * tree-profile.c: Likewise.
7325         * tree-scalar-evolution.c: Likewise.
7326         * tree-sra.c: Likewise.
7327         * tree-ssa-address.c: Likewise.
7328         * tree-ssa-alias.c: Likewise.
7329         * tree-ssa-ccp.c: Likewise.
7330         * tree-ssa-coalesce.c: Likewise.
7331         * tree-ssa-copy.c: Likewise.
7332         * tree-ssa-copyrename.c: Likewise.
7333         * tree-ssa-dce.c: Likewise.
7334         * tree-ssa-dom.c: Likewise.
7335         * tree-ssa-dse.c: Likewise.
7336         * tree-ssa-forwprop.c: Likewise.
7337         * tree-ssa-ifcombine.c: Likewise.
7338         * tree-ssa-live.c: Likewise.
7339         * tree-ssa-loop-ch.c: Likewise.
7340         * tree-ssa-loop-im.c: Likewise.
7341         * tree-ssa-loop-ivcanon.c: Likewise.
7342         * tree-ssa-loop-ivopts.c: Likewise.
7343         * tree-ssa-loop-manip.c: Likewise.
7344         * tree-ssa-loop-niter.c: Likewise.
7345         * tree-ssa-loop-prefetch.c: Likewise.
7346         * tree-ssa-loop-unswitch.c: Likewise.
7347         * tree-ssa-loop.c: Likewise.
7348         * tree-ssa-loop.h: Likewise.
7349         * tree-ssa-math-opts.c: Likewise.
7350         * tree-ssa-operands.c: Likewise.
7351         * tree-ssa-phiopt.c: Likewise.
7352         * tree-ssa-phiprop.c: Likewise.
7353         * tree-ssa-pre.c: Likewise.
7354         * tree-ssa-propagate.c: Likewise.
7355         * tree-ssa-reassoc.c: Likewise.
7356         * tree-ssa-sccvn.c: Likewise.
7357         * tree-ssa-scopedtables.c: Likewise.
7358         * tree-ssa-sink.c: Likewise.
7359         * tree-ssa-strlen.c: Likewise.
7360         * tree-ssa-structalias.c: Likewise.
7361         * tree-ssa-tail-merge.c: Likewise.
7362         * tree-ssa-ter.c: Likewise.
7363         * tree-ssa-threadedge.c: Likewise.
7364         * tree-ssa-threadupdate.c: Likewise.
7365         * tree-ssa-uncprop.c: Likewise.
7366         * tree-ssa-uninit.c: Likewise.
7367         * tree-ssa.c: Likewise.
7368         * tree-ssanames.c: Likewise.
7369         * tree-stdarg.c: Likewise.
7370         * tree-streamer-in.c: Likewise.
7371         * tree-streamer-out.c: Likewise.
7372         * tree-streamer.c: Likewise.
7373         * tree-switch-conversion.c: Likewise.
7374         * tree-tailcall.c: Likewise.
7375         * tree-vect-data-refs.c: Likewise.
7376         * tree-vect-generic.c: Likewise.
7377         * tree-vect-loop-manip.c: Likewise.
7378         * tree-vect-loop.c: Likewise.
7379         * tree-vect-patterns.c: Likewise.
7380         * tree-vect-slp.c: Likewise.
7381         * tree-vect-stmts.c: Likewise.
7382         * tree-vectorizer.c: Likewise.
7383         * tree-vrp.c: Likewise.
7384         * tree.c: Likewise.
7385         * tsan.c: Likewise.
7386         * ubsan.c: Likewise.
7387         * valtrack.c: Likewise.
7388         * value-prof.c: Likewise.
7389         * var-tracking.c: Likewise.
7390         * varasm.c: Likewise.
7391         * varpool.c: Likewise.
7392         * vmsdbgout.c: Likewise.
7393         * vtable-verify.c: Likewise.
7394         * web.c: Likewise.
7395         * wide-int-print.cc: Likewise.
7396         * wide-int-print.h: Likewise.
7397         * wide-int.cc: Likewise.
7398         * xcoffout.c: Likewise.
7399         * config/aarch64/aarch64-builtins.c: Likewise.
7400         * config/aarch64/aarch64.c: Likewise.
7401         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
7402         * config/alpha/alpha.c: Likewise.
7403         * config/arc/arc.c: Likewise.
7404         * config/arm/aarch-common.c: Likewise.
7405         * config/arm/arm-builtins.c: Likewise.
7406         * config/arm/arm-c.c: Likewise.
7407         * config/arm/arm.c: Likewise.
7408         * config/avr/avr-c.c: Likewise.
7409         * config/avr/avr-log.c: Likewise.
7410         * config/avr/avr.c: Likewise.
7411         * config/bfin/bfin.c: Likewise.
7412         * config/c6x/c6x.c: Likewise.
7413         * config/cr16/cr16.c: Likewise.
7414         * config/cris/cris.c: Likewise.
7415         * config/darwin-c.c: Likewise.
7416         * config/darwin.c: Likewise.
7417         * config/default-c.c: Likewise.
7418         * config/epiphany/epiphany.c: Likewise.
7419         * config/epiphany/mode-switch-use.c: Likewise.
7420         * config/epiphany/resolve-sw-modes.c: Likewise.
7421         * config/fr30/fr30.c: Likewise.
7422         * config/frv/frv.c: Likewise.
7423         * config/ft32/ft32.c: Likewise.
7424         * config/glibc-c.c: Likewise.
7425         * config/h8300/h8300.c: Likewise.
7426         * config/i386/i386-c.c: Likewise.
7427         * config/i386/i386.c: Likewise.
7428         * config/i386/msformat-c.c: Likewise.
7429         * config/i386/winnt-cxx.c: Likewise.
7430         * config/i386/winnt-stubs.c: Likewise.
7431         * config/i386/winnt.c: Likewise.
7432         * config/ia64/ia64-c.c: Likewise.
7433         * config/ia64/ia64.c: Likewise.
7434         * config/iq2000/iq2000.c: Likewise.
7435         * config/lm32/lm32.c: Likewise.
7436         * config/m32c/m32c-pragma.c: Likewise.
7437         * config/m32c/m32c.c: Likewise.
7438         * config/m32r/m32r.c: Likewise.
7439         * config/m68k/m68k.c: Likewise.
7440         * config/mcore/mcore.c: Likewise.
7441         * config/mep/mep-pragma.c: Likewise.
7442         * config/mep/mep.c: Likewise.
7443         * config/microblaze/microblaze-c.c: Likewise.
7444         * config/microblaze/microblaze.c: Likewise.
7445         * config/mips/mips.c: Likewise.
7446         * config/mmix/mmix.c: Likewise.
7447         * config/mn10300/mn10300.c: Likewise.
7448         * config/moxie/moxie.c: Likewise.
7449         * config/msp430/msp430-c.c: Likewise.
7450         * config/msp430/msp430.c: Likewise.
7451         * config/nds32/nds32-cost.c: Likewise.
7452         * config/nds32/nds32-fp-as-gp.c: Likewise.
7453         * config/nds32/nds32-intrinsic.c: Likewise.
7454         * config/nds32/nds32-isr.c: Likewise.
7455         * config/nds32/nds32-md-auxiliary.c: Likewise.
7456         * config/nds32/nds32-memory-manipulation.c: Likewise.
7457         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
7458         * config/nds32/nds32-predicates.c: Likewise.
7459         * config/nds32/nds32.c: Likewise.
7460         * config/nios2/nios2.c: Likewise.
7461         * config/nvptx/nvptx.c: Likewise.
7462         * config/pa/pa.c: Likewise.
7463         * config/pdp11/pdp11.c: Likewise.
7464         * config/rl78/rl78-c.c: Likewise.
7465         * config/rl78/rl78.c: Likewise.
7466         * config/rs6000/rs6000-c.c: Likewise.
7467         * config/rs6000/rs6000.c: Likewise.
7468         * config/rx/rx.c: Likewise.
7469         * config/s390/s390-c.c: Likewise.
7470         * config/s390/s390.c: Likewise.
7471         * config/sh/sh-c.c: Likewise.
7472         * config/sh/sh-mem.cc: Likewise.
7473         * config/sh/sh.c: Likewise.
7474         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
7475         * config/sh/sh_treg_combine.cc: Likewise.
7476         * config/sol2-c.c: Likewise.
7477         * config/sol2-cxx.c: Likewise.
7478         * config/sol2-stubs.c: Likewise.
7479         * config/sol2.c: Likewise.
7480         * config/sparc/sparc-c.c: Likewise.
7481         * config/sparc/sparc.c: Likewise.
7482         * config/spu/spu-c.c: Likewise.
7483         * config/spu/spu.c: Likewise.
7484         * config/stormy16/stormy16.c: Likewise.
7485         * config/tilegx/mul-tables.c: Likewise.
7486         * config/tilegx/tilegx-c.c: Likewise.
7487         * config/tilegx/tilegx.c: Likewise.
7488         * config/tilepro/mul-tables.c: Likewise.
7489         * config/tilepro/tilepro-c.c: Likewise.
7490         * config/tilepro/tilepro.c: Likewise.
7491         * config/v850/v850-c.c: Likewise.
7492         * config/v850/v850.c: Likewise.
7493         * config/vax/vax.c: Likewise.
7494         * config/visium/visium.c: Likewise.
7495         * config/vms/vms-c.c: Likewise.
7496         * config/vms/vms.c: Likewise.
7497         * config/vxworks.c: Likewise.
7498         * config/winnt-c.c: Likewise.
7499         * config/xtensa/xtensa.c: Likewise.
7500         * common/config/bfin/bfin-common.c: Likewise.
7501
7502 2015-06-04  Jan Hubicka  <hubicka@ucw.cz>
7503
7504         * tree.h (tree_code_for_canonical_type_merging): New function.
7505         * tree.c (gimple_canonical_types_compatible_p): Use
7506         tree_code_for_canonical_type_merging..
7507
7508 2015-06-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7509
7510         PR c++/66192
7511         PR target/66200
7512         * doc/tm.texi: Regenerate.
7513         * doc/tm.texi.in (TARGET_RELAXED_ORDERING): Delete.
7514         * target.def (TARGET_RELAXED_ORDERING): Likewise.
7515         * config/alpha/alpha.c (TARGET_RELAXED_ORDERING): Likewise.
7516         * config/ia64/ia64.c (TARGET_RELAXED_ORDERING): Likewise.
7517         * config/rs6000/rs6000.c (TARGET_RELAXED_ORDERING): Likewise.
7518         * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Likewise.
7519         * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
7520         * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Likewise.
7521         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Likewise.
7522
7523 2015-06-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7524
7525         * config/aarch64/aarch64.c (aarch64_override_options): Unconditionally
7526         register fma steering pass.
7527         * config/aarch64/cortex-a57-fma-steering.c (gate): Add gating on
7528         AARCH64_TUNE_FMA_STEERING.
7529
7530 2015-06-03  Jan Hubicka  <hubicka@ucw.cz>
7531
7532         * tree.c (verify_type_variant): Verify that type and variant is
7533         compatible.
7534         (gimple_canonical_types_compatible_p): Look for main variants.
7535
7536 2015-06-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
7537
7538         * config.gcc (powerpc*-*-*): Add support for a new configure
7539         option --with-advance-toolchain=<xxx> which overrides using the
7540         default header files, libraries and dynamic linker.
7541
7542         * config/rs6000/linux64.h (SUBSUBTARGET_EXTRA_SPECS): Add new
7543         specs to support the configure --with-advance-toolchain=<xxx>
7544         option.
7545         (INCLUDE_EXTRA_SPEC): Likewise.
7546         (LINK_OS_EXTRA_SPEC32): Likewise.
7547         (LINK_OK_EXTRA_SPEC64): Likewise.
7548         (LINK_OS_NEW_DTAGS_SPEC): Likewise.
7549         (DYNAMIC_LINKER_PREFIX): Likewise.
7550         (CPP_OS_DEFAULT_SPEC): Use the new specs for providing advance
7551         toolchain support.
7552         (GLIBC_DYNAMIC_LINKER32): Likewise.
7553         (GLIBC_DYNAMIC_LINKER64): Likewise.
7554         (LINK_OS_LINUX_SPEC32): Likewise.
7555         (LINK_OS_LINUX_SPEC64): Likewise.
7556
7557         * doc/install.texi (--enable-advance-toolchain=<xx>): Document new
7558         configuration option.
7559
7560 2015-06-03  Uros Bizjak  <ubizjak@gmail.com>
7561
7562         PR target/66275
7563         * config/i386/i386.c (ix86_function_arg_regno): Use ix86_cfun_abi
7564         to determine current function ABI.
7565         (ix86_function_value_regno_p): Ditto.
7566
7567 2015-06-03  Martin Liska  <mliska@suse.cz>
7568
7569         * alloc-pool.h (struct pool_usage): Correct GNU coding style.
7570         * bitmap.h (struct bitmap_usage): Likewise.
7571         * ggc-common.c (struct ggc_usage): Likewise.
7572         * mem-stats.h (struct mem_location): Likewise.
7573         (struct mem_usage): Likewise.
7574         * vec.c (struct vec_usage): Likewise.
7575
7576 2015-06-03  Benigno B. Junior  <bbj@gentoo.org>
7577
7578         * config/netbsd-elf.h (NETBSD_LINK_SPEC_ELF): Turn -symbolic into
7579         -Bsymbolic.
7580
7581 2015-06-02  Andres Tiraboschi  <andres.tiraboschi@tallertechnologies.com>
7582
7583         * doc/plugins.texi (enum plugin_event): New event.
7584         * plugin.c (register_callback): Handle PLUGIN_START_PARSE_FUNCTION
7585         and PLUGIN_FINISH_FUNCTION.
7586         * plugin.def (PLUGIN_START_PARSE_FUNCTION): Add plugin event
7587         (PLUGIN_FINISH_PARSE_FUNCTION): Likewise.
7588
7589 2015-06-03  Richard Biener  <rguenther@suse.de>
7590
7591         * tree-vect-data-refs.c (vect_analyze_group_access): Properly
7592         compute GROUP_GAP for the first element.
7593         * tree-vect-slp.c (vect_build_slp_tree_1): Remove restriction
7594         on in-group gaps.
7595
7596 2015-06-03  Nick Clifton  <nickc@redhat.com>
7597
7598         * config/rl78/rl78-real.md: Add peepholes to avoid a register
7599         copy when calling a function.
7600         * config/rl78/rl78.c (need_to_save): Do not push the frame
7601         pointer in an interrupt handler prologue if it is never used.
7602
7603 2015-06-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7604
7605         * ifcvt (end_ifcvt_sequence): Fix typo in comment above.
7606
7607 2015-06-03  Ilya Enkovich  <ilya.enkovich@intel.com>
7608
7609         * ipa-chkp.c (chkp_maybe_create_clone): Create alias
7610         reference when cloning alias node.
7611
7612 2015-06-03  Martin Liska  <mliska@suse.cz>
7613
7614         * alloc-pool.h (struct pool_usage): Correct space padding.
7615         * ggc-page.c (ggc_print_statistics): Align columns in a report.
7616         * mem-stats.h (struct mem_usage): Add argument to print_dash_line.
7617         * tree.c (dump_tree_statistics): Align columns in a report.
7618
7619 2015-06-03  Martin Liska  <mliska@suse.cz>
7620
7621         * alloc-pool.c (allocate_pool_descriptor): Remove.
7622         (struct pool_output_info): Likewise.
7623         (print_alloc_pool_statistics): Likewise.
7624         (dump_alloc_pool_statistics): Likewise.
7625         * alloc-pool.h (struct pool_usage): New struct.
7626         (pool_allocator::initialize): Change usage of memory statistics
7627         to a new interface.
7628         (pool_allocator::release): Likewise.
7629         (pool_allocator::allocate): Likewise.
7630         (pool_allocator::remove): Likewise.
7631         * mem-stats-traits.h (enum mem_alloc_origin): Add new enum value
7632         for a pool allocator.
7633         * mem-stats.h (struct mem_location): Add new ctor.
7634         (struct mem_usage): Add counter for number of
7635         instances.
7636         (mem_alloc_description::register_descriptor): New overload of
7637         * mem-stats.h (mem_location::to_string): New function.
7638         * bitmap.h (struct bitmap_usage): Use this new function.
7639         * ggc-common.c (struct ggc_usage): Likewise.
7640         the function.
7641
7642 2015-06-03  Richard Sandiford  <richard.sandiford@arm.com>
7643
7644         * defaults.h (SWITCHABLE_TARGET, TARGET_SUPPORTS_WIDE_INT): Move out
7645         of GCC_INSN_FLAGS_H block.
7646
7647 2015-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
7648
7649         * explow.c (plus_constant): Update check after force_const_mem call
7650         to see if the value returned is not a NULL_RTX.
7651
7652 2015-06-03  Ilya Enkovich  <ilya.enkovich@intel.com>
7653
7654         * ipa.c (symbol_table::remove_unreachable_nodes): Don't
7655         remove instumentation thunks calling reachable functions.
7656         * lto-cgraph.c (output_refs): Always output IPA_REF_CHKP.
7657         * lto/lto-partition.c (privatize_symbol_name_1): New.
7658         (privatize_symbol_name): Privatize both decl and orig_decl
7659         names for instrumented functions.
7660         * cgraph.c (cgraph_node::verify_node): Add transparent
7661         alias chain check for instrumented node.
7662
7663 2015-06-03  Marek Polacek  <polacek@redhat.com>
7664
7665         PR c/64223
7666         PR c/29358
7667         * tree.c (attribute_value_equal): Handle attribute format.
7668         (cmp_attrib_identifiers): Factor out of lookup_ident_attribute.
7669
7670 2015-06-03  Richard Biener  <rguenther@suse.de>
7671
7672         PR tree-optimization/63916
7673         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
7674         Forward-propagate non-invariant addresses by splicing their
7675         reference ops if the result isn't going to be used by PRE.
7676         (vn_reference_lookup_3): Remove pointless assert.
7677
7678 2015-06-03  Richard Biener  <rguenther@suse.de>
7679
7680         PR tree-optimization/66375
7681         * tree-scalar-evolution.c (follow_ssa_edge_binary): First
7682         add to the evolution before following SSA edges.
7683
7684 2015-06-03  Bin Cheng  <bin.cheng@arm.com>
7685
7686         * tree-ssa-loop-ivopts.c (dump_iv): New parameter.
7687         (dump_use, dump_cand, find_induction_variables): Pass new argument
7688         to dump_iv.
7689         (record_use): Preserve the ssa name information in IV.
7690
7691 2015-06-03  Richard Sandiford  <richard.sandiford@arm.com>
7692
7693         * genpreds.c (mark_mode_tests): Mark all MATCH_CODEs as
7694         NO_MODE_TEST.
7695         (add_mode_tests): Don't add mode tests if the predicate only
7696         accepts scalar constant integers.  Otherwise, allow the mode
7697         of "op" to be VOIDmode if the predicate does accept such integers.
7698
7699 2015-06-02  Jim Wilson  <jim.wilson@linaro.org>
7700
7701         PR target/66258
7702         * config/aarch64/aarch64.c (aarch64_function_value_regno_p): Change
7703         !TARGET_GENERAL_REGS_ONLY to TARGET_FLOAT.
7704         (aarch64_secondary_reload): Likewise
7705         (aarch64_expand_builtin_va_start): Change TARGET_GENERAL_REGS_ONLY
7706         to !TARGET_FLOAT.
7707         (aarch64_gimplify_va_arg_expr, aarch64_setup_incoming_varargs):
7708         Likewise.
7709
7710 2015-06-03  Kugan Vivekanandarajah  <kuganv@linaro.org>
7711             Zhenqiang Chen  <zhenqiang.chen@linaro.org>
7712
7713         PR target/65768
7714         * cprop.c (try_replace_reg): Check cost of constants before propagating.
7715
7716 2015-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
7717
7718         * config/rs6000/rs6000-modes.def (IFmode): Define IFmode to
7719         provide access to the IBM extended double floating point mode if
7720         long double is IEEE 128-bit floating point.
7721         (KFmode): Define KFmode to provide access to IEEE 128-bit floating
7722         point if long double is the IBM extended double type.
7723
7724         * config/rs6000/rs6000.opt (-mfloat128-none): New switches to
7725         enable adding IEEE 128-bit floating point support.
7726         (-mfloat128-software): Likewise.
7727         (-mfloat128-sw): Likewise.
7728
7729         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Do not allow
7730         128-bit floating point types to occupy any register if
7731         -mlong-double-64.  Do not allow use of IFmode/KFmode unless
7732         -mfloat128-software is enabled.
7733         (rs6000_debug_reg_global): Add IEEE 128-bit floating point debug
7734         support.
7735         (rs6000_option_override_internal): Add -mfloat128-* support.
7736         (rs6000_init_builtins): Setup __ibm128 and __float128 type modes.
7737
7738         * config/rs6000/rs6000.h (rs6000_builtin_type_index): Add ibm128
7739         and float128 type nodes.
7740         (ieee128_float_type_node): Likewise.
7741         (ibm128_float_type_node): Likewise.
7742
7743 2015-06-02  Szabolcs Nagy  <szabolcs.nagy@arm.com>
7744
7745         PR target/66136
7746         * config/aarch64/geniterators.sh: Rewrite in awk.
7747
7748 2015-06-02  Martin Liska  <mliska@suse.cz>
7749
7750         * alloc-pool.h (pool_allocator::pool_allocator): Set implicit
7751         values to avoid -Wmaybe-uninitialized errors.
7752
7753 2015-06-02  Richard Biener  <rguenther@suse.de>
7754
7755         PR debug/65549
7756         * dwarf2out.c (lookup_context_die): New function.
7757         (resolve_addr): Avoid forcing a full DIE for the
7758         target of a DW_TAG_GNU_call_site during late compilation.
7759         Instead create a stub DIE without a type if we have a
7760         context DIE present.
7761
7762 2015-06-02  Uros Bizjak  <ubizjak@gmail.com>
7763
7764         * df-scan.c (df_scan_start_dump): Add space between regno and regname.
7765
7766 2015-06-02  Bin Cheng  <bin.cheng@arm.com>
7767
7768         PR tree-optimization/48052
7769         * cfgloop.h (struct control_iv): New.
7770         (struct loop): New field control_ivs.
7771         * tree-ssa-loop-niter.c : Include "stor-layout.h".
7772         (number_of_iterations_lt): Set no_overflow information.
7773         (number_of_iterations_exit): Init control iv in niter struct.
7774         (record_control_iv): New.
7775         (estimate_numbers_of_iterations_loop): Call record_control_iv.
7776         (loop_exits_before_overflow): New.  Interface factored out of
7777         scev_probably_wraps_p.
7778         (scev_probably_wraps_p): Factor loop niter related code into
7779         loop_exits_before_overflow.
7780         (free_numbers_of_iterations_estimates_loop): Free control ivs.
7781         * tree-ssa-loop-niter.h (free_loop_control_ivs): New.
7782
7783 2015-06-02  Eric Botcazou  <ebotcazou@adacore.com>
7784
7785         * gimplify.c (gimplify_modify_expr): Do not create a DECL_DEBUG_EXPR if
7786         the target doesn't belong to the current function.
7787
7788 2015-06-02  Marek Polacek  <polacek@redhat.com>
7789
7790         PR middle-end/66345
7791         * gimple-fold.c (gimple_fold_builtin_snprintf): Return false if
7792         get_maxval_strlen does not produce an INTEGER_CST.
7793
7794 2015-06-02  Richard Sandiford  <richard.sandiford@arm.com>
7795
7796         * config/arc/constraints.md: Use lower-case names in match_code.
7797         * config/mmix/constraints.md: Likewise.
7798
7799 2015-06-02  Richard Biener  <rguenther@suse.de>
7800
7801         PR tree-optimization/65961
7802         * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove bogus
7803         check and clarify dump message.
7804         (vect_build_slp_tree): If all children are built up from scalars
7805         build up the parent from scalars instead.
7806         * tree-vect-stmts.c (vect_is_simple_use): Cleanup.
7807
7808 2015-06-02  Jan Kratochvil  <jan.kratochvil@redhat.com>
7809
7810         PR other/65366
7811         * gdbhooks.py: Use int(...) instead of long(...).  Use print(...)
7812         instead of print ... .
7813
7814 2015-06-02  Alan Modra  <amodra@gmail.com>
7815
7816         * config/rs6000/vsx.md (vsx_extract_v4sf): Revert accidental
7817         2014-08-11 change.
7818
7819 2015-06-02  Bin Cheng  <bin.cheng@arm.com>
7820
7821         PR tree-optimization/52563
7822         PR tree-optimization/62173
7823         * tree-ssa-loop-ivopts.c (struct iv): New field.  Reorder fields.
7824         (alloc_iv, set_iv): New parameter.
7825         (determine_biv_step): Delete.
7826         (find_bivs): Inline original determine_biv_step.  Pass new
7827         argument to set_iv.
7828         (idx_find_step): Use no_overflow information for conversion.
7829         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop): Let
7830         resolve_mixers handle folded_casts.
7831         (instantiate_scev_name): Change bool parameter to bool pointer.
7832         (instantiate_scev_poly, instantiate_scev_binary): Ditto.
7833         (instantiate_array_ref, instantiate_scev_not): Ditto.
7834         (instantiate_scev_3, instantiate_scev_2): Ditto.
7835         (instantiate_scev_1, instantiate_scev_r): Ditto.
7836         (instantiate_scev_convert, ): Change parameter.  Pass argument
7837         to chrec_convert_aggressive.
7838         (instantiate_scev): Change argument.
7839         (resolve_mixers): New parameter and set it.
7840         (scev_const_prop): New argument.
7841         * tree-scalar-evolution.h (resolve_mixers): New parameter.
7842         * tree-chrec.c (convert_affine_scev): Call chrec_convert instead
7843         of chrec_conert_1.
7844         (chrec_convert): New parameter.  Move definition below.
7845         (chrec_convert_aggressive): New parameter and set it.  Call
7846         convert_affine_scev.
7847         * tree-chrec.h (chrec_convert): New parameter.
7848         (chrec_convert_aggressive): Ditto.
7849
7850 2015-06-01  Eric Botcazou  <ebotcazou@adacore.com>
7851
7852         * gimplify.c (gimplify_modify_expr_rhs): Use simple test on the size.
7853         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Do not remove
7854         the LHS of a no-return call if its type has variable size.
7855         * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
7856         * tree-cfg.c (verify_gimple_call): Accept these no-return calls.
7857
7858 2015-06-01  Andreas Tobler  <andreast@gcc.gnu.org>
7859
7860         * read-rtl.c: Adapt to use HAVE_DECL_ATOLL instead of HAVE_ATOLL.
7861         * config.in: Regenerate.
7862
7863 2015-06-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
7864
7865         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
7866         consecutive accesses within outer-loop with force_vectorize
7867         for references with zero step in inner-loop.
7868
7869 2015-06-01  Vidya Praveen  <vidyapraveen@arm.com>
7870
7871         * Makefile.in: Pick up gcov-dump dependencies from gcc/ directory
7872         rather than from gcc/build directory.
7873
7874 2015-06-01  Matthew Wahab  <matthew.wahab@arm.com>
7875
7876         PR target/65697
7877         * config/aarch64/aarch64.c (aarch64_split_compare_and_swap): Check
7878         for __sync memory models, emit initial loads and final barriers as
7879         appropriate.
7880
7881 2015-06-01  Matthew Wahab  <matthew.wahab@arm.com>
7882
7883         PR target/65697
7884         * config/aarch64/aarch64.c (aarch64_emit_post_barrier):New.
7885         (aarch64_split_atomic_op): Check for __sync memory models, emit
7886         appropriate initial loads and final barriers.
7887
7888 2015-06-01  Vidya Praveen  <vidyapraveen@arm.com>
7889
7890         * Makefile.in: Fix gcov dependencies that should
7891         not point to a build folder.
7892
7893 2015-06-01  Richard Biener  <rguenther@suse.de>
7894
7895         Revert
7896         2015-05-29  Richard Biener  <rguenther@suse.de>
7897
7898         PR tree-optimization/66314
7899         * tree-ssa-threadupdate.c (create_block_for_threading): Add
7900         parameter that says which loop the new block belongs to.
7901         (ssa_create_duplicates): Blocks duplicated for the threaded
7902         path belong to the loop of the thread destination.
7903
7904 2015-06-01  Martin Liska  <mliska@suse.cz>
7905
7906         * sched-deps.c: Include pool-alloc.h before
7907         cselib.h header file is included.
7908
7909 2015-06-01  Richard Biener  <rguenther@suse.de>
7910
7911         * tree-ssa-structalias.c (ipa_pta_execute): Handle address-taken
7912         functions.
7913
7914 2015-06-01  Martin Liska  <mliska@suse.cz>
7915
7916         * alloc-pool.h: Add ATTRIBUTE_UNUSED for
7917         a function local variable.
7918
7919 2015-06-01  Martin Liska  <mliska@suse.cz>
7920
7921         * alloc-pool.c (create_alloc_pool): Remove.
7922         (empty_alloc_pool): Likewise.
7923         (free_alloc_pool): Likewise.
7924         (free_alloc_pool_if_empty): Likewise.
7925         (pool_alloc): Likewise.
7926         (pool_free): Likewise.
7927         * alloc-pool.h: Remove old declarations.
7928
7929 2015-06-01  Martin Liska  <mliska@suse.cz>
7930
7931         * ira-build.c (initiate_allocnos): Use new type-based pool allocator.
7932         (ira_create_object): Likewise.
7933         (ira_create_allocno): Likewise.
7934         (ira_create_live_range): Likewise.
7935         (copy_live_range): Likewise.
7936         (ira_finish_live_range): Likewise.
7937         (ira_free_allocno_costs): Likewise.
7938         (finish_allocno): Likewise.
7939         (finish_allocnos): Likewise.
7940         (initiate_prefs): Likewise.
7941         (ira_create_pref): Likewise.
7942         (finish_pref): Likewise.
7943         (finish_prefs): Likewise.
7944         (initiate_copies): Likewise.
7945         (ira_create_copy): Likewise.
7946         (finish_copy): Likewise.
7947         (finish_copies): Likewise.
7948         (finish_prefs): Likewise.
7949
7950 2015-06-01  Martin Liska  <mliska@suse.cz>
7951
7952         * ipa-cp.c (ipcp_value::add_source): Use new type-based pool allocator.
7953         (allocate_and_init_ipcp_value): Likewise.
7954         (ipcp_lattice::add_value): Likewise.
7955         (merge_agg_lats_step): Likewise.
7956         (ipcp_driver): Likewise.
7957         * ipa-prop.c (ipa_free_all_structures_after_ipa_cp): Likewise.
7958         (ipa_free_all_structures_after_iinln): Likewise.
7959         * ipa-prop.h: Likewise.
7960
7961 2015-06-01  Martin Liska  <mliska@suse.cz>
7962
7963         * ipa-inline-analysis.c (edge_set_predicate): Use new type-based
7964         pool allocator.
7965         (set_hint_predicate): Likewise.
7966         (inline_summary_alloc): Likewise.
7967         (reset_inline_edge_summary): Likewise.
7968         (reset_inline_summary): Likewise.
7969         (set_cond_stmt_execution_predicate): Likewise.
7970         (set_switch_stmt_execution_predicate): Likewise.
7971         (compute_bb_predicates): Likewise.
7972         (estimate_function_body_sizes): Likewise.
7973         (inline_free_summary): Likewise.
7974
7975 2015-06-01  Martin Liska  <mliska@suse.cz>
7976
7977         * ipa-prop.c (ipa_set_jf_constant): Use new type-based pool allocator.
7978         (ipa_edge_duplication_hook): Likewise.
7979         (ipa_free_all_structures_after_ipa_cp): Likewise.
7980         (ipa_free_all_structures_after_iinln): Likewise.
7981
7982 2015-06-01  Martin Liska  <mliska@suse.cz>
7983
7984         * ipa-profile.c (account_time_size): Use new type-based pool allocator.
7985         (ipa_profile_generate_summary): Likewise.
7986         (ipa_profile_read_summary): Likewise.
7987         (ipa_profile): Likewise.
7988
7989 2015-06-01  Martin Liska  <mliska@suse.cz>
7990
7991         * tree-ssa-structalias.c (new_var_info): Use new type-based
7992         pool allocator.
7993         (new_constraint): Likewise.
7994         (init_alias_vars): Likewise.
7995         (delete_points_to_sets): Likewise.
7996
7997 2015-06-01  Martin Liska  <mliska@suse.cz>
7998
7999         * tree-ssa-strlen.c (new_strinfo): Use new type-based pool allocator.
8000         (free_strinfo): Likewise.
8001         (pass_strlen::execute): Likewise.
8002
8003 2015-06-01  Martin Liska  <mliska@suse.cz>
8004
8005         * tree-ssa-sccvn.c (vn_reference_insert): Use new type-based
8006         pool allocator.
8007         (vn_reference_insert_pieces): Likewise.
8008         (vn_phi_insert): Likewise.
8009         (visit_reference_op_call): Likewise.
8010         (copy_phi): Likewise.
8011         (copy_reference): Likewise.
8012         (process_scc): Likewise.
8013         (allocate_vn_table): Likewise.
8014         (free_vn_table): Likewise.
8015
8016 2015-06-01  Martin Liska  <mliska@suse.cz>
8017
8018         * tree-ssa-reassoc.c (add_to_ops_vec): Use new type-based
8019         pool allocator.
8020         (add_repeat_to_ops_vec): Likewise.
8021         (get_ops): Likewise.
8022         (maybe_optimize_range_tests): Likewise.
8023         (init_reassoc): Likewise.
8024         (fini_reassoc): Likewise.
8025
8026 2015-06-01  Martin Liska  <mliska@suse.cz>
8027
8028         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Use new type-based
8029         pool allocator.
8030         (bitmap_set_new): Likewise.
8031         (get_or_alloc_expr_for_constant): Likewise.
8032         (get_or_alloc_expr_for): Likewise.
8033         (phi_translate_1): Likewise.
8034         (compute_avail): Likewise.
8035         (init_pre): Likewise.
8036         (fini_pre): Likewise.
8037
8038 2015-06-01  Martin Liska  <mliska@suse.cz>
8039
8040         * sched-deps.c (create_dep_node): Use new type-based pool allocator.
8041         (delete_dep_node): Likewise.
8042         (create_deps_list): Likewise.
8043         (free_deps_list): Likewise.
8044         (sched_deps_init): Likewise.
8045         (sched_deps_finish): Likewise.
8046
8047 2015-06-01  Martin Liska  <mliska@suse.cz>
8048
8049         * regcprop.c (free_debug_insn_changes): Use new type-based
8050         pool allocator.
8051         (replace_oldest_value_reg): Likewise.
8052         (pass_cprop_hardreg::execute): Likewise.
8053
8054 2015-06-01  Martin Liska  <mliska@suse.cz>
8055
8056         * ira-build.c (initiate_cost_vectors): Use new type-based
8057         pool allocator.
8058         (ira_allocate_cost_vector): Likewise.
8059         (ira_free_cost_vector): Likewise.
8060         (finish_cost_vectors): Likewise.
8061
8062 2015-06-01  Martin Liska  <mliska@suse.cz>
8063
8064         * sel-sched-ir.c (alloc_sched_pools): Use new type-based
8065         pool allocator.
8066         (free_sched_pools): Likewise.
8067         * sel-sched-ir.h (_list_alloc): Likewise.
8068         (_list_remove): Likewise.
8069
8070 2015-06-01  Martin Liska  <mliska@suse.cz>
8071
8072         * stmt.c (add_case_node): Use new type-based pool allocator.
8073         (expand_case): Likewise.
8074         (expand_sjlj_dispatch_table): Likewise.
8075
8076 2015-06-01  Martin Liska  <mliska@suse.cz>
8077
8078         * tree-ssa-math-opts.c (occ_new): Use new type-based pool allocator.
8079         (free_bb): Likewise.
8080         (pass_cse_reciprocals::execute): Likewise.
8081
8082 2015-06-01  Martin Liska  <mliska@suse.cz>
8083
8084         * tree-sra.c (sra_initialize): Use new type-based pool allocator.
8085         (sra_deinitialize) Likewise.
8086         (create_access_1) Likewise.
8087         (build_accesses_from_assign) Likewise.
8088         (create_artificial_child_access) Likewise.
8089
8090 2015-06-01  Martin Liska  <mliska@suse.cz>
8091
8092         * dse.c (get_group_info):Use new type-based pool allocator.
8093         (dse_step0) Likewise.
8094         (free_store_info) Likewise.
8095         (delete_dead_store_insn) Likewise.
8096         (free_read_records) Likewise.
8097         (record_store) Likewise.
8098         (replace_read) Likewise.
8099         (check_mem_read_rtx) Likewise.
8100         (scan_insn) Likewise.
8101         (dse_step1) Likewise.
8102         (dse_step7) Likewise.
8103
8104 2015-06-01  Martin Liska  <mliska@suse.cz>
8105
8106         * df-scan.c (struct df_scan_problem_data):Use new type-based
8107         pool allocator.
8108         (df_scan_free_internal) Likewise.
8109         (df_scan_alloc) Likewise.
8110         (df_grow_reg_info) Likewise.
8111         (df_free_ref) Likewise.
8112         (df_insn_create_insn_record) Likewise.
8113         (df_mw_hardreg_chain_delete) Likewise.
8114         (df_insn_info_delete) Likewise.
8115         (df_free_collection_rec) Likewise.
8116         (df_mw_hardreg_chain_delete_eq_uses) Likewise.
8117         (df_sort_and_compress_mws) Likewise.
8118         (df_ref_create_structure) Likewise.
8119         (df_ref_record) Likewise.
8120
8121 2015-06-01  Martin Liska  <mliska@suse.cz>
8122
8123         * df-problems.c (df_chain_create):Use new type-based pool allocator.
8124         (df_chain_unlink_1) Likewise.
8125         (df_chain_unlink) Likewise.
8126         (df_chain_remove_problem) Likewise.
8127         (df_chain_alloc) Likewise.
8128         (df_chain_free) Likewise.
8129         * df.h (struct dataflow) Likewise.
8130
8131 2015-06-01  Martin Liska  <mliska@suse.cz>
8132
8133         * cselib.c (new_elt_list):Use new type-based pool allocator.
8134         (new_elt_loc_list) Likewise.
8135         (unchain_one_elt_list) Likewise.
8136         (unchain_one_elt_loc_list) Likewise.
8137         (unchain_one_value) Likewise.
8138         (new_cselib_val) Likewise.
8139         (cselib_init) Likewise.
8140         (cselib_finish) Likewise.
8141
8142 2015-06-01  Martin Liska  <mliska@suse.cz>
8143
8144         * config/sh/sh.c (add_constant):Use new type-based pool allocator.
8145         (sh_reorg) Likewise.
8146
8147 2015-06-01  Martin Liska  <mliska@suse.cz>
8148
8149         * cfg.c (initialize_original_copy_tables):Use new type-based
8150         pool allocator.
8151         (free_original_copy_tables) Likewise.
8152         (copy_original_table_clear) Likewise.
8153         (copy_original_table_set) Likewise.
8154
8155 2015-06-01  Martin Liska  <mliska@suse.cz>
8156
8157         * asan.c (asan_mem_ref_get_alloc_pool):Use new type-based
8158         pool allocator.
8159         (asan_mem_ref_new) Likewise.
8160         (free_mem_ref_resources) Likewise.
8161
8162 2015-06-01  Martin Liska  <mliska@suse.cz>
8163
8164         * var-tracking.c (variable_htab_free):Use new type-based
8165         pool allocator.
8166         (attrs_list_clear) Likewise.
8167         (attrs_list_insert) Likewise.
8168         (attrs_list_copy) Likewise.
8169         (shared_hash_unshare) Likewise.
8170         (shared_hash_destroy) Likewise.
8171         (unshare_variable) Likewise.
8172         (var_reg_delete_and_set) Likewise.
8173         (var_reg_delete) Likewise.
8174         (var_regno_delete) Likewise.
8175         (drop_overlapping_mem_locs) Likewise.
8176         (variable_union) Likewise.
8177         (insert_into_intersection) Likewise.
8178         (canonicalize_values_star) Likewise.
8179         (variable_merge_over_cur) Likewise.
8180         (dataflow_set_merge) Likewise.
8181         (remove_duplicate_values) Likewise.
8182         (variable_post_merge_new_vals) Likewise.
8183         (dataflow_set_preserve_mem_locs) Likewise.
8184         (dataflow_set_remove_mem_locs) Likewise.
8185         (variable_from_dropped) Likewise.
8186         (variable_was_changed) Likewise.
8187         (set_slot_part) Likewise.
8188         (clobber_slot_part) Likewise.
8189         (delete_slot_part) Likewise.
8190         (loc_exp_insert_dep) Likewise.
8191         (notify_dependents_of_changed_value) Likewise.
8192         (emit_notes_for_differences_1) Likewise.
8193         (vt_emit_notes) Likewise.
8194         (vt_initialize) Likewise.
8195         (vt_finalize) Likewise.
8196
8197 2015-06-01  Martin Liska  <mliska@suse.cz>
8198
8199         * ira-color.c (init_update_cost_records):Use new type-based
8200         pool allocator.
8201         (get_update_cost_record) Likewise.
8202         (free_update_cost_record_list) Likewise.
8203         (finish_update_cost_records) Likewise.
8204         (initiate_cost_update) Likewise.
8205
8206 2015-06-01  Martin Liska  <mliska@suse.cz>
8207
8208         * lra.c (init_insn_regs): Use new type-based pool allocator.
8209         (new_insn_reg) Likewise.
8210         (free_insn_reg) Likewise.
8211         (free_insn_regs) Likewise.
8212         (finish_insn_regs) Likewise.
8213         (init_insn_recog_data) Likewise.
8214         (init_reg_info) Likewise.
8215         (finish_reg_info) Likewise.
8216         (lra_free_copies) Likewise.
8217         (lra_create_copy) Likewise.
8218         (invalidate_insn_data_regno_info) Likewise.
8219
8220 2015-06-01  Martin Liska  <mliska@suse.cz>
8221
8222         * lra-lives.c (free_live_range): Use new type-based pool allocator.
8223         (free_live_range_list) Likewise.
8224         (create_live_range) Likewise.
8225         (copy_live_range) Likewise.
8226         (lra_merge_live_ranges) Likewise.
8227         (remove_some_program_points_and_update_live_ranges) Likewise.
8228         (lra_live_ranges_init) Likewise.
8229         (lra_live_ranges_finish) Likewise.
8230
8231 2015-06-01  Martin Liska  <mliska@suse.cz>
8232
8233         * et-forest.c (et_new_occ): Use new type-based pool allocator.
8234         (et_new_tree): Likewise.
8235         (et_free_tree): Likewise.
8236         (et_free_tree_force): Likewise.
8237         (et_free_pools): Likewise.
8238         (et_split): Likewise.
8239
8240 2015-06-01  Martin Liska  <mliska@suse.cz>
8241
8242         * alloc-pool.c (struct alloc_pool_descriptor): Move definition
8243         to header file.
8244         * alloc-pool.h (pool_allocator::pool_allocator): New function.
8245         (pool_allocator::release): Likewise.
8246         (inline pool_allocator::release_if_empty): Likewise.
8247         (inline pool_allocator::~pool_allocator): Likewise.
8248         (pool_allocator::allocate): Likewise.
8249         (pool_allocator::remove): Likewise.
8250
8251 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
8252
8253         * sched-deps.c (sched_analyze_2): Replace fuseable with fusible
8254         in comment.
8255
8256 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
8257
8258         * gcc/config/arm/arm-protos.h (tune_params): Rename fuseable_ops
8259         to fusible_ops.
8260         * gcc/config/arm/arm.c (arm_print_tune_info): Likewise.
8261         (arm_macro_fusion_p): Likewise.
8262         (arm_macro_fusion_pair_p): Likewise.
8263
8264 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
8265
8266         * config/aarch64/aarch64-protos.h (tune_params): Rename
8267         fuseable_ops to fusible_ops.
8268         * config/aarch64/aarch64.c (generic_tunings): Rename
8269         fuseable_ops to fusible_ops.
8270         (cortexa53_tunings): Likewise.
8271         (cortexa57_tunings): Likewise.
8272         (thunderx_tunings): Likewise.
8273         (xgene1_tunings): Likewise.
8274         (aarch64_macro_fusion_p): Likewise.
8275         (aarch64_macro_fusion_pair_p): Likewise.
8276
8277 2015-06-01  Dominik Vogt  <vogt@linux.vnet.ibm.com>
8278
8279         * config/s390/driver-native.c: New file.
8280         * config/s390/x-native: New file.
8281         * config.host: Add new files for s390.
8282         * config/s390/s390.h (DRIVER_SELF_SPECS): Add support for -mtune=native
8283         and -march=native
8284         * config.gcc: Likewise.
8285         * config/s390/s390.opt (march): Likewise; add PROCESSOR_NATIVE
8286         * config/s390/s390-opts.h (enum processor_type): Ditto.
8287         * config/s390/s390.c (s390_option_override): Catch unhandled
8288         PROCESSOR_NATIVE
8289
8290 2015-06-01  Ilya Enkovich  <ilya.enkovich@intel.com>
8291
8292         PR target/65527
8293         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Add
8294         redirection for instrumented calls.
8295         * lto-wrapper.c (merge_and_complain): Merge -fcheck-pointer-bounds.
8296         (append_compiler_options): Append -fcheck-pointer-bounds.
8297         * tree-chkp.h (chkp_copy_call_skip_bounds): New.
8298         (chkp_redirect_edge): New.
8299         * tree-chkp.c (chkp_copy_call_skip_bounds): New.
8300         (chkp_redirect_edge): New.
8301
8302 2015-06-01  Richard Biener  <rguenther@suse.de>
8303
8304         PR tree-optimization/66280
8305         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Fix pattern
8306         def-use walking.
8307
8308 2015-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8309
8310         * config/aarch64/aarch64.md
8311         (*<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Change type to
8312         logic_shift_imm.
8313
8314 2015-06-01  Eric Botcazou  <ebotcazou@adacore.com>
8315
8316         * config/i386/winnt.c (i386_pe_encode_section_info) <FUNCTION_DECL>:
8317         Remove obsolete kludge.
8318
8319 2015-06-01  Richard Biener  <rguenther@suse.de>
8320
8321         * tree-ssa-reassoc.c (get_rank): Simplify.
8322
8323 2015-05-31  H.J. Lu  <hongjiu.lu@intel.com>
8324
8325         * configure.ac (NO_PIE_CFLAGS): Check CXXFLAGS instead of CFLAGS.
8326         * configure: Regenerated.
8327
8328 2015-05-31  Mikhail Maltsev  <maltsevm@gmail.com>
8329
8330         * config/cris/cris.h (CRIS_ARCH_CPP_DEFAULT): Fix C++11 compatibility
8331         issue (add space between string literal and macro).
8332         * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Likewise.
8333
8334 2015-05-30  Andreas Schwab  <schwab@linux-m68k.org>
8335
8336         * config/m68k/m68k.h (ASM_PCREL_SPEC): Pass --pcrel also for
8337         implict or explicit -fPIE or -fpie.
8338
8339 2015-05-30  Mike Frysinger  <vapier@gentoo.org>
8340
8341         * gcc/config/alpha/elf.h (ASM_SPEC): Add %{mcpu=*:-m%*}.
8342
8343 2015-05-28  DJ Delorie  <dj@redhat.com>
8344
8345         * expmed.c (extract_bit_field_1): Avoid clobbering a
8346         yet-to-be-used base/index register.
8347
8348 2015-05-30  Jan Hubicka  <hubicka@ucw.cz>
8349
8350         * alias.c (alias_set_entry_d): Add is_pointer and has_pointer.
8351         (alias_stats): Add num_universal.
8352         (alias_set_subset_of): Special case pointers; be ready for NULL
8353         children.
8354         (alias_sets_conflict_p): Special case pointers; be ready for NULL
8355         children.
8356         (init_alias_set_entry): Break out from ...
8357         (record_alias_subset): ... here; propagate new fields;
8358         allocate children only when really needed.
8359         (get_alias_set): Do less generous pointer globbing.
8360         (dump_alias_stats_in_alias_c): Update statistics.
8361
8362 2015-05-30  Alan Modra  <amodra@gmail.com>
8363
8364         * config/rs6000/rs6000.c (split_stack_arg_pointer_used_p): Scan
8365         correct block for use of r12.
8366         (rs6000_expand_split_stack_prologue): Error on r29 asm global reg.
8367
8368 2015-05-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
8369
8370         PR target/66215
8371         * config/s390/s390.c (s390_reorg): Fix placement of post-label NOPs
8372         with -mhotpatch=.
8373
8374 2015-05-29  Jakub Jelinek  <jakub@redhat.com>
8375
8376         PR tree-optimization/66142
8377         * tree-if-conv.c (if_convertible_phi_p): Don't give up on
8378         virtual phis that feed themselves.
8379
8380 2015-05-29  Richard Biener  <rguenther@suse.de>
8381
8382         PR tree-optimization/66314
8383         * tree-ssa-threadupdate.c (create_block_for_threading): Add
8384         parameter that says which loop the new block belongs to.
8385         (ssa_create_duplicates): Blocks duplicated for the threaded
8386         path belong to the loop of the thread destination.
8387
8388 2015-05-29  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
8389
8390         * config/arm/neon-testgen.ml (emit_epilogue): Remove manual call
8391         to cleanup-saved-temps.
8392         * doc/sourcebuild.texi (Clean up generated test files): Expand
8393         introduction.
8394         (dg-keep-saved-temps): Document new proc.
8395         (cleanup-ipa-dump, cleanup-rtl-dump, cleanup-tree-dump,
8396         cleanup-saved-temps): Remove.
8397
8398 2015-05-28  Andreas Tobler  <andreast@gcc.gnu.org>
8399
8400         * configure.ac: Move the atoll check from AC_CHECK_FUNCS to
8401         gcc_AC_CHECK_DECLS.
8402         * configure: Regenerate.
8403
8404 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
8405
8406         * config/nios2/linux.h (CPP_SPEC): Define.
8407
8408 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
8409
8410         * config/microblaze/linux.h (CPP_SPEC): Define.
8411
8412 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
8413
8414         * config/pa/pa-linux.h (CPP_SPEC): Change so -D_REENTRANT is used when
8415         -pthread is specified.
8416
8417 2015-05-28  Richard Biener  <rguenther@suse.de>
8418
8419         * tree-vect-loop.c (vect_fixup_reduc_chain): New function.
8420         (vect_fixup_scalar_cycles_with_patterns): Likewise.
8421         (vect_analyze_loop_2): Call vect_fixup_scalar_cycles_with_patterns
8422         after pattern recog.
8423         (vect_create_epilog_for_reduction): Properly handle reductions
8424         with patterns.
8425         (vectorizable_reduction): Likewise.
8426         * tree-vect-slp.c (vect_analyze_slp_instance): Properly mark
8427         reduction chains.
8428         (vect_get_constant_vectors): Create the correct number of
8429         initial values for reductions.
8430         (vect_schedule_slp_instance): Handle reduction chains that are
8431         type changing properly.
8432         * tree-vect-stmts.c (vect_analyze_stmt): Adjust.
8433
8434 2015-05-28  Richard Biener  <rguenther@suse.de>
8435
8436         PR tree-optimization/66142
8437         * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle non-GIMPLE
8438         values better in memcpy destination handling.  Handle non-aliasing
8439         we discover here.
8440
8441 2015-05-28  Lawrence Velázquez  <vq@larryv.me>
8442
8443         PR target/63810
8444         * config/darwin-c.c (version_components): New global enum.
8445         (parse_version, version_as_legacy_macro)
8446         (version_as_modern_macro, macosx_version_as_macro): New functions.
8447         (version_as_macro): Remove.
8448         (darwin_cpp_builtins): Use new function.
8449
8450 2015-05-28  H.J. Lu  <hongjiu.lu@intel.com>
8451
8452         * builtins.c (expand_builtin_acc_on_device): Mark parameters
8453         with ATTRIBUTE_UNUSED.
8454
8455 2015-05-28  Julian Brown  <julian@codesourcery.com>
8456
8457         PR libgomp/65742
8458
8459         * builtins.c (expand_builtin_acc_on_device): Don't use open-coded
8460         sequence for !ACCEL_COMPILER.
8461
8462 2015-05-28  Nick Clifton  <nickc@redhat.com>
8463
8464         * config/rx/rx.c (push_regs): New function.  Extracts code from...
8465         (rx_expand_prologue): ... here.  Use push_regs to push even small
8466         spans of registers.
8467         (pop_regs): New function.
8468         (rx_expand_epilogue):  Use pop_regs to pop even small spans of
8469         registers.
8470
8471 2015-05-28  Richard Biener  <rguenther@suse.de>
8472
8473         * tree-vectorizer.h (struct _slp_instance): Remove body_cost_vec
8474         member.
8475         (SLP_INSTANCE_BODY_COST_VEC): Remove.
8476         (vect_update_slp_costs_according_to_vf): Likewise.
8477         (vect_slp_analyze_operations): Update prototype.
8478         * tree-vect-loop.c (vect_analyze_loop_2): Remove call to
8479         vect_update_slp_costs_according_to_vf, adjust.
8480         * tree-vect-slp.c (vect_free_slp_instance): Adjust.
8481         (vect_analyze_slp_cost_1): Likewise.
8482         (vect_analyze_slp_cost): Likewise.  Properly deal with
8483         widening reduction ops.  Commit body costs.
8484         (vect_analyze_slp_instance): Adjust.  Do not analyze SLP
8485         cost for loops from here.
8486         (vect_slp_analyze_operations): But do it from here when
8487         the vectorization factor is known and stmts are analyzed.
8488         (vect_bb_vectorization_profitable_p): Simplify.
8489         (vect_slp_analyze_bb_1): Do not compute SLP cost here.
8490         (vect_update_slp_costs_according_to_vf): Remove.
8491
8492 2015-05-27  Magnus Granberg  <zorry@gentoo.org>
8493             H.J. Lu  <hongjiu.lu@intel.com>
8494
8495         * Makefile.in (COMPILER): Add @NO_PIE_CFLAGS@.
8496         (BUILD_CFLAGS): Likewise.
8497         (BUILD_CXXFLAGS): Likewise.
8498         (LINKER): Add @NO_PIE_FLAG@.
8499         (BUILD_LDFLAGS): Likewise.
8500         (libgcc.mvars): Set NO_PIE_CFLAGS to -fno-PIE for
8501         --enable-default-pie.
8502         * common.opt (fPIE): Initialize to -1.
8503         (fpie): Likewise.
8504         (no-pie): New option.
8505         (pie): Replace "Negative(shared)" with "Negative(no-pie)".
8506         * configure.ac: Add --enable-default-pie.
8507         (NO_PIE_CFLAGS): New.  Check if -fno-PIE works.  AC_SUBST.
8508         (NO_PIE_FLAG): New.  Check if -no-pie works.  AC_SUBST.
8509         * defaults.h (DEFAULT_FLAG_PIE): New.  Default PIE to -fPIE.
8510         * gcc.c (NO_PIE_SPEC): New.
8511         (PIE_SPEC): Likewise.
8512         (NO_FPIE1_SPEC): Likewise.
8513         (FPIE1_SPEC): Likewise.
8514         (NO_FPIE2_SPEC): Likewise.
8515         (FPIE2_SPEC): Likewise.
8516         (NO_FPIE2_SPEC): Likewise.
8517         (FPIE_SPEC): Likewise.
8518         (NO_FPIE_SPEC): Likewise.
8519         (NO_FPIC1_SPEC): Likewise.
8520         (FPIC1_SPEC): Likewise.
8521         (NO_FPIC2_SPEC): Likewise.
8522         (FPIC2_SPEC): Likewise.
8523         (NO_FPIC2_SPEC): Likewise.
8524         (FPIC_SPEC): Likewise.
8525         (NO_FPIC_SPEC): Likewise.
8526         (NO_FPIE1_AND_FPIC1_SPEC): Likewise.
8527         (FPIE1_OR_FPIC1_SPEC): Likewise.
8528         (NO_FPIE2_AND_FPIC2_SPEC): Likewise.
8529         (FPIE2_OR_FPIC2_SPEC): Likewise.
8530         (NO_FPIE_AND_FPIC_SPEC): Likewise.
8531         (FPIE_OR_FPIC_SPEC): Likewise.
8532         (LD_PIE_SPEC): Likewise.
8533         (LINK_PIE_SPEC): Handle -no-pie.  Use PIE_SPEC and LD_PIE_SPEC.
8534         * opts.c (finish_options): Update opts->x_flag_pie if it is -1.
8535         * config/darwin.h (PIE_SPEC): Renamed to ...
8536         (DARWIN_PIE_SPEC): This.
8537         (LINK_SPEC): Replace PIE_SPEC with DARWIN_PIE_SPEC.
8538         * config/darwin9.h (PIE_SPEC): Renamed to ...
8539         (DARWIN_PIE_SPEC): This.
8540         * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Use
8541         PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
8542         * config/openbsd.h (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and
8543         FPIE2_OR_FPIC2_SPEC.
8544         * config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
8545         * config/m68k/openbsd.h (ASM_SPEC): Likewise.
8546         * gcc/config/sol2.h (ASM_PIC_SPEC): Likewise.
8547         * config/arm/freebsd.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
8548         * config/arm/netbsd-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
8549         * config/arm/semi.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
8550         * config/cris/linux.h (CRIS_ASM_SUBTARGET_SPEC): Likewise.
8551         * config/m32r/m32r.h (ASM_SPEC): Likewise.
8552         * config/m68k/uclinux.h (DRIVER_SELF_SPECS): Likewise.
8553         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
8554         * config/rs6000/sysv4.h (ASM_SPEC): Likewise.
8555         * config/sparc/freebsd.h (ASM_SPEC): Likewise.
8556         * config/sparc/linux.h (ASM_SPEC): Likewise.
8557         * config/sparc/linux64.h (ASM_SPEC): Likewise.
8558         * config/sparc/netbsd-elf.h (ASM_SPEC): Likewise.
8559         * config/sparc/openbsd64.h (ASM_SPEC): Likewise.
8560         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
8561         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
8562         * config/sparc/sparc.h (ASM_SPEC): Likewise.
8563         * config/sparc/sysv4.h (ASM_SPEC): Likewise.
8564         * config/sparc/vxworks.h (ASM_SPEC): Likewise.
8565         * config/c6x/elf-common.h (ASM_SPEC): Use NO_FPIC2_SPEC,
8566         FPIC2_SPEC, FPIC1_SPEC and FPIC2_SPEC.
8567         * config/c6x/uclinux-elf.h (LINK_SPEC): Use FPIE_SPEC.
8568         * config/frv/frv.h (DRIVER_SELF_SPECS): Use FPIC_SPEC,
8569         NO_FPIC_SPEC and NO_FPIE1_AND_FPIC1_SPEC.
8570         (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and FPIE2_OR_FPIC2_SPEC.
8571         * config/m68k/m68k.h (ASM_PCREL_SPEC): Use FPIC_SPEC and NO_FPIC_SPEC.
8572         * config/mips/gnu-user.h (NO_SHARED_SPECS): Use NO_FPIE_AND_FPIC_SPEC.
8573         * config/mips/vxworks.h (SUBTARGET_ASM_SPEC): Use FPIC_SPEC.
8574         * config/rs6000/freebsd64.h (ASM_SPEC32): Likewise.
8575         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
8576         * config/vax/linux.h (ASM_SPEC): Likewise.
8577         * doc/install.texi: Document --enable-default-pie.
8578         * doc/invoke.texi: Document -no-pie.
8579         * config.in: Regenerated.
8580         * configure: Likewise.
8581
8582 2015-05-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
8583
8584         PR rtl-optimization/66168
8585         * loop-invariant.c (move_invariant_reg): Pass dest rather than reg to
8586         can_move_invariant_reg.
8587
8588 2015-05-27  John David Anglin  <danglin@gcc.gnu.org>
8589
8590         PR target/66148
8591         * config/pa/pa.c (pa_emit_move_sequence): Correct placement of
8592         REG_EQUAL note when doing insert.
8593
8594         * config/pa/pa.c (pa_print_operand): Use HOST_WIDE_INT_PRINT_DEC
8595         instead of "%d" for 'o' operand.
8596
8597 2015-05-27  Nathan Sidwell  <nathan@acm.org>
8598
8599         PR c++/66270
8600         * tree.c (build_pointer_type_for_mode): Canonical type does not
8601         inherit can_alias_all.
8602         (build_reference_type_for_mode): Likewise.
8603
8604 2015-05-27  Eric Botcazou  <ebotcazou@adacore.com>
8605
8606         * expr.h (array_at_struct_end_p): Move to...
8607         (array_ref_element_size): Likewise.
8608         (component_ref_field_offset): Likewise.
8609         * tree.h (array_ref_element_size): ...here.
8610         (array_at_struct_end_p): Likewise.
8611         (component_ref_field_offset): Likewise.
8612         * expr.c (array_ref_element_size): Move to...
8613         (array_ref_low_bound): Likewise.
8614         (array_at_struct_end_p): Likewise.
8615         (array_ref_up_bound): Likewise.
8616         (component_ref_field_offset): Likewise.
8617         * tree.c (array_ref_element_size): ...here.
8618         (array_ref_low_bound): Likewise.
8619         (array_ref_up_bound): Likewise.
8620         (array_at_struct_end_p): Likewise.
8621         (component_ref_field_offset): Likewise.
8622
8623 2015-05-27  Gregor Richards  <gregor.richards@uwaterloo.ca>
8624             Szabolcs Nagy  <szabolcs.nagy@arm.com>
8625
8626         * config/aarch64/aarch64-linux.h (MUSL_DYNAMIC_LINKER): Define.
8627
8628 2015-05-27  Jason Merrill  <jason@redhat.com>
8629
8630         PR bootstrap/66304
8631         * configure.ac: Use ACX_PROG_CXX_WARNING_OPTS,
8632         ACX_PROG_CXX_WARNING_ALMOST_PEDANTIC, and
8633         ACX_PROG_CXX_WARNINGS_ARE_ERRORS.
8634
8635 2015-05-22  Aditya Kumar  <hiraditya@msn.com>
8636
8637         * auto-profile.c (afdo_calculate_branch_prob): Break once has_sample
8638         is true.
8639
8640         * statistics.c (statistics_fini_pass): Print pass name.
8641
8642 2015-05-27  Richard Biener  <rguenther@suse.de>
8643
8644         PR tree-optimization/66272
8645         Revert parts of
8646         2014-08-15  Richard Biener  <rguenther@suse.de>
8647
8648         PR tree-optimization/62031
8649         * tree-data-ref.c (dr_analyze_indices): Do not set
8650         DR_UNCONSTRAINED_BASE.
8651         (dr_may_alias_p): All indirect accesses have to go the
8652         formerly DR_UNCONSTRAINED_BASE path.
8653         * tree-data-ref.h (struct indices): Remove
8654         unconstrained_base member.
8655         (DR_UNCONSTRAINED_BASE): Remove.
8656
8657 2015-05-27  Aldy Hernandez  <aldyh@redhat.com>
8658
8659         * dwarf2out.c: Remove block_map.
8660         (gen_call_site_die): Replace block_map use with BLOCK_DIE.
8661         (gen_lexical_block_die): Same.
8662         (dwarf2out_function_decl): Remove block_map use.
8663         (dwarf2out_c_finalize): Same.
8664         * tree-core.h (struct tree_block): Add die field.
8665         * tree.h (BLOCK_DIE): New.
8666
8667 2015-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8668
8669         PR target/65358
8670         * expr.c (memory_load_overlap): New function.
8671         (emit_push_insn): When pushing partial args to the stack would
8672         clobber the register part load the overlapping part into a pseudo
8673         and put it into the hard reg after pushing.  Change return type
8674         to bool.  Add bool argument.
8675         * expr.h (emit_push_insn): Change return type to bool.
8676         Add bool argument.
8677         * calls.c (expand_call): Cancel sibcall optimization when encountering
8678         partial argument on targets with ARGS_GROW_DOWNWARD and
8679         !STACK_GROWS_DOWNWARD.
8680         (emit_library_call_value_1): Update callsite of emit_push_insn.
8681         (store_one_arg): Likewise.
8682
8683 2015-05-27  Gregor Richards  <gregor.richards@uwaterloo.ca>
8684
8685         * config/arm/linux-eabi.h (MUSL_DYNAMIC_LINKER): Define.
8686
8687 2015-05-27  Martin Liska  <mliska@suse.cz>
8688
8689         * Makefile.in: Add additional dependencies related to memory report
8690         enhancement.
8691         * alloc-pool.c (allocate_pool_descriptor): Use new ctor.
8692         * bitmap.c (struct bitmap_descriptor_d): Remove.
8693         (struct loc): Likewise.
8694         (struct bitmap_desc_hasher): Likewise.
8695         (bitmap_desc_hasher::hash): Likewise.
8696         (bitmap_desc_hasher::equal): Likewise.
8697         (get_bitmap_descriptor): Likewise.
8698         (bitmap_register): User new memory descriptor API.
8699         (register_overhead): Likewise.
8700         (bitmap_find_bit): Register nsearches and search_iter statistics.
8701         (struct bitmap_output_info): Remove.
8702         (print_statistics): Likewise.
8703         (dump_bitmap_statistics): Use new memory descriptor.
8704         * bitmap.h (struct bitmap_usage): New class.
8705         * genmatch.c: Extend header file inclusion.
8706         * genpreds.c: Likewise.
8707         * ggc-common.c (struct ggc_usage): New class.
8708         (struct ggc_loc_desc_hasher): Remove.
8709         (ggc_loc_desc_hasher::hash): Likewise.
8710         (ggc_loc_desc_hasher::equal): Likewise.
8711         (struct ggc_ptr_hash_entry): Likewise.
8712         (struct ptr_hash_hasher): Likewise.
8713         (ptr_hash_hasher::hash): Likewise.
8714         (ptr_hash_hasher::equal): Likewise.
8715         (make_loc_descriptor): Likewise.
8716         (ggc_prune_ptr): Likewise.
8717         (dump_ggc_loc_statistics): Use new memory descriptor.
8718         (ggc_record_overhead): Likewise.
8719         (ggc_free_overhead): Likewise.
8720         (final_cmp_statistic): Remove.
8721         (cmp_statistic): Likewise.
8722         (ggc_add_statistics): Liekwise.
8723         (ggc_prune_overhead_list): Likewise.
8724         * hash-map-traits.h: New file.
8725         * hash-map.h (struct default_hashmap_traits): Move the traits to a
8726         separate header file.
8727         * hash-set.h: Pass memory statistics info to ctor.
8728         * hash-table.c (void dump_hash_table_loc_statistics): New function.
8729         * hash-table.h (hash_table::hash_table): Add new ctor arguments.
8730         (hash_table::~hash_table): Register memory release operation.
8731         (hash_table::alloc_entries): Handle memory allocation operation.
8732         (hash_table::expand): Likewise.
8733         * inchash.c (iterative_hash_hashval_t): Move implementation to header
8734         file.
8735         (iterative_hash_host_wide_int): Likewise.
8736         * inchash.h (class hash): Likewise.
8737         * mem-stats-traits.h: New file.
8738         * mem-stats.h: New file.
8739         (mem_location): Add new class.
8740         (mem_usage): Likewise.
8741         (mem_alloc_description): Likewise.
8742         * sese.c: Add new header file inclusision.
8743         * toplev.c (dump_memory_report): Add report for hash_table, hash_map
8744         and hash_set.
8745         * tree-sra.c: Add new header file inclusision.
8746         * vec.c (struct vec_descriptor): Remove.
8747         (hash_descriptor): Likewise.
8748         (struct vec_usage): Likewise.
8749         (struct ptr_hash_entry): Likewise.
8750         (hash_ptr): Likewise.
8751         (eq_ptr): Likewise.
8752         (vec_prefix::register_overhead): Use new memory descriptor API.
8753         (vec_prefix::release_overhead): Likewise.
8754         (add_statistics): Remove.
8755         (dump_vec_loc_statistics): Use new memory descriptor API.
8756         * vec.h (struct vec_prefix): Likewise.
8757         (va_heap::reserve): Likewise.
8758         (va_heap::release): Likewise.
8759         * emit-rtl.c (gen_raw_REG): Fix passing MEM_STAT.
8760
8761 2015-05-27  Richard Biener  <rguenther@suse.de>
8762
8763         * tree-vect-stmts.c (vectorizable_load): Initialize slp_perm
8764         earlier and remove ??? comment.
8765         (vect_analyze_stmt): If we are analyzing a pure SLP stmt
8766         and got called from loop analysis bail out.  Always pass the SLP
8767         node to the vectorizable_* functions.
8768         * tree-vect-loop.c (vect_analyze_loop_operations): Remove
8769         the premature SLP check here.
8770         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Dump hybrid
8771         detected SLP stmts.
8772         (vect_detect_hybrid_slp_1): Likewise.
8773
8774 2015-05-26  Jeff Law  <law@redhat.com>
8775
8776         * combine.c (find_split_point): Verify that the shift count is a
8777         constant when choosing (plus (ashift ...)) as a split point.
8778
8779         * tree-ssa-threadupdate.c: Replace 8 space sequences with tabs.
8780         No functional changes.
8781
8782 2015-05-26  Jan Hubicka  <hubicka@ucw.cz>
8783
8784         * ipa-polymorphic-call.c
8785         (ipa_polymorphic_call_context::get_dynamic_type): Short circuit the
8786         case when call target is already known.
8787
8788 2015-05-26  Oleg Endo  <olegendo@gcc.gnu.org>
8789
8790         PR target/65979
8791         * config/sh/sh.md (tstsi_t peephole2): Use gen_rtx_SET and
8792         take into account the case that operands[1] and operands[2]
8793         are the same register.
8794
8795 2015-05-26  Michael Matz  <matz@suse.de>
8796
8797         PR middle-end/66251
8798
8799         * tree-vect-stmts.c (vect_model_store_cost): Handled strided group
8800         stores.
8801         (vect_create_vectorized_demotion_stmts): Always set
8802         STMT_VINFO_VEC_STMT, also with SLP.
8803         (vectorizable_store): Handle strided group stores.
8804
8805 2015-05-26  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
8806
8807         PR target/66049
8808         * config/aarch64/aarch64.md
8809         (*adds_shift_imm_<mode>):  New pattern.
8810         (*subs_shift_imm_<mode>):  Likewise.
8811         (*adds_<optab><ALLX:mode>_shift_<GPI:mode>):  Likewise.
8812         (*subs_<optab><ALLX:mode>_shift_<GPI:mode>): Likewise.
8813         (*add_uxt<mode>_shift2): Likewise.
8814         (*add_uxtsi_shift2_uxtw): Likewise.
8815         (*sub_uxt<mode>_shift2): Likewise.
8816         (*sub_uxtsi_shift2_uxtw): Likewise.
8817
8818 2015-05-26  David Edelsohn  <dje.gcc@gmail.com>
8819
8820         * config/rs6000/constraints.md (Y, U): Use match_test.
8821
8822 2015-05-26  Christian Bruel  <christian.bruel@st.com>
8823
8824         PR target/52144
8825         * config/arm/arm.c (arm_option_check_internal)
8826         (arm_option_params_internal): Check opts->target_flags to set macros.
8827         (TREE_TARGET_ARM, TREE_TARGET_THUMB)
8828         (TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Replace with...
8829         (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
8830         (builtin_define): Replaced with def_or_undef_macro.
8831         * config/arm/arm.h (TREE_TARGET_ARM, TREE_TARGET_THUMB)
8832         TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Redefine with...
8833         (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
8834         (TARGET_32BIT_P, TARGET_ARM_QBIT_P, TARGET_ARM_SAT_P, TARGET_IDIV_P)
8835         (TARGET_HAVE_LDREX_P, TARGET_HAVE_LDREXBH_P, TARGET_HAVE_LDREXD_P)
8836         (TARGET_ARM_FEATURE_LDREX_P)
8837         (TARGET_DSP_MULTIPLY_P, TARGET_INT_SIMD_P): New macros.
8838         * config/arm/arm-c.c (def_or_undef_macro): New function.
8839         (arm_cpu_cpp_builtins): Use def_or_undef_macro for macros definition.
8840
8841 2015-05-26  Christian Bruel  <christian.bruel@st.com>
8842
8843         * c-common.h (builtin_define_with_int_value)
8844         (builtin_define_type_sizeof): Declare.
8845         * c-cppbuiltin.c (builtin_define_with_int_value)
8846         (builtin_define_type_sizeof): Externalize.
8847         (builtin_define_std): Cleanup declaration.
8848         * config/arm/arm-protos.h (arm_cpu_cpp_builtins): Declare.
8849         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Move macro defines into...
8850         * config/arm/arm-c.c (arm_cpu_cpp_builtins): New function.
8851         (builtin_define, builtin_assert): New macros.
8852
8853 2015-05-26  Richard Biener  <rguenther@suse.de>
8854
8855         PR tree-optimization/66142
8856         * tree-ssa-sccvn.c (vn_reference_lookup_3): Manually compare
8857         MEM_REFs for the same base address.
8858
8859 2015-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8860
8861         PR ipa/66181
8862         * tree.c (verify_type_variant): Do not check TYPE_NO_FORCE_BLK.
8863
8864 2015-05-26  Jason Merrill  <jason@redhat.com>
8865
8866         * configure.ac: Set CXXFLAGS for ISL test.
8867         * configure: Regenerate.
8868
8869         * configure.ac: Use C++ for all tests.  Use AC_CHECK_DECLS for
8870         strstr and basename.
8871         * configure: Regenerate.
8872
8873 2015-05-26  Richard Biener  <rguenther@suse.de>
8874
8875         * fold-const.c (fold_binary_loc): Move X % -Y -> X % Y and
8876         X % C -> X & (C - 1) for C being a power-of two to ...
8877         * match.pd: ... patterns.
8878
8879 2015-05-26  Marc Glisse  <marc.glisse@inria.fr>
8880
8881         * match.pd (swapped_tcc_comparison): New operator list.
8882         (-A CMP -B): New simplification.
8883         * fold-const.c (fold_comparison): Remove corresponding code.
8884
8885 2015-05-26  Richard Sandiford  <richard.sandiford@arm.com>
8886
8887         * caller-save.c (init_caller_save): Base temporary register numbers
8888         on LAST_VIRTUAL_REGISTER + 1 rather than FIRST_PSEUDO_REGISTER.
8889         * cfgloopanal.c (init_set_costs): Likewise.
8890         * dojump.c (prefer_and_bit_test): Likewise.
8891         * expr.c (init_expr_target): Likewise.
8892         * ira.c (setup_prohibited_mode_move_regs): Likewise.
8893         * lower-subreg.c (init_lower_subreg): Likewise.
8894         * postreload.c (reload_cse_regs_1): Likewise.
8895
8896 2015-05-26  Richard Sandiford  <richard.sandiford@arm.com>
8897
8898         * gensupport.h (compute_test_codes): Declare.
8899         * gensupport.c (compute_predicate_codes): Rename to...
8900         (compute_test_codes): ...this.  Generalize error message.
8901         (process_define_predicate): Update accordingly.
8902         * genpreds.c (compute_maybe_allows): Delete.
8903         (add_constraint): Use compute_test_codes to determine whether
8904         something can accept a SUBREG, REG or MEM.
8905
8906 2015-05-26  Torvald Riegel  <triegel@redhat.com>
8907
8908         * doc/extend.texi (__atomic Builtins): Use 'memory order' instead of
8909         'memory model' to align with C++11; fix description of memory orders;
8910         fix a few typos.
8911
8912 2015-05-26  Richard Biener  <rguenther@suse.de>
8913
8914         * tree-vect-loop.c (vect_update_vf_for_slp): Split out from ...
8915         (vect_analyze_loop_operations): ... here.  Remove slp parameter,
8916         detect whether we apply SLP.  Remove call to
8917         vect_update_slp_costs_according_to_vf.
8918         (vect_analyze_loop_2): Call vect_update_vf_for_slp and
8919         vect_update_slp_costs_according_to_vf from here.  Dispatch
8920         to vect_slp_analyze_operations to analyze SLP stmts.
8921         * tree-vect-slp.c (vect_slp_analyze_node_operations): Drop
8922         unused bb_vec_info parameter, adjust assert.
8923         (vect_slp_analyze_operations): Pass in the slp instance tree
8924         instead of bb_vec_info.
8925         (vect_slp_analyze_bb_1): Adjust call to vect_slp_analyze_operations.
8926         * tree-vectorizer.h (vect_slp_analyze_operations): Declare.
8927
8928 2015-05-25  Alexander Monakov  <amonakov@ispras.ru>
8929
8930         * config/i386/i386.h (enum reg_class): Move CLOBBERED_REGS prior to
8931         Q_REGS.  Expand comment.
8932         (REG_CLASS_NAMES): Ditto.
8933         (REG_CLASS_CONTENTS): Ditto.
8934
8935 2015-05-25  Uros Bizjak  <ubizjak@gmail.com>
8936
8937         PR target/66274
8938         * config/i386/i386.c (print_reg): Only print "r" for TARGET_64BIT
8939         when LEGACY_INT_REGNO_P is processed.
8940
8941 2015-05-25  Alexander Monakov  <amonakov@ispras.ru>
8942
8943         * config/i386/i386.c (ix86_function_ok_for_sibcall): Check flag_plt.
8944
8945 2015-05-25  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
8946
8947         * config/avr/avr.c (avr_out_load_psi_reg_no_disp_tiny): Restore base
8948         register if not marked dead/unused, before return.
8949
8950 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
8951
8952         PR lto/66180
8953         * ipa-devirt.c (type_with_linkage): Check that TYPE_STUB_DECL
8954         is set; check for assembler name at LTO time.
8955         (type_in_anonymous_namespace): Remove hacks, check that all
8956         anonymous types are called "<anon>"
8957         (odr_type_p): Simplify; add check for "<anon>"
8958         (odr_subtypes_equivalent): Add odr_type_p check.
8959         * tree.c (need_assembler_name_p): Even anonymous namespace needs
8960         assembler name.
8961
8962 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
8963
8964         * ipa-utils.h (method_class_type): Remove.
8965         * cgraphunit.c (walk_polymorphic_call_targets): Use
8966         TYPE_METHOD_BASETYPE.
8967         * ipa-devirt.c (type_in_anonymous_namespace_p): Check that it is called
8968         on main variants only.
8969         (method_class_type): Remove.
8970         (update_type_inheritance_graph): Use TYPE_METHOD_BASETYPE.
8971         (build_type_inheritance_graph): Likewise.
8972         * ipa-icf.c (sem_function::equals_wpa): Likewise.
8973         * pa-polymorphic-call.c (decl_maybe_in_construction_p,
8974         check_stmt_for_type_change): Use TYPE_METHOD_BASETYPE.
8975
8976 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
8977
8978         * tree.c (prototype_p, virtual_method_call_p, obj_type_ref_class,
8979         is_typedef_decl, typedef_variant_p): Constify.
8980         * tree.h (prototype_p, virtual_method_call_p, obj_type_ref_class,
8981         is_typedef_decl, typedef_variant_p): Constify.
8982
8983 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8984
8985         * defaults.h (gen_tablejump): New function.
8986         (HAVE_tablejump): Add default value.
8987         * expr.c: Adjust.
8988         * stmt.c: Likewise.
8989
8990 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8991
8992         * defaults.h (gen_store_multiple): New function.
8993         (HAVE_store_multiple): Add default value.
8994         * expr.c (move_block_from_reg): Adjust.
8995
8996 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8997
8998         * defaults.h (gen_load_multiple): New function.
8999         (HAVE_load_multiple): Add default value.
9000         * expr.c (move_block_to_reg): Adjust.
9001
9002 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9003
9004         * defaults.h (gen_mem_signal_fence): New function.
9005         (HAVE_mem_signal_fence): Add default value.
9006         * optabs.c: Adjust.
9007
9008 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9009
9010         * defaults.h (gen_memory_barrier): New function.
9011         (HAVE_memory_barrier): Add default value.
9012         * optabs.c: Adjust.
9013
9014 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9015
9016         * defaults.h (gen_mem_thread_fence): New function.
9017         (HAVE_mem_thread_fence): Add default definition.
9018         * optabs.c: Adjust.
9019
9020 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9021
9022         * combine.c (find_split_point): Check the value of HAVE_lo_sum
9023         instead of if it is defined.
9024         (combine_simplify_rtx): Likewise.
9025         * lra-constraints.c (process_address_1): Likewise.
9026         * config/darwin.c: Adjust.
9027         * genconfig.c (main): Always define HAVE_lo_sum.
9028
9029 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
9030
9031         * genmatch.c (parser::parse_operation): Reject expanding
9032         operator-list inside 'for'.
9033
9034 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
9035
9036         * genmatch.c (parser::parse_for): Reject iterator if used as
9037         operator-list.
9038
9039 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
9040
9041         * genmatch.c (parser::parse_operator_list): Check for CPP_CLOSE_PAREN
9042         after end of id-list.
9043
9044 2015-05-22  Jan Hubicka  <hubicka@ucw.cz>
9045
9046         * tree.c (gimple_canonical_types_compatible_p): Sanity check that
9047         we do not try to compute canonical type for type that does not need
9048         alias set.
9049         (verify_type): Drop FIXME for METHOD_TYPE, update FIXME for
9050         FUNCITON_TYPE.
9051         * tree.h (type_with_alias_set_p): New.
9052
9053 2015-05-22  Jan Hubicka  <hubicka@ucw.cz>
9054
9055         * tree.c (gimple_canonical_types_compatible_p):  Do not compare
9056         function attributes.
9057         (verify_type): Remove METHOD_TYPE FIXME; update FUNCTION_TYPE.
9058
9059 2015-05-22  Jim Wilson  <jim.wilson@linaro.org>
9060
9061         * Makefile.in (check_gcc_parallelize): Delete.
9062         (lang_checks_parallelized): Update comment.
9063
9064 2015-05-22  Mikhail Maltsev  <maltsevm@gmail.com>
9065
9066         PR rtl-optimization/66237
9067         * bb-reorder.c (fix_crossing_conditional_branches): Fix wrong
9068         location of an "as_a" cast.
9069
9070 2015-05-22  Jeff Law  <law@redhat.com>
9071
9072         * config/pa/pa.md (non-canonical shift-add insns): Remove.
9073         (peepholes with non-canonical RTL sources): Remove.
9074         (peepholes for indexed stores of FP regs in integer modes): Match and
9075         generate canonical RTL.
9076
9077 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
9078
9079         PR tree-optimization/63387
9080         * match.pd ((X /[ex] A) * A -> X): Remove unnecessary condition.
9081         ((x ord x) & (y ord y) -> (x ord y),
9082         (x ord x) & (x ord y) -> (x ord y)): New simplifications.
9083         * fold-const.c (tree_unary_nonnegative_warnv_p) <ABS_EXPR>: Handle
9084         vectors like scalars.
9085
9086 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
9087
9088         * convert.c (convert_to_integer, convert_to_vector): Include the
9089         types in the error message.
9090
9091 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
9092
9093         * match.pd ((x | y) & ~x -> y & ~x, (x & y) | ~x -> y | ~x): New
9094         simplifications.
9095
9096 2015-05-22  Jeff Law  <law@redhat.com>
9097
9098         * config/pa/pa.md (integer_indexed_store splitters): Use
9099         mem_shadd_operand.  Use ASHIFT rather than MULT in the resulting
9100         insns -- adjusting the constant 2nd operand accordingly.
9101
9102         * combine.c (try_combine): Canonicalize (plus (mult X pow2) Y) into
9103         (plus (ashift X log2) Y) if it is a split point.
9104
9105         * config/pa/pa.c (mem_shadd_or_shadd_rtx_p): New function factoredx
9106         out of hppa_legitimize_address to handle both forms of a multiply
9107         by 2, 4 or 8.
9108         (hppa_legitimize_address): Use mem_shadd_or_shadd_rtx_p.
9109         Always generate the ASHIFT variant as the result is not directly
9110         used in a MEM.  Update comments and refactor slightly to improve
9111         readability.
9112
9113 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9114
9115         PR target/65491
9116         * config/aarch64/aarch64.c (aarch64_short_vector_p): Move above
9117         aarch64_composite_type_p.  Remove check for aarch64_composite_type_p.
9118         (aarch64_composite_type_p): Return false if given type and mode are
9119         for a short vector.
9120
9121 2015-05-22  Richard Biener  <rguenther@suse.de>
9122
9123         * tree-vectorizer.h (struct _slp_oprnd_info): Add second_pattern
9124         member.
9125         * tree-vect-loop.c (vect_analyze_loop_operations): Look at
9126         patterns when determining whether SLP is pure.
9127         (vect_is_slp_reduction): Remove check for pattern stmts.
9128         (vect_is_simple_reduction_1): Remove dead code.
9129         * tree-vect-slp.c (vect_create_oprnd_info): Initialize second_pattern.
9130         (vect_get_and_check_slp_defs): Pass in the stmt number.
9131         Allow the first def in a reduction to be not a pattern stmt when
9132         the rest of the stmts def are patterns.
9133         (vect_build_slp_tree_1): Allow tcc_expression codes like
9134         SAD_EXPR and DOT_PROD_EXPR.
9135         (vect_build_slp_tree): Adjust.
9136         (vect_analyze_slp): Refactor and move BB vect error message ...
9137         (vect_slp_analyze_bb_1): ... here.
9138
9139 2015-05-22  Aldy Hernandez  <aldyh@redhat.com>
9140
9141         * tree-switch-conversion.c (build_one_array): Set DECL_IGNORED_P
9142         for CSWTCH temporary.
9143
9144 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9145
9146         * config/arm/arm.c (arm_new_rtx_costs): Handle UNSPEC_VOLATILE.
9147         (arm_unspec_cost): Allow UNSPEC_VOLATILE.  Do not recurse inside
9148         unknown unspecs.
9149
9150 2015-05-22  Richard Biener  <rguenther@suse.de>
9151
9152         PR tree-optimization/66251
9153         * tree-vect-stmts.c (vectorizable_conversion): Properly
9154         set STMT_VINFO_VEC_STMT even for the SLP case.
9155
9156 2015-05-22  Marek Polacek  <polacek@redhat.com>
9157
9158         * doc/extend.texi: Use @pxref instead of @xref.
9159
9160 2015-05-22  hiraditya  <hiraditya@msn.com>
9161
9162         * gimple.h (gimple_expr_type): Refactor to make it concise. Remove
9163         redundant if.
9164
9165 2015-05-22  Richard Biener  <rguenther@suse.de>
9166
9167         PR tree-optimization/65701
9168         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
9169         Move peeling cost models into one place.  Peel for alignment
9170         for single loads only if an aligned load is cheaper than
9171         an unaligned load.
9172
9173 2015-05-22  Marek Polacek  <polacek@redhat.com>
9174
9175         PR c/47043
9176         * doc/extend.texi (Enumerator Attributes): New section.
9177         Document syntax of enumerator attributes.
9178
9179 2015-05-22  Richard Biener  <rguenther@suse.de>
9180
9181         * tree-vect-loop.c (get_reduction_op): New function.
9182         (vect_model_reduction_cost): Use it, add reduc_index parameter.
9183         Make ready for BB reductions.
9184         (vect_create_epilog_for_reduction): Use get_reduction_op.
9185         (vectorizable_reduction): Init reduc_index to a valid value.
9186         Adjust vect_model_reduction_cost call.
9187         * tree-vect-slp.c (vect_get_constant_vectors): Use the proper
9188         operand for reduction defaults.  Add SAD_EXPR support.
9189         Assert we have a neutral op for SLP reductions.
9190         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): When
9191         walking pattern stmt ops only recurse to SSA names.
9192
9193 2015-05-22  Richard Biener  <rguenther@suse.de>
9194
9195         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Replace
9196         assert with guard, remove check on detected reduction.
9197         (vect_recog_sad_pattern): Likewise.
9198         (vect_recog_widen_sum_pattern): Likewise.
9199
9200 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9201
9202         * config/aarch64/arm_neon.h (vaeseq_u8): Add __extension__ and
9203         __always_inline__ attribute.
9204         (vaesdq_u8): Likewise.
9205         (vaesmcq_u8): Likewise.
9206         (vaesimcq_u8): Likewise.
9207         (vsha1cq_u32): Likewise.
9208         (vsha1mq_u32): Likewise.
9209         (vsha1pq_u32): Likewise.
9210         (vsha1h_u32): Likewise.
9211         (vsha1su0q_u32): Likewise.
9212         (vsha1su1q_u32): Likewise.
9213         (vsha256hq_u32): Likewise.
9214         (vsha256h2q_u32): Likewise.
9215         (vsha256su0q_u32): Likewise.
9216         (vsha256su1q_u32): Likewise.
9217         (vmull_p64): Likewise.
9218         (vmull_high_p64): Likewise.
9219
9220 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9221
9222         * final.c (final_scan_insn): Don't check HAVE_peephole with the
9223         preprocessor.
9224         * output.h: Likewise.
9225         * genconfig.c (main): Alwways define HAVE_peephole.
9226         * genpeep.c: Don't emit checks of HAVE_peephole.
9227
9228 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9229
9230         * combine.c, expmed.c, expr.c, optabs.c optabs.h, toplev.c: DOn't
9231         check HAVE_conditional_move with the preprocessor.
9232
9233 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9234
9235         * genconfig.c (main): Always define HAVE_conditional_move.
9236         * combine.c, expmed.c, expr.c, ifcvt.c, optabs.c, optabs.h,
9237         toplev.c, tree-ssa-phiopt.c: Don't check if HAVE_conditional_move
9238         is defined.
9239
9240 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9241
9242         * combine.c, df-problems.c, df-scan.c, emit-rtl.c, reginfo.c,
9243         reload.c, rtlanal.c: Remove comparison of ARG_FRAME_POINTER_REGNUM
9244         and FRAME_POINTER_REGNUM with the preprocessor.
9245
9246 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9247
9248         * defaults.h: Add default for STACK_PUSH_CODE.
9249         * expr.c: Don't redefine STACK_PUSH_CODE.
9250         * recog.c: Likewise.
9251
9252 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9253
9254         * builtins.c, dwarf2cfi.c, explow.c, expr.c, recog.c,
9255         sched-deps.c: Use if instead of preprocessor checks with
9256         STACK_GROWS_DOWNWARD.
9257
9258 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9259
9260         * *.c: Check the value of STACK_GROWS_DOWNWARD rather than if it
9261         is defined.
9262         * config/**/*.h: Define STACK_GROWS_DOWNWARD to an integer.
9263         * defaults.h: Provide default for STACK_GROWS_DOWNWARD.
9264         * doc/tm.texi.in: Update references to STACK_GROWS_DOWNWARD.
9265         * doc/tm.texi: Regenerate.
9266
9267 2015-05-21  H.J. Lu  <hongjiu.lu@intel.com>
9268
9269         PR target/66232
9270         * config/i386/constraints.md (Bg): New constraint for GOT memory
9271         operand.
9272         * config/i386/i386.md (*call_got_x32): New pattern.
9273         (*call_value_got_x32): Likewise.
9274         * config/i386/predicates.md (GOT_memory_operand): New predicate.
9275
9276 2015-05-21  Jakub Jelinek  <jakub@redhat.com>
9277
9278         PR tree-optimization/66233
9279         * match.pd (ocvt (icvt@1 @0)): Don't handle vector types.
9280         Simplify.
9281
9282 2015-05-21  Jeff Law  <law@redhat.com>
9283
9284         * config/pa/pa.md (add-with-constant splitter): Use ASHIFT rather
9285         than MULT for shadd sequences.
9286
9287 2015-05-08  Jan Hubicka  <hubicka@ucw.cz>
9288
9289         * alias.c (alias_stats): New static var.
9290         (alias_sets_conflict_p, alias_sets_must_conflict_p): Update stats.
9291         (dump_alias_stats_in_alias_c): New function.
9292         * alias.h (dump_alias_stats_in_alias_c): Declare.
9293         * tree-ssa-alias.c (dump_alias_stats): Call it.
9294
9295 2015-05-08  Michael Matz  <matz@suse.de>
9296
9297         * tree-vectorizer.h (struct _stmt_vec_info): Rename stride_load_p
9298         to strided_p.
9299         (STMT_VINFO_STRIDE_LOAD_P): Rename to ...
9300         (STMT_VINFO_STRIDED_P): ... this.
9301         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust.
9302         (vect_verify_datarefs_alignment): Likewise.
9303         (vect_enhance_data_refs_alignment): Likewise.
9304         (vect_analyze_data_ref_access): Likewise.
9305         (vect_analyze_data_refs): Accept strided stores.
9306         * tree-vect-stmts.c (vect_model_store_cost): Count strided stores.
9307         (vect_model_load_cost): Adjust for macro rename.
9308         (vectorizable_mask_load_store): Likewise.
9309         (vectorizable_load): Likewise.
9310         (vectorizable_store): Open code strided stores.
9311
9312 2015-05-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9313
9314         * doc/sourcebuild.texi (7.2.3.9 Other hardware attributes):
9315         Document sqrt_insn.
9316
9317 2015-05-21  Richard Biener  <rguenther@suse.de>
9318
9319         PR c++/66211
9320         * match.pd: Guard pattern optimzing (int)(float)int
9321         conversions to apply only on GIMPLE.
9322
9323 2015-05-21  Jeff Law  <law@redhat.com>
9324
9325         * combine.c (find_split_point): Handle ASHIFT like MULT to encourage
9326         multiply-accumulate/shift-add insn generation.
9327
9328 2015-05-21  Oleg Endo  <olegendo@gcc.gnu.org>
9329
9330         PR target/54236
9331         * config/sh/sh.md (*round_int_even): Reject pattern if operands[0] and
9332         operands[1] are the same.
9333
9334 2015-05-21  Ilya Enkovich  <enkovich.gnu@gmail.com>
9335
9336         PR middle-end/66221
9337         * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Use
9338         build_distinct_type_copy to copy bounds.
9339
9340 2015-05-21  Thomas Schwinge  <thomas@codesourcery.com>
9341
9342         * genrecog.c (MAX_DEPTH, MIN_NUM_STATEMENTS, MAX_NUM_STATEMENTS):
9343         Change to unsigned int.
9344
9345 2015-05-20  Jeff Law  <law@redhat.com>
9346
9347         * config/pa/pa.c (pa_print_operand): New 'o' output modifier.
9348         (pa_mem_shadd_constant_p): Renamed from pa_shadd_constant_p.
9349         (pa_shadd_constant_p): Allow constants for shadd insns rather
9350         than valid scaling constants for memory addresses.
9351         * config/pa/pa-protos.h (pa_mem_shadd_constant_p): Add prototype.
9352         * config/pa/predicates.md (mem_shadd_operand): New predicate.
9353         * config/pa/pa.md (shift-add insns using MULT): Use mem_shadd_operand.
9354         (shift-add insns using ASHIFT): New patterns.
9355
9356 2015-05-20  Mikhail Maltsev  <maltsevm@gmail.com>
9357
9358         * bb-reorder.c (set_edge_can_fallthru_flag): Use rtx_jump_insn where
9359         feasible.
9360         (fix_up_fall_thru_edges): Likewise.
9361         (fix_crossing_conditional_branches): Likewise. Promote jump targets
9362         from to rtx_insn to rtx_code_label where feasible.
9363         * bt-load.c (move_btr_def): Remove as-a cast of the value returned by
9364         gen_move_insn (returned type changed to rtx_insn).
9365         * builtins.c (expand_errno_check): Fix arguments of
9366         do_compare_rtx_and_jump (now expects rtx_code_label).
9367         (expand_builtin_acc_on_device): Likewise.
9368         * cfgcleanup.c (try_simplify_condjump): Add cast when calling
9369         invert_jump (now exprects rtx_jump_insn).
9370         * cfgexpand.c (label_rtx_for_bb): Promote return type to rtx_code_label.
9371         (construct_init_block): Use rtx_code_label.
9372         * cfgrtl.c (block_label): Promote return type to rtx_code_label.
9373         (try_redirect_by_replacing_jump): Use cast to rtx_jump_insn when
9374         calling redirect_jump.
9375         (patch_jump_insn): Likewise.
9376         (redirect_branch_edge): Likewise.
9377         (force_nonfallthru_and_redirect): Likewise.
9378         (fixup_reorder_chain): Explicitly use rtx_jump_insn instead of rtx_insn
9379         when suitable.
9380         (rtl_lv_add_condition_to_bb): Update call of do_compare_rtx_and_jump.
9381         * cfgrtl.h: Promote return type of block_label to rtx_code_label.
9382         * config/bfin/bfin.c (hwloop_optimize): Fix call of emit_label_before.
9383         * config/i386/i386.c (ix86_emit_cmove): Explicitly use rtx_code_label
9384         to store the value retured by gen_label_rtx.
9385         * config/mips/mips.c (mips16_split_long_branches): Promote rtx_insn to
9386         rtx_jump_insn.
9387         * config/sh/sh.c (gen_far_branch): Likewise. Fix call of invert_jump.
9388         (split_branches): Fix calls of redirect_jump.
9389         * dojump.c (jumpifnot): Promote argument type from rtx to
9390         rtx_code_label.
9391         (jumpifnot_1): Likewise.
9392         (jumpif): Likewise.
9393         (jumpif_1): Likewise.
9394         (do_jump_1): Likewise.
9395         (do_jump): Likewise. Use rtx_code_label when feasible.
9396         (do_jump_by_parts_greater_rtx): Likewise.
9397         (do_jump_by_parts_zero_rtx): Likewise.
9398         (do_jump_by_parts_equality_rtx): Likewise.
9399         (do_compare_rtx_and_jump): Likewise.
9400         * dojump.h: Update function prototypes.
9401         * dse.c (emit_inc_dec_insn_before): Remove case (gen_move_insn now
9402         returns rtx_insn).
9403         * emit-rtl.c (emit_jump_insn_before_noloc): Promote return type to
9404         rtx_jump_insn.
9405         (emit_label_before): Likewise.
9406         (emit_jump_insn_after_noloc): Likewise.
9407         (emit_jump_insn_after_setloc): Likewise.
9408         (emit_jump_insn_after): Likewise
9409         (emit_jump_insn_before_setloc): Likewise.
9410         (emit_jump_insn_before): Likewise.
9411         (emit_label_before): Promote return type to rtx_code_label.
9412         (emit_label): Likewise.
9413         * except.c (sjlj_emit_dispatch_table): Use jump_target_rtx.
9414         * explow.c (emit_stack_save): Use gen_move_insn_uncast instead of
9415         gen_move_insn.
9416         (emit_stack_restore): Likewise.
9417         * expmed.c (emit_store_flag_force): Fix calls of do_compare_rtx_and_jump.
9418         (do_cmp_and_jump): Likewise.
9419         * expr.c (expand_expr_real_2): Likewise. Promote some local variables
9420         from rtx to rtx_code_label.
9421         (gen_move_insn_uncast): New function.
9422         * expr.h: Update return type of gen_move_insn (promote to rtx_insn).
9423         * function.c (convert_jumps_to_returns): Fix call of redirect_jump.
9424         * gcse.c (pre_insert_copy_insn): Use rtx_insn instead of rtx.
9425         * ifcvt.c (dead_or_predicable): Use rtx_jump_insn when calling
9426         invert_jump_1 and redirect_jump_1.
9427         * internal-fn.c (expand_arith_overflow_result_store): Fix call of
9428         do_compare_rtx_and_jump.
9429         (expand_addsub_overflow): Likewise.
9430         (expand_neg_overflow): Likewise.
9431         (expand_mul_overflow): Likewise.
9432         * ira.c (split_live_ranges_for_shrink_wrap): Use rtx_insn for
9433         return value of gen_move_insn.
9434         * jump.c (redirect_jump): Promote argument from rtx to rtx_jump_insn.
9435         * loop-doloop.c (add_test): Use rtx_code_label.
9436         (doloop_modify): Likewise.
9437         (doloop_optimize): Likewise.
9438         * loop-unroll.c (compare_and_jump_seq): Promote rtx to rtx_code_label.
9439         * lra-constraints.c (emit_spill_move): Remove cast of value returned
9440         by gen_move_insn.
9441         (inherit_reload_reg): Add cast when calling dump_insn_slim.
9442         (split_reg): Likewise.
9443         * modulo-sched.c (schedule_reg_moves): Remove cast of value returned by
9444         gen_move_insn.
9445         * optabs.c (expand_binop_directly): Remove casts of values returned by
9446         maybe_gen_insn.
9447         (expand_unop_direct): Likewise.
9448         (expand_abs): Likewise.
9449         (maybe_emit_unop_insn): Likewise.
9450         (maybe_gen_insn): Promote return type to rtx_insn.
9451         * optabs.h: Update prototype of maybe_gen_insn.
9452         * postreload-gcse.c (eliminate_partially_redundant_load): Remove
9453         redundant cast.
9454         * recog.c (struct peep2_insn_data): Promote type of insn field to
9455         rtx_insn.
9456         (peep2_reinit_state): Use NULL instead of NULL_RTX.
9457         (peep2_attempt): Remove casts of insn in peep2_insn_data.
9458         (peep2_fill_buffer): Promote argument from rtx to rtx_insn
9459         * recog.h (struct insn_gen_fn): Promote return types of function
9460         pointers and operator ().from rtx to rtx_insn.
9461         * reorg.c (fill_simple_delay_slots): Promote rtx_insn to rtx_jump_insn.
9462         (fill_eager_delay_slots): Likewise.
9463         (relax_delay_slots): Likewise.
9464         (make_return_insns): Likewise.
9465         (dbr_schedule): Likewise.
9466         (optimize_skips): Likewise.
9467         (reorg_redirect_jump): Likewise.
9468         (fill_slots_from_thread): Likewise.
9469         * reorg.h: Update prototypes.
9470         * resource.c (find_dead_or_set_registers): Use dyn_cast to
9471         rtx_jump_insn instead of check.  Use it's jump_target method.
9472         * rtl.h (rtx_jump_insn::jump_label): Define new method.
9473         (rtx_jump_insn::jump_target): Define new method.
9474         (rtx_jump_insn::set_jump_target): Define new method.
9475         * rtlanal.c (tablejump_p): Promote type of one local variable.
9476         * sched-deps.c (sched_analyze_2): Promote rtx to rtx_insn_list.
9477         (sched_analyze_insn): Likewise.
9478         * sched-vis.c (print_insn_with_notes): Promote rtx to rtx_insn.
9479         (print_insn): Likewise.
9480         * stmt.c (label_rtx): Promote return type to rtx_insn.
9481         (force_label_rtx): Likewise.
9482         (jump_target_rtx): Define new function.
9483         (expand_label): Use it, get rid of one cast.
9484         (expand_naked_return): Promote rtx to rtx_code_label.
9485         (do_jump_if_equal): Fix do_compare_rtx_and_jump call.
9486         (expand_case): Use rtx_code_label instread of rtx where feasible.
9487         (expand_sjlj_dispatch_table): Likewise.
9488         (emit_case_nodes): Likewise.
9489         * stmt.h: Declare jump_target_rtx.  Update prototypes.  Fix comments.
9490         * store-motion.c (insert_store): Make use of new return type of
9491         gen_move_insn and remove a cast.
9492         (replace_store_insn): Likewise.
9493
9494 2015-05-20  Max Filippov  <jcmvbkbc@gmail.com>
9495
9496         * config/xtensa/xtensa.c (init_alignment_context): Replace MULT
9497         by BITS_PER_UNIT with ASHIFT by exact_log2 (BITS_PER_UNIT).
9498
9499 2015-05-20  Jeff Law  <law@redhat.com>
9500
9501         * tree-ssa-threadupdate.c (mark_threaded_blocks): Properly
9502         dispose of the jump thread path when the jump threading
9503         opportunity is cancelled.
9504
9505 2015-05-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9506
9507         * diagnostic.c (diagnostic_print_caret_line): Fix off-by-one error
9508         when printing the caret character.
9509
9510 2015-05-20  Marek Polacek  <polacek@redhat.com>
9511
9512         * cfgexpand.c (expand_debug_expr): Use UNARY_CLASS_P.
9513
9514 2015-05-20  Marek Polacek  <polacek@redhat.com>
9515
9516         * expr.c (expand_cond_expr_using_cmove): Use COMPARISON_CLASS_P.
9517         * gimple-expr.c (gimple_cond_get_ops_from_tree): Likewise.
9518         * gimple-fold.c (canonicalize_bool): Likewise.
9519         (same_bool_result_p): Likewise.
9520         * tree-if-conv.c (parse_predicate): Likewise.
9521
9522 2015-05-20  Marek Polacek  <polacek@redhat.com>
9523
9524         * gimple-fold.c (fold_const_aggregate_ref_1): Use DECL_P.
9525         * gimplify.c (gimplify_modify_expr_rhs): Likewise.
9526
9527 2015-05-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9528
9529         * config/aarch64/aarch64.c (aarch64_class_max_nregs):
9530         Use UNITS_PER_VREG and UNITS_PER_WORD instead of their direct
9531         values.
9532
9533 2015-05-20  Robert Suchanek  <robert.suchanek@imgtec.com>
9534
9535         * config/mips/mips.h (micromips_globals): Declare.
9536
9537 2015-05-20  David Malcolm  <dmalcolm@redhat.com>
9538
9539         * timevar.def (TV_INITIALIZE_RTL): New.
9540         * toplev.c (initialize_rtl): Use an auto_timevar to account this
9541         function's time to TV_INITIALIZE_RTL.
9542
9543 2015-05-20  Ilya Enkovich  <enkovich.gnu@gmail.com>
9544
9545         * tree-chkp.c (chkp_maybe_copy_and_register_bounds): Remove useless
9546         gimple_build_nop calls.
9547         (chkp_find_bounds_for_elem): Likewise.
9548         (chkp_get_zero_bounds): Likewise.
9549         (chkp_get_none_bounds): Likewise.
9550         (chkp_get_bounds_by_definition): Likewise.
9551         (chkp_generate_extern_var_bounds): Likewise.
9552         (chkp_get_bounds_for_decl_addr): Likewise.
9553         (chkp_get_bounds_for_string_cst): Likewise.
9554
9555 2015-05-20  Bin Cheng  <bin.cheng@arm.com>
9556
9557         PR tree-optimization/65447
9558         * tree-ssa-loop-ivopts.c (struct iv_use): New fields.
9559         (dump_use, dump_uses): Support to dump sub use.
9560         (record_use): New parameters to support sub use.  Remove call to
9561         dump_use.
9562         (record_sub_use, record_group_use): New functions.
9563         (compute_max_addr_offset, split_all_small_groups): New functions.
9564         (group_address_uses, rewrite_use_address): New functions.
9565         (strip_offset): New declaration.
9566         (find_interesting_uses_address): Call record_group_use.
9567         (add_candidate): New assertion.
9568         (infinite_cost_p): Move definition forward.
9569         (add_costs): Check INFTY cost and return immediately.
9570         (get_computation_cost_at): Clear setup cost and dependent bitmap
9571         for sub uses.
9572         (determine_use_iv_cost_address): Compute cost for sub uses.
9573         (rewrite_use_address_1): Rename from old rewrite_use_address.
9574         (free_loop_data): Free sub uses.
9575         (tree_ssa_iv_optimize_loop): Call group_address_uses.
9576
9577 2015-05-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
9578             Jim Wilson  <jim.wilson@linaro.org>
9579
9580         * config/arm/aarch-common-protos.h (struct mem_cost_table): Added
9581         new  fields loadv and storev.
9582         * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
9583         Initialize loadv and storev.
9584         * config/arm/aarch-cost-tables.h (generic_extra_costs): Likewise.
9585         (cortexa53_extra_costs): Likewise.
9586         (cortexa57_extra_costs): Likewise.
9587         (xgene1_extra_costs): Likewise.
9588         * config/aarch64/aarch64.c (aarch64_rtx_costs): Update vector
9589         rtx_costs.
9590
9591 2015-05-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
9592
9593         * config/arm/arm.c (cortexa9_extra_costs): Initialize loadv and
9594          storev.
9595         (cortexa8_extra_costs): Likewise.
9596         (cortexa5_extra_costs): Likewise.
9597         (cortexa7_extra_costs): Likewise.
9598         (cortexa12_extra_costs): Likewise.
9599         (cortexa15_extra_costs): Likewise.
9600         (v7m_extra_costs): Likewise.
9601
9602 2015-05-20  Jeff Law  <law@redhat.com>
9603
9604         * tree-ssa-threadupdate.c (thread_single_edge): Use delete_jump_thread
9605         instead of open-coded version.  Also delete the jump thread created
9606         within this function.
9607
9608 2015-05-20  Alan Modra  <amodra@gmail.com>
9609
9610         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Return
9611         stack adjusting insn.  Formatting.
9612         (rs6000_emit_prologue): Track stack adjusting insn, and use of
9613         r12.  If possible, emit first -fsplit-stack arg pointer insn
9614         before stack adjust.  Don't use r12 to save cr if split-stack.
9615
9616 2015-05-20  Alan Modra  <amodra@gmail.com>
9617
9618         * common/config/rs6000/rs6000-common.c (TARGET_SUPPORTS_SPLIT_STACK):
9619         Define.
9620         (rs6000_supports_split_stack): New function.
9621         * gcc/config/rs6000/rs6000.c (machine_function): Add
9622         split_stack_arg_pointer.
9623         (TARGET_EXTRA_LIVE_ON_ENTRY, TARGET_INTERNAL_ARG_POINTER): Define.
9624         (setup_incoming_varargs): Use crtl->args.internal_arg_pointer
9625         rather than virtual_incoming_args_rtx.
9626         (rs6000_va_start): Likewise.
9627         (split_stack_arg_pointer_used_p): New function.
9628         (rs6000_emit_prologue): Set up arg pointer for -fsplit-stack.
9629         (morestack_ref): New var.
9630         (gen_add3_const, rs6000_expand_split_stack_prologue,
9631         rs6000_internal_arg_pointer, rs6000_live_on_entry,
9632         rs6000_split_stack_space_check): New functions.
9633         (rs6000_elf_file_end): Call file_end_indicate_split_stack.
9634         * gcc/config/rs6000/rs6000.md (UNSPEC_STACK_CHECK): Define.
9635         (UNSPECV_SPLIT_STACK_RETURN): Define.
9636         (split_stack_prologue, load_split_stack_limit,
9637         load_split_stack_limit_di, load_split_stack_limit_si,
9638         split_stack_return, split_stack_space_check): New expands and insns.
9639         * gcc/config/rs6000/rs6000-protos.h
9640         (rs6000_expand_split_stack_prologue): Declare.
9641         (rs6000_split_stack_space_check): Declare.
9642
9643 2015-05-20  Alan Modra  <amodra@gmail.com>
9644
9645         * config/rs6000/rs6000.c (struct rs6000_stack): Correct comments.
9646         (direct_return): Test vrsave_size rather than vrsave_mask.
9647         (rs6000_emit_prologue): Likewise.  Remove redundant altivec tests.
9648         (rs6000_emit_epilogue): Likewise.
9649
9650 2015-05-20  Alan Modra  <amodra@gmail.com>
9651
9652         * config/rs6000/rs6000.c (rs6000_stack_info): Don't zero offsets
9653         when not saving registers.
9654         (debug_stack_info): Adjust to omit printing unused offsets,
9655         as before.
9656         (rs6000_emit_epilogue): Adjust use_backchain_to_restore_sp
9657         expression.
9658
9659 2015-05-19  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9660
9661         PR c++/65835
9662         * config/i386/winnt.c (struct wrapped_symbol_hasher): Change
9663         value_type to const char *.
9664
9665 2015-05-19  Sandra Loosemore  <sandra@codesourcery.com>
9666
9667         * config.gcc [powerpc*-*-linux*]: Allow --enable-targets=all
9668         to build a biarch toolchain again.
9669
9670 2015-05-19  Jan Hubicka  <hubicka@ucw.cz>
9671
9672         * ipa-devirt.c (type_in_anonymous_namespace_p): Return true
9673         or implicit declarations.
9674         (odr_type_p): Check that TYPE_NAME is TYPE_DECL before looking
9675         into it.
9676         (get_odr_type): Check type has linkage before adding bases.
9677         (register_odr_type): Check that type has linkage before adding it.
9678         (type_known_to_have_no_deriavations_p): Rename to ..
9679         (type_known_to_have_no_derivations_p): This one.
9680         * ipa-utils.h (type_known_to_have_no_deriavations_p): Rename to ..
9681         (type_known_to_have_no_derivations_p): This one.
9682         * ipa-polymorphic-call.c
9683         (ipa_polymorphic_call_context::restrict_to_inner_type): Check that
9684         type has linkage.
9685
9686 2015-05-19  Eric Botcazou  <ebotcazou@adacore.com>
9687
9688         * stor-layout.c (finalize_type_size): Use AGGREGATE_TYPE_P.
9689         (layout_type): Use RECORD_OR_UNION_TYPE_P.
9690
9691 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9692
9693         * config/s390/s390.c (s390_vector_bool_type_p): New function.
9694         (s390_invalid_binary_op): New function.
9695         (TARGET_INVALID_BINARY_OP): Define macro.
9696
9697 2015-05-19  David Sherwood  <david.sherwood@arm.com>
9698
9699         * loop-invariant.c (create_new_invariant): Don't calculate address cost
9700         if mode is not a scalar integer.
9701         (get_inv_cost): Increase computational cost for unused invariants.
9702
9703 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9704
9705         * config.gcc: Add vecintrin.h to extra_headers.  Add s390-c.o to
9706         c_target_objs and cxx_target_objs.  Add t-s390 to tmake_file.
9707         * config/s390/s390-builtin-types.def: New file.
9708         * config/s390/s390-builtins.def: New file.
9709         * config/s390/s390-builtins.h: New file.
9710         * config/s390/s390-c.c: New file.
9711         * config/s390/s390-modes.def: Add modes CCVEQANY, CCVH,
9712         CCVHANY, CCVHU, CCVHUANY, CCVFHANY, CCVFHEANY.
9713         * config/s390/s390-protos.h (s390_expand_vec_compare_cc)
9714         (s390_cpu_cpp_builtins, s390_register_target_pragmas): Add
9715         prototypes.
9716         * config/s390/s390.c (s390-builtins.h, s390-builtins.def):
9717         Include.
9718         (flags_builtin, flags_overloaded_builtin_var, s390_builtin_types)
9719         (s390_builtin_fn_types, s390_builtin_decls, code_for_builtin): New
9720         variable definitions.
9721         (s390_const_operand_ok): New function.
9722         (s390_expand_builtin): Rewrite.
9723         (s390_init_builtins): New function.
9724         (s390_handle_vectorbool_attribute): New function.
9725         (s390_attribute_table): Add s390_vector_bool attribute.
9726         (s390_match_ccmode_set): Handle new cc modes CCVH, CCVHU.
9727         (s390_branch_condition_mask): Generate masks for new modes.
9728         (s390_expand_vec_compare_cc): New function.
9729         (s390_mangle_type): Add mangling for vector bool types.
9730         (enum s390_builtin): Remove.
9731         (s390_atomic_assign_expand_fenv): Rename constants for sfpc and
9732         efpc builtins.
9733         * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Call
9734         s390_cpu_cpp_builtins.
9735         (REGISTER_TARGET_PRAGMAS): New macro.
9736         * config/s390/s390.md: Define more UNSPEC_VEC_* constants.
9737         (insn_cmp mode attribute): Add new CC modes.
9738         (s390_sfpc, s390_efpc): Rename patterns to sfpc and efpc.
9739         (lcbb): New pattern definition.
9740         * config/s390/s390intrin.h: Include vecintrin.h.
9741         * config/s390/t-s390: New file.
9742         * config/s390/vecintrin.h: New file.
9743         * config/s390/vector.md: Include vx-builtins.md.
9744         * config/s390/vx-builtins.md: New file.S/390 zvector builtin
9745         support.
9746
9747 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9748
9749         * config/s390/s390-modes.def: Add new modes CCVEQ, CCVFH, and
9750         CCVFHE.
9751         * config/s390/s390.c (s390_match_ccmode_set): Handle new modes.
9752         (s390_select_ccmode): Likewise.
9753         (s390_canonicalize_comparison): Swap operands if necessary.
9754         (s390_expand_vec_compare_scalar): Expand DFmode compare using
9755         single element vector instructions.
9756         (s390_emit_compare): Call s390_expand_vec_compare_scalar.
9757         (s390_branch_condition_mask): Generate CC masks for the new modes.
9758         * config/s390/s390.md (v0, vf, vd): New mode attributes.
9759         (VFCMP, asm_fcmp, insn_cmp): New mode iterator and attributes.
9760         (*vec_cmp<insn_cmp>df_cconly, *fixuns_truncdfdi2_z13)
9761         (*fix_trunc<BFP:mode><GPR:mode>2_bfp, *floatunsdidf2_z13)
9762         (*floatuns<GPR:mode><FP:mode>2, *extendsfdf2_z13)
9763         (*extend<DSF:mode><BFP:mode>2): New insn definition.
9764         (fix_trunc<BFP:mode><GPR:mode>2_bfp, loatuns<GPR:mode><FP:mode>2)
9765         (extend<DSF:mode><BFP:mode>2): Turn into expander.
9766         (floatdi<mode>2, truncdfsf2, add<mode>3, sub<mode>3, mul<mode>3)
9767         (div<mode>3, *neg<mode>2, *abs<mode>2, *negabs<mode>2)
9768         (sqrt<mode>2): Add vector instruction.
9769
9770 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9771
9772         * config/s390/constraints.md (j00, jm1, jxx, jyy, v): New
9773         constraints.
9774         * config/s390/predicates.md (const0_operand, constm1_operand)
9775         (constable_operand): Accept vector operands.
9776         * config/s390/s390-modes.def: Add supported vector modes.
9777         * config/s390/s390-protos.h (s390_cannot_change_mode_class)
9778         (s390_function_arg_vector, s390_contiguous_bitmask_vector_p)
9779         (s390_bytemask_vector_p, s390_expand_vec_strlen)
9780         (s390_expand_vec_compare, s390_expand_vcond)
9781         (s390_expand_vec_init): Add prototypes.
9782         * config/s390/s390.c (VEC_ARG_NUM_REG): New macro.
9783         (s390_vector_mode_supported_p): New function.
9784         (s390_contiguous_bitmask_p): Mask out the irrelevant bits.
9785         (s390_contiguous_bitmask_vector_p): New function.
9786         (s390_bytemask_vector_p): New function.
9787         (s390_split_ok_p): Vector regs don't work either.
9788         (regclass_map): Add VEC_REGS.
9789         (s390_legitimate_constant_p): Handle vector constants.
9790         (s390_cannot_force_const_mem): Handle CONST_VECTOR.
9791         (legitimate_reload_vector_constant_p): New function.
9792         (s390_preferred_reload_class): Handle CONST_VECTOR.
9793         (s390_reload_symref_address):  Likewise.
9794         (s390_secondary_reload): Vector memory instructions only support
9795         short displacements.  Rename reload*_nonoffmem* to reload*_la*.
9796         (s390_emit_ccraw_jump): New function.
9797         (s390_expand_vec_strlen): New function.
9798         (s390_expand_vec_compare): New function.
9799         (s390_expand_vcond): New function.
9800         (s390_expand_vec_init): New function.
9801         (s390_dwarf_frame_reg_mode): New function.
9802         (print_operand): Handle addresses with 'O' and 'R' constraints.
9803         (NR_C_MODES, constant_modes): Add vector modes.
9804         (s390_output_pool_entry): Handle vector constants.
9805         (s390_hard_regno_mode_ok): Handle vector registers.
9806         (s390_class_max_nregs): Likewise.
9807         (s390_cannot_change_mode_class): New function.
9808         (s390_invalid_arg_for_unprototyped_fn): New function.
9809         (s390_function_arg_vector): New function.
9810         (s390_function_arg_float): Remove size variable.
9811         (s390_pass_by_reference): Handle vector arguments.
9812         (s390_function_arg_advance): Likewise.
9813         (s390_function_arg): Likewise.
9814         (s390_return_in_memory): Vector values are returned in a VR if
9815         possible.
9816         (s390_function_and_libcall_value): Handle vector arguments.
9817         (s390_gimplify_va_arg): Likewise.
9818         (s390_call_saved_register_used): Consider the arguments named.
9819         (s390_conditional_register_usage): Disable v16-v31 for non-vec
9820         targets.
9821         (s390_preferred_simd_mode): New function.
9822         (s390_support_vector_misalignment): New function.
9823         (s390_vector_alignment): New function.
9824         (TARGET_STRICT_ARGUMENT_NAMING, TARGET_DWARF_FRAME_REG_MODE)
9825         (TARGET_VECTOR_MODE_SUPPORTED_P)
9826         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN)
9827         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
9828         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT)
9829         (TARGET_VECTOR_ALIGNMENT): Define target macro.
9830         * config/s390/s390.h (FUNCTION_ARG_PADDING): Define macro.
9831         (FIRST_PSEUDO_REGISTER): Increase value.
9832         (VECTOR_NOFP_REGNO_P, VECTOR_REGNO_P, VECTOR_NOFP_REG_P)
9833         (VECTOR_REG_P): Define macros.
9834         (FIXED_REGISTERS, CALL_USED_REGISTERS)
9835         (CALL_REALLY_USED_REGISTERS, REG_ALLOC_ORDER)
9836         (HARD_REGNO_CALL_PART_CLOBBERED, REG_CLASS_NAMES)
9837         (FUNCTION_ARG_REGNO_P, FUNCTION_VALUE_REGNO_P, REGISTER_NAMES):
9838         Add vector registers.
9839         (CANNOT_CHANGE_MODE_CLASS): Call C function.
9840         (enum reg_class): Add VEC_REGS, ADDR_VEC_REGS, GENERAL_VEC_REGS.
9841         (SECONDARY_MEMORY_NEEDED): Allow SF<->SI mode moves without
9842         memory.
9843         (DBX_REGISTER_NUMBER, FIRST_VEC_ARG_REGNO, LAST_VEC_ARG_REGNO)
9844         (SHORT_DISP_IN_RANGE, VECTOR_STORE_FLAG_VALUE): Define macro.
9845         * config/s390/s390.md (UNSPEC_VEC_*): New constants.
9846         (VR*_REGNUM): New constants.
9847         (ALL): New mode iterator.
9848         (INTALL): Remove mode iterator.
9849         Include vector.md.
9850         (movti): Implement TImode moves for VRs.
9851         Disable TImode splitter for VR targets.
9852         Implement splitting TImode GPR<->VR moves.
9853         (reload*_tomem_z10, reload*_toreg_z10): Replace INTALL with ALL.
9854         (reload<mode>_nonoffmem_in, reload<mode>_nonoffmem_out): Rename to
9855         reload<mode>_la_in, reload<mode>_la_out.
9856         (*movdi_64, *movsi_zarch, *movhi, *movqi, *mov<mode>_64dfp)
9857         (*mov<mode>_64, *mov<mode>_31): Add vector instructions.
9858         (TD/TF mode splitter): Enable for GPRs only (formerly !FP).
9859         (mov<mode> SF SD): Prefer lder, lde for loading.
9860         Add lrl and strl instructions.
9861         Add vector instructions.
9862         (strlen<mode>): Rename old strlen<mode> to strlen_srst<mode>.
9863         Call s390_expand_vec_strlen on z13.
9864         (*cc_to_int): Change predicate to nonimmediate_operand.
9865         (addti3): Rename to *addti3.  New expander.
9866         (subti3): Rename to *subti3.  New expander.
9867         * config/s390/vector.md: New file.
9868
9869 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9870
9871         * common/config/s390/s390-common.c (processor_flags_table): Add
9872         z13.
9873         * config.gcc: Add z13.
9874         * config/s390/s390-opts.h (enum processor_type): Add
9875         PROCESSOR_2964_Z13.
9876         * config/s390/s390.c (s390_adjust_priority): Check for
9877         PROCESSOR_2964_Z13.
9878         (s390_reorg): Likewise.
9879         (s390_sched_reorder): Likewise.
9880         (s390_sched_variable_issue): Likewise.
9881         (s390_loop_unroll_adjust): Likewise.
9882         (s390_option_override): Likewise. Default to -mvx when available.
9883         * config/s390/s390.h (enum processor_flags): Add PF_Z13 and PF_VX.
9884         (TARGET_CPU_Z13, TARGET_CPU_VX, TARGET_Z13, TARGET_VX)
9885         (TARGET_VX_ABI): Define macros.
9886         macros.
9887         (TARGET_DEFAULT): Add MASK_OPT_VX.
9888         * config/s390/s390.md ("cpu" attribute): Add z13.
9889         ("cpu_facility" attribute): Add vec.
9890         * config/s390/s390.opt (processor_type): Add z13.
9891         (mvx): New options.
9892         * doc/invoke.texi: Add z13 option for -march.
9893
9894 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9895
9896         * config/s390/predicates.md (shift_count_or_setmem_operand): Add
9897         mode check to make sure that only scalar integer values are
9898         accepted.
9899
9900 2015-05-19  Jan Hubicka  <hubicka@ucw.cz>
9901
9902         * tree.c (verify_type_variant): Fix #undef.
9903         (gimple_canonical_types_compatible_p): Move here from lto.c
9904         (verify_type): Verify TYPE_CANONICAL compatibility.
9905         * tree.h (gimple_canonical_types_compatible_p): Declare.
9906
9907 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
9908
9909         PR middle-end/66199
9910         * tree.h (OMP_TEAMS_COMBINED): Define.
9911         * gimplify.c (enum gimplify_omp_var_data): Add
9912         GOVD_LINEAR_LASTPRIVATE_NO_OUTER.
9913         (enum omp_region_type): Add ORT_COMBINED_TEAMS.
9914         (omp_notice_variable): Accept both ORT_TEAMS
9915         and ORT_COMBINED_TEAMS.  Don't recurse if
9916         GOVD_LINEAR_LASTPRIVATE_NO_OUTER is set and either
9917         GOVD_LINEAR is set, or GOVD_LASTPRIVATE without
9918         GOVD_FIRSTPRIVATE.
9919         (omp_no_lastprivate): New function.
9920         (gimplify_scan_omp_clauses): For OMP_CLAUSE_LASTPRIVATE
9921         and OMP_CLAUSE_LINEAR, if omp_no_lastprivate, don't
9922         notice_outer and set appropriate bits, otherwise make
9923         sure default(none) combined constructs won't complain.
9924         (gimplify_adjust_omp_clauses): Remove OMP_CLAUSE_LINEAR
9925         outer special casing, for OMP_CLAUSE_LASTPRIVATE if
9926         omp_no_lastprivate either remove the clause or turn it
9927         into OMP_CLAUSE_PRIVATE.
9928         (gimplify_omp_for): Fix up handling of implicit
9929         lastprivate or linear iterators.
9930         (gimplify_omp_workshare): For OMP_TEAMS_COMBINED use
9931         ORT_COMBINED_TEAMS.
9932         * omp-low.c (lower_omp_for_lastprivate): For combined
9933         for simd use fd.loop.n2 from the for rather than simd.
9934
9935 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
9936
9937         * config/cris/cris.c (cris_expand_prologue): Use gen_raw_REG
9938         instead of gen_rtx_raw_REG.
9939         (cris_expand_epilogue): Likewise.
9940         * config/microblaze/microblaze.c (microblaze_classify_address):
9941         Likewise.
9942         * config/sparc/sparc.md: Likewise.
9943
9944 2015-05-19  Uros Bizjak  <ubizjak@gmail.com>
9945
9946         * config/alpha/alpha.c (alpha_legitimize_reload_address)
9947         (alpha_preferred_reload_class, alpha_legitimate_constant_p): Use
9948         CONST_INT_P, CONST_SCALAR_INT_P and CONST_DOUBLE_P predicates.
9949         (alpha_split_reload_pair) <case CONST_INT, case CONST_WIDE_INT>:
9950         Use CASE_CONST_SCALAR_INT.
9951         (print_operand) <case 'M'>: Use mode_width_operand to check the
9952         value of the constant.
9953         * config/alpha/alpha.md (movti): Use CONST_SCALAR_INT_P predicate.
9954         * config/alpha/predicates.md (input_operand): Use general_operand
9955         instead of match_code as operand check.
9956         (symbolic_operand): Use match_code with subexpression digits.
9957         * config/alpha/constraints.md (Q): Ditto.
9958
9959 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9960
9961         * optabs.c (expand_vec_perm): Don't re-use SEL as target operand.
9962
9963 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9964
9965         * config/s390/s390.c (s390_secondary_reload): Fix check for
9966         load/store relative.
9967
9968 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9969
9970         * recog.h: Increase MAX_RECOG_ALTERNATIVES.  Change type of
9971         alternative_mask to uint64_t.
9972
9973 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
9974
9975         PR tree-optimization/66187
9976         * match.pd ((bit_and (plus/minus (convert @0) (convert @1)) mask)):
9977         Pass TYPE_SIGN to tree_int_cst_min_precision.  If
9978         !TYPE_OVERFLOW_WRAPS, ensure @4 is non-negative.
9979
9980 2015-05-19  David Malcolm  <dmalcolm@redhat.com>
9981
9982         * diagnostic.c (diagnostic_report_current_module): Strengthen
9983         local "new_map" from const line_map * to
9984         const line_map_ordinary *.
9985         * genmatch.c (error_cb): Likewise for local "map".
9986         (output_line_directive): Likewise for local "map".
9987         * input.c (expand_location_1): Likewise for local "map".
9988         Pass NULL rather than &map to
9989         linemap_unwind_to_first_non_reserved_loc, since the value is never
9990         read from there, and the value written back not read from here.
9991         (is_location_from_builtin_token): Strengthen local "map" from
9992         const line_map * to const line_map_ordinary *.
9993         (dump_location_info): Strengthen locals "map" from
9994         line_map *, one to const line_map_ordinary *, the other
9995         to const line_map_macro *.
9996         * tree-diagnostic.c (loc_map_pair): Strengthen field "map" from
9997         const line_map * to const line_map_macro *.
9998         (maybe_unwind_expanded_macro_loc): Add a call to
9999         linemap_check_macro when writing to the "map" field of the
10000         loc_map_pair.
10001         Introduce local const line_map_ordinary * "ord_map", using it in
10002         place of "map" in the part of the function where we know we have
10003         an ordinary map.  Strengthen local "m" from const line_map * to
10004         const line_map_ordinary *.
10005
10006 2015-05-19  Nick Clifton  <nickc@redhat.com>
10007
10008         PR target/66156
10009         * config/msp430/msp430.md (zero_extendhisi2): Add support for
10010         separate source and destination registers.
10011
10012 2015-05-19  Richard Biener  <rguenther@suse.de>
10013
10014         PR tree-optimization/66165
10015         * tree-vect-slp.c (vect_supported_load_permutation_p): Add guard
10016         for no load permutation.
10017
10018         PR tree-optimization/66185
10019         * tree-vect-slp.c (vect_build_slp_tree): Properly roll back
10020         when building the SLP node from scalars.
10021
10022 2015-05-19  Eric Botcazou  <ebotcazou@adacore.com>
10023             Tristan Gingold  <gingold@adacore.com>
10024
10025         * insn-notes.def (UPDATE_SJLJ_CONTEXT): New note.
10026         * builtins.c (expand_builtin_update_setjmp_buf): Make global.
10027         (expand_stack_restore): Call record_new_stack_level.
10028         (expand_stack_save): Do not call do_pending_stack_adjust.
10029         * builtins.h (expand_builtin_update_setjmp_buf): Declare.
10030         * calls.c (expand_call): Call record_new_stack_level for alloca.
10031         * except.c (sjlj_mark_call_sites): Expand builtin_update_setjmp_buf
10032         wherever a NOTE_INSN_UPDATE_SJLJ_CONTEXT note is present.
10033         (update_sjlj_context): New global function.
10034         * except.h (update_sjlj_context): Declare.
10035         * explow.c (record_new_stack_level): New global function.
10036         (allocate_dynamic_stack_space): Call record_new_stack_level.
10037         * explow.h (record_new_stack_level): Declare.
10038         * final.c (final_scan_insn): Deal with NOTE_INSN_UPDATE_SJLJ_CONTEXT.
10039         * cfgrtl.c (duplicate_insn_chain): Likewise.
10040
10041 2015-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10042
10043         * calls.c: Always define STACK_GROWS_DOWNWARD as 0 or 1.
10044         (mem_overlaps_already_clobbered_arg_p): Rewrite ifdef
10045         STACK_GROWS_DOWNWARD as normal if.
10046         (expand_call): Likewise.
10047
10048 2015-05-19  Oleg Endo  <olegendo@gcc.gnu.org>
10049
10050         PR target/54236
10051         * config/sh/sh.md (*round_int_even): New insn_and_split and
10052         accompanying new unnamed split.
10053
10054 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10055
10056         * bitmap.c (bitmap_set_range): Handle count==1 specially.
10057         (bitmap_clear_range): Likewise.
10058         * cfgcleanup.c (mark_effect): Use bitmap_clear_range and
10059         bitmap_set_range unconditionally.
10060         * df-problems.c (df_simulate_one_insn_forwards): Likewise.
10061         * df-scan.c (df_mark_reg): Likewise.
10062         * haifa-sched.c (setup_ref_regs): Likewise.
10063         * sched-rgn.c (update_live_1): Likewise.
10064
10065 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10066
10067         * regs.h (END_HARD_REGNO): Delete.
10068         (END_REGNO): Move to...
10069         * rtl.h: ...here.
10070         * bt-load.c (note_btr_set): Use END_REGNO instead of END_HARD_REGNO.
10071         * caller-save.c (mark_set_regs): Likewise.
10072         * combine.c (move_deaths, distribute_notes): Likewise.
10073         * cse.c (invalidate, invalidate_for_call): Likewise.
10074         * df-scan.c (df_ref_record): Likewise.
10075         * postreload-gcse.c (reg_changed_after_insn_p): Likewise.
10076         (record_last_reg_set_info): Likewise.
10077         * reg-stack.c (convert_regs_exit): Likewise.
10078         * reload.c (reg_overlap_mentioned_for_reload_p): Likewise.
10079         * resource.c (update_live_status): Likewise.
10080         * rtlanal.c (find_reg_fusage, find_regno_fusage): Likewise.
10081
10082 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10083
10084         * rtl.h (reg_info): Add an nregs field.
10085         (REG_NREGS): Use it.
10086         (SET_REGNO_RAW): Delete.
10087         (set_regno_raw): New function.
10088         * regs.h (END_HARD_REGNO): Make equivalent to END_REGNO.
10089         (END_REGNO): Redefine in terms of REG_NREGS.
10090         * read-rtl.c (read_rtx_code): Call set_regno_raw instead of
10091         SET_REGNO_RAW.
10092         * emit-rtl.c (set_mode_and_regno): Likewise.
10093         * df-scan.c (df_ref_change_reg_with_loc): Use set_mode_and_regno
10094         instead of SET_REGNO_RAW.
10095
10096 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10097
10098         * rtl.h (PUT_MODE_RAW): New macro.
10099         (PUT_REG_NOTE_KIND): Use it.
10100         (set_mode_and_regno): Declare.
10101         (gen_raw_REG): Change regno to "unsigned int".
10102         (gen_rtx_REG): Change "unsigned" to "unsigned int".
10103         (PUT_MODE): Forward to PUT_MODE_RAW for generators, otherwise
10104         use set_mode_and_regno to change the mode of registers.
10105         * gengenrtl.c (gendef): Use PUT_MODE_RAW.
10106         * emit-rtl.c (set_mode_and_regno): New function.
10107         (gen_raw_REG): Change regno to unsigned int.  Use set_mode_and_regno.
10108         * caller-save.c (reg_save_code): Use set_mode_and_regno.
10109         * expr.c (init_expr_target): Likewise.
10110         * ira.c (setup_prohibited_mode_move_regs): Likewise.
10111         * postreload.c (reload_cse_simplify_operands): Likewise.
10112
10113 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10114
10115         * caller-save.c (init_caller_save): Use word_mode and
10116         FIRST_PSEUDO_REGISTER when creating temporary rtxes.
10117         * expr.c (init_expr_target): Likewise.
10118         * ira.c (setup_prohibited_mode_move_regs): Likewise.
10119         * postreload.c (reload_cse_regs_1): Likewise.
10120
10121 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10122
10123         * rtl.def (REG): Change format to "r".
10124         * rtl.h (rtunion): Remove rt_reg.
10125         (reg_info): New structure.
10126         (rtx_def): Add reg field to main union.
10127         (X0REGATTR): Delete.
10128         (REG_CHECK): New macro.
10129         (SET_REGNO_RAW, rhs_regno, REG_ATTRS): Use it.
10130         * rtl.c (rtx_format): Document "r".
10131         (rtx_code_size): Handle REG specially.
10132         * gengenrtl.c (special_format): Return true for formats
10133         that include 'r'.
10134         * gengtype.c (adjust_field_rtx_def): Handle 'r' fields.
10135         Deal with REG_ATTRS after the field loop.
10136         * emit-rtl.c (gen_raw_REG): Call rtx_alloc_stat directly.
10137         * expmed.c (init_expmed): Call gen_raw_REG instead of
10138         gen_rtx_raw_REG.
10139         * expr.c (init_expr_target): Likewise.
10140         * regcprop.c (maybe_mode_change): Likewise.
10141         * varasm.c (make_decl_rtl): Likewise.
10142         * final.c (leaf_renumber_regs_insn): Return early after
10143         handling REGs.
10144         * genemit.c (gen_exp): Handle 'r' fields.
10145         * genpeep.c (match_rtx): Likewise.
10146         * gensupport.c (subst_pattern_match): Likewise.
10147         (get_alternatives_number, collect_insn_data, alter_predicate_for_insn)
10148         (alter_constraints, subst_dup): Likewise.
10149         * read-rtl.c (read_rtx_code): Likewise.
10150         * print-rtl.c (print_rtx): Likewise.
10151         * genrecog.c (find_operand, find_matching_operand): Likewise.
10152         (validate_pattern, match_pattern_2): Likewise.
10153         (parameter::UINT, rtx_test::REGNO_FIELD): New enum values.
10154         (rtx_test::regno_field): New function.
10155         (operator ==, safe_to_hoist_p, transition_parameter_type)
10156         (parameter_type_string, print_parameter_value)
10157         (print_nonbool_test, print_test): Handle new enum values.
10158         * cselib.c (rtx_equal_for_cselib_1): Handle REG specially.
10159         * lra-constraints.c (operands_match_p): Likewise.
10160
10161 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10162
10163         * df.h (df_ref_change_reg_with_loc): Remove old_regno parameter.
10164         Change type of new_regno to unsigned int.
10165         * df-scan.c (df_ref_change_reg_with_loc_1): Change type of
10166         new_regno to unsigned int.
10167         (df_ref_change_reg_with_loc): Remove old_regno parameter.
10168         Change type of new_regno to unsigned int.  Use SET_REGNO_RAW.
10169         * rtl.h (SET_REGNO): Update call to df_ref_change_reg_with_loc.
10170         (SET_REGNO_RAW): Add space after ",".
10171
10172 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10173
10174         * rtl.h (REG_NREGS): New macro
10175         * alias.c (record_set): Use it.
10176         * cfgcleanup.c (mark_effect): Likewise.
10177         * combine.c (likely_spilled_retval_1): Likewise.
10178         (likely_spilled_retval_p, can_change_dest_mode): Likewise.
10179         (move_deaths, distribute_notes): Likewise.
10180         * cselib.c (cselib_record_set): Likewise.
10181         * df-problems.c (df_simulate_one_insn_forwards): Likewise.
10182         * df-scan.c (df_mark_reg): Likewise.
10183         * dse.c (look_for_hardregs): Likewise.
10184         * dwarf2out.c (reg_loc_descriptor): Likewise.
10185         (multiple_reg_loc_descriptor): Likewise.
10186         * expr.c (write_complex_part, read_complex_part): Likewise.
10187         (emit_move_complex): Likewise.
10188         * haifa-sched.c (setup_ref_regs): Likewise.
10189         * ira-lives.c (mark_hard_reg_live): Likewise.
10190         * lra.c (lra_set_insn_recog_data): Likewise.
10191         * mode-switching.c (create_pre_exit): Likewise.
10192         * postreload.c (reload_combine_recognize_const_pattern): Likewise.
10193         (reload_combine_recognize_pattern): Likewise.
10194         (reload_combine_note_use, move2add_record_mode): Likewise.
10195         (reload_cse_move2add): Likewise.
10196         * reg-stack.c (subst_stack_regs_pat): Likewise.
10197         * regcprop.c (kill_value, copy_value): Likewise.
10198         (copyprop_hardreg_forward_1): Likewise.
10199         * regrename.c (verify_reg_in_set, scan_rtx_reg): Likewise.
10200         (build_def_use): Likewise.
10201         * sched-deps.c (mark_insn_reg_birth, mark_reg_death): Likewise.
10202         (deps_analyze_insn): Likewise.
10203         * sched-rgn.c (check_live_1, update_live_1): Likewise.
10204         * sel-sched.c (count_occurrences_equiv): Likewise.
10205         * valtrack.c (dead_debug_insert_temp): Likewise.
10206
10207 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10208
10209         * cfgcleanup.c (mentions_nonequal_regs): Use END_REGNO.
10210         * dse.c (note_add_store): Likewise.
10211         * ira-lives.c (mark_hard_reg_dead): Likewise.
10212         * loop-invariant.c (mark_reg_store): Likewise.
10213         (mark_reg_death): Likewise.
10214         * postreload.c (reload_combine): Likewise.
10215         (reload_combine_note_store): Likewise.
10216         (reload_combine_note_use): Likewise.
10217         * recog.c (peep2_reg_dead_p): Likewise.
10218
10219 2015-05-19  Alan Modra  <amodra@gmail.com>
10220
10221         * config/rs6000/predicates.md (gpc_reg_operand): Don't allow all
10222         hard registers numbered greater or equal to ARG_POINTER_REGNUM.
10223         (reg_or_neg_short_operand, fix_trunc_dest_operand): Delete
10224         unused predicates.
10225         * config/rs6000/altivec.md (save_vregs_*, restore_vregs_*):
10226         Use altivec_register_operand.  Make insn predicate TARGET_ALTIVEC.
10227         * config/rs6000/rs6000.md (extzvdi_internal2): Use cc_reg_operand.
10228         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Expand comment.
10229
10230 2015-05-19  Sameera Deshpande  <Sameera.Deshpande@imgtec.com>
10231
10232         * config/mips/mips.md (JOIN_MODE): New mode iterator.
10233         (join2_load_Store<JOIN_MODE:mode>): New pattern.
10234         (join2_loadhi): Likewise.
10235         (define_peehole2): Add peephole2 patterns to join 2 HI/SI/SF/DF-mode
10236         load-load and store-stores.
10237         * config/mips/mips.opt (mload-store-pairs): New option.
10238         (TARGET_LOAD_STORE_PAIRS): New macro.
10239         * config/mips/mips.h (ENABLE_LD_ST_PAIRS): Likewise.
10240         * config/mips/mips-protos.h (mips_load_store_bonding_p): New prototype.
10241         * config/mips/mips.c (mips_load_store_bonding_p): New function.
10242
10243 2015-05-19  Mikhail Maltsev  <maltsevm@gmail.com>
10244
10245         * bb-reorder.c (fix_up_fall_thru_edges): Use std::swap instead of
10246         explicit swaps.
10247         * dojump.c (do_compare_rtx_and_jump): Likewise.
10248         * expmed.c (emit_store_flag_1): Likewise.
10249         * fibonacci_heap.h (fibonacci_heap::union_with): Likewise.
10250         * final.c (sprint_ul): Use std::reverse for reversing a string.
10251         * fold-const.c (extract_muldiv_1): Use std::swap.
10252         * genmodes.c (emit_mode_int_n): Likewise.
10253         * ifcvt.c (dead_or_predicable): Likewise.
10254         * ira-build.c (ira_merge_live_ranges): Likewise.
10255         (swap_allocno_copy_ends_if_necessary): Likewise.
10256         * ira.c (ira_setup_alts): Likewise.
10257         * loop-iv.c (iv_analyze_expr): Likewise.
10258         (implies_p): Likewise.
10259         (canon_condition): Likewise.
10260         * lra-constraints.c (swap_operands): Likewise.
10261         * lra-lives.c (lra_merge_live_ranges): Likewise.
10262         * omega.c (swap): Remove.
10263         (bswap): Remove.
10264         (omega_unprotect_1): Use std::swap.
10265         (omega_solve_geq): Likewise.
10266         * optabs.c (expand_binop_directly): Likewise.
10267         (expand_binop): Likewise.
10268         (emit_conditional_move): Likewise.
10269         (emit_conditional_add): Likewise.
10270         * postreload.c (reload_cse_simplify_operands): Likewise.
10271         * reg-stack.c (emit_swap_insn): Likewise.
10272         (swap_to_top): Likewise.
10273         (compare_for_stack_reg): Likewise.
10274         (subst_asm_stack_regs): Likewise.
10275         * reload.c (find_reloads): Likewise.
10276         * reload1.c (gen_reload_chain_without_interm_reg_p): Likewise.
10277         * sel-sched.c (invoke_reorder_hooks): Likewise.
10278         (create_block_for_bookkeeping): Likewise.
10279         * tree-data-ref.c (lambda_matrix_row_exchange): Remove.
10280         (lambda_matrix_right_hermite): Use std::swap.
10281         * tree-ssa-coalesce.c (sort_coalesce_list): Likewise.
10282         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
10283         * tree-ssa-loop-ivopts.c (iv_ca_delta_reverse): Likewise.
10284         * tree-ssa-math-opts.c (is_widening_mult_p): Likewise.
10285         * tree-ssa-phiopt.c (hoist_adjacent_loads): Likewise.
10286         * tree-ssa-reassoc.c (linearize_expr_tree): Likewise.
10287         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
10288         * tree-vrp.c (compare_ranges): Likewise.
10289         * var-tracking.c (add_with_sets): Likewise.
10290         (vt_find_locations): Likewise.
10291
10292 2015-05-18  Andreas Tobler  <andreast@gcc.gnu.org>
10293
10294         * config/freebsd-spec.h (FBSD_STARTFILE_SPEC): Add the bits to build
10295         pie executables.
10296         (FBSD_ENDFILE_SPEC): Likewise.
10297         * config/i386/freebsd.h (STARTFILE_SPEC): Remove and use the one from
10298         config/freebsd-spec.h.
10299         (ENDFILE_SPEC): Likewise.
10300
10301 2015-05-18  Uros Bizjak  <ubizjak@gmail.com>
10302             Richard Henderson  <rth@redhat.com>
10303
10304         PR target/57032
10305         * config/alpha/constraints.md (Q): Rewrite as define_memory_constraint.
10306         Check for a memory location that is not a reference (using an AND)
10307         to an unaligned location here.
10308         * config/alpha/predicates.md (normal_memory_operand): Remove.
10309
10310 2015-05-18  Alex Velenko  <Alex.Velenko@arm.com>
10311
10312         * config/arm/arm.md (andsi_not_shiftsi_si_scc): New pattern.
10313         (andsi_not_shiftsi_si_scc_no_reuse): New pattern.
10314
10315 2015-05-18  Robert Suchanek  <robert.suchanek@imgtec.com>
10316
10317         * config/mips/mips.c (micromips_globals): New variable.
10318         (mips_set_compression_mode): Save and reinitialize target-dependent
10319         state for microMIPS.
10320
10321 2015-05-18  Martin Liska  <mliska@suse.cz>
10322
10323         * dbgcnt.def: Add new counter.
10324         * ipa-icf.c (sem_item_optimizer::merge_classes): Use the counter.
10325
10326 2015-05-18  Martin Liska  <mliska@suse.cz>
10327
10328         * dbgcnt.def: Sort counters.
10329         * opts.c (common_handle_option): Do not compile if
10330         -fdbg-cnt-list is enabled.
10331
10332 2015-05-18  Tom de Vries  <tom@codesourcery.com>
10333
10334         * gimplify.c (gimplify_modify_expr): Remove do_deref handling.
10335         (gimplify_va_arg_expr): Remove do_deref handling.  Remove adding of
10336         address operator to va_list operand.
10337         * tree-stdarg.c (expand_ifn_va_arg_1): Do deref of va_list operand
10338         unconditionally.
10339         * config/i386/i386.c (ix86_gimplify_va_arg): Remove deref on va_list
10340         operand.
10341         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Same.
10342         * config/s390/s390.c (s390_gimplify_va_arg): Same.
10343         * config/spu/spu.c (spu_gimplify_va_arg_expr): Same.
10344
10345 2015-05-18  Tom de Vries  <tom@codesourcery.com>
10346
10347         * tree-ssa-tail-merge.c: Fix whitespace.
10348
10349 2015-05-17  Jim Wilson  <jim.wilson@linaro.org>
10350
10351         * doc/invoke.texi (ARM Options, mtune): Add generic-armv7-a,
10352         cortex-a17, and cortex-a17.cortex-a7.
10353
10354 2015-05-17  Oleg Endo  <olegendo@gcc.gnu.org>
10355
10356         PR target/54236
10357         * config/sh/sh.md (*addc_2r_t): Use ashift instead of mult.
10358
10359 2015-05-17  Uros Bizjak  <ubizjak@gmail.com>
10360
10361         PR target/66174
10362         * config/i386/i386.c (expand_vec_perm_blend): Enable HImode and
10363         QImode inner modes for TARGET_AVX512BW.  Force mask operand
10364         to a register for AVX512F modes.
10365
10366 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
10367
10368         * toplev.c (emit_debug_global_declarations): Do not output debug info
10369         when doing slim LTO objects.
10370
10371 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
10372
10373         * ipa-utils.h (warn_types_mismatch, odr_or_derived_type_p,
10374         odr_types_equivalent_p): Declare.
10375         (odr_type_p): Use gcc_checking_assert.
10376         (type_in_anonymous_namespace_p) Declare.
10377         (type_with_linkage_p): Declare.
10378         * common.opt (Wlto-type-mismatch): New warning.
10379         * ipa-devirt.c (compound_type_base): New function.
10380         (odr_or_derived_type_p): New function.
10381         (odr_types_equivalent_p): New function.
10382         (add_type_duplicate): Simplify.
10383         (type_with_linkage_p): Add hack to prevent false positives on C types
10384         (type_in_anonymous_namespace_p): Likewise.
10385         * tree.c (need_assembler_name_p): Use type_with_linkage.
10386         * tree.h (type_in_anonymous_namespace_p): Remove.
10387         * doc/invoke.texi (-Wlto-type-mismatch): Document
10388
10389 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
10390
10391         * tree.c (verify_type_variant): Verify tree_base and type_common flags.
10392         (verify_type): Verify STRING_FLAG.
10393
10394 2015-05-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10395
10396         PR fortran/44054
10397         * tree-pretty-print.c (percent_K_format): Replace locus pointer
10398         with accessor function.
10399         * tree-diagnostic.c (diagnostic_report_current_function): Use
10400         diagnostic_location function.
10401         (maybe_unwind_expanded_macro_loc): Likewise.
10402         (virt_loc_aware_diagnostic_finalizer): Likewise.
10403         (default_tree_printer): Replace locus pointer with accessor function.
10404         * diagnostic.c (diagnostic_initialize): Initialize caret_chars array.
10405         (diagnostic_set_info_translated): Initialize second location.
10406         (diagnostic_build_prefix): Use CARET_LINE_MARGIN.
10407         (diagnostic_show_locus): Handle two locations. Call
10408         diagnostic_print_caret_line.
10409         (diagnostic_print_caret_line): New.
10410         (default_diagnostic_starter): Use diagnostic_location function.
10411         (diagnostic_report_diagnostic): Use diagnostic_location function.
10412         (verbatim): Do not set text.locus.
10413         * diagnostic.h (struct diagnostic_info): Remove location field.
10414         (struct diagnostic_context): Make caret_chars an array of two.
10415         (diagnostic_location): New inline.
10416         (diagnostic_expand_location): Handle two locations.
10417         (diagnostic_same_line): New inline.
10418         (diagnostic_print_caret_line): Declare.
10419         (CARET_LINE_MARGIN): New constant.
10420         * pretty-print.c (pp_printf): Do not set text.locus.
10421         (pp_verbatim): Do not set text.locus.
10422         * pretty-print.h (MAX_LOCATIONS_PER_MESSAGE): New constant.
10423         (struct text_info): Replace locus pointer with locations
10424         array. Add accessor functions.
10425
10426 2015-05-16  Kugan Vivekanandarajah  <kuganv@linaro.org>
10427             Zhenqiang Chen  <zhenqiang.chen@linaro.org>
10428
10429         PR target/65768
10430         * config/arm/arm.h (DONT_EARLY_SPLIT_CONSTANT): New macro.
10431         * config/arm/arm.md (subsi3, andsi3, iorsi3, xorsi3, movsi): Keep some
10432          large constants in register instead of splitting them.
10433
10434 2015-05-16  Uros Bizjak  <ubizjak@gmail.com>
10435
10436         PR target/66140
10437         * config/alpha/alpha.c (get_aligned_mem): Also look for reload
10438         replacements in memory addresses.
10439         (get_unaligned_address): Ditto.
10440
10441 2015-05-16  James Bowman  <james.bowman@ftdichip.com>
10442
10443         * config/ft32/*: New files for FT32 port.
10444         * doc/install.texi: Add FT32 information.
10445         * doc/invoke.texi: Add FT32 information.
10446         * doc/md.texi: Add FT32 information.
10447         * doc/contrib.texi: Self added.
10448
10449 2015-05-15  Marc Glisse  <marc.glisse@inria.fr>
10450
10451         PR tree-optimization/64454
10452         * match.pd ((X % Y) % Y, (X % Y) < Y): New patterns.
10453         (-1 - A -> ~A): Remove unnecessary condition.
10454
10455 2015-05-15  Gregor Richards  <gregor.richards@uwaterloo.ca>
10456
10457         * config/i386/linux.h (MUSL_DYNAMIC_LINKER): Define.
10458         * config/i386/linux64.h (MUSL_DYNAMIC_LINKER32): Define.
10459         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32): Define.
10460
10461 2015-05-15  Ilya Enkovich  <ilya.enkovich@intel.com>
10462
10463         * ipa-chkp.h (chkp_wrap_function): New.
10464         * ipa-chkp.c (chkp_wrap_function): Remove 'static'.
10465         (chkp_wrap_function_name): New.
10466         (chkp_build_instrumented_fndecl): Use chkp_wrap_function_name
10467         to get wrapper name.
10468         * lto-cgraph.c: Include ipa-chkp.h.
10469         (input_cgraph_1): Avoid alias chain for wrappers.
10470
10471 2015-05-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
10472
10473         PR middle-end/66134
10474         * tree-chkp.c (chkp_get_orginal_bounds_for_abnormal_copy): New.
10475         (chkp_maybe_copy_and_register_bounds): Don't copy abnormal copy.
10476
10477 2015-05-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10478
10479         * config/aarch64/aarch64.h (AARCH64_TUNE_SLOWMUL): Delete.
10480         (AARCH64_FL_SLOWMUL): Delete.
10481         (AARCH64_FL_CRC): Redefine to 1<<3.
10482         (AARCH64_FL_USE_FMA_STEERING_PASS): Redefine to 1<<4.
10483
10484 2015-05-15  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10485
10486         * config/arm/arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Add appropriate
10487         casting.
10488
10489 2015-05-15  Uros Bizjak  <ubizjak@gmail.com>
10490
10491         * config/alpha/alpha.md (extendqidi2): Use general_operand
10492         instead of some_operand for operand[1] predicate.
10493         (extendhidi2): Ditto.
10494         (cbranchdi4): Use general_operand instead of some_operand
10495         for operand[1] and operands[2] predicates.
10496         (cstoredi4): Ditto.
10497         * config/alpha/predicates.md (some_operand): Remove unused predicate.
10498         (some_ni_operand): Ditto.
10499
10500 2015-05-15  Uros Bizjak  <ubizjak@gmail.com>
10501
10502         * config/alpha/alpha.c (alpha_extract_integer): Do not handle
10503         CONST_WIDE_INT and CONST_DOUBLE.  Assert CONST_INT_P (x).
10504         (alpha_legitimate_constant_p) <case CONST_WIDE_INT>: Check high and
10505         low part of the constant using alpha_emit_set_const_1.
10506         (alpha_expand_mov): Do not handle CONST_WIDE_INT and CONST_DOUBLE.
10507
10508 2015-05-14  Rohit Arul Raj  <rohitrulraj@freescale.com>
10509
10510         * varasm.c (output_constant_pool_1): Pass down alignment from
10511         constant pool entry's descriptor to output_constant_pool_2.
10512         (output_object_block): Add comment prior to call to
10513         output_constant_pool_1.
10514
10515 2015-05-14  Vladimir Makarov  <vmakarov@redhat.com>
10516
10517         PR rtl-optimization/65862
10518         * target.def (ira_change_pseudo_allocno_class): New hook.
10519         * targhooks.c (default_ira_change_pseudo_allocno_class): Default
10520         value of the hook.
10521         * targhooks.h (default_ira_change_pseudo_allocno_class): New extern.
10522         * doc/tm.texi.in (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Add the
10523         hook.
10524         * ira-costs.c (find_costs_and_classes): Call the hook and change
10525         classes when it is necessary.
10526         * doc/tm.texi: Update.
10527
10528 2015-05-14  Alexander Monakov  <amonakov@ispras.ru>
10529
10530         * config/i386/i386.md (sibcall_memory): Check that register with
10531         callee address is not also used as one of the arguments, instead
10532         of checking that it is not live after the sibcall.
10533         (sibcall_pop_memory): Ditto.
10534         (sibcall_value_memory): Ditto.
10535         (sibcall_value_pop_memory): Ditto.
10536
10537 2015-05-14  Marc Glisse  <marc.glisse@inria.fr>
10538
10539         * generic-match-head.c (types_match): Handle non-types.
10540         * gimple-match-head.c (types_match): Likewise.
10541         * match.pd: Remove unnecessary TREE_TYPE for types_match.
10542
10543 2015-05-14  Wilco Dijkstra  <wdijkstr@arm.com>
10544
10545         * config/aarch64/aarch64.md (absdi2): Optimize abs expansion.
10546         (csneg3<mode>_insn): Enable expansion of pattern.
10547
10548 2015-05-14  Nick Clifton  <nickc@redhat.com>
10549
10550         * config/rl78/rl78.c (rl78_select_section): Select the correct
10551         default section based upon the category of the decl.
10552
10553 2015-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
10554
10555         PR rtl-optimization/30967
10556         * config/rs6000/rs6000.c (rs6000_rtx_costs): Don't consider
10557         destination mode for the cost of scc patterns.
10558
10559 2015-05-13  Uros Bizjak  <ubizjak@gmail.com>
10560
10561         * config/i386/i386.md (*mul<mode>3_1): Merge with *mulhi3_1
10562         using SWIM248 mode iterator.
10563         (*mulv<mode>4): Use x86_64_sext_operand for operand[2] constraint.
10564         (*mulvhi4): mark operand[1] as commutative.  Use nonimmediate_operand
10565         for operand[2] constraint.
10566         (*mulv<mode>4_1): Merge with *mulvhi4_1 using SWI248 mode iterator.
10567
10568 2015-05-13  Jakub Jelinek  <jakub@redhat.com>
10569
10570         PR middle-end/66133
10571         * omp-low.c (expand_omp_taskreg): For GIMPLE_OMP_TASK expansion,
10572         make sure it is never noreturn, even when the task body does not
10573         return.
10574         (lower_omp_taskreg): For GIMPLE_OMP_TASK, emit GIMPLE_OMP_CONTINUE
10575         right before GIMPLE_OMP_RETURN.
10576         (make_gimple_omp_edges): Accept GIMPLE_OMP_CONTINUE as ->cont
10577         for GIMPLE_OMP_TASK.  For GIMPLE_OMP_RETURN corresponding to
10578         GIMPLE_OMP_TASK add an EDGE_ABNORMAL edge from entry to exit.
10579
10580 2015-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10581
10582         * params.def (PARAM_MAX_POW_SQRT_DEPTH): New param.
10583         * tree-ssa-math-opts.c: Include params.h
10584         (pow_synth_sqrt_info): New struct.
10585         (representable_as_half_series_p): New function.
10586         (get_fn_chain): Likewise.
10587         (print_nested_fn): Likewise.
10588         (dump_fractional_sqrt_sequence): Likewise.
10589         (dump_integer_part): Likewise.
10590         (expand_pow_as_sqrts): Likewise.
10591         (gimple_expand_builtin_pow): Use above to attempt to expand
10592         pow as series of square roots.  Removed now unused variables.
10593
10594 2015-05-13  Uros Bizjak  <ubizjak@gmail.com>
10595
10596         * config/alpha/alpha.c (alpha_emit_set_long_const): Remove c1 argument.
10597         (alpha_extract_integer): Redeclare as static HOST_WIDE_INT.
10598         Remove *p0 and *p1 arguments.  Rewrite function.
10599         (alpha_legitimate_constant_p): Update call to alpha_extract_integer.
10600         (alpha_split_const_mov): Update calls to alpha_extract_integer and
10601         alpha_emit_set_long_const.
10602         (alpha_expand_epilogue): Update calls to alpha_emit_set_long_const.
10603         (alpha_output_mi_thunk_osf): Ditto.
10604         * config/alpha/alpha.md (movti): Do not check operands[1]
10605         for CONST_DOUBLE.
10606
10607 2015-05-13  Richard Biener  <rguenther@suse.de>
10608
10609         PR tree-optimization/66129
10610         * tree-vect-slp.c (vect_build_slp_tree): Make sure all ops are
10611         commutative.
10612         (vect_schedule_slp_instance): Fix typo.
10613
10614 2015-05-13  David Malcolm  <dmalcolm@redhat.com>
10615
10616         * common.opt (fdump-internal-locations): New option.
10617         * input.c: Include diagnostic-core.h.
10618         (get_end_location): New function.
10619         (write_digit): New function.
10620         (write_digit_row): New function.
10621         (dump_location_range): New function.
10622         (dump_labelled_location_range): New function.
10623         (dump_location_info): New function.
10624         * input.h (dump_location_info): New prototype.
10625         * toplev.c (compile_file): Handle flag_dump_locations.
10626
10627 2015-05-13  Eric Botcazou  <ebotcazou@adacore.com>
10628
10629         * gimple-expr.h (is_gimple_constant): Reorder.
10630         * tree-ssa-propagate.c (before_dom_children): Use inline accessor.
10631
10632 2015-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
10633
10634         * combine.c (simplify_set): When generating a CC set, if the
10635         source already is in the correct mode, do not wrap it in a
10636         compare.  Simplify the rest of that code.
10637
10638 2015-05-13  Richard Biener  <rguenther@suse.de>
10639
10640         PR tree-optimization/66123
10641         * tree-ssa-dom.c (propagate_rhs_into_lhs): Check if we found
10642         a taken edge.
10643
10644 2015-05-13  Richard Biener  <rguenther@suse.de>
10645
10646         PR middle-end/66110
10647         * alias.c (alias_sets_conflict_p): Do not treat has_zero_child
10648         specially.
10649         * Makefile.in (dfp.o-warn): Add -Wno-strict-aliasing.
10650
10651 2015-05-13  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
10652
10653         * doc/install.texi: Bump latest automake 1.11 version to 1.11.6.
10654         * aclocal.m4: Regenerated with automake-1.11.6.
10655
10656 2015-05-13  Tom de Vries  <tom@codesourcery.com>
10657
10658         PR tree-optimization/66010
10659         * gimplify.h (gimplify_va_arg_internal): Remove declaration.
10660         * gimplify.c (gimplify_va_arg_internal): Remove and inline into ...
10661         * tree-stdarg.c (expand_ifn_va_arg_1): ... here.  Choose between lval
10662         and rval based on do_deref.
10663
10664 2015-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
10665
10666         PR target/65103
10667         * config/i386/i386.c (ix86_rtx_costs): We want to propagate
10668         link time constants into adress expressions and therefore set
10669         their cost to 0.
10670
10671 2015-05-13  Jakub Jelinek  <jakub@redhat.com>
10672
10673         PR target/66112
10674         * config/i386/i386.md (mulv<mode>4, umulv<mode>4, *umulv<mode>4):
10675         Use SWI248 iterator instead of SWI.
10676         (*mulv<mode>4_1): Use SWI48 instead of SWI.  Simplify output template.
10677         Use eq_attr "alternative" "0" instead of match_test in
10678         length_immediate attribute computation.
10679         (*mulvhi4, *mulvhi4_1): New define_insns.
10680
10681         PR target/66112
10682         * internal-fn.c (get_min_precision): Use UNSIGNED instead of
10683         SIGNED to get precision of non-negative value.
10684
10685 2015-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
10686
10687         PR target/66048
10688         * function.c (diddle_return_value_1): Process bounds first.
10689         * config/i38/i386.c (ix86_function_value_regno_p): Add bnd1
10690         register.
10691
10692 2015-05-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
10693
10694         PR rtl-optimization/64616
10695         * loop-invariant.c (can_move_invariant_reg): New.
10696         (move_invariant_reg): Call above new function to decide whether
10697         instruction can just be moved, skipping creation of temporary
10698         register.
10699
10700 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
10701
10702         PR target/pr66047.c
10703         * i386.c (ix86_function_sseregparm): Only return -1 if local function
10704         with implied regparm is called from -mno-sse function.
10705         (init_cumulative_args): Output error if ix86_function_sseregparm
10706         return -1 and SSE register would be needed.
10707         (function_arg_advance_32): Likewise.
10708         (function_arg_32): Likewise.
10709         * i386.h (ix86_args): Add decl field.
10710
10711 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
10712
10713         PR ipa/65873
10714         * ipa-inline.c (can_inline_edge_p): Allow early inlining of always
10715         inlines across optimization boundary.
10716
10717 2015-05-12  Jason Merrill  <jason@redhat.com>
10718
10719         * config/mmix/mmix.c, config/msp430/msp430.c: Add space between
10720         string literal and macro name.
10721
10722 2015-05-12  Steve Ellcey  <sellcey@imgtec.com>
10723
10724         * config/mips/mips.c (mips_print_operand): Remove 'y' operand code.
10725         * config/mips/mips.md (<GPR:d>lsa): Rewrite with shift operator.
10726         * config/mips/predicates.md (const_immlsa_operand): Remove log call.
10727
10728 2015-05-12  David Malcolm  <dmalcolm@redhat.com>
10729
10730         * doc/invoke.texi (Warning Options): Add -Wmisleading-indentation.
10731         (-Wmisleading-indentation): New option.
10732         * Makefile.in (C_COMMON_OBJS): Add c-family/c-indentation.o.
10733
10734 2015-05-12  Uros Bizjak  <ubizjak@gmail.com>
10735
10736         * config/alpha/alpha.h (TARGET_SUPPORTS_WIDE_INT): New define.
10737         * config/alpha/alpha.c (alpha_rtx_costs): Handle CONST_WIDE_INT.
10738         (alpha_extract_integer): Ditto.
10739         (alpha_legitimate_constant_p): Ditto.
10740         (alpha_split_tmode_pair): Ditto.
10741         (alpha_preferred_reload_class): Add CONST_WIDE_INT.
10742         (alpha_expand_mov): Ditto.
10743         (print_operand): Remove handling of 'H' modifier.
10744         <case 'm'>: Remove CONST_DOUBLE handling.
10745         (summarize_insn): Handle CONST_WIDE_INT.
10746         * config/alpha/alpha.md (*andsi_internal): Remove H constraint.
10747         (anddi3): Ditto.
10748         (movti): Handle CONST_WIDE_INT.
10749         * config/alpha/constraints.md ('H'): Remove constraint definition.
10750         ('G'): Do not match MODE_FLOAT class.
10751         * config/alpha/predicates.md (const0_operand): Also match
10752         const_wide_int.
10753         (non_add_const_operand): Ditto.
10754         (non_zero_const_operand): Ditto.
10755         (some_operand): Ditto.
10756         (input_operand): Ditto.  Handle CONST_WIDE_INT.
10757         (and_operand): Do not match const_double.
10758         * config/alpha/sync.md (fetchop_constr): Remove H constraint.
10759
10760 2015-05-12  Andrew MacLeod  <amacleod@redhat.com>
10761
10762         PR target/65697
10763         * coretypes.h (MEMMODEL_SYNC, MEMMODEL_BASE_MASK): New macros.
10764         (enum memmodel): Add SYNC_{ACQUIRE,RELEASE,SEQ_CST}.
10765         * tree.h (memmodel_from_int, memmodel_base, is_mm_relaxed,
10766         is_mm_consume,is_mm_acquire, is_mm_release, is_mm_acq_rel,
10767         is_mm_seq_cst, is_mm_sync): New accessor functions.
10768         * builtins.c (expand_builtin_sync_operation,
10769         expand_builtin_compare_and_swap): Use MEMMODEL_SYNC_SEQ_CST.
10770         (expand_builtin_sync_lock_release): Use MEMMODEL_SYNC_RELEASE.
10771         (get_memmodel,  expand_builtin_atomic_compare_exchange,
10772         expand_builtin_atomic_load, expand_builtin_atomic_store,
10773         expand_builtin_atomic_clear): Use new accessor routines.
10774         (expand_builtin_sync_synchronize): Use MEMMODEL_SYNC_SEQ_CST.
10775         * optabs.c (expand_compare_and_swap_loop): Use MEMMODEL_SYNC_SEQ_CST.
10776         (maybe_emit_sync_lock_test_and_set): Use new accessors and
10777         MEMMODEL_SYNC_ACQUIRE.
10778         (expand_sync_lock_test_and_set): Use MEMMODEL_SYNC_ACQUIRE.
10779         (expand_mem_thread_fence, expand_mem_signal_fence, expand_atomic_load,
10780         expand_atomic_store): Use new accessors.
10781         * emit-rtl.c (need_atomic_barrier_p): Add additional enum cases.
10782         * tsan.c (instrument_builtin_call): Update check for memory model beyond
10783         final enum to use MEMMODEL_LAST.
10784         * c-family/c-common.c: Use new accessor for memmodel_base.
10785         * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap): Use new
10786         accessors.
10787         * config/aarch64/atomics.md (atomic_load<mode>,atomic_store<mode>,
10788         arch64_load_exclusive<mode>, aarch64_store_exclusive<mode>,
10789         mem_thread_fence, *dmb): Likewise.
10790         * config/alpha/alpha.c (alpha_split_compare_and_swap,
10791         alpha_split_compare_and_swap_12): Likewise.
10792         * config/arm/arm.c (arm_expand_compare_and_swap,
10793         arm_split_compare_and_swap, arm_split_atomic_op): Likewise.
10794         * config/arm/sync.md (atomic_load<mode>, atomic_store<mode>,
10795         atomic_loaddi): Likewise.
10796         * config/i386/i386.c (ix86_destroy_cost_data, ix86_memmodel_check):
10797         Likewise.
10798         * config/i386/sync.md (mem_thread_fence, atomic_store<mode>): Likewise.
10799         * config/ia64/ia64.c (ia64_expand_atomic_op): Add new memmodel cases and
10800         use new accessors.
10801         * config/ia64/sync.md (mem_thread_fence, atomic_load<mode>,
10802         atomic_store<mode>, atomic_compare_and_swap<mode>,
10803         atomic_exchange<mode>): Use new accessors.
10804         * config/mips/mips.c (mips_process_sync_loop): Likewise.
10805         * config/pa/pa.md (atomic_loaddi, atomic_storedi): Likewise.
10806         * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier,
10807         rs6000_post_atomic_barrier): Add new cases.
10808         (rs6000_expand_atomic_compare_and_swap): Use new accessors.
10809         * config/rs6000/sync.md (mem_thread_fence): Add new cases.
10810         (atomic_load<mode>): Add new cases and use new accessors.
10811         (store_quadpti): Add new cases.
10812         * config/s390/s390.md (mem_thread_fence, atomic_store<mode>): Use new
10813         accessors.
10814         * config/sparc/sparc.c (sparc_emit_membar_for_model): Use new accessors.
10815         * doc/extend.texi: Update docs to indicate 16 bits are used for memory
10816         model, not 8.
10817
10818 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
10819
10820         * ipa-devirt.c (type_with_linkage_p): New function.
10821         (type_in_anonymous_namespace_p): Move here from tree.c; assert that
10822         type has linkage.
10823         (odr_type_p): Move here from ipa-utils.h; use type_with_linkage_p.
10824         (can_be_name_hashed_p): Simplify.
10825         (hash_odr_name): Check that type has linkage before checking if it is
10826         anonymous.
10827         (types_same_for_odr): Likewise.
10828         (odr_name_hasher::equal): Likewise.
10829         (odr_subtypes_equivalent_p): Likewise.
10830         (warn_types_mismatch): Likewise.
10831         (get_odr_type): Likewise.
10832         (odr_types_equivalent_p): Fix checking of TYPE_MAIN_VARIANT.
10833         * ipa-utils.h (odr_type_p): Move offline.
10834         * tree.c (need_assembler_name_p): Fix handling of types
10835         without linkages.
10836         (type_in_anonymous_namespace_p): Move to ipa-devirt.c
10837
10838 2015-05-12  David Malcolm  <dmalcolm@redhat.com>
10839
10840         * timevar.c (timevar_enable): Delete in favor of...
10841         (g_timer): New global.
10842         (struct timevar_def): Move to timevar.h inside class timer.
10843         (struct timevar_stack_def): Likewise.
10844         (timevars): Delete global in favor of field "m_timevars" within
10845         class timer in timevar.h
10846         (stack): Likewise, in favor of field "m_stack".
10847         (unused_stack_instances): Likewise, in favor of field
10848         "m_unused_stack_instances".
10849         (start_time): Likewise, in favor of field "m_start_time".
10850         (get_time): Eliminate check for timevar_enable.
10851         (timer::timer): New function, built from part of timevar_init.
10852         (timevar_init): Rewrite idempotency test from using
10853         "timevar_enable" bool to using dynamic allocation of "g_timer".
10854         Move rest of implementation into timer's constructor.
10855         (timevar_push_1): Rename to...
10856         (timer::push): ...this, adding "m_" prefixes to variables that
10857         are now fields of timer.
10858         (timevar_pop_1): Likewise, rename to...
10859         (timer::pop): ...this, and add "m_" prefixes.
10860         (timevar_start): Replace test for "timevar_enable" with one for
10861         "g_timer", and move bulk of implementation to...
10862         (timer::start): ...here, adding "m_" prefixes.
10863         (timevar_stop): Likewise, from here...
10864         (timer::stop): ...to here.
10865         (timevar_cond_start): Likewise, from here...
10866         (timer::cond_start): ...to here.
10867         (timevar_cond_stop): Likewise, from here...
10868         (timer::cond_stop): ...to here.
10869         (validate_phases): Rename to...
10870         (timer::validate_phases): ...this, and add "m_" prefixes.  Make
10871         locals "total" and "tv" const.
10872         (timevar_print): Rename to...
10873         (timer::print): ...this, and add "m_" prefixes.  Make locals
10874         "total" and "tv" const.  Eliminate test for timevar_enable.
10875         * timevar.h (timevar_enable): Eliminate.
10876         (g_timer): New declaration.
10877         (timevar_push_1): Eliminate.
10878         (timevar_pop_1): Eliminate.
10879         (timevar_print): Eliminate.
10880         (class timer): New class.
10881         (timevar_push): Rewrite to use g_timer.
10882         (timevar_pop): Likewise.
10883         * toplev.c (toplev::~toplev): Likewise.
10884
10885 2015-05-12  Richard Earnshaw  <rearnsha@arm.com>
10886
10887         * arm-protos.h (arm_sched_autopref): Delete.
10888         (tune_params): Re-organize, use enums for flag values.
10889         (FUSE_OPS): New macro.
10890         * arm.c (ARM_PREFETCH_NOT_BENEFICIAL): Update.
10891         (ARM_PREFETCH_BENEFICIAL): Likewise.
10892         (ARM_FUSE_NOTHING, ARM_FUSE_MOVW_MOVT): Delete.
10893         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
10894         (arm_xscale_tune, arm_9e_tune, arm_marvell_pj4_tune)
10895         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a8_tune)
10896         (arm_cortex_a7_tune, arm_cortex_a15_tune, arm_cortex_a53_tune)
10897         (arm_cortex_a57_tune,  arm_xgene1_tune, arm_cortex_a5_tune)
10898         (arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune)
10899         (arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune): Use new
10900         format.
10901         (arm_option_override, thumb2_reorg, arm_print_tune_info)
10902         (aarch_macro_fusion_pair_p): Update uses of current_tune.
10903         * arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Likewise.
10904
10905 2015-05-12  Sandra Loosemore  <sandra@codesourcery.com>
10906
10907         * config/nios2/nios2.md (trap, ctrapsi4): Use "trap" instead of
10908         "break".
10909
10910 2015-05-12  Chung-Lin Tang  <cltang@codesourcery.com>
10911             Sandra Loosemore <sandra@codesourcery.com>
10912
10913         * config/nios2/nios2.h (enum reg_class): Add IJMP_REGS enum
10914         value.
10915         (REG_CLASS_NAMES): Add "IJMP_REGS".
10916         (REG_CLASS_CONTENTS): Add new entry for IJMP_REGS.
10917         * config/nios2/nios2.md (indirect_jump,*tablejump): Adjust to
10918         use new "c" register constraint.
10919         * config/nios2/constraint.md (c): New register constraint
10920         corresponding to IJMP_REGS.
10921
10922 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
10923
10924         * config/rs6000/rs6000.md (*rotlsi3_internal4, *rotlsi3_internal5,
10925         *rotlsi3_internal6, rlwinm, 5 unnamed define_insns, and 6
10926         define_splits): Delete, revamp, transmogrify into ...
10927         (*rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
10928         *ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
10929         *lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
10930         New.
10931
10932 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
10933
10934         * config/rs6000/rs6000.md (rs6000_adjust_atomic_subword): Use
10935         gen_ashlsi3 and gen_andsi3 instead of gen_rlwinm.
10936
10937 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
10938
10939         * config/rs6000/rs6000.md (extzv): FAIL for SImode.
10940         (extzvsi_internal, *extzvsi_internal1, *extzvsi_internal2,
10941         *rotlsi3_internal7le, *rotlsi3_internal7be, *rotlsi3_internal8le,
10942         *rotlsi3_internal8be, *rotlsi3_internal9le, *rotlsi3_internal9be,
10943         *rotlsi3_internal10le, *rotlsi3_internal10be, *rotlsi3_internal11le,
10944         *rotlsi3_internal11be, *rotlsi3_internal12le, *rotlsi3_internal12be,
10945         *lshiftrt_internal1le, *lshiftrt_internal1be, *lshiftrt_internal2le,
10946         *lshiftrt_internal2be, *lshiftrt_internal3le, *lshiftrt_internal3be,
10947         *lshiftrt_internal4le, *lshiftrt_internal4be, *lshiftrt_internal5le,
10948         *lshiftrt_internal5be, *lshiftrt_internal5le, *lshiftrt_internal5be,
10949         *rotldi3_internal7le, *rotldi3_internal7be, *rotldi3_internal8le,
10950         *rotldi3_internal8be, *rotldi3_internal9le, *rotldi3_internal9be,
10951         *rotldi3_internal10le, *rotldi3_internal10be, *rotldi3_internal11le,
10952         *rotldi3_internal11be, *rotldi3_internal12le, *rotldi3_internal12be,
10953         *rotldi3_internal13le, *rotldi3_internal13be, *rotldi3_internal14le,
10954         *rotldi3_internal14be, *rotldi3_internal15le, *rotldi3_internal15be,
10955         and 30 corresponding splitters): Delete.
10956
10957 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
10958
10959         * config/rs6000/rs6000.md (define_split for bswaphi): Don't use
10960         zero_extract.
10961
10962 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
10963
10964         * combine.c (recog_for_combine_1): New function, factored out
10965         from recog_for_combine.
10966         (change_zero_ext): New function.
10967         (recog_for_combine): If recog fails, try again with the pattern
10968         modified by change_zero_ext; if that still fails, restore the
10969         pattern.
10970
10971 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
10972
10973         * combine.c (get_undo_marker): New function.
10974         (undo_to_marker): New function, largely factored out from ...
10975         (undo_all): ... this.  Adjust.
10976
10977 2015-05-12  Richard Biener  <rguenther@suse.de>
10978
10979         PR tree-optimization/66101
10980         * tree-ssa-dce.c (remove_dead_stmt): Properly mark loops for
10981         fixup if we turn a loop exit edge to a fallthru edge.
10982
10983 2015-05-12  Richard Biener  <rguenther@suse.de>
10984
10985         PR tree-optimization/37021
10986         * tree-vectorizer.h (struct _slp_tree): Add two_operators flag.
10987         (SLP_TREE_TWO_OPERATORS): New define.
10988         * tree-vect-slp.c (vect_create_new_slp_node): Initialize
10989         SLP_TREE_TWO_OPERATORS.
10990         (vect_build_slp_tree_1): Allow two mixing plus/minus in an
10991         SLP node.
10992         (vect_build_slp_tree): Adjust.
10993         (vect_analyze_slp_cost_1): Likewise.
10994         (vect_schedule_slp_instance): Vectorize mixing plus/minus by
10995         emitting two vector stmts and mixing the results.
10996
10997 2015-05-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>
10998
10999         * call.c (print_z_candidates): Remove dead code.
11000
11001 2015-05-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11002
11003         * config/s390/2827.md: Split zEC12_simple into zEC12_simple_int
11004         and zEC12_simple_fp.
11005         * config/s390/s390.c (s390_issue_rate): Set issue rate for zEC12
11006         to 1.
11007
11008 2015-05-12  Tom de Vries  <tom@codesourcery.com>
11009
11010         PR tree-optimization/66010
11011         * gimplify.c (gimplify_modify_expr): Handle new do_deref argument of
11012         ifn_va_arg.
11013         * gimplify.h (gimplify_va_arg_internal): Remove loc parameter.
11014         (gimplify_va_arg_internal): Remove loc parameter.  Assert no array-typed
11015         va_lists are passed, and remove corresponding handling.
11016         (gimplify_va_arg_expr): Only take address of ap if necessary.  Add
11017         do_deref argument to ifn_va_arg.
11018         * tree-stdarg.c (expand_ifn_va_arg_1): Handle new do_deref argument of
11019         ifn_va_arg.
11020
11021 2015-05-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11022
11023         PR target/65955
11024         * config/arm/arm.md (movcond_addsi): Check that operands[2] is a
11025         REG before taking its REGNO.
11026
11027 2015-05-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
11028
11029         * combine.c i(set_nonzero_bits_and_sign_copies): Split code updating
11030         rsp->sign_bit_copies and rsp->nonzero_bits into ...
11031         (update_rsp_from_reg_equal): This.  Also use REG_EQUAL note on src if
11032         present to get more accurate information about the number of sign bit
11033         copies and non zero bits.
11034
11035 2015-05-12  Richard Biener  <rguenther@suse.de>
11036
11037         * tree-vect-slp.c (vect_build_slp_tree_1): For BB vectorization
11038         do not allow unrolling.
11039
11040 2015-05-11  Richard Henderson  <rth@redhat.com>
11041
11042         * config/i386/i386-modes.def (CCP): New.
11043         * config/i386/i386.c (put_condition_code): Handle it.
11044         (ix86_match_ccmode, ix86_cc_modes_compatible): Likewise.
11045
11046 2015-05-11  Richard Henderson  <rth@redhat.com>
11047
11048         * target.def (md_asm_clobbers): Replace with...
11049         (md_asm_adjust): this.
11050         * tm.texi.in (TARGET_MD_ASM_CLOBBERS): Remove.
11051         (TARGET_MD_ASM_ADJUST): New.
11052         * tm.texi: Rebuild.
11053         * hooks.c (hook_tree_tree_tree_tree_3rd_identity): Remove.
11054         * hooks.h (hook_tree_tree_tree_tree_3rd_identity): Remove.
11055         * system.h (TARGET_MD_ASM_CLOBBERS): Poison.
11056
11057         * cfgexpand.c (check_operand_nalternatives): Accept vector of
11058         constraints instead of lists of outputs and inputs.
11059         (expand_asm_stmt): Save and restore input_location around the
11060         body of the function.  Move asm data into vectors instead of
11061         building tree lists.  Generate cleanup sequences as needed,
11062         rather than waiting til the end.  Use new md_asm_adjust hook.
11063
11064         * config/vxworks.c: Include vec.h before target.h.
11065         * gimple.c: Likewise.
11066         * incpath.c: Likewise.
11067         * mode-switching.c: Likewise.
11068
11069         * config/cris/cris.c (cris_md_asm_clobbers): Convert to...
11070         (cris_md_asm_adjust): this.
11071         (TARGET_MD_ASM_CLOBBERS): Remove.
11072         (TARGET_MD_ASM_ADJUST): New.
11073         * config/i386/i386.c (ix86_md_asm_clobbers): Convert to...
11074         (ix86_md_asm_adjust): this.
11075         (TARGET_MD_ASM_CLOBBERS): Remove.
11076         (TARGET_MD_ASM_ADJUST): New.
11077         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): Convert to...
11078         (mn10300_md_asm_adjust): this.
11079         (TARGET_MD_ASM_CLOBBERS): Remove.
11080         (TARGET_MD_ASM_ADJUST): New.
11081         * config/rs6000/rs6000.c (rs6000_md_asm_clobbers): Convert to...
11082         (rs6000_md_asm_adjust): this.
11083         (TARGET_MD_ASM_CLOBBERS): Remove.
11084         (TARGET_MD_ASM_ADJUST): New.
11085         * config/visium/visium.c (visium_md_asm_clobbers): Convert to...
11086         (visium_md_asm_adjust): this.
11087         (TARGET_MD_ASM_CLOBBERS): Remove.
11088         (TARGET_MD_ASM_ADJUST): New.
11089
11090 2015-05-11  Richard Henderson  <rth@redhat.com>
11091
11092         * gimplify.c (gimplify_asm_expr): Set gimple_asm_volatile_p
11093         if noutputs is zero.
11094         * cfgexpand.c (expand_asm_stmt): Use gimple_asm_volatile_p unchanged.
11095
11096         * cfgexpand.c (expand_asm_operands): Merge into...
11097         (expand_asm_stmt): ... here.
11098
11099         * cfgexpand.c (expand_asm_operands): Don't call
11100         resolve_asm_operand_names.
11101         * stmt.c (resolve_asm_operand_names): Clarify block comment.
11102
11103 2015-05-11  Jan Hubicka  <hubicka@ucw.cz>
11104
11105         * dwarf2out.c (gen_member_die): Sanity check that we access
11106         TYPE_MAIN_VARIANT for TYPE_METHODS.
11107         * function.c (use_register_for_decl): Look for TYPE_MAIN_VARIANT when
11108         checking TYPE_METHODS.
11109         * tree.c (free_lang_data_in_type): See TYPE_METHODS to error_mark_node
11110         if non-null.
11111         (build_distinct_type_copy): Clear TYPE_METHODS.
11112         (verify_type_variant): Verify that TYPE_METHODS is NULL for variants.
11113         (verify_type): Allow TYPE_METHODS to be error_mark_node.
11114         * tree.def: Update docs of TYPE_STUB_DECL and TYPE_METHODS.
11115
11116 2015-05-11  Eric Botcazou  <ebotcazou@adacore.com>
11117
11118         * emit-rtl.c (emit_pattern_after_setloc): Add missing guard.
11119         (emit_pattern_before_setloc): Likewise.
11120
11121 2015-05-11  Richard Sandiford  <richard.sandiford@arm.com>
11122
11123         * genrecog.c (match_pattern_1): Expect the pattern to be a SEQUENCE
11124         for define_peephole2s.
11125         (get_peephole2_pattern): New function.
11126         (main): Use it.  Call validate_pattern.
11127
11128 2015-05-11  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
11129
11130         * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Use
11131         LAST_CALLEE_SAVED_REG instead of hard-coded register number.
11132         (Last callee saved reg is different for AVR_TINY architecture)
11133
11134 2015-05-11  Uros Bizjak  <ubizjak@gmail.com>
11135
11136         * config/i386/i386.c (ix86_loop_unroll_adjust): Use PATTERN (insn)
11137         when looking for memory references.
11138
11139 2015-05-11  Alexander Monakov  <amonakov@ispras.ru>
11140
11141         PR target/65753
11142         * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow PIC sibcalls
11143         via function pointers.
11144
11145 2015-05-11  Alexander Monakov  <amonakov@ispras.ru>
11146
11147         * calls.c (prepare_call_address): Transform PLT call to GOT lookup and
11148         indirect call by forcing address into a pseudo with -fno-plt.
11149         * common.opt (flag_plt): New option.
11150         * doc/invoke.texi (Code Generation Options): Add -fno-plt.
11151         ([-fno-plt]): Document.
11152
11153 2015-05-11  Markus Trippelsdorf  <markus@trippelsdorf.de>
11154
11155         PR bootstrap/66105
11156         * config/rs6000/option-defaults.h: Add space between string literal
11157         and macro name.
11158
11159 2015-05-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>
11160
11161         * gcc.target/arm/pr64616.c: Test dump rather than assembly to work
11162         accross ARM targets.
11163
11164 2015-05-11  Christian Bruel  <christian.bruel@st.com>
11165
11166         * config/arm/arm-protos.h (thumb_code, thumb1_code): Remove.
11167         * config/arm/vxworks.h (thumb_code): Replace with TARGET_THUMB.
11168
11169 2015-05-11  Richard Sandiford  <richard.sandiford@arm.com>
11170
11171         PR rtl-optimization/66076
11172         * rtlanal.c (generic_subrtx_iterator <T>::add_single_to_queue):
11173         Don't grow the heap array if it is already big enough from a
11174         previous iteration.
11175
11176 2015-05-11  Christian Bruel  <christian.bruel@st.com>
11177
11178         * config/arm/arm-protos.h (arm_declare_function_name): Declare.
11179         (is_called_in_ARM_mode): Remove.
11180         * config/arm/arm.c (is_called_in_ARM_mode): Declare static bool.
11181         (arm_declare_function_name): Moved from from ARM_DECLARE_FUNCTION_NAME.
11182         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Call
11183          arm_declare_function_name.
11184
11185 2015-05-11  Christian Bruel  <christian.bruel@st.com>
11186
11187         * config/arm/arm.c (arm_option_override): Reoganized and split into :
11188         (arm_option_params_internal); New function.
11189         (arm_option_check_internal): New function.
11190         (arm_option_override_internal): New function.
11191         (thumb_code, thumb1_code): Remove.
11192         * config/arm/arm.h (TREE_TARGET_THUMB, TREE_TARGET_THUMB1): New macros.
11193         (TREE_TARGET_THUM2, TREE_TARGET_ARM): Likewise.
11194         (thumb_code, thumb1_code): Remove.
11195         * config/arm/arm.md (is_thumb, is_thumb1): Check TARGET flag.
11196
11197 2015-05-11  Uros Bizjak  <ubizjak@gmail.com>
11198
11199         * config/alpha/alpha.c (alpha_emit_set_const_1)
11200         (alpha_emit_set_long_const, alpha_extract_integer)
11201         (alpha_legitimate_constant_p, alpha_split_const_mov)
11202         (alpha_expand_block_clear, alpha_expand_zap_mask, print_operand):
11203         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
11204         (alpha_emit_set_const_1): Change "(HOST_WIDE_INT) 1" to
11205         HOST_WIDE_INT_1U.
11206         * config/alpha/predicates.md (mode_mask_operand): Do not match
11207         const_double RTX.
11208         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
11209         * config/alpha/alpha.md (abstf, *abstf_internal, UNSPEC_ZAP splitter):
11210         Change "(HOST_WIDE_INT) 1" to HOST_WIDE_INT_1U.
11211         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
11212         (*negtf_internal): Use gen_int_mode instead of immed_double_const.
11213
11214 2015-05-11  Jakub Jelinek  <jakub@redhat.com>
11215
11216         PR target/65780
11217         * config/s390/linux.h (TARGET_BINDS_LOCAL_P): Define to
11218         default_binds_local_p_2.
11219         * config/arm/linux-elf.h (TARGET_BINDS_LOCAL_P): Likewise.
11220         * config/aarch64/aarch64-linux.h (TARGET_BINDS_LOCAL_P): Likewise.
11221
11222 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
11223
11224         * tree.c (verify_type_variant): Check TYPE_VALUES_RAW and TYPE_PRECISION
11225
11226 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
11227
11228         Patch by Richard Biener
11229         * coverage.c (coverage_obj_init): Delay building of type variant
11230         until the type is finished.
11231
11232 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
11233
11234         * ipa-devirt.c (warn_types_mismatch): Do not ICE when warning about
11235         mismatch between C and C++ type; compoare correctly ARG_TYPES
11236         for non-prototypes and output correctly parameter index for METHOD_TYPE.
11237         (odr_types_equivalent_p): Fix wording of warning about attributes;
11238         it is OK to match prototype and non-prototype.
11239
11240 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
11241
11242         * tree.c (free_lang_data_in_type): Free TREE_PURPOSE of
11243         TYPE_ARG_TYPES list.
11244         (verify_type): Permit non-NULL TREE_PURPOSE in non-LTO builds.
11245         * tree.def (FUNCTION_TYPE): Document TREE_PURPOSE in TYPE_ARG_TYPES
11246
11247 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
11248
11249         * tree.c (verify_type): Verify TYPE_BINFO and TYPE_VALUES_RAW.
11250         * tree.h (is_lang_specific): Constify.
11251
11252 2015-05-09  Marc Glisse  <marc.glisse@inria.fr>
11253
11254         PR tree-optimization/64454
11255         * tree-vrp.c (extract_range_from_binary_expr_1) <TRUNC_MOD_EXPR>:
11256         Rewrite.
11257
11258 2015-05-08  Jason Merrill  <jason@redhat.com>
11259
11260         * bitmap.c, c/c-aux-info.c, cfg.c, cfghooks.c, cgraph.c,
11261         config/aarch64/aarch64.md config/alpha/vms.h, config/darwin.c,
11262         config/darwin.h, config/darwin9.h, config/elfos.h,
11263         config/i386/bsd.h, config/ia64/ia64.c, config/lm32/lm32.h,
11264         config/microblaze/microblaze.h, config/mips/mips.h,
11265         config/mmix/mmix.c, config/msp430/msp430.c, config/nios2/nios2.h,
11266         config/nvptx/nvptx.c, config/nvptx/nvptx.h, config/pa/pa.c,
11267         config/pa/pa.h, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
11268         config/rs6000/xcoff.h, config/rx/rx.h, config/s390/s390.h,
11269         config/sparc/sol2.h, config/sparc/sparc.h, config/visium/visium.h,
11270         cppbuiltin.c, defaults.h, doc/invoke.texi, dwarf2cfi.c,
11271         dwarf2out.c, final.c, gcc.c, gcov-dump.c, gcov.c, ipa-cp.c,
11272         ipa-inline.c, ipa-polymorphic-call.c, ipa-profile.c, ipa-prop.c,
11273         ira-color.c, ira.c, loop-doloop.c, loop-iv.c, mcf.c,
11274         modulo-sched.c, predict.c, profile.c, stor-layout.c, toplev.c,
11275         tree-ssa-reassoc.c, value-prof.c, wide-int-print.cc: Add space
11276         between string literal and macro name.
11277
11278 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11279
11280         * jump.c: Change argument types to rtx_insn *.
11281         * rtl.h: Adjust.
11282
11283 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11284
11285         * lra-constraints.c: Change argument type to rtx_insn *.
11286
11287 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11288
11289         * df-problems.c: Change argument type to rtx_insn *.
11290
11291 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11292
11293         * combine.c: Change argument type to rtx_insn *.
11294
11295 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11296
11297         * rtl.h: Adjust.
11298         * rtlanal.c: Change argument type to rtx_insn *.
11299
11300 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11301
11302         * sched-deps.c: Change argument types to rtx_insn *.
11303         * sched-int.h: Adjust.
11304
11305 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11306
11307         * dwarf2cfi.c: Change argument type to rtx_insn *.
11308
11309 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11310
11311         * ira.c (decrease_live_ranges_number): Changetype of local
11312         variable to rtx_insn *.
11313         * recog.c: Change argument types to rtx_insn *.
11314         * recog.h: Adjust.
11315
11316 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11317
11318         * reorg.c: Change argument types to rtx_insn *.
11319
11320 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11321
11322         * ira-color.c: Change argument types to rtx_insn *.
11323         * lra-eliminations.c: Likewise.
11324         * ira.h: Adjust.
11325
11326 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11327
11328         * gcse.c: Change argument types to rtx_insn *.
11329
11330 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11331
11332         * cse.c (cse_change_cc0_mode): Change argument type to rtx_insn *.
11333
11334 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11335
11336         * emit-rtl.c (emit_debug_insn_before): Change argument type to
11337         rtx_insn *.
11338         * rtl.h: Adjust.
11339
11340 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11341
11342         * emit-rtl.c (emit_note_before): Change argument type to rtx_insn *.
11343         * rtl.h: Adjust.
11344
11345 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11346
11347         * emit-rtl.c (emit_note_after): Change argument type to rtx_insn *.
11348         * rtl.h: Adjust.
11349
11350 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11351
11352         * emit-rtl.c (prev_cc0_setter): Change argument type to rtx_insn *.
11353         * rtl.h: Adjust.
11354
11355 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11356
11357         * rtlanal.c (noop_move_p): Change argument type to rtx_insn *.
11358         * rtl.h: Adjust.
11359
11360 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11361
11362         * rtlanal.c (add_shallow_copy_of_reg_note): Change argument type
11363         to rtx_insn *.
11364         * rtl.h: Adjust.
11365
11366 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11367
11368         * rtlanal.c (remove_reg_equal_equiv_notes): Change argument type
11369         to rtx_insn *.
11370         * rtl.h: Likewise.
11371
11372 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11373
11374         * except.c (can_nonlocal_goto): Change type of argument to
11375         rtx_insn *.
11376         * rtl.h: Adjust.
11377
11378 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11379
11380         * rtlanal.c (computed_jump_p): Cange argument type to rtx_insn *.
11381         * rtl.h: Adjust.
11382
11383 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11384
11385         * rtlanal.c (in_insn_list_p): Renamed from in_expr_list_p.
11386         * cfgrtl.c (can_delete_label_p): Adjust.
11387         * rtl.h: likewise.
11388
11389 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11390
11391         * reorg.c (stop_search_p): Change argument to rtx_insn *.
11392
11393 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11394
11395         * except.c (make_reg_eh_region_note): Change argument to
11396         rtx_insn *.
11397         (make_reg_eh_region_note_nothrow_nononlocal): Likewise.
11398         * except.h: Adjust.
11399
11400 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11401
11402         * mode-switching.c (commit_mode_sets): Change type of local
11403         variable from rtx to rtx_insn *.
11404
11405 2015-05-08  Jim Wilson  <jim.wilson@linaro.org>
11406
11407         * doc/install.texi (--enable-languages): Add missing jit and lto info.
11408         Add ^ to grep command.
11409         * doc/match-and-simplify.texi (GIMPLE API): Add missing fourth tree
11410         arg to last gimple_simplify declaration.  Add missing gimple_build
11411         declaration for built-in function case with four tree args.
11412
11413 2015-05-08  Gregor Richards  <gregor.richards@uwaterloo.ca>
11414             Szabolcs Nagy  <szabolcs.nagy@arm.com>
11415
11416         * config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Define.
11417         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Define.
11418         (GNU_USER_DYNAMIC_LINKERN32): Update.
11419
11420 2015-05-08  Richard Biener  <rguenther@suse.de>
11421
11422         PR tree-optimization/66036
11423         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
11424         Handle strided group loads.
11425         (vect_verify_datarefs_alignment): Likewise.
11426         (vect_enhance_data_refs_alignment): Likewise.
11427         (vect_analyze_group_access): Likewise.
11428         (vect_analyze_data_ref_access): Likewise.
11429         (vect_analyze_data_ref_accesses): Likewise.
11430         * tree-vect-stmts.c (vect_model_load_cost): Likewise.
11431         (vectorizable_load): Likewise.
11432
11433 2015-05-08  Segher Boessenkool  <segher@kernel.crashing.org>
11434
11435         * config/rs6000/rs6000.md: Require operand inequality in one
11436         of the peepholes.
11437
11438 2015-05-08  Richard Sandiford  <richard.sandiford@arm.com>
11439             Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
11440
11441         * config/i386/i386.md (<mode>_ldx, *<mode>_ldx): Remove mode
11442         from (set ...).
11443         * config/rx/rx.md (movdi, movdf): Likewise.
11444         Likewise for define_peephole2s.
11445
11446 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
11447
11448         * config/aarch64/arm_neon.h (vceq_s64, vceq_u64, vceqz_s64, vceqz_u64,
11449         vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64, vcgtz_s64, vcle_s64,
11450         vcle_u64, vclez_s64, vclt_s64, vclt_u64, vcltz_s64, vtst_s64,
11451         vtst_u64): Rewrite using gcc vector extensions.
11452
11453 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
11454
11455         * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>,
11456         vcond<mode><mode>, vcondu<mode><mode>): Add DImode variant.
11457
11458 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
11459
11460         * optabs.c (vector_compare_rtx): Handle RTL operands having VOIDmode.
11461
11462 2015-05-08  Szabolcs Nagy  <szabolcs.nagy@arm.com>
11463
11464         * config/glibc-stdint.h (OPTION_MUSL): Define.
11465         (INT_FAST16_TYPE, INT_FAST32_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE):
11466         Change the definition based on OPTION_MUSL for 64 bit targets.
11467         * config/linux.h (OPTION_MUSL): Redefine.
11468         * config/alpha/linux.h (OPTION_MUSL): Redefine.
11469         * config/rs6000/linux.h (OPTION_MUSL): Redefine.
11470         * config/rs6000/linux64.h (OPTION_MUSL): Redefine.
11471
11472 2015-05-08  Gregor Richards  <gregor.richards@uwaterloo.ca>
11473             Szabolcs Nagy  <szabolcs.nagy@arm.com>
11474
11475         * config.gcc (LIBC_MUSL): New tm_defines macro.
11476         * config/linux.h (OPTION_MUSL): Define.
11477         (MUSL_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER32,)
11478         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32,)
11479         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
11480         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
11481         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
11482         * config/linux.opt (mmusl): New option.
11483         * doc/invoke.texi (GNU/Linux Options): Document -mmusl.
11484         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
11485         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
11486         * configure: Regenerate.
11487
11488 2015-05-08  H.J. Lu  <hongjiu.lu@intel.com>
11489             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
11490
11491         PR target/48904
11492         * config.gcc (x86_64-*-knetbsd*-gnu): Add i386/knetbsd-gnu64.h.
11493         * config/i386/knetbsd-gnu64.h: New file.
11494
11495 2015-05-08  Marek Polacek  <polacek@redhat.com>
11496
11497         PR c/64918
11498         * doc/invoke.texi: Document -Woverride-init-side-effects.
11499
11500 2015-05-07  Marek Polacek  <polacek@redhat.com>
11501
11502         PR c/65179
11503         * doc/invoke.texi: Document -Wshift-negative-value.
11504
11505 2015-05-06  Aditya Kumar  <hiraditya@msn.com>
11506
11507         * gcov-tool.c (do_merge): Refactore to remove int ret.
11508         * ipa-icf.c (sem_item::hash_referenced_symbol_properties): Change
11509         !type == FUNC to type != FUNC.
11510         * reload.h (struct target_reload): Changee to type of
11511         x_spill_indirect_levels from bool to unsigned char.
11512
11513 2015-05-07  Richard Sandiford  <richard.sandiford@arm.com>
11514
11515         * rtl.h (always_void_p): New function.
11516         * gengenrtl.c (always_void_p): Likewise.
11517         (genmacro): Don't add a mode parameter to gen_rtx_foo if rtxes
11518         with code foo are always VOIDmode.
11519         * genemit.c (gen_exp): Update gen_rtx_foo calls accordingly.
11520         * builtins.c, caller-save.c, calls.c, cfgexpand.c, combine.c,
11521         compare-elim.c, config/aarch64/aarch64.c,
11522         config/aarch64/aarch64.md, config/alpha/alpha.c,
11523         config/alpha/alpha.md, config/arc/arc.c, config/arc/arc.md,
11524         config/arm/arm-fixed.md, config/arm/arm.c, config/arm/arm.md,
11525         config/arm/ldrdstrd.md, config/arm/thumb2.md, config/arm/vfp.md,
11526         config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
11527         config/c6x/c6x.md, config/cr16/cr16.c, config/cris/cris.c,
11528         config/cris/cris.md, config/darwin.c, config/epiphany/epiphany.c,
11529         config/epiphany/epiphany.md, config/fr30/fr30.c, config/frv/frv.c,
11530         config/frv/frv.md, config/h8300/h8300.c, config/i386/i386.c,
11531         config/i386/i386.md, config/i386/sse.md, config/ia64/ia64.c,
11532         config/ia64/vect.md, config/iq2000/iq2000.c,
11533         config/iq2000/iq2000.md, config/lm32/lm32.c, config/lm32/lm32.md,
11534         config/m32c/m32c.c, config/m32r/m32r.c, config/m68k/m68k.c,
11535         config/m68k/m68k.md, config/mcore/mcore.c, config/mcore/mcore.md,
11536         config/mep/mep.c, config/microblaze/microblaze.c,
11537         config/mips/mips.c, config/mips/mips.md, config/mmix/mmix.c,
11538         config/mn10300/mn10300.c, config/msp430/msp430.c,
11539         config/nds32/nds32-memory-manipulation.c, config/nds32/nds32.c,
11540         config/nds32/nds32.md, config/nios2/nios2.c, config/nvptx/nvptx.c,
11541         config/pa/pa.c, config/pa/pa.md, config/rl78/rl78.c,
11542         config/rs6000/altivec.md, config/rs6000/rs6000.c,
11543         config/rs6000/rs6000.md, config/rs6000/vector.md,
11544         config/rs6000/vsx.md, config/rx/rx.c, config/rx/rx.md,
11545         config/s390/s390.c, config/s390/s390.md, config/sh/sh.c,
11546         config/sh/sh.md, config/sh/sh_treg_combine.cc,
11547         config/sparc/sparc.c, config/sparc/sparc.md, config/spu/spu.c,
11548         config/spu/spu.md, config/stormy16/stormy16.c,
11549         config/tilegx/tilegx.c, config/tilegx/tilegx.md,
11550         config/tilepro/tilepro.c, config/tilepro/tilepro.md,
11551         config/v850/v850.c, config/v850/v850.md, config/vax/vax.c,
11552         config/visium/visium.c, config/xtensa/xtensa.c, cprop.c, dse.c,
11553         expr.c, gcse.c, ifcvt.c, ira.c, jump.c, lower-subreg.c,
11554         lra-constraints.c, lra-eliminations.c, lra.c, postreload.c, ree.c,
11555         reg-stack.c, reload.c, reload1.c, reorg.c, sel-sched.c,
11556         var-tracking.c: Update calls accordingly.
11557
11558 2015-05-07  Segher Boessenkool  <segher@kernel.crashing.org>
11559
11560         PR middle-end/192
11561         PR middle-end/54303
11562         * varasm.c (function_mergeable_rodata_prefix): New function.
11563         (mergeable_string_section): Use it.
11564         (mergeable_constant_section): Use it.
11565
11566 2015-05-07  Jeff Law  <law@redhat.com>
11567
11568         PR target/39726
11569         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
11570         simplifier to narrow arithmetic.
11571         * generic-match-head.c: (types_match, single_use): New functions.
11572         * gimple-match-head.c: (types_match, single_use): New functions.
11573
11574 2015-05-07  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
11575
11576         * combine.c (make_compound_operation): Remove checks for PLUS/MINUS
11577         rtx type.
11578
11579 2015-05-07  Richard Biener  <rguenther@suse.de>
11580
11581         PR tree-optimization/66002
11582         * passes.def: Schedule another pass_merge_phi after ifcombine, right
11583         before phiopt.
11584
11585 2015-05-07  Marek Polacek  <polacek@redhat.com>
11586             Martin Uecker  <uecker@eecs.berkeley.edu>
11587
11588         * doc/invoke.texi: Document -fsanitize=bounds-strict.
11589         * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS_STRICT, or it
11590         into SANITIZE_NONDEFAULT.
11591         * opts.c (common_handle_option): Handle -fsanitize=bounds-strict.
11592
11593 2015-05-07  Uros Bizjak  <ubizjak@gmail.com>
11594
11595         PR target/66015
11596         * config/alpha/alpha.c (alpha_override_options_after_change): New.
11597         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
11598         (alpha_override_options): Move align_loops, align_jumps and
11599         align_functions handling into alpha_override_options_after_change.
11600
11601 2015-05-06  Sandra Loosemore  <sandra@codesourcery.com>
11602             Chris Jones  <chrisj@nvidia.com>
11603             Joshua Conner  <jconner@nvidia.com>
11604
11605         * config/arm/unknown-elf.h (STARTFILE_SPEC): Add conditional
11606         linking of crtfastmath.o.
11607         * config/arm/linux-eabi.h (STARTFILE_SPEC): Likewise.
11608
11609 2015-05-06  Segher Boessenkool  <segher@kernel.crashing.org>
11610
11611         * config/rs6000/rs6000.md (cstore<mode>4_signed_imm): New expander.
11612         (cstore<mode>4_unsigned_imm): New expander.
11613         (cstore<mode>4): Remove empty constraint strings.  Use the new
11614         expanders.
11615
11616 2015-05-06  Yvan Roux  <yvan.roux@linaro.org>
11617
11618         PR target/64208
11619         * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Cleanup redundant
11620         alternatives.
11621
11622 2015-05-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>
11623
11624         * config/aarch64/geniterators.sh: Use standard BRE in sed.
11625
11626 2015-05-06  Alan Modra  <amodra@gmail.com>
11627
11628         PR target/66033
11629         * config/rs6000/rs6000.md (nop): Use an unspec pattern.
11630         (UNSPEC_NOP): Define.
11631         (reload_vsx_from_gpr<mode>): Add missing DONE.
11632         (reload_gpr_from_vsx<mode>): Likewise.
11633         * config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
11634         (vsx_div_v2di, vsx_udiv_v2di): Likewise.
11635
11636 2015-05-06  Christian Bruel  <christian.bruel@st.com>
11637
11638         PR target/66015
11639         * config/aarch64/aarch64.c (aarch64_override_options): Move align_loops,
11640         align_jumps, align_functions into aarch64_override_options_after_change.
11641
11642 2015-05-06  Richard Biener  <rguenther@suse.de>
11643
11644         * tree-vect-slp.c (vect_supported_load_permutation_p): Use
11645         vect_transform_slp_perm_load to check if we support a permutation
11646         for basic-block vectorization.
11647
11648 2015-05-06  Nick Clifton  <nickc@redhat.com>
11649
11650         * config/rl78/rl78.c (need_to_save): Save register 22 if it is
11651         used, even if it is not being used as a frame pointer.
11652
11653 2015-05-05  Jason Merrill  <jason@redhat.com>
11654
11655         * dwarf2out.c (gen_member_die): Don't emit anything for an
11656         anonymous class constructor.
11657
11658 2015-05-05  David Malcolm  <dmalcolm@redhat.com>
11659
11660         * auto-profile.c (afdo_find_equiv_class): Fix indentation so
11661         that it reflects the block structure.
11662         (afdo_propagate_edge): Likewise.
11663         (afdo_calculate_branch_prob): Likewise.
11664         (afdo_annotate_cfg): Likewise.
11665         * cfgcleanup.c (equal_different_set_p): Likewise.
11666         (try_crossjump_to_edge): Likewise.
11667         * cgraph.c (cgraph_node::verify_node): Likewise.
11668         * cgraphunit.c (expand_all_functions): Likewise.
11669         * config/i386/i386.c (ix86_expand_copysign): Likewise.
11670         (exact_dependency_1): Likewise.
11671         * dwarf2asm.c (dw2_output_indirect_constants): Likewise.
11672         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Likewise.
11673         * gensupport.c (process_define_subst): Likewise.
11674         * lto-wrapper.c (merge_and_complain): Likewise.
11675         * tree-if-conv.c (if_convertible_bb_p): Likewise.
11676         * tree-ssa-loop-prefetch.c (find_or_create_group): Likewise.
11677         * tree-ssa-tail-merge.c (gsi_advance_fw_nondebug_nonlocal): Likewise.
11678         * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
11679         * tree-vect-loop.c (vectorizable_reduction): Likewise.
11680         * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
11681         * tree-vect-stmts.c (vectorizable_shift): Likewise.
11682         * tree-vrp.c (vrp_finalize): Likewise.
11683         * tree.c (variably_modified_type_p): Likewise.
11684
11685 2015-05-05  Jack Howarth  <howarth.at.gcc@gmail.com>
11686
11687         * config.gcc: Use darwin9.h, darwin10.h and darwin12.h
11688         on darwin12 and later.
11689         * config/darwin12.h (LINK_GCC_C_SEQUENCE_SPEC): Add
11690         file to pass -rdynamic on darwin12 and later.
11691         * config/darwin.opt (rdynamic): Add.
11692
11693 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
11694
11695         * doc/extend.texi (C Extensions): Update menu for moved Variable
11696         Attributes and Type Attributes sections.
11697
11698 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
11699
11700         PR target/65990
11701         * config/i386/i386.c (ix86_parse_stringop_strategy_string): Error out
11702         if rep_8byte stringop strategy was specified for 32-bit target.
11703
11704 2015-05-05  Ilya Tocar  <ilya.tocar@intel.com>
11705
11706         PR target/65915
11707         * config/i386/i386.md (vector convert to float spltiter): Check for
11708         xmm16+, when splitting scalar float conversion.
11709         * config/i386/sse.md (sse2_cvtsi2sd): Support EVEX version.
11710
11711 2015-05-05  Nick Clifton  <nickc@redhat.com>
11712
11713         * config/msp430/msp430-opts.h (enum msp430_regions): New.
11714         * config/msp430/msp430.c (msp430_override_options): Complain if
11715         -mcode-region or -mdata-region is used on a non MSP430X.
11716         (msp430_section_attr): New function.  Checks lower, upper and
11717         either attributes.
11718         (msp430_attribute_table): Add lower, upper and either.
11719         (gen_prefix): New function.  Generates a prefix for a section
11720         name.
11721         (msp430_select_section): New function - handles the choice of
11722         section for an object.  Takes into account memory region
11723         attributes and options.
11724         (msp430_function_section): Use gen_prefix.
11725         (TARGET_SECTION_TYPE_FLAGS): Define.
11726         (msp430_section_type_flags): New function.
11727         (TARGET_ASM_UNIQUE_SECTION): Define.
11728         (msp430_unique_section): New function.
11729         (msp430_output_aligned_decl_common): New function.
11730         (msp430_do_not_relax_short_jumps): New function.
11731         * config/msp430/msp430.h (USE_SELECT_SECTION_FOR_FUNCTIONS):
11732         Define.
11733         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
11734         * config/msp430/msp430-protos.h
11735         (msp430_do_not_relax_short_jumps): New prototype.
11736         (msp430_output_aligned_decl_common): New prototype.
11737         * config/msp430/msp430.md (length): New attribute.
11738         (cbranchhi4_real): If msp430_do_not_relax_short_jumps is true
11739         then use a long code sequence for short jumps.
11740         * config/msp430/msp430.opt (mcode-region): New.
11741         (mdata-region): New.
11742         * doc/invoke.texi: Document new options.
11743         * doc/extend.texi: Document new attributes.
11744
11745 2015-05-05  Matthew Wahab  <matthew.wahab@arm.com>
11746
11747         * gcc/config/aarch64-protos.h (struct cpu_branch_cost): New.
11748         (tune_params): Add field branch_costs.
11749         (aarch64_branch_cost): Declare.
11750         * gcc/config/aarch64.c (generic_branch_cost): New.
11751         (generic_tunings): Set field cpu_branch_cost to generic_branch_cost.
11752         (cortexa53_tunings): Likewise.
11753         (cortexa57_tunings): Likewise.
11754         (thunderx_tunings): Likewise.
11755         (xgene1_tunings): Likewise.
11756         (aarch64_branch_cost): Define.
11757         * gcc/config/aarch64/aarch64.h (BRANCH_COST): Redefine.
11758
11759 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
11760
11761         * config/i386/i386.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1
11762         and HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1.
11763         * config/i386/i386.md: Ditto.
11764         * config/i386/winnt.c: Ditto.
11765
11766 2015-05-05  Matthew Wahab  <matthew.wahab@arm.com>
11767
11768         * doc/extend.texi (__atomic Builtins): Move implementation details
11769         to the end of the description, rewrite opening paragraphs, state
11770         difference with __sync builtins, state C11/C++11 assumptions,
11771         weaken itemized descriptions, add explanation of memory model
11772         behaviour, expand description of compare-exchange, simplify text.
11773
11774 2015-05-05  Renlin Li  <renlin.li@arm.com>
11775
11776         * config/aarch64/aarch64.md (add<mode>3): Use mov when allowed.
11777
11778 2015-05-05  Yvan Roux  <yvan.roux@linaro.org>
11779
11780         * config/aarch64/aarch64-elf-raw.h (CA53_ERR_843419_SPEC): Define.
11781         (LINK_SPEC): Include CA53_ERR_843419_SPEC.
11782         * config/aarch64/aarch64-linux.h (CA53_ERR_843419_SPEC): Define.
11783         (LINK_SPEC): Include CA53_ERR_843419_SPEC.
11784         * config/aarch64/aarch64.opt (mfix-cortex-a53-843419): New option.
11785         * configure: Regenerate.
11786         * configure.ac: Add --enable-fix-cortex-a53-843419 option.
11787         * doc/install.texi (aarch64*-*-*): Document new
11788         --enable-fix-cortex-a53-843419 option.
11789         * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-843419
11790         and -mno-fix-cortex-a53-843419 options.
11791
11792 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
11793
11794         PR target/65871
11795         * config/i386/i386.md (*bmi_andn_<mode>_ccno): New pattern.
11796
11797 2015-05-04  Jan Hubicka  <hubicka@ucw.cz>
11798
11799         * tree.c (verify_type): Check various uses of TYPE_MAXVAL;
11800         fix overactive TYPE_MIN_VALUE check and add FIXME for type
11801         compatibility problems.
11802
11803 2015-05-04  Ajit Agarwal  <ajitkum@xilinx.com>
11804
11805         * config/microblaze/microblaze.md (cbranchsi4): Added immediate
11806         constraints.
11807         (cbranchsi4_reg): New.
11808         * config/microblaze/microblaze.c
11809         (microblaze_expand_conditional_branch_reg): New.
11810         * config/microblaze/microblaze-protos.h
11811         (microblaze_expand_conditional_branch_reg): New prototype.
11812
11813 2015-05-04  Ajit Agarwal  <ajitkum@xilinx.com>
11814
11815         * config/microblaze/microblaze.md (peephole2): New.
11816
11817 2015-05-04  Jeff Law  <law@redhat.com>
11818
11819         Revert:
11820         2015-05-04  Jeff Law  <law@redhat.com>
11821
11822         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
11823         simplifier to narrow arithmetic.
11824         * generic-match-head.c: (types_match, single_use): New functions.
11825         * gimple-match-head.c: (types_match, single_use): New functions.
11826
11827 2015-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
11828
11829         PR target/65987
11830         * config/sh/sh.c (output_far_jump): Take into account crossing jumps.
11831         (split_branches): Likewise.
11832
11833 2015-05-04  Sandra Loosemore  <sandra@codesourcery.com>
11834
11835         * common.opt (fdelete-null-pointer-checks): Init to -1.
11836         * config/nios2/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define to
11837         override flag_delete_null_pointer_checks default.
11838         * doc/invoke.texi (-fdelete-null-pointer-checks): Clarify
11839         behavior re address zero.  Better document target-specific behavior.
11840         (-fisolate-errneous-paths-dereference): Mention relationship to
11841         -fdelete-null-pointer-checks.
11842
11843 2015-05-04  Jakub Jelinek  <jakub@redhat.com>
11844
11845         PR tree-optimization/65984
11846         * ubsan.c: Include tree-cfg.h.
11847         (instrument_bool_enum_load): Use stmt_ends_bb_p instead of
11848         stmt_could_throw_p test, rename can_throw variable to ends_bb.
11849
11850 2015-05-04  Uros Bizjak  <ubizjak@gmail.com>
11851
11852         * config/i386/i386.c: Change GET_CODE (...) == CONST_DOUBLE check
11853         to CONST_DOUBLE_P predicate.
11854         (standard_sse_constant_p): Return 0 for !TARGET_SSE.
11855         (ix86_legitimate_constant_p) <case CONST_WIDE_INT>: For 32bit targets,
11856         allow only operands that satisfy standard_sse_constant_p predicate.
11857         * config/i386/i386.md: Change GET_CODE (...) == CONST_DOUBLE check
11858         to CONST_DOUBLE_P predicate.
11859
11860 2015-05-04  Jeff Law  <law@redhat.com>
11861
11862         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
11863         simplifier to narrow arithmetic.
11864         * generic-match-head.c: (types_match, single_use): New functions.
11865         * gimple-match-head.c: (types_match, single_use): New functions.
11866
11867 2015-05-04  Andreas Tobler  <andreast@gcc.gnu.org>
11868
11869         * config/arm/arm.c: Restore bootstrap.
11870
11871 2015-05-04  Uros Bizjak  <ubizjak@gmail.com>
11872
11873         * config/i386/i386.h (TARGET_SUPPORTS_WIDE_INT): New define.
11874         * config/i386/i386.c (ix86_legitimate_constant_p): Handle TImode
11875         as CONST_WIDE_INT, not CONST_DOUBLE.
11876         (ix86_cannot_force_const_mem): Handle CONST_WIDE_INT.
11877         (output_pic_addr_const): Do not handle VOIDmode CONST_DOUBLEs.
11878         (ix86_find_base_term): Do not check for CONST_DOUBLE.
11879         (ix86_print_operand): Do not handle non-FPmode CONST_DOUBLEs.
11880         (ix86_build_signbit_mask): Rewrite using wide ints.
11881         (ix86_split_to_parts) [HOST_BITS_PER_WIDE_INT < 64]: Remove.
11882         (ix86_rtx_costs): Handle CONST_WIDE_INT.
11883         (find_constant): Ditto.
11884         * config/i386/i386.md (bts, btr, btc peepholes): Rewrite
11885         using gen_int_mode.
11886         * config/i386/predicates.md (x86_64_immediate_operand)
11887         <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
11888         (x86_64_zext_immediate_operand): Remove CONST_DOUBLE handling.
11889         <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
11890         (const0_operand): Also match const_wide_int.
11891         (constm1_operand): Ditto.
11892         (const1_operand): Ditto.
11893
11894 2015-05-04  Richard Biener  <rguenther@suse.de>
11895
11896         PR tree-optimization/65965
11897         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Split
11898         store groups at gaps.
11899
11900 2015-05-04  Richard Biener  <rguenther@suse.de>
11901
11902         PR tree-optimization/65935
11903         * tree-vect-slp.c (vect_build_slp_tree): If we swapped operands
11904         then make sure to apply that swapping to the IL.
11905
11906 2015-05-04  Jakub Jelinek  <jakub@redhat.com>
11907
11908         * Makefile.in (PATCHLEVEL_c): New variable.
11909         (DATESTAMP_s, REVISION_s): If PATCHLEVEL_c is not 0,
11910         expand the same way as if DEVPHASE_c was non-empty.
11911
11912 2015-05-04  Kai Tietz  <ktietz@redhat.com>
11913
11914         PR target/65559
11915         * lto-wrapper.c (run_gcc): Open filename
11916         in binary-mode.
11917
11918 2015-05-03  Sandra Loosemore  <sandra@codesourcery.com>
11919
11920         * doc/extend.texi (Variable Attributes, Type Attributes):  Move
11921         sections up in file, to immediately after the Function Attributes
11922         section.
11923
11924 2015-05-02  Jan Hubicka  <hubicka@ucw.cz>
11925
11926         * tree.c (verify_type): Check various uses of TYPE_MINVAL.
11927
11928 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11929
11930         * tree-outof-ssa.c (emit_partition_copy): Return rtx_insn *.
11931         (insert_partition_copy_on_edge): Adjust.
11932         (insert_rtx_to_part_on_edge): Likewise.
11933         (insert_part_to_rtx_on_edge): Likewise.
11934
11935 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11936
11937         * function.c (set_return_jump_label): Change type of argument to
11938         rtx_insn *.
11939         * function.h (set_return_jump_label): Adjust.
11940
11941 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11942
11943         * reload.h (struct reg_equivs_t): Change type of init to
11944         rtx_insn *.
11945         * ira.c (fix_reg_equiv_init): Adjust.
11946         * reload1.c (eliminate_regs_1): Likewise.
11947         (init_eliminable_invariants): Likewise.
11948
11949 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11950
11951         * cselib.c (fp_setter_insn): Take a rtx_insn *.
11952         * cselib.h (fp_setter_insn): Adjust.
11953
11954 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11955
11956         * recog.c (struct validate_replace_src_data): Change type of
11957         insn field to rtx_insn *.
11958         (validate_replace_src_group): Change type of argument to rtx_insn *.
11959         * recog.h (validate_replace_src_group): Adjust.
11960
11961 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11962
11963         * haifa-sched.c: Change the type of some variables to rtx_insn *.
11964         * sched-deps.c: Likewise.
11965         * sched-int.h: Likewise.
11966         * sched-rgn.c: Likewise.
11967         * sel-sched.c: Likewise.
11968
11969 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11970
11971         to rtx_insn *.
11972         * config/i386/i386.c: Change the type of some arguments to
11973         rtx_insn *.
11974         * config/arm/arm.c: Likewise.
11975
11976 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11977
11978         * lra-constraints.c: Change type of some arguments to rtx_insn *.
11979
11980 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11981
11982         * regcprop.c (kill_autoinc_value): Change type of argument to
11983         rtx_insn *.
11984
11985 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11986
11987         * genrecog.c (print_subroutine): Adjust.
11988         * recog.c (get_bool_attr_mask_uncached): Likewise.
11989         * recog.h (struct recog_data_d): Change the type of insn to
11990         rtx_insn *.
11991
11992 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11993
11994         * dwarf2cfi.c (add_cfi_insn): Change type to rtx_insn *.
11995
11996 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11997
11998         * df-problems.c (df_set_note): Change type of argument to
11999         rtx_insn *.
12000
12001 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12002
12003         * builtins.c (expand_builtin_trap): Change type of local
12004         variable to rtx_insn *.
12005         (add_sched_insns_for_speculation): Likewise.
12006         (ix86_emit_save_regs): Likewise.
12007         (get_scratch_register_on_entry): Likewise.
12008         (ix86_emit_restore_reg_using_pop): Likewise.
12009         (ix86_emit_leave): Likewise.
12010         (ix86_emit_restore_regs_using_mov): Likewise.
12011         (ix86_expand_epilogue): Likewise.
12012         Likewise.
12013         (rl78_alloc_physical_registers_umul): Likewise.
12014         * cselib.c (discard_useless_locs): Likewise.
12015         (cselib_invalidate_regno): Likewise.
12016         (cselib_invalidate_mem): Likewise.
12017         * function.c (expand_function_start): Likewise.
12018         (emit_use_return_register_into_block): Likewise.
12019         * gcse.c: Likewise.
12020         * haifa-sched.c (ok_for_early_queue_removal): Likewise.
12021         * ifcvt.c (noce_get_alt_condition): Likewise.
12022         * loop-doloop.c (doloop_condition_get): Likewise.
12023         * lra-constraints.c (inherit_in_ebb): Likewise.
12024         * modulo-sched.c (sms_schedule_by_order): Likewise.
12025         * recog.c (next_insn_tests_no_inequality): Likewise.
12026         * reorg.c (emit_delay_sequence): Likewise.
12027         (update_reg_dead_notes): Likewise.
12028         (fix_reg_dead_note): Likewise.
12029         (fill_slots_from_thread): Likewise.
12030         (delete_computation): Likewise.
12031
12032 2015-05-01  Sandra Loosemore  <sandra@codesourcery.com>
12033
12034         * doc/extend.texi (Variable Attributes): Add menu and proper
12035         @nodes to subsections.  Move Microsoft Windows attributes to
12036         their own subsection.
12037         (Type Attributes): Reorganize introduction to remove duplicate
12038         list of attributes.  Add menu and proper @nodes to subsections.
12039         Alphabetize the main table of common attributes.
12040
12041 2015-05-01  Rasmus Villemoes  <rv@rasmusvillemoes.dk>
12042
12043         * match.pd: New simplification patterns.
12044         (x + (x & 1))  -> ((x + 1) & ~1)
12045         (x & ~(x & y)) -> ((x & ~y))
12046         (x | ~(x | y)) -> ((x | ~y))
12047
12048 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12049
12050         * target.def (attribute_table): Mention that struct attribute_spec
12051         is defined in tree-core.h rather than tree.h
12052         * doc/tm.texi: Regenerate.
12053
12054 2015-05-01  Richard Sandiford  <richard.sandiford@arm.com>
12055
12056         * genrecog.c (test): Rename to rtx_test.  Update rest of file
12057         accordingly.
12058
12059 2015-05-01  Andreas Schwab  <schwab@linux-m68k.org>
12060
12061         PR translation/65959
12062         * params.h (DEFPARAM): Rename msgid to nocmsgid.
12063
12064 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
12065
12066         * gcc/config/aarch64/aarch64-protos.h (tune_params):
12067         Add min_div_recip_mul_sf and min_div_recip_mul_df fields.
12068         * gcc/config/aarch64/aarch64.c (aarch64_min_divisions_for_recip_mul):
12069         Return value depending on target.
12070         (generic_tunings): Initialize new target settings.
12071         (cortexa53_tunings): Likewise.
12072         (cortexa57_tunings): Likewise.
12073         (thunderx_tunings): Likewise.
12074         (xgene1_tunings): Likewise.
12075
12076 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
12077
12078         * gcc/config/arm/aarch-cost-tables.h (cortexa53_extra_costs):
12079         Make Cortex-A53 shift costs more accurate.
12080
12081 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12082
12083         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle FLOAT and
12084         UNSIGNED_FLOAT.
12085
12086 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
12087
12088         * gcc/config/aarch64/aarch64.c (aarch64_rtx_costs):
12089         Calculate cost of op0 and op1 in PLUS and MINUS cases.
12090
12091 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12092
12093         * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
12094         Add cost of op0 in the compare-with-fpzero case.
12095
12096 2015-04-30  David Malcolm  <dmalcolm@redhat.com>
12097
12098         * builtins.c (fold_builtin_1): Remove spurious second
12099         semicolon.
12100         * cgraph.h (symtab_node::get_availability): Likewise.
12101         * opts.c (common_handle_option): Remove spurious second semicolon.
12102         * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
12103         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
12104
12105 2015-04-30  Caroline Tice  <cmtice@google.com>
12106
12107         PR gcov-profile/65929
12108         * config/elfos.h (ASM_DECLARE_COLD_FUNCTION_NAME): New macro definition.
12109         (ASM_DECLARE_COLD_FUNCTION_SIZE): New macro definition.
12110         * doc/tm.texi.in (ASM_DECLARE_COLD_FUNCTION_NAME): Document new macro.
12111         (ASM_DECLARE_COLD_FUNCTION_SIZE): Document new macro.
12112         * doc/tm.texi: Regenerate.
12113         * final.c (final_scan_insn):  Use ASM_DECLARE_COLD_FUNCTION_NAME
12114         instead of ASM_DECLARE_FUNCTION_NAME for cold partition name.
12115         * varasm.c (assemble_end_function):  Use ASM_DECLARE_COLD_FUNCTION_SIZE
12116         instead of ASM_DECLARE_FUNCTION_SIZE for cold partition size.
12117
12118 2015-04-30  Marek Polacek  <polacek@redhat.com>
12119
12120         * varasm.c (handle_cache_entry): Fix logic.
12121
12122 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12123
12124         * config/aarch64/aarch64.md (*extr<mode>5_insn_alt): New pattern.
12125         (*extrsi5_insn_uxtw_alt): Likewise.
12126         * config/aarch64/aarch64.c (aarch64_extr_rtx_p): New function.
12127         (aarch64_rtx_costs, IOR case): Use above to properly cost extr
12128         operations.
12129
12130 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12131
12132         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle pattern for
12133         fabd in ABS case.
12134
12135 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12136
12137         * config/aarch64/aarch64.md
12138         (*eor_one_cmpl_<SHIFT:optab><mode>3_alt): New pattern.
12139         (*eor_one_cmpl_<SHIFT:optab>sidi3_alt_ze): Likewise.
12140         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle MVN-shift
12141         appropriately.  Handle alternative EON form.
12142
12143 2015-04-30  Renlin Li  <renlin.li@arm.com>
12144
12145         * config/aarch64/aarch64-simd.md (vec_shr): Defined as an unspec.
12146         * config/aarch64/iterators.md (unspec): Add UNSPEC_VEC_SHR.
12147
12148 2015-04-30  Jan Hubicka  <hubicka@ucw.cz>
12149
12150         PR ipa/65873
12151         * ipa-inline.c (can_inline_edge_p): It is safe to inline across
12152         -fstrict-aliasing boundaries.
12153
12154 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12155
12156         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Handle MNEG
12157         and [SU]MNEGL patterns.
12158
12159 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12160
12161         * config/aarch64/aarch64.c (aarch64_shift_p): New function.
12162         (aarch64_rtx_mult_cost): Update comment to reflect that it also handles
12163         combined arithmetic-shift ops.  Properly handle all shift and extend
12164         operations that can occur in combination with PLUS/MINUS.
12165         Rename maybe_fma to compound_p.
12166         (aarch64_rtx_costs): Use aarch64_shift_p when costing compound
12167         arithmetic and shift operations.
12168
12169 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12170
12171         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use extend_arith
12172         rather than arith_shift cost when costing ADD/MINUS of an
12173         extended value.
12174
12175 2015-04-30  Jan Hubicka  <hubicka@ucw.cz>
12176
12177         PR lto/65948
12178         * ipa-devirt.c (odr_types_equivalent_p): NULLPTR_TYPE is equivalent
12179         to itself.
12180
12181 2015-04-30  Richard Sandiford  <richard.sandiford@arm.com>
12182
12183         * genrecog.c (simplify_tests): Check that CONST_INT and XWINT tests
12184         are for the same position.
12185
12186 2015-04-29  Aditya Kumar  <hiraditya@hotmail.com>
12187
12188         * tree-vectorizer.c (set_uid_loop_bbs): New.  Factored out of
12189         vectorize_loops.
12190         (vectorize_loops): Use it.
12191
12192 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
12193
12194         * ipa-devirt.c (odr_subtypes_equivalent_p): Compare TYPE_NAME only
12195         for aggregate types.
12196         (register_odr_type): Be ready for MAIN_VARIANT of ODR type
12197         type to be non_ODR.
12198         * tree.c (need_assembler_name_p): Compute mangled name for
12199         non-fundamental types and integer types.
12200
12201 2015-04-29  Mikhail Maltsev  <maltsevm@gmail.com>
12202
12203         * dojump.c (do_compare_rtx_and_jump): Use std::swap instead of
12204         manual swaps.
12205         * expr.c (expand_expr_real_2): Likewise.
12206
12207 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
12208
12209         * tree.c (build_common_builtin_nodes): Do not build
12210         __builtin_alloca_with_align as equivalent of library alloca.
12211
12212 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
12213
12214         * dwarf2out.c (gen_type_die_with_usage): Call verify_type.
12215         * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Do not produce
12216         bugus variants.
12217         * tree.c: Include print-tree.h and ipa-utils.h
12218         (free_lang_data_in_type): Clear TYPE_VFIELD leaked by C FE.
12219         (free_lang_data_in_cgraph): Call verify_type.
12220         (verify_type_variant): New function.
12221         (verify_type): New function.
12222         * tree.h (verify_type): Declare.
12223
12224 2015-04-29  Steve Ellcey  <sellcey@imgtec.com>
12225
12226         * config/mips/mips-cpus.def: (mips4): Change default processor
12227         from PROCESSOR_R8000 to PROCESSOR_R10000.
12228
12229 2015-04-29  Petar Jovanovic  <petar.jovanovic@rt-rk.com>
12230
12231         * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Fix the macro to use
12232         la/jalr instead of jal.
12233
12234 2015-04-29  Uros Bizjak  <ubizjak@gmail.com>
12235
12236         PR target/65871
12237         * config/i386/i386.md (*bmi_bextr_<mode>_ccz): New pattern.
12238         (*bmi2_bzhi_<mode>3_1_ccz): Ditto.
12239         (setcc+movzbl peephole2): Check also clobbered reg.
12240         (setcc+andl peephole2): Ditto.
12241
12242 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
12243
12244         PR libgomp/65099
12245         * config/nvptx/mkoffload.c (target_ilp32): New variable.
12246         (main): Set it depending on "-foffload-abi=[...]".
12247         (compile_native, main): Use it to pass "-m32" or "-m64" to the
12248         compiler.
12249
12250 2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>
12251
12252         PR target/65770
12253         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>,
12254         vec_store_lanesci_lane<mode>, vec_store_lanesxi_lane<mode>):
12255         Flip lane index back at assembly time for bigendian.
12256
12257 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
12258
12259         * tree.h (OMP_STANDALONE_CLAUSES): New macro.
12260         * gimplify.c (gimplify_omp_workshare): Use it.
12261
12262 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
12263
12264         * Makefile.in (build/genrecog.o): Depend on inchash.h.
12265         (build/genrecog$(build_exeext): Depend on build/hash-table.o and
12266         build/inchash.o
12267         * genrecog.c: Rewrite most of the code except for the third page.
12268
12269 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
12270
12271         * inchash.h, inchash.c: Include bconfig.h for build objects.
12272         * Makefile.in (build/inchash.o): New rule.
12273
12274 2015-04-29  Yvan Roux  <yvan.roux@linaro.org>
12275
12276         PR target/65924
12277         * config/arm/thumb2.md (*thumb2_addsi3_compare0_scratch): Fix operand
12278         number in type attribute expression.
12279
12280 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
12281
12282         * loop-iv.c (canon_condition): Generalize to all types of integer
12283         constant.
12284
12285 2015-04-29  Bernhard Reuther-Fischer  <aldot@gcc.gnu.org>
12286
12287         * gimple-walk.c: Prune duplicate or unneeded includes.
12288         (walk_gimple_asm): Only call parse_input_constraint or
12289         parse_output_constraint if their findings are used.
12290         Honour parse_input_constraint and parse_output_constraint
12291         result.
12292
12293 2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>
12294
12295         * config/arm/neon.md (vec_shl<mode>, vec_shr<mode>): Remove.
12296
12297 2015-04-29  Tom de Vries  <tom@codesourcery.com>
12298
12299         PR tree-optimization/65893
12300         * passes.def (pass_all_optimizations): Move pass_stdarg to after
12301         pass_dce.
12302
12303 2015-04-29  Richard Biener  <rguenther@suse.de>
12304
12305         * tree-vect-data-refs.c (vect_analyze_group_access): Properly
12306         compute GROUP_SIZE for basic-block SLP.
12307         * tree-vect-slp.c (vect_get_place_in_interleaving_chain): Properly
12308         take into account gaps.
12309         (vect_get_mask_element): Properly reject references to previous
12310         vectors.
12311         (vect_transform_slp_perm_load): Likewise.
12312
12313 2015-04-29  Christian Bruel  <christian.bruel@st.com>
12314
12315         PR target/64835
12316         * config/i386/i386.c (ix86_default_align): New function.
12317         (ix86_override_options_after_change): Call ix86_default_align.
12318         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New hook.
12319         (ix86_override_options_after_change): New function.
12320
12321 2015-04-28  Jeff Law  <law@redhat.com>
12322
12323         * tree-ssa-dom.c (record_equality); Fix comment typos.
12324
12325 2015-04-28  Tom de Vries  <tom@codesourcery.com>
12326
12327         PR tree-optimization/65887
12328         * gimplify.c (gimplify_modify_expr): Remove ifn_va_arg ap fixup.
12329
12330 2015-04-28  Sandra Loosemore  <sandra@codesourcery.com>
12331
12332         * doc/extend.texi (Declaring Attributes of Functions): Split into
12333         subsections by target.  Alphabetize the table of common attributes.
12334         Rewrite some of the introductory text to reflect the new structure.
12335         Update some cross-references to point to the new subsections.
12336         (Attribute Syntax): Put paragraph about "__" naming here.  Remove
12337         duplicate copies in the discussion of function, label, and type
12338         attributes.
12339
12340 2015-04-28  Dominique d'Humieres  <dominiq@lps.ens.fr>
12341
12342         PR bootstrap/65910
12343         * varasm.c (assemble_end_function): Guard ASM_DECLARE_FUNCTION_SIZE.
12344
12345 2015-04-28  Jason Merrill  <jason@redhat.com>
12346
12347         PR c++/65734
12348         * stor-layout.c (layout_type): Layout the TYPE_MAIN_VARIANT.
12349         (finalize_type_size): Respect TYPE_USER_ALIGN.
12350         (layout_type) [ARRAY_TYPE]: Likewise.
12351
12352 2015-04-28  Yvan Roux  <yvan.roux@linaro.org>
12353
12354         * config/arm/arm.md (*arm_movt): Fix type attribute.
12355         (*cmpsi_shiftsi): Likewise.
12356         (*cmpsi_shiftsi_swp): Likewise.
12357         (*movsicc_insn): Likewise.
12358         (*cond_move): Likewise.
12359         (*if_plus_move): Likewise.
12360         (*if_move_plus): Likewise.
12361         (*if_arith_move): Likewise.
12362         (*if_move_arith): Likewise.
12363         (*if_shift_move): Likewise.
12364         (*if_move_shift): Likewise.
12365         (*arm_movtas_ze): Likewise.
12366         * config/arm/thumb2.md (*thumb2_movsicc_insn): Fix alternative
12367         redundancy and type attribute.
12368         (*thumb2_movsi_insn): Fix type attribute.
12369         (*thumb2_addsi_short): Likewise.
12370         (thumb2_addsi3_compare0): Likewise.
12371         (*thumb2_addsi3_compare0_scratch): Merge alternatives and fix
12372         attributes accordingly.
12373
12374 2015-04-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
12375
12376         PR other/65911
12377         * function.c (pad_to_arg_alignment): Add parentheses.
12378
12379 2015-04-28  Uros Bizjak  <ubizjak@gmail.com>
12380
12381         * config/frv/frv.h (CRT_GET_RFIB_DATA): Move definition to
12382         libgcc/config/frv/elf-lib.h.
12383
12384 2015-04-28  Tom de Vries  <tom@codesourcery.com>
12385
12386         * tree-call-cdce.c: Fix example in header comment.
12387
12388 2015-04-28  Richard Biener  <rguenther@suse.de>
12389
12390         PR tree-optimization/62283
12391         * tree-vect-slp.c (vect_build_slp_tree): When the SLP build
12392         fails fatally and we are vectorizing a basic-block simply
12393         cause the child to be constructed piecewise.
12394         (vect_analyze_slp_cost_1): Adjust.
12395         (vect_detect_hybrid_slp_stmts): Likewise.
12396         (vect_bb_slp_scalar_cost): Likewise.
12397         (vect_get_constant_vectors): For piecewise constructed
12398         constants place them after the last def.
12399         (vect_get_slp_defs): Adjust.
12400         * tree-vect-stmts.c (vect_is_simple_use): Detect in-BB
12401         externals for basic-block vectorization.
12402
12403 2015-04-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
12404
12405         PR target/63503
12406         * config.gcc: Add cortex-a57-fma-steering.o to extra_objs for
12407         aarch64-*-*.
12408         * config/aarch64/t-aarch64: Add a rule for cortex-a57-fma-steering.o.
12409         * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Define.
12410         (AARCH64_TUNE_FMA_STEERING): Likewise.
12411         * config/aarch64/aarch64-cores.def: Set
12412         AARCH64_FL_USE_FMA_STEERING_PASS for cores with dynamic steering of
12413         FMUL/FMADD instructions.
12414         * config/aarch64/aarch64.c (aarch64_register_fma_steering): Declare.
12415         (aarch64_override_options): Include cortex-a57-fma-steering.h.  Call
12416         aarch64_register_fma_steering () if AARCH64_TUNE_FMA_STEERING is true.
12417         * config/aarch64/cortex-a57-fma-steering.h: New file.
12418         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
12419
12420 2015-04-28  Richard Sandiford  <richard.sandiford@arm.com>
12421
12422         * gensupport.c (std_preds): Add missing codes to address_operand entry.
12423
12424 2015-04-28  Richard Biener  <rguenther@suse.de>
12425
12426         PR tree-optimization/65851
12427         * tree-ssa-ccp.c (set_lattice_value): Perform a meet when
12428         changing CONSTANT to CONSTANT non-copy.  Get new_val by reference.
12429         (ccp_lattice_meet): Remove stray argument.  Use operand_equal_p
12430         rather than simple_cst_equal as the latter doesn't handle COMPLEX_CST.
12431         (ccp_visit_phi_node): Adjust.
12432         (evaluate_stmt): For simplifications to SSA names return its
12433         lattice value if that isn't VARYING.  Return immediately when
12434         simplified to a constant.
12435         (visit_assignment): Adjust.
12436         (ccp_visit_stmt): Likewise.
12437
12438 2015-04-28  Tom de Vries  <tom@codesourcery.com>
12439
12440         PR tree-optimization/65818
12441         * tree-stdarg.c (expand_ifn_va_arg_1): Ensure that side-effects are
12442         evaluated.
12443
12444 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12445
12446         * calls.c (save_fixed_argument_area): Don't check
12447         ARGS_GROW_DOWNWARD with the preprocessor.
12448         (restore_fixed_argument_area): Likewise.
12449         (mem_overlaps_already_clobbered_arg_p): Likewise.
12450         (check_sibcall_argument_overlap): Likewise.
12451         (expand_call): Likewise.
12452         (emit_library_call_value_1): Likewise.
12453         (store_one_arg): Likewise.
12454         * function.c (assign_parms): Likewise.
12455         (locate_and_pad_parm): Likewise.
12456         (pad_to_arg_alignment): Likewise.
12457         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
12458
12459 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12460
12461         * config/pa/pa.h (ARGS_GROW_DOWNWARD): Define to 1.
12462         * defaults.h (ARGS_GROW_DOWNWARD): Define it to 0 by default.
12463         * calls.c (save_fixed_argument_area): Don't chekc if
12464         ARGS_GROW_DOWNWARD is defined.
12465         (restore_fixed_argument_area): Likewise.
12466         (mem_overlaps_already_clobbered_arg_p): Likewise.
12467         (check_sibcall_argument_overlap): Likewise.
12468         (expand_call): Likewise.
12469         (emit_library_call_value_1): Likewise.
12470         (store_one_arg): Likewise.
12471         * function.c (assign_parms): Likewise.
12472         (locate_and_pad_parm): Likewise.
12473         (pad_to_arg_alignment): Likewise.
12474         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
12475
12476 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12477
12478         * defaults.h (gen_epilogue): New function.
12479         * alias.c (init_alias_analysis): don't check if HAVE_epilogue is
12480         defined.
12481         * cfgrtl.c (cfg_layout_finalize): Likewise.
12482         * df-scan.c: Likewise.
12483         * function.c (thread_prologue_and_epilogue_insns): Likewise.
12484         (reposition_prologue_and_epilogue_notes): Likewise.
12485         * reorg.c (find_end_label): Likewise.
12486         * toplev.c: Likewise.
12487
12488 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12489
12490         * bb-reorder.c (HAVE_return): Don't check if its undefined.
12491         * defaults.h (gen_simple_return): New function.
12492         (gen_simple_return): Likewise.
12493         (HAVE_return): Add default definition to false.
12494         (HAVE_simple_return): Likewise.
12495         * cfgrtl.c (force_nonfallthru_and_redirect): Remove checks if
12496         HAVE_return and HAVE_simple_return are defined.
12497         * function.c (gen_return_pattern): Likewise.
12498         (convert_jumps_to_returns): Likewise.
12499         (thread_prologue_and_epilogue_insns): Likewise.
12500         * reorg.c (find_end_label): Likewise.
12501         (dbr_schedule): Likewise.
12502         * shrink-wrap.c: Likewise.
12503         * shrink-wrap.h: Likewise.
12504
12505 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12506
12507         * defaults.h (EPILOGUE_USES): Add default definition of false.
12508         * df-scan.c (EPILOGUE_USES): Remove check if its undefined.
12509         * resource.c (init_resource_info): Likewise.
12510
12511 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12512
12513         * defaults.h (PCC_BITFIELD_TYPE_MATTERS): Add default definition
12514         to false.
12515         * dwarf2out.c (field_byte_offset): REmove check if
12516         PCC_BITFIELD_TYPE_MATTERS is defined.
12517         * stor-layout.c (layout_decl): Likewise.
12518         (update_alignment_for_field): Likewise.
12519         (place_field): Likewise.
12520
12521 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12522
12523         * defaults.h (HARD_REGNO_RENAME_OK): Add default definition to
12524         true.
12525         * regrename.c (check_new_reg_p): Remove check if
12526         HARD_REGNO_RENAME_OK is defined.
12527         * sel-sched.c (sel_hard_regno_rename_ok): Likewise.
12528
12529 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12530
12531         * calls.c (prepare_call_address): Remove ifdef NO_FUNCTION_CSE.
12532         * cse.c (fold_rtx): Likewise.
12533         * config/alpha/alpha.h (NO_FUNCTION_CSE): Define to 1.
12534         * config/arc/arc.h (NO_FUNCTION_CSE): Likewise.
12535         * config/avr/avr.h (NO_FUNCTION_CSE): Likewise.
12536         * config/cr16/cr16.h (NO_FUNCTION_CSE): Likewise.
12537         * config/epiphany/epiphany.h (NO_FUNCTION_CSE): Likewise.
12538         * config/frv/frv.h (NO_FUNCTION_CSE): Likewise.
12539         * config/h8300/h8300.h (NO_FUNCTION_CSE): Likewise.
12540         * config/i386/i386.h (NO_FUNCTION_CSE): Likewise.
12541         * config/ia64/ia64.h (NO_FUNCTION_CSE): Likewise.
12542         * config/lm32/lm32.h (enum reg_class) (NO_FUNCTION_CSE):
12543         * Likewise.
12544         * config/m32r/m32r.h (NO_FUNCTION_CSE): Likewise.
12545         * config/mep/mep.h (NO_FUNCTION_CSE): Likewise.
12546         * config/mn10300/mn10300.h (NO_FUNCTION_CSE): Likewise.
12547         * config/nds32/nds32.h (NO_FUNCTION_CSE): Likewise.
12548         * config/nios2/nios2.h (NO_FUNCTION_CSE): Likewise.
12549         * config/pa/pa.h (NO_FUNCTION_CSE): Likewise.
12550         * config/rs6000/rs6000.h (NO_FUNCTION_CSE): Likewise.
12551         * config/s390/s390.h (NO_FUNCTION_CSE): Likewise.
12552         * config/sparc/sparc.h (NO_FUNCTION_CSE): Likewise.
12553         * config/spu/spu.h (NO_FUNCTION_CSE): Likewise.
12554         * config/stormy16/stormy16.h (NO_FUNCTION_CSE): Likewise.
12555         * config/v850/v850.h (NO_FUNCTION_CSE): Likewise.
12556         * defaults.h (NO_FUNCTION_CSE): Provide default definition to 0.
12557         * doc/tm.texi: Regenerate.
12558         * doc/tm.texi.in: Document NO_FUNCTION_CSE is always defined to
12559         either true or false.
12560
12561 2015-04-27  Jeff Law  <law@redhat.com>
12562
12563         PR tree-optimization/65217
12564         * tree-ssa-dom.c (record_equality): Given two SSA_NAMEs, if just one
12565         of them has a single use, make sure it is the LHS of the implied
12566         copy.
12567
12568 2015-04-28  Alan Modra  <amodra@gmail.com>
12569
12570         PR target/65810
12571         * config/rs6000/rs6000.c (POWERPC64_TOC_POINTER_ALIGNMENT): Define.
12572         (offsettable_ok_by_alignment): Use minimum of decl and toc
12573         pointer alignment.  Replace dead code with assertion.
12574         (use_toc_relative_ref): Add mode arg.  Return false in -mcmodel=medium
12575         case if size exceeds toc pointer alignment.
12576         (rs6000_legitimize_reload_address): Update use_toc_relative_ref call.
12577         (rs6000_emit_move): Likewise.
12578         * configure.ac: Add linker toc pointer alignment check.
12579         * configure: Regenerate.
12580         * config.in: Regenerate.
12581
12582 2015-04-27  Yoshinori Sato <ysato@users.sourceforge.jp>
12583
12584         * config.gcc: Add h8300-*-linux.
12585         * config/h8300/linux.h: New.
12586         * config/h8300/t-linux: New.
12587         * config/h8300/h8300.c (h8300_option_override): Normal mode
12588         is not supported for h8300-*-linux.
12589         (h8300_file_start): Target priority change.
12590         (get_shift_alg): Likewise.
12591         (h8300_shift_need_scratch_p): Likewise.
12592         * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Likewise.
12593         * config/h8300/h8300.md (define_peephole2): Remove duplicate condition.
12594
12595 2015-04-27  Caroline Tice  <cmtice@google.com>
12596
12597         * final.c (final_scan_insn):  Output cold_function_name as function
12598         type.
12599         * varasm.c (cold_function_name):  Make global.
12600         (assemble_start_function):  Re-set cold_function_name.
12601         (assemble_end_function): Output cold partition size.
12602         * varasm.h (cold_function_name):  Declare global.
12603
12604 2015-04-27  Ilya Tocar  <ilya.tocar@intel.com>
12605
12606         * config/i386/i386.h (EXT_REX_SSE_REG_P): New.
12607         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed): Use "v"
12608         constraint.
12609         (*movxi_internal_avx512f): Ditto.
12610         (define_split): Check for xmm16+, when splitting scalar float_extend.
12611         (*extendsfdf2_mixed): Use "v" constraint.
12612         (define_split): Check for xmm16+, when splitting scalar float_truncate.
12613         (*truncdfsf_fast_sse): Use "v" constraint.
12614         (fix_trunc<MODEF:mode><SWI48:mode>_sse): Ditto.
12615         (*float<SWI48:mode><MODEF:mode>2_sse): Ditto.
12616         (define_peephole2): Check for xmm16+, when converting scalar
12617         float_truncate.
12618         (define_peephole2): Check for xmm16+, when converting scalar
12619         float_extend.
12620         (*fop_<mode>_comm_mixed): Use "v" constraint.
12621         (*fop_<mode>_comm_sse): Ditto.
12622         (*fop_<mode>_1_mixed): Ditto.
12623         (*sqrt<mode>2_sse): Ditto.
12624         (*ieee_s<ieee_maxmin><mode>3): Ditto.
12625
12626 2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12627
12628         * combine.c (simplify_if_then_else): Use std::swap instead
12629         of manually swapping.
12630         (known_cond): Likewise.
12631         (simplify_comparison): Likewise.
12632
12633 2015-04-27  Peter Bergner  <bergner@vnet.ibm.com>
12634
12635         PR target/64579
12636         * config/rs6000/htm.md: Remove all define_expands.
12637         (UNSPECV_HTM_TABORTDC, UNSPECV_HTM_TABORTDCI, UNSPECV_HTM_TABORTWC,
12638         UNSPECV_HTM_TABORTWCI): Remove.
12639         (UNSPECV_HTM_TABORTXC, UNSPECV_HTM_TABORTXCI, UNSPECV_HTM_TTEST): New.
12640         (tabort_internal, tbegin_internal, tcheck_internal, tend_internal,
12641         trechkpt_internal, treclaim_internal, tsr_internal): Rename from this...
12642         (tabort, tbegin, tcheck, tend, trechkpt, treclaim, tsr): ...to this.
12643         (tabortdc_internal, tabortdci_internal, tabortwc_internal,
12644         tabortwci_internal): Remove define_insns.
12645         (tabort<wd>c, tabort<wd>ci): New define_insns.
12646         (tabort): Use gpc_reg_operand.
12647         (tcheck): Remove operand.
12648         (htm_mfspr_<mode>, htm_mtspr_<mode>): Use GPR mode macro.
12649         * config/rs6000/htmxlintrin.h (__TM_end): Use _HTM_TRANSACTIONAL as
12650         expected value.
12651         * config/rs6000/rs6000-builtin.def (BU_HTM_SPR0): Remove.
12652         (BU_HTM_SPR1): Rename to BU_HTM_V1.  Remove use of RS6000_BTC_SPR.
12653         (tabort, tabortdc, tabortdci, tabortwc, tabortwci, tbegin,
12654         tcheck, tend, tendall, trechkpt, treclaim, tresume, tsuspend,
12655         tsr, ttest): Pass in the RS6000_BTC_CR attribute.
12656         (get_tfhar, set_tfhar, get_tfiar, set_tfiar, get_texasr, set_texasr,
12657         get_texasru, set_texasru): Pass in the RS6000_BTC_SPR attribute.
12658         (tcheck): Remove builtin argument.
12659         * config/rs6000/rs6000.c (rs6000_htm_spr_icode): Use TARGET_POWERPC64
12660         not TARGET_64BIT.
12661         (htm_expand_builtin): Fix usage of expandedp.  Disallow usage of the
12662         tabortdc and tabortdci builtins when not in 64-bit mode.
12663         Modify code to handle the loss of the HTM define_expands.
12664         Emit code to copy the CR register to TARGET.
12665         (htm_init_builtins): Modify code to handle the loss of the HTM
12666         define_expands.
12667         * config/rs6000/rs6000.h (RS6000_BTC_32BIT): Delete.
12668         (RS6000_BTC_64BIT): Likewise.
12669         (RS6000_BTC_CR): New macro.
12670         * doc/extend.texi: Update documentation for htm builtins.
12671
12672 2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12673
12674         * simplify-rtx.c (simplify_gen_binary): Use std::swap instead
12675         of manually swapping.
12676         (simplify_associative_operation): Likewise.
12677         (simplify_binary_operation): Likewise.
12678         (simplify_plus_minus): Likewise.
12679         (simplify_relational_operation): Likewise.
12680         (simplify_ternary_operation): Likewise.
12681
12682 2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>
12683
12684         * config/stormy16/predicates.md (xs_hi_general_operand): Delete.
12685         (xs_hi_nonmemory_operand): Remove error.
12686         * config/stormy16/stormy16.md (movhi, movhi_internal): Use
12687         general_operand rather than xs_hi_general_operand.
12688
12689 2015-04-27  Richard Biener  <rguenther@suse.de>
12690
12691         * tree-ssa-dom.c (record_equivalences_from_phis): Valueize PHI arg.
12692         (record_equivalences_from_stmt): Valueize rhs.
12693         (record_equality): Canonicalize x and y order via
12694         tree_swap_operands_p.  Do not swap operands for same loop depth.
12695
12696 2015-04-27  Georg-Johann Lay  <avr@gjlay.de>
12697
12698         PR target/65296
12699         PR target/65895
12700         * config/avr/gen-avr-mmcu-specs.c (print_mcu): Close file.
12701         Add hint how to use own spec file.
12702
12703 2015-04-27  Jakub Jelinek  <jakub@redhat.com>
12704
12705         PR tree-optimization/65875
12706         * tree-vrp.c (update_value_range): If in is_new case setting
12707         old_vr to VR_VARYING, also set new_vr to it.  Remove
12708         old_vr->type == VR_VARYING test.
12709         (vrp_visit_phi_node): Return SSA_PROP_VARYING instead of
12710         SSA_PROP_INTERESTING if update_value_range returned true,
12711         but new range is VR_VARYING.
12712
12713 2015-04-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>
12714
12715         * combine.c (sign_extend_short_imm): New.
12716         (set_nonzero_bits_and_sign_copies): Use above new function for sign
12717         extension of src short immediate.
12718         (reg_nonzero_bits_for_combine): Likewise for tem.
12719
12720 2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>
12721
12722         * stor-layout.c (self_referential_component_ref_p): New predicate.
12723         (copy_self_referential_tree_r): Use it.
12724         (self_referential_size): Punt for simple operations directly involving
12725         self-referential component references.
12726         * tree-cfg.c (dump_function_to_file): Add missing final curly bracket.
12727
12728 2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>
12729
12730         * ipa-icf.c (icf_handled_component_p): Remove redundant tests.
12731
12732 2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>
12733
12734         * vec.h (vec): Make splice arguments const.  Update definitions
12735         accordingly.
12736
12737 2015-04-27  Yvan Roux  <yvan.roux@linaro.org>
12738
12739         * config/arm/arm.md (*arm_subsi3_insn): Fixed redundant
12740         alternatives.
12741
12742 2015-04-26  Tom de Vries  <tom@codesourcery.com>
12743
12744         PR tree-optimization/65826
12745         * internal-fn.def: Mark VA_ARG with ECF_LEAF.
12746
12747 2015-04-24  Steve Ellcey  <sellcey@imgtec.com>
12748
12749         * config/mips/mips.md: (*madd4<mode>) Remove accum_in attribute.
12750         (*madd3<mode>): Ditto.
12751         (*msub4<mode>): Ditto.
12752         (*msub3<mode>): Ditto.
12753         (*nmadd4<mode>): Ditto.
12754         (*nmadd3<mode>): Ditto.
12755         (*nmadd4<mode>_fastmath): Ditto.
12756         (*nmadd3<mode>_fastmath): Ditto.
12757         (*nmsub4<mode>): Ditto.
12758         (*nmsub3<mode>): Ditto.
12759         (*nmsub4<mode>_fastmath): Ditto.
12760         (*nmsub3<mode>_fastmath): Ditto.
12761
12762 2015-04-24  Jason Merrill  <jason@redhat.com>
12763
12764         PR c++/50800
12765         * tree.c (build_reference_type_for_mode): Don't pass can_alias_all
12766         down when building TYPE_CANONICAL.
12767         (build_pointer_type_for_mode): Likewise.
12768
12769 2015-04-24  Chen Gang  <gang.chen.5i5j@gmail.com>
12770
12771         * genrecog.c (validate_pattern): Check matching constraint refers
12772         to a lower numbered operand.
12773
12774 2015-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
12775
12776         PR target/65849
12777         * config/rs6000/rs6000.opt (-mvsx-align-128): Make options that
12778         save to independent variables use the Save attribute.  This will
12779         allow these options to be modified with the #pragma/attribute
12780         target support.
12781         (-mallow-movmisalign): Likewise.
12782         (-mallow-df-permute): Likewise.
12783         (-msched-groups): Likewise.
12784         (-malways-hint): Likewise.
12785         (-malign-branch-targets): Likewise.
12786         (-mvectorize-builtins): Likewise.
12787         (-msave-toc-indirect): Likewise.
12788
12789         * config/rs6000/rs6000.c (rs6000_opt_masks): Add more options that
12790         can be set via the #pragma/attribute target support.
12791         (rs6000_opt_vars): Likewise.
12792         (rs6000_inner_target_options): If VSX was set, also set
12793         -mno-avoid-indexed-addresses.
12794
12795 2015-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12796
12797         * config/arm/iterators.md (shiftable_ops): Rename to...
12798         (SHIFTABLE_OPS): ... This.  Update use in comments.
12799         (ior_xor): Rename to...
12800         (IOR_XOR): ... This.
12801         (vqh_ops): Rename to...
12802         (VQH_OPS): ... This.
12803         (vqhs_ops): Rename to...
12804         (VQHS_OPS): ... This.
12805         (rshifts): Rename to...
12806         (RSHIFTS): ... This.
12807         (returns): Rename to...
12808         (RETURNS): ... This.
12809         * config/arm/arm.md: Update uses of the above.
12810         * config/arm/neon.md: Likewise.
12811
12812 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12813
12814         * config.host (case ${host}): Add aarch64*-*-linux case.
12815         * config/aarch64/aarch64-cores.def: Add IMPLEMENTER_ID and PART_NUMBER
12816         fields to all the cores.
12817         * config/aarch64/aarch64-elf.h (DRIVER_SELF_SPECS):
12818         Add MCPU_MTUNE_NATIVE_SPECS.
12819         * config/aarch64/aarch64-option-extensions.def: Add FEATURE_STRING
12820         field to all extensions.
12821         * config/aarch64/aarch64-opts.h: Adjust definition of AARCH64_CORE.
12822         * config/aarch64/aarch64.c: Adjust definition of AARCH64_CORE.
12823         Adjust definition of AARCH64_OPT_EXTENSION.
12824         * config/aarch64/aarch64.h: Adjust definition of AARCH64_CORE.
12825         (MCPU_MTUNE_NATIVE_SPECS): Define.
12826         * config/aarch64/driver-aarch64.c: New file.
12827         * config/aarch64/x-arch64: New file.
12828         * doc/invoke.texi (AArch64 Options): Document native value for -mcpu,
12829         -mtune and -march.
12830
12831 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
12832             Wei Mi  <wmi@google.com>
12833
12834         * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple): New.
12835         * config/i386/i386.c (extract_base_offset_in_addr): New function.
12836         (ix86_operands_ok_for_move_multiple): Ditto.
12837         * config/i386/sse.md (movsd/movhpd to movupd peephole2): New pattern.
12838         (movlpd/movhpd to movupd peephole2): Ditto.
12839
12840 2015-04-24  Marek Polacek  <polacek@redhat.com>
12841
12842         PR c/61534
12843         * input.h (from_macro_expansion_at): Define.
12844
12845         PR c/63357
12846         * doc/invoke.texi: Update description of -Wlogical-op.
12847
12848 2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
12849
12850         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): fix
12851         ternary operator in fprintf and harmonize spacing.
12852
12853 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
12854
12855         * config/i386/sse.md (*vec_widen_smult_even_v8si<mask_name>):
12856         Mark operand1 commutative.
12857
12858 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
12859
12860         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Do not allow both
12861         input operands in memory.
12862         (*vec_concatv2si_sse4_1): Ditto.
12863         (*vec_concatv2df): Ditto, except for SSE3 and equal input operands.
12864         (vec_extract_lo_<mode><mask_name>): Change operand 1 predicate to
12865         register_operand.
12866         (vec_extract_hi_v32hi): Ditto.
12867         (vec_extract_hi_v64hi): Ditto.
12868         (<mask_codefor>avx512f_unpckhpd512<mask_name>): Ditto.
12869
12870 2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
12871             Steven Bosscher <steven@gcc.gnu.org>
12872
12873         PR rtl-optimization/34503
12874         * cprop.c (cprop_reg_p): New.
12875         (hash_scan_set): Use above function to check if register can be
12876         propagated.
12877         (find_avail_set): Return up to two sets, one whose source is a
12878         register and one whose source is a constant.  Sets are returned in an
12879         array passed as parameter rather than as a return value.
12880         (cprop_insn): Use a do while loop rather than a goto.  Try each of the
12881         sets returned by find_avail_set, starting with the one whose source is
12882         a constant. Use cprop_reg_p to check if register can be propagated.
12883         (do_local_cprop): Use cprop_reg_p to check if register can be
12884         propagated.
12885         (implicit_set_cond_p): Likewise.
12886
12887 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
12888
12889         * ipa-icf.c (sem_function::equals_wpa): Compare thunk info.
12890         (sem_function::equals): IGNORED_NODES parameter is now unused;
12891         update call of equals_private.
12892         (sem_function::equals_private): Do not call equals_wpa; skip
12893         gimple body matching if there is no body.
12894         (sem_function::init): Add logic to hash tthunk info.
12895         (sem_function::parse): Also parse thunks.
12896         * ipa-icf.h (equals_private): Update declaration.
12897
12898 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12899
12900         * config/rs6000/altivec.md (*altivec_lvx_<mode>_internal): Remove
12901         asterisk from name so this can be generated directly.
12902         (*altivec_stvx_<mode>_internal): Likewise.
12903         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Add assert
12904         that this is never called during or after reload/lra.
12905         (rs6000_frame_related): Remove split_reg
12906         argument and logic that references it.
12907         (emit_frame_save): Remove last parameter from call to
12908         rs6000_frame_related.
12909         (rs6000_emit_prologue): Remove last parameter from eight calls to
12910         rs6000_frame_related.  Force generation of stvx instruction for
12911         Altivec register saves.  Remove split_reg handling, which is no
12912         longer needed.
12913         (rs6000_emit_epilogue):  Force generation of lvx instruction for
12914         Altivec register restores.
12915
12916 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12917
12918         * config/rs6000/rs6000.opt (mcrypto): Change option description to
12919         match category changes in ISA 2.07B.
12920
12921 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12922
12923         * config/arm/iterators.md (GTGE, GTUGEU, COMPARISONS): New code
12924         iterators.
12925         (cmp_op, cmp_type): New code attributes.
12926         (NEON_VCMP, NEON_VACMP): New int iterators.
12927         (cmp_op_unsp): New int attribute.
12928         * config/arm/neon.md (neon_vc<cmp_op><mode>): New define_expand.
12929         (neon_vceq<mode>): Delete.
12930         (neon_vc<cmp_op><mode>_insn): New pattern.
12931         (neon_vc<cmp_op_unsp><mode>_insn_unspec): Likewise.
12932         (neon_vcgeu<mode>): Delete.
12933         (neon_vcle<mode>): Likewise.
12934         (neon_vclt<mode>: Likewise.
12935         (neon_vcage<mode>): Likewise.
12936         (neon_vcagt<mode>): Likewise.
12937         (neon_vca<cmp_op><mode>): New define_expand.
12938         (neon_vca<cmp_op><mode>_insn): New pattern.
12939         (neon_vca<cmp_op_unsp><mode>_insn_unspec): Likewise.
12940
12941 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
12942
12943         * tree.h (attribute_value_equal): Declare.
12944         * tree.c (attribute_value_equal): Export.
12945
12946 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
12947
12948         * ipa-icf.c (sem_item::compare_attributes): New function.
12949         (sem_item::compare_referenced_symbol_properties): Compare variable
12950         attributes.
12951         (sem_item::hash_referenced_symbol_properties): Record DECL_ALIGN.
12952         (sem_function::param_used_p): New function.
12953         (sem_function::equals_wpa): Fix attribute comparsion; match
12954         parameter type codes; do not compare paremter flags when
12955         they are not used; compare edge flags; compare indirect calls.
12956         (sem_item::update_hash_by_addr_refs): Hash reference type.
12957         (sem_function::equals_private): Do not match DECL_ATTRIBUTES.
12958         (sem_variable::equals_wpa): Do not match DECL_ALIGN; match
12959         reference use type.
12960         (sem_item_optimizer::update_hash_by_addr_refs): Use param_used_p.
12961         * ipa-icf.h (compare_attributes, param_used_p): Declare.
12962
12963 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
12964
12965         * ipa-icf.c (symbol_compare_collection::symbol_compare_collection):
12966         cleanup.
12967         (sem_function::get_hash): Do not hash DECL_DISREGARD_INLINE_LIMITS,
12968         DECL_DECLARED_INLINE_P and DECL_IS_OPERATOR_NEW.
12969         (sem_item::compare_referenced_symbol_properties): New.
12970         (sem_item::hash_referenced_symbol_properties): New.
12971         (sem_item::compare_cgraph_references): Rename to ...
12972         (sem_item::compare_symbol_references): ... this one; use
12973         compare_referenced_symbol_properties.
12974         (sem_function::equals_wpa): Do not compare
12975         DECL_DISREGARD_INLINE_LIMITS, DECL_DECLARED_INLINE_P,
12976         DECL_IS_OPERATOR_NEW; compare pointer sizes.
12977         (sem_item::update_hash_by_addr_refs): Call
12978         hash_referenced_symbol_properties.
12979         (sem_item::update_hash_by_local_refs): Cleanup.
12980         (sem_function::merge): Do not mix up symbol properties.
12981         (sem_variable::equals_wpa): Use compare_symbol_references.
12982         * ipa-icf.h (sem_item::compare_referenced_symbol_properties): New.
12983         (sem_item::hash_referenced_symbol_properties): New.
12984         (sem_item::compare_symbol_references): New.
12985         (sem_item::compare_cgraph_references): Remove.
12986
12987 2015-04-23  Kwok Cheung Yeung  <kcy@codesourcery.com>
12988
12989         PR target/26702
12990         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL):
12991         Emit size of local.
12992
12993 2015-04-23  Nick Clifton  <nickc@redhat.com>
12994
12995         * config/rl78/rl78.c (rl78_preferred_reload_class): Add
12996         ATTRIBUTE_UNUSED to x parameter.
12997         * config/rl78/rl78-opts.h (enum rl78_mul_types): Remove unused MUL_RL78.
12998
12999 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13000
13001         * config/rs6000/crypto.md (crypto_vpmsum<CR_char>): Change
13002         TARGET_CRYPTO to TARGET_P8_VECTOR>
13003         (crypto_vpermxor_<mode>): Likewise.
13004         * config/rs6000/rs6000-builtin.def (BU_CRYPTO_2A): New #define.
13005         (BU_CRYPTO_3A): Likewise.
13006         (BU_CRYPTO_OVERLOAD_2A): Rename from BU_CRYPTO_OVERLOAD_2.
13007         (BU_CRYPTO_OVERLOAD_3A): New #define.
13008         (VPMSUMB): Change from BU_CRYPTO_2 to BU_CRYPTO_2A.
13009         (VPMSUMH): Likewise.
13010         (VPMSUMW): Likewise.
13011         (VPMSUMD): Likewise.
13012         (VPERMXOR_V2DI): Change from BU_CRYPTO_3 to BU_CRYPTO_3A.
13013         (VPERMXOR_V4SI): Likewise.
13014         (VPERMXOR_V8HI): Likewise.
13015         (VPERMXOR_V16QI): Likewise.
13016         (VPMSUM): Change from BU_CRYPTO_OVERLOAD_2 to
13017         BU_CRYPTO_OVERLOAD_2A.
13018         (VPERMXOR): Change from BU_CRYPTO_OVERLOAD3 to
13019         BU_CRYPTO_OVERLOAD_3A.
13020         * config/rs6000/rs6000.opt (mcrypto): Change description of
13021         option.
13022
13023 2015-04-23  Richard Biener  <rguenther@suse.de>
13024
13025         * passes.def: Remove copy propagation passes run directly after CCP.
13026         * tree-ssa-ccp.c (get_value_for_expr): Fall back to a COPY for
13027         SSA names.
13028         (ccp_visit_phi_node): Rework to handle first executable edge
13029         specially.
13030
13031 2015-04-23  Matthew Wahab  <matthew.wahab@arm.com>
13032
13033         * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
13034         (ARM_LEGITIMIZE_RELOAD_ADDRESS): Remove.
13035         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Remove.
13036         * config/arm/arm.c (arm_legimitimize_reload_address): Remove.
13037         (thumb_legimitimize_reload_address): Remove.
13038         * config/arm/arm-protos.h (arm_legimitimize_reload_address):
13039         Remove.
13040         (thumb_legimitimize_reload_address): Remove.
13041
13042 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13043
13044         * conditions.h (CC_STATUS_INIT): Gate on #ifndef CC_STATUS_INIT.
13045
13046 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13047
13048         * config/arm/arm.md (load_multiple): Reject operand 2 greater than
13049         MAX_LDM_STM_OPS.
13050         (store_multiple): Likewise.
13051
13052 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13053
13054         * config/arm/arm-protos.h (struct tune_params): Add issue_rate field.
13055         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune,
13056         arm_strongarm_tune, arm_xscale_tune, arm_9e_tune, arm_v6t2_tune,
13057         arm_cortex_tune, arm_cortex_a8_tune, arm_cortex_a7_tune,
13058         arm_cortex_a15_tune, arm_cortex_a53_tune, arm_cortex_a57_tune,
13059         arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune,
13060         arm_fa726te_tune arm_cortex_a5_tune, arm_xgene1_tune):
13061         Specify issue_rate value.
13062         (arm_issue_rate): Look up issue rate from tuning structs. Remove
13063         large switch statement.
13064         (arm_marvell_pj4_tune): New struct.
13065         * config/arm/arm-cores.def (marvell-pj4): Use arm_marvell_pj4_tune
13066         struct.
13067
13068 2015-04-23  Richard Biener  <rguenther@suse.de>
13069
13070         * tree-vect-slp.c (vect_find_first_load_in_slp_instance): Remove.
13071         (vect_find_last_store_in_slp_instance): Rename to ...
13072         (vect_find_last_scalar_stmt_in_slp): ... this and generalize.
13073         (vect_analyze_slp_cost_1): Use vector_load for constant defs
13074         and vec_construct for external defs when estimating prologue cost.
13075         (vect_analyze_slp_instance): Do not init SLP_INSTANCE_FIRST_LOAD_STMT.
13076         Compute costs here only when vectorizing loops.
13077         (vect_slp_analyze_bb_1): Compute SLP cost here, after vector types
13078         have been determined.
13079         (vect_schedule_slp_instance): Simplify vectorized code placement
13080         and prepare for in-BB external defs.
13081         * tree-vectorizer.h (struct _slp_instance): Remove first_load member.
13082         (SLP_INSTANCE_FIRST_LOAD_STMT): Remove.
13083         * tree-vect-stmts.c (vect_model_store_cost): Remove PURE_SLP_STMT
13084         guard.
13085         (vect_model_load_cost): Likewise.
13086         (vectorizable_store): Instead add it here.
13087         (vectorizable_load): Likewise.
13088         (vect_is_simple_use): Dump def type textually.
13089
13090 2015-04-23  Richard Biener  <rguenther@suse.de>
13091
13092         * cfgexpand.c (expand_gimple_stmt_1): Use ops.code.
13093         * cfgloop.c (verify_loop_structure): Verify the root loop node.
13094         * except.c (duplicate_eh_regions): Call get_eh_region_from_lp_number_fn
13095         instead of get_eh_region_from_lp_number.
13096         * loop-init.c (fix_loop_structure): If we removed a loop, reset
13097         the SCEV cache.
13098
13099 2015-04-23  Anton Blanchard  <anton@samba.org>
13100
13101         * config/rs6000/rs6000.c (rs6000_output_function_prologue): No
13102         need for -mprofile-kernel to save LR to stack.
13103
13104 2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13105
13106         * config/rs6000/rs6000.c (rtx_is_swappable_p): Commentary
13107         adjustments.
13108         (insn_is_swappable_p): Return 1 for a convert from double to
13109         single precision when all of its uses are splats of BE element
13110         zero.
13111
13112 2015-04-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
13113
13114         * ira-costs.c (record_operand_costs): Fix typo (remove redundant code).
13115
13116 2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13117
13118         PR target/65456
13119         * config/rs6000/rs6000.c (rs6000_option_override_internal):  For
13120         VSX + POWER8, enable TARGET_ALLOW_MOVMISALIGN and
13121         TARGET_EFFICIENT_UNALIGNED_VSX if not selected by command line
13122         option.
13123         (rs6000_builtin_mask_for_load): Return 0 for targets with
13124         efficient unaligned VSX accesses so that the vectorizer will use
13125         direct unaligned loads.
13126         (rs6000_builtin_support_vector_misalignment): Always return true
13127         for targets with efficient unaligned VSX accesses.
13128         (rs6000_builtin_vectorization_cost): Cost of unaligned loads and
13129         stores on targets with efficient unaligned VSX accesses is almost
13130         always the same as the cost of an aligned load or store, so model
13131         it that way.
13132         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Return 0 for
13133         unaligned vectors if we have efficient unaligned VSX accesses.
13134         * config/rs6000/rs6000.opt (mefficient-unaligned-vector): New
13135         undocumented option.
13136
13137 2015-04-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13138
13139         Revert:
13140         2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>
13141
13142         * config.gcc (LIBC_MUSL): New tm_defines macro.
13143         * config/linux.h (OPTION_MUSL): Define.
13144         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
13145         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
13146         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
13147
13148         * config/linux.opt (mmusl): New option.
13149         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
13150         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
13151
13152         * configure: Regenerate.
13153
13154 2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>
13155
13156         * config.gcc (LIBC_MUSL): New tm_defines macro.
13157         * config/linux.h (OPTION_MUSL): Define.
13158         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
13159         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
13160         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
13161
13162         * config/linux.opt (mmusl): New option.
13163         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
13164         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
13165
13166         * configure: Regenerate.
13167
13168 2015-04-22  Yury Gribov  <y.gribov@samsung.com>
13169
13170         * doc/invoke.texi (-fsanitize-sections): Update description.
13171         * asan.c (set_sanitized_sections): Parse incoming arg.
13172         (section_sanitized_p): Support wildcards.
13173
13174 2015-04-22  Tom de Vries  <tom@codesourcery.com>
13175
13176         PR tree-optimization/65823
13177         * gimplify.c (gimplify_modify_expr): Use operand_equal_p to test for
13178         equality between ap_copy and ap.
13179
13180 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13181
13182         PR target/47098
13183         * config/openbsd-oldgas.h (OBSD_LIB_SPEC): Add.
13184
13185 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13186
13187         PR target/47122
13188         * config.gcc (vax-*-openbsd*): Fix name of pthread spec header.
13189
13190 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13191
13192         PR target/55144
13193         * config.gcc (bfin*-linux-uclibc*): Prepend tmake_file and
13194         remove already contained t-files.
13195
13196 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13197
13198         * tree-tailcall.c (suitable_for_tail_opt_p, find_tail_calls):
13199         Remove unneeded forward declarations.
13200         (suitable_for_tail_call_opt_p): Commentary typo fix.
13201
13202 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13203
13204         * varasm.c (emit_bss): Remove redundant guard.
13205
13206 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13207
13208         * config/c6x/c6x.h (TARGET_CPU_CPP_BUILTINS): Add unk_isa.
13209
13210 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13211
13212         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Add BFIN_CPU_UNKNOWN.
13213
13214 2015-04-22  Hale Wang  <hale.wang@arm.com>
13215             Terry Guo  <terry.guo@arm.com>
13216
13217         PR rtl-optimization/64818
13218         * combine.c (can_combine_p): Don't combine user-specified
13219         register if it is in an asm input.
13220
13221 2015-04-21  Jan Hubicka  <hubicka@ucw.cz>
13222
13223         PR ipa/65076
13224         * passes.def (early_optimizations): Add pass_dse.
13225
13226 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13227
13228         * defaults.h (INSN_REFERENCES_ARE_DELAYED): New definition.
13229         * reorg.c (redundant_insn): Remove ifdef
13230         INSN_REFERENCES_ARE_DELAYED.
13231         * resource.c (mark_referenced_resources): Likewise.
13232
13233 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13234
13235         * defaults.h (INSN_SETS_ARE_DELAYED): New definition.
13236         * reorg.c (redundant_insn): Remove ifdef INSN_SETS_ARE_DELAYED.
13237         * resource.c (mark_set_resources): Likewise.
13238
13239 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13240
13241         * caller-save.c (insert_one_insn): Remove ifdef HAVE_cc0.
13242         * cfgcleanup.c (flow_find_cross_jump): Likewise.
13243         (flow_find_head_matching_sequence): Likewise.
13244         (try_head_merge_bb): Likewise.
13245         * combine.c (can_combine_p): Likewise.
13246         (try_combine): Likewise.
13247         (distribute_notes): Likewise.
13248         * df-problems.c (can_move_insns_across): Likewise.
13249         * final.c (final): Likewise.
13250         * gcse.c (insert_insn_end_basic_block): Likewise.
13251         * ira.c (find_moveable_pseudos): Likewise.
13252         * reorg.c (try_merge_delay_insns): Likewise.
13253         (fill_simple_delay_slots): Likewise.
13254         (fill_slots_from_thread): Likewise.
13255         * sched-deps.c (sched_analyze_2): Likewise.
13256
13257 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13258
13259         * df-scan.c (df_get_entry_block_def_set): Remove #ifdef
13260         PIC_OFFSET_TABLE_REGNUM.
13261
13262 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13263
13264         * alias.c (init_alias_target): Remove ifdef
13265         * HARD_FRAME_POINTER_IS_FRAME_POINTER.
13266         * df-scan.c (df_insn_refs_collect): Likewise.
13267         (df_get_regular_block_artificial_uses): Likewise.
13268         (df_get_eh_block_artificial_uses): Likewise.
13269         (df_get_entry_block_def_set): Likewise.
13270         (df_get_exit_block_use_set): Likewise.
13271         * emit-rtl.c (gen_rtx_REG): Likewise.
13272         * ira.c (ira_setup_eliminable_regset): Likewise.
13273         * reginfo.c (init_reg_sets_1): Likewise.
13274         * regrename.c (rename_chains): Likewise.
13275         * reload1.c (reload): Likewise.
13276         (eliminate_regs_in_insn): Likewise.
13277         * resource.c (mark_referenced_resources): Likewise.
13278         (init_resource_info): Likewise.
13279
13280 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13281
13282         * defaults.h (MASK_RETURN_ADDR): New definition.
13283         * except.c (expand_builtin_extract_return_addr): Remove ifdef
13284         MASK_RETURN_ADDR.
13285
13286 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13287
13288         * defaults.h (RETURN_ADDR_OFFSET): New definition.
13289         * except.c (expand_builtin_extract_return_addr): Remove ifdef
13290         RETURN_ADDR_OFFSET.
13291         (expand_builtin_frob_return_addr): Likewise.
13292
13293 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13294
13295         * cfgrtl.c (rtl_merge_blocks): Change #if HAVE_cc0 to if (HAVE_cc0)
13296         (try_redirect_by_replacing_jump): Likewise.
13297         (rtl_tidy_fallthru_edge): Likewise.
13298         * combine.c (insn_a_feeds_b): Likewise.
13299         (find_split_point): Likewise.
13300         (simplify_set): Likewise.
13301         * cprop.c (cprop_jump): Likewise.
13302         * cse.c (cse_extended_basic_block): Likewise.
13303         * df-problems.c (can_move_insns_across): Likewise.
13304         * function.c (emit_use_return_register_into_block): Likewise.
13305         * haifa-sched.c (sched_init): Likewise.
13306         * ira.c (find_moveable_pseudos): Likewise.
13307         * loop-invariant.c (find_invariant_insn): Likewise.
13308         * lra-constraints.c (curr_insn_transform): Likewise.
13309         * postreload.c (reload_combine_recognize_const_pattern):
13310         * Likewise.
13311         * reload.c (find_reloads): Likewise.
13312         * reorg.c (delete_scheduled_jump): Likewise.
13313         (steal_delay_list_from_target): Likewise.
13314         (steal_delay_list_from_fallthrough): Likewise.
13315         (redundant_insn): Likewise.
13316         (fill_simple_delay_slots): Likewise.
13317         (fill_slots_from_thread): Likewise.
13318         (delete_computation): Likewise.
13319         * sched-rgn.c (add_branch_dependences): Likewise.
13320
13321 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13322
13323         * genconfig.c (main): Always define HAVE_cc0.
13324         * caller-save.c (insert_one_insn): Change ifdef HAVE_cc0 to #if
13325         HAVE_cc0.
13326         * cfgcleanup.c (flow_find_cross_jump): Likewise.
13327         (flow_find_head_matching_sequence): Likewise.
13328         (try_head_merge_bb): Likewise.
13329         * cfgrtl.c (rtl_merge_blocks): Likewise.
13330         (try_redirect_by_replacing_jump): Likewise.
13331         (rtl_tidy_fallthru_edge): Likewise.
13332         * combine.c (do_SUBST_MODE): Likewise.
13333         (insn_a_feeds_b): Likewise.
13334         (combine_instructions): Likewise.
13335         (can_combine_p): Likewise.
13336         (try_combine): Likewise.
13337         (find_split_point): Likewise.
13338         (subst): Likewise.
13339         (simplify_set): Likewise.
13340         (distribute_notes): Likewise.
13341         * cprop.c (cprop_jump): Likewise.
13342         * cse.c (cse_extended_basic_block): Likewise.
13343         * df-problems.c (can_move_insns_across): Likewise.
13344         * final.c (final): Likewise.
13345         (final_scan_insn): Likewise.
13346         * function.c (emit_use_return_register_into_block): Likewise.
13347         * gcse.c (insert_insn_end_basic_block): Likewise.
13348         * haifa-sched.c (sched_init): Likewise.
13349         * ira.c (find_moveable_pseudos): Likewise.
13350         * loop-invariant.c (find_invariant_insn): Likewise.
13351         * lra-constraints.c (curr_insn_transform): Likewise.
13352         * optabs.c (prepare_cmp_insn): Likewise.
13353         * postreload.c (reload_combine_recognize_const_pattern):
13354         * Likewise.
13355         * reload.c (find_reloads): Likewise.
13356         (find_reloads_address_1): Likewise.
13357         * reorg.c (delete_scheduled_jump): Likewise.
13358         (steal_delay_list_from_target): Likewise.
13359         (steal_delay_list_from_fallthrough): Likewise.
13360         (try_merge_delay_insns): Likewise.
13361         (redundant_insn): Likewise.
13362         (fill_simple_delay_slots): Likewise.
13363         (fill_slots_from_thread): Likewise.
13364         (delete_computation): Likewise.
13365         (relax_delay_slots): Likewise.
13366         * sched-deps.c (sched_analyze_2): Likewise.
13367         * sched-rgn.c (add_branch_dependences): Likewise.
13368
13369 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13370
13371         * combine.c (find_single_use): Remove HAVE_cc0 ifdef for code
13372         that is trivially ded on non cc0 targets.
13373         (simplify_set): Likewise.
13374         (mark_used_regs_combine): Likewise.
13375         * cse.c (new_basic_block): Likewise.
13376         (fold_rtx): Likewise.
13377         (cse_insn): Likewise.
13378         (cse_extended_basic_block): Likewise.
13379         (set_live_p): Likewise.
13380         * rtlanal.c (canonicalize_condition): Likewise.
13381         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
13382
13383 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13384
13385         * conditions.h: Define macros even if HAVE_cc0 is undefined.
13386         * emit-rtl.c: Define functions even if HAVE_cc0 is undefined.
13387         * final.c: Likewise.
13388         * jump.c: Likewise.
13389         * recog.c: Likewise.
13390         * recog.h: Declare functions even when HAVE_cc0 is undefined.
13391         * sched-deps.c (sched_analyze_2): Always compile case for cc0.
13392
13393 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13394
13395         * defaults.h: New definition of EH_RETURN_DATA_REGNO.
13396         * except.c: Remove definition of EH_RETURN_DATA_REGNO.
13397         * builtins.c (expand_builtin): Remove check if
13398         EH_RETURN_DATA_REGNO is defined.
13399         * df-scan.c (df_bb_refs_collect): Likewise.
13400         (df_get_exit_block_use_set): Likewise.
13401         * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
13402         * ira-lives.c (process_bb_node_lives): Likewise.
13403         * lra-lives.c (process_bb_lives): Likewise.
13404
13405 2015-04-21  Uros Bizjak  <ubizjak@gmail.com>
13406
13407         * config/i386/i386.md (ARGP_REG, FRAME_REG, BND2_REG, BND3_REG,
13408         FIRST_PSEUDO_REG): New.
13409         * config/i386/i386.h (STACK_POINTER_REGNUM): Define to SP_REG.
13410         (ARG_POINTER_REGNUM): Define to ARGP_REG.
13411         (FRAME_POINTER_REGNUM): Define to FRAME_REG.
13412         (HARD_FRAME_POINTER_REGNUM): Define to BP_REG.
13413         (FIRST_PSEUDO_REGISTER): Define to FIRST_PSEUDO_REG.
13414         (FIRST_INT_REG): New.
13415         (LAST_INT_REG): New.
13416         (FIRST_*_REG): Define using *_REG.
13417         (LAST_*_REG): Ditto.
13418         (QI_REGNO_P): Define using FIRST_QU_REG and LAST_QI_REG.
13419         (LEGACY_INT_REGNO_P): Define using FIRST_INT_REG and LAST_INT_REG.
13420         (FIRST_FLOAT_REG): Define to FIRST_STACK_REG.
13421
13422 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13423
13424         * expmed.c: (synth_mult): Only assume overlapping
13425         shift with previous steps in alg_sub_t_m2 case.
13426
13427 2015-04-21  Richard Biener  <rguenther@suse.de>
13428
13429         PR tree-optimization/65650
13430         * tree-ssa-ccp.c (valid_lattice_transition): Allow lattice
13431         transitions involving copies.
13432         (set_lattice_value): Adjust for copy lattice state.
13433         (ccp_lattice_meet): Do not merge UNDEFINED and a copy to the copy
13434         if that doesn't dominate the merge point.
13435         (bit_value_unop): Adjust what we treat as varying mask.
13436         (bit_value_binop): Likewise.
13437         (bit_value_assume_aligned): Likewise.
13438         (evaluate_stmt): When we simplified to a SSA name record a copy
13439         instead of dropping to varying.
13440         (visit_assignment): Simplify.
13441
13442         * gimple-match.h (gimple_simplify): Add another callback.
13443         * gimple-fold.c (fold_stmt_1): Adjust caller.
13444         (gimple_fold_stmt_to_constant_1): Likewise - pass valueize
13445         for the 2nd callback.
13446         * gimple-match-head.c (gimple_simplify): Add a callback that is
13447         used to valueize the stmt operands and use it that way.
13448
13449 2015-04-21  Richard Biener  <rguenther@suse.de>
13450
13451         PR tree-optimization/65788
13452         * tree-ssa-ccp.c (evaluate_stmt): Evaluate to UNDEFINED early.
13453
13454 2015-04-21  Richard Biener  <rguenther@suse.de>
13455
13456         * config/i386/i386.c (ix86_builtin_vectorization_cost): Scale
13457         vec_construct cost by vec_stmt_cost.
13458
13459 2015-04-21  Richard Biener  <rguenther@suse.de>
13460
13461         * cfghooks.h (create_basic_block): Replace with two overloads
13462         for RTL and GIMPLE.
13463         (split_block): Likewise.
13464         * cfghooks.c (split_block): Rename to ...
13465         (split_block_1): ... this.
13466         (split_block): Add two type-safe overloads for RTL and GIMPLE.
13467         (split_block_after_labels): Call split_block_1.
13468         (create_basic_block): Rename to ...
13469         (create_basic_block_1): ... this.
13470         (create_basic_block): Add two type-safe overloads for RTL and GIMPLE.
13471         (create_empty_bb): Call create_basic_block_1.
13472         * cfgrtl.c (fixup_fallthru_exit_predecessor): Use
13473         split_block_after_labels.
13474         * omp-low.c (expand_parallel_call): Likewise.
13475         (expand_omp_target): Likewise.
13476         (simd_clone_adjust): Likewise.
13477         * tree-chkp.c (chkp_get_entry_block): Likewise.
13478         * cgraphunit.c (init_lowered_empty_function): Use the GIMPLE
13479         create_basic_block overload.
13480         (cgraph_node::expand_thunk): Likewise.
13481         * tree-cfg.c (make_blocks): Likewise.
13482         (handle_abnormal_edges): Likewise.
13483         * tree-inline.c (copy_bb): Likewise.
13484
13485 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13486
13487         * config/aarch64/aarch64.md (*<NLOGICAL:optab>_one_cmplsidi3_ze):
13488         New pattern.
13489         (*xor_one_cmplsidi3_ze): Likewise.
13490
13491 2015-04-21  Thomas Preud'homme  <thomas.preudhomme@arm.com>
13492
13493         * df-core.c (df_finish_pass): Iterate over df->problems_by_index[] and
13494         use df_remove_problem rather than manually removing problems, leaving
13495         holes in df->problems_in_order[].
13496
13497 2015-04-21  Tom de Vries  <tom@codesourcery.com>
13498
13499         PR tree-optimization/65802
13500         * internal-fn.def (VA_ARG): Add ECF_NOTROW to flags.
13501
13502 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13503
13504         * common/config/aarch64/aarch64-common.c (AARCH64_CPU_NAME_LENGTH):
13505         Increase to 128.
13506         (aarch64_rewrite_selected_cpu): Do not chop off extensions starting
13507         at '.'.  Assert that there's enough space for everything.
13508
13509 2015-04-21  Uros Bizjak  <ubizjak@gmail.com>
13510
13511         PR tree-optimization/64950
13512         Revert:
13513         2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
13514
13515         PR target/41089
13516         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
13517         as volatile.
13518
13519 2015-04-20  Shiva Chen  <shiva0217@gmail.com>
13520
13521         PR rtl-optimization/64916
13522         * cfgcleanup.c (values_equal_p): New function.
13523         (can_replace_by): Use it.
13524
13525 2015-04-20  Paolo Carlini  <paolo.carlini@oracle.com>
13526
13527         PR c++/65801
13528         * doc/invoke.texi ([-Wnarrowing]): Update.
13529
13530 2015-04-20  Jeff Law  <law@redhat.com>
13531
13532         PR tree-optimization/65658
13533         * tree-ssa-threadupdate.c (redirection_block_p): Remove
13534         redundant test for GIMPLE_ASSIGN in last change.
13535
13536 2015-04-20  Uros Bizjak  <ubizjak@gmail.com>
13537
13538         * config/i386/i386.c (set_pic_reg_ever_live): Remove.
13539         (legitimize_pic_address): Do not call set_pic_reg_ever_live.
13540         (legitimize_tls_address): Ditto.
13541         (ix86_expand_move): Ditto.
13542         (ix86_expand_binary_operator): Remove reload_in_progress checks.
13543         (ix86_expand_unary_operator): Ditto.
13544         * config/i386/predicates.md (index_register_operand): Ditto.
13545
13546 2015-04-20  Selim Belbachir  <selim.belbachir@fr.thalesgroup.com>
13547
13548         * reorg.c (try_merge_delay_insns): Improve correctness checking
13549         for targets with multiple delay slots.
13550
13551 2015-04-20  Jeff Law  <law@redhat.com>
13552
13553         PR tree-optimization/65658
13554         * tree-ssa-threadupdate.c (redirection_block_p): Ignore clobber
13555         statements too.
13556
13557 2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>
13558
13559         * config/aarch64/aarch64.c (aarch64_simd_emit_pair_result_insn): Delete.
13560         * config/aarch64/aarch64-protos.h (aarch64_simd_emit_pair_result_insn):
13561         Delete.
13562
13563 2015-04-20  Jakub Jelinek  <jakub@redhat.com>
13564
13565         PR debug/65807
13566         * dwarf2out.c (add_AT_wide): Clear attr.dw_attr_val.val_entry.
13567
13568 2015-04-20  Richard Biener  <rguenther@suse.de>
13569
13570         * gimple-fold.h (gimple_build): Remove optional valueize arguments.
13571         * gimple-fold.c (gimple_build_valueize): New function.
13572         (gimple_build): Always use gimple_build_valueize as valueize hook.
13573
13574 2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>
13575
13576         PR target/64134
13577         * config/aarch64/aarch64.c (aarch64_expand_vector_init): Load constant
13578         and overwrite variable parts if <= 1/2 the elements are variable.
13579
13580 2015-04-19  Vladimir Makarov  <vmakarov@redhat.com>
13581
13582         PR rtl-optimization/65805
13583         * lra-eliminations.c (lra_eliminate_regs_1): Add new assert.
13584         Don't use difference of offset and previous offset if
13585         update_sp_offset is non-zero.
13586         (eliminate_regs_in_insn): Ditto.
13587         * lra-spills.c (remove_pseudos): Exchange 4th and 6th args in
13588         lra_eliminate_regs_1 call.
13589         * lra-constraints.c (get_equiv_with_elimination): Ditto.
13590
13591 2015-04-18  Trevor Saunders  <tsaunders@mozilla.com>
13592
13593         * hash-table.h: Remove version of hash_table that stored value_type *.
13594         * asan.c, attribs.c, bitmap.c, cfg.c, cgraph.h, config/arm/arm.c,
13595         config/i386/winnt.c, config/ia64/ia64.c, config/mips/mips.c,
13596         config/sol2.c, coverage.c, cselib.c, dse.c, dwarf2cfi.c,
13597         dwarf2out.c, except.c, gcse.c, genmatch.c, ggc-common.c,
13598         gimple-ssa-strength-reduction.c, gimplify.c, haifa-sched.c,
13599         hard-reg-set.h, hash-map.h, hash-set.h, ipa-devirt.c, ipa-icf.h,
13600         ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
13601         loop-iv.c, loop-unroll.c, lto-streamer.h, plugin.c, postreload-gcse.c,
13602         reginfo.c, statistics.c, store-motion.c, trans-mem.c, tree-cfg.c,
13603         tree-eh.c, tree-hasher.h, tree-into-ssa.c, tree-parloops.c,
13604         tree-sra.c, tree-ssa-coalesce.c, tree-ssa-dom.c, tree-ssa-live.c,
13605         tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c,
13606         tree-ssa-pre.c, tree-ssa-reassoc.c, tree-ssa-sccvn.c,
13607         tree-ssa-structalias.c, tree-ssa-tail-merge.c,
13608         tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
13609         valtrack.h, var-tracking.c, vtable-verify.c, vtable-verify.h: Adjust.
13610
13611 2015-04-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13612             Jakub Jelinek  <jakub@redhat.com>
13613
13614         PR target/65787
13615         * config/rs6000/rs6000.c (rtx_is_swappable_p): Ensure that a
13616         subsequent SH_NONE operand does not overwrite an existing *special
13617         value.
13618         (adjust_extract): Handle case where a vec_extract operation is
13619         wrapped in a PARALLEL.
13620
13621 2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>
13622
13623         PR target/65780
13624         * config/i386/i386.c (ix86_binds_local_p): Define only if
13625         TARGET_MACHO and TARGET_DLLIMPORT_DECL_ATTRIBUTES are false.
13626
13627 2015-04-17  Jeff Law  <law@redhat.com>
13628
13629         PR tree-optimization/47679
13630         * Makefile.in (OBJS); Add tree-ssa-scopedtables.o.
13631         * tree-ssa-scopedtables.c: New file.
13632         * tree-ssa-scopedtables.h: New file.
13633         * tree-ssa-dom.c: Include tree-ssa-scopedtables.h.
13634         (const_and_copies): Change name/type.
13635         (record_const_or_copy): Move into tree-ssa-scopedtables.c
13636         (record_const_or_copy_1): Similarly.
13637         (restore_vars_to_original_value): Similarly.
13638         (pass_dominator::execute): Create and destroy const_and_copies table.
13639         (thread_across_edge): Update passing of const_and_copies.
13640         (record_temporary_equivalence): Use method calls rather than
13641         manipulating const_and_copies directly.
13642         (record_equality, cprop_into_successor_phis): Similarly.
13643         (dom_opt_dom_walker::before_dom_children): Similarly.
13644         (dom_opt_dom_walker::after_dom_children): Similarly.
13645         (eliminate_redundant_computations): Similarly.
13646         * tree-ssa-threadedge.c (remove_temporary_equivalences): Delete.
13647         (record_temporary_equivalence): Likewise.
13648         (invalidate_equivalences): Likewise.
13649         (record_temporary_equivalences_from_phis): Update due to type
13650         change of const_and_copies.  Use method calls rather than
13651         manipulating the stack directly.
13652         (record_temporary_equivalences_from_stmts_at_dest): Likewise.
13653         (thread_through_normal_block, thread_across_edge): Likewise.
13654         (thread_across_edge): Likewise.
13655         * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
13656         * tree-vrp.c: Include tree-ssa-scopedtables.h.  Change type
13657         of equiv_stack.
13658         (identify_jump_threads): Update due to type change of equiv_stack.
13659         (finalize_jump_threads): Delete the equiv_stack when complete.
13660
13661 2015-04-17  Uros Bizjak  <ubizjak@gmail.com>
13662
13663         * config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
13664         * config/i386/i386.c (ix86_legitimize_reload_address): Ditto.
13665         * config/i386/i386-protos.h (ix86_legitimize_reload_address): Ditto.
13666
13667 2015-04-17  Andreas Tobler  <andreast@gcc.gnu.org>
13668
13669         PR target/65535
13670         * config.gcc: Exit with a comment when we do not have a major version
13671         number for the FreeBSD target.
13672
13673 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
13674
13675         PR target/65689
13676         * genpreds.c (struct constraint_data): Add maybe_allows_reg and
13677         maybe_allows_mem bitfields.
13678         (maybe_allows_none_start, maybe_allows_none_end,
13679         maybe_allows_reg_start, maybe_allows_reg_end, maybe_allows_mem_start,
13680         maybe_allows_mem_end): New variables.
13681         (compute_maybe_allows): New function.
13682         (add_constraint): Use it to initialize maybe_allows_reg and
13683         maybe_allows_mem fields.
13684         (choose_enum_order): Sort the non-is_register/is_const_int/is_memory/
13685         is_address constraints such that those that allow neither mem nor
13686         reg come first, then those that only allow reg but not mem, then
13687         those that only allow mem but not reg, then the rest.
13688         (write_allows_reg_mem_function): New function.
13689         (write_tm_preds_h): Call it.
13690         * stmt.c (parse_output_constraint, parse_input_constraint): Use
13691         the generated insn_extra_constraint_allows_reg_mem function
13692         instead of always setting *allows_reg = true; *allows_mem = true;
13693         for unknown extra constraints.
13694
13695 2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>
13696
13697         PR target/65780
13698         * output.h (default_binds_local_p_3): New.
13699         * varasm.c (default_binds_local_p_3): Make it public.  Take an
13700         argument to indicate if common symbol may be local.  If common
13701         symbol may be local, treat non-external variable as defined
13702         locally.
13703         (default_binds_local_p_2): Pass !flag_pic to default_binds_local_p_3.
13704         (default_binds_local_p_1): Pass false to default_binds_local_p_3.
13705         * config/i386/i386.c (ix86_binds_local_p): New.
13706         (TARGET_BINDS_LOCAL_P): Replace default_binds_local_p_2 with
13707         ix86_binds_local_p.
13708
13709 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
13710
13711         PR debug/65771
13712         * dwarf2out.c (mem_loc_descriptor): For CONST, fallback to
13713         trying mem_loc_descriptor on XEXP (rtl, 0).
13714
13715 2015-04-17  Martin Liska  <mliska@suse.cz>
13716
13717         * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
13718         Release symbol_compare_collection.
13719         * ipa-reference.c: Add TODO that a vector should be released.
13720
13721 2015-04-17  Sivanupandi Pitchumani <Pitchumani.Sivanupandi@atmel.com>
13722
13723         PR target/65296
13724         * config/avr/gen-avr-mmcu-specs.c (*avrlibc_startfile): Adjust
13725         to new AVR-LibC file layout (bug #44574).
13726         (*avrlibc_devicelib): Same.
13727         * config/avr/avr-mcus.def: Adjust comments.
13728         * config/avr/avr.opt (nodevicelib): Adjust help.
13729
13730 2015-04-17  Alan Lawrence  <alan.lawrence@arm.com>
13731
13732         * config/aarch64/arm_neon.h (vdup_n_f32): Remove forward declaration.
13733
13734 2015-04-17  Patrick Palka  <ppalka@gcc.gnu.org>
13735
13736         PR c++/64527
13737         * gimplify.c (gimplify_init_constructor): Always emit a
13738         side-effecting constructor.
13739
13740 2015-04-17  Tom de Vries  <tom@codesourcery.com>
13741
13742         PR tree-optimization/64950
13743         * gimplify.c (gimplify_function_tree): Tentatively set PROP_gimple_lva
13744         in cfun->curr_properties.
13745         (gimplify_va_arg_expr): Clear PROP_gimple_lva in cfun->curr_properties
13746         if we generate an IFN_VA_ARG.
13747         * tree-inline.c (expand_call_inline): Reset PROP_gimple_lva in dest
13748         function if PROP_gimple_lva is not set in src function.
13749
13750 2015-04-17  Tom de Vries  <tom@codesourcery.com>
13751             Michael Matz  <matz@suse.de>
13752
13753         PR tree-optimization/64950
13754         * gimple-iterator.c (update_modified_stmts): Remove static.
13755         * gimple-iterator.h (update_modified_stmts): Declare.
13756         * gimplify.c (gimplify_modify_expr): Handle IFN_VA_ARG.
13757         (gimplify_va_arg_internal): New function.
13758         (gimplify_va_arg_expr): Use IFN_VA_ARG.
13759         * gimplify.h (gimplify_va_arg_internal): Declare.
13760         * internal-fn.c (expand_VA_ARG): New unreachable function.
13761         * internal-fn.def (VA_ARG): New DEF_INTERNAL_FN.
13762         * tree-stdarg.c (gimple_call_ifn_va_arg_p, expand_ifn_va_arg_1)
13763         (expand_ifn_va_arg): New function.
13764         (pass_data_stdarg): Add PROP_gimple_lva to properties_provided field.
13765         (pass_stdarg::execute): Call expand_ifn_va_arg.
13766         (pass_data_lower_vaarg): New pass_data.
13767         (pass_lower_vaarg): New gimple_opt_pass.
13768         (pass_lower_vaarg::gate, pass_lower_vaarg::execute)
13769         (make_pass_lower_vaarg): New function.
13770         * cfgexpand.c (pass_data_expand): Add PROP_gimple_lva to
13771         properties_required field.
13772         * passes.def (all_passes): Add pass_lower_vaarg.
13773         * tree-pass.h (PROP_gimple_lva): Add define.
13774         (make_pass_lower_vaarg): Declare.
13775
13776 2015-04-17  Tom de Vries  <tom@codesourcery.com>
13777
13778         * fold-const.c (operand_equal_p): Handle INTERNAL_FNs.
13779         * calls.c (call_expr_flags): Same.
13780
13781 2015-04-17  Tom de Vries  <tom@codesourcery.com>
13782
13783         * tree-stdarg.c (optimize_va_list_gpr_fpr_size): Factor out of ...
13784         (pass_stdarg::execute): ... here.
13785
13786 2015-04-17  Tom de Vries  <tom@codesourcery.com>
13787             Michael Matz  <matz@suse.de>
13788
13789         * tree-cfg.c (make_blocks_1): Factor out of ...
13790         (make_blocks): ... here.
13791         (make_edges_bb): Factor out of ...
13792         (make_edges): ... here.
13793         (gimple_find_sub_bbs): New function.
13794         * tree-cfg.h (gimple_find_sub_bbs): Declare.
13795
13796 2015-04-17  Tom de Vries  <tom@codesourcery.com>
13797
13798         * tree.c (free_lang_data): Disable lang_hooks.gimplify_expr.
13799
13800 2015-04-17  Yury Gribov  <y.gribov@samsung.com>
13801
13802         * asan.c (set_sanitized_sections): New function.
13803         (section_sanitized_p): Ditto.
13804         (asan_protect_global): Optionally sanitize user-defined
13805         sections.
13806         * asan.h (set_sanitized_sections): Declare new function.
13807         * common.opt (fsanitize-sections): New option.
13808         * doc/invoke.texi (-fsanitize-sections): Document new option.
13809         * opts-global.c (handle_common_deferred_options): Handle new
13810         option.
13811
13812 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
13813
13814         PR debug/65771
13815         * dwarf2out.c (loc_list_from_tree): Return NULL
13816         for DEBUG_EXPR_DECL.
13817
13818 2015-04-17  Christian Bruel  <christian.bruel@st.com>
13819
13820         * ipa-inline.c (can_inline_edge_p): Allow inlining of functions with
13821         same attributes.
13822
13823 2015-04-16  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
13824
13825         * ira-color.c (setup_left_conflict_sizes_p): Do not process
13826         node itself when computing left conflict subnode size.
13827
13828 2015-04-16  Uros Bizjak  <ubizjak@gmail.com>
13829
13830         * config/i386/predicates.md (register_mixssei387nonimm_operand): New.
13831         * config/i386/i386.md (*fop_<mode>_1_mixed): Merge with
13832         *fop_<mode>_1_sse using enabled attribute.  Use
13833         register_mixssei387nonimm_operand operand 1 predicate. Change
13834         alternative 3 constraints from "x" to "v".
13835
13836 2015-04-16  Richard Biener  <rguenther@suse.de>
13837
13838         PR tree-optimization/65774
13839         * tree-ssa-ccp.c (evaluate_stmt): Constrain types we invoke
13840         bit-value tracking on.
13841
13842 2015-04-16  Richard Biener  <rguenther@suse.de>
13843
13844         PR tree-optimization/64277
13845         * tree-vrp.c (check_array_ref): Fix anti-range handling,
13846         simplify upper bound handling.
13847         (search_for_addr_array): Simplify.
13848         (check_array_bounds): Handle ADDR_EXPRs here.
13849         (check_all_array_refs): Simplify.
13850
13851 2015-04-16  Uros Bizjak  <ubizjak@gmail.com>
13852
13853         * config/i386/i386.c (print_reg): Rewrite function.
13854
13855 2015-04-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13856
13857         * config/s390/s390.h (IRA_HARD_REGNO_ADD_COST_MULTIPLIER):
13858         Invert the condition.
13859
13860 2015-04-16  Renlin Li  <renlin.li@arm.com>
13861
13862         * simplify-rtx.c (simplify_unary_operation_1): Fix a typo. Enable two
13863         simplifications for UNSIGNED_FLOAT.
13864
13865 2015-04-16  Nick Clifton  <nickc@redhat.com>
13866
13867         * config/rl78/rl78-opts.h (enum rl78_mul_types): Add MUL_G14 and
13868         MUL_UNINIT.
13869         (enum rl78_cpu_type): New.
13870         * config/rl78/rl78-virt.md (attr valloc): Add divhi and divsi.
13871         (umulhi3_shift_virt): Remove m constraint from operand 1.
13872         (umulqihi3_virt): Likewise.
13873         * config/rl78/rl78.c (rl78_option_override): Add code to process
13874         -mcpu and -mmul options.
13875         (rl78_alloc_physical_registers): Add code to handle divhi and
13876         divsi valloc attributes.
13877         (set_origin): Likewise.
13878         * config/rl78/rl78.h (RL78_MUL_G14): Define.
13879         (TARGET_G10, TARGET_G13, TARGET_G14): Define.
13880         (TARGET_CPU_CPP_BUILTINS): Define __RL78_MUL_xxx__ and
13881         __RL78_Gxx__.
13882         (ASM_SPEC): Pass -mcpu on to assembler.
13883         * config/rl78/rl78.md (mulqi3): Add a clobber of AX.
13884         (mulqi3_rl78): Likewise.
13885         (mulhi3_g13): Likewise.
13886         (mulhi3): Generate the G13 or G14 versions of the insn directly.
13887         (mulsi3): Likewise.
13888         (mulhi3_g14): Add clobbers of AX and BC.
13889         (mulsi3_g14): Likewise.
13890         (mulsi3_g13): Likewise.
13891         (udivmodhi4, udivmodhi4_g14, udivmodsi4): New patterns.
13892         (udivmodsi4_g14, udivmodsi4_g13): New patterns.
13893         * config/rl78/rl78.opt (mmul): Initialise value to
13894         RL78_MUL_UNINIT.
13895         (mcpu): New option.
13896         (m13, m14, mrl78): New option aliases.
13897         * config/rl78/t-rl78 (MULTILIB_OPTIONS): Add mg13 and mg14.
13898         (MULTILIB_DIRNAMES): Add g13 and g14.
13899         * doc/invoke.texi: Document -mcpu and -mmul options.
13900
13901 2015-04-16  Richard Biener  <rguenther@suse.de>
13902
13903         * tree-ssa-ccp.c (likely_value): See if we have operands that
13904         are marked as never simulate again and return CONSTANT in this
13905         case.
13906         * tree-ssa-propagate.c (simulate_stmt): Mark stmts that do
13907         not have any operands that will be simulated again as
13908         not being simulated again.
13909
13910 2015-04-15  Uros Bizjak  <ubizjak@gmail.com>
13911
13912         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed):
13913         Merge with *cmpi<FPCMP:unord><MODEF:mode>_sse using enabled attribute.
13914         (*extendsfdf2_mixed): Merge with *extendsfdf2_sse using enabled
13915         attribute.
13916         (*truncdfsf_fast_mixed): Merge with *truncdfsf_fast_sse using
13917         enabled attribute.
13918         (*float<SWI48:mode><MODEF:mode>2_mixed): Rename from
13919         *float<SWI48:mode><MODEF:mode>2_sse.
13920         (*absneg<mode>2_mixed): Merge with *absneg<mode>2_sse using
13921         enabled attribute.
13922         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_sse using
13923         enabled attribute.
13924
13925 2015-04-15  Tom de Vries  <tom@codesourcery.com>
13926
13927         PR other/65487
13928         * function.c (push_dummy_function): New function.
13929         (init_dummy_function_start): Use push_dummy_function.
13930         (pop_dummy_function): New function.  Factored out of ...
13931         (expand_dummy_function_end): ... here.
13932         * function.h (push_dummy_function, pop_dummy_function): Declare.
13933         * passes.c (pass_manager::dump_passes): Use push_dummy_function and
13934         pop_dummy_function.
13935         * tree-chkp.c (chkp_gate): Handle cgraph_node::get (cfun->decl) == NULL.
13936
13937 2015-04-15  Jeff Law  <law@redhat.com>
13938
13939         PR tree-optimization/47679
13940         * tree-ssa-dom.c (build_and_record_new_cond): Moved to avoid
13941         need for forward declaration in upcoming changes.
13942         (record_conditions, record_edge_info): Likewise.
13943
13944         PR rtl-optimization/42522
13945         * cse.c (fold_rtx): Try to simplify a ZERO_EXTRACT or
13946         SIGN_EXTRACT as a whole object rather than simplifying
13947         its operand.
13948
13949 2015-04-15  Jakub Jelinek  <jakub@redhat.com>
13950
13951         PR ipa/65765
13952         * ipa-icf-gimple.c (func_checker::compare_bb): For GIMPLE_NOP
13953         and GIMPLE_PREDICT use break instead of return true. For
13954         GIMPLE_EH_DISPATCH, compare dispatch region.
13955
13956 2015-04-14  Matthew Wahab  <matthew.wahab@arm.com>
13957
13958         * doc/extend.texi (__sync Builtins): Simplify some text.  Update
13959         details about the implementation.  Make clear preference for
13960         __atomic builtins.  Reduce possibility of future change.
13961
13962 2015-04-15  Nick Clifton  <nickc@redhat.com>
13963
13964         * config/rx/rx.opt (mallow-string-insns): New option.
13965         * config/rx/rx.c (RX_BUILTIN_RMPA): Disable the use of this
13966         builtin if string instructions are denied.
13967         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Define
13968         __RX_ALLOW_STRING_INSNS__ or __RX_DISALLOW_STRING_INSNS__, as
13969         appropriate.
13970         (ASM_SPEC): Pass -mno-allow-string-insns on to the assembler.
13971         * config/rx/rx.md (movstr): Enable pattern only if string
13972         instructions are allowed.
13973         (rx_movstr, rx_strend, movmemsi, rx_movmem): Likewise.
13974         (cmpstrnsi, cmpstrsi, rx_cmpstrn, rmpa): Likewise.
13975         * config/rx/t-rx (MULTILIB_OPTIONS): Add mno-allow-string-insns.
13976         (MULTILIB_DIRNAMES): Add no-strings.
13977         * doc/invoke.texi: Document -mno-allow-string-insns.
13978
13979 2015-04-15  Alan Modra  <amodra@gmail.com>
13980
13981         PR target/65408
13982         PR target/58744
13983         PR middle-end/36043
13984         * calls.c (load_register_parameters): Don't load past end of
13985         mem unless suitably aligned.
13986
13987 2015-04-15  Nick Clifton  <nickc@redhat.com>
13988
13989         * config/rl78/rl78.c (rl78_expand_prologue): Mark large stack
13990         decrement instruction as being frame related.
13991         (rl78_print_operand_1): Handle 'p' modifier to add +0 to HL
13992         based addresses.
13993         If zero extending a function address enclose the operation in
13994         %code(...).
13995         (rl78_preferred_reload_class): New function.
13996         (TARGET_PREFERRED_RELOAD_CLASS): Define.
13997         * config/rl78/rl78.md: Remove useless constraints in expanders.
13998         (mulqi3_rl78): Remove + qualifier on input-only operand 1.
13999         (mulhi3_rl78): Likewise.
14000         (mulhi3_g13): Likewise.
14001         (mulsi3_rl78): Likewise.
14002         (es_addr): Move to before the multiply patterns.
14003
14004 2015-04-15  Alan Modra  <amodra@gmail.com>
14005
14006         * function.h (struct emit_status): Delete x_first_insn, x_last_insn
14007         and sequence_stack.  Add seq.
14008         (seq_stack): Delete.
14009         * function.c (prepare_function_start): Don't access x_last_insn.
14010         * emit-rtl.h (get_current_sequence, get_topmost_sequence): New.
14011         (get_insns, set_first_insn, get_last_insn, set_last_insn): Use them.
14012         * emit_rtl.c (start_sequence, push_topmost_sequence,
14013         pop_topmost_sequence, end_sequence, in_sequence_p, init_emit): Use
14014         sequence accessors.
14015         (get_last_insn_anywhere, add_insn_after_nobb, add_insn_before_nobb,
14016         remove_insn): Likewise.  Simplify.
14017         * config/m32c/m32c.c (m32c_leaf_function_p): Use push_topmost_sequence
14018         and pop_topmost_sequence.
14019         (m32c_function_needs_enter): Use get_topmost_sequence.  Ignore
14020         debug insns.
14021         * config/rs6000/rs6000.c (rs6000_call_aix): Use get_current_sequence.
14022
14023 2015-04-14  Yvan Roux  <yvan.roux@linaro.org>
14024
14025         PR target/65729
14026         * lra-constraints.c (prohibited_class_reg_set_mode_p): Restore and fix
14027         the assertiion.
14028
14029 2015-04-14  Uros Bizjak  <ubizjak@gmail.com>
14030
14031         * config/i386/i386.h (LEGACY_INT_REG_P): New define.
14032         (LEGACY_INT_REGNO_P): Ditto.
14033         (GENERAL_REGNO_P): Use LEGACY_INT_REGNO_P.
14034         (ANY_MASK_REG_P): Remove.
14035         (BND_REG_P): Rename from ANY_BND_REG_P.
14036         * config/i386/i386.c (print_reg): Use LEGACY_INT_REG_P to print
14037         legacy integer registers.  Do not handle MMX_REG_P in a special way.
14038         Merge 64byte and 32byte SSE handling.
14039
14040 2015-04-14  Nick Clifton  <nickc@redhat.com>
14041
14042         * expr.c (expand_assignment): Force an address offset computation
14043         into a register before changing its mode.
14044         (expand_expr_real_1): Likewise.
14045
14046 2015-04-14  Alan Lawrence  <alan.lawrence@arm.com>
14047
14048         * config/aarch64/arm_neon.h (vst1_lane_f32, vst1_lane_f64,
14049         vst1_lane_p8, vst1_lane_p16, vst1_lane_s8, vst1_lane_s16,
14050         vst1_lane_s32, vst1_lane_s64, vst1_lane_u8, vst1_lane_u16,
14051         vst1_lane_u32, vst1_lane_u64, vst1q_lane_f32, vst1q_lane_f64,
14052         vst1q_lane_p8, vst1q_lane_p16, vst1q_lane_s8, vst1q_lane_s16,
14053         vst1q_lane_s32, vst1q_lane_s64, vst1q_lane_u8, vst1q_lane_u16,
14054         vst1q_lane_u32, vst1q_lane_u64): Reimplement with pointer dereference
14055         and __aarch64_vget_lane_any.
14056
14057 2015-04-14  Jakub Jelinek  <jakub@redhat.com>
14058
14059         PR rtl-optimization/65761
14060         * cfgrtl.c (rtl_split_edge): For EDGE_CROSSING split, use
14061         get_last_bb_insn (after) instead of NEXT_INSN (BB_END (after)).
14062
14063 2015-04-14  Richard Biener  <rguenther@suse.de>
14064
14065         * graphite-scop-detection.c: Do not include cp/cp-tree.h.
14066         (graphite_can_represent_scev): Use POINTER_TYPE_P.
14067
14068 2015-04-14  Richard Biener  <rguenther@suse.de>
14069
14070         PR tree-optimization/65758
14071         * tree-ssa-ccp.c (get_value_from_alignment): Adjust mask test
14072         against -1.
14073         (ccp_lattice_meet): Likewise.
14074         (bit_value_unop): Likewise.
14075         (bit_value_binop): Likewise.
14076         (bit_value_assume_aligned): Likewise.
14077
14078 2015-04-14  Christian Bruel  <christian.bruel@st.com>
14079
14080         * execute_dwarf2_frame (dw_frame_pointer_regnum): Reinitialize for each
14081         function.
14082
14083 2015-04-14  Marc Glisse  <marc.glisse@inria.fr>
14084
14085         PR tree-optimization/63387
14086         * match.pd ((x unord x) | (y unord y) -> (x unord y),
14087         (x unord x) | (x unord y) -> (x unord y)): New simplifications.
14088
14089 2015-04-14  Uros Bizjak  <ubizjak@gmail.com>
14090
14091         * config/i386/predicates.md (any_QIreg_operand): Rename from
14092         q_regs_operand.  Do not process subregs.
14093         (QIreg_operand): Use QI_REGNO_P predicate.
14094         (ext_QIreg_operand): Ditto.
14095         (ext_register_operand): Ditto.
14096         * config/i386/i386.md (TEST splitters): Use QIreg_operand predicate.
14097         (AND splitters): Ditto.
14098         (AND with -65536 splitter): Add SWI48 mode for operand 0.
14099         (AND with -256 splitter): Use any_QIreg_operand predicate and
14100         SWI248 mode for operand 0.
14101         (AND with -65281 splitter): Use QIreg_operand predicate and SWI248
14102         mode for operand 0.
14103         (SETCC + MOVZBL peepholes): Update for renamed any_QIreg_operand.
14104
14105 2015-04-13  Gerald Pfeifer  <gerald@pfeifer.com>
14106
14107         * doc/plugins.texi: Rewrite first introductory paragraph.
14108
14109 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
14110
14111         * tree-vrp.c (nonnull_arg_p): THIS pointers and references are non-zero.
14112         (gimple_stmt_nonzero_warnv_p): Reference return values are non-zero.
14113
14114 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
14115
14116         * ipa-profie.c (ipa_profile): Check number of parameters
14117         and possible polymorphic call targets before
14118         devirtualizing.
14119
14120 2015-04-13  Uros Bizjak  <ubizjak@gmail.com>
14121
14122         * config/i386/i386.md (*bmi2_umul<mode><dwi>3_1): Merge from
14123         *bmi2_umulsidi3_1 and *bmi2_umulditi3_1 using DWIH mode iterator.
14124
14125 2015-04-13  Richard Biener  <rguenther@suse.de>
14126
14127         PR tree-optimization/65204
14128         * tree-ssa-ccp.c (evaluate_stmt): Always evaluate address
14129         takens for bit-CCP.
14130
14131 2015-04-13  Richard Biener  <rguenther@suse.de>
14132
14133         PR target/65660
14134         * config/i386/i386.c (bdver1_cost): Double cond_taken_branch_cost
14135         and cond_not_taken_branch_cost to 4 and 2.
14136         (bdver2_cost): Likewise.
14137         (bdver3_cost): Likewise.
14138         (bdver4_cost): Likewise.
14139
14140 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
14141
14142         * hash-table.h (hash_table constructor): Add mem stats.
14143         (alloc_entries): Likewise.
14144
14145 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
14146
14147         * ipa-cp.c (ipcp_driver): Relase prev_edge.
14148         * passes.c (execute_one_pass): Only add transform if pass has one.
14149
14150 2015-04-12  Joseph Myers  <joseph@codesourcery.com>
14151
14152         * config/i386/i386.c (ix86_option_override_internal): Don't set
14153         -fprefetch-loop-arrays if optimizing for size.
14154
14155 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
14156             Gerald Pfeifer  <gerald@pfeifer.com>
14157
14158         * doc/contrib.texi (Contributors): Add Martin Jambor and
14159         Michael Matz.
14160
14161 2015-04-12  Jakub Jelinek  <jakub@redhat.com>
14162
14163         * BASE-VER: Set to 6.0.0.
14164
14165         PR tree-optimization/65747
14166         * ipa-icf-gimple.c (func_checker::compare_operand): Use compare_operand
14167         rather than compare_ssa_name for OBJ_TYPE_REF_OBJECT.
14168
14169 2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
14170
14171         * doc/invoke.texi (-Wmemset-transposed-args): Break a long
14172         sentence.  Improve grammar.
14173
14174 2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
14175
14176         * doc/contrib.texi (Contributors): Add Maxim Kuvyrkov.
14177
14178 2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
14179
14180         PR ipa/65743
14181         * ipa-inline-transform.c (speculation_removed): Remove static var.
14182         (check_speculations): New function.
14183         (clone_inlined_nodes): Do not check spculations.
14184         (inline_call): Call check_speculations.
14185         * ipa-prop.c (ipa_make_edge_direct_to_target): Do not
14186         consider non-invariants.
14187
14188 2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
14189             Martin Liska  <mliska@suse.cz>
14190
14191         PR ipa/65722
14192         * ipa-icf.c (sem_item::compare_cgraph_references): function and
14193         variable can not match.
14194         (sem_item::update_hash_by_addr_refs): Fix handling of virtual tables.
14195         (sem_variable::equals_wpa): Fix checking of DECL_FINAL_P patch.
14196
14197 2015-04-11  Jakub Jelinek  <jakub@redhat.com>
14198
14199         PR tree-optimization/65735
14200         * tree-ssa-threadedge.c (fsm_find_control_statement_thread_paths):
14201         Remove visited_phis argument, add visited_bbs, avoid recursing into the
14202         same bb rather than just into the same phi node.
14203         (thread_through_normal_block): Adjust caller.
14204
14205 2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
14206
14207         * doc/contrib.texi (Contributors): Add Ira Rosen.
14208
14209 2015-04-11  Benno Schulenberg  <bensberg@justemail.net>
14210
14211         * gcov.c (find_source): Fix miswording in error message.
14212         * config/i386/i386.c (ix86_handle_cconv_attribute): Likewise.
14213         (ix86_expand_sse_comi_round): Fix typo in error message.
14214
14215 2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
14216
14217         * doc/contrib.texi (Contributors): Add Laurynas Biveinis.
14218
14219 2015-04-10  Gerald Pfeifer  <gerald@pfeifer.com>
14220
14221         * doc/contrib.texi (Contributors): Update Joe Buck's entry.
14222
14223 2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>
14224
14225         PR target/65710
14226         * lra-assigns.c (spill_for): Update smallest_bad_spills_num.
14227         Print bad_spills_num and insn_pseudos_num.
14228
14229 2015-04-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14230
14231         PR target/65694
14232         * config/arm/arm.c (arm_canonicalize_comparison): Use ARM_SIGN_EXTEND
14233         when creating +1 values for SImode.
14234
14235 2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>
14236
14237         PR target/65729
14238         * lra-constraints.c (prohibited_class_reg_set_mode_p): Comment the
14239         assert.
14240
14241 2015-04-10  Jakub Jelinek  <jakub@redhat.com>
14242             Iain Sandoe  <iain@codesourcery.com>
14243
14244         PR target/65351
14245         * configure: Regenerate.
14246
14247 2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>
14248
14249         PR target/65671
14250         * config/i386/sse.md: Generate vextract32x4 if AVX-512DQ is disabled.
14251
14252 2015-04-09  Gerald Pfeifer  <gerald@pfeifer.com>
14253
14254         * doc/contrib.texi (Contributors): Add John Marino.
14255
14256 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
14257
14258         PR tree-optimization/65709
14259         * ubsan.c (instrument_mem_ref): Use TREE_TYPE (base) instead of
14260         TREE_TYPE (TREE_TYPE (t)).
14261
14262 2015-04-09  Vladimir Makarov  <vmakarov@redhat.com>
14263
14264         PR target/65710
14265         * lra-int.h (lra_bad_spill_regno_start): New.
14266         * lra.c (lra_bad_spill_regno_start): New.
14267         (lra): Set up lra_bad_spill_regno_start.  Set up
14268         lra_constraint_new_regno_start unconditionally.
14269         * lra-assigns.c (spill_for): Use lra_bad_spill_regno_start for
14270         spill preferences.
14271
14272 2015-04-09  Marek Polacek  <polacek@redhat.com>
14273             Jakub Jelinek  <jakub@redhat.com>
14274
14275         PR middle-end/65554
14276         * gimple-fold.c (gimple_fold_builtin_memory_op): Update comment.
14277         (fold_ctor_reference): Use STRIP_USELESS_TYPE_CONVERSION instead
14278         of STRIP_NOPS.
14279
14280 2015-04-09  Segher Boessenkool  <segher@kernel.crashing.org>
14281
14282         PR rtl-optimization/65693
14283         * combine.c (is_parallel_of_n_reg_sets): Move outside of
14284         #ifndef HAVE_cc0.
14285
14286 2015-04-09  Georg-Johann Lay  <avr@gjlay.de>
14287
14288         PR target/65296
14289         * config/avr/driver-avr.c (avr_devicespecs_file): Don't specify a
14290         device specs file if "device-specs%s" didn't resolve to a path.
14291
14292 2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>
14293
14294         PR target/65676
14295         * config/i386/i386.c (fixup_modeless_constant): New.
14296         (ix86_expand_args_builtin): Fixup modeless constant operand.
14297         (ix86_expand_round_builtin): Ditto.
14298         (ix86_expand_special_args_builtin): Ditto.
14299         (ix86_expand_builtin): Ditto.
14300
14301 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
14302
14303         PR target/65693
14304         * config/i386/i386.md (*udivmod<mode>4_pow2): Allow
14305         any pow2 integer in between 2 and 0x80000000U inclusive.
14306
14307 2015-04-08  Segher Boessenkool  <segher@kernel.crashing.org>
14308
14309         PR rtl-optimization/65693
14310         * combine.c (is_parallel_of_n_reg_sets): Change first argument
14311         from an rtx_insn * to an rtx.
14312         (try_combine): Adjust both callers.  Use it once more.
14313
14314 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
14315
14316         * tree-chkp.c (chkp_find_const_bounds_var): Remove.
14317         (chkp_make_static_const_bounds): Search existing
14318         symbol by assembler name.  Use make_decl_one_only.
14319         (chkp_get_zero_bounds_var): Remove node search which
14320         is now performed in chkp_make_static_const_bounds.
14321         (chkp_get_none_bounds_var): Likewise.
14322
14323 2015-04-08  Michael Witten  <mfwitten@gmail.com>
14324
14325         * doc/extend.texi (Attribute Syntax): Add a trailing semicolon
14326         to an example.
14327
14328 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
14329
14330         * tree.h (CONVERT_EXPR_P): Commentary typo fix.
14331
14332 2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>
14333
14334         * doc/extend.texi (__sync Builtins): Fix grammar.
14335
14336 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
14337
14338         * doc/cfg.texi (GIMPLE statement iterators): Fix typo.
14339
14340 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
14341
14342         * varasm.c (emit_local): Move definition of align.
14343
14344 2015-04-08  Julian Brown  <julian@codesourcery.com>
14345
14346         * config/nvptx/mkoffload.c (process): Support variable mapping.
14347
14348 2015-03-27  Trevor Saunders  <tbsaunde@tbsaunde.org>
14349
14350         * config/alpha/alpha.c (alpha_use_linkage): Change type of slot to
14351         alpha_links **.
14352         (alpha_write_one_linkage): Correct typo.
14353
14354 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
14355
14356         * ipa-comdats.c (propagate_comdat_group): Walk through thunks.
14357
14358 2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>
14359
14360         * doc/install.texi (bootstrap-lto-noplugin): Rewrite.
14361
14362 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
14363
14364         * tree-chkp.h (chkp_insert_retbnd_call): New.
14365         * tree-chkp.c (chkp_insert_retbnd_call): New.
14366         * ipa-split.c (insert_bndret_call_after): Remove.
14367         (split_function): Use chkp_insert_retbnd_call.
14368         * cgraphunit.c (cgraph_node::expand_thunk): Build returned
14369         bounds for instrumented functions.
14370
14371 2015-04-07  Jan Hubicka  <hubicka@ucw.cz>
14372
14373         PR ipa/65540
14374         * calls.c (initialize_argument_information): When producing tail
14375         call also turn SSA_NAMES passed by references to original PARM_DECLs
14376
14377 2015-04-07  Vladimir Makarov  <vmakarov@redhat.com>
14378
14379         PR target/65648
14380         * lra-remat.c (do_remat): Process input and non-input insn
14381         registers separately.
14382
14383 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
14384
14385         PR debug/65678
14386         * valtrack.c (debug_lowpart_subreg): New function.
14387         (dead_debug_insert_temp): Use it.
14388
14389         PR middle-end/65680
14390         * expr.c (get_inner_reference): Handle bit_offset that doesn't fit
14391         into signed HOST_WIDE_INT the same as negative bit_offset.
14392
14393 2015-04-07  Ilya Enkovich  <ilya.enkovich@intel.com>
14394
14395         * ipa-comdats.c (ipa_comdats): Visit all thunks
14396         to set proper comdat group.
14397
14398 2015-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14399
14400         PR target/65489
14401         * config/arm/arm.c (arm_legitimate_constant_p_1): Remove restriction
14402         on constants for NEON VSTRUCT modes.
14403
14404 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
14405             Iain Sandoe  <iain@codesourcery.com>
14406
14407         PR target/65351
14408         * configure: Regenerate.
14409
14410 2015-04-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
14411
14412         PR target/65614
14413         * config/rs6000/rs6000.c (struct processor_costs): Add cost field
14414         for SF->DF conversions to make FLOAT_EXTEND more expensive, so
14415         that LFD is used to load double constants instead of LFS.  Add
14416         defaults for all costs structures.  Add comments for missing
14417         initialization fields.
14418         (size32_cost): Likewise.
14419         (size64_cost): Likewise.
14420         (rs64a_cost): Likewise.
14421         (mpccore_cost): Likewise.
14422         (ppc403_cost): Likewise.
14423         (ppc405_cost): Likewise.
14424         (ppc440_cost): Likewise.
14425         (ppc476_cost): Likewise.
14426         (ppc601_cost): Likewise.
14427         (ppc603_cost): Likewise.
14428         (ppc604_cost): Likewise.
14429         (ppc604e_cost): Likewise.
14430         (ppc620_cost): Likewise.
14431         (ppc630_cost): Likewise.
14432         (ppccell_cost): Likewise.
14433         (ppc750_cost): Likewise.
14434         (ppc7450_cost): Likewise.
14435         (ppc8540_cost): Likewise.
14436         (ppce300c2c3_cost): Likewise.
14437         (ppce500mc_cost): Likewise.
14438         (ppce500mc64_cost): Likewise.
14439         (ppce5500_cost): Likewise.
14440         (ppce6500_cost): Likewise.
14441         (titan_cost): Likewise.
14442         (power4_cost): Likewise.
14443         (power6_cost): Likewise.
14444         (power7_cost): Likewise.
14445         (power8_cost): Likewise.
14446         (ppca2_cost): Likewise.
14447         (rs6000_rtx_costs): Make FLOAT_EXTEND use SFDF_convert field.
14448
14449         * config/rs6000/rs6000.md (extendsfdf2_fpr): Generate XSCPSGNDP
14450         instead of XXLOR to copy SFmode to clear out dirty bits created
14451         when SFmode denormals are generated.
14452         (mov<mode>_hardfloat, FMOVE32 case): Likewise.
14453         (truncdfsf2_fpr): Add support for ISA 2.07 XSRSP instruction.
14454
14455 2015-04-06  Evandro Menezes  <e.menezes@samsung.com>
14456
14457         * doc/invoke.texi (AARCH64/mtune): Add exynos-m1 as an option.
14458         * config/aarch64/aarch64-cores.def (exynos-m1): New core.
14459         * config/aarch64/aarch64-tune.md: Regenerate.
14460
14461 2015-04-06  Evandro Menezes  <e.menezes@samsung.com>
14462
14463         * doc/invoke.texi (ARM/mtune): Add "exynos-m1" as an option.
14464         * config/arm/arm.c (arm_issue_rate): Specify "3" for "exynosm1".
14465         * config/arm/arm-cores.def (exynos-m1): New core.
14466         * config/arm/arm-tune.md: Regenerate.
14467         * config/arm/arm-tables.opt: Add entry for "exynos-m1".
14468         * config/arm/bpabi.h: Likewise.
14469
14470 2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>
14471
14472         * ipa-cp (set_single_call_flag): Remove too
14473         restrictive assert.
14474
14475 2015-04-06  Ilya Verbin  <ilya.verbin@intel.com>
14476
14477         * config/i386/intelmic-mkoffload.c (generate_host_descr_file): Call
14478         GOMP_offload_unregister from the destructor.
14479
14480 2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>
14481
14482         * ipa-chkp.c (chkp_maybe_create_clone): Reset cdtor
14483         flags for instrumentation thunk.
14484         (chkp_produce_thunks): Likewise.
14485
14486 2015-04-05  Martin Liska  <mliska@suse.cz>
14487
14488         PR ipa/65665
14489         * ipa-icf.c (sem_function::equals_wpa): Verify that IPA CP
14490         has computed data structure.
14491         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
14492
14493 2015-04-04  Jan Hubicka  <hubicka@ucw.cz>
14494
14495         * invoke.texi (inline-unit-growth): Increase growth to 20%
14496         * params.def (PARAM_INLINE_UNIT_GROWTH): Likewise.
14497
14498 2015-04-04  Vladimir Makarov  <vmakarov@redhat.com>
14499
14500         PR target/65647
14501         * lra-int.h (LRA_MAX_REMATERIALIZATION_PASSES): New.  Add its
14502         value checking.
14503         (lra_rematerialization_iter): New.
14504         * lra.c (lra): Initialize lra_rematerialization_iter.
14505         Stop updating lra_constraint_new_regno_start after switching of
14506         inheritance and rematerialization.
14507         * lra-remat.c (lra_rematerialization_iter): New.
14508         (lra_remat): Add printing pass iteration.  Do rematerialization
14509         only first LRA_MAX_REMATERIALIZATION_PASSES iterations.
14510
14511 2015-04-04  Richard Biener  <rguenther@suse.de>
14512
14513         PR tree-optimization/64909
14514         PR tree-optimization/65660
14515         * tree-vectorizer.h (vect_get_known_peeling_cost): Adjust
14516         to take a cost vector for scalar iteration cost.
14517         (vect_get_single_scalar_iteration_cost): Likewise.
14518         * tree-vect-loop.c (vect_get_single_scalar_iteration_cost):
14519         Compute the scalar iteration cost into a cost vector.
14520         (vect_get_known_peeling_cost): Use the scalar cost vector to
14521         account for the cost of the peeled iterations.
14522         (vect_estimate_min_profitable_iters): Likewise.
14523         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
14524         Likewise.
14525
14526 2015-04-04  Alan Modra  <amodra@gmail.com>
14527
14528         PR target/65576
14529         PR target/65240
14530         * config/rs6000/predicates.md (zero_reg_mem_operand): Exclude
14531         0.0 constant unless TARGET_VSX.
14532         * config/rs6000/rs6000.md (extenddftf2_internal): Remove last
14533         alternative.
14534
14535 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
14536
14537         PR ipa/65654
14538         * ipa-inline-transform.c (inline_call): Skip sanity check to work
14539         around the ICE
14540
14541 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
14542
14543         PR ipa/65655
14544         * ipa-inline-analysis.c (edge_set_predicate): Do not redirect
14545         speculative indirect edges to avoid ordering issue.
14546
14547 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
14548
14549         PR ipa/65076
14550         * ipa-inline.c (edge_badness): Add combined size to the denominator.
14551
14552 2015-04-03  Jakub Jelinek  <jakub@redhat.com>
14553
14554         * omp-low.c (scan_omp_parallel, scan_omp_task, scan_omp_target): Set
14555         TYPE_ARTIFICIAL on the .omp_data* types.
14556
14557 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
14558
14559         * cgraphunit.c (cgraph_node::expand_thunk): Don't expand
14560         instrumentation thunks.
14561
14562 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
14563
14564         * config/i386/i386.c (ix86_expand_call): Avoid nested
14565         PARALLEL in returned call value.
14566
14567 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
14568
14569         * lto-cgraph.c (input_cgraph_1): Always link instrumented
14570         assembler name with original one.
14571
14572 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
14573
14574         * config/i386/i386.c (ix86_register_priority): Use AX_REG.
14575
14576 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
14577
14578         Revert parts of r216820.
14579         * config/i386/i386.md (movqi_internal): Correct type calculation
14580         for alternatives 3 and 5.
14581
14582 2015-04-02  Jakub Jelinek  <jakub@redhat.com>
14583
14584         PR preprocessor/61977
14585         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Don't
14586         predefine __vector/__bool/__pixel macros nor context sensitive
14587         macros for CLK_ASM.
14588         * config/spu/spu-c.c (spu_cpu_cpp_builtins): Similarly.
14589
14590 2015-04-02  John David Anglin  <danglin@gcc.gnu.org>
14591
14592         * config/pa/pa.c (pa_output_move_double): Directly handle register
14593         indexed memory operand.  Simplify handling of scaled register indexed
14594         memory operands.
14595
14596 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
14597
14598         PR driver/65444
14599         * config/i386/linux-common.h (MPX_SPEC): New.
14600         (CHKP_SPEC): Add MPX_SPEC.
14601         * doc/invoke.texi (-fcheck-pointer-boudns): Document
14602         possible issues with '-z bndplt' support in linker.
14603
14604 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
14605
14606         * config/i386/sync.md (UNSPEC_FILD_ATOMIC, UNSPEC_FIST_ATOMIC): New.
14607         (loaddi_via_fpu): Use UNSPEC_FILD_ATOMIC.
14608         (storedi_via_fpu): Use UNSPEC_FIST_ATOMIC.
14609         * reg-stack.c (get_true_reg): Change UNSPEC_LDA to UNSPEC_FILD_ATOMIC.
14610         (subst_stack_regs_pat): Change UNSPEC_STA to UNSPEC_FIST_ATOMIC.
14611
14612 2015-04-01  Uros Bizjak  <ubizjak@gmail.com>
14613
14614         * config/i386/sync.md (UNSPEC_MOVA): Remove.
14615         (atomic_load<mode>): Change operand 0 predicate to
14616         nonimmediate_operand and fix up the destination when needed.
14617         Use UNSPEC_LDA.
14618         (atomic_loaddi_fpu): Use UNSPEC_LDA.
14619         (atomic_store<mode>): Change operand 1 predicate to
14620         nonimmendate_operand and move the source to register when needed.
14621         Use UNSPEC_STA.
14622         (atomic_store<mode>_1): Use UNSPEC_STA.
14623         (atomic_storedi_fpu): Change operand 1 to nonimmediate_operand.
14624         Fix moves from memory operand.  Use UNSPEC_STA.
14625
14626 2015-04-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
14627
14628         * expmed.c (strict_volatile_bitfield_p): Check that the access will
14629         not cross a MODESIZE boundary.
14630         (store_bit_field, extract_bit_field): Added assertions in the
14631         strict volatile bitfields code path.
14632
14633 2015-04-01  Max Ostapenko  <m.ostapenko@partner.samsung.com>
14634
14635         PR target/65624
14636         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_builtin):
14637         Increase args array size by one to avoid buffer overflow.
14638
14639 2015-03-31  Jan Hubicka  <hubicka@ucw.cz>
14640
14641         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
14642         split_part.
14643         * ipa-inline.c (edge_badness): Add wrapper penalty.
14644         (sum_callers): Move up.
14645         (inline_small_functions): Set single_caller.
14646         * ipa-inline.h (inline_summary): Add single_caller.
14647         * ipa-split.c (split_function): Set split_part.
14648         (cgraph_node::create_clone): Do not shadow decl; copy split_part.
14649         * cgraph.h (cgraph_node): Add split_part.
14650
14651 2015-03-31  Uros Bizjak  <ubizjak@gmail.com>
14652
14653         PR target/58945
14654         * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
14655         Do not split operands 0 and operands 2 to halfmode.
14656         (atomic_compare_and_swap<mode>): Update for
14657         atomic_compare_and_swap<dwi>_doubleword changes.
14658
14659 2015-03-31  Jan Hubicka  <hubicka@ucw.cz>
14660
14661         * tree.c (need_assembler_name_p): Artificial types have no ODR names.
14662         * ipa-devirt.c (warn_odr): Do not try to apply ODR cache when
14663         no caching is done.
14664
14665 2015-03-31  Martin Liska  <mliska@suse.cz>
14666
14667         PR ipa/65557
14668         * ipa-icf.c (sem_function::equals_wpa): Check if IPA CP
14669         has already filled up function summary.
14670         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
14671
14672 2015-03-31  Richard Biener  <rguenther@suse.de>
14673
14674         * tree-sra.c (create_access_replacement): Drop under-/over-alignment
14675         of types.
14676
14677 2015-03-31  Dominik Vogt  <vogt@linux.vnet.ibm.com>
14678
14679         * config/s390/s390.c (s390_function_num_hotpatch_hw): Allow hotpatching
14680         nested functions.
14681         (s390_reorg): Adapt to new signature of s390_function_num_hotpatch_hw.
14682         (s390_asm_output_function_label): Adapt to new signature of
14683         s390_function_num_hotpatch_hw
14684         Optimise the code generating assembler output.
14685         Add comments to assembler file.
14686
14687 2015-03-31  Richard Biener  <rguenther@suse.de>
14688
14689         PR middle-end/65626
14690         * tree-cfgcleanup.c (fixup_noreturn_call): Only split the block
14691         of the noreturn call so it is last and cleanup_control_flow_bb
14692         can do the CFG part.
14693
14694 2015-03-31  Ilya Enkovich  <ilya.enkovich@intel.com>
14695
14696         PR target/65531
14697         * ipa-chkp.c (chkp_maybe_create_clone): Don't set
14698         same_comdat_group for external symbols.
14699         * symtab.c (symtab_node::verify_symtab_nodes): Avoid
14700         infinite same_comdat_group traversal loop.
14701
14702 2015-03-31  Jakub Jelinek  <jakub@redhat.com>
14703
14704         PR plugins/61176
14705         * Makefile.in (install-plugin): Add all gcc/*.{h,def} files
14706         automatically to $headers.
14707
14708 2015-03-30  Jakub Jelinek  <jakub@redhat.com>
14709
14710         PR ipa/65610
14711         * ipa-utils.h (inlined_polymorphic_ctor_dtor_block_p): Declare.
14712         * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p): New
14713         function.
14714         (decl_maybe_in_construction_p, noncall_stmt_may_be_vtbl_ptr_store):
14715         Use it.
14716         * ipa-prop.c (param_type_may_change_p): Likewise.
14717         * tree-ssa-live.c: Include ipa-utils.h and its dependencies.
14718         (remove_unused_scope_block_p): Add in_ctor_dtor_block
14719         argument.  Before inlining, preserve
14720         inlined_polymorphic_ctor_dtor_block_p blocks and the outermost block
14721         with FUNCTION_DECL BLOCK_ABSTRACT_ORIGIN inside of them.  Adjust
14722         recursive calls.
14723         (remove_unused_locals): Adjust remove_unused_scope_block_p caller.
14724
14725 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
14726
14727         PR ipa/65076
14728         * ipa-inline.c (edge_badness): Base denominator on callee's
14729         grwoth squared.
14730
14731 2015-03-27  Martin Jambor  <mjambor@suse.cz>
14732
14733         PR ipa/65478
14734         * params.def (PARAM_IPA_CP_RECURSION_PENALTY) : New.
14735         (PARAM_IPA_CP_SINGLE_CALL_PENALTY): Likewise.
14736         * ipa-prop.h (ipa_node_params): New flags node_within_scc and
14737         node_calling_single_call.
14738         * ipa-cp.c (count_callers): New function.
14739         (set_single_call_flag): Likewise.
14740         (initialize_node_lattices): Count callers and set single_flag_call if
14741         necessary.
14742         (incorporate_penalties): New function.
14743         (good_cloning_opportunity_p): Use it, dump new flags.
14744         (propagate_constants_topo): Set node_within_scc flag if appropriate.
14745         * doc/invoke.texi (ipa-cp-recursion-penalty,
14746         ipa-cp-single-call-pentalty): Document.
14747
14748 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
14749
14750         PR ipa/65588
14751         * symtab.c (symtab_node::get_partitioning_class): Register vars
14752         are duplicated.
14753         * varpool.c (symbol_table::output_variables) Do not assemble unefined
14754         decls for non-symbols.
14755
14756 2015-03-27  H.J. Lu  <hongjiu.lu@intel.com>
14757
14758         PR target/65248
14759         * output.h (default_binds_local_p_2): New.
14760         * varasm.c (default_binds_local_p_2): Renamed to ...
14761         (default_binds_local_p_3): This.  Don't return true on protected
14762         data symbol if protected data may be external.
14763         (default_binds_local_p): Use default_binds_local_p_3.
14764         (default_binds_local_p_1): Likewise.
14765         (default_binds_local_p_2): New.
14766         * config/i386/i386.c (TARGET_BINDS_LOCAL_P): Set to
14767         default_binds_local_p_2 if TARGET_MACHO is undefined.
14768
14769 2015-03-27  Jakub Jelinek  <jakub@redhat.com>
14770
14771         PR target/65593
14772         * config/i386/i386.c (legitimize_pic_address): If base
14773         is SYMBOL_REF or LABEL_REF using %rip addressing, force
14774         it to reg to avoid PLUS of SYMBOL_REF/LABEL_REF and register.
14775
14776 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
14777
14778         PR target/65531
14779         * symtab.c (symtab_node::verify_symtab_nodes): Fix verification of
14780         comdat groups.
14781
14782 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
14783
14784         PR ipa/65600
14785         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Fix the case
14786         of optimized out indirect call.
14787         (redirect_to_unreachable): Always build symbol table node for
14788         BUILT_IN_UNREACHABLE
14789
14790 2015-03-27  Vladimir Makarov  <vmakarov@redhat.com>
14791
14792         PR target/65407
14793         * ira-costs.c (record_reg_classes): Process all constraint string
14794         containing 0-9.
14795
14796 2015-03-27  Bernd Schmidt  <bernds@codesourcery.com>
14797
14798         * config/c6x/c6x.md (movmisalign<mode>): Use MEM_P, not
14799         memory_operand.
14800
14801         PR target/65052
14802         * config/c6x/constraints.md (S3): New constraint.
14803         * config/c6x/c6x.md (real_jump): Use it.
14804
14805 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
14806
14807         PR middle-end/65595
14808         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Only
14809         do redirection if the call is not optimized out.
14810
14811 2015-03-27  Ilya Enkovich  <ilya.enkovich@intel.com>
14812
14813         PR target/65495
14814         * c-family/c.opt (fcheck-pointer-bounds): List supported languages.
14815         (fchkp-check-incomplete-type): Add LTO.
14816         (fchkp-zero-input-bounds-for-main): Likewise.
14817         (fchkp-first-field-has-own-bounds): Likewise.
14818         (fchkp-narrow-bounds): Likewise.
14819         (fchkp-narrow-to-innermost-array): Likewise.
14820         (fchkp-use-static-bounds): Likewise.
14821         (fchkp-use-static-const-bounds): Likewise.
14822         (fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
14823
14824 2015-03-27  Marek Polacek  <polacek@redhat.com>
14825
14826         * gimple-iterator.h (gsi_prev_nondebug): Fix typo.
14827
14828 2015-03-27  Marek Polacek  <polacek@redhat.com>
14829
14830         PR sanitizer/65583
14831         * ubsan.c (ubsan_create_edge): New function.
14832         (instrument_bool_enum_load): Call it.
14833         (instrument_nonnull_arg): Likewise.
14834         (instrument_nonnull_return): Likewise.
14835         (instrument_object_size): Likewise.
14836
14837 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
14838
14839         * lto-streamer.h (class lto_location_cache): Turn loc_cache into
14840         auto_vec.
14841
14842 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
14843
14844         PR lto/65536
14845         * lto-streamer.h (class lto_location_cache): New.
14846         (struct data_in): Add location_cache.
14847         (lto_input_location): Update prototype.
14848         (stream_input_location_now): New.
14849         * streamer-hooks.h (struct streamer_hooks): Make input_location to take
14850         pointer to location.
14851         (stream_input_location): Update.
14852         * ipa-devirt.c: Include streamer-hooks.h and lto-streamer.h
14853         (warn_odr): Apply location cache before warning.
14854         (lto_input_location): Update prototype.
14855         * gimple-streamer-in.c (input_phi, input_gimple_stmt):
14856         Use stream_input_location_now.
14857         * lto-streamer-in.c (lto_location_cache::current_cache): New static
14858         variable.
14859         (lto_location_cache::cmp_loc): New function.
14860         (lto_location_cache::apply_location_cache): New function.
14861         (lto_location_cache::accept_location_cache): New function.
14862         (lto_location_cache::revert_location_cache): New function.
14863         (lto_location_cache::input_location): New function.
14864         (lto_input_location): Do location caching.
14865         (stream_input_location_now): New function.
14866         (input_eh_region, input_struct_function_base): Use
14867         stream_input_location_now.
14868         (lto_data_in_create): use new.
14869         (lto_data_in_delete): Use delete.
14870         * tree-streamer-in.c (unpack_ts_block_value_fields,
14871         unpack_ts_omp_clause_value_fields, streamer_read_tree_bitfields,
14872         lto_input_ts_exp_tree_pointers): Update for cached location api.
14873
14874 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
14875
14876         PR ipa/65076
14877         * passes.def: Add pass_nothrow.
14878         * ipa-pure-const.c: (pass_data_nothrow): New.
14879         (pass_nothrow): New.
14880         (pass_nothrow::execute): New.
14881         (make_pass_nothrow): New.
14882         * tree-pass.h (make_pass_nothrow): Declare.
14883
14884 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
14885
14886         * ipa-inline-analysis.c (redirect_to_unreachable): Be prepared for
14887         edge to change by speculation resolution or redirection.
14888         (edge_set_predicate): Likewise.
14889         (inline_summary_t::duplicate): Likewise.
14890         (remap_edge_summaries): Likewise.
14891
14892 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
14893
14894         * ipa-inline.c (check_maybe_up, check_maybe_down, check_match):
14895         New macros.
14896         (can_inline_edge_p): Relax option matching for always inline functions.
14897
14898 2015-03-26  Uros Bizjak  <ubizjak@gmail.com>
14899
14900         PR target/65561
14901         * config/i386/sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm):
14902         Check operand 4 and operand 0 for equality.
14903         (avx512f_vextract<shuffletype>32x4_1_maskm):
14904         Check operand 6 and operand 0 for equality.
14905         (vec_extract_lo_<mode>_maskm): Check operand 2 and operand 0
14906         for equality.
14907         (vec_extract_hi_<mode>_maskm): Ditto.
14908
14909 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
14910
14911         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Do not bring
14912         dead calls back to live.
14913         (cgraph_edge::verify_count_and_frequency): Move cgraph/cfg frequency
14914         cross check to ...
14915         (cgraph_node::verify_node): ... here; verify only callee edges,
14916         not caller.
14917         * cif-code.def (CILK_SPAWN): New code.
14918
14919 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
14920
14921         * ipa-inline-analysis.c (redirect_to_unreachable): New function.
14922         (edge_set_predicate): Use it to mark unreachable edges.
14923         (inline_summary_t::duplicate): Remove unnecesary code.
14924         (remap_edge_summaries): Likewise.
14925         (dump_inline_summary): Report contains_cilk_spawn.
14926         (compute_inline_parameters): Compute contains_cilk_spawn.
14927         (inline_read_section, inline_write_summary): Stream
14928         contains_cilk_spawn.
14929         * ipa-inline.c (can_inline_edge_p): Do not touch
14930         DECL_STRUCT_FUNCTION that may not be available;
14931         use CIF_CILK_SPAWN for cilk; fix optimization attribute checks;
14932         remove check for callee_fun->can_throw_non_call_exceptions and
14933         replace it by optimization attribute check; check for flag_exceptions.
14934         * ipa-inline-transform.c (inline_call): Maintain
14935         DECL_FUNCTION_PERSONALITY
14936         * ipa-inline.h (inline_summary): Add contains_cilk_spawn.
14937
14938 2015-03-26  Jakub Jelinek  <jakub@redhat.com>
14939
14940         PR tree-optimization/65551
14941         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use
14942         TYPE_PRECISION only for INTEGRAL_TYPE_P types.
14943
14944 2015-03-26  Richard Biener  <rguenther@suse.de>
14945
14946         PR middle-end/65555
14947         * tree-cfg.c (verify_gimple_call): Do not require a call to
14948         have no LHS if it wasn't recognized as control altering yet.
14949
14950 2015-03-26  Jakub Jelinek  <jakub@redhat.com>
14951
14952         PR tree-optimization/64715
14953         * passes.def: Add another instance of pass_object_sizes before ccp1.
14954         * tree-object-size.c (pass_object_sizes::execute): In
14955         first_pass_instance, only handle __bos (, 1) and __bos (, 3)
14956         calls, and keep the call in the IL, as {MIN,MAX}_EXPR of the
14957         __bos result and the computed constant.  Remove redundant
14958         checks, obsoleted by gimple_call_builtin_p test.
14959
14960         * var-tracking.c (variable_tracking_main_1): Don't track
14961         variables for targetm.no_register_allocation targets.
14962
14963 2015-03-26  Oleg Endo  <olegendo@gcc.gnu.org>
14964
14965         * config/sh/t-linux (DEFAULT_ENDIAN, MULTILIB_EXCEPTIONS): Remove.
14966         * config/sh/t-sh (MULTILIB_EXCEPTIONS): Handle default endian.
14967
14968 2015-03-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
14969
14970         PR target/65569
14971         * config/rs6000/rs6000.md (extenddftf2_fprs): On VSX systems use
14972         XXLXOR to create 0.0.  On pre-VSX systems make sure the constant
14973         0.0 is correctly setup.
14974         (extenddftf2_internal): Likewise.
14975
14976 2015-03-25  Sebastian Pop  <s.pop@samsung.com>
14977
14978         PR tree-optimization/65177
14979         * tree-ssa-threadupdate.c (verify_seme): Renamed verify_jump_thread.
14980         (bb_in_bbs): New.
14981         (duplicate_seme_region): Renamed duplicate_thread_path.  Redirect all
14982         edges not adjacent on the path to the original code.
14983
14984 2015-03-25  Uros Bizjak  <ubizjak@gmail.com>
14985
14986         PR bootstrap/65537
14987         * doc/install.texi (Building a native compiler): Document new
14988         bootstrap-lto-noplugin configuration.  Mention that bootstrap-lto
14989         configuration assumes that the host supports the linker plugin.
14990
14991 2015-03-25  Ilya Enkovich  <ilya.enkovich@intel.com>
14992
14993         PR target/65508
14994         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Set static
14995         chain for generated call.
14996
14997 2015-03-25  Richard Biener  <rguenther@suse.de>
14998
14999         * passes.c (pass_manager::execute_early_local_passes): Guard
15000         execution of pass_chkp_instrumentation_passes with
15001         flag_check_pointer_bounds.
15002         (pass_chkp_instrumentation_passes::gate): Likewise.
15003
15004 2015-03-25  Martin Liska  <mliska@suse.cz>
15005
15006         PR tree-optimization/65538
15007         * symbol-summary.h (function_summary::~function_summary):
15008         Relese memory for allocated summaries.
15009         (function_summary::release): New function.
15010
15011 2015-03-25  Jakub Jelinek  <jakub@redhat.com>
15012
15013         PR lto/65515
15014         * lto-streamer-out.c (DFS::worklist): New struct.
15015         (DFS::worklist_vec): New data member.
15016         (DFS::next_dfs_num): Remove.
15017         (DFS::DFS): Rewritten using worklist instead of recursion,
15018         using most of code from DFS::DFS_write_tree.
15019         (DFS::DFS_write_tree_body): Remove SINGLE_P argument, don't
15020         pass it to DFS_write_tree calls.
15021         (DFS::DFS_write_tree): Remove SINGLE_P argument, after
15022         quick initial checks push it into worklist_vec and return.
15023
15024 2015-03-25  Richard Biener  <rguenther@suse.de>
15025
15026         PR middle-end/65519
15027         * genmatch.c (expr::gen_transform): Re-write to avoid
15028         using gimple_build.
15029
15030 2015-03-25  Bin Cheng  <bin.cheng@arm.com>
15031
15032         * doc/sourcebuild.texi (arm_tune_string_ops_prefer_neon): New.
15033
15034 2015-03-25  Bin Cheng  <bin.cheng@arm.com>
15035
15036         * config/arm/arm.opt (print_tune_info): New option.
15037         * config/arm/arm.c (arm_print_tune_info): New function.
15038         (arm_file_start): Call arm_print_tune_info.
15039         * config/arm/arm-protos.h (struct tune_params): Add comment.
15040         * doc/invoke.texi (@item -mprint-tune-info): New item.
15041         (-mtune): mention it in ARM Option Summary.
15042
15043 2015-03-25  DJ Delorie  <dj@redhat.com>
15044
15045         * config/rl78/rl78.c (rl78_print_operand_1): Move 'p' test to
15046         correct clause.
15047
15048 2015-03-24  Jan Hubicka  <hubicka@ucw.cz>
15049             Martin Liska  <mliska@suse.cz>
15050
15051         * ipa-icf-gimple.h (return_with_result): Add missing colon to dump.
15052         * ipa-icf.c (sem_function::get_hash): Hash new declaration properties.
15053         (sem_item::add_type): New function.
15054         (sem_function::hash_stmt): Add TREE_TYPE of gimple_op.
15055         (sem_function::compare_polymorphic_p): Do not consider indirect calls.
15056         (sem_item_optimizer::update_hash_by_addr_refs): Add ODR type to hash.
15057         (sem_function::equals_wpa): Fix typo.
15058         * ipa-icf.h (sem_item::add_type): New function.
15059         (symbol_compare_hashmap_traits): Replace hashing of pointer with symbol
15060         order.
15061
15062 2015-03-24  Jakub Jelinek  <jakub@redhat.com>
15063
15064         PR tree-optimization/65533
15065         * tree-vect-slp.c (vect_build_slp_tree): Before re-trying
15066         with swapped operands, call vect_free_slp_tree on
15067         SLP_TREE_CHILDREN of child and truncate the SLP_TREE_CHILDREN
15068         vector.
15069
15070 2015-03-24  Richard Biener  <rguenther@suse.de>
15071
15072         PR middle-end/65517
15073         * tree-cfg.c (remove_edge_and_dominated_blocks): Mark loops
15074         for fixup if necessary.
15075
15076 2015-03-23  Sandra Loosemore  <sandra@codesourcery.com>
15077
15078         * doc/extend.texi (Function Attributes): Add @cindex entries
15079         for all attributes and regularize their format.  Delete text
15080         about long-obsolete 68HC11 and 68HC12 targets.  Move misplaced
15081         information about "eightbit_data", "tiny_data", and "model"
15082         variable attributes to the Variable Attributes section.  Fix
15083         some obvious typos and copy-editing issues.
15084         (Variable Attributes, Type Attributes): Likewise add/fix
15085         @cindex entries for all attributes.
15086
15087 2015-03-23  Jakub Jelinek  <jakub@redhat.com>
15088
15089         PR target/65523
15090         * tree-chkp.c (chkp_build_returned_bound): Ignore
15091         ERF_RETURNS_ARG calls if they have fewer than needed arguments.
15092
15093 2015-03-23  Oleg Endo  <olegendo@gcc.gnu.org>
15094
15095         PR target/65505
15096         * config/sh/predicates.md (simple_mem_operand,
15097         displacement_mem_operand): Add test for reg.
15098         (short_displacement_mem_operand): Test for displacement_mem_operand
15099         before invoking sh_disp_addr_displacement.
15100         * config/sh/constraints.md (Sdd, Sra): Simplify.
15101         * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1):
15102         Remove redundant displacement_mem_operand tests.
15103
15104 2015-03-23  Georg-Johann Lay  <avr@gjlay.de>
15105
15106         PR target/65296
15107         * config/avr/driver-avr.c (avr_devicespecs_file): Allow to specify
15108         the same -mmcu=MCU more than once.
15109
15110 2015-03-23  Jakub Jelinek  <jakub@redhat.com>
15111
15112         PR bootstrap/65522
15113         * ipa-devirt.c: Remove duplicate demangle.h include.
15114
15115         PR target/65504
15116         * config/i386/i386.c (ix86_copy_addr_to_reg): Set REG_POINTER
15117         on the pseudo.
15118         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Set
15119         REG_POINTER on *destptr after adjusting it for prologue size.
15120
15121         PR ipa/65521
15122         * ipa-icf.c (sem_item::update_hash_by_addr_refs): Hash
15123         ultimate_alias_target ()->order ints instead of
15124         ultimate_alias_target () pointers.
15125
15126 2015-03-23  Richard Biener  <rguenther@suse.de>
15127
15128         PR tree-optimization/65518
15129         * tree-vect-stmts.c (vectorizable_load): Reject single-element
15130         interleaving cases we generate absymal code for.
15131
15132 2015-03-23  Richard Biener  <rguenther@suse.de>
15133
15134         PR tree-optimization/65494
15135         * tree-vect-slp.c (vect_build_slp_tree): Do not (re-)allocate
15136         matches here.
15137         (vect_analyze_slp_instance): But do that here, always and once.
15138
15139 2015-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15140
15141         * expmed.c (synth_mult): Fix comment about multiplying by T-1 and
15142         adding T or multiplying by T+1 and subracting T.
15143
15144 2015-03-22  Jeff Law  <law@redhat.com>
15145
15146         PR rtl-optimization/64317
15147         * Makefile.in (OBJS): Add gcse-common.c
15148         * gcse.c: Include gcse-common.h
15149         (struct modify_pair_s): Move structure definition to gcse-common.h
15150         (compute_transp): Move function to gcse-common.c.
15151         (canon_list_insert): Similarly.
15152         (record_last_mem_set_info): Break out some code and put it into
15153         gcse-common.c.  Call into the new common code.
15154         (compute_local_properties): Pass additional arguments to compute_transp.
15155         * postreload-gcse.c: Include gcse-common.h and df.h
15156         (modify_mem_list_set, blocks_with_calls): New variables.
15157         (modify_mem_list, canon_modify_mem_list, transp): Likewise.
15158         (get_bb_avail_insn): Pass in the expression index too.
15159         (alloc_mem): Allocate memory for the new bitmaps and lists.
15160         (free_mem): Free memory for the new bitmaps and lists.
15161         (insert_expr_in_table): Record a bitmap index for each entry we
15162         add to the table.
15163         (record_last_mem_set_info): Call into common code in gcse-common.c.
15164         (get_bb_avail_insn): If no available insn was found in the requested
15165         BB.  If BB has a single predecessor, see if the expression is
15166         transparent in BB and available in that single predecessor.
15167         (compute_expr_transp): New wrapper for compute_transp.
15168         (eliminate_partially_redundant_load): Pass expression's bitmap_index
15169         to get_bb_avail_insn.  Compute next_pred_bb_end a bit later.
15170         (gcse_after_reload_main): If there are elements in the hash table,
15171         then compute transparency for all the elements in the hash table.
15172         * gcse-common.h: New file.
15173         * gcse-common.c: New file.
15174
15175 2015-03-22  Sandra Loosemore  <sandra@codesourcery.com>
15176
15177         * doc/cpp.texi (Search Path): Hyphenate "command-line" when used
15178         as an adjective.
15179         (System Headers): Likewise.
15180         (Ifdef): Likewise.
15181         (Traditional macros): Likewise.
15182         (Invocation): Likewise.
15183         (Option Index): Likewise.
15184         * doc/cppopts.texi (-M): Likewise.
15185         (-finput-charset): Likewise.
15186         (--help): Likewise.
15187         * doc.invoke.texi (AVR Options): Likewise.
15188         (V850 Options): Likewise.
15189
15190 2015-03-22  Jan Hubicka  <hubicka@ucw.cz>
15191
15192         PR ipa/65475
15193         * ipa-devirt.c: Include demangle.h
15194         (odr_type_d): Add field rtti_broken.
15195         (odr_subtypes_equivalent_p): Do not require name to match.
15196         (compare_virtual_tables): Fix typo; if type already has ODR violation,
15197         bypass the tests; be ready for function referneces in vtables that are
15198         not DECL_VIRTUAL; make warnings to be OPT_Wodr.
15199         (warn_odr): Give up for nameless types.
15200         (warn_types_mismatch): Report mismatch in mangled names;
15201         report mismatch in anonymous namespaces; look into component types to
15202         give useful error; report when mismatch is dragged in from other ODR
15203         type.
15204         (odr_types_equivalent_p): Match types for being polymorphic; avoid
15205         duplicated diagnostics.
15206         (add_type_duplicate): Reorder checks so more informative ones come
15207         first; fix typo; do not output "the extra base is defined here" when
15208         we did not warn.
15209         (BINFO_N_BASE_BINFOS): Relax sanity check.
15210
15211 2015-03-22  Martin Liska  <mliska@suse.cz>
15212             Jakub Jelinek  <jakub@redhat.com>
15213
15214         * config/i386/i386.c (def_builtin): Set deferred_isa_values for
15215         masks that can potentially include a builtin.
15216         (ix86_add_new_builtins): Introduce fast filter for isa values
15217         that cannot trigger builtin inclusion.
15218
15219 2015-03-22  Martin Liska  <mliska@suse.cz>
15220
15221         * ipa-icf.c (sem_item::update_hash_by_addr_refs): New function.
15222         (sem_item::update_hash_by_local_refs): Likewise.
15223         (sem_variable::get_hash): Empty line is fixed.
15224         (sem_item_optimizer::execute): Include adding of hash references.
15225         (sem_item_optimizer::update_hash_by_addr_refs): New function.
15226         (sem_item_optimizer::build_hash_based_classes): Use local hash.
15227         * ipa-icf.h (sem_item::update_hash_by_addr_refs): New function.
15228         (sem_item::update_hash_by_local_refs): Likewise.
15229
15230 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
15231
15232         PR ipa/65502
15233         * ipa-comdats.c (enqueue_references): Walk through thunks.
15234         (ipa_comdats): Likewise.
15235         (set_comdat_group_1): New function.
15236
15237 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
15238
15239         PR ipa/65475
15240         * ipa-devirt.c (add_type_duplicate): Prevail polymorphic type over
15241         non-polymorphic
15242
15243 2015-03-22  Dave Korn  <dave.korn.cygwin@gmail.com>
15244             Gerald Pfeifer  <gerald@pfeifer.com>
15245
15246         * doc/contrib.texi (Contributors): Update entry for Danny Smith.
15247
15248 2015-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
15249             Sandra Loosemore  <sandra@codesourcery.com>
15250
15251         * config/nios2/nios2-protos.h (nios2_adjust_call_address): Adjust
15252         function parameter declaration.
15253         * config/nios2/nios2.md (call,call_value,sibcall,sibcall_value):
15254         Update arguments to nios2_adjust_call_address().
15255         (sibcall_internal): Rename from *sibcall.
15256         (sibcall_value_internal): Rename from *sibcall_value.
15257         * config/nios2/nios2.c (nios2_emit_add_constant): New function.
15258         (nios2_large_got_address): Add target temp reg parameter.
15259         (nios2_got_address): Adjust call to nios2_large_got_address, add
15260         force_reg around it.
15261         (nios2_load_pic_address): Add target temp reg parameter, replace call
15262         to nios2_got_address with corresponding code.
15263         (nios2_legitimize_constant_address): Update call to
15264         nios2_load_pic_address.
15265         (nios2_adjust_call_address): Add temp reg parameter, update PIC case
15266         to use temp reg for PIC loading purposes.
15267         (nios2_asm_output_mi_thunk): Implement TARGET_ASM_OUTPUT_MI_THUNK.
15268         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
15269         (TARGET_ASM_OUTPUT_MI_THUNK): Likewise.
15270
15271 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
15272
15273         * doc/invoke.texi (-fno-diagnostics-show-caret): Fix
15274         usage of "the @option{...}".
15275         (-Wopenmp-simd): Likewise.
15276         (-fsanitize-recover): Likewise.
15277         (-fsanitize-undefined-trap-on-error): Likewise.
15278         (-flto): Likewise.
15279         (tracer-dynamic-coverage-feedback): Likewise.
15280         (reorder-block-duplicate-feedback): Likewise.
15281         (loop-unroll-jam-size): Likewise.
15282         (-B): Likewise.
15283         (-I-): Likewise.
15284         (-mabs=legacy): Likewise.
15285         (-mupper-regs-df): Likewise.
15286         (-mupper-regs-sf): Likewise.
15287         (-mpointers-to-nested-functions): Likewise.
15288
15289 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
15290
15291         * doc/extend.texi (Cilk Plus Builtins): Add markup.
15292
15293 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
15294
15295         * doc/invoke.texi (-fcheck-pointer-bounds): Copy-edit, add
15296         additional index entries and cross-references.
15297         (-fchkp-check-incomplete-type): Likewise.
15298         (-fchkp-first-field-has-own-bounds): Likewise.
15299         (-fchkp-narrow-to-innermost-array): Likewise.
15300         (-fchkp-use-fast-string-functions): Likewise.
15301         (-fchkp-use-nochk-string-functions): Likewise.
15302         (-fchkp-use-static-const-bounds): Likewise.
15303         (-fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
15304         (-fchkp-instrument-marked-only): Likewise.
15305         (-fchkp-use-wrappers): Likewise.
15306         (-static-libmpx): Likewise.
15307         (-static-libmpxwrappers): Likewise.
15308         * doc/extend.texi (bnd_legacy): Likewise.
15309         (bnd_instrument): Likewise.
15310         (bnd_variable_size): Likewise.
15311         (Pointer Bounds Checker builtins): Likewise.
15312
15313 2015-03-21  Tom de Vries  <tom@codesourcery.com>
15314
15315         PR tree-optimization/65458
15316         * cgraph.c (cgraph_node::dump): Handle parallelized_function field.
15317         * cgraph.h (cgraph_node): Add parallelized_function field.
15318         * lto-cgraph.c (lto_output_node): Write parallelized_function field.
15319         (input_overwrite_node): Read parallelized_function field.
15320         * omp-low.c (expand_omp_taskreg, finalize_task_copyfn): Set
15321         parallelized_function on cgraph_node for child_fn.
15322         * tree-parloops.c: Add include of plugin-api.h, ipa-ref.h and cgraph.h.
15323         Remove include of gt-tree-parloops.h.
15324         (parallelized_functions): Remove static variable.
15325         (parallelized_function_p): Rewrite using parallelized_function field of
15326         cgraph_node.
15327         (create_loop_fn): Remove adding to parallelized_functions.
15328         * Makefile.in (GTFILES): Remove tree-parloops.c
15329
15330 2015-03-20  Vladimir Makarov  <vmakarov@redhat.com>
15331
15332         PR rtl-optimization/64366
15333         * lra.c (lra_update_insn_regno_info): Consider regs in
15334         CALL_INSN_FUNCTION_USAGE memory.
15335
15336 2015-03-20  Richard Biener  <rguenther@suse.de>
15337
15338         PR middle-end/64715
15339         * tree-chrec.c (chrec_fold_poly_cst): Use useless_type_conversion_p
15340         for type comparison and gcc_checking_assert.
15341         (chrec_fold_plus_poly_poly): Likewise.
15342         (chrec_fold_multiply_poly_poly): Likewise.
15343         (chrec_convert_1): Likewise.
15344         * gimplify.c (gimplify_expr): Remove premature folding of
15345         &X + CST to &MEM[&X, CST].
15346
15347 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
15348
15349         * ipa-inline.c (can_inline_edge_p): Short circuit if inline_failed
15350         already is final.
15351         (ipa_inline): Recompute inline_failed codes.
15352         * cif-code.def (FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
15353         USES_COMDAT_LOCAL, ATTRIBUTE_MISMATCH, UNREACHABLE): Declare as
15354         CIF_FINAL_ERROR.
15355
15356 2015-03-20  Uros Bizjak  <ubizjak@gmail.com>
15357
15358         PR rtl-optimization/60851
15359         * recog.c (constrain_operands): Accept a pseudo register before reload
15360         for LRA enabled targets.
15361
15362 2015-03-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
15363
15364         PR target/65240
15365         * config/rs6000/predicates.md (easy_fp_constant): Remove special
15366         -ffast-math handling that kept non-0 constants live in the RTL
15367         until reload.  Remove logic testing the number of instructions it
15368         took to create a constant in a GPR that was never used, due to a
15369         test for soft-float earlier.
15370         (memory_fp_constant): Delete, no longer used.
15371
15372         * config/rs6000/rs6000.md (mov<MODE>_hardfloat): Remove
15373         alternatives for loading non-0 constants into GPRs for hard
15374         floating point that is no longer needed due to changes in
15375         easy_fp_constant.  Add support for loading 0.0 into GPRs.
15376         (mov<mode>_hardfloat32): Likewise.
15377         (mov<mode>_hardfloat64): Likewise.
15378         (mov<mode>_64bit_dm): Likewise.
15379         (movtd_64bit_nodm): Likewise.
15380         (pre-reload move FP constant define_split): Delete define_split,
15381         since it is no longer used.
15382         (extenddftf2_internal): Remove GHF constraints that are not valid
15383         for extenddftf2.
15384
15385 2015-03-19  Vladimir Makarov  <vmakarov@redhat.com>
15386
15387         PR rtl-optimization/63491
15388         * lra-constraints.c (check_and_process_move): Use src instead of
15389         sreg.  Remove some dead code.
15390
15391 2015-03-19  Jan Hubicka  <hubicka@ucw.cz>
15392
15393         PR ipa/65380
15394         * ipa-icf.c (sem_function::merge): Do not merge DECL_EXTERNAL symbols.
15395         (sem_variable::merge): Likewise.
15396
15397 2015-03-19  Martin Liska  <mliska@suse.cz>
15398
15399         PR ipa/65465
15400         * cgraphunit.c (cgraph_node::create_wrapper): Correctly reset
15401         all fields of cgraph_thunk_info.
15402
15403 2015-03-19  Ilya Enkovich  <ilya.enkovich@intel.com>
15404
15405         * ipa-chkp.c (chkp_maybe_create_clone): Don't try to
15406         clone instrumented thunks.
15407
15408 2015-03-19  Richard Biener  <rguenther@suse.de>
15409
15410         Revert
15411         2015-03-10  Richard Biener  <rguenther@suse.de>
15412
15413         PR middle-end/63155
15414         * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
15415         * tree-ssa-coalesce.c: Include timevar.h.
15416         (attempt_coalesce): Handle graph being NULL.
15417         (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
15418         Split out abnormal coalescing to ...
15419         (perform_abnormal_coalescing): ... this function.
15420         (coalesce_ssa_name): Perform abnormal coalescing without computing
15421         live/conflict.
15422         (verify_ssa_coalescing_worker): New function.
15423         (verify_ssa_coalescing): Likewise.
15424
15425 2015-03-19  Bernd Edlinger  <bernd.edlinger@hotmail.de>
15426             Jakub Jelinek  <jakub@redhat.com>
15427
15428         PR sanitizer/65400
15429         * tsan.c (instrument_gimple): Clear tail call flag on
15430         calls.
15431
15432 2015-03-19  Jakub Jelinek  <jakub@redhat.com>
15433
15434         PR sanitizer/65400
15435         * ipa-split.c (find_return_bb): Allow TSAN_FUNC_EXIT internal
15436         call in the return bb.
15437         (find_split_points): Add RETURN_BB argument, don't call
15438         find_return_bb.
15439         (split_function): Likewise.  Add ADD_TSAN_FUNC_EXIT argument,
15440         if true append TSAN_FUNC_EXIT internal call after the call to
15441         the split off function.
15442         (execute_split_functions): Call find_return_bb here.
15443         Don't optimize if TSAN_FUNC_EXIT is found in unexpected places.
15444         Adjust find_split_points and split_function calls.
15445
15446 2015-03-18  DJ Delorie  <dj@redhat.com>
15447
15448         * config/rl78/rl78-virt.md (andqi3_virt): Allow far operands.
15449         (iorqi3_virt): Likewise.
15450
15451 2015-03-18  Tom de Vries  <tom@codesourcery.com>
15452
15453         * tree-parloops.c (parallelize_loops): Make static.
15454         * tree-parloops.h (parallelize_loops): Remove extern declaration.
15455
15456 2015-03-18  Andrew Stubbs  <ams@codesourcery.com>
15457
15458         PR middle-end/64491
15459         Revert:
15460         2014-11-20  Andrew Stubbs  <ams@codesourcery.com>
15461
15462         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Warn if a loop
15463         condition would be removed due to undefined behaviour.
15464
15465 2015-03-18  Martin Liska  <mliska@suse.cz>
15466
15467         PR ipa/65432
15468         * cgraph.c (cgraph_node::get_create): Remove unnecessary
15469         xstrdup_for_dump wrapper.
15470         * ipa-icf.c (sem_item::dump): Use symtab_node::name instead of
15471         sem_item::name.
15472         (sem_function::equals): Wrap symtab_node::name and symtab_node::asm_name
15473         with xstrdup_for_dump.
15474         (sem_variable::equals): Likewise.
15475         (sem_item_optimizer::read_section): Use symtab_node::name instead of
15476         sem_item::name.
15477         (sem_item_optimizer::parse_funcs_and_vars): Likewise.
15478         (sem_item_optimizer::merge_classes): Wrap symtab_node::name and
15479         symtab_node::asm_name with xstrdup_for_dump.
15480         (congruence_class::dump): Use symtab_node::name instead of
15481         sem_item::name.
15482         * ipa-icf.h (symtab_node::name): Remove.
15483         (symtab_node::asm_name): Likewise.
15484
15485 2015-03-18  Jakub Jelinek  <jakub@redhat.com>
15486
15487         PR tree-optimization/65450
15488         * tree-vect-data-refs.c (vect_duplicate_ssa_name_ptr_info): New
15489         function.
15490         (vect_create_addr_base_for_vector_ref, vect_create_data_ref_ptr): Use
15491         it instead of duplicate_ssa_name_ptr_info.
15492
15493         PR target/65222
15494         * doc/invoke.texi: Add knl as x86 -march=/-mtune= CPU type.
15495
15496 2015-03-18  Richard Biener  <rguenther@suse.de>
15497
15498         * tree-data-ref.h (struct access_matrix): Remove.
15499         (AM_LOOP_NEST, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
15500         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
15501         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT): Likewise.
15502         (am_vector_index_for_loop): Likewise.
15503         (struct data_reference): Remove access_matrix member.
15504         (DR_ACCESS_MATRIX): Remove.
15505         (lambda_vector_new): Add comment.
15506         (lambda_matrix_new): Use XOBNEWVEC.
15507
15508 2015-03-18  Richard Biener  <rguenther@suse.de>
15509
15510         * tree-ssa-loop-ch.c (pass_data_ch): Remove TODO_cleanup_cfg.
15511         (pass_ch::execute): Cleanup the CFG only if we did sth.
15512         * tree-vect-generic.c (pass_data_lower_vector): Remove TODO_cleanup_cfg.
15513
15514 2015-03-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15515
15516         * expmed.c (synth_mult): Use std::swap instead of manually
15517         swapping algorithms.
15518
15519 2015-03-18  Jakub Jelinek  <jakub@redhat.com>
15520
15521         PR target/65078
15522         * config/i386/sse.md (movsi/movdi -> vec_extract_*_0 splitter): New.
15523
15524 2015-03-16  Georg-Johann Lay  <avr@gjlay.de>
15525
15526         PR target/65296
15527         * config/avr/avr.opt (-nodevicelib): New option.
15528         * doc/invoke.texi (AVR Options): Document it.
15529         * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC) [avr1]: Don't link
15530         libgcc.a, libc.a, libm.a.
15531         * config/avr/specs.h: Same.
15532         * config/avr/gen-avr-mmcu-specs.c (print_mcu): Don't print specs
15533         which don't (directly) depend on the device.  Print more help.
15534         (*avrlibc_devicelib) [-nodevicelib]: Don't link libdev.a.
15535         (*cpp): Don't define __AVR_DEV_LIB_NAME__.
15536         * config/avr/driver-avr.c: Remove -nodevicelib from option list in
15537         case of an error.
15538         (avr_devicespecs_file): Use suffix "%s" instead of absolute path
15539         for specs file name.
15540         * config/avr/avr-arch.h (avr_mcu_t) [.library_name]: Remove.
15541         * config/avr/avr-mcus.def: Adjust initializers and comments.
15542
15543 2015-03-16  Jan Hubicka  <hubicka@ucw.cz>
15544
15545         * tree-sra.c (ipa_sra_preliminary_function_checks): Use
15546         DECL_ONE_ONLY to check if decl is one only.
15547         * ipa-split.c (consider_split): Limit splitt of one only functions.
15548
15549 2015-03-16  Jakub Jelinek  <jakub@redhat.com>
15550
15551         PR tree-optimization/65427
15552         * tree-vect-generic.c (do_cond, expand_vector_scalar_condition): New
15553         functions.
15554         (expand_vector_operations_1): Handle BLKmode vector COND_EXPR.
15555
15556 2015-03-16  Marek Polacek  <polacek@redhat.com>
15557
15558         * cgraph.h (add_new_static_var): Remove declaration.
15559         * varpool.c (add_new_static_var): Remove function.
15560
15561 2015-03-16  Jakub Jelinek  <jakub@redhat.com>
15562
15563         * omp-low.c (expand_omp_target): Use auto_vec<tree, 11>
15564         instead of vec<tree> * with vec_alloc and release for args.
15565         Adjust all users.
15566
15567         PR middle-end/65431
15568         * omp-low.c (delete_omp_context): Only splay_tree_delete
15569         reduction_map in GIMPLE_OMP_TARGET is_gimple_omp_offloaded
15570         is_gimple_omp_oacc contexts.  Don't look at ctx->outer.
15571
15572 2015-03-16  Max Ostapenko  <m.ostapenko@partner.samsung.com>
15573
15574         PR sanitizer/64820
15575         * cfgexpand.c (align_base): New function.
15576         (alloc_stack_frame_space): Call it.
15577         (expand_stack_vars): Align prev_frame to be sure
15578         data->asan_vec elements aligned properly.
15579
15580 2015-03-16  Eric Botcazou  <ebotcazou@adacore.com>
15581
15582         PR middle-end/65409
15583         * expr.c (store_field): Do not do a direct block copy if the source is
15584         a PARALLEL with BLKmode.
15585
15586 2015-03-16  Tom de Vries  <tom@codesourcery.com>
15587
15588         PR middle-end/65414
15589         Revert:
15590         2015-03-12  Tom de Vries  <tom@codesourcery.com>
15591
15592         PR rtl-optimization/64895
15593         * lra-lives.c (check_pseudos_live_through_calls): Use
15594         actual_call_used_reg_set instead of call_used_reg_set, if available.
15595
15596 2015-03-16  Alan Modra  <amodra@gmail.com>
15597
15598         PR target/63150
15599         * config/rs6000/rs6000.md (bswapdi2): Remove one scratch reg.
15600         Modify Z->r bswapdi splitter to use dest in place of scratch.
15601         In r->Z and Z->r bswapdi splitter rename word_high, word_low
15602         to word1, word2 and rearrange logic to suit.
15603         (bswapdi2_64bit): Remove early clobber on Z->r alternative.
15604         (bswapdi2_ldbrx): Likewise.  Remove '??' on r->r.
15605         (bswapdi2_32bit): Remove early clobber on Z->r alternative.
15606         Add one '?' on r->r.  Modify Z->r splitter to avoid need for
15607         early clobber.
15608
15609 2015-03-14  Jakub Jelinek  <jakub@redhat.com>
15610
15611         PR tree-optimization/65369
15612         * tree-vect-stmts.c (vectorizable_load) <case dr_explicit_realign>:
15613         Set bump to vs * TYPE_SIZE_UNIT (elem_type) - 1 instead of
15614         (vs - 1) * TYPE_SIZE_UNIT (elem_type).
15615
15616         PR tree-optimization/65418
15617         * tree-ssa-reassoc.c (extract_bit_test_mask): If there
15618         are casts in the first PLUS_EXPR operand, ensure tbias and
15619         *totallowp are in the inner type.
15620
15621         PR rtl-optimization/65401
15622         * combine.c (rtx_equal_for_field_assignment_p): Add widen_x
15623         argument.  If true, adjust_address_nv of x with big-endian
15624         correction for the mode widening to GET_MODE (y).
15625         (make_field_assignment): Don't do MEM mode widening here.
15626         Use MEM_P instead of GET_CODE == MEM.
15627
15628 2015-03-13  Ilya Verbin  <ilya.verbin@intel.com>
15629
15630         * varpool.c (varpool_node::get_create): Don't set 'offloadable' flag for
15631         the external decls.
15632
15633 2015-03-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15634
15635         PR target/64600
15636         * config/arm/arm.c (arm_gen_constant, AND case): Use
15637         ARM_SIGN_EXTEND when constructing AND mask.
15638
15639 2015-03-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
15640
15641         * graph.c (print_graph_cfg): Make function names visible and append
15642         parenthesis to it.  Also make groups of basic blocks belonging to the
15643         same function visible.
15644
15645 2015-03-12  Richard Biener  <rguenther@suse.de>
15646
15647         PR middle-end/44563
15648         * tree-inline.c (gimple_expand_calls_inline): Walk BB backwards
15649         to avoid quadratic behavior with inline expansion splitting blocks.
15650         * tree-cfgcleanup.c (cleanup_tree_cfg_bb): Do not merge block
15651         with the successor if the predecessor will be merged with it.
15652         * tree-cfg.c (gimple_can_merge_blocks_p): We can't merge the
15653         entry block with its successor.
15654
15655 2015-03-13  Richard Biener  <rguenther@suse.de>
15656
15657         PR middle-end/44563
15658         * tree-cfgcleanup.c (split_bb_on_noreturn_calls): Remove.
15659         (cleanup_tree_cfg_1): Do not call it.
15660         (execute_cleanup_cfg_post_optimizing): Fixup the CFG here.
15661         (fixup_noreturn_call): Mark the stmt as control altering.
15662         * tree-cfg.c (execute_fixup_cfg): Do not dump the function
15663         here.
15664         (pass_data_fixup_cfg): Produce a dump file.
15665         * tree-ssa-dom.c: Include tree-cfgcleanup.h.
15666         (need_noreturn_fixup): New global.
15667         (pass_dominator::execute): Fixup queued noreturn calls.
15668         (optimize_stmt): Queue calls that became noreturn for fixup.
15669         * tree-ssa-forwprop.c (pass_forwprop::execute): Likewise.
15670         * tree-ssa-pre.c: Include tree-cfgcleanup.h.
15671         (el_to_fixup): New global.
15672         (eliminate_dom_walker::before_dom_childre): Queue calls that
15673         became noreturn for fixup.
15674         (eliminate): Fixup queued noreturn calls.
15675         * tree-ssa-propagate.c: Include tree-cfgcleanup.h.
15676         (substitute_and_fold_dom_walker): New member stmts_to_fixup.
15677         (substitute_and_fold_dom_walker::before_dom_children): Queue
15678         alls that became noreturn for fixup.
15679         (substitute_and_fold): Fixup queued noreturn calls.
15680
15681 2015-03-12  Jan Hubicka  <hubicka@ucw.cz>
15682
15683         * ipa-icf.c (sem_function::equals_wpa): Match CXX_CONSTRUCTOR_P
15684         and CXX_DESTURCTOR_P. For consutrctors match ODR type of class they
15685         are building; for methods check ODR type of class they belong to if
15686         they may lead to a polymorphic call.
15687         (sem_function::compare_polymorphic_p): Be bit smarter about testing
15688         when function may lead to a polymorphic call.
15689         (sem_function::compare_type_list): Remove.
15690         (sem_variable::equals): Update use of compatible_types_p.
15691         (sem_variable::parse_tree_refs): Remove.
15692         (sem_item_optimizer::filter_removed_items): Do not filter out CXX
15693         cdtor.
15694         * ipa-icf-gimple.c (func_checker::compare_decl): Do polymorphic
15695         matching here.
15696         (func_checker::compatible_polymorphic_types_p): Break out from ...
15697         (unc_checker::compatible_types_p): ... here.
15698         * ipa-icf-gimple.h (func_checker::compatible_polymorphic_types_p):
15699         Declare.
15700         (unc_checker::compatible_types_p): Update.
15701         * ipa-icf.h (compare_type_list, parse_tree_refs, compare_sections):
15702         Remove.
15703
15704 2015-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15705
15706         PR rtl-optimization/65235
15707         * simplify-rtx.c (simplify_binary_operation_1, VEC_SELECT case):
15708         When first element of vec_concat is const_int, calculate its size
15709         using second element.
15710
15711 2015-03-12  Richard Biener  <rguenther@suse.de>
15712
15713         PR middle-end/65270
15714         * fold-const.c (operand_equal_p): Fix ordering of resetting
15715         OEP_ADDRESS_OF and checking for it in the [TARGET_]MEM_REF case.
15716
15717 2015-03-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>
15718
15719         * config/s390/s390.c (s390_reorg): Move code to output nops after label
15720         to s390_reorg ().
15721         (s390_asm_output_function_label): Likewise.
15722         * config/s390/s390.c (s390_asm_output_function_label):
15723         Fix function label alignment with -mhtopatch.
15724         * config/s390/s390.md ("unspecv"): New values UNSPECV_NOP_2_BYTE,
15725         UNSPECV_NOP_4_BYTE and UNSPECV_NOP_6_BYTE
15726         ("nop_2_byte"): New define_insn.
15727         ("nop_4_byte"): Likewise.
15728         ("nop_6_byte"): Likewise.
15729         * doc/extend.texi (hotpatch): hotpatch attribute doc fixes.
15730         * doc/invoke.texi (-mhotpatch): -mhotpatch doc fixes.
15731
15732 2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>
15733
15734         PR target/65103
15735         * config/i386/i386.c (ix86_address_cost): Fix cost of a PIC
15736         register.
15737
15738 2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>
15739
15740         PR target/65044
15741         * toplev.c (process_options): Restrict Pointer Bounds Checker
15742         usage with Address Sanitizer.
15743
15744 2015-03-12  Richard Biener  <rguenther@suse.de>
15745
15746         * tree-cfg.c (gimple_split_block): Remove loop finding stmt
15747         to split on.
15748         * omp-low.c (expand_omp_taskreg): Split block before removing
15749         the stmt.
15750         (expand_omp_target): Likewise.
15751         * ubsan.c (ubsan_expand_null_ifn): Adjust stmt if we replaced it.
15752         * tree-parloops.c (create_call_for_reduction_1): Pass a proper
15753         stmt to split_block.
15754
15755 2015-03-12  Tom de Vries  <tom@codesourcery.com>
15756
15757         PR rtl-optimization/64895
15758         * lra-lives.c (check_pseudos_live_through_calls): Use
15759         actual_call_used_reg_set instead of call_used_reg_set, if available.
15760
15761 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
15762
15763         * cgraph.c (cgraph_node::release_body): Free function_in_decl_state.
15764         (cgraph_node::remove): Likewise.
15765         (cgraph_node::get_untransformed_body): Likewise.
15766         * varpool.c (varpool_node::remove): Likewise.
15767         (varpool_node::get_constructor): Add sanity check.
15768
15769 2015-03-11  Sandra Loosemore  <sandra@codesourcery.com>
15770
15771         * doc/invoke.texi (-fgnu89-inline): Remove discussion about
15772         old GCC versions.
15773         (-fabi-compat-version): Likewise.
15774         (-ffriend-injection): Likewise.
15775         (-Wdeclaration-after-statement): Likewise.
15776         (-fomit-frame-pointer): Likewise.
15777         (-ftree-coalesce-inlined-vars): Likewise.
15778         (-fvisibility=): Likewise.
15779         * doc/extend.texi (Typeof): Likewise.
15780         (Zero Length): Likewise.
15781         (Escaped Newlines): Likewise.
15782         (Compound Literals): Likewise.
15783         (Function Attributes): Likewise.
15784         (Label Attributes): Likewise.
15785         (Type Attributes): Likewise.
15786         (Function Names): Likewise.
15787         (Other Builtins): Likewise.
15788         (Function Specific Option Pragmas): Likewise.
15789         (C++ Interface): Likewise.
15790
15791 2015-03-11  Thomas Schwinge  <thomas@codesourcery.com>
15792
15793         * config/nvptx/nvptx.h (LIBSTDCXX): Define to "gcc".
15794
15795 2015-03-11  Marek Polacek  <polacek@redhat.com>
15796
15797         PR tree-optimization/65388
15798         * tree-ssa-tail-merge.c (same_succ_def::equal): Fix typo in comparison.
15799
15800 2015-03-10  Georg-Johann Lay  <avr@gjlay.de>
15801
15802         PR target/65296
15803         * configure.ac [avr]: Check as for options -mrmw, --mlink-relax.
15804         * configure: Regenerate.
15805         * config.in: Regenerate.
15806         * doc/invoke.texi (AVR Options) [-mrmw]: Document it.
15807         [-mn-flash]: Document it.
15808         [__AVR_ARCH__]: Document avrtiny.
15809
15810         * config/avr/gen-avr-mmcu-specs.c (config.h): Include it.
15811         (*asm_relax): Only define spec if HAVE_AS_AVR_MLINK_RELAX_OPTION.
15812         (*asm_rmw): Only define spec if HAVE_AS_AVR_MRMW_OPTION.
15813
15814 2015-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15815
15816         * doc/invoke.texi: Add missing cpu values (z196, zEC12).
15817
15818 2015-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
15819
15820         PR target/65242
15821         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Do not
15822         allow reloads of PLUS in floating point/VSX registers.
15823
15824 2015-03-11  Junmo Park  <junmoz.park@samsung.com>
15825
15826         * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Add
15827         crypto_sha256_fast.
15828         (cortex_a57_crypto_complex): Add crypto_sha256_slow.
15829
15830 2015-03-11  Richard Biener  <rguenther@suse.de>
15831
15832         PR tree-optimization/65310
15833         * tree-sra.c (build_ref_for_offset): Also preserve larger
15834         alignment.
15835
15836 2015-03-11  Marat Zakirov  <m.zakirov@samsung.com>
15837
15838         * asan.c (instrument_derefs): Disable instrumentation on asan-globals=0.
15839
15840 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
15841
15842         PR target/65368
15843         * config/i386/i386.md (bmi2_bzhi_<mode>3): Removed define_insn,
15844         new define_expand.
15845         (*bmi2_bzhi_<mode>3, *bmi2_bzhi_<mode>3_1): New define_insns.
15846
15847 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
15848
15849         * ipa-icf.c (sem_function::equals_wpa): Move here some checks from ...
15850         (sem_function::equals_wpa): ... here.
15851
15852 2015-03-10  Marek Polacek  <polacek@redhat.com>
15853             Jakub Jelinek  <jakub@redhat.com>
15854
15855         PR sanitizer/65367
15856         * ubsan.c (ubsan_expand_objsize_ifn): Update GSI instead of GSI_ORIG
15857         when only removing the statement.  Handle expanding UBSAN_OBJECT_SIZE
15858         separately.
15859
15860 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
15861
15862         PR target/65286
15863         * config/rs6000/t-linux: For powerpc64* target set
15864         MULTILIB_OSDIRNAMES instead of MULTIARCH_DIRNAME.
15865
15866 2015-03-10  Richard Biener  <rguenther@suse.de>
15867
15868         PR middle-end/44563
15869         * tree-inline.c (copy_cfg_body): Skip block mapped to entry/exit
15870         for redirect_all_calls.
15871
15872 2015-03-10  Marek Polacek  <polacek@redhat.com>
15873
15874         * gdbinit.in (pcfun): Define and document.
15875
15876 2015-03-10  Ilya Verbin  <ilya.verbin@intel.com>
15877
15878         * config/i386/intelmic-mkoffload.c: Include intelmic-offload.h instead
15879         of libgomp-plugin.h.
15880         (find_target_compiler): Support a case when the path to gcc is
15881         specified in the PATH env var, so COLLECT_GCC doesn't contain a path.
15882         (generate_host_descr_file): Use GOMP_DEVICE_INTEL_MIC from
15883         intelmic-offload.h instead of OFFLOAD_TARGET_TYPE_INTEL_MIC from
15884         libgomp-plugin.h.
15885         (main): Use GCC_INSTALL_NAME as target_driver_name.
15886         * config/i386/t-intelmic (CFLAGS-mkoffload.o): Add GCC_INSTALL_NAME
15887         define.
15888         (mkoffload.o): Remove obsolete include path and defines.
15889         (mkoffload$(exeext)): Use $(LINKER) instead of $(COMPILER).
15890
15891 2015-03-10  Richard Biener  <rguenther@suse.de>
15892
15893         PR middle-end/63155
15894         * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
15895         * tree-ssa-coalesce.c: Include timevar.h.
15896         (attempt_coalesce): Handle graph being NULL.
15897         (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
15898         Split out abnormal coalescing to ...
15899         (perform_abnormal_coalescing): ... this function.
15900         (coalesce_ssa_name): Perform abnormal coalescing without computing
15901         live/conflict.
15902         (verify_ssa_coalescing_worker): New function.
15903         (verify_ssa_coalescing): Likewise.
15904
15905 2015-03-10  Georg-Johann Lay  <avr@gjlay.de>
15906
15907         PR target/65296
15908         * config.gcc (extra_options) [avr]: Remove.
15909         (extra_gcc_objs) [avr]: Use driver-avr.o, avr-devices.o.
15910         (tm_file) [avr]: Add avr/specs.h after avr/avr.h.
15911         (tm_defines) [avr-*-rtems*]: Add WITH_RTEMS.
15912
15913         * config/avr/avr.opt (config/avr/avr-arch.h): Remove include.
15914         (-mmcu=): Add Var and MissingArgError properties.
15915         (-march=): Remove.
15916         * config/avr/genmultilib.awk: Use -mmcu= instead of -march=.
15917         * config/avr/t-multilib: Regenerate.
15918         * config/avr/specs.h: New file.
15919         * config/avr/driver-avr.c: New file.
15920         * config/avr/genopt.sh: Remove file.
15921         * config/avr/avr-tables.opt: Remove file.
15922         * config/avr/predicates.md (avr_current_arch): Rename to avr_arch.
15923         * config/avr/avr-c.c: Same.
15924         * avr-arch.h: Same.
15925         (avr_current_device): Remove proto.
15926         * config/avr/avr.h (avr_current_arch): Rename to avr_arch.
15927         (AVR_HAVE_8BIT_SP): Don't depend on avr_current_device.
15928         (EXTRA_SPEC_FUNCTIONS): Define.
15929         (avr_devicespecs_file): New specs function proto.
15930         (DRIVER_SELF_SPECS): Use device-specs-file spec function.
15931         * config/avr/avr.c (avr_current_arch): Rename to avr_arch.
15932         (avr_current_device): Remove definition and usage.
15933         (avr_set_core_architecture): New static function.
15934         (avr_option_override): Use it.
15935         * config/avr/avr-devices.c (diagnostic.h, avr-arch.h): Include them.
15936         (mcu_name): New static array.
15937         (comparator, avr_archs_str, avr_mcus_str): New static functions.
15938         (avr_inform_devices, avr_inform_core_architectures): New functions.
15939         * config/avr/gen-avr-mmcu-specs.c (avr-arch.h, specs.h): Include.
15940         (avrlibc.h) [WITH_AVRLIBC]: Include.
15941         (../rtems.h, rtems.h) [WITH_RTEMS]: Include.
15942         (print_mcu): Rewrite from scratch.
15943         * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC, STARTFILE_SPEC):
15944         Forward to avr-specific specs defined in device-specs file.
15945         * config/avr/t-avr (driver-avr.o): New rule.
15946         (avr-devices.o): Depend on avr-arch.h.
15947         (avr-mcus): No more depend on avr-tables.opt.
15948         (avr-tables.opt): Remove rule.
15949         (install-device-specs): Use INSTALL_DATA, not INSTALL_PROGRAM.
15950
15951 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
15952
15953         * c-family/c.opt (fchkp-use-wrappers): New.
15954         * ipa-chkp.c (CHKP_WRAPPER_SYMBOL_PREFIX): New.
15955         (chkp_wrap_function): New.
15956         (chkp_build_instrumented_fndecl): Support wrapped
15957         functions.
15958         * doc/invoke.texi (-fcheck-pointer-bounds): New.
15959         (-fchkp-check-incomplete-type): New.
15960         (-fchkp-first-field-has-own-bounds): New.
15961         (-fchkp-narrow-bounds): New.
15962         (-fchkp-narrow-to-innermost-array): New.
15963         (-fchkp-optimize): New.
15964         (-fchkp-use-fast-string-functions): New.
15965         (-fchkp-use-nochk-string-functions): New.
15966         (-fchkp-use-static-bounds): New.
15967         (-fchkp-use-static-const-bounds): New.
15968         (-fchkp-treat-zero-dynamic-size-as-infinite): New.
15969         (-fchkp-check-read): New.
15970         (-fchkp-check-write): New.
15971         (-fchkp-store-bounds): New.
15972         (-fchkp-instrument-calls): New.
15973         (-fchkp-instrument-marked-only): New.
15974         (-fchkp-use-wrappers): New.
15975         (-static-libmpx): New.
15976         (-static-libmpxwrappers): New.
15977
15978 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
15979
15980         * config/i386/linux-common.h (LIBMPX_WRAPPERSSPEC): New.
15981         (CHKP_SPEC): Add wrappers library.
15982         * c-family/c.opt (static-libmpxwrappers): New.
15983
15984 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
15985
15986         * config/i386/linux-common.h (LIBMPX_LIBS): New.
15987         (LIBMPX_SPEC): New.
15988         (CHKP_SPEC): New.
15989         * gcc.c (CHKP_SPEC): New.
15990         (LINK_COMMAND_SPEC): Add CHKP_SPEC.
15991         * c-family/c.opt (static-libmpx): New.
15992
15993 2015-03-10  Richard Biener  <rguenther@suse.de>
15994
15995         PR middle-end/44563
15996         * cgraph.h (struct cgraph_edge_hasher): Add hash overload
15997         for compare_type.
15998         * cgraph.c (cgraph_edge_hasher::hash): Inline htab_hash_pointer.
15999         (cgraph_update_edge_in_call_site_hash): Use cgraph_edge_hasher::hash.
16000         (cgraph_add_edge_to_call_site_hash): Likewise.
16001         (cgraph_node::get_edge): Likewise.
16002         (cgraph_edge::set_call_stmt): Likewise.
16003         (cgraph_edge::remove_caller): Likewise.
16004
16005 2015-03-10  Chung-Ju Wu  <jasonwucj@gmail.com>
16006
16007         * config/nds32/nds32.h (callee_saved_regs_size): Rename to ...
16008         (callee_saved_gpr_regs_size): ... this.
16009         (callee_saved_regs_first_regno): Rename to ...
16010         (callee_saved_first_gpr_regno): ... this.
16011         (callee_saved_regs_last_regno) Rename to ...
16012         (callee_saved_last_gpr_regno): ... this.
16013         * config/nds32/nds32.c (nds32_compute_stack_frame): Adjust renamed
16014         variables.
16015         (nds32_initial_elimination_offset): Likewise.
16016         (nds32_expand_prologue): Likewise.
16017         (nds32_expand_epilogue): Likewise.
16018         (nds32_expand_prologue_v3push): Likewise.
16019         (nds32_expand_epilogue_v3pop): Likewise.
16020         * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
16021         Adjust renamed variables.
16022         (nds32_output_stack_pop): Likewise.
16023
16024 2015-03-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16025
16026         * dominance.c (nearest_common_dominator_for_set): Fix A_Dominated_by_B
16027         code in comment.
16028
16029 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
16030
16031         PR rtl-optimization/65321
16032         * cfgexpand.c (expand_debug_expr): Ensure shift amount isn't wider
16033         than shift mode.
16034         * var-tracking.c (use_narrower_mode): Likewise.
16035
16036 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
16037
16038         PR tree-optimization/65355
16039         * varasm.c (notice_global_symbol): Do not produce RTL.
16040         * symtab.c (symtab_node::can_increase_alignment_p): Check for section
16041         anchor.
16042         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Do not
16043         check for section anchors.
16044
16045 2015-03-10  Alan Modra  <amodra@gmail.com>
16046
16047         PR target/65286
16048         * config.gcc (powerpc*-*-linux*): Arrange for powerpc64le-linux
16049         to be single-arch by default.  Set cpu_is_64bit for powerpc64
16050         given --with-cpu=native.
16051         * config/rs6000/t-fprules: Do not set default MULTILIB vars.
16052         * config/rs6000/t-linux (MULTIARCH_DIRNAME): Support powerpc64
16053         and powerpc64le.
16054         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Test
16055         rs6000_isa_flags rather than TARGET_64BIT.
16056
16057 2015-03-09  Yoshinori Sato  <ysato@users.sourceforge.jp>
16058             Kaz Kojima  <kkojima@gcc.gnu.org>
16059
16060         * config/sh/t-linux (MULTILIB_EXCEPTIONS): Define for m2a cases.
16061
16062 2015-03-09  Jakub Jelinek  <jakub@redhat.com>
16063
16064         PR lto/65361
16065         * ipa-devirt.c (add_type_duplicate): Don't use DECL_CONTEXT
16066         on a TREE_BINFO, instead use BINFO_TYPE.
16067
16068 2015-03-09  Richard Biener  <rguenther@suse.de>
16069
16070         PR middle-end/65270
16071         * tree-core.h (enum operand_equal_flag): Add OEP_ADDRESS_OF.
16072         * fold-const.c (operand_equal_p): When recursing for ADDR_EXPRs
16073         operand set OEP_ADDRESS_OF.  Clear it when recursing to non-bases
16074         of that.  When comparing dereferences compare alignment.
16075         When comparing MEM_REFs or TARGET_MEM_REFs compare dependence info.
16076
16077 2015-03-08  Jan Hubicka  <hubicka@ucw.cz>
16078
16079         * ipa-inline-analysis.c (check_callers): Check
16080         node->can_remove_if_no_direct_calls_and_refs_p.
16081         (growth_likely_positive): Reorganize to call
16082         can_remove_if_no_direct_calls_p later.
16083         * cgraph.h (will_be_removed_from_program_if_no_direct_calls_p,
16084         will_be_removed_from_program_if_no_direct_calls_p): Add
16085         will_inline parameter.
16086         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p,
16087         cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
16088         Handle inliner case correctly.
16089
16090 2015-03-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16091
16092         PR tree-optimization/63743
16093         * cfgexpand.c (reorder_operands): Also reorder if only second operand
16094         had its definition forwarded by TER.
16095
16096 2015-03-08  Jan Hubicka  <hubicka@ucw.cz>
16097
16098         PR lto/65316
16099         * ipa-utils.h (types_odr_comparable): Add strict argument.
16100         * ipa-devirt.c: Fix whitespace;
16101         (odr_hasher): Remove.
16102         (odr_name_hasher, odr_vtable_hasher): New hashers.
16103         (can_be_name_hashed_p): New predicate.
16104         (hash_type_name): remove.
16105         (hash_odr_name): New.
16106         (odr_name_hasher::hash): new.
16107         (can_be_vtable_hashed_p): New.
16108         (hash_odr_vtable): New.
16109         (odr_vtable_hasher::hash): New.
16110         (types_same_for_odr): Add strict parameter.
16111         (types_odr_comparable): Likewise.
16112         (odr_name_hasher::equal): New.
16113         (odr_vtable_hasher::equal): New.
16114         (odr_name_hasher::remove): New.
16115         (odr_hash_type): Change to hash_table<odr_name_hasher>.
16116         (odr_vtable_hash_type): New.
16117         (odr_vtable_hash): New.
16118         (odr_subtypes_equivalent_p): Do strict comparsion.
16119         (add_type_duplicate): Merge type names; cleanup; avoid type
16120         duplicates.
16121         (register_odr_type): Initialize vtable hash.
16122         (build_type_inheritance_graph): Likewise
16123         (get_odr_type): Reorg to use two hashes.
16124         (dump_possible_polymorphic_call_targets): Move sanity check after debug
16125         output.
16126         (ipa_devirt): Dump type_inheritance_graph.
16127         (types_same_for_odr): Add strict mode.
16128
16129 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
16130
16131         PR ipa/65334
16132         * cgraph.h (symtab_node): Add definition_alignment,
16133         can_increase_alignment_p and increase_alignment.
16134         * symtab.c (symtab_node::can_increase_alignment_p,
16135         increase_alignment_1, symtab_node::increase_alignment,
16136         symtab_node::definition_alignment): New.
16137         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Use
16138         can_increase_alignment_p.
16139         * tree-vectorizer.c (increase_alignment): Use increase_alignment.
16140         * tree-vect-stmts.c (ensure_base_align): Likewise.
16141         * varasm.c (function_section_1): Use definition_alignment.
16142         (assemble_start_function): Likewise.
16143         (emit_local): likewise.
16144         (build_constant_desc): Likewsie.
16145         (output_constant_def_contents): Likewise.
16146         (place_block_symbol): Likewise.
16147         (output_object_block): Likewise.
16148
16149 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
16150
16151         PR ipa/65316
16152         * tree.c (free_lang_data_in_type): Be sure to keep BINFO_VTABLE
16153         when outputting debug.
16154
16155 2015-03-07  Marek Polacek  <polacek@redhat.com>
16156             Martin Uecker  <uecker@eecs.berkeley.edu>
16157
16158         PR sanitizer/65280
16159         * doc/invoke.texi: Update description of -fsanitize=bounds.
16160
16161 2015-03-06  Wilco Dijkstra  <wilco.dijkstra@arm.com>
16162
16163         * tree-ssa-phiopt.c (neg_replacement): Remove.
16164         (tree_ssa_phiopt_worker): Remove negate optimization.
16165
16166 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
16167
16168         PR ipa/65302
16169         * value-prof.c (gimple_ic): Pure dead eh edges when needed.
16170
16171 2015-03-06  Richard Biener  <rguenther@suse.de>
16172
16173         PR middle-end/64928
16174         * tree-ssa-live.h (struct tree_live_info_d): Add livein_obstack
16175         and liveout_obstack members.
16176         (calculate_live_on_exit): Remove.
16177         (calculate_live_ranges): Change declaration.
16178         * tree-ssa-live.c (liveness_bitmap_obstack): Remove global var.
16179         (new_tree_live_info): Adjust.
16180         (calculate_live_ranges): Delete livein when not wanted.
16181         (calculate_live_ranges): Do not initialize liveness_bitmap_obstack.
16182         Deal with partly deleted live info.
16183         (loe_visit_block): Remove temporary bitmap by using
16184         bitmap_ior_and_compl_into.
16185         (live_worklist): Adjust accordingly.
16186         (calculate_live_on_exit): Make static.
16187         * tree-ssa-coalesce.c (coalesce_ssa_name): Tell calculate_live_ranges
16188         we do not need livein.
16189
16190 2015-03-06  Jonathan Wakely  <jwakely@redhat.com>
16191
16192         * real.c (real_from_string): Fix typo in assertion.
16193
16194 2015-03-06  Alex Velenko  <alex.velenko@arm.com>
16195
16196         * ChangeLog (2015-03-05): Reflect Richard Henderson as actual author of
16197         the patch.
16198
16199 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
16200
16201         * ipa-icf.c (sem_variable::equals_wpa): Check FINAL flags.
16202
16203 2015-03-05  Vladimir Makarov  <vmakarov@redhat.com>
16204
16205         PR target/64342
16206         * lra-assigns.c (find_hard_regno_for): Rename to
16207         find_hard_regno_for_1.  Add a new parameter.
16208         (find_hard_regno_for): New function using find_hard_regno_for_1.
16209
16210 2015-03-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
16211
16212         PR rtl-optimization/65067
16213         * expmed.c (store_bit_field, extract_bit_field): Reworked the
16214         strict volatile bitfield handling.
16215
16216 2015-03-05  Martin Liska  <mliska@suse.cz>
16217
16218         PR ipa/65318
16219         * ipa-icf.c (sem_variable::equals): Compare variables types.
16220
16221 2015-03-05  Richard Henderson  <rth@redhat.com>
16222
16223         PR target/65121
16224         * config/arm/arm.c (arm_function_in_section_p): Fix predicate to
16225         correctly check weak symbol binding.
16226
16227 2015-03-05  Steve Ellcey  <sellcey@imgtec.com>
16228
16229         PR middle-end/65315
16230         * cfgexpand.c (expand_stack_vars): Update large_align to maximum
16231         needed alignment.
16232
16233 2015-03-05  Martin Liska  <mliska@suse.cz>
16234
16235         * ipa-inline.c (inline_small_functions): Set default value to
16236         prevent warning during bootstrap.
16237         * tree.h: Add pragma guard that ignores false positives during
16238         bootstrap.
16239
16240 2015-03-05  Richard Biener  <rguenther@suse.de>
16241
16242         PR tree-optimization/65310
16243         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
16244         Properly preserve alignment of the base of the access.
16245
16246 2015-03-05  Richard Biener  <rguenther@suse.de>
16247
16248         PR ipa/65270
16249         * ipa-icf-gimple.c (func_checker::compare_memory_operand):
16250         Compare dependence info.
16251
16252 2015-03-05  Richard Biener  <rguenther@suse.de>
16253
16254         PR middle-end/65233
16255         * ipa-polymorphic-call.c: Include tree-ssa-operands.h and
16256         tree-into-ssa.h.
16257         (walk_ssa_copies): Revert last chage.  Instead do not walk
16258         SSA names registered for SSA update.
16259
16260 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
16261
16262         PR ipa/65270
16263         * ipa-icf.c (sem_item::compare_cgraph_references): Compare
16264         vtable references for their containing type.
16265         (sem_function::equals_wpa): Compare TYPE_RESTRICT
16266         and type attributes.
16267
16268 2015-03-04  Eric Botcazou  <ebotcazou@adacore.com>
16269
16270         * fold-const.c (round_up_loc): Cast divisor to signed on all paths
16271         before negating it.
16272         * stor-layout.c (finalize_record_size): Revert latest change.
16273
16274 2015-03-04  Andreas Tobler  <andreast@gcc.gnu.org>
16275
16276         * config/rs6000/t-freebsd64: Remove 32-bit soft-float multilibs.
16277
16278 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
16279
16280         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p): Rewrite
16281         for correct comdat handling.
16282         (cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
16283         Likewise.
16284         * cgraph.h (call_for_symbol_and_aliases): Fix formating.
16285         (used_from_object_file_p_worker): Remove.
16286         (cgraph_node::only_called_directly_or_alised): Add
16287         used_from_object_file_p.
16288         * ipa-inline-analysis.c (growth_likely_positive): Optimie.
16289         * ipa-inline-transform.c (can_remove_node_now_p_1): Use
16290         can_remove_if_no_direct_calls_and_refs_p.
16291
16292 2015-03-04  Nick Clifton  <nickc@redhat.com>
16293
16294         * config/rl78/rl78.h (enum reg_class): Remove real registers from
16295         General register class.
16296         * config/rl78/rl78-real.md: Replace general register constraints
16297         with real+virtual register constraints.
16298
16299 2015-03-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16300
16301         * config/s390/s390.c (s390_expand_builtin): Exlude non-htm builtins
16302         from checking for -mhtm option.
16303
16304 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
16305
16306         * tree-sra.c (convert_callers): Use call_for_symbol_and_aliases.
16307         (struct ipa_sra_check_caller_data): Add has_thunk field.
16308         (ipa_sra_check_caller): Check for thunk.
16309         (ipa_sra_preliminary_function_checks): Give up on function with
16310         thunks.
16311         (ipa_early_sra): Use call_for_symbol_and_aliases.
16312
16313 2015-03-03  Kaz Kojima  <kkojima@gcc.gnu.org>
16314
16315         PR target/65249
16316         * config/sh/sh.md (symGOT_load): Use R0 reg for operands[2] when
16317         called for __stack_chk_guard symbol.
16318
16319 2015-03-03  DJ Delorie  <dj@redhat.com>
16320
16321         * config/rl78/rl78-real.md (*addqi_real): Allow SADDR types for
16322         inc/dec.
16323         (*addhi3_real): Likewise.
16324         * config/rl78/rl78-virt.md (*inc<mode>3_virt): Additional
16325         pattern to match incrementing memory.
16326         * config/rl78/predicates.md (rl78_1_2_operand): New.
16327         * config/rl78/rl78.c (rl78_force_nonfar_3): Allow far mem-mem if
16328         it's the same and only mem.
16329         (rl78_alloc_physical_registers_op2): If there's effectively only
16330         one MEM, transcode it into HL.
16331         (rl78_far_p): Reject addresses that aren't legitimate.
16332
16333 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
16334
16335         * fold-const.c (round_up_loc): Cast divisor to HOST_WIDE_INT before
16336         negating it.
16337
16338         * tree-sra.c (pa_sra_preliminary_function_checks): Fix typo in message.
16339
16340 2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
16341
16342         Implement call0 ABI for xtensa
16343         * config/xtensa/constraints.md ("a" constraint): Include stack
16344         pointer in case of call0 ABI.
16345         ("q" constraint): Make empty in case of call0 ABI.
16346         ("D" constraint): Include stack pointer in case of call0 ABI.
16347         * config/xtensa/xtensa-protos.h (xtensa_set_return_address,
16348         xtensa_expand_epilogue, xtensa_regno_to_class): Add new function
16349         prototypes.
16350         * config/xtensa/xtensa.c (xtensa_callee_save_size): New
16351         variable.
16352         (xtensa_regno_to_class): Make it a local variable in the
16353         function xtensa_regno_to_class.
16354         (xtensa_function_epilogue, TARGET_ASM_FUNCTION_EPILOGUE): Remove
16355         macro, function prototype and implementation.
16356         (reg_nonleaf_alloc_order): Make it a local variable in the
16357         function order_regs_for_local_alloc.
16358         (xtensa_conditional_register_usage): New function.
16359         (TARGET_CONDITIONAL_REGISTER_USAGE): Define macro.
16360         (xtensa_valid_move): Allow direct moves to stack pointer
16361         register in call0 ABI.
16362         (xtensa_setup_frame_addresses): Only spill register windows in
16363         windowed ABI.
16364         (xtensa_emit_call): Emit call(x)8 or call(x)0 in windowed and
16365         call0 ABI respectively.
16366         (xtensa_function_arg_1): Only mark a7 register for copying in
16367         windowed ABI.
16368         (xtensa_call_save_reg): New function.
16369         (compute_frame_size): Add space for callee saved register
16370         storage to the frame size in call0 ABI.
16371         (xtensa_expand_prologue): Generate code to set up stack frame
16372         and save callee-saved registers in call0 ABI.
16373         (xtensa_expand_epilogue): New function.
16374         (xtensa_set_return_address): New function.
16375         (xtensa_return_addr): Calculate return address in call0 ABI.
16376         (xtensa_builtin_saveregs): Only mark a7 register for copying and
16377         emit copying code in windowed ABI.
16378         (order_regs_for_local_alloc): Add preferred register allocation
16379         order for non-leaf function in call0 ABI.
16380         (xtensa_static_chain): Add atatic chain passing for call0 ABI.
16381         (xtensa_asm_trampoline_template): Add trampoline generation for
16382         call0 ABI.
16383         (xtensa_trampoline_init): Add trampoline initialization for
16384         call0 ABI.
16385         (xtensa_conditional_register_usage, xtensa_regno_to_class): New
16386         functions.
16387         * config/xtensa/xtensa.h (TARGET_WINDOWED_ABI): New macro.
16388         (TARGET_CPU_CPP_BUILTINS): Add built-in define for call0 ABI.
16389         (CALL_USED_REGISTERS): Modify to encode both windowed and call0
16390         ABI call-used registers.
16391         (HARD_FRAME_POINTER_REGNUM): Add frame pointer for call0 ABI.
16392         (INCOMING_REGNO, OUTGOING_REGNO): Use argument unchanged in
16393         call0 ABI.
16394         (REG_CLASS_CONTENTS): Include all registers into the preferred
16395         reload registers set, adjust the set in the
16396         xtensa_conditional_register_usage.
16397         (xtensa_regno_to_class): Drop variable declaration.
16398         (REGNO_REG_CLASS): Redefine to use xtensa_regno_to_class
16399         function.
16400         (WINDOW_SIZE): Define as 8 or 0 for windowed and call0 ABI
16401         respectively.
16402         (FUNCTION_PROFILER): Add _mcount call for call0 ABI.
16403         (TRAMPOLINE_SIZE): Define trampoline size for call0 ABI.
16404         (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 in call0 ABI.
16405         (ASM_OUTPUT_POOL_PROLOGUE): Always generate literal pool
16406         location in call0 ABI.
16407         (EH_RETURN_STACKADJ_RTX): New definition, use a10 for passing
16408         stack adjustment size when handling exception.
16409         (CRT_CALL_STATIC_FUNCTION): Add definition for call0 ABI.
16410         * config/xtensa/xtensa.md (A9_REG, UNSPECV_BLOCKAGE): New
16411         definitions.
16412         ("return" pattern): Generate ret.n/ret in call0 ABI.
16413         ("epilogue" pattern): Expand epilogue.
16414         ("nonlocal_goto" pattern): Use default in call0 ABI.
16415         ("eh_return" pattern): Move implementation to eh_set_a0_windowed,
16416         emit eh_set_a0_* depending on ABI.
16417         ("eh_set_a0_windowed" pattern): Former eh_return pattern.
16418         ("eh_set_a0_call0", "blockage"): New patterns.
16419
16420 2015-03-03  Martin Liska  <mliska@suse.cz>
16421
16422         PR ipa/65287
16423         * ipa-icf.c (sem_variable::parse): Skip all alias variables.
16424
16425 2015-03-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
16426
16427         PR 65138/target
16428         * config/rs6000/rs6000-tables.opt: Regenerate table.
16429
16430 2015-03-03  Renlin Li  <renlin.li@arm.com>
16431
16432         * doc/md.texi (@item ^): Change ? into ^.
16433
16434 2015-03-03  H.J. Lu  <hongjiu.lu@intel.com>
16435
16436         * doc/tm.texi: Regenerated.
16437
16438 2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
16439
16440         * builtins.c (expand_builtin_return_addr): Add
16441         RETURN_ADDR_IN_PREVIOUS_FRAME to 'if' condition, remove
16442         surrounding #ifdef.
16443         * config/sparc/sparc.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Change
16444         definition to 1.
16445         * config/xtensa/xtensa.h (RETURN_ADDR_IN_PREVIOUS_FRAME):
16446         Likewise.
16447         * defaults.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 if
16448         undefined.
16449         * doc/tm.texi.in (RETURN_ADDR_IN_PREVIOUS_FRAME): Update
16450         paragraph.
16451
16452 2015-03-03  Martin Jambor  <mjambor@suse.cz>
16453             Eric Botcazou  <ebotcazou@adacore.com>
16454
16455         * tree-sra.c (ipa_sra_check_caller_data): New type.
16456         (has_caller_p): Removed.
16457         (ipa_sra_check_caller): New function.
16458         (ipa_sra_preliminary_function_checks): Use it.
16459
16460 2015-03-03  Martin Liska  <mliska@suse.cz>
16461
16462         * ipa-icf.c (sem_item_optimizer::merge_classes): Use bit or
16463         instead of if branch.
16464
16465 2015-03-03  Martin Liska  <mliska@suse.cz>
16466
16467         PR ipa/65282
16468         * ipa-icf.c (sem_variable::equals): Fix wrong condition.
16469
16470 2015-03-23  Jeff Law  <law@redhat.com>
16471
16472         PR tree-optimization/65241
16473         * tree-ssa-dom.c (lookup_avail_expr): Only modify the avail_expr
16474         hash table if INSERT is true.
16475
16476 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
16477
16478         PR target/65296
16479         * config.gcc (extra_gcc_objs) [avr-*-rtems*]: Remove.
16480
16481 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
16482
16483         PR target/64331
16484         * config/avr/avr.c (context.h, tree-pass.h): Include them.
16485         (avr_pass_data_recompute_notes): New static variable.
16486         (avr_pass_recompute_notes): New class.
16487         (avr_register_passes): New static function.
16488         (avr_option_override): Call it.
16489
16490 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
16491
16492         Fix various problems with specs file generation.
16493
16494         PR target/65296
16495         * config.gcc (extra_gcc_objs) [avr]: Remove.
16496         * config/avr/driver-avr.c: Remove file.
16497         * config/avr/t-avr (driver-avr.o): Remove rule.
16498         (gen-avr-mmcu-specs): Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD and
16499         INCLUDES to build.  Depend on TM_H.
16500         * config/avr/gen-avr-mmcu-specs.c: Tidy up code.  Fix various
16501         build warnings.  Fix non-matching types and non-existing %-codes.
16502         (tm.h): Include.
16503         (*lib) [!WITH_AVRLIBC]: Don't link libdev.a.
16504         (*libgcc) [WITH_AVRLIBC]: Add "-lm".
16505         * config/avr/avrlibc.h (LIBGCC_SPEC): Remove definition.
16506         * config/avr/avr.h (DRIVER_SELF_SPECS): Fix handling of -march=.
16507         (CPP_SPEC, CC1PLUS_SPEC, ASM_SPEC, LINK_SPEC, LIB_SPEC)
16508         (LIBGCC_SPEC): Remove definitions.
16509
16510 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
16511
16512         * config/ia64/ia64.c (expand_vec_perm_interleave_2): Use gen_raw_REG
16513         to create a register in testing mode.
16514
16515 2015-03-03  Martin Liska  <mliska@suse.cz>
16516             Jan Hubicka  <hubicka@ucw.cz>
16517
16518         PR ipa/65263
16519         * cgraph.c (cgraph_node::has_thunk_p): New function.
16520         * cgraph.h (cgraph_node::has_thunk_p: Likewise.
16521         * ipa-icf.c (redirect_all_callers): Do not redirect thunks.
16522         (sem_function::merge): Assert is changed.
16523
16524 2015-03-03  Martin Liska  <mliska@suse.cz>
16525             Martin Jambor  <mjambor@suse.cz>
16526
16527         PR ipa/65087
16528         * ipa-icf.c (sem_item_optimizer::execute): Change function
16529         return value to boolean.
16530         (sem_item_optimizer::merge_classes): Likewise.
16531         (ipa_icf_driver): Return TODO_remove_functions in case there's
16532         a merge operation processed.
16533         * ipa-icf.h: Change function return value to boolean.
16534
16535 2015-03-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
16536
16537         PR 65138/target
16538         * config/rs6000/rs6000-cpus.def (powerpc64le): Add new generic
16539         processor type for 64-bit little endian PowerPC.
16540
16541         * config/rs6000/rs6000.c (rs6000_option_override_internal): If
16542         -mdebug=reg, print TARGET_DEFAULT.  Fix logic to use
16543         TARGET_DEFAULT if there is no default cpu.  Fix -mdebug=reg
16544         printing built-in mask so it does not pass NULL pointers.
16545
16546         * doc/invoke.texi (IBM RS/6000 and PowerPC options): Document
16547         -mcpu=powerpc64le.
16548
16549 2015-03-02  Steve Ellcey  <sellcey@imgtec.com>
16550
16551         PR target/58158
16552         * config/mips/mips.md (mov<mode>cc): Change ISA_HAS_SEL check to
16553         !ISA_HAS_FP_CONDMOVE.
16554
16555 2015-03-02  Aldy Hernandez  <aldyh@redhat.com>
16556
16557         * config/i386/i386.md (*udivmod<mode>4_pow2): Remove
16558         reload_completed.
16559
16560 2015-03-02  Ulrich Drepper  <drepper@gmail.com>
16561
16562         * doc/invoke.texi (Options for Code Generation Conventions):
16563         Fix URL of DSO paper.
16564
16565 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
16566
16567         PR ipa/65130
16568         * ipa-inline.c (check_callers): Looks for recursion.
16569         (inline_to_all_callers): Give up on uninlinable or recursive edges.
16570         * ipa-inline-analysis.c (inline_summary_t::duplicate): Do not update
16571         summary of inline clones.
16572         (do_estimate_growth_1): Fix recursion check.
16573
16574 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
16575
16576         PR ipa/64988
16577         * ipa-inline-transform.c (clone_inlined_nodes): Do not dissolve
16578         comdat groups.
16579
16580 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
16581             Aldy Hernandez  <aldyh@redhat.com>
16582
16583         PR lto/65276
16584         * ipa-devirt.c (add_type_duplicate): Remove odr_violated assert
16585         when checking TYPE_BINFO.
16586
16587 2015-03-02  Richard Biener  <rguenther@suse.de>
16588
16589         PR ipa/65270
16590         * ipa-icf-gimple.c: Include builtins.h.
16591         (func_checker::compare_memory_operand): Compare base alignment.
16592
16593 2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>
16594
16595         PR target/65184
16596         * gcc/config/i386/i386.c (ix86_pass_by_reference) Bounds
16597         are never passed by reference.
16598
16599 2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>
16600
16601         PR target/65183
16602         * tree-chkp.c (chkp_check_lower): Don't check against
16603         zero bounds for already instrumented functions.
16604         (chkp_check_upper): Likewise.
16605         (chkp_fini): Clean pass local data to avoid wrong reusage.
16606
16607 2015-02-28  Martin Liska  <mliska@suse.cz>
16608             Jan Hubicka  <hubicka@ucw.cz>
16609
16610         * ipa-icf.c (sem_variable::equals): Improve debug output;
16611         get variable constructor.
16612         (sem_variable::parse): Do not filter out too early; give up on
16613         volatile and register vars.
16614         (sem_item_optimizer::filter_removed_items): Filter out nonreadonly
16615         variables.
16616         * ipa-icf.h (sem_variable::init): Do not set ctor.
16617         (sem_variable::ctor): Remove.
16618
16619 2015-03-01  Aldy Hernandez  <aldyh@redhat.com>
16620
16621         PR middle-end/65233
16622         * ipa-polymorphic-call.c (walk_ssa_copies): Handle empty PHIs.
16623
16624 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
16625
16626         * ipa-icf.c: Include stor-layout.h
16627         (sem_function::compare_cgraph_references): Rename to ...
16628         (sem_item::compare_cgraph_references): ... this one.
16629         (sem_variable::equals_wpa): New function
16630         (sem_variable::equals): Do not check stuff already verified by
16631         equals_wpa.
16632         (sem_variable::equals): Reorg based on varasm.c:compare_constant.
16633         * ipa-icf.h (sem_item): Add compare_cgraph_references.
16634         (sem_function): Remove compare_cgraph_references.
16635         (sem_variable): Turns equals_wpa into non-inline.
16636
16637 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
16638
16639         * ipa-icf.c (sem_function::init): Fix formating; skip GIMPLE_PREDICT.
16640         (sem_item::add_expr): New function.
16641         (sem_function::hash_stmt): Handle operands of most statements.
16642         (sem_variable::get_hash): Hash the actual constructor.
16643         * ipa-icf.h (sem_item): Add add_expr.
16644         (sem_function): Update prototype of hash_stmt
16645
16646 2015-02-28  Martin Liska  <mliska@suse.cz>
16647             Jan Hubicka  <hubicka@ucw.cz>
16648
16649         PR ipa/65245
16650         * ipa-icf-gimple.c (func_checker::compare_function_decl):
16651         Remove.
16652         (func_checker::compare_variable_decl): Skip symtab vars.
16653         (func_checker::compare_cst_or_decl): Update.
16654         * ipa-icf.c (sem_function::parse): Do not consider aliases.
16655         (sem_function::compare_cgraph_references): Add ADDRESS parameter;
16656         use correct symtab predicates.
16657         (sem_function::equals_wpa): Update uses of compare_cgraph_references.
16658         (sem_variable::parse):  Update comment.
16659         (sem_item_optimizer::build_graph): Consider ultimate aliases
16660         for references.
16661
16662 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
16663
16664         * ipa-icf-gimple.c (func_checker::compare_operand): Fix handling
16665         of OBJ_TYPE_REF.
16666
16667 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
16668
16669         * ipa-icf.c (sem_function::merge): Fix handling of COMDAT.
16670         (sem_variable::merge) Likewise.
16671
16672 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
16673
16674         * ipa-inline.c (can_inline_edge_p): Match opt_for_fn on inline
16675         target; also match flag_ipa_devirt.
16676
16677 2015-03-01  Martin Liska  <mliska@suse.cz>
16678             Jan Hubicka  <hubicka@ucw.cz>
16679
16680         * ipa-icf-gimple.c (func_checker::compare_variable_decl):
16681         Validate variable alignment.
16682         * ipa-icf.c (sem_function::equals_private): Be more precise
16683         about non-common function attributes.
16684         (sem_variable::equals): Likewise.
16685
16686 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
16687
16688         PR ipa/65237
16689         * ipa-icf.c (sem_function::merge): Do not attempt to produce alias
16690         across COMDAT group boundary.
16691
16692 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
16693
16694         PR ipa/65232
16695         * ipa-icf.c (clear_decl_rtl): New function.
16696         (sem_function::merge): Clear RTL before forming alias.
16697         (sem_variable::merge): Clear RTL before forming alias.
16698
16699 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
16700
16701         PR ipa/65236
16702         * cgraphunit.c (cgraph_node::expand_thunk): Enable return slot opt.
16703
16704 2015-02-28  Xingxing Pan  <xxingpan@marvell.com>
16705
16706         * config/aarch64/aarch64.md: (mov<mode>_aarch64): Change type
16707         to neon_to_gp<q>.
16708
16709 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
16710
16711         * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): Fix
16712         a typo in the description.
16713
16714 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
16715
16716         PR target/64317
16717         * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
16718         * params.h (LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
16719         * lra-constraints.c: Include "params.h".
16720         (EBB_PROBABILITY_CUTOFF): Use
16721         LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF.
16722         (lra_inheritance): Use '<' instead of '<=' for
16723         EBB_PROBABILITY_CUTOFF.
16724         * doc/invoke.texi (lra-inheritance-ebb-probability-cutoff):
16725         Document change.
16726
16727 2015-02-27  Martin Liska  <mliska@suse.cz>
16728
16729         * ipa-icf.h (struct symbol_compare_hashmap_traits): Add missing
16730         vector length condition.
16731
16732 2015-02-27  Sandra Loosemore  <sandra@codesourcery.com>
16733
16734         * doc/extend.texi (x86 transactional memory intrinsics):
16735         Reorganize discussion of _xbegin.  Clarify that the return
16736         value is a bit mask.  Expand example and move to end of section.
16737
16738 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
16739             Aldy Hernandez  <aldyh@redhat.com>
16740
16741         PR rtl-optimization/65220
16742         * config/i386/i386.md (*udivmod<mode>4_pow2): New.
16743
16744 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
16745
16746         PR target/65032
16747         * lra-remat.c (update_scratch_ops): New.
16748         (do_remat): Call it.
16749         * lra.c (lra_register_new_scratch_op): New. Take code from ...
16750         (remove_scratches): ... here.
16751         * lra-int.h (lra_register_new_scratch_op): New prototype.
16752
16753 2015-02-27  Marek Polacek  <polacek@redhat.com>
16754
16755         PR c/65040
16756         * doc/invoke.texi: Update to reflect that -Wformat=2 doesn't enable
16757         -Wformat-signedness anymore.
16758
16759 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16760
16761         * config/s390/s390.c: (s390_atomic_assign_expand_fenv): New
16762         function.
16763         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define macro.
16764
16765 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16766
16767         * config/s390/s390.c (enum s390_builtin):
16768         Add S390_BUILTIN_S390_SFPC and S390_BUILTIN_S390_EFPC.
16769         (code_for_builtin): Add CODE_FOR_s390_sfpc and CODE_FOR_s390_efpc.
16770         (s390_init_builtins): Generate new builtin functions.
16771         * config/s390/s390.md (UNSPECV_SFPC, UNSPECV_EFPC): New constants.
16772         (s390_sfpc, s390_efpc): New pattern definitions.
16773
16774 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16775
16776         * config/s390/s390.c: (enum s390_builtin, s390_expand_builtin):
16777         Rename S390_BUILTIN_max to S390_BUILTIN_MAX.
16778         (s390_builtin_decls): New array.
16779         (s390_init_builtins): Put builtin decls into s390_builtin_decls.
16780         (s390_builtin_decl): New function.
16781         (TARGET_BUILTIN_DECL): Define macro.
16782
16783 2015-02-27  Richard Biener  <rguenther@suse.de>
16784
16785         PR middle-end/63175
16786         * builtins.c (get_object_alignment_2): Make sure to re-apply
16787         the ANDed mask after recursing to its operand gets us a new
16788         misalignment bit position.
16789
16790 2015-02-26  Jan Hubicka  <hubicka@ucw.cz>
16791             Martin Liska  <mliska@suse.cz>
16792
16793         PR bootstrap/65150
16794         * ipa-icf.c (symbol_compare_collection::symbol_compare_colleciton):
16795         Use address_matters_p.
16796         (redirect_all_callers, set_addressable): New functions.
16797         (sem_function::merge): Reorganize and fix merging issues.
16798         (sem_variable::merge): Likewise.
16799         (sem_variable::compare_sections): Remove.
16800         * common.opt (fmerge-all-constants, fmerge-constants): Remove
16801         Optimization flag.
16802         * symtab.c (symtab_node::resolve_alias): When alias has aliases,
16803         redirect them.
16804         (symtab_node::make_decl_local): Set ADDRESSABLE bit when
16805         decl is used.
16806         (address_matters_1): New function.
16807         (symtab_node::address_matters_p): New function.
16808         * cgraph.c (cgraph_edge::verify_corresponds_to_fndecl): Fix
16809         check for merged flag.
16810         * cgraph.h (address_matters_p): Declare.
16811         (symtab_node::address_taken_from_non_vtable_p): Remove.
16812         (symtab_node::address_can_be_compared_p): New method.
16813         (ipa_ref::address_matters_p): Move here from ipa-ref.c; simplify.
16814         * ipa-visibility.c (symtab_node::address_taken_from_non_vtable_p):
16815         Remove.
16816         (comdat_can_be_unshared_p_1) Use address_matters_p.
16817         (update_vtable_references): Fix formating.
16818         * ipa-ref.c (ipa_ref::address_matters_p): Move inline.
16819         * cgraphunit.c (cgraph_node::create_wrapper): Drop UNINLINABLE flag.
16820         * cgraphclones.c: Preserve merged and icf_merged flags.
16821
16822 2015-02-26  Sandra Loosemore  <sandra@codesourcery.com>
16823
16824         * doc/extend.texi (Function Attributes): Fix spelling and typos.
16825         (Label Attributes): Likewise.
16826         (Cilk Plus Builtins): Likewise.
16827         (ARC SIMD Built-in Functions): Likewise.
16828         (ARM C Language Extensions (ACLE)): Likewise.
16829         (PowerPC Built-in Functions): Likewise.
16830         (PowerPC Hardware Transactional Memory Built-in Functions):
16831         Likewise.
16832
16833 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
16834
16835         PR tree-optimization/65216
16836         * tree-ssa-reassoc.c (rewrite_expr_tree): Force creation of
16837         new stmt and new SSA_NAME for lhs whenever the arguments have
16838         changed and weren't just swapped.  Fix comment typo.
16839
16840         PR tree-optimization/65215
16841         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Return false
16842         for PDP endian targets.
16843         (perform_symbolic_merge, find_bswap_or_nop_1, find_bswap_or_nop):
16844         Fix up formatting issues.
16845         (bswap_replace): Likewise.  For BYTES_BIG_ENDIAN, if the final access
16846         size is smaller than the original, adjust MEM_REF offset by the
16847         difference of sizes.  Use is_gimple_mem_ref_addr instead of
16848         is_gimple_min_invariant test to avoid adding address temporaries.
16849
16850 2015-02-26  Martin Liska  <mliska@suse.cz>
16851             Jan Hubicka  <hubicka@ucw.cz>
16852
16853         PR ipa/64693
16854         * ipa-icf.c (symbol_compare_collection::symbol_compare_collection): New.
16855         (sem_item_optimizer::subdivide_classes_by_sensitive_refs): New function.
16856         (sem_item_optimizer::process_cong_reduction): Include division by
16857         sensitive references.
16858         * ipa-icf.h (struct symbol_compare_hashmap_traits): New class.
16859         * ipa-ref.c (ipa_ref::address_matters_p): New function.
16860         * ipa-ref.h (ipa_ref::address_matters_p): Likewise.
16861
16862 2015-02-26  Georg-Johann Lay  <avr@gjlay.de>
16863
16864         PR target/65192
16865         * config/avr/avr-protos.h (tiny_valid_direct_memory_access_range):
16866         Remove.
16867         * config/avr/avr.c: Same.
16868         (avr_legitimate_address_p) <AVR_TINY, CONSTANT_ADDRESS_P>:
16869         Refuse any constant address not in 0..0xbf.
16870         * config/avr/avr.md (*mov<mode>, *movsf): Remove
16871         tiny_valid_direct_memory_access_range from insn conditions.
16872         (mov<mode>): Don't special-case expansion of avrtiny addresses.
16873
16874 2015-02-26  Oleg Endo  <olegendo@gcc.gnu.org>
16875
16876         PR target/61142
16877         * config/sh/sh.c (sh_check_add_incdec_notes): New function.
16878         * config/sh/sh-protos.h (sh_check_add_incdec_notes): Declare it.
16879         * config/sh/predicates.md (const_logical_operand): New predicate.
16880         * config/sh/sh.md: Add new peephole2 patterns.
16881
16882 2015-02-26  Marek Polacek  <polacek@redhat.com>
16883
16884         PR ipa/65008
16885         * ipa-inline.c (early_inliner): Recompute inline parameters.
16886
16887 2015-02-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16888
16889         PR target/65171
16890         * config/rs6000/rs6000.c (rs6000_analyze_swaps): Ensure
16891         instructions with TImode operands are included in the analysis.
16892
16893 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
16894
16895         * tree-ssa-threadupdate.c (dump_jump_thread_path): Print all edges
16896         of an EDGE_FSM_THREAD.
16897
16898 2015-02-25  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
16899
16900         * config/rs6000/htm.md (tcheck): Fix assembly encoding.
16901
16902 2015-02-25  Aldy Hernandez  <aldyh@redhat.com>
16903
16904         PR debug/46102
16905         * dwarf2out.c (dwarf2out_init): Disable -feliminate-dwarf2-dups.
16906
16907 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
16908
16909         PR tree-optimization/65048
16910         * tree-ssa-threadupdate.c (valid_jump_thread_path): New.
16911         (thread_through_all_blocks): Call valid_jump_thread_path.
16912         Remove invalid FSM jump-thread paths.
16913
16914 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
16915
16916         * passes.c (ipa_write_summaries_1): Call lto_output_init_mode_table.
16917         (ipa_write_optimization_summaries): Likewise.
16918         * tree-streamer.h: Include data-streamer.h.
16919         (streamer_mode_table): Declare extern variable.
16920         (bp_pack_machine_mode, bp_unpack_machine_mode): New inline functions.
16921         * lto-streamer-out.c (lto_output_init_mode_table,
16922         lto_write_mode_table): New functions.
16923         (produce_asm_for_decls): Call lto_write_mode_table when streaming
16924         offloading LTO.
16925         * lto-section-in.c (lto_section_name): Add "mode_table" entry.
16926         (lto_create_simple_input_block): Add mode_table argument to the
16927         lto_input_block constructors.
16928         * ipa-prop.c (ipa_prop_read_section, read_replacements_section):
16929         Likewise.
16930         * data-streamer-in.c (string_for_index): Likewise.
16931         * ipa-inline-analysis.c (inline_read_section): Likewise.
16932         * ipa-icf.c (sem_item_optimizer::read_section): Likewise.
16933         * lto-cgraph.c (input_cgraph_opt_section): Likewise.
16934         * lto-streamer-in.c (lto_read_body_or_constructor,
16935         lto_input_toplevel_asms): Likewise.
16936         (lto_input_mode_table): New function.
16937         * tree-streamer-out.c (pack_ts_fixed_cst_value_fields,
16938         pack_ts_decl_common_value_fields, pack_ts_type_common_value_fields):
16939         Use bp_pack_machine_mode.
16940         * real.h (struct real_format): Add name field.
16941         * lto-streamer.h (enum lto_section_type): Add LTO_section_mode_table.
16942         (class lto_input_block): Add mode_table member.
16943         (lto_input_block::lto_input_block): Add mode_table_ argument,
16944         initialize mode_table.
16945         (struct lto_file_decl_data): Add mode_table field.
16946         (lto_input_mode_table, lto_output_init_mode_table): New prototypes.
16947         * tree-streamer-in.c (unpack_ts_fixed_cst_value_fields,
16948         unpack_ts_decl_common_value_fields,
16949         unpack_ts_type_common_value_fields): Call bp_unpack_machine_mode.
16950         * tree-streamer.c (streamer_mode_table): New variable.
16951         * real.c (ieee_single_format, mips_single_format,
16952         motorola_single_format, spu_single_format, ieee_double_format,
16953         mips_double_format, motorola_double_format,
16954         ieee_extended_motorola_format, ieee_extended_intel_96_format,
16955         ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format,
16956         ibm_extended_format, mips_extended_format, ieee_quad_format,
16957         mips_quad_format, vax_f_format, vax_d_format, vax_g_format,
16958         decimal_single_format, decimal_double_format, decimal_quad_format,
16959         ieee_half_format, arm_half_format, real_internal_format): Add name
16960         field.
16961         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
16962
16963 2015-02-26  Yuri Rumyantsev  <ysrumyan@gmail.com>
16964
16965         PR target/65161
16966         * config/i386/i386.c (ix86_sched_reorder): Skip instruction
16967         reordering for selective scheduling.
16968
16969 2015-02-26  Terry Guo  <terry.guo@arm.com>
16970
16971         * config/arm/arm-cores.def (cortex-m7): Add flag FL_NO_VOLATILE_CE.
16972         * config/arm/arm-protos.h (FL_NO_VOLATILE_CE): New flag.
16973         (arm_arch_no_volatile_ce): Declare new global variable.
16974         * config/arm/arm.c (arm_arch_no_volatile_ce): New global variable.
16975         (arm_option_override): Assign value to arm_arch_no_volatile_ce.
16976         * config/arm/arm.h (arm_arch_no_volatile_ce): Declare it.
16977         (TARGET_NO_VOLATILE_CE): New macro.
16978         * config/arm/arm.md (arm_comparison_operator): Disabled if not allow
16979         volatile memory access in IT block
16980
16981 2015-02-25  Kai Tietz  <ktietz@redhat.com>
16982
16983         PR tree-optimization/61917
16984         * tree-vect-loop.c (vectorizable_reduction): Handle obvious case
16985         that reduc_def_stmt is null.
16986
16987 2015-02-25  Martin Liska  <mliska@suse.cz>
16988
16989         * ipa-icf-gimple.c (func_checker::compare_variable_decl): Compare
16990         hard register variables.
16991
16992 2015-02-25  Kai Tietz  <ktietz@redhat.com>
16993
16994         PR target/64212
16995         * symtab.c (symtab::make_decl_local): Set DECL_IMPORT_P explicit to 0.
16996         (symtab::noninterposable_alias): Likewise.
16997
16998 2015-02-25  Ilya Enkovich  <ilya.enkovich@intel.com>
16999
17000         PR target/65167
17001         * gcc/config/i386/i386.c (ix86_function_arg_regno_p): Support
17002         bounds registers.
17003         (avoid_func_arg_motion): Add dependencies for BNDSTX insns.
17004
17005 2015-02-25  Alan Lawrence  <alan.lawrence@arm.com>
17006
17007         PR target/64997
17008         * config/aarch64/aarch64.md (*xor_one_cmpl<mode>3): Use FP_REGNUM_P
17009         as split condition; force split via '#' in output pattern.
17010
17011 2015-02-25  Richard Biener  <rguenther@suse.de>
17012             Kai Tietz  <ktietz@redhat.com>
17013
17014         PR tree-optimization/61917
17015         * tree-vect-loop.c (vectorizable_reduction): Allow
17016         vect_internal_def without reduction to exit graceful.
17017
17018 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
17019
17020         PR target/65196
17021         * config/avr/avr.c (avr_adjust_insn_length): Call recog_memoized
17022         only with NONDEBUG_INSN_P.
17023
17024 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
17025
17026         Use variadic macros with avr-log.c.
17027
17028         * config/avr/avr-protos.h (avr_vdump): New prototype.
17029         (avr_log_set_caller_e, avr_log_set_caller_f): Remove protos.
17030         (avr_edump, avr_fdump, avr_dump): (Re)define to use avr_vdump.
17031         * config/avr/avr-log.c: Adjust comments.
17032         (avr_vdump): New function.
17033         (avr_vadump): Pass caller as 2nd argument instead of format string.
17034         (avr_log_caller, avr_log_fdump_e, avr_log_fdump_f)
17035         (avr_log_set_caller_e, avr_log_set_caller_f): Remove.
17036
17037 2015-02-25  Jakub Jelinek  <jakub@redhat.com>
17038
17039         PR lto/64374
17040         * target.def (target_option_stream_in): New target hook.
17041         * tree-streamer-in.c (streamer_read_tree_bitfields): Invoke
17042         targetm.target_option.post_stream_in if non-NULL.
17043         * doc/tm.texi.in: Add @hook TARGET_OPTION_POST_STREAM_IN.
17044         * doc/tm.texi: Updated.
17045         * config/i386/i386.c (ix86_function_specific_post_stream_in): New
17046         function.
17047         (TARGET_OPTION_POST_STREAM_IN): Redefine.
17048
17049 2015-02-24  Jeff Law  <law@redhat.com>
17050
17051         PR target/65117
17052         * config/xtensa/xtensa.md (zero_cost_loop_start): Reverse numbering
17053         of operand 0 and operand 2.
17054         (zero_cost_loop_end, loop_end): Similarly.
17055
17056 2015-02-24  Aldy Hernandez  <aldyh@redhat.com>
17057
17058         * gimple.h (gimple_build_assign): Rename CXX_MEM_STAT_DECL to
17059         CXX_MEM_STAT_INFO.
17060
17061 2015-02-24  DJ Delorie  <dj@redhat.com>
17062
17063         * config/rl78/rl78-protos.h (rl78_split_movsi): Accept a mode as well.
17064         * config/rl78/rl78-expand.md (movsf): New, same as movsi.
17065         * config/rl78/rl78.c (rl78_split_movsi): Accept a mode, use it
17066         instead of hardcoding SImode.
17067
17068 2015-02-24  Bernd Schmidt  <bernds@codesourcery.com>
17069
17070         * omp-low.c (create_omp_child_function): Tag entrypoint
17071         functions with a special attribute.
17072
17073 2015-02-24  Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
17074
17075         PR target/65058
17076         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Drop unused variable.
17077
17078 2015-02-24  Vladimir Makarov  <vmakarov@redhat.com>
17079
17080         PR rtl-optimization/65123
17081         * lra-remat.c (operand_to_remat): Check hard regs in insn
17082         definition too.
17083
17084 2015-02-24  Nick Clifton  <nickc@redhat.com>
17085
17086         * config/v850/v850.h (ASM_SPEC): Pass -msoft-float/-mhard-float on
17087         to the assembler.
17088
17089 2015-02-24  Thomas Schwinge  <thomas@codesourcery.com>
17090
17091         PR libgomp/64625
17092         * omp-builtins.def (BUILT_IN_GOACC_DATA_START): Specify as
17093         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR, not
17094         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR.
17095         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_UPDATE): Specify as
17096         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR, not
17097         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR.
17098         (BUILT_IN_GOACC_PARALLEL): Specify as
17099         BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR, not
17100         BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR.
17101         * builtin-types.def
17102         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
17103         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
17104         Remove function types.
17105         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR)
17106         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR)
17107         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
17108         New function types.
17109
17110 2015-02-24  Georg-Johann Lay  <avr@gjlay.de>
17111
17112         * config/avr/stdfix.h [__WITH_AVRLIBC__]: Include <stdfix-avrlibc.h>.
17113
17114 2015-02-24  Jakub Jelinek  <jakub@redhat.com>
17115
17116         PR tree-optimization/65170
17117         * wide-int.cc (wi::mul_internal): For the umul_ppmm optimization,
17118         if val[1] < 0, clear also val[2] and return 3.
17119
17120 2015-02-24  Alan Modra  <amodra@gmail.com>
17121
17122         PR target/65172
17123         * config/rs6000/rs6000.c (get_memref_parts): Only return true
17124         when *base is a reg.  Handle nested plus addresses.  Simplify
17125         pre_modify test.
17126
17127 2015-02-22  Max Filippov  <jcmvbkbc@gmail.com>
17128
17129         * config/xtensa/xtensa.h (CONSTANT_ALIGNMENT, DATA_ALIGNMENT):
17130         use natural alignment when optimizing for size.
17131
17132 2015-02-23  Kaz Kojima  <kkojima@gcc.gnu.org>
17133
17134         PR target/65153
17135         * config/sh/sh.md (movsicc_true+3): Remove peephole.
17136         * config/sh/sh-protos.h (replace_n_hard_rtx): Don't declare.
17137         * config/sh/sh.c (replace_n_hard_rtx): Remove.
17138
17139 2015-02-23  Richard Sandiford  <richard.sandiford@arm.com>
17140
17141         PR fortran/63427
17142         * wide-int.cc (wi::from_mpz): Cope with unwrapped values that are
17143         too big for a wide_int.  Implement missing wrapping operation.
17144
17145 2015-02-23  Oleg Endo  <olegendo@gcc.gnu.org>
17146
17147         PR target/65163
17148         * config/sh/sh.md (swapbsi2, related peephole2): Use const_int -65536
17149         instead of const_int 4294901760.
17150
17151 2015-02-23  Georg-Johann Lay  <avr@gjlay.de>
17152
17153         * config/avr/t-avr: Fix typo in comment.
17154
17155 2015-02-21  Richard Sandiford  <richard.sandiford@arm.com>
17156
17157         * doc/rtl.texi (fma): Clarify documentation.
17158
17159 2015-02-20  Aldy Hernandez  <aldyh@redhat.com>
17160
17161         PR debug/58123
17162         * gimplify.c (gimplify_expr): Prefer location of TRY_FINALLY_EXPR
17163         over input_location.
17164
17165 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
17166
17167         * tree-streamer-in.c (unpack_ts_decl_common_value_fields,
17168         unpack_ts_type_common_value_fields): If ACCEL_COMPILER,
17169         restrict alignments to absolute_biggest_alignment.
17170         * config/i386/i386.c (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT):
17171         Define.
17172         * doc/tm.texi.in (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT): Add.
17173         * doc/tm.texi: Regenerate.
17174         * target.def (absolute_biggest_alignment): New DEFHOOKPOD.
17175
17176 2015-02-20  Vladimir Makarov  <vmakarov@redhat.com>
17177
17178         PR target/64172
17179         * ira-color.c (color_pass): Prevent splitting multi-register pseudos.
17180
17181 2015-02-20  Richard Biener  <rguenther@suse.de>
17182
17183         PR tree-optimization/65136
17184         * tree-ssa-propagate.c: Include cfgloop.h.
17185         (replace_phi_args_in): Avoid replacing loop latch edge PHI
17186         arguments with constants.
17187
17188 2015-02-20  Jakub Jelinek  <jakub@redhat.com>
17189             Martin Liska  <mliska@suse.cz>
17190
17191         PR target/63892
17192         * ipa-icf.c (sem_function::merge): If DECL_COMDAT_GROUP (alias->decl),
17193         don't try to create_thunk if stdarg_p.  If
17194         !sem_item::target_supports_symbol_aliases_p (), similarly, and try to
17195         redirect_callers if possible.
17196         (sem_item_optimizer::execute): Call unregister_hooks here...
17197         (ipa_icf_driver): ... instead of here.
17198
17199 2015-02-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17200
17201         * config/aarch64/aarch64.md (*aarch64_lshr_sisd_or_int_<mode>3):
17202         Mark operand 0 as earlyclobber in 2nd alternative.
17203         (1st define_split below *aarch64_lshr_sisd_or_int_<mode>3):
17204         Write negated shift amount into QI lowpart operand 0 and use it
17205         in the shift step.
17206         (2nd define_split below *aarch64_lshr_sisd_or_int_<mode>3): Likewise.
17207
17208 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
17209
17210         * cgraph.h (clone_function_name_1): Declare.
17211         * cgraphclones.c (clone_function_name_1): New function.
17212         (clone_function_name): Use it.
17213         * lto-partition.c: Include "stringpool.h".
17214         (must_not_rename, maybe_rewrite_identifier)
17215         (validize_symbol_for_target): New static functions.
17216         (privatize_symbol_name): Use must_not_rename.
17217         (promote_symbol): Call validize_symbol_for_target.
17218         (lto_promote_cross_file_statics): Likewise.
17219         (lto_promote_statics_nonwpa): Likewise.
17220
17221 2015-02-20  Georg-Johann Lay  <avr@gjlay.de>
17222
17223         PR target/64452
17224         * config/avr/avr.md (pushhi_insn): New insn.
17225         (push<mode>1): Push virtual regs in one chunk using pushhi1_insn.
17226
17227 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
17228             Jakub Jelinek  <jakub@redhat.com>
17229
17230         * tree-streamer.c (preload_common_nodes): Don't preload
17231         TI_VA_LIST* for offloading.
17232         * tree-stdarg.c (pass_stdarg::gate): Disable for ACCEL_COMPILER
17233         in_lto_p.
17234
17235 2015-02-19  John David Anglin  <danlgin@gcc.gnu.org>
17236
17237         * config/pa/pa.c (pa_emit_move_sequence): Always force
17238         (const (plus (symbol) (const_int))) to const mem.  Put REG_EQUAL
17239         note on insn.
17240
17241         * config/pa/pa.c (pa_reloc_rw_mask): New function.
17242         (TARGET_ASM_RELOC_RW_MASK): Define.
17243         (pa_cannot_force_const_mem): Revert previous change.
17244
17245 2015-02-19  Martin Jambor  <mjmabor@suse.cz>
17246             Jan Hubicka  <hubicka@ucw.cz>
17247
17248         PR ipa/65028
17249         * ipa-cp.c (propagate_alignment_accross_jump_function): Fix propagation
17250         across jump functions.
17251
17252 2015-02-19  Uros Bizjak  <ubizjak@gmail.com>
17253
17254         * config/alpha/alpha.c (alpha_in_small_data_p): Reject common symbols.
17255
17256 2015-02-19  Sandra Loosemore  <sandra@codesourcery.com>
17257
17258         * doc/extend.texi (x86 transactional memory intrinsics): Copy-edit.
17259
17260 2015-02-19  Richard Henderson  <rth@redhat.com>
17261
17262         PR middle-end/65074
17263         * varasm.c (default_binds_local_p_2): Don't test node->definition;
17264         test DECL_EXTERNAL independent of symtab_node.
17265
17266 2015-02-19  Jakub Jelinek  <jakub@redhat.com>
17267
17268         PR lto/65012
17269         * varpool.c (varpool_node::get_constructor): Return early
17270         if this->lto_file_data is NULL.
17271
17272 2015-02-19  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
17273
17274         * haifa-sched.c (enum rfs_decision, rfs_str): Remove RFS_DEBUG.
17275         (rank_for_schedule_debug): Update.
17276         (ready_sort): Make static.  Move sorting logic to ...
17277         (ready_sort_debug, ready_sort_real): New static functions.
17278         (schedule_block): Sort both debug insns and real insns in preparation
17279         for ready list trimming.  Improve debug output.
17280         * sched-int.h (ready_sort): Remove global declaration.
17281
17282 2015-02-18  Trevor Saunders  <tsaunders@mozilla.com>
17283
17284         * ipa-icf.c (sem_function::equals_private): Adjust.
17285         (sem_function::bb_dict_test): Take a vec<int> * instead of
17286         auto_vec<int>.
17287         * ipa-icf.h (bb_dict_test): Likewise.
17288
17289 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
17290
17291         PR gcov-profile/64634
17292         * tree-eh.c (frob_into_branch_around): Fix up typos
17293         in function comment.
17294         (lower_catch): Put eh_seq resulting from EH lowering of
17295         the cleanup sequence after the cleanup rather than before it.
17296
17297 2015-02-18  Tom de Vries  <tom@codesourcery.com>
17298
17299         * common.opt (fstdarg-opt): New option.
17300         * tree-stdarg.c (pass_stdarg::gate): Use flag_stdarg_opt.
17301         * doc/invoke.texi (@item Optimization Options): Add -fstdarg-opt.
17302         (@item -fstdarg-opt): New item.
17303
17304 2015-02-18  H.J. Lu  <hongjiu.lu@intel.com>
17305
17306         PR target/65064
17307         * config/ia64/predicates.md (sdata_symbolic_operand): Return false
17308         for common symbols.
17309
17310 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
17311
17312         * config/i386/t-intelmic (mkoffload.o): Remove dependency on
17313         insn-modes.h.
17314         (ALL_HOST_OBJS): Add mkoffload.o.
17315         * config/nvptx/t-nvptx (ALL_HOST_OBJS): Likewise.
17316
17317 2015-02-18  Jan Hubicka  <hubicka@ucw.cz>
17318
17319         * ipa-devirt.c (odr_subtypes_equivalent_p): Fix formating.
17320         (compare_virtual_tables): Be smarter about skipping typeinfos;
17321         do sane output on virtual table table mismatch.
17322         (warn_odr): Be ready for forward declarations of enums;
17323         output sane info on base mismatch and virtual table mismatch.
17324         (add_type_duplicate): Fix code choosing prevailing type; do not ICE
17325         when only one type is polymorphic.
17326         (get_odr_type): Fix hashtable corruption.
17327         (dump_odr_type): Dump mangled names.
17328
17329 2015-02-18  Richard Biener  <rguenther@suse.de>
17330
17331         PR tree-optimization/65063
17332         * tree-predcom.c (determine_unroll_factor): Return 1 if we
17333         have replaced looparound PHIs.
17334
17335 2015-02-18  Martin Liska  <mliska@suse.cz>
17336
17337         * lto-streamer.c (lto_streamer_init): Encapsulate
17338         streamer_check_handled_ts_structures with checking macro.
17339
17340 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
17341
17342         PR ipa/65087
17343         * cgraphclones.c (cgraph_node::create_virtual_clone): Only copy
17344         section if !implicit_section.
17345         (cgraph_node::create_version_clone_with_body): Likewise.
17346         * trans-mem.c (ipa_tm_create_version): Likewise.
17347
17348 2015-02-18  Richard Biener  <rguenther@suse.de>
17349
17350         PR tree-optimization/62217
17351         * tree-ssa-dom.c (cprop_operand): Avoid propagating copies
17352         into BIVs.
17353
17354 2015-02-18  Marek Polacek  <polacek@redhat.com>
17355
17356         PR sanitizer/65081
17357         * ubsan.c (OBJSZ_MAX_OFFSET): Define.
17358         (ubsan_expand_objsize_ifn): Don't emit run-time check if the offset
17359         is in range [-16K, -1].  Don't issue run-time error if
17360         (ptr > ptr + offset).
17361
17362 2015-02-18  Thomas Schwinge  <thomas@codesourcery.com>
17363
17364         * doc/install.texi (nvptx-*-none): New section.
17365         * doc/invoke.texi (Nvidia PTX Options): Likewise.
17366         * config/nvptx/nvptx.opt: Update.
17367
17368         * config/nvptx/mkoffload.c (parse_env_var, free_array_of_ptrs)
17369         (access_check): New functions, copied from
17370         config/i386/intelmic-mkoffload.c.
17371         (main): For non-installed testing, look in all COMPILER_PATHs for
17372         GCC_INSTALL_NAME.
17373
17374         * config/nvptx/nvptx.h (GOMP_SELF_SPECS): Define macro.
17375
17376 2015-02-18  Andrew Pinski  <apinski@cavium.com>
17377             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
17378
17379         * config/aarch64/aarch64.c (*aarch64_load_symref_appropriately):
17380         Check whether the destination of SYMBOL_SMALL_TPREL is Pmode.
17381
17382 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
17383
17384         * ipa-visibility.c (function_and_variable_visibility): Only
17385         check locality if node is not already local.
17386         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
17387         call_for_symbol_and_aliases instead of
17388         call_for_symbol_thunks_and_aliases.
17389         (ipa_inline): Likewise.
17390         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
17391         first walk aliases.
17392         * ipa.c (symbol_table::remove_unreachable_nodes): Use
17393         call_for_symbol_and_aliases.
17394         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
17395         (ipa_propagate_frequency_1): Use it; use opt_for_fn
17396         (ipa_propagate_frequency): Update.
17397         (ipa_profile): Add opt_for_fn gueards.
17398
17399 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
17400
17401         * config/sh/sh.opt (mcbranch-force-delay-slot): New option.
17402         * doc/invoke.texi (SH options): Document it.
17403         * config/sh/sh.c (sh_insn_length_adjustment): Check
17404         TARGET_CBRANCH_FORCE_DELAY_SLOT instead of sh_cpu_attr == CPU_SH2E.
17405
17406 2015-02-17  H.J. Lu  <hongjiu.lu@intel.com>
17407
17408         * common.opt (fipa-cp-alignment): New.
17409         * ipa-cp.c (ipcp_store_alignment_results): Check
17410         flag_ipa_cp_alignment.
17411         * opts.c (default_options_table): Enable -fipa-cp-alignment for
17412         -O2.
17413         (enable_fdo_optimizations): Set x_flag_ipa_cp_alignment.
17414         * doc/invoke.texi: Document -fipa-cp-alignment.
17415
17416 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
17417
17418         PR target/64793
17419         * config/sh/sh.md (cbranch define_delay): Set annulled true branch insn
17420         to nil.  Adjust comments.
17421
17422 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
17423
17424         * ipa-visibility.c (function_and_variable_visibility): Only
17425         check locality if node is not already local.
17426         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
17427         call_for_symbol_and_aliases instead of
17428         call_for_symbol_thunks_and_aliases.
17429         (ipa_inline): Likewise.
17430         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
17431         first walk aliases.
17432         * ipa.c (symbol_table::remove_unreachable_nodes): Use
17433         call_for_symbol_and_aliases.
17434         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
17435         (ipa_propagate_frequency_1): Use it; use opt_for_fn
17436         (ipa_propagate_frequency): Update.
17437         (ipa_profile): Add opt_for_fn guards.
17438
17439 2015-02-17  Thomas Schwinge  <thomas@codesourcery.com>
17440
17441         * config/nvptx/mkoffload.c (parse_file): Fix logic error in
17442         skipping of "strange" tokens.
17443
17444 2015-02-17  Jeff Law  <law@redhat.com>
17445
17446         * tree-vrp.c (identify_jump_threads): Use last_stmt.  Remove
17447         obsolete comment.
17448
17449 2015-02-17  James Greenhalgh  <james.greenhalgh@arm.com>
17450
17451         * haifa-sched.c (recompute_todo_spec): Treat SCHED_GROUP_P
17452         as forcing a HARD_DEP between instructions, thereby
17453         disallowing rewriting to break dependencies.
17454
17455 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
17456
17457         * symtab.c (symtab_node::verify_base): Verify body_removed->!definiton
17458         * lto-cgraph.c (lto_output_varpool_node): Do not keep definition of
17459         variables in boundary that have no inlitalizer encoded and are
17460         not aliases.
17461         * varasm.c (default_binds_local_p_2): External definitions do not
17462         count as definitions here.
17463
17464 2015-02-16  Jeff Law  <law@redhat.com>
17465
17466         PR tree-optimization/64823
17467         * tree-vrp.c (identify_jump_threads): Handle blocks with no real
17468         statements.
17469         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
17470         threading through blocks with PHIs, but no statements.
17471         (thread_through_normal_block): Distinguish between blocks where
17472         we did not process all the statements and blocks with no statements.
17473
17474 2015-02-16  Jakub Jelinek  <jakub@redhat.com>
17475             James Greenhalgh  <james.greenhalgh@arm.com>
17476
17477         PR ipa/64963
17478         * cgraphclones.c (cgraph_node::create_virtual_clone): Copy
17479         section if not linkonce.  Fix up formatting.
17480         (cgraph_node::create_version_clone_with_body): Copy section.
17481         * trans-mem.c (ipa_tm_create_version): Likewise.
17482
17483 2015-02-16  Richard Biener  <rguenther@suse.de>
17484
17485         PR tree-optimization/65077
17486         * tree-ssa-structalias.c (get_constraint_for_1): Handle
17487         IMAGPART_EXPR, REALPART_EXPR and BIT_FIELD_REF.
17488         (find_func_aliases): Allow float values to carry pointers again.
17489
17490 2015-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
17491
17492         * doc/install.texi (Specific): Reorder targets list to put
17493         aarch64 in alphabetical order.  Add a link to aarch64*-*-*
17494         from the top menu.
17495
17496 2015-02-16  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
17497             David Edelsohn  <dje.gcc@gmail.com>
17498
17499         PR target/65058
17500         * config/rs6000/rs6000.c (rs6000_output_symbol_ref): Append storage
17501         mapping class to external variable or function reference.
17502         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Do not append storage
17503         mapping class.
17504
17505 2015-02-16  David Eelsohn  <dje.gcc@gmail.com>
17506
17507         PR target/53348
17508         * config/rs6000/rs6000.c (rs6000_declare_alias): Only use
17509         ASM_WEAKEN_DECL if defined.
17510
17511 2015-02-16  Richard Biener  <rguenther@suse.de>
17512
17513         PR lto/65015
17514         * varasm.c (default_file_start): For LTO produced units
17515         emit <artificial> as file directive.
17516
17517 2015-02-16  Richard Biener  <rguenther@suse.de>
17518
17519         PR tree-optimization/63593
17520         * tree-predcom.c (execute_pred_commoning_chain): Delay removing
17521         stmts and releasing SSA names until...
17522         (execute_pred_commoning): ... after processing all chains.
17523
17524 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
17525
17526         PR ipa/65059
17527         * ipa-comdats.c (ipa_comdats): Do not categorize thunks to
17528         external functions.
17529
17530 2015-02-15  Sandra Loosemore  <sandra@codesourcery.com>
17531
17532         * doc/bugreport.texi: Adjust section titles throughout the file
17533         to use "Title Case".
17534         * doc/extend.texi: Likewise.
17535         * doc/gcov.texi: Likewise.
17536         * doc/implement-c.texi: Likewise.
17537         * doc/implement-cxx.texi: Likewise.
17538         * doc/invoke.texi: Likewise.
17539         * doc/objc.texi: Likewise.
17540         * doc/standards.texi: Likewise.
17541         * doc/trouble.texi: Likewise.
17542
17543 2015-02-15  Jan Hubicka  <hubicka@ucw.cz>
17544
17545         * cgraph.h (symtab_node::has_aliases_p): Simplify.
17546         (symtab_node::call_for_symbol_and_aliases): Use has_aliases_p
17547         * tree.c (lookup_binfo_at_offset): Make static.
17548         (get_binfo_at_offset): Do not shadow offset; add explanatory
17549         comment.
17550
17551 2015-02-15  John David Anglin  <danglin@gcc.gnu.org>
17552
17553         * config/pa/pa.c (pa_secondary_reload): Request a secondary reload
17554         for all floading point loads and stores except those using a register
17555         index address.
17556         * config/pa/pa.md: Add new patterns to load a lo_sum DLT operand
17557         to a register.
17558
17559 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
17560
17561         * ipa-inline-analysis.c (growth_data): Add uninlinable field.
17562         (do_estimate_growth_1): Record if any uninlinable edge was seen.
17563         (estimate_growth): Handle uninlinable edges correctly.
17564         (check_callers): New.
17565         (growth_likely_positive): Handle aliases correctly.
17566
17567 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
17568
17569         * ipa-chkp.c: Use iterate_direct_aliases.
17570         * symtab.c (resolution_used_from_other_file_p): Move inline.
17571         (symtab_node::create_reference): Fix formating.
17572         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
17573         (symtab_node::iterate_reference): Move inline.
17574         (symtab_node::iterate_referring): Move inline.
17575         (symtab_node::iterate_direct_aliases): Move inline.
17576         (symtab_node::used_from_object_file_p_worker): Inline into ...
17577         (symtab_node::used_from_object_file_p): ... this one; move inline.
17578         (symtab_node::call_for_symbol_and_aliases): Move inline;
17579         use iterate_direct_aliases.
17580         (symtab_node::call_for_symbol_and_aliases_1): New method.
17581         (cgraph_node::call_for_symbol_and_aliases): Move inline;
17582         use iterate_direct_aliases.
17583         (cgraph_node::call_for_symbol_and_aliases_1): New method.
17584         (varpool_node::call_for_node_and_aliases): Rename to ...
17585         (varpool_node::call_for_symbol_and_aliases): ... this one; Move inline;
17586         use iterate_direct_aliases.
17587         (varpool_node::call_for_symbol_and_aliases_1): New method.
17588         * ipa.c (ipa_single_use): Use iterate_direct_aliases.
17589         (ipa_discover_readonly_nonaddressable_var): Update.
17590         * ipa-devirt.c: Fix formating.
17591         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_and_refs_p):
17592         Move inline.
17593         (cgraph_node::call_for_symbol_and_aliases): Move inline.
17594         (cgraph_node::call_for_symbol_and_aliases_1): New function..
17595         * cgraph.h (used_from_object_file_p_worker): Remove.
17596         (resolution_used_from_other_file_p): Move inline.
17597         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
17598         (symtab_node::iterate_reference): Move inline.
17599         (symtab_node::iterate_referring): Move inline.
17600         (symtab_node::iterate_direct_aliases): Move inline.
17601         (symtab_node::used_from_object_file_p_worker): Inline into ...
17602         (symtab_node::used_from_object_file_p): Move inline.
17603         * tree-emutls.c (ipa_lower_emutls): Update.
17604         * varpool.c (varpool_node::call_for_symbol_and_aliases_1): New method.
17605         (varpool_node::call_for_node_and_aliases): Remove.
17606
17607 2015-02-14  Jakub Jelinek  <jakub@redhat.com>
17608
17609         PR tree-optimization/62209
17610         * tree-ssa-reassoc.c (update_range_test): If stmt is a PHI and
17611         op == range->exp, insert seq and gimplified code after labels
17612         instead of after the phi.
17613
17614 2015-02-13  Jeff Law  <law@redhat.com>
17615
17616         PR bootstrap/65060
17617         Revert my change for tree-optimization/64823.
17618
17619 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
17620
17621         PR tree-optimization/65053
17622         * tree-ssa-phiopt.c (value_replacement): When moving assign before
17623         cond, either reset VR on lhs or set it to phi result VR.
17624
17625 2015-02-13  Jeff Law  <law@redhat.com>
17626
17627         PR tree-optimization/64823
17628         * tree-vrp.c (identify_jump_threads): Handle blocks with no statements.
17629         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
17630         threading through blocks with PHIs, but no statements.
17631         (thread_through_normal_block): Distinguish between blocks where
17632         we did not process all the statements and blocks with no statements.
17633
17634         PR rtl-optimization/47477
17635         * match.pd (convert (plus/minus (convert @0) (convert @1): New
17636         simplifier to narrow arithmetic.
17637
17638 2015-02-13  Jan Hubicka  <hubicka@ucw.cz>
17639
17640         PR ipa/65028
17641         * ipa-prop.c (update_indirect_edges_after_inlining): Do not drop
17642         polymorphic call info when type is not known to be preserved.
17643
17644 2015-02-13  Maritn Jambor  <mjambor@suse.cz>
17645
17646         PR ipa/65028
17647         * ipa-inline-transform.c (mark_all_inlined_calls_cdtor): New function.
17648         (inline_call): Use it.
17649
17650 2015-02-13  Thomas Schwinge  <thomas@codesourcery.com>
17651
17652         * config/nvptx/offload.h (ACCEL_COMPILER_acc_device): Define to
17653         GOMP_DEVICE_NVIDIA_PTX.
17654
17655 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
17656
17657         PR ipa/65034
17658         * stmt.c (emit_case_nodes): Use void_type_node instead of
17659         NULL_TREE as LABEL_DECL type.
17660
17661 2015-02-13  John David Anglin  <danglin@gcc.gnu.org>
17662
17663         * config/pa/constraints.md: Change "Q" and "T" constraints to memory
17664         constraints.
17665         * config/pa/pa.c (pa_cannot_force_const_mem): Don't allow constant
17666         symbolic references to data to be forced to constant memory on the
17667         SOM target.
17668
17669 2015-02-13  Ilya Enkovich  <ilya.enkovich@intel.com>
17670
17671         PR tree-optimization/65002
17672         * tree-cfg.c (pass_data_fixup_cfg): Don't update
17673         SSA on start.
17674         * tree-sra.c (some_callers_have_no_vuse_p): New.
17675         (ipa_early_sra): Reject functions whose callers
17676         assume function is read only.
17677
17678 2015-02-13  Richard Biener  <rguenther@suse.de>
17679
17680         PR lto/65015
17681         * dwarf2out.c (dwarf2out_finish): Use <artificial> as DW_AT_name
17682         for LTO produced CUs.
17683
17684 2015-02-13  Bin Cheng  <bin.cheng@arm.com>
17685
17686         PR tree-optimization/64705
17687         * tree-ssa-loop-niter.h (expand_simple_operations): New parameter.
17688         * tree-ssa-loop-niter.c (expand_simple_operations): New parameter.
17689         * tree-ssa-loop-ivopts.c (extract_single_var_from_expr): New.
17690         (find_bivs, find_givs_in_stmt_scev): Pass new argument to
17691         expand_simple_operations.
17692
17693 2015-02-13  H.J. Lu  <hongjiu.lu@intel.com>
17694             Richard Henderson  <rth@redhat.com>
17695
17696         PR rtl/32219
17697         * cgraphunit.c (cgraph_node::finalize_function): Set definition
17698         before notice_global_symbol.
17699         (varpool_node::finalize_decl): Likewise.
17700         * varasm.c (default_binds_local_p_2): Rename from
17701         default_binds_local_p_1, add weak_dominate argument.  Use direct
17702         returns instead of assigning to local variable.  Unify varpool and
17703         cgraph paths via symtab_node.  Reject undef weak variables before
17704         testing visibility.  Reorder tests for simplicity.
17705         (default_binds_local_p): Use default_binds_local_p_2.
17706         (default_binds_local_p_1): Likewise.
17707         (decl_binds_to_current_def_p): Unify varpool and cgraph paths
17708         via symtab_node.
17709         (default_elf_asm_output_external): Emit visibility when specified.
17710
17711 2015-02-13  Alan Modra  <amodra@gmail.com>
17712
17713         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Fix typo in
17714         code setting up r11 for out-of-line fp restore.
17715
17716 2015-02-13  Eric Botcazou  <ebotcazou@adacore.com>
17717
17718         * config/visium/visium.opt (msv-mode): Add RejectNegative and Report.
17719         (muser-mode): Likewise.
17720
17721 2015-02-13  Alan Modra  <amodra@gmail.com>
17722
17723         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Use addsi3_carry
17724         or adddi3_carry when restoring frame_reg_rtx from r0 after restvr.
17725
17726 2015-02-12  David Howells  <dhowells@redhat.com>
17727
17728         * tree-sra.c (dump_dereferences_table): Avoid -Wformat-security
17729         warning.
17730         * tree-ssa-uninit.c (dump_predicates): Likewise.
17731         * opts.c (print_filtered_help): Likewise.
17732
17733 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
17734
17735         * dwarf2out.c (output_die): Use "%s", name instead of name to
17736         avoid -Wformat-security warning.
17737
17738         * dwarf2asm.c (dw2_asm_output_vms_delta): Only define
17739         if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
17740         * dwarf2out.c (output_die): Use dw2_asm_output_vms_delta
17741         only if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
17742
17743 2015-02-12  Jason Merrill  <jason@redhat.com>
17744
17745         * common.opt (-flifetime-dse): New.
17746
17747 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
17748
17749         PR sanitizer/65019
17750         * ubsan.c (ubsan_expand_objsize_ifn): Always return true.
17751
17752         PR tree-optimization/65014
17753         * fold-const.c (fold_binary_loc): When creating {L,R}ROTATE_EXPR,
17754         use original second operand of arg0 or arg1 instead of
17755         that adjusted by STRIP_NOPS.
17756
17757 2015-02-11  Jeff Law  <law@redhat.com>
17758
17759         PR target/63347
17760         * haifa-sched.c (prune_ready_list): If we have a SCHED_GROUP_P insn
17761         that needs to be queued, just queue it for a single cycle.
17762
17763 2015-02-11  Jan Hubicka  <hubicka@ucw.cz>
17764
17765         * ipa.c (symbol_table::remove_unreachable_nodes): Avoid releasing
17766         bodies of thunks; comment on why.
17767         * symtab.c (symtab_node::get_partitioning_class): Aliases of extern
17768         symbols are extern.
17769
17770 2015-02-11  Richard Henderson  <rth@redhat.com>
17771
17772         PR sanitize/65000
17773         * tree-eh.c (mark_reachable_handlers): Mark source and destination
17774         regions of __builtin_eh_copy_values.
17775
17776 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
17777
17778         PR middle-end/65003
17779         * varasm.c (place_block_symbol): Assert that DECL_RTL of the
17780         ultimate alias is MEM with SYMBOL_REF satisfying
17781         SYMBOL_REF_HAS_BLOCK_INFO_P as its operand.  Don't pass the MEM
17782         to place_block_symbol, but instead pass the SYMBOL_REF operand of it.
17783
17784 2015-02-11  Thomas Schwinge  <thomas@codesourcery.com>
17785
17786         * config/nvptx/mkoffload.c: Include "diagnostic.h" instead of
17787         "diagnostic-core.h".
17788         (main): Initialize progname, and call diagnostic_initialize.
17789
17790         * config/nvptx/mkoffload.c (process): Refer to __OFFLOAD_TABLE__
17791         instead of __OPENMP_TARGET__.
17792
17793         * config/nvptx/mkoffload.c: Include "gomp-constants.h".
17794         (process): Use its GOMP_DEVICE_NVIDIA_PTX instead of (wrongly)
17795         hard-coding PTX_ID.
17796
17797 2015-02-11  H.J. Lu  <hongjiu.lu@intel.com>
17798
17799         * doc/sourcebuild.texi (pie_enabled): Document.
17800
17801 2015-02-11  Martin Liska  <mliska@suse.cz>
17802
17803         PR ipa/64813
17804         * cgraphunit.c (cgraph_node::expand_thunk): Do not create
17805         a return value for call to a function that is noreturn.
17806
17807 2015-02-11  Richard Biener  <rguenther@suse.de>
17808
17809         PR lto/65015
17810         * dwarf2out.c (gen_producer_string): Drop -fltrans-output-list
17811         and -fresolution.
17812
17813 2015-02-11  Andrew Pinski  <apinski@cavium.com>
17814
17815         PR target/64893
17816         * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
17817         Change the first argument type to size_type_node and add another
17818         size_type_node.
17819         (aarch64_simd_expand_builtin): Handle the new argument to
17820         AARCH64_SIMD_BUILTIN_LANE_CHECK and don't ICE but rather
17821         print an out when the first two arguments are not
17822         nonzero integer constants.
17823         * config/aarch64/arm_neon.h (__AARCH64_LANE_CHECK):
17824         Pass the sizeof directly to __builtin_aarch64_im_lane_boundsi.
17825
17826 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
17827
17828         PR target/61925
17829         * config/i386/i386.c (ix86_reset_to_default_globals): Removed.
17830         (ix86_reset_previous_fndecl): Restore it here, unconditionally.
17831         (ix86_set_current_function): Rewritten.
17832         (ix86_add_new_builtins): Temporarily clear current_target_pragma
17833         when creating builtin fndecls.
17834
17835 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
17836
17837         PR ipa/65005
17838         * ipa-visibility.c (cgraph_node::non_local_p): Turn into static
17839         function.
17840         * symtab.c (symtab_node::verify_base): Remove check that non-definitions
17841         have no comdat group.
17842         * lto-cgraph.c (lto_output_node): Always output thunk and alias info.
17843         (lto_output_varpool_node): Always output alias info.
17844         (output_refs): Output refs of boundary aliases, too.
17845         (compute_ltrans_boundary): Add alias and thunk target into boundaries.
17846         (output_symtab): Output call eges in thunks in boundary.
17847         (get_alias_symbol): Remove.
17848         (input_node, input_varpool_node): Do not special case weakrefs.
17849         * ipa.c (symbol_table::remove_unreachable_nodes): Do not remove
17850         alias and thunks targets in the boundary; do not take removed symbols
17851         from their comdat groups.
17852         * cgraph.c (cgraph_node::local_info): Look through aliases and thunks.
17853         (cgraph_node::global_info): Remove.
17854         (cgraph_node::rtl_info): Look through aliases and thunks.
17855         * cgrpah.h (global_info): Remove.
17856         (non_local_p): Remove.
17857
17858 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
17859             Sandra Loosemore  <sandra@codesourcery.com>
17860
17861         * doc/invoke.texi (x86 Options [-masm=dialect]): Add cross-references
17862         to inline asm.  List dialects in proper order.
17863
17864 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
17865             Sandra Loosemore  <sandra@codesourcery.com>
17866
17867         * doc/extend.texi (Loop-Specific Pragmas): Fix grammar error.
17868
17869 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
17870
17871         * doc/extend.texi (Symbol-Renaming Pragmas): Restore (slightly
17872         modified) reference to Solaris.
17873
17874 2015-02-10  Sandra Loosemore  <sandra@codesourcery.com>
17875
17876         * doc/extend.texi (Extended Asm): Fix typos.
17877
17878 2015-02-10  Jakub Jelinek  <jakub@redhat.com>
17879
17880         PR sanitizer/65004
17881         * ubsan.c (ubsan_expand_vptr_ifn): Always return true.
17882
17883 2015-02-10  Oleg Endo  <olegendo@gcc.gnu.org>
17884
17885         PR target/64661
17886         * config/sh/sh-protos.h (TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
17887         TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
17888         TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): Add parentheses.
17889         * config/sh/constraints.md (Ara, Add): New constraints.
17890         * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1): New
17891         predicates.
17892         (atomic_compare_and_swap<mode>, atomic_exchange<mode>): Use
17893         atomic_mem_operand_0.  Don't use force_reg on the memory address.
17894         (atomic_compare_and_swapsi_hard): Use atomic_mem_operand_0 predicate and
17895         Sra constraint.  Convert to insn_and_split.  Add workaround for
17896         PR 64974.
17897         (atomic_compare_and_swap<mode>_hard): Copy to
17898         atomic_compare_and_swap<mode>_hard_1.  Convert to insn_and_split.
17899         Use atomic_mem_operand_0 predicate.
17900         (atomic_compare_and_swap<mode>_soft_gusa,
17901         atomic_exchange<mode>_soft_gusa): Use atomic_mem_operand_0 predicate and
17902         AraAdd constraints.
17903         (atomic_compare_and_swap<mode>_soft_tcb,
17904         atomic_compare_and_swap<mode>_soft_imask,
17905         atomic_exchange<mode>_soft_tcb, atomic_exchange<mode>_soft_imask): Use
17906         atomic_mem_operand_0 predicate and SraSdd constraints.
17907         (atomic_exchangesi_hard) Use atomic_mem_operand_0 predicate and Sra
17908         constraint.
17909         (atomic_exchange<mode>_hard): Copy to atomic_exchange<mode>_hard_1.
17910         Convert to insn_and_split.  Use atomic_mem_operand_0 predicate.
17911         (atomic_fetch_<fetchop_name><mode>, atomic_fetch_nand<mode>,
17912         atomic_<fetchop_name>_fetch<mode>): Use atomic_mem_operand_1.  Don't use
17913         force_reg on the memory address.
17914         (atomic_fetch_<fetchop_name>si_hard, atomic_fetch_notsi_hard,
17915         atomic_fetch_nandsi_hard, atomic_<fetchop_name>_fetchsi_hard,
17916         atomic_not_fetchsi_hard, atomic_nand_fetchsi_hard): Use
17917         atomic_mem_operand_1 predicate and Sra constraint.
17918         (atomic_fetch_<fetchop_name><mode>_hard): Copy to
17919         atomic_fetch_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
17920         Use atomic_mem_operand_1 predicate.
17921         (atomic_<fetchop_name><mode>_hard): Copy to
17922         atomic_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
17923         Use atomic_mem_operand_1 predicate.
17924         (atomic_fetch_nand<mode>_hard): Copy to atomic_fetch_nand<mode>_hard_1.
17925         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
17926         (atomic_nand<mode>_hard): Copy to atomic_nand<mode>_hard_1.  Convert to
17927         insn_and_split.  Use atomic_mem_operand_1 predicate.
17928         (atomic_<fetchop_name>_fetch<mode>_hard): Copy to
17929         atomic_<fetchop_name>_fetch<mode>_hard_1.  Convert to insn_and_split.
17930         Use atomic_mem_operand_1 predicate.
17931         (atomic_nand_fetch<mode>_hard): Copy to atomic_nand_fetch<mode>_hard_1.
17932         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
17933         (atomic_fetch_not<mode>_hard, atomic_not_fetch<mode>_hard): Replace mems
17934         in generated insn with original mem operand before emitting the insn.
17935         (atomic_fetch_<fetchop_name><mode>_soft_gusa,
17936         atomic_fetch_not<mode>_soft_gusa, atomic_fetch_nand<mode>_soft_gusa,
17937         atomic_<fetchop_name>_fetch<mode>_soft_gusa,
17938         atomic_not_fetch<mode>_soft_gusa, atomic_nand_fetch<mode>_soft_gusa):
17939         Use atomic_mem_operand_1 predicate and AraAdd constraints.
17940         (atomic_fetch_<fetchop_name><mode>_soft_tcb,
17941         atomic_<fetchop_name><mode>_soft_tcb, atomic_fetch_not<mode>_soft_tcb,
17942         atomic_not<mode>_soft_tcb, atomic_fetch_<fetchop_name><mode>_soft_imask,
17943         atomic_fetch_not<mode>_soft_imask, atomic_fetch_nand<mode>_soft_tcb,
17944         atomic_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask,
17945         atomic_<fetchop_name>_fetch<mode>_soft_tcb,
17946         atomic_not_fetch<mode>_soft_tcb,
17947         atomic_<fetchop_name>_fetch<mode>_soft_imask,
17948         atomic_not_fetch<mode>_soft_imask, atomic_nand_fetch<mode>,
17949         atomic_nand_fetch<mode>_soft_tcb, atomic_nand_fetch<mode>_soft_imask):
17950         Use atomic_mem_operand_1 predicate and SraSdd constraints.
17951
17952 2015-02-10  Uros Bizjak  <ubizjak@gmail.com>
17953
17954         * config/alpha/alpha.md (reload_out<mode>_aligned): Make operands 2
17955         and 3 earlyclobber operands.
17956
17957 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
17958
17959         * common.opt (fstack-reuse): Mark as optimization.
17960
17961 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
17962
17963         PR ipa/64982
17964         * cgraphunit.c (cgraph_node::expand_thunk): Look for stdarg thunks.
17965
17966 2015-02-10  Trevor Saunders  <tsaunders@mozilla.com>
17967
17968         PR tree-optimization/64326
17969         * cfghooks.c (make_forwarder_block): Cap frequency of created block.
17970
17971 2015-02-10  Rainer Emrich  <rainer@emrich-ebersheim.de>
17972
17973         PR gcov-profile/61889
17974         * gcov-tool.c: Remove wrong #if !defined(_WIN32)
17975
17976 2015-02-10  Richard Biener  <rguenther@suse.de>
17977
17978         PR tree-optimization/64995
17979         * tree-ssa-sccvn.c (set_ssa_val_to): Assert that the
17980         value we use is final.
17981         (visit_reference_op_store): Always valueize op.
17982         (visit_use): Properly valueize vuses.
17983
17984 2015-02-10  Richard Biener  <rguenther@suse.de>
17985
17986         PR tree-optimization/64909
17987         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Properly
17988         pass a scalar-stmt count estimate to the cost model.
17989         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Likewise.
17990
17991 2015-02-10  Alexander Monakov  <amonakov@ispras.ru>
17992
17993         * doc/invoke.texi (-fvar-tracking-assignments): Clarify that VTA is
17994         enabled by default together with var-tracking.
17995
17996 2015-02-10  Nick Clifton  <nickc@redhat.com>
17997
17998         * config/rl78/rl78.c: Remove DIV attribute code accidentally
17999         included in previous rl78 commit.
18000
18001 2015-02-10  Richard Biener  <rguenther@suse.de>
18002
18003         * tree-streamer.h (streamer_read_tree_bitfields): Adjust.
18004         * tree-streamer-in.c (streamer_read_tree_bitfields): Do not
18005         return the bitpack.
18006
18007 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
18008
18009         PR gcov-profile/61889
18010         * config.in: regenerate.
18011         * configure.in: Likewise.
18012         * configure.ac: Check for ftw.h.
18013         * gcov-tool.c: Check for ftw.h before using nftw.
18014
18015 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
18016
18017         PR lto/64076
18018         * ipa-visibility.c (update_visibility_by_resolution_info): Only
18019         assert when not in lto mode.
18020
18021 2015-02-09  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
18022
18023         * ira-color.c (setup_left_conflict_sizes_p): Simplify
18024         initialization/assignment of conflict_size.
18025
18026 2015-02-09  Jan Hubicka  <hubicka@ucw.cz>
18027
18028         PR ipa/64978
18029         * ipa-cp.c (gather_caller_stats): Skip thunks.
18030         (propagate_constants_topo): Skip aliases.
18031
18032 2015-02-09  Kaz Kojima  <kkojima@gcc.gnu.org>
18033
18034         PR target/64761
18035         * config/sh/sh.c (sh_option_override): Don't change
18036         -freorder-blocks-and-partition to -freorder-blocks even when
18037         unwinding is enabled.
18038         (sh_can_follow_jump): Return false if the followee jump is
18039         a crossing jump when -freorder-blocks-and-partition is specified.
18040         * config/sh/sh.md (*jump_compact_crossing): New insn.
18041
18042 2015-02-09  Joern Rennecke  <joern.rennecke@embecosm.com>
18043             Kaz Kojima  <kkojima@gcc.gnu.org>
18044
18045         PR target/64761
18046         * config/sh/sh-protos.h (sh_can_redirect_branch): Don't declare.
18047         * config/sh/sh.c (TARGET_CAN_FOLLOW_JUMP): Redefine.
18048         (sh_can_redirect_branch): Rename to ...
18049         (sh_can_follow_jump): ... this.  Constify argument types.
18050         * config/sh/sh.h (MD_CAN_REDIRECT_BRANCH): Don't define.
18051         * doc/tm.texi.in (MD_CAN_REDIRECT_BRANCH): Remove documentation.
18052         * reorg.c (steal_delay_list_from_target): Use targetm.can_follow_jump.
18053         * doc/tm.texi: Regenerate.
18054
18055 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
18056
18057         PR sanitizer/64981
18058         * builtins.c (expand_builtin): Call targetm.expand_builtin
18059         for BUILT_IN_MD builtins regardless of asan_intercepted_p.
18060
18061 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
18062
18063         PR ipa/61548
18064         * tree-emutls.c (ipa_lower_emutls): Avoid duplicates in TLS_VARS.
18065
18066 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
18067
18068         PR ipa/63566
18069         * ipa-icf.c (set_local): New function.
18070         (sem_function::merge): Use it.
18071
18072 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
18073
18074         * ipa-devirt.c (odr_types_equivalent_p): Fix formating.
18075         (add_type_duplicate): Fix comparison of BINFOs.
18076
18077 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
18078
18079         * ipa-polymorphic-call.c (ipa_polymorphic_call_context): Avoid ICE
18080         on getting VOID pointer.
18081
18082 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
18083
18084         PR target/64979
18085         * tree-stdarg.c (pass_stdarg::execute): Scan phi node args for
18086         va_list escapes.
18087
18088 2015-02-09  Richard Biener  <rguenther@suse.de>
18089
18090         * genmatch.c (replace_id): Copy expr_type.
18091
18092 2015-02-09  Richard Biener  <rguenther@suse.de>
18093
18094         * tree-streamer.h (streamer_pack_tree_bitfields): Remove.
18095         (streamer_write_tree_bitfields): Declare.
18096         * tree-streamer-in.c (unpack_ts_base_value_fields): Inline,
18097         properly unpack padding.
18098         (unpack_value_fields): Inline ...
18099         (streamer_read_tree_bitfields): ... here.
18100         * tree-streamer-out.c (pack_ts_base_value_fields): Inline
18101         and properly add padding bits.
18102         (streamer_pack_tree_bitfields): Fold into ...
18103         (streamer_write_tree_bitfields): ... this new function,
18104         exposing the bitpack object.
18105         * lto-streamer-out.c (lto_write_tree_1): Call
18106         streamer_write_tree_bitfields.
18107
18108 2015-02-09  Richard Biener  <rguenther@suse.de>
18109
18110         PR tree-optimization/54000
18111         * tree-ssa-looo-ivopts.c: Include tree-vectorizer.h.
18112         (struct ivopts_data): Add loop_loc member.
18113         (tree_ssa_iv_optimize_loop): Dump loop location.
18114         (create_new_ivs): Likewise, also dump number of IVs generated.
18115
18116 2015-02-09  Martin Liska  <mliska@suse.cz>
18117
18118         * ipa-icf.c (sem_item_optimizer::register_hooks): Register hooks
18119         just if not yet registered.
18120         (ipa_icf_generate_summary): Register callgraph hooks.
18121
18122 2015-02-08  Andrew Pinski  <apinski@cavium.com>
18123
18124         * config/aarch64/aarch64.c (gty_dummy): Delete.
18125
18126 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
18127
18128         PR ipa/63566
18129         * ipa-visibility.c (cgraph_node::non_local_p): Accept aliases.
18130         (cgraph_node::local_p): Remove thunk related FIXME.
18131
18132 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
18133
18134         PR ipa/63566
18135         * i386.c (ix86_function_regparm): Look through aliases to see if callee
18136         is local and optimized.
18137         (ix86_function_sseregparm): Likewise; also use target's SSE math
18138         settings; error out instead of silently generating wrong code
18139         on mismatches.
18140         (init_cumulative_args): Look through aliases.
18141
18142 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
18143
18144         PR ipa/63566
18145         * ipa-split.c (execute_split_functions): Split if function has aliases.
18146
18147 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
18148
18149         PR ipa/63566
18150         * cgraphunit.c (cgraph_node::analyze): Be sure target of thunk is
18151         aliases before trying to expand it.
18152         (cgraph_node::expand_thunk): Fix formating.
18153
18154 2015-02-07  Sandra Loosemore  <sandra@codesourcery.com>
18155
18156         * doc/extend.texi (Function Attributes [naked]): Copy-edit.
18157         (Using Assembly Language with C): Expand introduction.
18158         (Basic Asm): Copy-edit.  Add more information about uses of
18159         basic asm.
18160         (Extended Asm): Copy-edit.  Document new escape syntax and
18161         %l[label] syntax.
18162         (Global Reg Vars): Copy-edit.
18163         (Local Reg Vars): Likewise.
18164
18165 2015-02-06  David Edelsohn  <dje.gcc@gmail.com>
18166
18167         PR debug/2714
18168         PR bootstrap/64256
18169         * xcoffout.h (DBX_CONTIN_LENGTH): Define as 16384.
18170         (DBX_CONTIN_CHAR): Define.
18171
18172 2015-02-06  Sebastian Pop  <s.pop@samsung.com>
18173             Brian Rzycki  <b.rzycki@samsung.com>
18174
18175         PR tree-optimization/64878
18176         * tree-ssa-threadedge.c: Include tree-ssa-loop.h.
18177         (fsm_find_control_statement_thread_paths): Add parameter seen_loop_phi.
18178         Stop recursion at loop phi nodes after having visited a loop phi node.
18179
18180 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
18181
18182         * toplev.c (process_options): Change flag_ipa_ra before creating
18183         optimization_{default,current}_node.
18184
18185         PR ipa/64896
18186         * cgraphunit.c (cgraph_node::expand_thunk): If
18187         restype is not is_gimple_reg_type nor the thunk_fndecl
18188         returns aggregate_value_p, set restmp to a temporary variable
18189         instead of resdecl.
18190
18191 2015-02-06  Vladimir Makarov  <vmakarov@redhat.com>
18192
18193         * lra.c (lra_emit_add): Fix a typo in using disp instead of base.
18194
18195 2015-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
18196
18197         PR target/64205
18198         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
18199         add a general secondary reload handler for SDmode, unless we have
18200         both read/write support for SDmode.
18201
18202 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
18203
18204         PR middle-end/64937
18205         * dwarf2out.c (set_block_abstract_flags, set_decl_abstract_flags):
18206         Replace setting argument with abstract_vec, always set BLOCK_ABSTRACT
18207         or DECL_ABSTRACT_P flags to 1 rather than to setting, and if it wasn't
18208         1 before, push it to abstract_vec.
18209         (dwarf2out_abstract_function): Adjust caller.  Don't call
18210         set_decl_abstract_flags second time, instead clear BLOCK_ABSTRACT or
18211         DECL_ABSTRACT_P flags for all abstract_vec elts.
18212
18213 2015-02-06  Renlin Li  <renlin.li@arm.com>
18214
18215         * tree-ssa-forwprop.c (execute): Keep location info while rewrite
18216         complex gimple.
18217         * tree-ssa.c (execute_update_addresses_taken): Likewise.
18218
18219 2015-02-06  Jeff Law  <law@redhat.com>
18220
18221         PR target/64889
18222         * config/h8300/h8300.c (push): New argument "in_prologue".
18223         Pass "in_prologue" along to "F".
18224         (h8300_push_pop): Corresponding changes.
18225         (h8300_expand_prologue): Likewise.
18226         (h8300_swap_into_er6): Likewise.  Do not set RTX_FRAME_RELATED_P.
18227
18228 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
18229
18230         PR rtl-optimization/64957
18231         PR debug/64817
18232         * simplify-rtx.c (simplify_binary_operation_1): Use ~cval for
18233         IOR rather than for AND.
18234
18235 2015-02-06  Eric Botcazou  <ebotcazou@adacore.com>
18236
18237         PR target/62631
18238         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Use the mininum of costs
18239         of shift-add and (add + shift) operations.  Rename local variable.
18240
18241 2015-02-05  Jeff Law  <law@redhat.com>
18242
18243         PR target/17306
18244         * config/h8300/constraints.md (U): Correctly dectect
18245         "eightbit_data" memory addresses.
18246         * config/h8300/h8300.c (eightbit_constant_address_p): Also
18247         handle (const (plus (symbol_ref (x)))) where x is declared
18248         as an 8-bit data memory address.
18249         * config/h8300/h8300.md (call, call_value): Correctly detect
18250         "funcvec" functions.
18251
18252         PR target/43264
18253         * config/h8300/h8300.c (get_shift_alg): Fix ASHIFTRT by
18254         24 to 28 bits for the H8/300.
18255
18256 2015-02-06  Alan Modra  <amodra@gmail.com>
18257
18258         PR target/64876
18259         * config/rs6000/rs6000.c (chain_already_loaded): New function.
18260         (rs6000_call_aix): Use it.
18261
18262 2015-02-05  Jan Hubicka <hubicka@ucw.cz>
18263
18264         * ipa-cp.c (ipa_value_from_jfunc, ipa_context_from_jfunc): Add bounds
18265         check.
18266
18267 2015-02-05  Joern Rennecke  <joern.rennecke@embecosm.com>
18268
18269         * config/h8300/constraints.md ("U" constraint): Use strict
18270         variant of REG_OK_FOR_BASE_P after reload has started.
18271
18272 2015-02-04  Mantas Mikaitis  <mantas.mikaitis@arm.com>
18273
18274         * config/arm/arm.h (TARGET_NEON_FP): Removed conditional definition,
18275         define to zero if !TARGET_NEON.
18276         (TARGET_ARM_FP): Added !TARGET_SOFT_FLOAT into conditional definition.
18277
18278 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
18279             Trevor Saunders  <tsaunders@mozilla.com>
18280
18281         PR ipa/61548
18282         * tree-emultls.c (new_emutls_decl): Resolve alias after creating it.
18283
18284 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
18285
18286         PR ipa/61548
18287         * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering issue
18288         when removing varpool nodes.
18289
18290 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
18291
18292         PR ipa/61548
18293         * varpool.c (varpool_node::remove): Fix order of variables.
18294
18295 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
18296
18297         PR ipa/64686
18298         * ipa-inline.c (inline_small_functions): Fix ordering issue between
18299         speculation resolution and key updates.
18300
18301 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
18302
18303         * ipa-prop.c (update_indirect_edges_after_inlining): By more careful
18304         about not letting any speculative edges unupdated.
18305
18306 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
18307
18308         PR gcov/64123
18309         * gcov-io.c (gcov_var): Export.
18310
18311 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
18312
18313         PR middle-end/64922
18314         * ipa-prop.c (update_indirect_edges_after_inlining): Correctly update
18315         edges that become speculative.
18316
18317 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
18318
18319         * dwarf2out.c (is_fortran): Also return true for DW_LANG_Fortran03
18320         or DW_LANG_Fortran08.
18321         (lower_bound_default): Return 1 for DW_LANG_Fortran03 or
18322         DW_LANG_Fortran08.
18323         (gen_compile_unit_die): Handle "GNU Fortran2003" and
18324         "GNU Fortran2008" language strings.
18325         * dbxout.c (get_lang_number): Use lang_GNU_Fortran.
18326         * langhooks.h (lang_GNU_Fortran): New prototype.
18327         * langhooks.c (lang_GNU_Fortran): New function.
18328         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
18329         lang_GNU_Fortran.
18330
18331 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
18332
18333         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P): Fix off-by-one error.
18334         (RTX_OK_FOR_OLO10_P): Likewise.
18335
18336 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
18337
18338         * tree-ssa-loop-ivopts.c (get_address_cost): Use right mode for offset.
18339
18340 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
18341
18342         PR middle-end/64922
18343         * gimple.c: Include gimple-ssa.h.
18344         (maybe_remove_unused_call_args): New function.
18345         * gimple.h (maybe_remove_unused_call_args): Declare.
18346         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
18347         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
18348         * gimple-fold.c (gimple_fold_call): Likewise.
18349
18350 2015-02-04  H.J. Lu  <hongjiu.lu@intel.com>
18351
18352         PR rtl-optimization/64905
18353         * lra-eliminations.c (setup_can_eliminate): Clear hard frame
18354         pointer alignment if it isn't needed.
18355
18356 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
18357
18358         * config/aarch64/aarch64-cores.def: Add cortex-a72 and
18359         cortex-a72.cortex-a53.
18360         * config/aarch64/aarch64-tune.md: Regenerate.
18361         * doc/invoke.texi (AArch64 Options/-mtune): Add "cortex-a72".
18362
18363 2015-02-04  Nick Clifton  <nickc@redhat.com>
18364
18365         * config/rl78/rl78.c (rl78_note_reg_set): Note the use of REGs
18366         inside a MEM.
18367
18368 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
18369
18370         * builtins.def (DEF_BUILTIN_CHKP): Define if not defined.
18371         (DEF_LIB_BUILTIN_CHKP, DEF_EXT_LIB_BUILTIN_CHKP): Redefine.
18372         (DEF_CHKP_BUILTIN): Define using DEF_BUILTIN_CHKP instead
18373         of DEF_BUILTIN.
18374         (BUILT_IN_MEMCPY, BUILT_IN_MEMMOVE, BUILT_IN_MEMSET, BUILT_IN_STRCAT,
18375         BUILT_IN_STRCHR, BUILT_IN_STRCPY, BUILT_IN_STRLEN): Use
18376         DEF_LIB_BUILTIN_CHKP macro instead of DEF_LIB_BUILTIN.
18377         (BUILT_IN_MEMCPY_CHK, BUILT_IN_MEMMOVE_CHK, BUILT_IN_MEMPCPY_CHK,
18378         BUILT_IN_MEMPCPY, BUILT_IN_MEMSET_CHK, BUILT_IN_STPCPY_CHK,
18379         BUILT_IN_STPCPY, BUILT_IN_STRCAT_CHK, BUILT_IN_STRCPY_CHK): Use
18380         DEF_EXT_LIB_BUILTIN_CHKP macro instead of DEF_EXT_LIB_BUILTIN.
18381         * tree-core.h (enum built_in_function): In between
18382         BEGIN_CHKP_BUILTINS and END_CHKP_BUILTINS only define enum values
18383         for builtins that use DEF_BUILTIN_CHKP macro.
18384
18385 2015-02-04  Alexandre Oliva <aoliva@redhat.com>
18386
18387         PR debug/64817
18388         * cfgexpand.c (expand_debug_expr): Compute unsignedp from
18389         operands for tcc_comparison exprs.  Fix typos.
18390
18391         PR debug/64817
18392         * simplify-rtx.c (simplify_binary_operation_1): Simplify one
18393         of two XORs that have an intervening AND or IOR.
18394
18395         PR debug/64817
18396         * simplify-rtx.c (simplify_binary_operation_1): Rewrite
18397         simplification of XOR of AND to not allocate new rtx before
18398         committing to a simplification.
18399
18400 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18401
18402         * config/aarch64/aarch64-ldpstp.md: Use std::swap instead of
18403         manual swaps in all peepholes.
18404
18405 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18406
18407         * config/aarch64/aarch64.c (aarch64_evpc_ext): Use std::swap instead
18408         of manual swapping implementation.
18409         (aarch64_expand_vec_perm_const_1): Likewise.
18410
18411 2015-02-04  James Greenhalgh <james.greenhalgh@arm.com>
18412
18413         * config/aarch64/aarch64.c (NAMED_PARAM): Delete it.
18414         (generic_addrcost_table): Remove NAMED_PARAM.
18415         (cortexa57_addrcost_table): Likewise.
18416         (xgene1_addrcost_table): Likewise.
18417         (generic_regmove_table): Likewise.
18418         (cortexa53_regmove_table): Likewise.
18419         (xgene1_regmove_table): Likewise.
18420         (generic_vector_table): Likewise.
18421         (cortexa57_vector_table): Likewise.
18422         (xgene1_vector_table): Likewise.
18423         (generic_tunings): Likewise.
18424         (cortexa53_tunings): Likewise.
18425         (cortexa57_tunings): Likewise.
18426         (xgene1_tunings): Likewise.
18427
18428 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
18429
18430         * config/arm/arm-cores.def: Add cortex-a72 and
18431         cortex-a72.cortex-a53.
18432         * config/arm/bpabi.h (BE8_LINK_SPEC): Likewise.
18433         * config/arm/t-aprofile (MULTILIB_MATCHES): Likewise.
18434         * config/arm/arm-tune.md: Regenerate.
18435         * config/arm/arm-tables.opt: Add entries for "cortex-a72" and
18436         "cortex-a72.cortex-a53".
18437         * doc/invoke.texi (ARM Options/-mtune): Likewise.
18438
18439 2015-02-04  Nick Clifton  <nickc@redhat.com>
18440
18441         PR target/64408
18442         * config/fr30/predicates.md (di_operand): Add SUBREG to the list
18443         of accepted codes.
18444         (nonimmediate_di_operand): Likewise.
18445
18446         * config/msp430/msp430.c (msp430_use_f5_series_hwmult): Add more
18447         prefixes of known F5 using MSP430 MCUs.
18448
18449 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18450
18451         * config/aarch64/aarch64-simd-builtins.def (sqrt): Use BUILTIN_VDQF_DF.
18452         * config/aarch64/arm_neon.h (vsqrt_f64): Use __builtin_aarch64_sqrtdf
18453         instead of __builtin_sqrt.
18454
18455 2015-02-04  Ilya Enkovich  <ilya.enkovich@intel.com>
18456
18457         * varasm.c (do_assemble_alias): Follow transparent alias
18458         chain for target.
18459         (default_assemble_visibility): Follow transparent alias
18460         chain for decl name.
18461
18462 2015-02-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
18463
18464         PR middle-end/62103
18465         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use TYPE_PRECISION
18466         to compute size of referenced value in the constant case.
18467
18468 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
18469
18470         PR rtl-optimization/64756
18471         * cse.c (invalidate_dest): New function.
18472         (cse_insn): Use it.  If dest != SET_DEST (sets[i].rtl) and
18473         HASH (SET_DEST (sets[i].rtl), mode) computation sets do_not_record,
18474         invalidate and do not record it.
18475
18476 2015-02-03  Oleg Endo  <olegendo@gcc.gnu.org>
18477
18478         PR target/64660
18479         * config/sh/sync.md (atomic_<fetchop_name><mode>_hard,
18480         atomic_not<mode>_hard, atomic_<fetchop_name><mode>_soft_tcb,
18481         atomic_not<mode>_soft_tcb, atomic_nand<mode>_hard,
18482         atomic_nand<mode>_soft_tcb): New insns.
18483         (atomic_fetch_<fetchop_name>si_hard): Convert to insn_and_split.
18484         Split into atomic_<fetchop_name>_fetchsi_hard if operands[0] is unused.
18485         (define_insn "atomic_fetch_notsi_hard): Convert to insn_and_split.
18486         Split into atomic_not_fetchsi_hard if operands[0] is unused.
18487         (atomic_fetch_<fetchop_name><mode>_hard): Convert to insn_and_split.
18488         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
18489         (atomic_fetch_not<mode>_hard): Convert to insn_and_split.  Split into
18490         atomic_not<mode>_hard if operands[0] is unused.
18491         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Convert to
18492         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_gusa
18493         if operands[0] is unused.
18494         (atomic_fetch_not<mode>_soft_gusa): Convert to insn_and_split.  Split
18495         into atomic_not_fetch<mode>_soft_gusa if operands[0] is unused.
18496         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Convert to insn_and_split.
18497         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
18498         unused.
18499         (atomic_fetch_not<mode>_soft_tcb): Convert to insn_and_split.  Split
18500         into atomic_not<mode>_soft_tcb if operands[0] is unused.
18501         (atomic_fetch_<fetchop_name><mode>_soft_imask): Convert to
18502         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_imask
18503         if operands[0] is unused.
18504         (atomic_fetch_not<mode>_soft_imask): Convert to insn_and_split.  Split
18505         into atomic_not_fetch<mode>_soft_imask is operands[0] is unused.
18506         (atomic_fetch_nandsi_hard): Convert to insn_and_split.  Split into
18507         atomic_nand_fetchsi_hard if operands[0] is unused.
18508         (atomic_fetch_nand<mode>_hard): Convert to insn_and_split.  Split into
18509         atomic_nand<mode>_hard if operands[0] is unused.
18510         (atomic_fetch_nand<mode>_soft_gusa): Convert to insn_and_split.  Split
18511         into atomic_nand_fetch<mode>_soft_gusa if operands[0] is unused.
18512         (atomic_fetch_nand<mode>_soft_tcb): Convert to insn_and_split.  Split
18513         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
18514         (atomic_fetch_nand<mode>_soft_imask): Convert to insn_and_split.  Split
18515         into atomic_nand_fetch<mode>_soft_imask if operands[0] is unused.
18516         (atomic_<fetchop_name>_fetch<mode>_hard): Convert to insn_and_split.
18517         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
18518         (atomic_not_fetch<mode>_hard): Convert to insn_and_split.  Split into
18519         atomic_not<mode>_hard if operands[0] is unused.
18520         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Convert to insn_and_split.
18521         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
18522         unused.
18523         (atomic_not_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
18524         into atomic_not<mode>_soft_tcb if operands[0] is unused.
18525         (atomic_nand_fetch<mode>_hard): Convert to insn_and_split.  Split into
18526         atomic_nand<mode>_hard if operands[0] is unused.
18527         (atomic_nand_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
18528         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
18529
18530 2015-02-03  David Malcolm  <dmalcolm@redhat.com>
18531
18532         PR jit/64810
18533         * Makefile.in (GCC_OBJS): Add gcc-main.o.
18534         * gcc-main.c: New file, containing "main" taken from gcc.c.
18535         * gcc.c (do_self_spec): Free decoded_options.
18536         (class driver): Move declaration to gcc.h.
18537         (main): Move declaration and implementation to new file
18538         gcc-main.c.
18539         (driver_get_configure_time_options): New function.
18540         * gcc.h (class driver): Move this declaration here, from
18541         gcc.c.
18542         (driver_get_configure_time_options): New declaration.
18543
18544 2015-02-03  Jan Hubicka  <hubicka@ucw.cz>
18545
18546         * ipa-inline-analysis.c (simple_edge_hints): Fix check for
18547         cross-module inlining.
18548         * cgraph.h (cgraph_node): Add flag merged.
18549         * ipa-icf.c (sem_function::merge): Maintain it.
18550
18551 2015-02-03  Richard Sandiford  <richard.sandiford@arm.com>
18552
18553         * config/arm/arm.c (thumb2_reorg): Test UNARY_P and BINARY_P
18554         instead of OBJECT_P.
18555
18556 2015-02-03  Eric Botcazou  <ebotcazou@adacore.com>
18557
18558         PR target/62631
18559         * config/sparc/sparc.h (TARGET_HARD_MUL): Remove TARGET_V8PLUS.
18560         (TARGET_HARD_MUL32): Rewrite based on TARGET_HARD_MUL.
18561         * config/sparc/sparc.c (sparc_rtx_costs) <MULT>: Return costs based on
18562         int_mulX for integers in 64-bit mode if TARGET_HARD_MUL is not set.
18563
18564 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
18565
18566         PR other/63504
18567         * combine.c (reg_n_sets_max): New variable.
18568         (can_change_dest_mode, reg_nonzero_bits_for_combine,
18569         reg_num_sign_bit_copies_for_combine, get_last_value_validate,
18570         get_last_value): Use REG_N_SETS only on pseudos < reg_n_sets_max.
18571         (try_combine): Use INC_REG_N_SETS only on pseudos < reg_n_sets_max.
18572         (rest_of_handle_combine): Initialize reg_n_sets_max.
18573
18574 2015-02-02  Jan Hubicka  <hubicka@ucw.cz>
18575
18576         * ipa-inline.c (early_inliner): Skip inlining only in always_inlined;
18577         if some always_inline was inlined, apply changes before inlining
18578         heuristically.
18579
18580 2015-02-02  David Malcolm  <dmalcolm@redhat.com>
18581
18582         PR jit/64810
18583         * config/arm/arm.c (arm_option_override): Set
18584         arm_selected_arch/cpu/tune to NULL on entry.
18585
18586 2015-02-02  Tejas Belagod  <tejas.belagod@arm.com>
18587             Andrew Pinski  <pinskia@gcc.gnu.org>
18588             Jakub Jelinek  <jakub@gcc.gnu.org>
18589
18590         PR target/64231
18591         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix large
18592         integer typing for small model. Use IN_RANGE.
18593
18594 2015-02-02  Richard Biener  <rguenther@suse.de>
18595
18596         * tree-ssa-ccp.c (valueize_op_1): Always allow valueizing default-defs.
18597         * tree-vrp.c (vrp_valueize_1): Likewise.
18598
18599 2015-02-02  Alan Modra  <amodra@gmail.com>
18600
18601         * config/rs6000/rs6000.c (rs6000_call_aix): Use unspec rather
18602         than mem for toc_restore.
18603         * config/rs6000/rs6000.md (UNSPEC_TOCSLOT): Define.
18604         (call_indirect_aix, call_value_indirect_aix): Adjust to suit.
18605         (call_indirect_elfv2, call_value_indirect_elfv2): Likewise.
18606
18607 2015-02-01  David Edelsohn  <dje.gcc@gmail.com>
18608
18609         PR target/64047
18610         * config/rs6000/rs6000.c (rs6000_set_current_function): Handle
18611         explicit default options.
18612
18613 2015-02-01  Jan Hubicka  <hubicka@ucw.cz>
18614
18615         PR ipa/64872
18616         * ipa-utils.c (ipa_merge_profiles): Add release argument.
18617         * ipa-icf.c (sem_function::merge): Do not release body when merging.
18618         * ipa-utils.h (ipa_merge_profiles): Update prototype.
18619
18620 2015-02-01  Jakub Jelinek  <jakub@redhat.com>
18621
18622         PR debug/64817
18623         * cfgexpand.c (deep_ter_debug_map): New variable.
18624         (avoid_deep_ter_for_debug): New function.
18625         (expand_debug_expr): If TERed SSA_NAME is in
18626         deep_ter_debug_map, use the corresponding DEBUG_EXPR_DECL
18627         instead of trying to expand SSA_NAME's def stmt.
18628         (expand_debug_locations): When expanding debug bind
18629         of a DEBUG_EXPR_DECL to corresponding SSA_NAME,
18630         temporarily remove the DEBUG_EXPR_DECL from deep_ter_debug_map's
18631         value.
18632         (pass_expand::execute): Call avoid_deep_ter_for_debug on
18633         all debug bind stmts.  Delete deep_ter_debug_map after
18634         expand_debug_location if non-NULL and clear it.
18635
18636 2015-02-01  Oleg Endo  <olegendo@gcc.gnu.org>
18637
18638         PR target/64851
18639         * config/sh/sync.md (atomic_fetch_notsi_hard,
18640         atomic_fetch_not<mode>_hard, atomic_fetch_not<mode>_soft_gusa,
18641         atomic_fetch_not<mode>_soft_tcb, atomic_fetch_not<mode>_soft_imask,
18642         atomic_not_fetchsi_hard, atomic_not_fetch<mode>_hard,
18643         atomic_not_fetch<mode>_soft_gusa, atomic_not_fetch<mode>_soft_tcb,
18644         atomic_not_fetch<mode>_soft_imask): New insns.
18645
18646 2015-02-01  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
18647
18648         * haifa-sched.c (INSN_RFS_DEBUG_ORIG_ORDER): New access macro.
18649         (rank_for_schedule_debug): Split from ...
18650         (rank_for_schedule): ... this.
18651         (ready_sort): Sort DEBUG_INSNs separately from normal INSNs.
18652         * sched-int.h (struct _haifa_insn_data): New field rfs_debug_orig_order.
18653
18654 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
18655
18656         * doc/md.texi (Machine Constraints): Alphabetize table by target.
18657         * doc/extend.texi (x86 Variable Attributes): Move section to
18658         correct alphabetization after renaming.
18659         (x86 Type Attributes): Likewise.
18660         (Target Builtins): Re-alphabetize menu.
18661         (x86 Built-in Functions): Move section to correct alphabetization
18662         after renaming.
18663         (x86 transactional memory intrinsics): Likewise.
18664         * doc/invoke.texi (Option Summary): Re-alphabetize x86 Options
18665         and x86 Windows Options in table and menu.
18666         (x86 Options): Move section to correct alphabetization after
18667         renaming.
18668         (x86 Windows Options): Likewise.
18669
18670 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
18671
18672         * doc/extend.texi: Use "x86", "x86-32", and "x86-64" as the
18673         preferred names of the architecture and its 32- and 64-bit
18674         variants.
18675         * doc/invoke.texi: Likewise.
18676         * doc/md.texi: Likewise.
18677
18678 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
18679
18680         PR target/64882
18681         * config/i386/predicates.md (address_no_seg_operand): Reject
18682         non-CONST_INT_P operands in invalid mode.
18683
18684 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
18685
18686         * config/i386/i386.md (*prefetch_prefetchw1): Remove mode of
18687         address_operand 0.  Rename from *prefetch_prefetchwt1_<mode>.
18688         * config/i386/predicates.md (address_no_seg_operand): Call
18689         address_operand with VOIDmode.
18690         (vsib_address_operand): Ditto.
18691         (address_mpx_no_base_operand): Ditto.
18692         (address_mpx_no_index_operand): Ditto.
18693
18694 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
18695
18696         PR target/64688
18697         * lra-constraints.c (original_subreg_reg_mode): New.
18698         (simplify_operand_subreg): Try to simplify subreg of const.  Use
18699         original_subreg_reg_mode for it.
18700         (swap_operands): Update original_subreg_reg_mode.
18701         (curr_insn_transform): Set up original_subreg_reg_mode.
18702
18703 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
18704
18705         PR target/64617
18706         * lra-constraints.c (prohibited_class_reg_set_mode_p): New
18707         function.
18708         (process_alt_operands): Use it.
18709         (curr_insn_transform): Check the optional reload pseudo class is
18710         ok for the mode.
18711
18712 2015-01-30  Joseph Myers  <joseph@codesourcery.com>
18713
18714         * diagnostic.c (fatal_error (const char *, ...)): Remove function.
18715         * diagnostic-core.h (fatal_error (const char *, ...)): Remove
18716         prototype.
18717         * toplev.h (init_asm_output): Update comment on use of
18718         UNKNOWN_LOCATION with fatal_error.
18719         * cgraph.c, collect-utils.c, collect2.c, config/arc/arc.c,
18720         config/arc/arc.md, config/avr/avr.c, config/c6x/c6x.h,
18721         config/darwin.c, config/host-darwin.c, config/i386/host-cygwin.c,
18722         config/i386/intelmic-mkoffload.c, config/nios2/nios2.c,
18723         config/nvptx/mkoffload.c, config/nvptx/nvptx.h,
18724         config/rs6000/host-darwin.c, config/rs6000/rs6000.c,
18725         config/s390/s390.c, gcc.c, gcov-io.h, gcov-tool.c, ggc-common.c,
18726         ggc-page.c, graph.c, ipa-inline-analysis.c, ipa-reference.c,
18727         lto-cgraph.c, lto-section-in.c, lto-streamer-in.c, lto-streamer.c,
18728         lto-wrapper.c, objc/objc-act.c, opts.c, passes.c, plugin.c,
18729         tlink.c, toplev.c, tree-streamer-in.c, varpool.c: All callers of
18730         fatal_error changed to pass input_location as first argument.
18731
18732 2015-01-30  Martin Liska  <mliska@suse.cz>
18733
18734         * tree.h: Change GCC_VERSION >= 4004 to GCC_VERSION >= 4006
18735         in #pragma GCC diagnostic guards.
18736
18737 2015-01-30  Richard Biener  <rguenther@suse.de>
18738
18739         PR tree-optimization/64829
18740         * tree-vect-patterns.c (vect_handle_widen_op_by_const): Do
18741         not add a widening conversion pattern but hand off extra
18742         widenings to callers.
18743         (vect_recog_widen_mult_pattern): Handle extra widening produced
18744         by vect_handle_widen_op_by_const.
18745         (vect_recog_widen_shift_pattern): Likewise.
18746         (vect_pattern_recog_1): Remove excess vertical space in dumping.
18747         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
18748         (vect_init_vector_1): Likewise.
18749         (vect_get_vec_def_for_operand): Likewise.
18750         (vect_finish_stmt_generation): Likewise.
18751         (vectorizable_load): Likewise.
18752         (vect_analyze_stmt): Likewise.
18753         (vect_is_simple_use): Likewise.
18754
18755 2015-01-29  Jeff Law  <law@redhat.com>
18756
18757         * combine.c (try_combine): Fix typo in comment.
18758
18759 2015-01-29  Segher Boessenkool  <segher@kernel.crashing.org>
18760
18761         PR target/64580
18762         * config.rs6000/rs6000.c (compute_vrsave_mask): Reverse loop order.
18763         (rs6000_stack_info): Add assert.
18764         (rs6000_output_savres_externs): New function, split off from...
18765         (rs6000_output_function_prologue): ... here.  Do not call it for
18766         thunks.
18767
18768 2015-01-29  Jeff Law  <law@redhat.com>
18769
18770         PR target/15184
18771         * combine.c (try_combine): If I0 is a memory load and I3 a store
18772         to a related address, increase the "goodness" of doing a 4-insn
18773         combination with I0-I3.
18774         (make_field_assignment): Handle SUBREGs in the ior+and case.
18775
18776 2015-01-29  Yuri Rumyantsev  <ysrumyan@gmail.com>
18777
18778         PR tree-optimization/64746
18779         * tree-if-conv.c (mask_exists): New function.
18780         (predicate_mem_writes): Save created mask with given size for further
18781         use.
18782         (stmt_is_root_of_bool_pattern): Remove argument VAR and store to it.
18783         (ifcvt_repair_bool_pattern): Collect all statements that are root
18784         of bool pattern and use iterative algorithm to remove multiple uses
18785         of predicates, display number of required iterations.
18786
18787 2015-01-29  Richard Biener  <rguenther@suse.de>
18788
18789         PR tree-optimization/64853
18790         * tree-vrp.c (vrp_valueize_1): Do not return anything if the
18791         stmt will get simulated again.
18792         * tree-ssa-ccp.c (valueize_op_1): Likewise.
18793
18794 2015-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18795
18796         * config/arm/arm.c (arm_emit_multi_reg_pop): Simplify definition of
18797         return_in_pc.  Remove redundant assignments.
18798         (thumb2_emit_ldrd_pop): Simplify definition of return_in_pc.
18799         (arm_expand_epilogue): Don't compare boolean with true in if condition.
18800
18801 2015-01-29  Uros Bizjak  <ubizjak@gmail.com>
18802
18803         * config/i386/i386.c (ix86_mode_after): Make static.
18804
18805 2015-01-29  Richard Biener  <rguenther@suse.de>
18806
18807         PR tree-optimization/64844
18808         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Always
18809         dump cost model analysis.
18810         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
18811         Do not register adjusted load/store costs here.
18812
18813 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
18814             Uros Bizjak  <ubizjak@gmail.com>
18815
18816         * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): New.
18817         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Simplify by
18818         using x86_use_pseudo_pic_reg.
18819         * config/i386/i386.c (ix86_conditional_register_usage): Remove
18820         support for fixed PIC register.
18821         (ix86_use_pseudo_pic_reg): Not static any more.
18822
18823 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
18824
18825         PR middle-end/64805
18826         * ipa-inline.c (early_inliner): Rebuild IPA_REF_CHKP reference
18827         to avoid error in cgraph node verification.
18828
18829 2015-01-29  Marek Polacek  <polacek@redhat.com>
18830
18831         * doc/standards.texi: Reflect that the default for C is gnu11.
18832
18833 2015-01-29  Kaz Kojima  <kkojima@gcc.gnu.org>
18834
18835         PR target/64761
18836         * reorg.c (switch_text_sections_between_p): New function.
18837         (relax_delay_slots): Call it when testing if the jump insn
18838         is removable.  Use targetm.can_follow_jump when testing if
18839         the conditional branch can follow an unconditional jump.
18840
18841 2015-01-27  Caroline Tice  <cmtice@google.com>
18842
18843         Committing VTV Cywin/Ming patch for Patrick Wollgast
18844         * config/i386/cygwin.h (STARTFILE_SPEC): Add vtv_start.o,
18845         if -fvtable-verify=preinit/std is used.
18846         * config/i386/mingw-w64.h (STARTFILE_SPEC): Likewise.
18847         * config/i386/mingw32.h (STARTFILE_SPEC): Likewise.
18848         * config/i386/cygwin.h (ENDFILE_SPEC): Add vtv_end.o,
18849         if -fvtable-verify=preinit/std is used.
18850         * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
18851         * config/i386/cygwin.h (LIB_SPEC): Pass -lvtv and -lpsapi,
18852         if -fvtable-verify=preinit/std is used.
18853         * config/i386/mingw-w64.h (LIB_SPEC): Likewise.
18854         * config/i386/mingw32.h (LIB_SPEC): Likewise.
18855         * varasm.c (assemble_variable): Add code to properly set the comdat
18856         section and name for the .vtable_map_vars section in case the
18857         target is PE or COFF.
18858
18859 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
18860
18861         PR ipa/64801
18862         * cgraphunit.c (init_lowered_empty_function): Add CoUNT parameter;
18863         make sane BB profile.
18864         (cgraph_node::expand_thunk): Make sane BB profile.
18865         (cgraph_node::create_wrapper): Do not set call_stmt_cannot_inline_p.
18866         * cgraph.h (init_lowered_empty_function): Update prototype.
18867         * config/i386/i386.c (make_resolver_func): Update call.
18868         * predict.c (gate): Disable branch prediction pass if
18869         profile is already there.
18870
18871 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
18872
18873         * optc-save-gen.awk: flag_fp_contract_mode is no longer speical.
18874         * opth-gen.awk: Likewise.
18875         * common.opt: Mark flag_fp_contract_mode as Optimization.
18876
18877 2015-01-29  Bernd Edlinger  <bernd.edlinger@hotmail.de>
18878
18879         * config/i386/cygwin.h (LIBGCJ_SONAME): Set libgcj version to -16.
18880         * config/i386/mingw32.h (LIBGCJ_SONAME): Set libgcj version to -16.
18881
18882 2015-01-28  Oleg Endo  <olegendo@gcc.gnu.org>
18883
18884         PR target/64659
18885         * config/sh/predicates.md (atomic_arith_operand,
18886         atomic_logical_operand): Remove.
18887         * config/sh/sync.md (fetchop_predicate, fetchop_constraint): Remove.
18888         (atomic_arith_operand_0): New predicate.
18889         (atomic_compare_and_swap<mode>): Use arith_reg_dest for output values.
18890         Use atomic_arith_operand_0 for input values.
18891         (atomic_compare_and_swapsi_hard, atomic_compare_and_swap<mode>_hard,
18892         atomic_compare_and_swap<mode>_soft_gusa,
18893         atomic_compare_and_swap<mode>_soft_tcb,
18894         atomic_compare_and_swap<mode>_soft_imask): Use arith_reg_dest and
18895         arith_reg_operand instead of register_operand.
18896         (atomic_exchange<mode>): Use arith_reg_dest for output value.  Use
18897         atomic_arith_operand_0 for newval input.
18898         (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
18899         atomic_exchange<mode>_soft_gusa, atomic_exchange<mode>_soft_tcb,
18900         atomic_exchange<mode>_soft_imask): Use arith_reg_dest and
18901         arith_reg_operand instead of register_operand.
18902         (atomic_arith_operand_1, atomic_logical_operand_1): New predicates.
18903         fetchop_predicate_1, fetchop_constraint_1_llcs,
18904         fetchop_constraint_1_gusa, fetchop_constraint_1_tcb,
18905         fetchop_constraint_1_imask): New code iterator attributes.
18906         (atomic_fetch_<fetchop_name><mode>): Use arith_reg_dest instead of
18907         register_operand.  Use fetchop_predicate_1.
18908         (atomic_fetch_<fetchop_name>si_hard,
18909         atomic_fetch_<fetchop_name><mode>_hard): Use arith_reg_dest instead of
18910         register_operand.  Use fetchop_predicate_1, fetchop_constraint_1_llcs.
18911         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Use arith_reg_dest
18912         and arith_reg_operand instead of register_operand.  Use
18913         fetchop_predicate_1, fetchop_constraint_1_gusa.
18914         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Use arith_reg_dest
18915         and arith_reg_operand instead of register_operand.  Use
18916         fetchop_predicate_1, fetchop_constraint_1_tcb.  Adjust asm sequence
18917         to allow R0 usage.
18918         (atomic_fetch_<fetchop_name><mode>_soft_imask): Use arith_reg_dest
18919         and arith_reg_operand instead of register_operand.  Use
18920         fetchop_predicate_1, fetchop_constraint_1_imask.  Adjust asm sequence
18921         to allow R0 usage.
18922         (atomic_fetch_nand<mode>): Use arith_reg_dest instead of
18923         register_operand.  Use atomic_logical_operand_1.
18924         (atomic_fetch_nandsi_hard, atomic_fetch_nand<mode>_hard,
18925         atomic_fetch_nand<mode>_soft_gusa): Use arith_reg_dest and
18926         arith_reg_operand instead of register_operand.
18927         (atomic_fetch_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask):
18928         Use arith_reg_dest and arith_reg_operand instead of register_operand.
18929         Use logical_operand and rK08.  Adjust asm sequence to allow R0 usage.
18930         (atomic_<fetchop_name>_fetch<mode>): Use arith_reg_dest instead of
18931         register_operand.  Use fetchop_predicate_1.
18932         (atomic_<fetchop_name>_fetchsi_hard,
18933         atomic_<fetchop_name>_fetch<mode>_hard): Use arith_reg_dest and
18934         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
18935         fetchop_constraint_1_llcs.
18936         (atomic_<fetchop_name>_fetch<mode>_soft_gusa): Use arith_reg_dest and
18937         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
18938         fetchop_constraint_1_gusa.
18939         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Use arith_reg_dest and
18940         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
18941         fetchop_constraint_1_tcb.  Adjust asm sequence to allow R0 usage.
18942         (atomic_<fetchop_name>_fetch<mode>_soft_imask): Use arith_reg_dest and
18943         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
18944         fetchop_constraint_1_imask.  Adjust asm sequence to allow R0 usage.
18945         (atomic_nand_fetch<mode>): Use arith_reg_dest instead of
18946         register_operand.  Use atomic_logical_operand_1.
18947         (atomic_nand_fetchsi_hard, atomic_nand_fetch<mode>_hard,
18948         atomic_nand_fetch<mode>_soft_gusa): Use arith_reg_dest and
18949         arith_reg_operand instead of register_operand.
18950         (atomic_nand_fetch<mode>_soft_tcb): Use arith_reg_dest and
18951         arith_reg_operand instead of register_operand.  Use logical_operand
18952         and K08.  Adjust asm sequence to allow R0 usage.
18953         (atomic_nand_fetch<mode>_soft_imask): Use arith_reg_dest and
18954         arith_reg_operand instead of register_operand.  Use logical_operand
18955         and K08.
18956
18957 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
18958
18959         PR other/63504
18960         * dwarf2out.c (add_AT_wide, mem_loc_descriptor, loc_descriptor):
18961         Use ggc_alloc<wide_int> instead of ggc_cleared_alloc<wide_int>.
18962         (attr_checksum, attr_checksum_ordered, hash_loc_operands): Checksum
18963         only get_full_len HOST_WIDE_INTs from get_val () array rather than
18964         all bits in *val_wide.
18965
18966 2015-01-28  Jan Hubicka  <hubicka@ucw.cz>
18967
18968         * varpool.c (tls_model_names): Fix names.
18969         (varpool_node::dump): Dump tls- prefix for tls models.
18970
18971 2015-01-28  Thomas Schwinge  <thomas@codesourcery.com>
18972             Bernd Schmidt  <bernds@codesourcery.com>
18973             Nathan Sidwell  <nathan@codesourcery.com>
18974
18975         * config/nvptx/mkoffload.c: New file.
18976         * config/nvptx/t-nvptx: Add build rules for it.
18977         * config.gcc <nvptx-*> [$enable_as_accelerator = yes]
18978         (extra_programs): Add mkoffload.
18979         * config/nvptx/nvptx.c (nvptx_record_offload_symbol): New
18980         function.
18981         (TARGET_RECORD_OFFLOAD_SYMBOL): Define macro to use it.
18982
18983 2015-01-28  Yuri Rumyantsev  <ysrumyan@gmail.com>
18984
18985         PR middle-end/64809
18986         * cfgexpand.c (reorder_operands): Skip debug gimples.
18987
18988 2015-01-28  Ilya Enkovich  <ilya.enkovich@intel.com>
18989
18990         PR tree-optimization/64277
18991         * tree-ssa-loop-niter.c (record_nonwrapping_iv): Use base
18992         range info when possible to refine estimation.
18993
18994 2015-01-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
18995
18996         PR tree-optimization/64718
18997         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Make bswap_type
18998         be a 16bit unsigned integer when n->range is 16.
18999         (bswap_replace): Convert src to that type if necessary for all bswap
19000         sizes.  Fix rotation right notation in nearby comment.  Use bswap_type
19001         set in pass_optimize_bswap::execute ().
19002
19003 2015-01-28  James Greenhalgh  <james.greenhalgh@arm.com>
19004
19005         * config/aarch64/aarch64-simd.md (aarch64_abs<mode>): New.
19006         * config/aarch64/aarch64-simd-builtins.def (abs): Split by
19007         integer and floating point variants.
19008         * config/aarch64/iterators.md (unspec): Add UNSPEC_ABS.
19009
19010 2015-01-28  Robert Suchanek  <robert.suchanek@imgtec.com>
19011
19012         * config/mips/mips.c (mips_hard_regno_mode_ok_p): Prohibit accumulators
19013         for all vector modes.
19014
19015 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
19016
19017         PR bootstrap/64612
19018         * doc/sourcebuild.texi (comdat_group): Document.
19019
19020 2015-01-28  Terry Guo  <terry.guo@arm.com>
19021
19022         * config/arm/thumb1.md (*thumb1_movpc_insn): New insn pattern.
19023
19024 2015-01-27  David Malcolm  <dmalcolm@redhat.com>
19025
19026         * toplev.c (print_version): Add param "show_global_state", and
19027         only print GGC and plugin information if it is true.
19028         (init_asm_output): Pass in "true" for the new param when calling
19029         print_version.
19030         (process_options): Likewise.
19031         (toplev::main): Likewise.
19032         * toplev.h (print_version): Add new param to decl.
19033
19034 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
19035
19036         PR ipa/60871
19037         PR ipa/64139
19038         * tree.c (lookup_binfo_at_offset): New function.
19039         (get_binfo_at_offset): Use it.
19040
19041 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
19042
19043         PR ipa/64282
19044         * gimple-fold.c (gimple_get_virt_method_for_vtable): Remove assert
19045         on vtable being vtable.
19046
19047 2015-01-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
19048
19049         * doc/extend.texi: s/390: Update documentation of hotpatch attribute.
19050         * doc/invoke.texi (-mhotpatch): s/390: Update documentation of
19051         -mhotpatch= option.
19052         * config/s390/s390.opt (mhotpatch): s/390: Remove -mhotpatch and
19053         -mno-hotpatch options.  Change syntax of -mhotpatch= option.
19054         * config/s390/s390.c (s390_hotpatch_trampoline_halfwords_default):
19055         Renamed.
19056         (s390_hotpatch_trampoline_halfwords_max): Renamed.
19057         (s390_hotpatch_hw_max): New name.
19058         (s390_hotpatch_trampoline_halfwords): Renamed.
19059         (s390_hotpatch_hw_before_label): New name.
19060         (get_hotpatch_attribute): Removed.
19061         (s390_hotpatch_hw_after_label): New name.
19062         (s390_handle_hotpatch_attribute): Add second parameter to hotpatch
19063         attribute.
19064         (s390_attribute_table): Ditto.
19065         (s390_function_num_hotpatch_trampoline_halfwords): Renamed.
19066         (s390_function_num_hotpatch_hw): New name.
19067         Remove special handling of inline functions and hotpatching.
19068         Return number of nops before and after the function label.
19069         (s390_can_inline_p): Removed.
19070         (s390_asm_output_function_label): Emit a configurable number of nops
19071         after the function label.
19072         (s390_option_override): Update -mhotpatch= syntax and remove -mhotpatch.
19073         (TARGET_CAN_INLINE_P) Removed.
19074         (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): New.
19075
19076 2015-01-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19077             Jiong Wang  <jiong.wang@arm.com>
19078
19079         * config/aarch64/aarch64.md (tb<optab><mode>1): Clobber CC reg instead
19080         of scratch reg.
19081         (cb<optab><mode>1): Likewise.
19082         * config/aarch64/iterators.md (bcond): New define_code_attr.
19083
19084 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19085
19086         * config/s390/s390.c (s390_memory_move_cost): Increase costs for
19087         memory accesses.
19088
19089 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19090
19091         * config/s390/s390.c (s390_register_move_cost): Increase costs for
19092         FPR->GPR moves.
19093
19094 2015-01-27  Richard Biener  <rguenther@suse.de>
19095
19096         * tree-vrp.c (update_value_range): Intersect the range with
19097         old recorded SSA name range information.
19098
19099 2015-01-27  Nick Clifton  <nickc@redhat.com>
19100
19101         * config/rl78/rl78.c (rl78_expand_prologue): In G10 mode push the
19102         BC, DE and HL registers directly, not via AX.
19103         When decrementing the stack pointer by a large amount, transfer SP
19104         into AX and perform the subtraction there.
19105         (rl78_expand_epilogue): Perform the inverse of the above
19106         enhancements.
19107
19108 2015-01-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19109
19110         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Remove.
19111
19112 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
19113             Yury Gribov  <y.gribov@samsung.com>
19114
19115         PR ubsan/64741
19116         * ubsan.c (ubsan_source_location): Refactor code.
19117         (ubsan_type_descriptor): Update type size. Refactor code.
19118
19119 2015-01-27  Richard Biener  <rguenther@suse.de>
19120
19121         PR tree-optimization/56273
19122         PR tree-optimization/59124
19123         PR tree-optimization/64277
19124         * tree-vrp.c (vrp_finalize): Emit array-bound warnings only
19125         from the first VRP pass.
19126
19127 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
19128
19129         PR ipa/64776
19130         * cgraphunit.c (cgraph_node::expand_thunk): If not this_adjusting,
19131         handle the first argument in the same loop as all the other arguments.
19132
19133         PR rtl-optimization/61058
19134         * jump.c (cleanup_barriers): Update basic block boundaries
19135         if BLOCK_FOR_INSN is non-NULL on PREV.
19136
19137 2015-01-27  Ilya Enkovich  <ilya.enkovich@intel.com>
19138
19139         * tree-chkp.c (chkp_call_returns_bounds_p): Fix handling of
19140         bounds narrowing, already instrumented calls and calls to
19141         not instrumentable functions.
19142
19143 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
19144
19145         PR tree-optimization/64807
19146         * wide-int.cc (wi::divmod_internal): Clear
19147         b_dividend[dividend_blocks_needed].
19148
19149 2015-01-26  DJ Delorie  <dj@redhat.com>
19150
19151         * config/rl78/rl78.c (move_elim_pass): Don't optimize away
19152         volatile memory references.
19153
19154 2015-01-26  Oleg Endo  <olegendo@gcc.gnu.org>
19155
19156         PR target/49263
19157         * config/sh/sh.c (sh_split_treg_set_expr): Invoke emit_insn before
19158         remove_insn.
19159         * config/sh/sh.md (tstsi_t): Don't try to optimize constant with right
19160         shifts if it already fits into K08.
19161
19162 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
19163
19164         PR ipa/64730
19165         * ipa-inline.c (inline_small_functions): Print "unknown" even
19166         if edge->call_stmt is non-NULL, but has builtins or unknown
19167         location.
19168
19169         PR middle-end/64421
19170         * omp-low.c (simd_clone_mangle): If DECL_ASSEMBLER_NAME starts
19171         with asterisk, skip the first character.
19172
19173 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
19174
19175         PR target/64806
19176         * config/i386/i386 (feature_priority): Revert the last P_POPCNT
19177         order change.
19178
19179 2015-01-26  Uros Bizjak  <ubizjak@gmail.com>
19180
19181         PR target/64795
19182         * config/i386/i386.md (*movdi_internal): Also check operand 0
19183         to determine TYPE_LEA operand.
19184         (*movsi_internal): Ditto.
19185
19186 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
19187
19188         * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add
19189         OPTION_MASK_QUAD_MEMORY_ATOMIC.
19190
19191 2015-01-26  Renlin Li  <renlin.li@arm.com>
19192
19193         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Correct
19194         the comment.
19195         * config/aarch64/aarch64.md (tlsle_small_<mode>): Add left shift 12-bit
19196         for higher part.
19197
19198 2015-01-26  Richard Biener  <rguenther@suse.de>
19199
19200         PR middle-end/64764
19201         * tree-ssa-uninit.c (is_pred_expr_subset_of): Handle
19202         combining two BIT_AND_EXPR predicates.
19203
19204 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
19205
19206         PR bootstrap/64754
19207         * tree-ssa-structalias.c (new_var_info): Initialize ruid.
19208
19209 2015-01-26  Terry Guo  <terry.guo@arm.com>
19210
19211         * config/arm/arm.c (arm_file_start): Update the assignment of
19212         Tag_ABI_HardFP_use.
19213
19214 2015-01-25  James Greenhalgh  <james.greenhalgh@arm.com>
19215
19216         * config/arm/arm-cores.def (cortex-a57): Use the new Cortex-A57
19217         pipeline model.
19218         config/arm/arm.md: Include the new Cortex-A57 model.
19219         (generic_sched): Don't use generic_sched when tuning for
19220         Cortex-A57.
19221
19222 2015-01-25  Allan Sandfeld Jensen  <sandfeld@kde.org>
19223             Uros Bizjak  <ubizjak@gmail.com>
19224
19225         * config/i386/i386.c (get_builtin_code_for_version): Add
19226         support for BMI and BMI2 multiversion functions.
19227
19228 2015-01-25  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
19229
19230         * emit-rtl.h (store_bit_field): Move prototype to expmed.h.
19231         (extract_bit_field): Likewise.
19232         (extract_low_bits): Likewise.
19233         (expand_mult): Likewise.
19234         (expand_mult_highpart_adjust): Likewise.
19235
19236 2015-01-24  H.J. Lu  <hongjiu.lu@intel.com>
19237
19238         * config/i386/driver-i386.c (host_detect_local_cpu): Check new
19239         Silvermont, Haswell, Broadwell and Knights Landing model numbers.
19240         * config/i386/i386.c (processor_model): Add
19241         M_INTEL_COREI7_BROADWELL.
19242         (arch_names_table): Add "broadwell".
19243
19244 2015-01-24  Oleg Endo  <olegendo@gcc.gnu.org>
19245
19246         PR target/49263
19247         PR target/53987
19248         PR target/64345
19249         PR target/59533
19250         PR target/52933
19251         PR target/54236
19252         PR target/51244
19253         * config/sh/sh-protos.h
19254         (sh_extending_set_of_reg::can_use_as_unextended_reg,
19255         sh_extending_set_of_reg::use_as_unextended_reg,
19256         sh_is_nott_insn, sh_movt_set_dest, sh_movrt_set_dest, sh_is_movt_insn,
19257         sh_is_movrt_insn, sh_insn_operands_modified_between_p,
19258         sh_reg_dead_or_unused_after_insn, sh_in_recog_treg_set_expr,
19259         sh_recog_treg_set_expr, sh_split_treg_set_expr): New functions.
19260         (sh_treg_insns): New class.
19261         * config/sh/sh.c (TARGET_LEGITIMATE_COMBINED_INSN): Define target hook.
19262         (scope_counter): New class.
19263         (sh_legitimate_combined_insn, sh_is_nott_insn, sh_movt_set_dest,
19264         sh_movrt_set_dest, sh_reg_dead_or_unused_after_insn,
19265         sh_extending_set_of_reg::can_use_as_unextended_reg,
19266         sh_extending_set_of_reg::use_as_unextended_reg, sh_recog_treg_set_expr,
19267         sh_in_recog_treg_set_expr, sh_try_split_insn_simple,
19268         sh_split_treg_set_expr): New functions.
19269         (addsubcosts): Handle treg_set_expr.
19270         (sh_rtx_costs): Handle IF_THEN_ELSE and ZERO_EXTRACT.
19271         (sh_rtx_costs): Use arith_reg_operand in SIGN_EXTEND and ZERO_EXTEND.
19272         (sh_rtx_costs): Handle additional bit test patterns in EQ and AND cases.
19273         (sh_insn_operands_modified_between_p): Make non-static.
19274         * config/sh/predicates.md (zero_extend_movu_operand): Allow
19275         simple_mem_operand in addition to displacement_mem_operand.
19276         (zero_extend_operand): Don't allow zero_extend_movu_operand.
19277         (treg_set_expr, treg_set_expr_not_const01,
19278         arith_reg_or_treg_set_expr): New predicates.
19279         * config/sh/sh.md (tstsi_t): Use arith_reg_operand and
19280         arith_or_int_operand instead of logical_operand.  Convert to
19281         insn_and_split.  Try to optimize constant operand in splitter.
19282         (tsthi_t, tstqi_t): Fold into *tst<mode>_t.  Convert to insn_and_split.
19283         (*tstqi_t_zero): Delete.
19284         (*tst<mode>_t_subregs): Add !sh_in_recog_treg_set_expr split condition.
19285         (tstsi_t_and_not): Delete.
19286         (tst<mode>_t_zero_extract_eq): Rename to *tst<mode>_t_zero_extract.
19287         Convert to insn_and_split.
19288         (unnamed split, tstsi_t_zero_extract_xor,
19289         tstsi_t_zero_extract_subreg_xor_little,
19290         tstsi_t_zero_extract_subreg_xor_big): Delete.
19291         (*tstsi_t_shift_mask): New insn_and_split.
19292         (cmpeqsi_t, cmpgesi_t): Add new split for const_int 0 operands and try
19293         to recombine with surrounding insns when splitting.
19294         (*negtstsi): Add !sh_in_recog_treg_set_expr condition.
19295         (cmp_div0s_0, cmp_div0s_1, *cmp_div0s_0, *cmp_div0s_1): Rewrite as ...
19296         (cmp_div0s, *cmp_div0s_1, *cmp_div0s_2, *cmp_div0s_3, *cmp_div0s_4,
19297         *cmp_div0s_5, *cmp_div0s_6): ... these new insn_and_split patterns.
19298         (*cbranch_div0s: Delete.
19299         (*addc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
19300         Try to recombine with surrounding insns when splitting.  Add operand
19301         order variants.
19302         (*addc_t_r, *addc_r_t): Use treg_set_expr_not_const01.
19303         (*addc_r_r_1, *addc_r_lsb, *addc_r_r_lsb, *addc_r_lsb_r, *addc_r_msb,
19304         *addc_r_r_msb, *addc_2r_msb): Delete.
19305         (*addc_2r_lsb): Rename to *addc_2r_t.  Use treg_set_expr.  Add operand
19306         order variant.
19307         (*addc_negreg_t): New insn_and_split.
19308         (*subc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
19309         Try to recombine with surrounding insns when splitting.
19310         Add operand order variants.
19311         (*subc_negt_reg, *subc_negreg_t, *reg_lsb_t, *reg_msb_t): New
19312         insn_and_split patterns.
19313         (*rotcr): Use arith_reg_or_treg_set_expr.  Try to recombine with
19314         surrounding insns when splitting.
19315         (unnamed rotcr split): Use arith_reg_or_treg_set_expr.
19316         (*rotcl): Likewise.  Add zero_extract variant.
19317         (*ashrsi2_31): New insn_and_split.
19318         (*negc): Convert to insn_and_split.  Use treg_set_expr.
19319         (*zero_extend<mode>si2_disp_mem): Update comment.
19320         (movrt_negc, *movrt_negc, nott): Add !sh_in_recog_treg_set_expr split
19321         condition.
19322         (*mov_t_msb_neg, mov_neg_si_t): Use treg_set_expr.  Try to recombine
19323         with surrounding insns when splitting.
19324         (any_treg_expr_to_reg): New insn_and_split.
19325         (*neg_zero_extract_0, *neg_zero_extract_1, *neg_zero_extract_2,
19326         *neg_zero_extract_3, *neg_zero_extract_4, *neg_zero_extract_5,
19327         *neg_zero_extract_6, *zero_extract_0, *zero_extract_1,
19328         *zero_extract_2): New single bit zero extract patterns.
19329         (bld_reg, *bld_regqi): Fold into bld<mode>_reg.
19330         (*get_thread_pointersi, store_gbr, *mov<mode>_gbr_load,
19331         *mov<mode>_gbr_load, *mov<mode>_gbr_load, *mov<mode>_gbr_load,
19332         *movdi_gbr_load): Use arith_reg_dest instead of register_operand for
19333         set destination.
19334         (set_thread_pointersi, load_gbr): Use arith_reg_operand instead of
19335         register_operand for set source.
19336
19337 2015-01-23  Jan Hubicka  <hubicka@ucw.cz>
19338
19339         * i386.opt (prefetch_sse): New targetsave.
19340         * i386.c (ix86_function_specific_save): Save prefetch_sse.
19341         (ix86_function_specific_restore): Restore prefetch_sse and initialize
19342         ix86_cost/ix86_tune_cost.
19343
19344 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
19345
19346         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
19347         Support the JIT by using 0 as the language type.
19348
19349 2015-01-23  Vladimir Makarov  <vmakarov@redhat.com>
19350
19351         PR target/64317
19352         * lra-lives.c (make_hard_regno_born): Add parameter.  Don't make
19353         REAL_PIC_OFFSET_TABLE_REGNUM conflicting with pic offset pseudo.
19354         (mark_regno_live, process_bb_lives): Pass new parameter value to
19355         make_hard_regno_born.
19356
19357 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
19358
19359         PR rtl-optimization/63637
19360         PR rtl-optimization/60663
19361         * cse.c (merge_equiv_classes): Set new_elt->cost to MAX_COST
19362         if elt->cost is MAX_COST for ASM_OPERANDS.
19363         (find_sets_in_insn): Fix up comment typo.
19364         (cse_insn): Don't set src_volatile for all non-volatile
19365         ASM_OPERANDS in PARALLELs, but just those with multiple outputs
19366         or with "memory" clobber.  Set elt->cost to MAX_COST
19367         for ASM_OPERANDS in PARALLEL.  Set src_elt->cost to MAX_COST
19368         if new_src is ASM_OPERANDS and elt->cost is MAX_COST.
19369
19370 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
19371
19372         * config/i386/sse.md (sse2_loadld): Set attribute isa to sse2 for
19373         alternative 1.
19374
19375 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
19376
19377         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Move definition to
19378         libgcc/config/i386/elf-lib.h.
19379
19380 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
19381
19382         PR driver/64737
19383         * gcc.c (print_configuration): Don't print a blank line at the end
19384         here...
19385         (run_attempt): ... but here unstead.
19386
19387         PR middle-end/64734
19388         * omp-low.c (scan_sharing_clauses): Don't ignore
19389         OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION GOMP_MAP_POINTER clauses
19390         on target data/update constructs.
19391
19392 2015-01-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
19393
19394         PR target/50928
19395         * config/m32c/m32c.c (encode_pattern_1): Removed gcc_unreachable here.
19396         (DEBUG_RELOAD): Removed define.
19397         (m32c_limit_reload_class): Enable traces with if DEBUG0.
19398         (m32c_function_arg): Added a type cast.
19399         (m32c_legitimize_reload_address): Push A_REGS reload with PSImode.
19400         * config/m32c/addsub.md (addsi3_1): Specify the mode of all arguments.
19401         * config/m32c/bitops.md (andqi3_16): Likewise.
19402         * config/m32c/mov.md (m32c_immd_dbl_mov): Likewise.
19403         (push_a01_l): Likewise.
19404
19405 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
19406
19407         PR jit/64721
19408         * main.c (main): Construct toplev instances with init_signals=true.
19409         * toplev.c (general_init): Add param "init_signals", and use it to
19410         conditionalize the calls to signal and host_hooks.extra_signals.
19411         (toplev::toplev): Add param "init_signals".
19412         (toplev::main): When invoking general_init, pass m_init_signals
19413         to control whether signal-handlers are installed.
19414         * toplev.h (toplev::toplev): Add param "init_signals".
19415         (toplev::m_init_signals): New field.
19416
19417 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
19418
19419         PR jit/64722
19420         * emit-rtl.c (init_emit_regs): Set pic_offset_table_rtx to
19421         NULL_RTX before testing PIC_OFFSET_TABLE_REGNUM, since the
19422         latter may be affected by the former (e.g. on i686).
19423
19424 2015-01-23  Martin Liska  <mliska@suse.cz>
19425
19426         * tree.h (tree_vec_elt_check): Workaround -Wstrict-overflow
19427         false positive during profiledbootstrap.
19428
19429 2015-01-23  Tom de Vries  <tom@codesourcery.com>
19430
19431         PR libgomp/64672
19432         * lto-opts.c (lto_write_options): Output non-explicit conservative
19433         -fno-openacc.
19434         * lto-wrapper.c (merge_and_complain): Handle merging -fopenacc.
19435         (append_compiler_options): Pass -fopenacc through.
19436
19437 2015-01-23  Tom de Vries  <tom@codesourcery.com>
19438
19439         PR libgomp/64707
19440         * lto-opts.c (lto_write_options): Output non-explicit conservative
19441         -fno-openmp.
19442         * lto-wrapper.c (merge_and_complain): Handle merging -fopenmp.
19443         (append_compiler_options): Pass -fopenmp through.
19444
19445 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
19446
19447         PR debug/64511
19448         * dwarf2out.c (struct dw_loc_descr_node): Add chain_next
19449         GTY markup.
19450
19451         * diagnostic-core.h (internal_error_no_backtrace): New prototype.
19452         * diagnostic.def (DK_ICE_NOBT): New kind.
19453         * diagnostic.c (diagnostic_action_after_output): Handle DK_ICE_NOBT
19454         like DK_ICE, but never print backtrace.
19455         (diagnostic_report_diagnostic): Handle DK_ICE_NOBT like DK_ICE.
19456         (internal_error_no_backtrace): New function.
19457         * gcc.c (execute): Use internal_error_no_backtrace instead of
19458         internal_error.
19459
19460 2015-01-22  Jeff Law  <law@redhat.com>
19461
19462         PR target/52076
19463         * config/m68k/m68k.md (xorsi3_internal): Twiddle constraints to
19464         improve code density for small immediate to memory case.
19465         (insv): Better handle bitfield assignments when the field is
19466         being set to all ones.
19467         * config/m68k/predicates.md (reg_or_pow2_m1_operand): New
19468         operand predicate.
19469
19470 2015-01-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19471             Jakub Jelinek  <jakub@redhat.com>
19472
19473         PR middle-end/64729
19474         * gcc.c (LINK_SSP_SPEC): Handle -fstack-protector-explicit
19475         for !TARGET_LIBC_PROVIDES_SSP version and
19476         -fstack-protector-{all,strong,explicit} otherwise.
19477         * config/freebsd.h (LINK_SSP_SPEC): Handle
19478         -fstack-protector-{strong,explicit}.
19479
19480 2015-01-22  Jan Hubicka  <hubicka@ucw.cz>
19481             H.J. Lu  <hongjiu.lu@intel.com>
19482
19483         PR ipa/64694
19484         * ipa-inline.c (inline_small_functions): Fix thinko in maintenance of
19485         heap.
19486
19487 2015-01-22  Wei Mi  <wmi@google.com>
19488
19489         PR rtl-optimization/64557
19490         * dse.c (record_store): Call get_addr for mem_addr.
19491         (check_mem_read_rtx): Likewise.
19492
19493 2015-01-22  Eric Botcazou  <ebotcazou@adacore.com>
19494
19495         * fold-const.c (const_binop): Add early return for non-tcc_binary.
19496
19497 2015-01-22  Chen Gang  <gang.chen.5i5j@gmail.com>
19498
19499         * toplev.c (init_local_tick): Process the failure when read
19500         fails for random_seed.
19501
19502         * ubsan.c (ubsan_type_descriptor): Use 'pretty_print' for
19503         'pretty_name' to avoid memory overflow.
19504
19505 2015-01-22  Richard Biener  <rguenther@suse.de>
19506
19507         PR middle-end/64728
19508         * tree-ssa-coalesce.c (coalesce_partitions): Do not perform
19509         abnormal coalescing on undefined SSA names.
19510
19511 2015-22-01  Uros Bizjak  <ubizjak@gmail.com>
19512
19513         PR target/64688
19514         PR target/64477
19515         * config/i386/sse.md (vec_set<mode>_0): Use (Yi/r/C) constraints
19516         for alternative 3.
19517         (*vec_dup<mode>): Use (Yi/$r) constraints for alternative 1.
19518
19519 2015-01-22  Trevor Saunders  <tsaunders@mozilla.com>
19520
19521         PR middle-end/63325
19522         * fold-const.c (fold_checksum_tree): Don't include value of
19523         expr->decl_with_vis.symtab_node in the checksum.
19524
19525 2015-01-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19526
19527         * config/s390/s390.md (atomic code attribute): Fix typo "ior" -> "or".
19528
19529 2015-01-22  Max Ostapenko  <m.ostapenko@partner.samsung.com>
19530
19531         PR driver/64690
19532         * gcc.c (insert_comments): New function.
19533         (try_generate_repro): Call it.
19534         (append_text): Removed.
19535
19536 2015-01-22  Richard Biener  <rguenther@suse.de>
19537
19538         * ipa-inline.c (can_inline_edge_p): Disable inlining of edges
19539         with IL incompatible options.  Properly honor user optimize
19540         attributes.
19541
19542 2015-01-21  Segher Boessenkool  <segher@kernel.crashing.org>
19543
19544         PR rtl-optimization/64682
19545         * combine.c (distribute_notes): When moving a death note for
19546         a register that is set in the new I2, make sure to put it
19547         before that new I2.
19548
19549 2015-01-21  David Edelsohn  <dje.gcc@gmail.com>
19550
19551         * config/rs6000/rs6000.c (rs6000_file_start): Use rs6000_isa_flags
19552         not TARGET_DEFAULT.
19553
19554 2015-01-21  Jakub Jelinek  <jakub@redhat.com>
19555
19556         PR debug/64511
19557         * simplify-rtx.c (simplify_relational_operation_1): Don't try to
19558         optimize (eq/ne (and (side_effects) (const_int 0)) (const_int 0))
19559         into (eq/ne (and (not (side_effects)) (const_int 0)) (const_int 0)).
19560
19561         PR sanitizer/64706
19562         * doc/invoke.texi (-fsanitize=vptr): Document.
19563
19564         PR rtl-optimization/62078
19565         * dse.c: Include cfgcleanup.h.
19566         (rest_of_handle_dse): For -fnon-call-exceptions, if DSE removed
19567         anything call purge_all_dead_edges and cleanup_cfg at the end
19568         of the pass.
19569
19570 2015-01-21  Jan Hubicka  <hubicka@ucw.cz>
19571
19572         * ipa-utils.c (ipa_merge_profiles): Avoid ICE on mismatch in indirect
19573         edges.
19574
19575 2015-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
19576
19577         * gimplify.c (gimplify_function_tree): Check the no_sanitize_thread
19578         decl attribute.
19579
19580 2015-01-21  David Sherwood  <david.sherwood@arm.com>
19581             Tejas Belagod <Tejas.Belagod@arm.com>
19582
19583         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Removed.
19584         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class): Removed.
19585         * config/aarch64/aarch64-protos.h (aarch64_cannot_change_mode_class):
19586         Removed.
19587
19588 2015-01-21  David Sherwood  <david.sherwood@arm.com>
19589             Tejas Belagod <Tejas.Belagod@arm.com>
19590
19591         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist)
19592         (aarch64_reverse_mask): New decls.
19593         * config/aarch64/iterators.md (UNSPEC_REV_REGLIST): New enum.
19594         (insn_count): New mode_attr.
19595         * config/aarch64/aarch64-simd.md (vec_store_lanesoi, vec_store_lanesci)
19596         (vec_store_lanesxi, vec_load_lanesoi, vec_load_lanesci)
19597         (vec_load_lanesxi): Made ABI compliant for Big Endian targets.
19598         (aarch64_rev_reglist, aarch64_simd_ld2, aarch64_simd_ld3)
19599         (aarch64_simd_ld4, aarch64_simd_st2, aarch64_simd_st3)
19600         (aarch64_simd_st4): New patterns.
19601         * config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist)
19602         (aarch64_reverse_mask): New functions.
19603
19604 2015-01-21  Richard Sandiford  <richard.sandiford@arm.com>
19605
19606         * config/aarch64/aarch64-protos.h (aarch64_simd_disambiguate_copy):
19607         Declare.
19608         * config/aarch64/aarch64.c (aarch64_classify_address): Allow extra
19609         addressing modes for BE.
19610         (aarch64_print_operand): Add 'R' specifier.
19611         (aarch64_simd_disambiguate_copy): Delete.
19612         (aarch64_simd_emit_reg_reg_move): New function.
19613         * config/aarch64/aarch64-simd.md: Use aarch64_simd_emit_reg_reg_move
19614         in define_splits for structural moves.
19615         (mov<mode>): Use less restrictive predicates.
19616         (*aarch64_mov<mode>): Simplify and only allow for LE.
19617         (*aarch64_be_movoi, *aarch64_be_movci, *aarch64_be_movxi): New.
19618
19619 2015-01-21  Alan Hayward  <alan.hayward@arm.com>
19620
19621         * rtlanal.c (subreg_get_info): Exit early for simple and common cases.
19622
19623 2015-01-21  Richard Henderson  <rth@redhat.com>
19624
19625         PR target/64669
19626         * ccmp.c (used_in_cond_stmt_p): Remove.
19627         (expand_ccmp_expr): Don't use it.
19628
19629 2015-01-21  Nick Clifton  <nickc@redhat.com>
19630
19631         * config/rl78/rl78.c (rl78_calculate_death_notes): Look inside
19632         PARALLELs.
19633
19634 2015-01-21  Richard Biener  <rguenther@suse.de>
19635
19636         PR middle-end/64313
19637         * tree-core.h (builtin_info, builtin_info_type): Turn from
19638         an object with two arrays into an array of an object with
19639         decl and two flags, implicit_p and declared_p.
19640         * tree.h (builtin_decl_explicit, builtin_decl_implicit,
19641         set_builtin_decl, set_builtin_decl_implicit_p,
19642         builtin_decl_explicit_p, builtin_decl_implicit_p): Adjust.
19643         (set_builtin_decl_declared_p, builtin_decl_declared_p): New functions.
19644         * builtins.c (builtin_info): Adjust.
19645         * gimplify.c (gimplify_addr_expr): References to builtins
19646         that have been declared by the user makes them eligible for
19647         use by the compiler.  Call set_builtin_decl_implicit_p on them.
19648
19649 2015-01-20  Jeff Law  <law@redhat.com>
19650
19651         PR target/59946
19652         * config/m68k/m68k.md (Comparison expanders and patterns): Do not
19653         allow pc-relative addresses in operand predicates or constraints.
19654
19655 2015-01-21  Bin Cheng  <bin.cheng@arm.com>
19656
19657         * config/arm/arm.c (arm_cortex_a53_tune, arm_cortex_a57_tune): Prefer
19658         neon on aarch32 processors for stringops.
19659
19660 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
19661
19662         PR ipa/63576
19663         * ipa-utils.c (ipa_merge_profiles): Merge speculative edges.
19664
19665 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
19666
19667         PR lto/45375
19668         * ipa-inline.c: Include lto-streamer.h
19669         (report_inline_failed_reason): Output source file differences and
19670         flags on optimization/target node mismatch.
19671         (can_inline_edge_p): Consider caller to be the outer inline function;
19672         be less restrictive about matching opimize and optimize_size attributes.
19673         (inline_account_function_p): Break out from ...
19674         (inline_small_functions): ... here.
19675         * ipa-inline-transform.c (clone_inlined_nodes): Use
19676         inline_account_function_p.
19677         (inline_call): Use optimize attribution; use inline_account_function_p.
19678         (inline_transform): Use opt_for_fn.
19679         * ipa-inline.h (inline_account_function_p): Declare.
19680
19681 2015-01-20  Jakub Jelinek  <jakub@redhat.com>
19682
19683         PR debug/64663
19684         * dwarf2out.c (decl_piece_node): Don't put bitsize into
19685         mode if bitsize <= 0.
19686         (decl_piece_bitsize, adjust_piece_list, add_var_loc_to_decl,
19687         dw_sra_loc_expr): Use HOST_WIDE_INT instead of int for bit
19688         sizes and positions.
19689
19690 2015-01-20  Chung-Lin Tang  <cltang@codesourcery.com>
19691
19692         * config/nios2/nios2.c (nios2_asm_file_end): Implement
19693         TARGET_ASM_FILE_END hook for adding .note.GNU-stack section when
19694         needed.
19695         (TARGET_ASM_FILE_END): Define.
19696
19697 2015-01-20  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
19698
19699         * config/arm/arm-protos.h (enum arm_sched_autopref): New constants.
19700         (struct tune_params): Use the enum.
19701         * arm.c (arm_*_tune): Update.
19702         (arm_option_override): Update.
19703
19704 2015-01-20  Richard Biener  <rguenther@suse.de>
19705
19706         PR ipa/64684
19707         * ipa-reference.c (add_static_var): Inline ...
19708         (analyze_function): ... here after splitting out from ...
19709         (is_proper_for_analysis): ... this.
19710
19711 2015-01-20  Matthew Wahab  <matthew.wahab@arm.com>
19712
19713         PR target/64149
19714         * config/arm/arm.opt: Remove lra option and arm_lra_flag variablesle.
19715         * config/arm/arm.h (MODE_BASE_REG_CLASS): Remove use of arm_lra_flagag,
19716         replace the conditional with it's true branch.
19717         * config/arm/arm.config (TARGET_LRA_P): Set to hook_bool_void_true.
19718         (arm_lra_p): Remove.
19719
19720 2015-01-20  Eric Botcazou  <ebotcazou@adacore.com>
19721
19722         * config/visium/visium.h (LIB_SPEC): Adjust in default case.
19723
19724 2015-01-20  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
19725
19726         * config/tilegx/mul-tables.c: Move symtab.h include after
19727         coretypes.h include.
19728         * config/tilepro/mul-tables.c: Add includes hashtab.h, hash-set.h,
19729         vec.h, machmode.h, tm.h, hard-reg-set.h, input.h, function.h, rtl.h,
19730         flags.h, statistics.h, double-int.h, real.h, fixed-value.h, alias.h,
19731         wide-int.h, inchash.h, tree.h, insn-config.h, expmed.h, dojump.h,
19732         explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
19733
19734 2015-01-20  Igor Zamyatin  <igor.zamyatin@intel.com>
19735
19736         PR bootstrap/64676
19737         Revert:
19738         2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
19739
19740         PR rtl-optimization/64081
19741         * loop-iv.c (def_pred_latch_p): New function.
19742         (latch_dominating_def): Allow specific cases with non-single
19743         definitions.
19744         (iv_get_reaching_def): Likewise.
19745         (check_complex_exit_p): New function.
19746         (check_simple_exit): Use check_complex_exit_p to allow certain cases
19747         with exits not executing on any iteration.
19748
19749 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
19750
19751         PR lto/45375
19752         * i386.c (ix86_option_override_internal): Use ix86_tune_cost
19753         to set branch cost.
19754
19755 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
19756
19757         PR lto/45375
19758         * i386.c (gate): Check flag_expensive_optimizations and
19759         optimize_size.
19760         (ix86_option_override_internal): Drop optimize_size condition
19761         on MASK_ACCUMULATE_OUTGOING_ARGS, MASK_VZEROUPPER,
19762         MASK_AVX256_SPLIT_UNALIGNED_LOAD, MASK_AVX256_SPLIT_UNALIGNED_STORE,
19763         MASK_PREFER_AVX128.
19764         (ix86_avx256_split_vector_move_misalign,
19765         ix86_avx256_split_vector_move_misalign): Check optimize_insn_for_speed.
19766         * sse.md (all uses of TARGET_PREFER_AVX128): Add
19767         optimize_insn_for_speed_p check.
19768
19769 2015-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
19770
19771         * config/mips/mips.h (FP_ASM_SPEC): New define.
19772         (ASM_SPEC): Remove floating-point options and use FP_ASM_SPEC
19773         instead.
19774
19775 2015-01-19  Oleg Endo  <olegendo@gcc.gnu.org>
19776
19777         PR target/53988
19778         * config/sh/sh-protos.h (sh_find_set_of_reg): Make sure not to return
19779         nullptr for insn when reaching the first insn.
19780         * config/sh/sh.c (sh_unspec_insn_p): Rewrite using subrtx_iterator.
19781         (sh_insn_operands_modified_between_p): Add nullptr check.
19782         (sh_find_extending_set_of_reg): Fix log message.  Don't accept
19783         sign extending mem load if the insn contains any UNSPEC or
19784         UNSPEC_VOLATILE.
19785
19786 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
19787
19788         * params.def (inline-unit-growth): Drop to 15%.
19789         * invoke.texi (inline-unit-growth): Document change.
19790
19791 2015-01-19  Martin Liska  <mliska@suse.cz>
19792
19793         PR ipa/64668
19794         * ipa-icf-gimple.c (func_checker::compare_operand): Call proper
19795         function for second argument of OBJ_TYPE_REF.
19796
19797 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
19798
19799         PR ipa/64218
19800         * ipa-inline.c (want_inline_function_to_all_callers_p): Fix check
19801         whether function is an alias.
19802
19803 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
19804
19805         * ipa-devirt.c (ipa_devirt): Drop polymorphic call info in hopeless
19806         cases.
19807
19808 2015-01-19  Vladimir Makarov  <vmakarov@redhat.com>
19809
19810         PR rtl-optimization/64671
19811         * lra-remat.c (operand_to_remat): Don't consider jump and call
19812         insns.
19813
19814 2015-01-19  David Edelsohn  <dje.gcc@gmail.com>
19815
19816         PR target/59828
19817         * config/rs6000/default64.h: Include rs6000-cpus.def.
19818         (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use ISA 2.7 (POWER8).
19819         (TARGET_DEFAULT) [BIG_ENDIAN]: Use POWER4.
19820         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add POWER7
19821         and POWER8.
19822         * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Always default to
19823         POWER8.
19824         * config/rs6000/rs6000.c (rs6000_file_start): Emit .machine
19825         pseudo-op to specify assembler dialect.
19826
19827 2015-01-19  Martin Liska  <mliska@suse.cz>
19828
19829         PR ipa/64664
19830         * ipa-icf.c (sem_item_optimizer::filter_removed_items):
19831         Handle safe potentially removed nodes during filtering.
19832
19833 2015-01-19  Martin Liska  <mliska@suse.cz>
19834
19835         * doc/extend.texi (no_icf): Add new attribute description.
19836         * ipa-icf.c (sem_item_optimizer::merge_classes): Handle cases
19837         where the pass attempts to merge a function with no_icf attribute.
19838
19839 2015-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19840
19841         PR target/64532
19842         * doc/md.texi (ARM Options): Document register constraints.
19843
19844 2015-01-19  Jiong Wang  <jiong.wang@arm.com>
19845             Andrew Pinski  <apinski@cavium.com>
19846
19847         PR target/64304
19848         * config/aarch64/aarch64.md (define_insn "*ashl<mode>3_insn"): Deleted.
19849         (ashl<mode>3): Don't expand if operands[2] is not constant.
19850
19851 2015-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19852
19853         PR target/64448
19854         * config/aarch64/aarch64-simd.md (aarch64_simd_bsl<mode>_internal):
19855         Match xor-and-xor RTL pattern.
19856
19857 2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
19858
19859         PR rtl-optimization/64081
19860         * loop-iv.c (def_pred_latch_p): New function.
19861         (latch_dominating_def): Allow specific cases with non-single
19862         definitions.
19863         (iv_get_reaching_def): Likewise.
19864         (check_complex_exit_p): New function.
19865         (check_simple_exit): Use check_complex_exit_p to allow certain cases
19866         with exits not executing on any iteration.
19867
19868 2015-01-19  Jakub Jelinek  <jakub@redhat.com>
19869
19870         * common.opt (fgraphite): Fix a typo.
19871
19872 2015-01-19  Felix Yang  <felix.yang@huawei.com>
19873
19874         * config/aarch64/aarch64-simd.md (aarch64_<maxmin_uns>p<mode>): New
19875         pattern.
19876         * config/aarch64/aarch64-simd-builtins.def (smaxp, sminp, umaxp,
19877         uminp, smax_nanp, smin_nanp): New builtins.
19878         * config/aarch64/arm_neon.h (vpmax_s8, vpmax_s16, vpmax_s32,
19879         vpmax_u8, vpmax_u16, vpmax_u32, vpmaxq_s8, vpmaxq_s16, vpmaxq_s32,
19880         vpmaxq_u8, vpmaxq_u16, vpmaxq_u32, vpmax_f32, vpmaxq_f32, vpmaxq_f64,
19881         vpmaxqd_f64, vpmaxs_f32, vpmaxnm_f32, vpmaxnmq_f32, vpmaxnmq_f64,
19882         vpmaxnmqd_f64, vpmaxnms_f32, vpmin_s8, vpmin_s16, vpmin_s32, vpmin_u8,
19883         vpmin_u16, vpmin_u32, vpminq_s8, vpminq_s16, vpminq_s32, vpminq_u8,
19884         vpminq_u16, vpminq_u32, vpmin_f32, vpminq_f32, vpminq_f64, vpminqd_f64,
19885         vpmins_f32, vpminnm_f32, vpminnmq_f32, vpminnmq_f64, vpminnmqd_f64,
19886         vpminnms_f32): Rewrite using builtin functions.
19887
19888 2015-01-19  Thomas Schwinge  <thomas@codesourcery.com>
19889
19890         PR libgomp/64625
19891         * omp-low.c (offload_symbol_decl): Remove variable.
19892         (get_offload_symbol_decl): Remove function.
19893         (expand_omp_target): For BUILT_IN_GOMP_TARGET,
19894         BUILT_IN_GOMP_TARGET_DATA, BUILT_IN_GOMP_TARGET_UPDATE pass NULL
19895         instead of &__OFFLOAD_TABLE__, for BUILT_IN_GOACC_DATA_START,
19896         BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL,
19897         BUILT_IN_GOACC_UPDATE don't pass it at all.
19898
19899 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
19900
19901         * tree-sra.c (some_callers_have_mismatched_arguments_p): Allow thunk
19902         callers.
19903
19904 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
19905
19906         * ipa-chkp.c (chkp_produce_thunks): Add early param
19907         to split thunks production into two passes.  Keep
19908         'always_inline' function bodies after the first pass.
19909         (pass_data_ipa_chkp_early_produce_thunks): New.
19910         (pass_ipa_chkp_early_produce_thunks): New.
19911         (pass_ipa_chkp_produce_thunks::execute): Adjust to new
19912         chkp_produce_thunks signature.
19913         (make_pass_ipa_chkp_early_produce_thunks): New.
19914         * passes.def (pass_ipa_chkp_early_produce_thunks): New.
19915         (pass_ipa_chkp_produce_thunks): Move after local optimizations.
19916         * tree-pass.h (make_pass_ipa_chkp_early_produce_thunks): New.
19917
19918 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
19919
19920         * cgraph.c (cgraph_node::dump): Dump profile flags.
19921
19922 2015-01-18  Oleg Endo  <olegendo@gcc.gnu.org>
19923
19924         PR target/64652
19925         * config/sh/sh.md (udivsi3_i4, divsi3_i4): Make use of sfunc address
19926         reg appear first in the parallel.
19927
19928 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
19929
19930         * ipa-reference.c (set_reference_optimization_summary,
19931         ipa_reference_get_not_written_global): Do nothing if ipa-reference is
19932         disabled.
19933         (ignore_module_statics): New static var.
19934         (propagate_bits): If ipa-reference is disabled, do not look into local
19935         properties.
19936         (analyze_function): Disable analysis when ipa_reference is disabled.
19937         (generate_summary): Do not dump when reference is disabled;
19938         collect vars accessed from functions with ipa-reference disabled.
19939         (get_read_write_all_from_node): When ipa-reference is disabled, use the
19940         node flags.
19941         (gate): Enable for LTO.
19942         (ignore_edge_p): New function.
19943         (propagate): Skip functions w/o ipa-reference analysis.
19944         * optc-save-gen.awk: Handle optimize_debug correctly.
19945         * opth-gen.awk: Likewise.
19946         * common.opt (fauto-inc-dec, fdelete-dead-exceptions, ffunction-cse,
19947         fgraphite, fstrict-volatile-bitfields, fira-algorithm, fira-region,
19948         fira-share-save-slots, fira-share-spill-slots,
19949         fmodulo-sched-allow-regmoves, fpartial-inlining,
19950         sched-stalled-insns, fsched-stalled-insns-dep, fstrict-overflow,
19951         ftracer, ftree-parallelize-loops, fassociative-math,
19952         freciprocal-math, fvect-cost-model, fsimd-cost-model): Mark as
19953         Optimization
19954         (fauto-profile, fcommon, fdata-sections, fipa-icf-variables,
19955         ftoplevel-reorder, funit-at-a-time, fwhole-program): Do not mark as
19956         Optimization.
19957         * ipa-icf.c (gate, sem_item_optimizer::filter_removed_items):
19958         Fix for IPA.
19959
19960 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
19961
19962         PR ipa/64378
19963         * ipa-prop.c (try_make_edge_direct_virtual_call): Clear speculative
19964         flag correctly.
19965         * ipa-cp.c (ipa_get_indirect_edge_target_1): Handle speculation.
19966
19967 2015-01-18  Sandra Loosemore  <sandra@codesourcery.com>
19968
19969         * doc/invoke.texi ([-funroll-loops], [-funroll-all-loops]):
19970         Remove duplicate option listings.
19971
19972 2015-01-18  Felix Yang  <felix.yang@huawei.com>
19973
19974         * auto-profile.c (afdo_find_equiv_class): Remove unnecessary test.
19975         (autofdo_source_profile::get_callsite_total_count,
19976         function_instance::get_function_instance_by_decl,
19977         string_table::get_index, string_table::get_index_by_decl,
19978         afdo_vpt_for_early_inline, afdo_callsite_hot_enough_for_early_inline):
19979         Fix comment typos. Reformatting and minor code rearrangement.
19980
19981 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
19982
19983         * config/rs6000/rs6000.md (probe_stack): Delete.
19984         (probe_stack_address): New.
19985
19986 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
19987
19988         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use TARGET_32BIT
19989         to test for 32-bit ABIs, not !TARGET_POWERPC64.
19990
19991 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
19992
19993         * config/rs6000/rs6000.c (rs6000_parallel_return): New function.
19994         (rs6000_function_value): Use it.  Handle SCmode and TCmode as well,
19995         for TARGET_32BIT && TARGET_POWERPC64.  Fix another BITS_PER_WORD
19996         snafu.
19997         (rs6000_libcall_value): Use the new function.
19998
19999 2015-01-17  Sandra Loosemore  <sandra@codesourcery.com>
20000
20001         * doc/invoke.texi ([-ftracer]): Remove duplicate option listing.
20002
20003 2015-01-17  Eric Botcazou  <ebotcazou@adacore.com>
20004
20005         * reorg.c (fill_simple_delay_slots): If TARGET_FLAGS_REGNUM is valid,
20006         implement a more precise life analysis for it during backward scan.
20007
20008 2015-01-17  Jan Kratochvil  <jan.kratochvil@redhat.com>
20009
20010         * dwarf2out.c (gen_producer_string): Ignore also OPT_fpreprocessed.
20011
20012 2015-01-17  Bernd Schmidt  <bernds@codesourcery.com>
20013
20014         PR rtl-optimization/52773
20015         * calls.c (emit_library_call_value): When pushing arguments use
20016         stack_pointer_rtx rather than virtual_outgoing_args_rtx in
20017         CALL_INSN_FUNCTION_USAGE.  Only emit one of use of the magic
20018         stack pointer reference into CALL_INSN_FUNCTION_USAGE.
20019
20020 2015-01-17  Jeff Law  <law@redhat.com>
20021
20022         PR rtl-optimization/32790
20023         * reginfo.c (reg_scan_mark_refs): Look for ZERO_EXTRACT,
20024         not ZERO_EXTEND in SET_DESTs.
20025
20026 2015-01-17  Alan Modra  <amodra@gmail.com>
20027
20028         * cprop.c (do_local_cprop): Revert last change.
20029
20030 2015-01-16  DJ Delorie  <dj@redhat.com>
20031             Nick Clifton  <nickc@redhat.com>
20032
20033         * config/rl78/rl78-real.md (addqi3_real): Allow volatiles.
20034         (addhi3_real): Likewise.  Fix [HL+0] syntax.
20035         (subqi3_real): Likewise.
20036         (subhi3_real): Likewise.
20037         (cbranchqi4_real): Likewise.  Allow saddr,#imm.
20038         (cbranchhi4_real): Likewise.
20039         (cbranchhi4_real_inverted): Likewise.
20040         (cbranchsi4_real_lt): Likewise.
20041         (cbranchsi4_real_ge): Likewise.
20042         (cbranchsi4_real_ge): Likewise.
20043         * config/rl78/rl78-virt.md (add<mode>3_virt): Likewise.
20044         (sub<mode>3_virt): Likewise.
20045         (cbranchqi4_virt): Likewise.
20046         (cbranchhi4_virt): Likewise.
20047         * config/rl78/rl78.c (rl78_print_operand_1): 'p' modifier means
20048         always use '[reg+imm]' even when imm is zero.
20049         * config/rl78/predicates.md (rl78_volatile_memory_operand): New.
20050         (rl78_general_operand): New.
20051         (rl78_nonimmediate_operand): New.
20052         (rl78_nonfar_operand): Use them.
20053         (rl78_nonfar_nonimm_operand): Likewise.
20054         (rl78_stack_based_mem): Fix.
20055         * config/rl78/constraints.md (Ibqi): New.
20056         (IBqi): New.
20057         (Wsa): New.
20058         (Wsf): New.
20059         (Cs1): Fix.
20060         * config/rl78/rl78-expand.md (andqi3): Accept volatiles.
20061         (iorqi3): Likewise.
20062         (xorqi3): Likewise.
20063         * config/rl78/rl78-protos.h (rl78_sfr_p): New.
20064
20065         * config/rl78/constrains (Qs8): New constraint.
20066         * config/rl78/rl78.c (rl78_flags_already_set): New function.
20067         * config/rl78/rl78-protos.h (rl78_flags_already_set): New prototype.
20068         * config/rl78/rl78-real.md (update_Z): New attribute.
20069         Update patterns to set it.
20070         (cbranchqi4_real): Call rl78_flags_already_set() to determine if a
20071         shorter compare and branch sequence can be used.
20072         (cbranchhi4_real): Likewise.
20073         (cbranchhi4_real_inverted): Likewise.
20074
20075         * config/rl78/predicates.md (uword_operand): Allow symbol_refs.
20076         * config/rl78/rl78-c.c (rl78_register_pragmas): Register __near
20077         address space.
20078         * config/rl78/rl78.c (rl78_get_name_encoding): New.
20079         (rl78_option_override): Allow -mes0 only if C.
20080         (characterize_address): Support subregs of symbol_refs.
20081         (rl78_addr_space_address_mode): Move.  Add __near.
20082         (rl78_far_p): Likewise.
20083         (rl78_addr_space_pointer_mode): Likewise.
20084         (rl78_as_legitimate_address): Likewise.
20085         (rl78_addr_space_subset_p): Likewise.
20086         (rl78_addr_space_convert): Likewise.
20087         (rl78_print_operand_1): Support 16-bit addressing of 32-bit
20088         symbols with -mes0.
20089         (transcode_memory_rtx): Don't copy ES if -mes0.  Allow symbol[BC]
20090         addressing.
20091         (rl78_alloc_physical_registers_op1): Change logic to prefer
20092         symbol[BC] addressing.
20093         (frodata_section): New.
20094         (rl78_asm_init_sections): Initialize it.
20095         (rl78_select_section): Put __far readonly symbols in .frodata.
20096         (rl78_make_type_far): New.
20097         (rl78_insert_attributes): Force all readonly symbols to be
20098         __far when -mes0.
20099         (rl78_asm_out_integer): New.
20100         * config/rl78/rl78.h (ADDR_SPACE_NEAR): New.
20101         * config/rl78/rl78.opt (-mes0): New.
20102
20103         * config/rl78/rl78.h (ASM_OUTPUT_LABELREF): New.
20104         (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
20105         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
20106         * config/rl78/rl78-protos.h (rl78_output_labelref): New.
20107         (rl78_saddr_p): New.
20108         (rl78_output_aligned_common): New.
20109         * config/rl78/rl78.c (rl78_output_symbol_ref): Strip encodings.
20110         (rl78_handle_saddr_attribute): New.
20111         (rl78_handle_naked_attribute): New.
20112         (rl78_attribute_table): Add saddr.
20113         (rl78_print_operand_1): Don't print '!' on saddr operands.
20114         (rl78_print_operand_1): Strip encodings.
20115         (rl78_sfr_p): New.
20116         (rl78_strip_name_encoding): New.
20117         (rl78_attrlist_to_encoding): New.
20118         (rl78_encode_section_info): New.
20119         (rl78_asm_init_sections): New.
20120         (rl78_select_section): New.
20121         (rl78_output_labelref): New.
20122         (rl78_output_aligned_common): New.
20123         (rl78_asm_out_integer): New.
20124         (rl78_asm_ctor_dtor): New.
20125         (rl78_asm_constructor): New.
20126         (rl78_asm_destructor): New.
20127
20128         * config/rl78/rl78-real.md (movqi_es): Rename to movqi_to_es.
20129         * config/rl78/rl78.c (rl78_expand_epilogue): Update.
20130         (transcode_memory_rtx): Update.
20131         (rl78_expand_epilogue): Use A_REG instead of 0.
20132
20133 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
20134
20135         * config/arm/arm-protos.h (struct tune_params): New field
20136         sched_autopref_queue_depth.
20137         * config/arm/arm.c (sched-int.h): Include header.
20138         (arm_first_cycle_multipass_dfa_lookahead_guard,)
20139         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define hook.
20140         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,)
20141         (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,)
20142         (arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,)
20143         (arm_cortex_a53_tune, arm_cortex_a57_tune, arm_xgene1_tune,)
20144         (arm_cortex_a5_tune, arm_cortex_a9_tune, arm_cortex_a12_tune,)
20145         (arm_v7m_tune, arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune):
20146         Specify sched_autopref_queue_depth value.  Enabled for A15 and A57.
20147         * config/arm/t-arm (arm.o): Update.
20148         * haifa-sched.c (update_insn_after_change): Update.
20149         (rank_for_schedule): Use auto-prefetcher model, if requested.
20150         (autopref_multipass_init): New static function.
20151         (autopref_rank_for_schedule): New rank_for_schedule heuristic.
20152         (autopref_multipass_dfa_lookahead_guard_started_dump_p): New static
20153         variable for debug dumps.
20154         (autopref_multipass_dfa_lookahead_guard_1): New static helper function.
20155         (autopref_multipass_dfa_lookahead_guard): New global function that
20156         implements TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD hook.
20157         (init_h_i_d): Update.
20158         * params.def (PARAM_SCHED_AUTOPREF_QUEUE_DEPTH): New tuning knob.
20159         * sched-int.h (enum autopref_multipass_data_status): New const enum.
20160         (autopref_multipass_data_): Structure for auto-prefetcher data.
20161         (autopref_multipass_data_def, autopref_multipass_data_t): New typedefs.
20162         (struct _haifa_insn_data:autopref_multipass_data): New field.
20163         (INSN_AUTOPREF_MULTIPASS_DATA): New access macro.
20164         (autopref_multipass_dfa_lookahead_guard): Declare.
20165
20166 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
20167
20168         * rtlanal.c (get_base_term): Handle SCRATCH.
20169
20170 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
20171
20172         * config/aarch64/aarch64.c
20173         (aarch64_sched_first_cycle_multipass_dfa_lookahead): Implement hook.
20174         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
20175         * config/arm/arm.c
20176         (arm_first_cycle_multipass_dfa_lookahead): Implement hook.
20177         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
20178
20179 2015-01-17  Alan Modra  <amodra@gmail.com>
20180
20181         * cprop.c (do_local_cprop): Disallow replacement of fixed
20182         hard registers.
20183
20184 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20185
20186         PR target/62066
20187         * config/arm/arm-builtins.c (arm_expand_neon_args): Call va_end before
20188         early return 0.
20189
20190 2015-01-16  Bernd Edlinger  <bernd.edlinger@hotmail.de>
20191
20192         * sanitizer.def (BUILT_IN_TSAN_VPTR_UPDATE): Fixed parameters.
20193         * tsan.c (instrument_expr): Fixed parameters of __tsan_vptr_update.
20194
20195 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20196
20197         * config/arm/arm.md: Move comment about splitting Thumb1 patterns to...
20198         * config/arm/thumb1.md: ... Here.
20199
20200 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
20201
20202         * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Disallow
20203         TImode for TARGET_32BIT.
20204
20205 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
20206
20207         * config/rs6000/rs6000.c (TARGET_LIBGCC_CMP_RETURN_MODE,
20208         TARGET_LIBGCC_SHIFT_COUNT_MODE, TARGET_UNWIND_WORD_MODE): Implement
20209         as ...
20210         (rs6000_abi_word_mode): New function.
20211
20212 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
20213
20214         * config/rs6000/rs6000.c (rs6000_va_start): Use MIN_UNITS_PER_WORD
20215         instead of UNITS_PER_WORD to describe the size of stack slots.
20216
20217 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
20218
20219         * config/rs6000/rs6000.c (TARGET_PROMOTE_FUNCTION_MODE): Implement
20220         as rs6000_promote_function_mode.  Move comment to there.
20221         (rs6000_promote_function_mode): New function.
20222
20223 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
20224
20225         * config/rs6000/rs6000.h (PROMOTE_MODE): Correct test for when -m32
20226         -mpowerpc64 is active.
20227
20228 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
20229
20230         PR middle-end/64353
20231         * tree-cfg.c (pass_data_fixup_cfg): Update SSA for
20232         virtuals on start.
20233
20234 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
20235
20236         * config/arm/cortex-a57.md: Remove duplicate of file accidentally
20237         introduced in revision 219724.
20238
20239 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20240             Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
20241
20242         PR target/64263
20243         * config/aarch64/aarch64.md (*movsi_aarch64): Don't split if the
20244         destination is not a GP reg.
20245         (*movdi_aarch64): Likewise.
20246
20247 2015-01-16  David Edelsohn  <dje.gcc@gmail.com>
20248
20249         PR target/64623
20250         * config/rs6000/default64.h: Revert ISA change.
20251
20252 2015-01-16  Richard Biener  <rguenther@suse.de>
20253
20254         PR middle-end/64614
20255         * tree-ssa-uninit.c: Include tree-cfg.h.
20256         (MAX_SWITCH_CASES): New define.
20257         (convert_control_dep_chain_into_preds): Handle switch statements.
20258         (is_pred_expr_subset_of): Handle x == CST vs. (x & CST) != 0.
20259         (normalize_one_pred_1): Do not split bit-manipulations.
20260         Record (x & CST).
20261
20262 2015-01-16  Richard Biener  <rguenther@suse.de>
20263
20264         PR tree-optimization/64568
20265         * tree-ssa-forwprop.c (pass_forwprop::execute): Guard
20266         complex load rewriting for TARGET_MEM_REFs.
20267
20268 2015-01-16  Uros Bizjak  <ubizjak@gmail.com>
20269
20270         * builtins.c (expand_builtin_acc_on_device): Check target for NULL.
20271
20272 2015-01-16  Matthew Wahab  <matthew.wahab@arm.com>
20273
20274         PR target/64149
20275         * config/aarch64/aarch64.opt: Remove lra option and aarch64_lra_flag
20276         variable.
20277         * config/aarch64/aarch64.c (TARGET_LRA_P): Set to hook_bool_void_true.
20278         (aarch64_lra_p): Remove.
20279
20280 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
20281
20282         PR target/64363
20283         * ipa-chkp.h (chkp_instrumentable_p): New.
20284         * ipa-chkp.c: Include tree-inline.h.
20285         (chkp_instrumentable_p): New.
20286         (chkp_maybe_create_clone): Use chkp_instrumentable_p.
20287         Fix processing of not instrumentable functions.
20288         (chkp_versioning): Use chkp_instrumentable_p. Warn about
20289         not instrumentable functions.
20290         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Use
20291         chkp_instrumentable_p.
20292         * tree-inline.h (copy_forbidden): New.
20293         * tree-inline.c (copy_forbidden): Not static anymore.
20294
20295 2015-01-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20296
20297         * optc-save-gen.awk (cl_target_option_print_diff): Mark indent,
20298         ptr1, ptr2 unused.
20299
20300 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
20301
20302         * lra-constraints.c (curr_insn_transform): Change a reload pseudo of
20303         type OP_OUT to OP_INOUT.
20304
20305 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
20306
20307         * simplify-rtx.c (simplify_replace_fn_rtx): Simplify (lo_sum
20308         (high x) y) to y if x and y have the same base.
20309
20310 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
20311
20312         * config/arm/cortex-a57.md: New.
20313         * config/aarch64/aarch64.md: Include it.
20314         * config/aarch64/aarch64-cores.def (cortex-a57): Tune for it.
20315         * config/aarch64/aarch64-tune.md: Regenerate.
20316
20317 2015-01-16  Zhenqiang Chen  <zhenqiang.chen@arm.com>
20318
20319         PR target/64015
20320         * ccmp.c (expand_ccmp_next): New function.
20321         (expand_ccmp_expr_1, expand_ccmp_expr): Handle operand insn sequence
20322         and compare insn sequence.
20323         * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
20324         aarch64_gen_ccmp_first, aarch64_gen_ccmp_next): New functions.
20325         (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New MICRO.
20326         * config/aarch64/aarch64.md (*ccmp_and): Changed to ccmp_and<mode>.
20327         (*ccmp_ior): Changed to ccmp_ior<mode>.
20328         (cmp<mode>): New pattern.
20329         * doc/tm.texi (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Update
20330         parameters.
20331         * target.def (gen_ccmp_first, gen_ccmp_next): Update parameters.
20332
20333 2015-01-16  Ilya Tocar  <ilya.tocar@intel.com>
20334
20335         * config/i386/avx2intrin.h (_mm256_bslli_epi128,
20336         _mm256_bsrli_epi128): New.
20337         * config/i386/emmintrin.h (_mm_bsrli_si128, _mm_bslli_si128): Ditto.
20338
20339 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
20340
20341         * expmed.c (store_bit_field_using_insv): Improve warning message.
20342         Use %wu instead of HOST_WIDE_INT_PRINT_UNSIGNED.
20343
20344 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
20345
20346         PR rtl-optimization/64011
20347         * expmed.c (store_bit_field_using_insv): Warn and truncate bitsize when
20348         there is partial overflow.
20349
20350 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
20351
20352         * config/nds32/nds32-protos.h (nds32_expand_epilogue): Change
20353         prototype.
20354         (nds32_expand_epilogue_v3pop): Likewise.
20355         * config/nds32/nds32.md (sibcall): Define this for sibling call
20356         optimization.
20357         (sibcall_register): Likewise.
20358         (sibcall_immediate): Likewise.
20359         (sibcall_value): Likewise.
20360         (sibcall_value_register): Likewise.
20361         (sibcall_value_immediate): Likewise.
20362         (sibcall_epilogue): Likewise.
20363         (epilogue): Pass false to indicate this is not a sibcall epilogue.
20364         * config/nds32/nds32.c (nds32_expand_epilogue): Consider sibcall case.
20365         (nds32_expand_epilogue_v3pop): Likewise.
20366
20367 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
20368
20369         * config/nds32/nds32-protos.h (nds32_can_use_return_insn): New.
20370         * config/nds32/nds32.md (unspec_volatile_func_return): Remove.
20371         (return_internal): New.
20372         (return): Define this named pattern.
20373         (simple_return): Define this named pattern.
20374         * config/nds32/nds32.c (nds32_expand_epilogue): Emit return_internal
20375         pattern instead of unspec_volatile_func_return.
20376         (nds32_expand_epilogue_v3pop): Likewise.
20377         (nds32_can_use_return_insn): New function.
20378
20379 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
20380
20381         * config/nds32/constants.md (UNSPEC_VOLATILE_POP25_RETURN): New.
20382         * config/nds32/nds32.md (pop25return): New.
20383         * config/nds32/nds32.c (nds32_expand_epilogue_v3pop): Emit
20384         pop25return pattern.
20385
20386 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
20387
20388         * doc/invoke.texi (NDS32 Options): Remove -mforce-fp-as-gp,
20389         -mforbid-fp-as-gp, and -mex9 options.
20390
20391 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
20392
20393         * doc/invoke.texi (NDS32 Options): Add -mcmodel= option and
20394         remove -mgp-direct option.
20395
20396 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
20397
20398         * doc/invoke.texi (--param early-inlining-insns): Update default value.
20399         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 14.
20400
20401 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
20402
20403         * ipa-inline.c (inline_small_functions): Work around hints
20404         cache issue.
20405
20406 2015-01-15  Sandra Loosemore  <sandra@codesourcery.com>
20407
20408         PR target/59710
20409         * doc/invoke.texi (Option Summary): Document new Nios II
20410         -mgpopt= syntax.
20411         (Nios II Options): Likewise.
20412         * config/nios2/nios2.opt: Add -mgpopt= option support.
20413         Modify existing -mgpopt and -mno-gpopt options to be aliases.
20414         * config/nios2/nios2-opts.h (enum nios2_gpopt_type): New.
20415         * config/nios2/nios2.c (nios2_option_override): Adjust
20416         -mgpopt defaulting.
20417         (nios2_in_small_data_p): Return true for explicit small data
20418         sections even with -G0.
20419         (nios2_symbol_ref_in_small_data_p): Adjust to handle new -mgpopt=
20420         option choices.
20421
20422 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
20423
20424         PR ipa/64612
20425         * ipa-inline-transform.c (can_remove_node_now_p): Fix handling
20426         of comdat locals.
20427         (inline_call): Fix removal of aliases.
20428
20429 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
20430
20431         * flag-types.h (enum sanitize_code): Add SANITIZE_VPTR,
20432         include SANITIZE_VPTR in SANITIZE_UNDEFINED.
20433         * opts.c (common_handle_option): Add -fsanitize=vptr.
20434         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS,
20435         BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS_ABORT): New.
20436         * ubsan.h (enum ubsan_null_ckind): Add UBSAN_DOWNCAST_POINTER,
20437         UBSAN_DOWNCAST_REFERENCE, UBSAN_UPCAST and UBSAN_CAST_TO_VBASE.
20438         (ubsan_expand_vptr_ifn): New prototype.
20439         * internal-fn.c (expand_ANNOTATE, expand_GOMP_SIMD_LANE,
20440         expand_GOMP_SIMD_VF, expand_GOMP_SIMD_LAST_LANE, expand_UBSAN_NULL,
20441         expand_UBSAN_BOUNDS, expand_UBSAN_OBJECT_SIZE, expand_ASAN_CHECK,
20442         expand_LOOP_VECTORIZED): Make argument nameless, remove
20443         ATTRIBUTE_UNUSED.
20444         (expand_UBSAN_VPTR): New function.
20445         * internal-fn.def (UBSAN_NULL, ASAN_CHECK): Use R instead of W
20446         in fn spec.
20447         (UBSAN_VPTR): New internal function.
20448         * sanopt.c (tree_map_traits): Renamed to ...
20449         (sanopt_tree_map_traits): ... this.
20450         (sanopt_tree_triplet, sanopt_tree_triplet_map_traits): New classes.
20451         (sanopt_ctx): Adjust asan_check_map type for tree_map_traits
20452         to sanopt_tree_map_traits renaming.  Add vptr_check_map field.
20453         (maybe_optimize_ubsan_vptr_ifn): New function.
20454         (sanopt_optimize_walker): Handle IFN_UBSAN_VPTR.
20455         (pass_sanopt::execute): Likewise.  Call sanopt_optimize even for
20456         -fsanitize=vptr.
20457         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Handle certain
20458         internal calls like pure functions for aliasing, even when they
20459         have other side-effects that prevent making them ECF_PURE.
20460         * ubsan.c (ubsan_vptr_type_cache_decl): New variable.
20461         (ubsan_expand_vptr_ifn): New function.
20462
20463 2015-01-15  Vladimir Makarov  <vmakarov@redhat.com>
20464
20465         PR rtl-optimization/64110
20466         * stmt.c (parse_output_constraint): Process '^' and '$'.
20467         (parse_input_constraint): Ditto.
20468         * lra-constraints.c (process_alt_operands): Process the new
20469         constraints.
20470         * ira-costs.c (record_reg_classes): Process the new constraint
20471         '^'.
20472         * genoutput.c (indep_constraints): Add '^' and '$'.
20473         * config/i386/sse.md (*vec_dup<mode>): Use '$' instead of '!'.
20474         * doc/md.texi: Add description of the new constraints.
20475
20476 2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
20477             Bernd Schmidt  <bernds@codesourcery.com>
20478             Cesar Philippidis  <cesar@codesourcery.com>
20479             James Norris  <jnorris@codesourcery.com>
20480             Tom de Vries  <tom@codesourcery.com>
20481             Ilmir Usmanov  <i.usmanov@samsung.com>
20482             Dmitry Bocharnikov  <dmitry.b@samsung.com>
20483             Evgeny Gavrin  <e.gavrin@samsung.com>
20484             Jakub Jelinek  <jakub@redhat.com>
20485
20486         * builtin-types.def (BT_FN_VOID_INT_INT_VAR)
20487         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
20488         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
20489         New function types.
20490         * builtins.c: Include "gomp-constants.h".
20491         (expand_builtin_acc_on_device): New function.
20492         (expand_builtin, is_inexpensive_builtin): Handle
20493         BUILT_IN_ACC_ON_DEVICE.
20494         * builtins.def (DEF_GOACC_BUILTIN, DEF_GOACC_BUILTIN_COMPILER):
20495         New macros.
20496         * cgraph.c (cgraph_node::create): Consider flag_openacc next to
20497         flag_openmp.
20498         * config.gcc <nvptx-*> (tm_file): Add nvptx/offload.h.
20499         <*-intelmic-* | *-intelmicemul-*> (tm_file): Add
20500         i386/intelmic-offload.h.
20501         * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): For -fopenacc, link
20502         to libgomp and its dependencies.
20503         * config/arc/arc.h (LINK_COMMAND_SPEC): Likewise.
20504         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
20505         * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
20506         * config/ia64/hpux.h (LIB_SPEC): Likewise.
20507         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
20508         * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
20509         * doc/generic.texi: Update for OpenACC changes.
20510         * doc/gimple.texi: Likewise.
20511         * doc/invoke.texi: Likewise.
20512         * doc/sourcebuild.texi: Likewise.
20513         * gimple-pretty-print.c (dump_gimple_omp_for): Handle
20514         GF_OMP_FOR_KIND_OACC_LOOP.
20515         (dump_gimple_omp_target): Handle GF_OMP_TARGET_KIND_OACC_KERNELS,
20516         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_DATA,
20517         GF_OMP_TARGET_KIND_OACC_UPDATE,
20518         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
20519         Dump more data.
20520         * gimple.c: Update comments for OpenACC changes.
20521         * gimple.def: Likewise.
20522         * gimple.h: Likewise.
20523         (enum gf_mask): Add GF_OMP_FOR_KIND_OACC_LOOP,
20524         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
20525         GF_OMP_TARGET_KIND_OACC_DATA, GF_OMP_TARGET_KIND_OACC_UPDATE,
20526         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
20527         (gimple_omp_for_cond, gimple_omp_for_set_cond): Sort in the
20528         appropriate place.
20529         (is_gimple_omp_oacc, is_gimple_omp_offloaded): New functions.
20530         * gimplify.c: Include "gomp-constants.h".
20531         Update comments for OpenACC changes.
20532         (is_gimple_stmt): Handle OACC_PARALLEL, OACC_KERNELS, OACC_DATA,
20533         OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE, OACC_ENTER_DATA,
20534         OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
20535         (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
20536         OMP_CLAUSE__CACHE_, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
20537         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
20538         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER,
20539         OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
20540         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
20541         OMP_CLAUSE_SEQ.
20542         (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Use
20543         GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
20544         OMP_CLAUSE_SET_MAP_KIND.
20545         (gimplify_oacc_cache): New function.
20546         (gimplify_omp_for): Handle OACC_LOOP.
20547         (gimplify_omp_workshare): Handle OACC_KERNELS, OACC_PARALLEL,
20548         OACC_DATA.
20549         (gimplify_omp_target_update): Handle OACC_ENTER_DATA,
20550         OACC_EXIT_DATA, OACC_UPDATE.
20551         (gimplify_expr): Handle OACC_LOOP, OACC_CACHE, OACC_HOST_DATA,
20552         OACC_DECLARE, OACC_KERNELS, OACC_PARALLEL, OACC_DATA,
20553         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE.
20554         (gimplify_body): Consider flag_openacc next to flag_openmp.
20555         * lto-streamer-out.c: Include "gomp-constants.h".
20556         * omp-builtins.def (BUILT_IN_ACC_GET_DEVICE_TYPE)
20557         (BUILT_IN_GOACC_DATA_START, BUILT_IN_GOACC_DATA_END)
20558         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL)
20559         (BUILT_IN_GOACC_UPDATE, BUILT_IN_GOACC_WAIT)
20560         (BUILT_IN_GOACC_GET_THREAD_NUM, BUILT_IN_GOACC_GET_NUM_THREADS)
20561         (BUILT_IN_ACC_ON_DEVICE): New builtins.
20562         * omp-low.c: Include "gomp-constants.h".
20563         Update comments for OpenACC changes.
20564         (struct omp_context): Add reduction_map, gwv_below, gwv_this
20565         members.
20566         (extract_omp_for_data, use_pointer_for_field, install_var_field)
20567         (new_omp_context, delete_omp_context, scan_sharing_clauses)
20568         (create_omp_child_function, scan_omp_for, scan_omp_target)
20569         (check_omp_nesting_restrictions, lower_reduction_clauses)
20570         (build_omp_regions_1, diagnose_sb_0, make_gimple_omp_edges):
20571         Update for OpenACC changes.
20572         (scan_sharing_clauses): Handle OMP_CLAUSE_NUM_GANGS:
20573         OMP_CLAUSE_NUM_WORKERS: OMP_CLAUSE_VECTOR_LENGTH,
20574         OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT, OMP_CLAUSE_GANG,
20575         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
20576         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_INDEPENDENT,
20577         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ.  Use GOMP_MAP_* instead of
20578         OMP_CLAUSE_MAP_*.
20579         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
20580         Handle GF_OMP_FOR_KIND_OACC_LOOP.
20581         (expand_omp_target, lower_omp_target): Handle
20582         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
20583         GF_OMP_TARGET_KIND_OACC_UPDATE,
20584         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA,
20585         GF_OMP_TARGET_KIND_OACC_DATA.
20586         (pass_expand_omp::execute, execute_lower_omp)
20587         (pass_diagnose_omp_blocks::gate): Consider flag_openacc next to
20588         flag_openmp.
20589         (offload_symbol_decl): New variable.
20590         (oacc_get_reduction_array_id, oacc_max_threads)
20591         (get_offload_symbol_decl, get_base_type, lookup_oacc_reduction)
20592         (maybe_lookup_oacc_reduction, enclosing_target_ctx)
20593         (oacc_loop_or_target_p, oacc_lower_reduction_var_helper)
20594         (oacc_gimple_assign, oacc_initialize_reduction_data)
20595         (oacc_finalize_reduction_data, oacc_process_reduction_data): New
20596         functions.
20597         (is_targetreg_ctx): Remove function.
20598         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CACHE_,
20599         OMP_CLAUSE_DEVICE_RESIDENT, OMP_CLAUSE_USE_DEVICE,
20600         OMP_CLAUSE_GANG, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
20601         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT,
20602         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_NUM_GANGS,
20603         OMP_CLAUSE_NUM_WORKERS, OMP_CLAUSE_VECTOR_LENGTH.
20604         * tree.c (omp_clause_code_name, walk_tree_1): Update accordingly.
20605         * tree.h (OMP_CLAUSE_GANG_EXPR, OMP_CLAUSE_GANG_STATIC_EXPR)
20606         (OMP_CLAUSE_ASYNC_EXPR, OMP_CLAUSE_WAIT_EXPR)
20607         (OMP_CLAUSE_VECTOR_EXPR, OMP_CLAUSE_WORKER_EXPR)
20608         (OMP_CLAUSE_NUM_GANGS_EXPR, OMP_CLAUSE_NUM_WORKERS_EXPR)
20609         (OMP_CLAUSE_VECTOR_LENGTH_EXPR): New macros.
20610         * tree-core.h: Update comments for OpenACC changes.
20611         (enum omp_clause_map_kind): Remove.
20612         (struct tree_omp_clause): Change type of map_kind member from enum
20613         omp_clause_map_kind to unsigned char.
20614         * tree-inline.c: Update comments for OpenACC changes.
20615         * tree-nested.c: Likewise.  Include "gomp-constants.h".
20616         (convert_nonlocal_reference_stmt, convert_local_reference_stmt)
20617         (convert_tramp_reference_stmt, convert_gimple_call): Update for
20618         OpenACC changes.  Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
20619         OMP_CLAUSE_SET_MAP_KIND.
20620         * tree-pretty-print.c: Include "gomp-constants.h".
20621         (dump_omp_clause): Handle OMP_CLAUSE_DEVICE_RESIDENT,
20622         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_GANG,
20623         OMP_CLAUSE_ASYNC, OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ,
20624         OMP_CLAUSE_WAIT, OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR,
20625         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
20626         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_INDEPENDENT.  Use GOMP_MAP_*
20627         instead of OMP_CLAUSE_MAP_*.
20628         (dump_generic_node): Handle OACC_PARALLEL, OACC_KERNELS,
20629         OACC_DATA, OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE,
20630         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
20631         * tree-streamer-in.c: Include "gomp-constants.h".
20632         (unpack_ts_omp_clause_value_fields) Use GOMP_MAP_* instead of
20633         OMP_CLAUSE_MAP_*.  Use OMP_CLAUSE_SET_MAP_KIND.
20634         * tree-streamer-out.c: Include "gomp-constants.h".
20635         (pack_ts_omp_clause_value_fields): Use GOMP_MAP_* instead of
20636         OMP_CLAUSE_MAP_*.
20637         * tree.def (OACC_PARALLEL, OACC_KERNELS, OACC_DATA)
20638         (OACC_HOST_DATA, OACC_LOOP, OACC_CACHE, OACC_DECLARE)
20639         (OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE): New tree codes.
20640         * tree.c (omp_clause_num_ops): Update accordingly.
20641         * tree.h (OMP_BODY, OMP_CLAUSES, OMP_LOOP_CHECK, OMP_CLAUSE_SIZE):
20642         Likewise.
20643         (OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES, OACC_KERNELS_BODY)
20644         (OACC_KERNELS_CLAUSES, OACC_DATA_BODY, OACC_DATA_CLAUSES)
20645         (OACC_HOST_DATA_BODY, OACC_HOST_DATA_CLAUSES, OACC_CACHE_CLAUSES)
20646         (OACC_DECLARE_CLAUSES, OACC_ENTER_DATA_CLAUSES)
20647         (OACC_EXIT_DATA_CLAUSES, OACC_UPDATE_CLAUSES)
20648         (OACC_KERNELS_COMBINED, OACC_PARALLEL_COMBINED): New macros.
20649         * tree.h (OMP_CLAUSE_MAP_KIND): Cast it to enum gomp_map_kind.
20650         (OMP_CLAUSE_SET_MAP_KIND): New macro.
20651         * varpool.c (varpool_node::get_create): Consider flag_openacc next
20652         to flag_openmp.
20653         * config/i386/intelmic-offload.h: New file.
20654         * config/nvptx/offload.h: Likewise.
20655
20656 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
20657
20658         * explow.h: Remove duplicate contents.
20659         * dojump.h: Likewise.
20660
20661 2015-01-15  Richard Earnshaw  <rearnsha@arm.com>
20662
20663         * arm.c (arm_xgene_tune): Add default initializer for instruction
20664         fusion.
20665
20666 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
20667
20668         PR ipa/64068
20669         PR ipa/64559
20670         * ipa.c (symbol_table::remove_unreachable_nodes):
20671         Do not put abstract origins into boundary.
20672
20673 2015-01-15  Evgeny Stupachenko  <evstupac@gmail.com>
20674
20675         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Remove EBX register usage.
20676         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Ditto.
20677
20678 2015-01-15  Steve Ellcey  <sellcey@mips.com>
20679
20680         * Makefile.in (PLUGIN_HEADERS): Add dominance.h, cfg.h, cfgrtl.h,
20681         cfganal.h, cfgbuild.h, cfgcleanup.h, lcm.h, cfgloopmanip.h,
20682         builtins.def, and chkp-builtins.def.
20683
20684 2015-01-15  David Edelsohn  <dje.gcc@gmail.com>
20685
20686         * config/rs6000/default64.h (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use
20687         ISA 2.7 (POWER8).
20688
20689 2015-01-15  Richard Biener  <rguenther@suse.de>
20690
20691         PR tree-optimization/61743
20692         * tree-ssa-pre.c (insert_into_preds_of_block): Preserve range
20693         information on PHIs for some simple cases.
20694
20695 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
20696
20697         * config/arm/arm.md (generic_sched): Specify xgene1 in 'no' list.
20698         Include xgene1.md.
20699         * config/arm/arm.c (arm_issue_rate): Specify 4 for xgene1.
20700         * config/arm/arm-cores.def (xgene1): New entry.
20701         * config/arm/arm-tables.opt: Regenerate.
20702         * config/arm/arm-tune.md: Regenerate.
20703         * config/arm/bpabi.h (BE8_LINK_SPEC): Specify mcpu=xgene1.
20704
20705 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
20706
20707         * tree-if-conv.c: Include hash-map.h.
20708         (aggressive_if_conv): New variable.
20709         (fold_build_cond_expr): Add simplification of non-zero condition.
20710         (add_to_dst_predicate_list): Invoke add_to_predicate_list if edge
20711         destination block is not always executed.
20712         (if_convertible_phi_p): Fix commentary, allow phi nodes have more
20713         than two predecessors if AGGRESSIVE_IF_CONV is true.
20714         (if_convertible_stmt_p): Fix commentary.
20715         (all_preds_critical_p): New function.
20716         (has_pred_critical_p): New function.
20717         (if_convertible_bb_p): Fix commentary, if AGGRESSIVE_IF_CONV is true
20718         BB can have more than two predecessors and all incoming edges can be
20719         critical.
20720         (predicate_bbs): Skip predication for loop exit block, use build2_loc
20721         to compute predicate for true edge.
20722         (find_phi_replacement_condition): Delete this function.
20723         (is_cond_scalar_reduction): Add arguments ARG_0, ARG_1 and EXTENDED.
20724         Allow interchange PHI arguments if EXTENDED is false.
20725         Change check that block containing reduction statement candidate
20726         is predecessor of phi-block since phi may have more than two arguments.
20727         (phi_args_hash_traits): New helper structure.
20728         (struct phi_args_hash_traits): New type.
20729         (phi_args_hash_traits::hash): New function.
20730         (phi_args_hash_traits::equal_keys): New function.
20731         (gen_phi_arg_condition): New function.
20732         (predicate_scalar_phi): Add handling of phi nodes with more than two
20733         arguments, delete COND and TRUE_BB arguments, insert body of
20734         find_phi_replacement_condition to predicate ordinary phi nodes.
20735         (predicate_all_scalar_phis): Skip blocks with the only predecessor,
20736         delete call of find_phi_replacement_condition and invoke
20737         predicate_scalar_phi with two arguments.
20738         (insert_gimplified_predicates): Add assert that non-predicated block
20739         don't have statements to insert.
20740         (ifcvt_split_critical_edges): New function.
20741         (ifcvt_split_def_stmt): Likewise.
20742         (ifcvt_walk_pattern_tree): Likewise.
20743         (stmt_is_root_of_bool_pattern): Likewise.
20744         (ifcvt_repair_bool_pattern): Likewise.
20745         (ifcvt_local_dce): Likewise.
20746         (tree_if_conversion): Add initialization of AGGRESSIVE_IF_CONV which
20747         is copy of inner or outer loop force_vectorize field, invoke
20748         ifcvt_split_critical_edges, ifcvt_local_dce and
20749         ifcvt_repair_bool_pattern for aggressive if-conversion.
20750
20751 2015-01-15  Philipp Tomsich  <ptomsich@theobroma-systems.com>
20752
20753         * config/aarch64/aarch64.md: Include xgene1.md.
20754         * config/aarch64/xgene1.md: New file.
20755
20756 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
20757
20758         * config/aarch64/aarch64-cores.def (xgene1): Update/add the
20759         xgene1 (APM XGene-1) core definition.
20760         * gcc/config/aarch64/aarch64.c: Add cost tables for APM XGene-1
20761         * config/arm/aarch-cost-tables.h: Add cost tables for APM XGene-1
20762         * doc/invoke.texi: Document -mcpu=xgene1.
20763
20764 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
20765
20766         * dojump.h: New header file.
20767         * explow.h: Likewise.
20768         * expr.h: Remove includes.
20769         Move expmed.c prototypes to expmed.h.
20770         Move dojump.c prototypes to dojump.h.
20771         Move alias.c prototypes to alias.h.
20772         Move explow.c prototypes to explow.h.
20773         Move calls.c prototypes to calls.h.
20774         Move emit-rtl.c prototypes to emit-rtl.h.
20775         Move varasm.c prototypes to varasm.h.
20776         Move stmt.c prototypes to stmt.h.
20777         (saved_pending_stack_adjust): Move to dojump.h.
20778         (adjust_address): Move to explow.h.
20779         (adjust_address_nv): Move to emit-rtl.h.
20780         (adjust_bitfield_address): Likewise.
20781         (adjust_bitfield_address_size): Likewise.
20782         (adjust_bitfield_address_nv): Likewise.
20783         (adjust_automodify_address_nv): Likewise.
20784         * explow.c (expr_size): Move to expr.c.
20785         (int_expr_size): Likewise.
20786         (tree_expr_size): Likewise.
20787         Include calls.h dojump.h emit-rtl.h explow.h expmed.h
20788         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
20789         * genemit.c (main): Generate includes statistics.h, real.h,
20790         fixed-value.h, insn-config.h, expmed.h, dojump.h, explow.h, emit-rtl.h,
20791         stmt.h.
20792         * genopinit.c (main): Generate includes hashtab.h, hard-reg-set.h,
20793         function.h, statistics.h, real.h, fixed-value.h, expmed.h, dojump.h,
20794         explow.h, emit-rtl.h, stmt.h.
20795         * genoutput.c (main): Generate includes hashtab.h, statistics.h, real.h,
20796         fixed-value.h, expmed.h, dojump.h, explow.h, emit-rtl.h, stmt.h.
20797         * genemit.c (open_base_files): Generate includes flags.h, statistics.h,
20798         real.h, fixed-value.h, tree.h, expmed.h, dojump.h, explow.h, calls.h,
20799         emit-rtl.h, varasm.h, stmt.h.
20800         * config/tilepro/gen-mul-tables.cc: Generate includes hashtab.h,
20801         hash-set.h, vec.h, machmode.h, tm.h, hard-reg-set.h, input.h,
20802         function.h, rtl.h, flags.h, statistics.h, double-int.h, real.h,
20803         fixed-value.h, alias.h, wide-int.h, inchash.h, tree.h, insn-config.h,
20804         expmed.h, dojump.h, explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
20805         * config/tilegx/mul-tables.c: Include alias.h calls.h dojump.h
20806         double-int.h emit-rtl.h explow.h expmed.h fixed-value.h flags.h
20807         function.h hard-reg-set.h hash-set.h hashtab.h inchash.h input.h
20808         insn-config.h machmode.h real.h rtl.h statistics.h stmt.h symtab.h
20809         tm.h tree.h varasm.h vec.h wide-int.h.
20810         * rtlhooks.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
20811         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
20812         hash-set.h hashtab.h inchash.h input.h insn-config.h machmode.h
20813         real.h statistics.h stmt.h tree.h varasm.h vec.h wide-int.h.
20814         * cfgloopanal.c: Include alias.h calls.h dojump.h double-int.h
20815         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h
20816         insn-config.h real.h statistics.h stmt.h tree.h varasm.h wide-int.h.
20817         * loop-iv.c: Likewise.
20818         * lra-assigns.c: Include alias.h calls.h dojump.h double-int.h
20819         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h real.h
20820         statistics.h stmt.h tree.h varasm.h wide-int.h.
20821         * lra-constraints.c: Likewise.
20822         * lra-eliminations.c: Likewise.
20823         * lra-lives.c: Likewise.
20824         * lra-remat.c: Likewise.
20825         * bt-load.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
20826         explow.h expmed.h fixed-value.h inchash.h insn-config.h real.h
20827         statistics.h stmt.h tree.h varasm.h wide-int.h.
20828         * hw-doloop.c: Likewise.
20829         * ira-color.c: Likewise.
20830         * ira-emit.c: Likewise.
20831         * loop-doloop.c: Likewise.
20832         * loop-invariant.c: Likewise.
20833         * reload.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
20834         explow.h expmed.h fixed-value.h inchash.h real.h rtl.h
20835         statistics.h stmt.h tree.h varasm.h wide-int.h.
20836         * caller-save.c: Include alias.h calls.h dojump.h double-int.h
20837         emit-rtl.h explow.h expmed.h fixed-value.h inchash.h real.h
20838         statistics.h stmt.h tree.h varasm.h wide-int.h.
20839         * combine-stack-adj.c: Likewise.
20840         * cse.c: Likewise.
20841         * ddg.c: Likewise.
20842         * ifcvt.c: Likewise.
20843         * ira-costs.c: Likewise.
20844         * jump.c: Likewise.
20845         * lra-coalesce.c: Likewise.
20846         * lra-spills.c: Likewise.
20847         * profile.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
20848         explow.h expmed.h fixed-value.h insn-config.h real.h statistics.h
20849         stmt.h varasm.h wide-int.h.
20850         * lra.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
20851         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
20852         varasm.h.
20853         * config/sh/sh_treg_combine.cc: Include alias.h calls.h dojump.h
20854         double-int.h explow.h expmed.h fixed-value.h flags.h real.h
20855         statistics.h stmt.h varasm.h wide-int.h.
20856         * reorg.c: Include alias.h calls.h dojump.h double-int.h explow.h
20857         expmed.h fixed-value.h inchash.h real.h statistics.h stmt.h tree.h
20858         varasm.h wide-int.h.
20859         * reload1.c: Include alias.h calls.h dojump.h double-int.h explow.h
20860         expmed.h fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
20861         * config/tilegx/tilegx.c: Include alias.h dojump.h double-int.h
20862         emit-rtl.h explow.h expmed.h fixed-value.h flags.h real.h
20863         statistics.h stmt.h.
20864         * config/tilepro/tilepro.c: Likewise.
20865         * config/mmix/mmix.c: Include alias.h dojump.h double-int.h emit-rtl.h
20866         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h.
20867         * config/pdp11/pdp11.c: Likewise.
20868         * config/xtensa/xtensa.c: Likewise.
20869         * config/lm32/lm32.c: Include alias.h dojump.h double-int.h emit-rtl.h
20870         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
20871         varasm.h.
20872         * tree-chkp.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
20873         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
20874         insn-config.h real.h rtl.h statistics.h stmt.h tm.h.
20875         * cilk-common.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
20876         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
20877         insn-config.h real.h rtl.h statistics.h stmt.h tm.h varasm.h.
20878         * rtl-chkp.c: Likewise.
20879         * tree-chkp-opt.c: Likewise.
20880         * config/arm/arm-builtins.c: Include calls.h dojump.h emit-rtl.h
20881         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
20882         hashtab.h insn-config.h real.h statistics.h stmt.h varasm.h.
20883         * ipa-icf.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
20884         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
20885         statistics.h stmt.h.
20886         * tree-vect-data-refs.c: Likewise.
20887         * graphite-sese-to-poly.c: Include calls.h dojump.h emit-rtl.h explow.h
20888         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
20889         rtl.h statistics.h stmt.h varasm.h.
20890         * internal-fn.c: Likewise.
20891         * ipa-icf-gimple.c: Likewise.
20892         * lto-section-out.c: Likewise.
20893         * tree-data-ref.c: Likewise.
20894         * tree-nested.c: Likewise.
20895         * tree-outof-ssa.c: Likewise.
20896         * tree-predcom.c: Likewise.
20897         * tree-pretty-print.c: Likewise.
20898         * tree-scalar-evolution.c: Likewise.
20899         * tree-ssa-strlen.c: Likewise.
20900         * tree-vect-loop.c: Likewise.
20901         * tree-vect-patterns.c: Likewise.
20902         * tree-vect-slp.c: Likewise.
20903         * tree-vect-stmts.c: Likewise.
20904         * tsan.c: Likewise.
20905         * targhooks.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
20906         fixed-value.h flags.h hashtab.h insn-config.h real.h statistics.h
20907         stmt.h.
20908         * config/sh/sh-mem.cc: Include calls.h dojump.h emit-rtl.h explow.h
20909         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
20910         statistics.h stmt.h varasm.h.
20911         * loop-unroll.c: Likewise.
20912         * ubsan.c: Likewise.
20913         * tree-ssa-loop-prefetch.c: Include calls.h dojump.h emit-rtl.h explow.h
20914         expmed.h fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h
20915         stmt.h varasm.h.
20916         * dse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
20917         fixed-value.h function.h hashtab.h statistics.h stmt.h varasm.h.
20918         * tree-switch-conversion.c: Include calls.h dojump.h emit-rtl.h explow.h
20919         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
20920         statistics.h stmt.h.
20921         * generic-match-head.c: Include calls.h dojump.h emit-rtl.h explow.h
20922         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
20923         statistics.h stmt.h varasm.h.
20924         * gimple-match-head.c: Likewise.
20925         * lto-cgraph.c: Likewise.
20926         * lto-section-in.c: Likewise.
20927         * lto-streamer-in.c: Likewise.
20928         * lto-streamer-out.c: Likewise.
20929         * tree-affine.c: Likewise.
20930         * tree-cfg.c: Likewise.
20931         * tree-cfgcleanup.c: Likewise.
20932         * tree-if-conv.c: Likewise.
20933         * tree-into-ssa.c: Likewise.
20934         * tree-ssa-alias.c: Likewise.
20935         * tree-ssa-copyrename.c: Likewise.
20936         * tree-ssa-dse.c: Likewise.
20937         * tree-ssa-forwprop.c: Likewise.
20938         * tree-ssa-live.c: Likewise.
20939         * tree-ssa-math-opts.c: Likewise.
20940         * tree-ssa-pre.c: Likewise.
20941         * tree-ssa-sccvn.c: Likewise.
20942         * tree-tailcall.c: Likewise.
20943         * tree-vect-generic.c: Likewise.
20944         * tree-sra.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
20945         fixed-value.h hashtab.h insn-config.h real.h rtl.h stmt.h varasm.h.
20946         * stor-layout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
20947         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h.
20948         * varasm.c: Likewise.
20949         * coverage.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
20950         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h
20951         varasm.h.
20952         * init-regs.c: Likewise.
20953         * ira.c: Likewise.
20954         * omp-low.c: Likewise.
20955         * stack-ptr-mod.c: Likewise.
20956         * tree-ssa-reassoc.c: Likewise.
20957         * tree-complex.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
20958         fixed-value.h hashtab.h insn-config.h rtl.h statistics.h stmt.h
20959         varasm.h.
20960         * dwarf2cfi.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
20961         fixed-value.h hashtab.h insn-config.h statistics.h stmt.h varasm.h.
20962         * shrink-wrap.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
20963         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h.
20964         * recog.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
20965         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h varasm.h.
20966         * tree-ssa-phiopt.c: Likewise.
20967         * config/darwin.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
20968         fixed-value.h hashtab.h real.h statistics.h stmt.h.
20969         * config/fr30/fr30.c: Likewise.
20970         * config/frv/frv.c: Likewise.
20971         * expr.c: Likewise.
20972         * final.c: Likewise.
20973         * optabs.c: Likewise.
20974         * passes.c: Likewise.
20975         * simplify-rtx.c: Likewise.
20976         * stmt.c: Likewise.
20977         * toplev.c: Likewise.
20978         * var-tracking.c: Likewise.
20979         * gcse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
20980         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
20981         * lower-subreg.c: Likewise.
20982         * postreload-gcse.c: Likewise.
20983         * ree.c: Likewise.
20984         * reginfo.c: Likewise.
20985         * store-motion.c: Likewise.
20986         * combine.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
20987         fixed-value.h hashtab.h real.h stmt.h varasm.h.
20988         * emit-rtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
20989         fixed-value.h hashtab.h statistics.h stmt.h.
20990         * dojump.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
20991         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
20992         * except.c: Likewise.
20993         * explow.c: Likewise.
20994         * tree-dfa.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
20995         fixed-value.h insn-config.h real.h rtl.h statistics.h stmt.h
20996         varasm.h.
20997         * gimple-fold.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
20998         fixed-value.h insn-config.h real.h rtl.h statistics.h varasm.h.
20999         * tree-ssa-structalias.c: Likewise.
21000         * cfgexpand.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21001         fixed-value.h insn-config.h real.h statistics.h.
21002         * calls.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21003         fixed-value.h insn-config.h real.h statistics.h stmt.h.
21004         * bb-reorder.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21005         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
21006         * cfgbuild.c: Likewise.
21007         * function.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21008         fixed-value.h real.h rtl.h statistics.h stmt.h.
21009         * cfgrtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21010         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
21011         * dbxout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21012         fixed-value.h real.h statistics.h stmt.h.
21013         * auto-inc-dec.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21014         fixed-value.h real.h statistics.h stmt.h varasm.h.
21015         * cprop.c: Likewise.
21016         * modulo-sched.c: Likewise.
21017         * postreload.c: Likewise.
21018         * ccmp.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
21019         flags.h function.h hard-reg-set.h hashtab.h insn-config.h real.h
21020         statistics.h stmt.h varasm.h.
21021         * gimple-ssa-strength-reduction.c: Include calls.h dojump.h emit-rtl.h
21022         explow.h fixed-value.h flags.h hashtab.h insn-config.h real.h
21023         rtl.h statistics.h stmt.h varasm.h.
21024         * tree-ssa-loop-ivopts.c: Include calls.h dojump.h emit-rtl.h explow.h
21025         fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h stmt.h
21026         varasm.h.
21027         * expmed.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
21028         function.h hard-reg-set.h hashtab.h real.h statistics.h stmt.h
21029         varasm.h.
21030         * target-globals.c: Include calls.h dojump.h emit-rtl.h explow.h
21031         fixed-value.h function.h hashtab.h real.h statistics.h stmt.h
21032         varasm.h.
21033         * tree-ssa-address.c: Include calls.h dojump.h emit-rtl.h explow.h
21034         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
21035         * cfgcleanup.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
21036         function.h real.h statistics.h stmt.h varasm.h.
21037         * alias.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
21038         insn-config.h real.h statistics.h stmt.h.
21039         * dwarf2out.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
21040         statistics.h stmt.h.
21041         * config/nvptx/nvptx.c: Include dojump.h emit-rtl.h explow.h expmed.h
21042         fixed-value.h flags.h hard-reg-set.h insn-config.h real.h
21043         statistics.h stmt.h varasm.h.
21044         * gimplify.c: Include dojump.h emit-rtl.h explow.h expmed.h
21045         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h statistics.h.
21046         * asan.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
21047         flags.h hashtab.h insn-config.h real.h rtl.h statistics.h stmt.h.
21048         * ipa-devirt.c: Include dojump.h emit-rtl.h explow.h expmed.h
21049         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
21050         statistics.h stmt.h varasm.h.
21051         * ipa-polymorphic-call.c: Likewise.
21052         * config/aarch64/aarch64.c: Include dojump.h emit-rtl.h explow.h
21053         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
21054         statistics.h stmt.h.
21055         * config/c6x/c6x.c: Likewise.
21056         * config/aarch64/aarch64-builtins.c: Include dojump.h emit-rtl.h
21057         explow.h expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
21058         statistics.h stmt.h varasm.h.
21059         * ipa-prop.c: Include dojump.h emit-rtl.h explow.h expmed.h
21060         fixed-value.h hashtab.h insn-config.h real.h rtl.h statistics.h
21061         stmt.h varasm.h.
21062         * ipa-split.c: Likewise.
21063         * tree-eh.c: Likewise.
21064         * tree-ssa-dce.c: Likewise.
21065         * tree-ssa-loop-niter.c: Likewise.
21066         * tree-vrp.c: Likewise.
21067         * config/nds32/nds32-cost.c: Include dojump.h emit-rtl.h explow.h
21068         expmed.h fixed-value.h hashtab.h insn-config.h real.h statistics.h
21069         stmt.h.
21070         * config/nds32/nds32-fp-as-gp.c: Likewise.
21071         * config/nds32/nds32-intrinsic.c: Likewise.
21072         * config/nds32/nds32-isr.c: Likewise.
21073         * config/nds32/nds32-md-auxiliary.c: Likewise.
21074         * config/nds32/nds32-memory-manipulation.c: Likewise.
21075         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
21076         * config/nds32/nds32-predicates.c: Likewise.
21077         * config/nds32/nds32.c: Likewise.
21078         * config/cris/cris.c: Include dojump.h emit-rtl.h explow.h expmed.h
21079         fixed-value.h hashtab.h real.h statistics.h.
21080         * config/alpha/alpha.c: Include dojump.h emit-rtl.h explow.h expmed.h
21081         fixed-value.h hashtab.h real.h statistics.h stmt.h.
21082         * config/arm/arm.c: Likewise.
21083         * config/avr/avr.c: Likewise.
21084         * config/bfin/bfin.c: Likewise.
21085         * config/h8300/h8300.c: Likewise.
21086         * config/i386/i386.c: Likewise.
21087         * config/ia64/ia64.c: Likewise.
21088         * config/iq2000/iq2000.c: Likewise.
21089         * config/m32c/m32c.c: Likewise.
21090         * config/m32r/m32r.c: Likewise.
21091         * config/m68k/m68k.c: Likewise.
21092         * config/mcore/mcore.c: Likewise.
21093         * config/mep/mep.c: Likewise.
21094         * config/mips/mips.c: Likewise.
21095         * config/mn10300/mn10300.c: Likewise.
21096         * config/moxie/moxie.c: Likewise.
21097         * config/pa/pa.c: Likewise.
21098         * config/rl78/rl78.c: Likewise.
21099         * config/rx/rx.c: Likewise.
21100         * config/s390/s390.c: Likewise.
21101         * config/sh/sh.c: Likewise.
21102         * config/sparc/sparc.c: Likewise.
21103         * config/spu/spu.c: Likewise.
21104         * config/stormy16/stormy16.c: Likewise.
21105         * config/v850/v850.c: Likewise.
21106         * config/vax/vax.c: Likewise.
21107         * config/cr16/cr16.c: Include dojump.h emit-rtl.h explow.h expmed.h
21108         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
21109         * config/msp430/msp430.c: Likewise.
21110         * predict.c: Likewise.
21111         * value-prof.c: Likewise.
21112         * config/epiphany/epiphany.c: Include dojump.h emit-rtl.h explow.h
21113         expmed.h fixed-value.h hashtab.h statistics.h stmt.h.
21114         * config/microblaze/microblaze.c: Likewise.
21115         * config/nios2/nios2.c: Likewise.
21116         * config/rs6000/rs6000.c: Likewise.
21117         * tree.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
21118         insn-config.h real.h rtl.h statistics.h stmt.h.
21119         * cgraph.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
21120         insn-config.h real.h statistics.h stmt.h.
21121         * fold-const.c: Include dojump.h emit-rtl.h explow.h expmed.h
21122         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
21123         * tree-inline.c: Include dojump.h emit-rtl.h explow.h expmed.h
21124         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
21125         * builtins.c: Include dojump.h emit-rtl.h explow.h expmed.h
21126         fixed-value.h real.h statistics.h stmt.h.
21127         * config/arc/arc.c: Include dojump.h emit-rtl.h explow.h expmed.h
21128         fixed-value.h statistics.h stmt.h.
21129         * config/visium/visium.c: Include dojump.h emit-rtl.h explow.h expmed.h
21130         stmt.h.
21131
21132 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
21133
21134         * gengtype.c (create_user_defined_type): Workaround
21135         -Wmaybe-uninitialized false positives.
21136         * cse.c (fold_rtx): Likewise.
21137         * loop-invariant.c (gain_for_invariant): Likewise.
21138
21139 2015-01-15  Eric Botcazou  <ebotcazou@adacore.com>
21140
21141         * expr.c (expand_expr_real_1) <normal_inner_ref>: Use the expression to
21142         set the memory attributes in all cases but clear MEM_EXPR if need be.
21143
21144 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
21145
21146         PR tree-optimization/64434
21147         * cfgexpand.c (reorder_operands): New function.
21148         (expand_gimple_basic_block): Insert call of reorder_operands if
21149         optimized is true.
21150
21151 2015-01-15  Matthew Fortune  <matthew.fortune@imgtec.com>
21152
21153         * config/mips/micromips.md (*swp): Remove explicit parallel.
21154         (jraddiusp, *movep<MOVEP1:mode><MOVEP2:mode>): Likewise.
21155         * config/mips/mips-dsp.md (add<DSPV:mode>3): Likewise.
21156         (mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>, sub<DSPV:mode>3): Likewise.
21157         (mips_sub<DSP:dspfmt1>_s_<DSP:dspfmt2>, mips_addsc): Likewise.
21158         (mips_addwc, mips_absq_s_<DSPQ:dspfmt2>): Likewise.
21159         (mips_precrq_rs_ph_w, mips_precrqu_s_qb_ph): Likewise.
21160         (mips_shll_<DSPV:dspfmt2>, mips_shll_s_<DSPQ:dspfmt2>): Likewise.
21161         (mips_muleu_s_ph_qbl, mips_muleu_s_ph_qbr): Likewise.
21162         (mips_mulq_rs_ph, mips_muleq_s_w_phl, mips_muleq_s_w_phr): Likewise.
21163         (mips_dpaq_s_w_ph, mips_dpsq_s_w_ph, mips_mulsaq_s_w_ph): Likewise.
21164         (mips_dpaq_sa_l_w, mips_dpsq_sa_l_w, mips_maq_s_w_phl): Likewise.
21165         (mips_maq_s_w_phr, mips_maq_sa_w_phl, mips_maq_sa_w_phr): Likewise.
21166         (mips_extr_w, mips_extr_r_w, mips_extr_rs_w): Likewise.
21167         (mips_extr_s_h, mips_extp, mips_extpdp, mips_mthlip): Likewise.
21168         (mips_wrdsp): Likewise.
21169         * config/mips/mips-dspr2.md (mips_absq_s_qb): Remove explicit
21170         parallel.
21171         (mips_addu_ph, mips_addu_s_ph, mips_cmpgdu_eq_qb): Likewise.
21172         (mips_cmpgdu_lt_qb, mips_cmpgdu_le_qb, mulv2hi3): Likewise.
21173         (mips_mul_s_ph, mips_mulq_rs_w, mips_mulq_s_ph): Likewise.
21174         (mips_mulq_s_w, mips_subu_ph, mips_subu_s_ph): Likewise.
21175         (mips_dpaqx_s_w_ph, mips_dpaqx_sa_w_ph): Likewise.
21176         (mips_dpsqx_s_w_ph, mips_dpsqx_sa_w_ph): Likewise.
21177         * config/mips/mips-fixed.md (usadd<mode>3): Remove explicit parallel.
21178         (ssadd<mode>3, ussub<mode>3, sssub<mode>3, ssmul<mode>3): Likewise.
21179         (ssmaddsqdq4, ssmsubsqdq4): Likewise.
21180
21181 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
21182
21183         * config/mips/mips.c (mips_rtx_costs): Set costs for LSA/DLSA.
21184         (mips_print_operand): Support 'y' to print exact log2 in decimal
21185         of a const_int.
21186         * config/mips/mips.h (ISA_HAS_LSA): New define.
21187         (ISA_HAS_DLSA): Likewise.
21188         * config/mips/mips.md (<GPR:d>lsa): New define_insn.
21189         * config/mips/predicates.md (const_immlsa_operand): New predicate.
21190
21191 2015-01-15  Martin Liska  <mliska@suse.cz>
21192
21193         PR target/64377
21194         * optc-save-gen.awk: Add support for array types.
21195
21196 2015-01-15  Richard Biener  <rguenther@suse.de>
21197
21198         PR middle-end/64365
21199         * tree-data-ref.c (dr_analyze_indices): Make sure that accesses
21200         for MEM_REF access functions with the same base can never partially
21201         overlap.
21202
21203 2015-01-14  Marcos Diaz <marcos.diaz@tallertechnologies.com>
21204
21205         * common.opt: New option -fstack-protector-explicit.
21206         * cfgexpand.c (SPCT_FLAG_EXPLICIT): New enum.
21207         (stack_protect_decl_phase): Handle stack_protect attribute for
21208         explicit stack protection requests.
21209         (expand_used_vars): Similarly.
21210         * doc/cpp.texi (__SSP_EXPLICIT__): Document predefined macro.
21211         * doc/extend.texi: Add documentation for "stack_protect" attribute.
21212         * doc/invoke.texi: Add documentation for -fstack-protector-explicit.
21213
21214 2015-01-14  Oleg Endo  <olegendo@gcc.gnu.org>
21215
21216         PR target/53988
21217         * config/sh/sh-protos.h (sh_find_set_of_reg): Add option to ignore
21218         reg-reg copies.
21219         (sh_extending_set_of_reg): New struct.
21220         (sh_find_extending_set_of_reg, sh_split_tst_subregs,
21221         sh_remove_reg_dead_or_unused_notes): New Declarations.
21222         * config/sh/sh.c (sh_remove_reg_dead_or_unused_notes,
21223         sh_find_extending_set_of_reg, sh_split_tst_subregs,
21224         sh_extending_set_of_reg::use_as_extended_reg): New functions.
21225         * config/sh/sh.md (*tst<mode>_t_zero): Rename to *tst<mode>_t_subregs,
21226         convert to insn_and_split and use new function sh_split_tst_subregs.
21227
21228 2015-01-14  Sandra Loosemore  <sandra@codesourcery.com>
21229
21230         * doc/invoke.texi (Option Summary): Reclassify -fuse-ld as a linker
21231         option.
21232         (Optimization Options): Move -fuse-ld documentation to...
21233         (Link Options): ...here.
21234
21235 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
21236
21237         * config/mips/constraints.md (ZC): Add support for R6 LL/SC
21238         offsets.
21239         (ZD): Update to use ISA_HAS_9BIT_DISPLACEMENT.
21240         * config/mips/mips.h (ISA_HAS_PREFETCH_9BIT): Rename to...
21241         (ISA_HAS_9BIT_DISPLACEMENT): ... this. New macro.
21242         * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZC
21243         instead of ZR for the memory operand of LL/SC.
21244         (compare_and_swap_12, sync_add<mode>): Likewise.
21245         (sync_<optab>_12, sync_old_<optab>_12): Likewise.
21246         (sync_new_<optab>_12, sync_nand_12): Likewise.
21247         (sync_old_nand_12, sync_new_nand_12): Likewise.
21248         (sync_sub<mode>, sync_old_add<mode>): Likewise.
21249         (sync_old_sub<mode>, sync_new_add<mode>): Likewise.
21250         (sync_new_sub<mode>, sync_<optab><mode>): Likewise.
21251         (sync_old_<optab><mode>, sync_new_<optab><mode>"): Likewise.
21252         (sync_nand<mode>, sync_old_nand<mode>): Likewise.
21253         (sync_new_nand<mode>, sync_lock_test_and_set<mode>): Likewise.
21254         (test_and_set_12, atomic_compare_and_swap<mode>): Likewise.
21255         (atomic_exchange<mode>_llsc, atomic_fetch_add<mode>_llsc): Likewise.
21256         * doc/md.texi (ZC): Update description.
21257
21258 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
21259
21260         * builtins.c (expand_builtin_atomic_exchange): Remove error when
21261         memory model is CONSUME.
21262         (expand_builtin_atomic_compare_exchange, expand_builtin_atomic_load,
21263         expand_builtin_atomic_store): Change invalid memory model errors to
21264         warnings.
21265         (expand_builtin_atomic_clear): Change invalid model errors to warnings
21266         and issue warning for CONSUME.
21267
21268 2015-01-14  Aldy Hernandez  <aldyh@redhat.com>
21269
21270         * lto-cgraph: Update function comments for
21271         lto_symtab_encoder_encode_*.
21272
21273 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
21274
21275         * Makefile.in (site.exp): Do not set ENABLE_LTO.
21276
21277 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
21278
21279         * cgraphunit.c (ipa_passes): Remove argument from ipa_write_summaries.
21280         * lto-cgraph.c (select_what_to_stream): Remove argument, use
21281         lto_stream_offload_p instead.
21282         * lto-streamer.h (select_what_to_stream): Remove argument.
21283         * passes.c (ipa_write_summaries): Likewise.
21284         * tree-pass.h (ipa_write_summaries): Likewise.
21285
21286 2015-01-14  Richard Biener  <rguenther@suse.de>
21287
21288         PR tree-optimization/59354
21289         * tree-vect-slp.c (vect_build_slp_tree_1): Treat loads from
21290         groups larger than the slp group size as having gaps.
21291
21292 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
21293
21294         PR middle-end/59448
21295         * builtins.c (get_memmodel): Promote consume to acquire always.
21296
21297 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
21298
21299         PR target/64386
21300         * config/i386/i386.c (ix86_expand_sse_cmp): Handle V64QImode,
21301         V32HImode.
21302
21303 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
21304
21305         PR target/64393
21306         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET):
21307         Enable AVX512BW.
21308         (OPTION_MASK_ISA_AVX512BW_UNSET): Disable AVX512VBMI.
21309         * config/i386/i386.c (ix86_hard_regno_mode_ok): Don't check
21310         AVX512VBMI, as it implies AVX512BW.
21311
21312 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
21313
21314         PR target/64387
21315         * config/i386/sse.md (vec_unpacks_hi_v8sf): Fix predicate.
21316         (vec_unpacks_hi_v16sf): Ditto.
21317
21318 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21319
21320         * config/aarch64/arm_neon.h: Error out if AdvancedSIMD
21321         is not available.
21322
21323 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21324
21325         * doc/invoke.texi (mapcs): Mention deprecation.
21326         (mapcs-frame): Likewise.
21327
21328 2015-01-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
21329
21330         PR target/64453
21331         * config/arm/arm.c (callee_saved_reg_p): Define.
21332         (arm_compute_save_reg0_reg12_mask): Use callee_saved_reg_p to check if
21333         register is callee saved instead of !call_used_regs[reg].
21334         (thumb1_compute_save_reg_mask): Likewise.
21335
21336 2015-01-14  Hale Wang  <hale.wang@arm.com>
21337
21338         * config/arm/arm.c: Tune the max_cond_insns/branch_cost for
21339         Cortex-M7.
21340
21341 2015-01-14  Richard Biener  <rguenther@suse.de>
21342
21343         PR lto/64415
21344         * tree-inline.c (insert_debug_decl_map): Check destination
21345         function MAY_HAVE_DEBUG_STMTS.
21346         (insert_init_debug_bind): Likewise.
21347         (insert_init_stmt): Remove redundant check.
21348         (remap_gimple_stmt): Drop debug stmts if the destination
21349         function has var-tracking assignments disabled.
21350
21351 2015-01-14  Martin Liska  <mliska@suse.cz>
21352
21353         * ipa-icf-gimple.c (func_checker::compare_operand): Add support for
21354         IMAGPART_EXPR and REALPART_EXPR and fix BIT_FIELD_REF comparison.
21355
21356 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21357
21358         PR target/64460
21359         * config/arm/arm.md (*<arith_shift_insn>_multsi): Set 'shift' to 2.
21360         (*<arith_shift_insn>_shiftsi): Set 'shift' attr to 3.
21361
21362 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
21363
21364         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Only infer an ISA
21365         level from an ARCH; do not inject the default.
21366         (MIPS_DEFAULT_ISA_LEVEL_SPEC): New macro split out from
21367         MIPS_ISA_LEVEL_SPEC.
21368         (MIPS_ISA_NAN2008_SPEC): Update comment.
21369         (BASE_DRIVER_SELF_SPECS): Likewise.
21370         * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Add
21371         MIPS_DEFAULT_ISA_LEVEL_SPEC.
21372         * config/mips/mti-elf.h (DRIVER_SELF_SPECS): Likewise.
21373         * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Likewise.
21374         * config/mips/sde.h (DRIVER_SELF_SPECS): Likewise.
21375
21376 2015-01-14  Richard Biener  <rguenther@suse.de>
21377
21378         PR tree-optimization/64493
21379         PR tree-optimization/64495
21380         * tree-vect-loop.c (vect_finalize_reduction): For double-reductions
21381         assign the proper vectorized PHI to the inner loop exit PHIs.
21382
21383 2015-01-14  Joey Ye  <joey.ye@arm.com>
21384
21385         * config/arm/arm.c (arm_compute_save_reg_mask):
21386         Do not save lr in case of tail call.
21387         * config/arm/thumb2.md (*thumb2_pop_single): New pattern.
21388
21389 2015-01-14  Martin Uecker <uecker@eecs.berkeley.edu>
21390
21391         * tree-vrp.c (check_array_ref): Emit more warnings
21392         for warn_array_bounds >= 2.
21393         * common.opt: New option -Warray-bounds=.
21394         * doc/invoke.texi: Document -Warray-bounds=.
21395
21396 2015-01-14  Chung-Ju Wu  <jasonwucj@gmail.com>
21397
21398         * config/nds32/nds32.opt (mforce-fp-as-gp): Remove.
21399         (mforbid-fp-as-gp): Remove.
21400         (mex9): Remove.
21401         * config/nds32/nds32-fp-as-gp.c (nds32_have_prologue_p): Remove.
21402         (nds32_symbol_load_store_p): Remove.
21403         (nds32_fp_as_gp_check_available): Clean up implementation.
21404         * config/nds32/nds32.h (LINK_SPEC): Remove -mforce-as-gp and -mex9
21405         cases.
21406         * config/nds32/nds32.c (nds32_asm_file_start): No need to consider
21407         fp-as-gp and ex9 cases.
21408
21409 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
21410
21411         * tree-profile.c (init_ic_make_global_vars): Drop workaround
21412         for bintuils bug 14342.
21413         (init_ic_make_global_vars): Likewise.
21414         (gimple_init_edge_profiler): Likewise.
21415         (gimple_gen_ic_func_profiler): Likewise.
21416
21417 2015-01-13  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
21418
21419         * ipa-inline.c (inline_small_functions): Swap the operands in
21420         enum.
21421
21422 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
21423
21424         PR ipa/64481
21425         * ipa-inline-analysis.c (node_growth_cache): Remove.
21426         (initialize_growth_caches): Do not initialize it.
21427         (free_growth_caches): Do not free it.
21428         (do_estimate_growth): Rename to ...
21429         (estimate_growth): ... this one; drop growth cache code.
21430         (growth_likely_positive): Always go the heuristics way.
21431         * ipa-inline.c (can_inline_edge_p): Walk through aliases.
21432         (reset_edge_caches): Do not reset node growth.
21433         (heap_edge_removal_hook): Do not maintain cache.
21434         (inline_small_functions): Likewise; strenghten sanity check.
21435         (ipa_inline): Do not maintain caches.
21436         * ipa-inline.h (node_growth_cache): Remove.
21437         (do_estimate_growth): Remove to ...
21438         (estimate_growth): this one; remove inline version.
21439         (reset_node_growth_cache): Remove.
21440
21441 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
21442
21443         PR ipa/64565
21444         * ipa-inline.c (inline_small_functions): Update callee keys after
21445         resolving speculation
21446         (inline_small_functions): Always check monotonicity of the queue.
21447
21448 2015-01-13  Marek Polacek  <polacek@redhat.com>
21449
21450         PR middle-end/64391
21451         * trans-mem.c (get_attrs_for): Return NULL_TREE if X is NULL_TREE.
21452
21453 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
21454
21455         PR rtl-optimization/64286
21456         * ree.c (combine_reaching_defs): Move part of comment earlier,
21457         remove !SCALAR_INT_MODE_P check.
21458         (add_removable_extension): Don't add vector mode
21459         extensions if all uses of the source register aren't the same
21460         vector extensions.
21461
21462 2015-01-13  Renlin Li  <renlin.li@arm.com>
21463
21464         * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO): Return 2.
21465         (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
21466
21467 2015-01-13  Martin Liska  <mliska@suse.cz>
21468
21469         * ipa-icf.c (sem_function::equals_private): Call new functions
21470         cl_target_option_print_diff and cl_optimization_print_diff.
21471         * optc-save-gen.awk (cl_target_option_print_diff): New function.
21472         (cl_optimization_print_diff): Likewise.
21473         * opth-gen.awk: Likewise.
21474
21475 2015-01-13  Richard Sandiford  <richard.sandiford@arm.com>
21476
21477         * config/aarch64/aarch64.md (subsi3, *subsi3_uxtw, subdi3)
21478         (*sub_<optab><ALLX:mode>_<GPI:mode>, *sub_<optab><SHORT:mode>_si_uxtw)
21479         (*sub_<optab><ALLX:mode>_shft_<GPI:mode>)
21480         (*sub_<optab><SHORT:mode>_shft_si_uxtw, *sub_<optab><mode>_multp2)
21481         (*sub_<optab>si_multp2_uxtw, *sub_uxt<mode>_multp2)
21482         (*sub_uxtsi_multp2_uxtw): Add stack pointer sources.
21483
21484 2015-01-13  Andrew Pinski  <apinski@cavium.com>
21485
21486         * config/aarch64/aarch64.c (fusion_load_store): Check dest mode
21487         instead of src mode.
21488
21489 2015-01-13  Richard Biener  <rguenther@suse.de>
21490
21491         PR lto/64373
21492         * lto-streamer-out.c (tree_is_indexable): Guard for NULL
21493         DECL_CONTEXT.
21494
21495 2015-01-13  Andrew Pinski  <apinski@cavium.com>
21496
21497         * config/aarch64/aarch64.c (aarch64_operands_ok_for_ldpstp): Reject
21498         volatile mems.
21499         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
21500
21501 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
21502
21503         PR middle-end/63974
21504         * cfgexpand.c (expand_computed_goto): Don't call
21505         convert_memory_address here.
21506
21507 2015-01-13  Richard Biener  <rguenther@suse.de>
21508
21509         PR tree-optimization/64406
21510         * tree-loop-distibution.c (pass_loop_distribution::execute):
21511         Reset the SCEV hashtable if we distributed anything.
21512
21513 2015-01-13  Richard Biener  <rguenther@suse.de>
21514
21515         PR tree-optimization/64404
21516         * tree-vect-stmts.c (vectorizable_load): Reject conflicting
21517         SLP types for CSEd loads.
21518
21519 2015-01-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
21520
21521         PR tree-optimization/64436
21522         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Move code performing the
21523         merge of two symbolic numbers for a bitwise OR to ...
21524         (perform_symbolic_merge): This. Also fix computation of the range and
21525         end of the symbolic number corresponding to the result of a bitwise OR.
21526
21527 2015-01-13  Richard Biener  <rguenther@suse.de>
21528
21529         PR tree-optimization/64568
21530         * tree-ssa-forwprop.c (pass_forwprop::execute): Properly
21531         release defs of removed stmts, avoid splitting TARGET_MEM_REFs.
21532
21533 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
21534
21535         * config/nds32/nds32.c (nds32_legitimate_address_p): Consider
21536         TARGET_CMODEL_LARGE and TARGET_CMODEL_MEDIUM cases.
21537
21538 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
21539
21540         * config/nds32/nds32.h (NDS32_SYMBOL_FLAG_RODATA): Define our own
21541         target-specific symbol_ref flag.
21542         (NDS32_SYMBOL_REF_RODATA_P): Define it to check if the symbol_ref
21543         resides in rodata section.
21544         * config/nds32/nds32.c (TARGET_ENCODE_SECTION_INFO): Define.
21545         (nds32_encode_section_info): New function.
21546
21547 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
21548
21549         * config/nds32/nds32.md (call): Use pseudo instruction bal which
21550         clobbers TA_REGNUM if large code model is specified.
21551         (call_register): Likewise.
21552         (call_immediate): Likewise.
21553         (call_value): Likewise.
21554         (call_value_register): Likewise.
21555         (call_value_immediate): Likewise.
21556
21557 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
21558
21559         * config/nds32/nds32.h (TARGET_CMODEL_SMALL): New macro.
21560         (TARGET_CMODEL_MEDIUM): New macro.
21561         (TARGET_CMODEL_LARGE): New macro.
21562         * config/nds32/nds32.c (nds32_asm_file_start): Display corresponding
21563         code model setting in assembly code.
21564
21565 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
21566
21567         * common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS):
21568         Remove MASK_GP_DIRECT flag.
21569         * config/nds32/nds32.h (MULTILIB_DEFAULTS): Have -mcmodel=medium as
21570         one of the multilib default options.
21571         * config/nds32/nds32.opt (mgp-direct): Remove.
21572         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Use -mcmodel instead of
21573         -mgp-direct.  We also remove unnecessary -mlittle-endian/-mbig-endian.
21574
21575 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
21576
21577         * config/nds32/nds32.opt (mcmodel): Add new option.
21578         * config/nds32/nds32-opts.h (nds32_cmodel_type): Add new enum type
21579         to describe code model.
21580
21581 2015-01-13  Oleg Endo  <olegendo@gcc.gnu.org>
21582
21583         PR target/64479
21584         * rtlanal.c (set_reg_p): Handle SEQUENCE constructs.
21585
21586 2015-01-12  Kaz Kojima  <kkojima@gcc.gnu.org>
21587
21588         * config/sh/sh.c (sh_atomic_assign_expand_fenv): New function.
21589         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
21590         (sh_builtin_get_fpscr, sh_builtin_set_fpscr): New variables.
21591         (sh_init_builtins): Record decls for __builtin_sh_get_fpscr and
21592         __builtin_sh_set_fpscr.
21593
21594 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
21595
21596         * doc/invoke.texi ([-Wsuggest-attribute=]): Don't use parentheses
21597         after a funtion name just to indicate it is a function.
21598         ([-fsanitize-undefined-trap-on-error]): Likewise.
21599         ([-fdbg-cnt=]): Likewise.
21600         ([-mmemcpy]): Likewise.
21601         ([-mflush-func]): Likewise.
21602         ([-msynci]): Likewise.
21603
21604 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
21605
21606         * doc/invoke.texi ([-Wbad-function-cast]): Rewrite to avoid confusing
21607         example.
21608
21609 2015-01-12  Jakub Jelinek  <jakub@redhat.com>
21610
21611         PR tree-optimization/64563
21612         * tree-vrp.c (vrp_evaluate_conditional): Check for VR_RANGE
21613         instead of != VR_VARYING.
21614
21615         PR target/64513
21616         * config/i386/i386.c (ix86_expand_prologue): Add
21617         REG_FRAME_RELATED_EXPR to %rax and %r10 pushes.
21618
21619         PR tree-optimization/64454
21620         * tree-vrp.c (simplify_div_or_mod_using_ranges): Optimize
21621         op0 % op1 into op0 if op0 is in range [-op1 + 1, op1 - 1]
21622         for signed or [0, op1 - 1] for unsigned modulo.
21623         (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
21624         even if op1 does not satisfy integer_pow2p.
21625
21626         PR other/64370
21627         * sreal.c (sreal::to_double): Use ldexp instead of scalbnl.
21628
21629 2015-01-12  Jeff Law  <law@redhat.com>
21630
21631         PR target/64461
21632         * config/m68k/m68k.md (truncsiqi2): Disable for TARGET_COLDFIRE.
21633         (trunchiqi2, truncsihi2): Similarly.
21634
21635         * config/h8300/h8300.c (Fpa): Use RTX_FRAME_RELATED_P directly
21636         rather than calling F.
21637
21638 2015-01-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>
21639
21640         * tsan.c (instrument_expr): Use force_gimple_operand.
21641         Use may_be_nonaddressable_p instead of is_gimple_addressable.
21642
21643 2015-01-12  Richard Biener  <rguenther@suse.de>
21644
21645         PR tree-optimization/64530
21646         * tree-loop-distribution.c (pg_add_dependence_edges): Shuffle
21647         back dr1.
21648
21649 2015-01-12  Richard Biener  <rguenther@suse.de>
21650
21651         PR middle-end/64357
21652         * tree-cfg.c (gimple_can_merge_blocks_p): Protect simple
21653         latches properly.
21654
21655 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21656
21657         * config/arm/arm.c (arm_cortex_a12_tune): Update entries to match
21658         Cortex-A17 tuning parameters.
21659         * config/arm/arm-cores.def (cortex-a12): Schedule for cortex-a17.
21660
21661 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21662
21663         * config/arm/arm-protos.h (tune_params): Add fuseable_ops field.
21664         * config/arm/arm.c (arm_macro_fusion_p): New function.
21665         (arm_macro_fusion_pair_p): Likewise.
21666         (TARGET_SCHED_MACRO_FUSION_P): Define.
21667         (TARGET_SCHED_MACRO_FUSION_PAIR_P): Likewise.
21668         (ARM_FUSE_NOTHING): Likewise.
21669         (ARM_FUSE_MOVW_MOVT): Likewise.
21670         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,
21671         arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,
21672         arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,
21673         arm_cortex_a53_tune, arm_cortex_a57_tune, arm_cortex_a9_tune,
21674         arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune
21675         arm_cortex_a5_tune): Specify fuseable_ops value.
21676
21677 2015-01-12  H.J. Lu  <hongjiu.lu@intel.com>
21678
21679         PR bootstrap/64561
21680         * configure.ac (HAVE_LD_PIE_COPYRELOC): Update Linux/x86-64 linker
21681         test for PIE with copy reloc.
21682         * configure: Regenerated.
21683
21684 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21685
21686         * config/arm/arm.c (arm_load_tp): Use R0_REGNUM instead of constant 0
21687         in gen_rtx_REG.
21688         (arm_tls_descseq_addr): Likewise.
21689         (arm_gen_movmemqi): Likewise.
21690         (arm_expand_epilogue_apcs_frame): Likewise.
21691         (arm_expand_epilogue): Likewise.
21692         (arm_expand_prologue): Likewise.  Use R1_REGNUM instead of constant 1
21693         in gen_rtx_REG.
21694
21695 2015-01-12  Martin Liska  <mliska@suse.cz>
21696
21697         PR ipa/64550
21698         * ipa-icf-gimple.c (func_checker::compare_memory_operand): Compare
21699         volatility for correct operands.
21700
21701 2015-01-12  Martin Liska  <mliska@suse.cz>
21702
21703         * ipa-icf.c (sem_function::equals_wpa): Add indirect_calls as
21704         indication that a function is not leaf.
21705         (sem_function::compare_polymorphic_p): Likewise.
21706
21707 2015-01-12  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
21708
21709         * config/visium/visium.c: Add includes hashtab.h, hash-set.h,
21710         machmode.h, input.h, statistics.h, vec.h, double-int.h, real.h,
21711         fixed-value.h, alias.h, symtab.h, tree-core.h, wide-int.h, inchash.h,
21712         fold-const.h, tree-check.h.
21713
21714 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
21715
21716         PR ipa/63967
21717         PR ipa/64425
21718         * ipa-inline.c (compute_uninlined_call_time,
21719         compute_inlined_call_time): Use counts for extra precision when
21720         needed possible.
21721         (big_speedup_p): Fix formating.
21722         (RELATIVE_TIME_BENEFIT_RANGE): Remove.
21723         (relative_time_benefit): Remove.
21724         (edge_badness): Turn DECL_DISREGARD_INLINE_LIMITS into hint;
21725         merge guessed and read profile paths.
21726         (inline_small_functions): Count only !optimize_size functions into
21727         initial size; be more lax about sanity check when profile is used;
21728         be sure to update inlined function profile when profile is read.
21729
21730 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
21731
21732         PR ipa/63470
21733         * ipa-inline-analysis.c (inline_edge_duplication_hook): Adjust
21734         cost when edge becomes direct.
21735         * ipa-prop.c (make_edge_direct): Do not adjust when speculation
21736         is resolved or when introducing new speculation.
21737
21738 2015-01-12  Chen Gang  <gang.chen.5i5j@gmail.com>
21739
21740         PR ipa/64551
21741         PR ipa/64552
21742         * ipa-icf.c (sem_function::equals_private): Use '&&' instead of
21743         '||' to fix typo issue.
21744
21745         * gcc/tree.h (target_opts_for_fn): Check NULL_TREE since it can
21746         accept and return NULL.
21747
21748 2015-01-12  Martin Liska  <mliska@suse.cz>
21749
21750         * cgraph.c (cgraph_edge::remove_callee): Move function to header
21751         file for being inlined.
21752         (cgraph_set_edge_callee): Delete.
21753         (cgraph_edge::redirect_callee): Move function to header file
21754         for being inlined.
21755         (cgraph_edge::make_direct): Use new function.
21756         (cgraph_edge::dump_edge_flags): New function created from
21757         static dump_edge_flags function.
21758         (cgraph_node::dump): Use new function.
21759         (cgraph_edge::verify_count_and_frequency): New function created
21760         from verify_edge_count_and_frequency.
21761         (cgraph_edge::verify_corresponds_to_fndecl): New function created
21762         from verify_edge_corresponds_to_fndecl.
21763         (verify_edge_corresponds_to_fndecl): Delete.
21764         (cgraph_node::verify_node): Use new function.
21765         * cgraph.h (cgraph_edge::set_callee): New function.
21766         (cgraph_edge::dump_edge_flags): Likewise.
21767         (cgraph_edge::verify_corresponds_to_fndecl): Likewise.
21768
21769 2015-01-11  Jan Hubicka  <hubicka@ucw.cz>
21770
21771         * ipa-utils.c (estimate_function_body_sizes): Do not
21772         free node params when called late with early=true.
21773
21774 2015-01-11  James Greenhalgh  <james.greenhalgh@arm.com>
21775
21776         * doc/md.texi (Instruction Patterns): Rewrite text for
21777         clarity.
21778         (Example): Likewise.
21779
21780 2015-01-10  Sandra Loosemore  <sandra@codesourcery.com>
21781
21782         * doc/invoke.texi (Option Summary): Break long lines.
21783         [(-fdiagnostics-color)]: Put long literal in @smallexample
21784         instead of inline.
21785         [(-fsanitize-recover)]: Likewise.
21786         [(-fdump-rtl-split*)]: Rewrite to fix over-full hbox.
21787         [(-ffast-math)]: Likewise.
21788         [(--param max-inline-insns-recursive)]: Likewise.
21789         [(--param max-inline-recursive-depth)]: Likewise.
21790         [(-mno-text-section-literals)]: Likewise.
21791
21792 2015-01-10  Thomas Schwinge  <thomas@codesourcery.com>
21793
21794         * doc/install.texi: Update for libgomp being renamed from "GNU
21795         OpenMP Runtime Library" to "GNU Offloading and Multi Processing
21796         Runtime Library".
21797         * doc/sourcebuild.texi: Likewise.
21798
21799 2015-01-10  Anthony Green  <green@moxielogic.com>
21800
21801         * config/moxie/moxie.c (moxie_option_override): Fix forcing of
21802         mul.x availability for moxiebox configuration.
21803
21804 2015-01-09  Anthony Green  <green@moxielogic.com>
21805
21806         * config/moxie/moxie.md: Tabify assembly output.
21807
21808 2015-01-09  Anthony Green  <green@moxielogic.com>
21809
21810         * config/moxie/moxie.md (CC_REG): Correct register definition.
21811
21812 2015-01-09  Sandra Loosemore  <sandra@codesourcery.com>
21813
21814         * doc/invoke.texi ([-fvtable-verify]): Copy-edit and fix markup.
21815         ([-fvtv-debug], [-fvtv-counts]): Likewise.  Correct location
21816         of log files.
21817
21818 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
21819
21820         * config/arm/arm.h (MAX_SYNC_LIBFUNC_SIZE): Delete semicolon.
21821
21822 2015-01-09  Bernd Schmidt  <bernds@codesourcery.com>
21823             Jakub Jelinek  <jakub@redhat.com>
21824
21825         PR middle-end/64412
21826         * lto-streamer.h (lto_stream_offload_p): New declaration.
21827         * lto-streamer.c (lto_stream_offload_p): New variable.
21828         * cgraphunit.c (ipa_passes): Set lto_stream_offload_p
21829         at the same time as section_name_prefix.
21830         * lto-streamer-out.c (hash_tree): Don't hash TREE_TARGET_OPTION
21831         if lto_stream_offload_p.
21832         * tree-streamer-out.c (streamer_pack_tree_bitfields): Don't
21833         stream TREE_TARGET_OPTION if lto_stream_offload_p.
21834         (write_ts_function_decl_tree_pointers): Don't
21835         stream DECL_FUNCTION_SPECIFIC_TARGET if lto_stream_offload_p.
21836         * tree-streamer-in.c (unpack_value_fields): Don't stream
21837         TREE_TARGET_OPTION in if ACCEL_COMPILER.
21838         (lto_input_ts_function_decl_tree_pointers): Don't stream
21839         DECL_FUNCTION_SPECIFIC_TARGET in if ACCEL_COMPILER.
21840         * lto-opts.c (lto_write_options): Use lto_stream_offload_p
21841         instead of section_name_prefix string comparisons.
21842
21843 2015-01-09  Jakub Jelinek  <jakub@redhat.com>
21844
21845         PR rtl-optimization/64536
21846         * cfgrtl.c (rtl_tidy_fallthru_edge): Handle removal of degenerate
21847         tablejumps.
21848
21849 2015-01-09  Michael Collison  <michael.collison@linaro.org>
21850
21851         PR tree-optimization/64322
21852         * tree-vrp.c (extract_range_from_binary_expr_1): Attempt to derive
21853         range for RSHIFT_EXPR even if vr0 range is not VR_RANGE or is symbolic.
21854
21855 2015-01-09  Tom de Vries  <tom@codesourcery.com>
21856
21857         PR rtl-optimization/64539
21858         * regcprop.c (kill_clobbered_values): Factor out of ...
21859         (copyprop_hardreg_forward_1): ... here.  Use kill_clobbered_values
21860         instead of note_stores with kill_clobbered_value.
21861
21862 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
21863
21864          * ginclude/unwind-arm-common.h: Revert previous commit.
21865
21866 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
21867
21868         * config.gcc (arm*-*-freebsd*): New configuration.
21869         * config/arm/freebsd.h: New file.
21870         * config.host: Add extra components for arm*-*-freebsd*.
21871         * config/arm/arm.h: Introduce MAX_SYNC_LIBFUNC_SIZE.
21872         * config/arm/arm.c (arm_init_libfuncs): Use MAX_SYNC_LIBFUNC_SIZE.
21873
21874 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
21875
21876         * config/rs6000/rtems.h (CPP_OS_RTEMS_SPEC): Define __PPC_CPU_E6500__
21877         for -mcpu=e6500.
21878         * config/rs6000/t-rtems: Add e6500 multilibs.
21879
21880 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
21881
21882         * config/rs6000/t-rtems: Add -mno-spe to soft-float multilib for
21883         MPC8540.
21884
21885 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
21886
21887         * config/rs6000/t-rtems: Use MULTILIB_REQUIRED instead of
21888         MULTILIB_EXCEPTIONS.
21889
21890 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
21891
21892         * config/arm/t-rtems: Use MULTILIB_REQUIRED instead of
21893         MULTILIB_EXCEPTIONS.
21894
21895 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
21896
21897         * config/arm/t-rtems-eabi: Rename to...
21898         * config/arm/t-rtems: ...this.
21899         * config/arm/rtems-eabi.h: Rename to...
21900         * config/arm/rtems.h: ...this.
21901         * config.gcc (arm*-*-rtems*): Reflect changes above.
21902
21903 2015-01-09  Richard Biener  <rguenther@suse.de>
21904
21905         PR tree-optimization/64410
21906         * tree-ssa.c (non_rewritable_lvalue_p): Allow REALPART/IMAGPART_EXPR
21907         on the LHS.
21908         (execute_update_addresses_taken): Deal with that.
21909         * tree-ssa-forwprop.c (pass_forwprop::execute): Use component-wise
21910         loads/stores for complex variables.
21911
21912 2015-01-09  Martin Liska  <mliska@suse.cz>
21913
21914         * ipa-icf-gimple.c (func_checker::compare_ssa_name): Enhance SSA
21915         name comparison.
21916         (func_checker::compare_memory_operand): New function.
21917         (func_checker::compare_operand): Split case to newly
21918         added functions.
21919         (func_checker::compare_cst_or_decl): New function.
21920         (func_checker::compare_gimple_call): Identify
21921         memory operands.
21922         (func_checker::compare_gimple_assign): Likewise.
21923         * ipa-icf-gimple.h: New function.
21924
21925 2015-01-09  Martin Liska  <mliska@suse.cz>
21926
21927         PR ipa/64503
21928         * sreal.c (sreal::dump): Change unsigned format to signed for
21929         m_exp value.
21930         (sreal::to_double): Replace exp2 with scalbln.
21931
21932 2015-01-09  Martin Liska  <mliska@suse.cz>
21933
21934         * cgraphunit.c (cgraph_node::create_wrapper): Fix level of indentation.
21935         * ipa-icf.c (sem_function::equals_private): Add support for target and
21936         (sem_item_optimizer::merge_classes): Remove redundant function
21937         optimization flags comparison.
21938         * tree.h (target_opts_for_fn): New function.
21939
21940 2015-01-09  Tom de Vries  <tom@codesourcery.com>
21941
21942         * omp-low.c (expand_omp_for_static_chunk): Fix assert.
21943
21944 2015-01-09  Kito Cheng  <kito@0xlab.org>
21945
21946         PR rtl-optimization/64348
21947         * lra-constraints.c (split_reg): Fix caller-save store/restore
21948         instruction generation.
21949
21950 2015-01-08  John David Anglin  <danglin@gcc.gnu.org>
21951
21952         PR gcov-profile/61790
21953         * gcov-tool.c (do_rewrite): Use strtoll instead of atoll if host has
21954         long long.  Fallback to int64_t if host doesn't have long long and
21955         use strtol if int64_t is long.  Otherwise, use sscanf for conversion.
21956
21957 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
21958
21959         PR tree-optimization/63989
21960         * params.def (PARAM_MAX_TRACKED_STRLENS): Increment default
21961         from 1000 to 10000.
21962         * tree-ssa-strlen.c (get_strinfo): Moved earlier.
21963         (get_stridx): If we don't have a record for certain SSA_NAME,
21964         but it is POINTER_PLUS_EXPR of some SSA_NAME we do with
21965         constant offset, call get_stridx_plus_constant.
21966         (get_stridx_plus_constant): New function.
21967         (zero_length_string): Don't use get_stridx here.
21968
21969         PR target/55023
21970         PR middle-end/64388
21971         * dse.c (struct insn_info): Mention frame_read set also
21972         before reload for tail calls on some targets.
21973         (scan_insn): Revert 2014-12-22 change.  Set frame_read
21974         also before reload for tail calls if
21975         HARD_FRAME_POINTER_IS_ARG_POINTER.  Call add_wild_read
21976         instead of add_non_frame_wild_read for non-const/memset
21977         tail calls after reload.
21978
21979 2015-01-08  Jason Merrill  <jason@redhat.com>
21980
21981         * ubsan.c (do_ubsan_in_current_function): New.
21982         (pass_ubsan::gate): Use it.
21983         * ubsan.h: Declare it.
21984         * convert.c (convert_to_integer): Use it.
21985
21986 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
21987
21988         PR target/64338
21989         * config/i386/i386.c (ix86_expand_int_movcc): Don't reverse
21990         compare_code when it is unconditionally overwritten afterwards.
21991         Use ix86_reverse_condition instead of reverse_condition.  Don't
21992         change code if *reverse_condition* returned UNKNOWN and don't
21993         swap ct/cf and negate diff in that case.
21994
21995 2015-01-08  Mike Stump  <mikestump@comcast.net>
21996
21997         * tsan.c (pass_tsan::gate): Add no_sanitize_thread support.
21998         (pass_tsan_O0::gate): Likewise.
21999         * extend.texi (Function Attributes): Add no_sanitize_thread
22000         documentation.
22001
22002 2015-01-08  Thomas Schwinge  <thomas@codesourcery.com>
22003
22004         * builtins.def (DEF_GOMP_BUILTIN): Also consider flag_offload_abi
22005         for registering builtins.
22006         * config/i386/intelmic-mkoffload.c (prepare_target_image): Don't
22007         add -fopenmp to the argv_obstack used when invoking
22008         compile_for_target.
22009
22010         * config/i386/intelmic-mkoffload.c (compile_for_target): Always
22011         add "-m32" or "-m64" to argv_obstack.
22012         (generate_host_descr_file): Likewise, when invoking host_compiler.
22013         (main): Always add "-m elf_i386" or "-m elf_x86_64" when invoking
22014         ld.
22015
22016 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
22017
22018         * config/sh/sh-mem.cc: Use constant as second operand when emitting
22019         tstsi_t insns.
22020
22021 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
22022
22023         PR target/55212
22024         * config/sh/sh.md (*addsi3_compact): Emit reg-reg copy instead of
22025         constant load if constant operand fits into I08.
22026
22027 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
22028
22029         PR sanitizer/64336
22030         * tree.c (build2_stat): Fix up initialization of TREE_READONLY
22031         and TREE_THIS_VOLATILE for MEM_REFs.
22032         (build5_stat): Fix up initialization of TREE_READONLY and
22033         TREE_THIS_VOLATILE for TARGET_MEM_REFs.
22034
22035 2015-01-08  Kaz Kojima  <kkojima@gcc.gnu.org>
22036
22037         PR target/64533
22038         * config/sh/sh.md (*addsi3_compact): Use u constraint instead
22039         of r for the second alternative of the destination operand.
22040
22041 2015-01-07  Segher Boessenkool  <segher@kernel.crashing.org>
22042
22043         PR target/36557
22044         * config/rs6000/rs6000.md (*eqsi3_ext<mode>, *nesi3_ext<mode>): New.
22045
22046 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
22047
22048         * doc/invoke.texi ([-fvtable-verify]): Fix markup on option
22049         keywords.
22050         ([-fivar-visibility], [-fvisibility]): Likewise.
22051
22052 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
22053
22054         * doc/invoke.texi: Fix incorrect uses of @samp markup throughout
22055         the file where @code, @command, etc is more appropriate.
22056
22057 2015-01-06  Sandra Loosemore  <sandra@codesourcery.com>
22058
22059         * doc/invoke.texi (RS/6000 and PowerPC Options): Tidy formatting
22060         of -mrecip= documentation.
22061
22062 2015-01-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
22063
22064         PR target/64505
22065         * config/rs6000/rs6000.c (rs6000_secondary_reload): Return the
22066         correct reload handler if -m32 -mpowerpc64 is used.
22067
22068 2015-01-06  Tom de Vries  <tom@codesourcery.com>
22069
22070         * tree-ssa-tail-merge.c: Fix typo in struct same_succ_def comment.
22071
22072 2015-01-08  Christian Bruel  <christian.bruel@st.com>
22073
22074         PR target/64507
22075         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Check 0 length.
22076
22077 2015-01-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
22078
22079         PR tree-optimization/63259
22080         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Stop checking
22081         if optab exists for 16bit byteswap.
22082
22083 2015-01-06  Jakub Jelinek  <jakub@redhat.com>
22084
22085         * opts.c (common_handle_option): Add support for
22086         -fno-sanitize=all and -f{,no-}sanitize-recover=all.
22087         * doc/invoke.texi: Document -fno-sanitize=all,
22088         -f{,no-}sanitize-recover=all.  Document that
22089         -fsanitize=float-cast-overflow is not enabled
22090         by -fsanitize=undefined.  Fix up documentation
22091         of -f{,no-}sanitize-recover.
22092
22093 2015-01-06  Eric Botcazou  <ebotcazou@adacore.com>
22094
22095         * config.gcc: Add Visium support.
22096         * configure.ac: Likewise.
22097         * configure: Regenerate.
22098         * doc/extend.texi (interrupt attribute): Add Visium.
22099         * doc/invoke.texi: Document Visium options.
22100         * doc/install.texi: Document Visium target.
22101         * doc/md.texi: Document Visium constraints.
22102         * common/config/visium: New directory.
22103         * config/visium: Likewise.
22104
22105 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
22106
22107         * simplify-rtx.c (simplify_binary_operation_1): Handle more cases
22108         for the "(and X (ior (not X) Y) -> (and X Y)" transform.
22109
22110 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
22111
22112         * combine.c (combine_validate_cost): Do not count the cost of a
22113         split I2 twice.  Do not display it twice in the dump, either.
22114
22115 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
22116
22117         Revert parts of r219199.
22118         * doc/invoke.texi ([-Wliteral-suffix]): Restore markup on
22119         <inttypes.h>.
22120         ([-Wtraditional]): Restore markup on <limits.h>.
22121
22122 2015-01-05  Trevor Saunders  <tsaunders@mozilla.com>
22123
22124         PR c++/31397
22125         * doc/invoke.texi: Document -Wsuggest-override.
22126
22127 2015-01-05  Radovan Obradovic  <radovan.obradovic@imgtec.com>
22128
22129         PR rtl-optimization/64287
22130         * toplev.c (HAVE_epilogue, HAVE_prologue): Provide default.
22131         (process_options): Disable flag_ipa_ra if profiling.
22132
22133 2015-01-05  Eric Botcazou  <ebotcazou@adacore.com>
22134
22135         * config/nds32/nds32-peephole2.md: Do not mention define_peephole.
22136
22137 2015-01-05  Max Filippov  <jcmvbkbc@gmail.com>
22138
22139         * config/xtensa/xtensa.c (hwloop_optimize, hwloop_fail,
22140         hwloop_pattern_reg, xtensa_doloop_hooks, xtensa_reorg_loops):
22141         put under #if TARGET_LOOPS guard.
22142
22143 2015-01-05  Uros Bizjak  <ubizjak@gmail.com>
22144
22145         * config/i386/i386.c (output_387_binary_op): Use std::swap.
22146
22147 2015-01-05  Oleg Endo  <olegendo@gcc.gnu.org>
22148
22149         * rtlanal.c (refers_to_regno_p): Change return value from int to bool.
22150         * rtl.h (refers_to_regno_p): Add overload.
22151         * cse.c: Use it.
22152         * bt-load.c: Likewise.
22153         * combine.c: Likewise.
22154         * df-scan.c: Likewise.
22155         * sched-deps.c: Likewise.
22156         * config/s390/s390.c: Likewise.
22157         * config/m32r/m32r.c: Likewise.
22158         * config/rs6000/spe.md: Likewise.
22159         * config/rs6000/rs6000.c: Likewise.
22160         * config/pa/pa.c: Likewise.
22161         * config/stormy16/stormy16.c: Likewise.
22162         * config/cris/cris.c: Likewise.
22163         * config/arc/arc.md: Likewise.
22164         * config/arc/arc.c: Likewise.
22165         * config/sh/sh.md: Likewise.
22166         * config/sh/sh.c: Likewise.
22167         * config/frv/frv.c: Likewise.
22168
22169 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
22170
22171         PR sanitizer/64265
22172         * gimplify.c (gimplify_function_tree): Add TSAN_FUNC_EXIT internal
22173         call as cleanup of the whole body.
22174         * internal-fn.def (TSAN_FUNC_EXIT): New internal call.
22175         * tsan.c (replace_func_exit): New function.
22176         (instrument_func_exit): Moved earlier.
22177         (instrument_memory_accesses): Adjust TSAN_FUNC_EXIT internal calls.
22178         Call instrument_func_exit if no TSAN_FUNC_EXIT internal calls have
22179         been found.
22180         (tsan_pass): Don't call instrument_func_exit.
22181         * internal-fn.c (expand_TSAN_FUNC_EXIT): New function.
22182         * tree-inline.c (copy_bb): Drop TSAN_FUNC_EXIT internal calls during
22183         inlining.
22184
22185         PR sanitizer/64344
22186         * ubsan.h (ubsan_instrument_float_cast): Add ARG argument.
22187         * ubsan.c (ubsan_instrument_float_cast): Add ARG argument, pass
22188         it to libubsan handler instead of EXPR.  Fold comparisons earlier,
22189         if the result is integer_zerop, return NULL_TREE.
22190         * convert.c (convert_to_integer): Pass expr as ARG.
22191
22192         PR tree-optimization/64465
22193         * tree-inline.c (redirect_all_calls): During inlining
22194         clean up EH stmts and EH edges if redirect_call_stmt_to_callee
22195         changed the stmt to a non-throwing call.
22196
22197 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
22198
22199         * doc/invoke.texi: Fix incorrect uses of @code, @option, @samp,
22200         etc markup throughout the file.
22201
22202 2015-01-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
22203
22204         Enable experimental TSAN support for Ada.
22205         * tsan.c (instrument_expr): Handle VIEW_CONVERT_EXPR.
22206
22207 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
22208
22209         PR tree-optimization/64494
22210         * tree-ssa-loop-im.c (move_computations_dom_walker::before_dom): Also
22211         clear SSA_NAME_ANTI_RANGE_P flag.
22212
22213 2015-01-05  Marek Polacek  <polacek@redhat.com>
22214
22215         * doc/extend.texi (Arrays of Length Zero): Add missing comma.
22216
22217 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
22218
22219         Update copyright years.
22220
22221         * gcc.c (process_command): Update copyright notice dates.
22222         * gcov-dump.c: Ditto.
22223         * gcov.c: Ditto.
22224         * doc/cpp.texi: Bump @copying's copyright year.
22225         * doc/cppinternals.texi: Ditto.
22226         * doc/gcc.texi: Ditto.
22227         * doc/gccint.texi: Ditto.
22228         * doc/gcov.texi: Ditto.
22229         * doc/install.texi: Ditto.
22230         * doc/invoke.texi: Ditto.
22231
22232         * auto-profile.c, auto-profile.h: Fix up Copyright line.
22233
22234 2015-01-04  Sandra Loosemore  <sandra@codesourcery.com>
22235
22236         * doc/invoke.texi ([-fsized-deallocation]): Copy-edit to fix
22237         verb tense, etc.
22238         ([-fvtable-verify], [-fvtv-debug]): Likewise.
22239         ([-Wabi]): Likewise.
22240         ([-fmessage-length]): Likewise.
22241         ([-Wsuggest-final-types], [-Wsuggest-final-methods]): Likewise.
22242         ([-Wno-discarded-qualifiers]): Likewise.
22243         ([-Wnodiscarded-array-qualifiers]): Likewise.
22244         ([-Wno-virtual-move-assign]): Likewise.
22245         ([-fsanitize=address], [-fsanitize=thread]): Likewise.
22246         ([-fsanitize=leak], [-fsanitize=undefined]): Likewise.
22247         ([-fsanitize=unreachable], [-fsanitize-recover]): Likewise.
22248         ([-fsanitize-undefined-trap-on-error]): Likewise.
22249         ([-floop-interchange]): Likewise.
22250         ([-ftree-coalesce-inlined-vars]): Likewise.
22251         ([-fvect-cost-model]): Likewise.
22252         ([-flto]): Likewise.
22253         ([--param]): Likewise.
22254         (Spec Files): Likewise.
22255         ([-mstrict-align]): Likewise.
22256         ([-mfix-cortex-a53-835769]): Likewise.
22257         ([-march], [-mtune]): Likewise.
22258         ([-mpic-register]): Likewise.
22259         ([-munaligned-access]): Likewise.
22260         ([-msp8]): Likewise.
22261         (EIND and Devices with more than 128 Ki Bytes of Flash): Likewise.
22262         (AVR Built-in Macros): Likewise.
22263         ([-mpreferred-stack-boundary]): Likewise.
22264         ([-mtune-crtl]): Likewise.
22265         ([-mashf]): Likewise.
22266         ([-mmcu=]): Likewise.
22267         ([-minrt]): Likewise.
22268         ([-maltivec], [-maltivec=be], [-maltivec=le]): Likewise.
22269         ([-mupper-regs]): Likewise.
22270         ([-matomic-model]): Likewise.
22271         ([-mdiv]): Likewise.
22272         ([-mzdcbranch]): Likewise.
22273         ([-mdisable-callt]): Likewise.
22274         ([-msoft-float]): Likewise.
22275         ([-m8byte-align]): Likewise.
22276         ([-fstack-reuse]): Likewise.
22277
22278 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
22279
22280         * doc/invoke.texi ([-fprofile-generate], [-fprofile-use]):
22281         Fix markup, light copy-editing.
22282         ([-fauto-profile]): Rewrite to fix formatting and content
22283         problems.
22284
22285 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
22286
22287         * doc/invoke.texi ([-fisolate-erroneous-paths-dereference]):
22288         Copy-edit description.
22289         ([-fisolate-erroneous-paths-attribute]): Likewise.
22290         * common.opt (fisolate-erroneous-paths-dereference):
22291         Copy-edit description.
22292         (fisolate-erroneous-paths-attribute): Likewise.
22293
22294 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
22295
22296         * doc/invoke.texi ([-fsemantic-interposition]): Fix typos and
22297         tidy grammar.
22298
22299 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
22300
22301         * doc/invoke.texi ([-fplan9-extensions]): Add/fix @opindex.
22302         ([-fvtv-debug]): Likewise.
22303         ([-Wc++-compat]): Likewise.
22304         ([-Wc++11-compat]): Likewise.
22305         ([-Wc++14-compat]): Likewise.
22306         ([-Wno-sized-deallocation]): Likewise.
22307         ([-femit-class-debug-always]): Likewise.
22308         ([-femit-struct-debug-detailed]): Likewise.
22309         ([-fno-keep-inline-dllexport]): Likewise.
22310         ([-fira-algorithm]): Likewise.
22311         ([-fira-region]): Likewise.
22312         ([-flra-remat]): Likewise.
22313         ([-fipa-ra]): Likewise.
22314         ([-fhoist-adjacent-loads]): Likewise.
22315         ([-fisolate-erroneous-paths-dereference]): Likewise.
22316         ([-fisolate-erroneous-paths-attribute]): Likewise.
22317         ([-ftree-switch-conversion]): Likewise.
22318         ([-ftree-tail-merge]): Likewise.
22319         ([-ftree-loop-if-convert]): Likewise.
22320         ([-ftree-loop-if-convert-stores]): Likewise.
22321         ([-ftree-loop-distribution]): Likewise.
22322         ([-ftree-loop-distribute-patterns]): Likewise.
22323         ([-flto-compression-level]): Likewise.
22324         ([-flto-report]): Likewise.
22325         ([-flto-report-wpa]): Likewise.
22326         ([-fuse-linker-plugin]): Likewise.
22327         ([-mfix-cortex-a53-835769]): Likewise.
22328         ([-mno-fix-cortex-a53-835769]): Likewise.
22329         ([-mmmx]...[-mno-3dnow]): Remove the -mno- forms from the
22330         explicit listing; add a note to the discussion indicating they
22331         exist.  Reorder table to group similar options.  Add missing
22332         @opindex entries.  Add @need commands throughout the table to
22333         allow it to be split across multiple pages.
22334         ([-m8bit-idiv]): Fix @opindex.
22335         ([-mavx256-split-unaligned-load]): Likewise.
22336         ([-mavx256-split-unaligned-store]): Likewise.
22337         ([-mstack-protector-guard]): Likewise.
22338         ([-mcpu=]): Likewise.
22339         ([-mcpu]): Likewise.
22340         ([-mpointer-size=]): Likewise.
22341
22342 2015-01-03  John David Anglin  <danglin@gcc.gnu.org>
22343
22344         * config/pa/pa.md (decrement_and_branch_until_zero): Use `Q' constraint
22345         instead of `m' constraint.  Likewise for unnamed movb comparison
22346         patterns using reg_before_reload_operand predicate.
22347         * config/pa/predicates.md (reg_before_reload_operand): Tighten
22348         predicate to reject register index and LO_SUM DLT memory forms
22349         after reload.
22350
22351 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
22352
22353         * doc/invoke.texi (Option Summary): Fix spelling of
22354         -fdevirtualize-at-ltrans.
22355         ([-fdevirtualize]): Fix markup.
22356         ([-fdevirtualize-speculatively]): Fix typo.
22357         ([-fdevirtualize-at-ltrans]): Likewise.  Make description less
22358         implementor-speaky.
22359         * common.opt (fdevirtualize-at-ltrans): Likewise.
22360         * ipa-devirt.c: Fix typos in comments throughout the file.
22361         (ipa_devirt): Fix typos in format strings for dump output.
22362
22363 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
22364
22365         * doc/invoke.texi ([-fopt-info]): Fix markup, consolidate
22366         discussion of defaults, light copy-editing.
22367
22368 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
22369
22370         * tsan.c (instrument_expr): corrected previous checkin.
22371
22372 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
22373
22374         Instrument bit field and unaligned accesses for TSAN.
22375         * sanitizer.def (BUILT_IN_TSAN_READ_RANGE): New built-in function.
22376         (BUILT_IN_TSAN_WRITE_RANGE): New built-in function.
22377         * tsan.c (instrument_expr): Handle COMPONENT_REF and BIT_FIELD_REF.
22378         Use BUILT_IN_TSAN_READ_RANGE and BUILT_IN_TSAN_WRITE_RANGE for
22379         unaligned memory regions.
22380
22381 2015-01-01  Anthony Green  <green@moxielogic.com>
22382
22383         * config/moxie/predicates.md (moxie_general_movsrc_operand):
22384         Restrict move source register offsets to 16 bits.
22385 \f
22386 Copyright (C) 2015 Free Software Foundation, Inc.
22387
22388 Copying and distribution of this file, with or without modification,
22389 are permitted in any medium without royalty provided the copyright
22390 notice and this notice are preserved.