invoke.texi (Language Independent Options): Rename node to Diagnostic Message Formatt...
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2015-07-22  Jonathan Wakely  <jwakely@redhat.com>
2
3         * doc/invoke.texi (Language Independent Options): Rename node to
4         Diagnostic Message Formatting Options.
5
6 2015-07-21  Vladimir Makarov  <vmakarov@redhat.com>
7
8         PR ipa/66424.
9         * lra-remat.c (operand_to_remat): Prevent using insns with input
10         subregs processed separately by IRA.
11
12 2015-07-21  Andrew MacLeod  <amacleod@redhat.com>
13
14         * ssa-iterators.h (has_zero_uses, has_single_use): Implement as
15         straight loops.
16         (single_imm_use): Check for iterator node.
17         (num_imm_uses): Likewise.
18         * tree-ssa-operands.c (has_zero_uses_1): Delete.
19         (single_imm_use_1): Check for iterator node.
20
21 2015-07-21  Mike Frysinger  <vapier@gentoo.org>
22             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
23
24         * configure.ac: Add check for new options in isl-0.15.
25         * config.in, configure: Rebuilt.
26         * graphite-blocking.c: Include <isl/constraint.h>
27         * graphite-interchange.c,  graphite-poly.c: Likewise.
28         * graphhite-scop-detection.c, graphite-sese-to-poly.c: Likewise.
29         * graphite.c: Likewise.
30         * graphite-isl-ast-to-gimple.c: Include <isl/constraint.h> and
31         <isl/union_set.h>.
32         * graphite-dependences.c: Include <isl/constraint.h>.
33         (max_number_of_out_dimensions): Returns isl_stat.
34         (extend_schedule_1): Likewise
35         (extend_schedule): Corresponding changes.
36         * graphite-optimize-isl.c: Include <isl/constraint.h> and
37         <isl/union_set.h>.
38         (getSingleMap): Change return type of isl_stat.
39         (optimize_isl): Conditionally use
40         isl_options_set_schedule_serialize_sccs.
41         * graphite-poly.h (isl_stat, isl_stat_ok): Define fallbacks
42         if not HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS.
43
44 2015-07-21  Georg-Johann Lay  <avr@gjlay.de>
45
46         PR target/66956
47         * config/avr/avr-dimode.md (<extend_u>mulsidi3_insn)
48         (<extend_u>mulsidi3): Don't use if !AVR_HAVE_MUL.
49
50 2015-07-21  Richard Biener  <rguenther@suse.de>
51
52         PR tree-optimization/66948
53         * genmatch.c (capture_info::walk_match): Also recurse to
54         captures.  Properly compute expr state from captures of
55         captures.
56         * match.pd: Add single-use guards to
57         (X & C2) >> C1 into (X >> C1) & (C2 >> C1) transform.
58
59 2015-07-21  Nathan Sidwell  <nathan@codesourcery.com>
60
61         * config/nvptx/mkoffload.c (process): Add static destructor call.
62
63 2015-07-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
64
65         PR middle-end/66915
66         * match.pd (A - B -> A + (-B)): Don't allow folding
67         when type if a fixed-point type.
68
69 2015-07-20  DJ Delorie  <dj@redhat.com>
70
71         * config/rl78/rl78-real.md (andqi3_real): Expand operands for clr1.
72         (iorqi3_real): Likewise for set1.
73
74 2015-07-20  Uros Bizjak  <ubizjak@gmail.com>
75
76         * config/i386/i386.c (ix86_md_asm_adjust): Handle DImode dest_mode
77         for !TARGET_64BIT.
78
79 2015-07-20  Aditya Kumar  <hiraditya@msn.com>
80
81         * graphite-isl-ast-to-gimple.c:
82         Refactor so that each function can access 'region'. This will help
83         maintain a parameter rename_map within a region.
84
85 2015-07-20  Segher Boessenkool  <segher@kernel.crashing.org>
86
87         * config/rs6000/rs6000.md (*lt0_disi): New.
88
89 2015-07-20  Segher Boessenkool  <segher@kernel.crashing.org>
90
91         PR target/66217
92         * config/rs6000/constraints.md ("S", "T", "t"): Delete.  Update
93         "available letters" comment.
94         * config/rs6000/predicates.md (mask_operand, mask_operand_wrap,
95         mask64_operand, mask64_2_operand, any_mask_operand, and64_2_operand,
96         and_2rld_operand):  Delete.
97         (and_operand): Adjust.
98         (rotate_mask_operator): New.
99         * config/rs6000/rs6000-protos.h (build_mask64_2_operands,
100         includes_lshift_p, includes_rshift_p, includes_rldic_lshift_p,
101         includes_rldicr_lshift_p, insvdi_rshift_rlwimi_p, extract_MB,
102         extract_ME): Delete.
103         (rs6000_is_valid_mask, rs6000_is_valid_and_mask,
104         rs6000_is_valid_shift_mask, rs6000_is_valid_insert_mask,
105         rs6000_insn_for_and_mask, rs6000_insn_for_shift_mask,
106         rs6000_insn_for_insert_mask, rs6000_is_valid_2insn_and,
107         rs6000_emit_2insn_and): New.
108         * config/rs6000/rs6000.c (num_insns_constant): Adjust.
109         (build_mask64_2_operands, includes_lshift_p, includes_rshift_p,
110         includes_rldic_lshift_p, includes_rldicr_lshift_p,
111         insvdi_rshift_rlwimi_p, extract_MB, extract_ME): Delete.
112         (rs6000_is_valid_mask, rs6000_is_valid_and_mask,
113         rs6000_insn_for_and_mask, rs6000_is_valid_shift_mask,
114         s6000_insn_for_shift_mask, rs6000_is_valid_insert_mask,
115         rs6000_insn_for_insert_mask, rs6000_is_valid_2insn_and,
116         rs6000_emit_2insn_and): New.
117         (print_operand) <'b', 'B', 'm', 'M', 's', 'S', 'W'>: Delete.
118         (rs6000_rtx_costs) <CONST_INT>: Delete mask_operand and mask64_operand
119         handling.
120         <NOT>: Don't fall through to next case.
121         <AND>: Handle the various rotate-and-mask cases directly.
122         <IOR>: Always cost as one insn.
123         * config/rs6000/rs6000.md (splitter for bswap:SI): Adjust.
124         (and<mode>3): Adjust expander for the new patterns.
125         (and<mode>3_imm, and<mode>3_imm_dot, and<mode>3_imm_dot2,
126         and<mode>3_imm_mask_dot, and<mode>3_imm_mask_dot2): Adjust condition.
127         (*and<mode>3_imm_dot_shifted): New.
128         (*and<mode>3_mask): Delete, rewrite as ...
129         (and<mode>3_mask): ... New.
130         (*and<mode>3_mask_dot, *and<mode>3_mask_dot): Rewrite.
131         (andsi3_internal0_nomc): Delete.
132         (*andsi3_internal6): Delete.
133         (*and<mode>3_2insn): New.
134         (insv, insvsi_internal, *insvsi_internal1, *insvsi_internal2,
135         *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
136         *insvsi_internal6, insvdi_internal, *insvdi_internal2,
137         *insvdi_internal3): Delete.
138         (*rotl<mode>3_mask, *rotl<mode>3_mask_dot, *rotl<mode>3_mask_dot2,
139         *rotl<mode>3_insert, *rotl<mode>3_insert_2, *rotl<mode>3_insert_3,
140         *rotl<mode>3_insert_4, two splitters for multi-precision shifts,
141         *ior<mode>_mask): New.
142         (extzv, extzvdi_internal, *extzvdi_internal1, *extzvdi_internal2,
143         *rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
144         *ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
145         *lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
146         Delete.
147         (ashr<mode>3): Delete expander.
148         (*ashr<mode>3): Rename to ...
149         (ashr<mode>3): ... This.
150         (ashrdi3_no_power, *ashrdisi3_noppc64be): Delete.
151         (*rotldi3_internal4, *rotldi3_internal5 and split,
152         *rotldi3_internal6 and split, *ashldi3_internal4, ashldi3_internal5
153         and split, *ashldi3_internal6 and split, *ashldi3_internal7,
154         ashldi3_internal8 and split, *ashldi3_internal9 and split): Delete.
155         (*anddi3_2rld, *anddi3_2rld_dot, *anddi3_2rld_dot2): Delete.
156         (splitter for loading a mask): Adjust.
157         * doc/md.texi (Machine Constraints): Remove q, S, T, t constraints.
158
159 2015-07-20  Marek Polacek  <polacek@redhat.com>
160
161         * genemit.c (print_code, gen_exp, gen_insn, gen_expand, gen_split,
162         output_add_clobbers, output_added_clobbers_hard_reg_p,
163         gen_rtx_scratch): Remove declarations.
164
165 2015-07-20  Marek Polacek  <polacek@redhat.com>
166
167         PR c++/55095
168         * doc/invoke.texi: Document -Wshift-overflow and -Wshift-overflow=.
169
170 2015-07-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
171
172         * simplify-rtx.c (simplify_unary_operation_1, NEG case):
173         (neg (x ? (neg y) : y)) -> !x ? (neg y) : y.
174
175 2015-07-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
176
177         * combine.c (combine_simplify_rtx): Move simplification step
178         before various transformations/substitutions.
179
180 2015-07-20  Mikhail Maltsev  <maltsevm@gmail.com>
181
182         * wide-int.h (struct binary_traits): Fix partial specialization syntax.
183         (struct int_traits): Likewise.
184
185 2015-07-18  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
186
187         * vmsdbgout.c (vmsdbgout_decl): Change name of prototyped
188         function to vmsdbgout_function_decl.
189
190 2015-07-18  Uros Bizjak  <ubizjak@gmail.com>
191
192         PR target/66922
193         * config/i386/i386.c (ix86_expand_pextr): Reject extractions
194         from misaligned positions.
195         (ix86_expand_pinsr): Reject insertions to misaligned positions.
196
197 2015-07-18  Sebastian Pop  <s.pop@samsung.com>
198
199         PR middle-end/46851
200         PR middle-end/60340
201         * Makefile.in: Removed omega.o.
202         * common.opt: Document flag fcheck-data-deps as deprecated.
203         * doc/invoke.texi: Remove documentation for fcheck-data-deps and
204         its associated params: omega-max-vars, omega-max-geqs,
205         omega-max-eqs, omega-max-wild-cards, omega-hash-table-size,
206         omega-max-keys, omega-eliminate-redundant-constraints.
207         * doc/loop.texi: Remove all the section on Omega.
208         * graphite-blocking.c: Include missing params.h: it used to be
209         included through tree-data-ref.h and omega.h.
210         * graphite-isl-ast-to-gimple.c: Same.
211         * graphite-optimize-isl.c: Same.
212         * graphite-sese-to-poly.c: Same.
213         * graphite.c: Same.
214         * omega.c: Remove.
215         * omega.h: Remove.
216         * params.def: Removed PARAM_OMEGA_MAX_VARS, PARAM_OMEGA_MAX_GEQS,
217         PARAM_OMEGA_MAX_EQS, PARAM_OMEGA_MAX_WILD_CARDS,
218         PARAM_OMEGA_HASH_TABLE_SIZE, PARAM_OMEGA_MAX_KEYS, and
219         PARAM_OMEGA_ELIMINATE_REDUNDANT_CONSTRAINTS.
220         * passes.def: Remove pass_check_data_deps.
221         * tree-data-ref.c (dump_affine_function): Declare DEBUG_FUNCTION.
222         (dump_conflict_function): Same.
223         (dump_subscript): Same.
224         (print_direction_vector): Same.
225         (print_dir_vectors): Same.
226         (print_lambda_vector): Same.
227         (print_dist_vectors): Same.
228         (dump_data_dependence_relation): Same.
229         (dump_data_dependence_relations): Same.
230         (dump_dist_dir_vectors): Same.
231         (dump_ddrs): Same.
232         (init_omega_eq_with_af): Removed.
233         (omega_extract_distance_vectors): Removed.
234         (omega_setup_subscript): Removed.
235         (init_omega_for_ddr_1): Removed.
236         (init_omega_for_ddr): Removed.
237         (ddr_consistent_p): Removed.
238         (compute_affine_dependence): Do not use omega to check data
239         dependences.
240         (compute_data_dependences_for_bb): Removed.
241         (analyze_all_data_dependences): Removed.
242         (tree_check_data_deps): Removed.
243         * tree-data-ref.h: Do not include omega.h.
244         (compute_data_dependences_for_bb): Removed.
245         (tree_check_data_deps): Removed.
246         * tree-ssa-loop.c (pass_check_data_deps): Removed.
247         (make_pass_check_data_deps): Removed.
248         * tree-ssa-phiopt.c: Include params.h.
249         * tree-vect-data-refs.c: Same.
250         * tree-vect-slp.c: Same.
251
252 2015-07-18  Uros Bizjak  <ubizjak@gmail.com>
253
254         * config/i386/i386.md (pushsf splitter): Pass curr_insn to
255         find_constant_src.  FAIL if find_constant_src returns NULL_RTX.
256         (mem->fpreg splitters): Ditto.
257         (general_operand->nonimmediate_operand splitter): Use explicit modes.
258         Disable DFmode for TARGET_64BIT.
259
260 2015-07-17  H.J. Lu  <hongjiu.lu@intel.com>
261
262         PR target/66906
263         * config/i386/i386.c (ix86_expand_prologue): Replicate static
264         chain on the stack.
265
266 2015-07-17  Nathan Sidwell  <nathan@codesourcery.com>
267
268         * config/nvptx/mkoffload.c (process): Constify host data.
269         * config/i386/intelmic-mkoffload.c (generate_target_descr_file):
270         Constify host data.
271         (generate_host_descr_file): Likewise.
272
273 2015-07-17  Aditya Kumar  <aditya.k7@samsung.com>
274             Sebastian Pop  <s.pop@samsung.com>
275
276         PR middle-end/61929
277         * graphite-dependences.c (add_pdr_constraints): Renamed
278         pdr->extent to pdr->subscript_sizes.
279         * graphite-interchange.c (build_linearized_memory_access): Add
280         back all gcc_assert's that the "isl_int to isl_val conversion"
281         patch has removed.  Refactored.
282         (pdr_stride_in_loop): Renamed pdr->extent to pdr->subscript_sizes.
283         * graphite-poly.c (new_poly_dr): Same.
284         (free_poly_dr): Same.
285         * graphite-poly.h (struct poly_dr): Same.
286         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Ignore
287         all data references other than ARRAY_REF, MEM_REF, and COMPONENT_REF.
288         * graphite-scop-detection.h: Fix space.
289         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Add
290         back all gcc_assert's removed by a previous patch.
291         (wrap): Remove the_isl_ctx global variable that the same patch has
292         added.
293         (build_loop_iteration_domains): Same.
294         (add_param_constraints): Same.
295         (pdr_add_data_dimensions): Same.  Refactored.
296         (build_poly_dr): Renamed extent to subscript_sizes.
297
298 2015-07-17  Marek Polacek  <polacek@redhat.com>
299
300         * fold-const.c (fold_binary_loc): Move A - (A & B) into ~B & A ...
301         * match.pd: ... here.
302
303 2015-07-17  Nathan Sidwell  <nathan@codesourcery.com>
304
305         * config/nvptx/mkoffload.c (process): Constify target data.
306         * config/i386/intelmic-mkoffload.c (generate_target_descr_file):
307         Constify target data.
308         (generate_target_offloadend_file): Likewise.
309
310 2015-07-17  Yuri Rumyantsev  <ysrumyan@gmail.com>
311
312         * tree-vect-loop-manip.c (rename_variables_in_bb): Add argument
313         to allow renaming of PHI arguments on edges incoming from outer
314         loop header, add corresponding check before start PHI iterator.
315         (slpeel_tree_duplicate_loop_to_edge_cfg): Introduce new bool
316         variable DUPLICATE_OUTER_LOOP and set it to true for outer loops
317         with true force_vectorize.  Set-up dominator for outer loop too.
318         Pass DUPLICATE_OUTER_LOOP as argument to rename_variables_in_bb.
319         (slpeel_can_duplicate_loop_p): Allow duplicate of outer loop if it
320         was marked with force_vectorize and has restricted cfg.
321         (slpeel_tree_peel_loop_to_edge): Do not rename exit PHI uses in
322         inner loop.
323         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
324         do peeling for outer loops.
325
326 2015-07-17  Yvan Roux  <yvan.roux@linaro.org>
327             Matthias Klose  <doko@ubuntu.com>
328
329         * configure.ac: Move AC_ARG_WITH checks for native-system-header-dir,
330         build-sysroot, sysroot from the `Miscenalleous configure options' to
331         the `Directories' section and strip trailing `/' from with_sysroot.
332         (gcc_gxx_include_dir): Don't strip a `/' sysroot value.
333         * configure: Regenerated.
334
335 2015-07-17  Uros Bizjak  <ubizjak@gmail.com>
336
337         PR target/66824
338         * config/i386/i386.h (TARGET_HARD_SF_REGS): New define.
339         (TARGET_HARD_DF_REGS): Ditto.
340         (TARGET_HARD_XF_REGS): Ditto.
341         * config/i386/i386.md (*movxf_internal): Add alternatives 9 and 10.
342         Enable alternatives 9 and 10 only for !TARGET_HARD_XF_REG target.
343         (*movdf_internal): Add alternatives 22, 23, 24 and 25. Enable
344         alternatives 22, 23, 24 and 25 only for !TARGET_HARD_DF_REG target.
345         (*movsf_internal): Add alternatives 16 and 17. Enable
346         alternatives 16 and 17 only for !TARGET_HARD_SF_REG target.
347
348 2015-07-17  Uros Bizjak  <ubizjak@gmail.com>
349
350         PR rtl-optimization/66891
351         * calls.c (expand_call): Wrap precompute_register_parameters with
352         NO_DEFER_POP/OK_DEFER_POP to prevent deferred pops.
353
354 2015-07-16  Nathan Sidwell  <nathan@codesourcery.com>
355
356         * config/nvptx/mkoffload.c (process): Constify mapping variables.
357         Define target data struct and initialize it.
358
359 2015-07-16  Vladimir Makarov  <vmakarov@redhat.com>
360
361         PR rtl-optimization/66626
362         * ira.h (emit-rtl.h): Include.
363         (non_spilled_static_chain_regno_p): New.
364         * ira-color.c (setup_profitable_hard_regs): Clear profitable regs
365         unless it is non spilled static chain pseudo.
366         (assign_hard_rego): Spill memory profitable allocno unless it is
367         non spilled static chain pseudo.
368         (allocno_spill_priority_compare): Put non spilled static chain
369         pseudo at the end of sorted array.
370         (improve_allocation): Do nothing if we have static chain and
371         non-local goto.
372         (allocno__priority_compare_func): Put non spilled static chain
373         pseudo at the beginning of sorted array.
374         (move_spill_restore): Ignore non spilled static chain pseudo.
375         * ira-costs.c (find_costs_and_classes): Don't assign class NO_REGS
376         to non spilled static chain pseudo.
377         * lra-assigns.c (pseudo_compare_func): Put non spilled static chain
378         pseudo at the beginning of sorted array.
379         (spill_for): Spill non spilled static chain pseudo last.
380         * lra-constraints.c (lra_constraints): Remove static chain pseudo
381         check for equivalence.
382
383 2015-07-16  Martin Liska  <mliska@suse.cz>
384
385         PR ipa/66896.
386         * ipa-prop.c (update_jump_functions_after_inlining): Create properly
387         dst_ctx if it does not exist.
388
389 2015-07-16  Martin Liska  <mliska@suse.cz>
390
391         * hash-set.h (remove): New function.
392         (iterator): New iteration class for hash_set.
393
394 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
395
396         * genattrtab.c (make_canonical): Add a file_location parameter.
397         Use fatal_at rather than fatal.
398         (get_attr_value): Likewise.  Update call to make_canonical.
399         (fill_attr, make_length_attrs, optimize_attrs, gen_attr)
400         (make_internal_attr): Update calls accordingly.
401
402 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
403
404         * read-md.h (message_with_line, error_with_line): Delete.
405         * read-md.c (message_with_line, error_with_line): Delete.
406         * gensupport.h: Include read-md.h.
407         (md_rtx_info): New structure.
408         (read_md_rtx): Use it.  Return a bool success value.
409         * gensupport.c (read_md_rtx): Likewise.
410         * genattr-common.c (gen_attr): Take an md_rtx_info rather than an rtx.
411         (main): Update after interface changes.
412         * genattr.c (gen_attr): Take an md_rtx_info rather than an rtx.
413         (main): Update after interface changes.
414         * genattrtab.c (insn_code_number): Delete.
415         (optimize_attrs): Add a max_insn_code parameter and use it instead
416         of insn_code_number.
417         (gen_attr): Take an md_rtx_info rather than an rtx and lineno.
418         Use *_at rather than *_with_line functions.
419         (gen_insn): Likewise.
420         (gen_delay): Likewise.
421         (gen_insn_reserv): Likewise.
422         (gen_bypass): Take an md_rtx_info rather than an rtx.
423         (main): Update after interface changes.  Use a local max_insn_code
424         variable instead of insn_code_number.
425         * genautomata.c (gen_cpu_unit): Take an md_rtx_info rather than
426         an rtx.  Use fatal_at rather than fatal.
427         (gen_query_cpu_unit, gen_bypass, gen_excl_set)
428         (gen_presence_absence_set, gen_presence_set, gen_final_presence_set)
429         (gen_absence_set, gen_final_absence_set, gen_automaton)
430         (gen_automata_option, gen_reserv, gen_insn_reserv): Likewise.
431         (main): Update after interface changes.
432         * gencodes.c (gen_insn): Take an md_rtx_info rather than an rtx
433         and code number.
434         (main): Update after interface changes.
435         * genconditions.c (main): Use new read_md_rtx interface.
436         * genconfig.c (gen_insn): Take an md_rtx_info rather than an rtx.
437         (gen_expand, gen_split, gen_peephole, gen_peephole2): Likewise.
438         (main): Update after interface changes.
439         * genemit.c (insn_code_number, insn_index_number): Delete.
440         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
441         Use fatal_at rather than fatal.
442         (gen_expand): Take an md_rtx_info rather than an rtx.  Use fatal_at
443         rather than fatal.
444         (gen_split): Likewise.
445         (main): Update after interface changes.
446         * genextract.c (line_no): Delete.
447         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
448         Update call to walk_rtx.
449         (VEC_safe_set_locstr): Add an md_rtx_info argument.  Use message_at
450         rather than message_with_line.
451         (walk_rtx): Add an md_rtx_info argument.  Update call to
452         VEC_safe_set_locstr.
453         (main): Update after interface changes.
454         * genflags.c (gen_insn): Take an md_rtx_info rather than an rtx
455         and lineno.  Use error_at rather than separate message_with_line
456         calls and have_error assignments.
457         (main): Update after interface changes.
458         * genmddump.c (main): Use new read_md_rtx interface.
459         * genopinit.c (insn): Take an md_rtx_info rather than an rtx.
460         (main): Update after interface changes.
461         * genoutput.c (next_code_number): Delete.
462         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
463         (gen_peephole, gen_expand, gen_split): Likewise.
464         (note_constraint): Likewise.  Use *_at rather than *_with_line
465         functions.
466         (main): Update after interface changes.
467         * genpeep.c (gen_peephole): Take an md_rtx_info rather than an
468         rtx and lineno.
469         (main): Update after interface changes.
470         * genpreds.c (process_define_predicate): Take an md_rtx_info rather
471         than an rtx and lineno.
472         (process_define_constraint): Likewise.
473         (process_define_register_constraint): Likewise.
474         (main): Update after interface changes.
475         * genrecog.c (next_insn_code, pattern_lineno): Delete.
476         (validate_pattern): Replace top-level rtx with an md_rtx_info.
477         Use *_at rather than *_with_line functions.
478         (match_pattern_2): Likewise.
479         (match_pattern_1, match_pattern): Add an md_rtx_info parameter.
480         (get_peephole2_pattern): Take an md_rtx_info rather than an rtvec.
481         Use *_at rather than *_with_line functions.
482         * gentarget-def.c (add_insn): New function.
483         (main): Use it.  Use new read_md_rtx interface.
484
485 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
486
487         * gensupport.h (compute_test_codes): Take a file_location rather
488         than a line number.
489         * gensupport.c (compute_test_codes): Likewise.  Use *_at functions
490         rather than *_with_line functions.
491         (process_define_predicate): Update call to compute_test_codes.
492         * genpreds.c (validate_exp): Take a file_location rather than a
493         line number.  Use *_at functions rather than *_with_line functions.
494         (process_define_predicate): Update call to validate_exp.
495         (constraint_data): Replace lineno field with a file_location.
496         (add_constraint): Take a file_location rather than a line number.
497         Use *_at functions rather than *_with_line functions.  Fix error
498         message for address constraints.  Update after changes to
499         validate_exp, constraint_data and compute_test_codes.
500         (process_define_constraint): Update accordingly.
501         (process_define_register_constraint): Likewise.
502
503 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
504
505         * genoutput.c (data): Use a file_location to record the source
506         position.
507         (nothing): Delete.
508         (idata, idata_end): Remove initialization.
509         (constraint_data): Replace lineno with a file_location.
510         (output_insn_data): Update after changes to data.
511         (gen_insn, gen_peephole, gen_expand, gen_split): Likewise.
512         (scan_operands): Likewise, using *_at rather than *_with_line
513         functions.
514         (process_template): Likewise.
515         (validate_insn_alternatives): Likewise.
516         (validate_insn_operands): Likewise.
517         (validate_optab_operands): Likewise.
518         (init_insn_for_nothing): Initialize idata and idata_end.
519         (note_constraint): Update after changes to constraint_data,
520         using at rather than with_line functions.
521         (mdep_constraint_len): Take a file_location rather than a
522         line number.  Use at rather than with_line functions.
523
524 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
525
526         * read-md.h (fatal_at): Declare.
527         * read-md.c (fatal_at): New function.
528         * genattrtab.c (insn_def, attr_desc, delay_desc): Use a file_location
529         to record the source position.
530         (check_attr_test): Take a file_location instead of a line number.
531         Use fatal_at instead of fatal.
532         (check_attr_value): Update after above changes, using "at"
533         rather than "with_line" reporting functions.
534         (convert_set_attr_alternative): Likewise.
535         (gen_attr): Likewise.
536         (check_defs): Likewise.  Don't assign to read_md_filename.
537         (gen_insn): Update initialization after above changes.
538         (gen_delay): Likewise.
539         (write_insn_cases): Print the filename for a define_peephole.
540         (gen_insn_reserv): Take a line number as argument and update
541         the call to check_attr_test.
542         (main): Pass a line number to gen_insn_reserv.
543
544 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
545
546         * read-md.h (file_location): New structure.
547         (directive_handler_t): Take a file_location rather than a line number.
548         (message_at, error_at): Declare.
549         (read_skip_construct): Delete.
550         * read-md.c (message_with_line_1): Replace with...
551         (message_at_1): ...this new function.
552         (message_at, error_at): New functions.
553         (message_with_line, error_with_line): Update to use message_at_1.
554         (handle_enum): Take a file_location rather than a line number
555         and use error_at for error reporting.
556         (handle_include): Likewise.
557         (read_skip_construct): Likewise.  Make static.
558         (handle_file): Update after above changes.  Pass a file_location
559         rather than a line number to handle_directive.
560         * gensupport.c (queue_elem): Replace separate filename and lineno
561         with a file_location.
562         (queue_pattern): Replace filename and lineno arguments with a
563         file_location.  Update after change to queue_elem.
564         (process_define_predicate): Replace lineno argument with a
565         file_location and use error_at for error reporting.  Update
566         after above changes.
567         (process_rtx): Likewise.
568         (subst_pattern_match): Likewise.
569         (get_alternatives_number): Likewise.
570         (alter_predicate_for_insn): Likewise.
571         (rtx_handle_directive): Likewise.
572         (is_predicable): Update after above changes, using error_at rather
573         than error_with_line.
574         (has_subst_attribute): Likewise.
575         (identify_predicable_attribute): Likewise.
576         (alter_attrs_for_subst_insn): Likewise.
577         (process_one_cond_exec): Likewise.
578         (process_substs_on_one_elem): Likewise.
579         (process_define_subst): Likewise.
580         (check_define_attr_duplicates): Likewise.
581         (read_md_rtx): Update after change to queue_elem.
582
583 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
584
585         * genoutput.c (next_index_number): Delete.
586         (data): Remove index_number.
587         (gen_insn, gen_peephole, gen_expand, gen_split): Update accordingly.
588         (main): Remove manipulation of next_index_number.
589
590 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
591
592         * genattrtab.c (check_attr_value): Remove handling of null attrs.
593         (make_canonical): Likewise.
594
595 2015-07-16  Eric Botcazou  <ebotcazou@adacore.com>
596
597         * config/sparc/sparc.md (save_stack_nonlocal): Use adjust_address
598         instead of adjust_address_nv.
599         (restore_stack_nonlocal): Likewise.
600         (nonlocal_goto): Likewise.
601
602 2015-07-16  Tom de Vries  <tom@codesourcery.com>
603
604         * tree-parloops.c (create_parallel_loop): Handle case that exit phi does
605         not have a corresponding loop header phi.
606
607 2015-07-16  Tom de Vries  <tom@codesourcery.com>
608
609         * tree-parloops.c (create_loads_for_reductions): Handle case that
610         reduction is unused.
611
612 2015-07-16  Richard Biener  <rguenther@suse.de>
613
614         PR tree-optimization/66894
615         * tree-vrp.c (register_edge_assert_for_2): Fix bad assumption
616         about deriving NE_EXPR from truncated values.
617
618 2015-07-16  Martin Liska  <mliska@suse.cz>
619
620         * alloc-pool.h
621         (object_allocator): Add new class.
622         (pool_allocator::initialize): Use the underlying class.
623         (pool_allocator::allocate): Likewise.
624         (pool_allocator::remove): Likewise.
625         (operator new): A new generic allocator.
626         * asan.c (struct asan_mem_ref): Remove unused members.
627         (asan_mem_ref_new): Replace new operator with
628         object_allocator::allocate.
629         (free_mem_ref_resources): Change deallocation.
630         * cfg.c (initialize_original_copy_tables): Replace pool_allocator
631         with object_allocator.
632         * config/sh/sh.c (add_constant): Replace new operator with
633         object_allocator::allocate.
634         (sh_reorg): Change call to a release method.
635         * cselib.c (struct elt_list): Remove unused members.
636         (new_elt_list): Replace new operator with
637         object_allocator::allocate.
638         (new_elt_loc_list): Likewise.
639         (new_cselib_val): Likewise.
640         (unchain_one_elt_list): Change delete operator with remove method.
641         (unchain_one_elt_loc_list): Likewise.
642         (unchain_one_value): Likewise.
643         (cselib_finish): Release newly added static allocators.
644         * cselib.h (struct cselib_val): Remove unused members.
645         (struct elt_loc_list): Likewise.
646         * df-problems.c (df_chain_alloc): Replace pool_allocator with
647         object_allocator.
648         * df-scan.c (struct df_scan_problem_data): Likewise.
649         (df_scan_alloc): Likewise.
650         * df.h (struct dataflow): Likewise.
651         * dse.c (struct read_info_type): Likewise.
652         (struct insn_info_type): Likewise.
653         (struct dse_bb_info_type): Likewise.
654         (struct group_info): Likewise.
655         (struct deferred_change): Likewise.
656         (get_group_info): Likewise.
657         (delete_dead_store_insn): Likewise.
658         (free_read_records): Likewise.
659         (replace_read): Likewise.
660         (check_mem_read_rtx): Likewise.
661         (scan_insn): Likewise.
662         (dse_step1): Likewise.
663         (dse_step7): Likewise.
664         * et-forest.c (struct et_occ): Remove unused members.
665         (et_new_occ): Use allocate instead of new operator.
666         (et_new_tree): Likewise.
667         (et_free_tree): Call release method explicitly.
668         (et_free_tree_force): Likewise.
669         (et_free_pools): Likewise.
670         (et_split): Use remove instead of delete operator.
671         * et-forest.h (struct et_node): Remove unused members.
672         * ipa-cp.c: Change pool_allocator to object_allocator.
673         * ipa-inline-analysis.c: Likewise.
674         * ipa-profile.c: Likewise.
675         * ipa-prop.c: Likewise.
676         * ipa-prop.h: Likewise.
677         * ira-build.c (initiate_cost_vectors): Cast return value.
678         (ira_allocate_cost_vector): Likewise.
679         * ira-color.c (struct update_cost_record): Remove unused members.
680         * lra-int.h (struct lra_live_range): Likewise.
681         (struct lra_copy): Likewise.
682         (struct lra_insn_reg): Likewise.
683         * lra-lives.c (lra_live_ranges_finish): Release new static allocator.
684         * lra.c (new_insn_reg): Replace new operator with allocate method.
685         (free_insn_regs): Same for operator delete.
686         (finish_insn_regs): Release new static allocator.
687         (finish_insn_recog_data): Likewise.
688         (lra_free_copies): Replace delete operator with remove method.
689         (lra_create_copy): Replace operator new with allocate method.
690         (invalidate_insn_data_regno_info): Same for remove method.
691         * regcprop.c (struct queued_debug_insn_change): Remove unused members.
692         (free_debug_insn_changes): Replace delete operator with remove method.
693         (replace_oldest_value_reg): Replace operator new with allocate method.
694         (pass_cprop_hardreg::execute): Release new static variable.
695         * sched-deps.c (sched_deps_init): Change pool_allocator to
696         object_allocator.
697         * sel-sched-ir.c: Likewise.
698         * sel-sched-ir.h: Likewise.
699         * stmt.c (expand_case): Likewise.
700         (expand_sjlj_dispatch_table): Likewise.
701         * tree-sra.c (struct access): Remove unused members.
702         (struct assign_link): Likewise.
703         (sra_deinitialize): Release newly added static pools.
704         (create_access_1):Replace operator new with allocate method.
705         (build_accesses_from_assign): Likewise.
706         (create_artificial_child_access): Likewise.
707         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Change
708         pool_allocator to object_allocator.
709         * tree-ssa-pre.c: Likewise.
710         * tree-ssa-reassoc.c: Likewise.
711         * tree-ssa-sccvn.c (allocate_vn_table): Likewise.
712         * tree-ssa-strlen.c: Likewise.
713         * tree-ssa-structalias.c: Likewise.
714         * var-tracking.c (onepart_pool_allocate): New function.
715         (unshare_variable): Use the newly added function.
716         (variable_merge_over_cur): Likewise.
717         (variable_from_dropped): Likewise.
718         (variable_was_changed): Likewise.
719         (set_slot_part): Likewise.
720         (emit_notes_for_differences_1): Likewise.
721         (vt_finalize): Release newly added static pools.
722
723 2015-07-16  Martin Jambor  <mjambor@suse.cz>
724
725         * ipa-prop.h (param_aa_status): Rename to ipa_param_aa_status.  Adjust
726         all uses.  Fix two typos in its general comment.
727         (func_body_info): Rename to ipa_func_body_info.  Adjust all uses.
728
729 2015-07-16  Ilya Enkovich  <enkovich.gnu@gmail.com>
730
731         * config/i386/linux-common.h (LINK_MPX): New.
732         (MPX_SPEC): Use LINK_MPX instead of %(link_mpx).
733         * configure.ac: Add HAVE_LD_BNDPLT_SUPPORT macro
734         indicating '-z bndplt' support by linker.
735         * configure: Regenerate.
736         * config.in: Regenerate.
737
738 2015-07-16  Richard Biener  <rguenther@suse.de>
739
740         * fold-const.c (fold_widened_comparison): Remove.
741         (fold_sign_changed_comparison): Likewise.
742         (fold_comparison): Move widened and sign-changed comparison
743         simplification ...
744         * match.pd: ... to patterns here.
745         * generic-match-head.c: Include target.h.
746         * gimple-match-head.c: Likewise.
747
748 2015-07-16  Richard Biener  <rguenther@suse.de>
749
750         * tree-ssa-dom.c (dom_valueize): New function.
751         (record_temporary_equivalences): Also record equivalences
752         for dominating stmts that have uses of equivalences we are
753         about to record.
754
755 2015-07-16  Bin Cheng  <bin.cheng@arm.com>
756
757         * tree-ssa-loop-ivopts.c (add_candidate): Remove call to
758         add_autoinc_candidates.
759         (add_iv_candidate_for_biv): Rename to add_iv_candidate_for_biv.
760         (add_iv_candidate_for_biv): Rename from add_iv_candidate_for_biv.
761         (add_old_ivs_candidates): Rename to add_iv_candidate_for_bivs.
762         (add_iv_candidate_for_bivs): Rename from add_old_ivs_candidates.
763         Call new function.
764         (add_iv_value_candidates): Rename to add_iv_candidate_for_use.
765         (add_iv_candidate_for_use): Rename from add_iv_value_candidates.
766         Remove parameter struct iv*.  Call add_autoinc_candidates here.
767         (add_derived_ivs_candidates): Rename to add_iv_candidate_for_uses.
768         (add_iv_candidate_for_uses): Rename from add_derived_ivs_candidates.
769         Call new function.
770         (find_iv_candidates): Call new functions.
771
772 2015-07-16  Sandra Loosemore  <sandra@codesourcery.com>
773
774         * config/nios2/nios2.c (nios2_emit_stack_limit_check): Fix
775         uninitialized-variable warning.
776
777 2015-07-16  Kaz Kojima  <kkojima@gcc.gnu.org>
778
779         PR target/65249
780         * config/sh/sh.md (movdi): Split simple reg move to two movsi
781         when the destination is R0.
782
783 2015-07-16  Uros Bizjak  <ubizjak@gmail.com>
784
785         PR target/66866
786         * config/i386/i386-protos.h (ix86_expand_pextr): New prototype.
787         * config/i386/i386.c (ix86_expand_pextr): New function.
788         (ix86_expand_pinsr): Handle V1TI and TI modes.  Call ix86_expand_pextr
789         for non-lowpart subregs.
790         * config/i386/i386.md (extzv<mode>): Expand with ix86_expand_pextr.
791         (insv<mode>): Use SWI248 mode iterator.
792         (insv<mode>_1): Ditto.
793
794 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
795             Sebastian Pop  <s.pop@samsung.com>
796
797         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Point
798         iterator to use_stmt.
799
800 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
801             Sebastian Pop <s.pop@samsung.com>
802
803         * graphite-scop-detection.c (build_scops_1): Discard scops for
804         which entry==exit.
805
806 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
807             Sebastian Pop <s.pop@samsung.com>
808
809         * graphite-scop-detection.c (stmt_simple_for_scop_p): Bail out in
810         case of a return statement in scop.
811
812 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
813             Sebastian Pop <s.pop@samsung.com>
814
815         * graphite-sese-to-poly.c (parameter_index_in_region): Only handle
816         INTEGER_TYPE parameters.
817         (scan_tree_for_params): Handle REAL_CST, COMPLEX_CST, and
818         VECTOR_CST in scan_tree_for_params.
819         (add_conditions_to_domain): Only constrain on INTEGER_TYPE.
820
821 2015-07-15  Andrew MacLeod  <amacleod@redhat.com>
822
823         * gimple-pretty-print.h: Don't include pretty-print.h.
824         * tree-streamer.h: Don't include lto-streamer.h.
825         * gimple-streamer.h: Include tree-streamer.h rather than lto-streamer.h.
826         * gimple-streamer-in.c: Remove redundant includes.
827         * gimple-streamer-out.c: Likewise.
828         * ipa-devirt.c: Likewise.
829         * ipa-icf.c: Likewise.
830         * ipa-inline-analysis.c: Likewise.
831         * ipa-polymorphic-call.c: Likewise.
832         * ipa-profile.c: Likewise.
833         * ipa-prop.c: Likewise.
834         * ipa-pure-const.c: Likewise.
835         * lto-cgraph.c: Likewise.
836         * lto-streamer-in.c: Likewise.
837         * lto-streamer-out.c: Likewise.
838         * lto-streamer.c: Likewise.
839         * tree-streamer-in.c: Likewise.
840         * tree-streamer-out.c: Likewise.
841         * tree-streamer.c: Likewise.
842
843 2015-07-15  Andrew MacLeod  <amacleod@redhat.com>
844
845         * opth-gen.awk: Check for UNKNOWN_LOCATION rather than GCC_TM_H, don't
846         include input.h.
847         * opts.c: Remove multiline #include comment.
848
849 2015-07-15  Nathan Sidwell  <nathan@codesourcery.com>
850
851         * config/nvptx/mkoffload.c (process): Add C++ protection to
852         emitted code.
853
854 2015-07-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
855
856         PR target/66854
857         * config/rs6000/rs6000.c (rs6000_pass_by_reference): Move test for
858         null before IEEE 128-bit floating point support patch.
859
860 2015-07-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
861
862         * simplify-rtx.c (simplify_ternary_operation): Add simplification
863         for (!c) != {0,...,0} ? a : b for vector modes.
864
865 2015-07-15  Paolo Bonzini  <bonzini@gnu.org>
866             Martin Jambor  <mjambor@suse.cz>
867
868         * ipa-inline-analysis.c (unmodified_parm_or_parm_agg_item): Accept
869         struct func_body_info* instead of struct ipa_node_params*, expecting
870         fbi->info to be filled in.  Replace throughout.  Adjust call to
871         ipa_load_from_parm_agg.
872         (set_cond_stmt_execution_predicate): Accept struct func_body_info*
873         instead of struct ipa_node_params*.  Adjust calls to other functions
874         so that they pass either fbi or fbi->info.
875         (set_switch_stmt_execution_predicate): Likewise.
876         (will_be_nonconstant_predicate): Likewise.
877         (compute_bb_predicates): Likewise.
878         (estimate_function_body_sizes): Move asserts earlier.  Fill in
879         struct func_body_info, replace parms_info with fbi.info.  Adjust
880         calls to functions that now accept struct func_body_info.
881         * ipa-prop.c (param_aa_status, struct ipa_bb_info): Move to ipa-prop.h.
882         (struct func_body_info): Likewise.
883         (ipa_load_from_parm_agg_1): Rename to ipa_load_from_parm_agg,
884         remove static.  Adjust callers.
885         (ipa_load_from_parm_agg): Remove.
886         * ipa-prop.h (param_aa_status, ipa_bb_info): Move from ipa-prop.c.
887         (func_body_info): Likewise.
888         (ipa_load_from_parm_agg): Adjust prototype.
889
890 2015-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
891
892         * gensupport.c (rtx_handle_directive): Adjust.
893         * read-rtl.c (apply_iterators): Take vector to add rtxs to
894         instead of expr list rtx.
895         (add_define_attr_for_define_subst): Likewise.
896         (add_define_subst_attr): Likewise.
897         (read_subst_mapping): Likewise.
898         (read_rtx): Likewise.
899         * rtl.h (read_rtx): Adjust.
900
901 2015-07-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
902
903         * config/aarch64/aarch64.md (*csinc2<mode>_insn): Use cinc mnemonic.
904
905 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
906
907         PR target/58066
908         * config/i386/i386.md (*tls_global_dynamic_64_<mode>): Depend on SP_REG.
909         (*tls_local_dynamic_base_64_<mode>): Ditto.
910         (*tls_local_dynamic_base_64_largepic): Ditto.
911         (tls_global_dynamic_64_<mode>): Update expander pattern.
912         (tls_local_dynamic_base_64_<mode>): Ditto.
913
914 2015-07-15  Richard Biener  <rguenther@suse.de>
915
916         * fold-const.c (fold_binary_loc): Move bool_var != 0 -> bool_var
917         and bool_var == 1 -> bool_var simplifications ...
918         * match.pd: ... to patterns here.  Factor out negate_expr_p
919         cases from the A - B -> A + (-B) patterns as negate_expr_p
920         predicate and add a -(A + B) -> (-B) - A pattern.
921
922 2015-07-15  Robert Suchanek  <robert.suchanek@imgtec.com>
923
924         * config/mips/mips.c (mips_emit_save_slot_move): Fix typo.
925
926 2015-07-15  Matthew Fortune  <matthew.fortune@imgtec.com>
927             Robert Suchanek  <robert.suchanek@imgtec.com>
928
929         * config/mips/mips.c (mips_int_mask): New enum.
930         (mips_shadow_set): Likewise.
931         (int_mask): New variable.
932         (use_shadow_register_set_p): Change type to enum mips_shadow_set.
933         (machine_function): Add int_mask and use_shadow_register_set.
934         (mips_attribute_table): Add attribute handlers for interrupt and
935         use_shadow_register_set.
936         (mips_interrupt_mask): New static function.
937         (mips_handle_interrupt_attr): Likewise.
938         (mips_handle_use_shadow_register_set_attr): Likewise.
939         (mips_use_shadow_register_set): Change return type to enum
940         mips_shadow_set.  Add argument handling for use_shadow_register_set
941         attribute.
942         (mips_interrupt_extra_called_saved_reg_p): Update the conditional to
943         compare with mips_shadow_set enum.
944         (mips_compute_frame_info): Add interrupt mask and
945         use_shadow_register_set to per-function information structure.
946         Add a stack slot for EPC unconditionally.
947         (mips_expand_prologue): Compare use_shadow_register_set value
948         with mips_shadow_set enum.  Save EPC always in K1, clobber only K1 for
949         masked interrupt register but in EIC mode use K0 and save Cause in K0.
950         EPC saved and restored unconditionally.  Use PMODE_INSN macro when
951         copying the stack pointer from the shadow register set.
952         * config/mips/mips.h (SR_IM0): New define.
953         * config/mips/mips.md (mips_rdpgpr): Rename to...
954         (mips_rdpgpr_<mode>): ...this.  Use the Pmode iterator.
955         * doc/extend.texi (Declaring Attributes of Functions): Document
956         optional arguments for interrupt and use_shadow_register_set
957         attributes.
958
959 2015-07-15  Robert Suchanek  <robert.suchanek@imgtec.com>
960
961         * config/mips/mips.c (mips_compute_frame_info): Allow -mhard-float in
962         interrupt attribute.
963         (mips_expand_prologue): Disable the floating point unit in an ISR.
964         * config/mips/mips.h (SR_COP1): New define.
965
966 2015-07-15  Richard Biener  <rguenther@suse.de>
967
968         * genmatch.c (parser::peek, parser::peek_ident): Add argument
969         to tell how many tokens to peek ahead (default 1).
970         (parser::eat_token, parser::eat_ident): Return token consumed.
971         (parser::parse_result): Parse new switch statement.
972         * match.pd: Use case statements where appropriate.
973
974 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
975
976         PR rtl-optimization/58066
977         * calls.c (expand_call): Precompute register parameters before stack
978         alignment is performed.
979
980 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
981
982         PR rtl-optimization/66838
983         * postreload.c (reload_cse_move2add): Also process
984         CALL_INSN_FUNCTION_USAGE when resetting information of
985         call-clobbered registers.
986
987 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
988             Cesar Philippidis  <cesar@codesourcery.com>
989             Chung-Lin Tang  <cltang@codesourcery.com>
990
991         * config/nios2/constraints.md (U, v): New constraints.
992         * config/nios2/predicates.md (rdprs_dcache_operand): New.
993         (ldstex_memory_operand): New.
994         * config/nios2/sync.md: New file.
995         * config/nios2/nios2.md (unspecv): Add new builtin function
996         UNSPECV codes.
997         (rdprs, flushd, flushda, wrpie, eni): New patterns.
998         (top-level): Include sync.md.
999         * config/nios2/nios2.c (N2_FTYPES): Add function types for
1000         new builtins.
1001         (N2_BUILTINS): Add arch field setting, add new builtins.
1002         (enum nios2_builtin_code,nios2_builtins): Update N2_BUILTIN_DEF
1003         for arch field.
1004         (nios2_expand_ldst_builtin): Rename from nios2_expand_ldstio_builtin.
1005         Also handle ldex/stex/ldsex/stsex builtins.
1006         (nios2_expand_rdprs_builtin): New function.
1007         (nios2_expand_cache_builtin): New function.
1008         (nios2_expand_wrpie_builtin): New function.
1009         (nios2_expand_eni_builtin): New function.
1010         (nios2_expand_builtin): Add arch field handling and new builtin
1011         cases.
1012         * doc/extend.texi (Altera Nios II Built-in Functions): Document
1013         new builtins.
1014         * doc/md.texi (Machine Constraints): Document U and v constraints.
1015
1016 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
1017             Cesar Philippidis  <cesar@codesourcery.com>
1018             Chung-Lin Tang  <cltang@codesourcery.com>
1019
1020         * config/nios2/nios2-protos.h (nios2_expand_return): Declare.
1021         * config/nios2/nios2.c (struct GTY (()) machine_function): Add
1022         callee_save_reg_size and uses_anonymous_args fields.
1023         (nios2_compute_frame_layout): Update for CDX push.n/pop.n usage.
1024         (nios2_create_cfa_notes): New function.
1025         (nios2_adjust_stack): New function for adjusting stack.
1026         (nios2_expand_prologue): Update for CDX push.n/pop.n usage.
1027         Use nios2_adjust_stack.
1028         (nios2_expand_epilogue): Likewise.
1029         (nios2_expand_return): New function.
1030         (nios2_can_use_return_insn): Update for CDX pop.n usage.
1031         (nios2_setup_incoming_varargs): Set uses_anonymous_args flag.
1032         If TARGET_HAS_CDX, defer pushing regs to nios2_expand_prologue.
1033         * config/nios2/nios2.md (return): Use nios2_expand_return.
1034
1035 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
1036             Cesar Philippidis  <cesar@codesourcery.com>
1037             Chung-Lin Tang  <cltang@codesourcery.com>
1038
1039         * config/nios2/predicates.md (pop_operation): New.
1040         (ldwm_operation, stwm_operation): New.
1041         (nios2_hard_register_operand): New.
1042         * config/nios2/nios2-protos.h (pop_operation_p): Declare.
1043         (ldstwm_operation_p): Declare.
1044         (gen_ldstwm_peep): Declare.
1045         * config/nios2/nios2.c: (nios2_ldst_parallel): Declare.
1046         (base_reg_adjustment_p): New.
1047         (pop_operation_p): New.
1048         (CDX_LDSTWM_VALID_REGS_0, CDX_LDSTWM_VALID_REGS_1): Define.
1049         (nios2_ldstwm_regset_p): New.
1050         (ldstwm_operation_p): New.
1051         (gen_ldst): New.
1052         (nios2_ldst_parallel): New.
1053         (struct ldswm_operand): Declare.
1054         (compare_ldstwm_operands): New.
1055         (can_use_cdx_ldstw): New.
1056         (gen_ldstwm_peep): New.
1057         * config/nios2/nios2-ldstwm.sml: New.
1058         * config/nios2/nios2.md: Include ldstwm.md.
1059         * config/nios2/ldstwm.md: Generated.
1060
1061 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
1062             Cesar Philippidis  <cesar@codesourcery.com>
1063             Chung-Lin Tang  <cltang@codesourcery.com>
1064
1065         * config/nios2/nios2.h (LABEL_ALIGN): Define.
1066         (REG_ALLOC_ORDER): Define.
1067         (ADJUST_REG_ALLOC_ORDER): Define.
1068         (HONOR_REG_ALLOC_ORDER): Define.
1069         (CDX_REG_P): Define.
1070         (ANDCLEAR_INT): Define.
1071         * config/nios2/nios2-protos.h (nios2_add_insn_asm): Declare.
1072         (nios2_label_align): Declare.
1073         (nios2_cdx_narrow_form_p): Declare.
1074         (nios2_adjust_reg_alloc_order): Declare.
1075         * config/nios2/nios2.c (nios2_rtx_costs): Adjust for BMX zero-extract
1076         operation.
1077         (nios2_large_unspec_reloc_p): New function, split from...
1078         (nios2_legitimate_pic_operand_p): ...here.
1079         (nios2_emit_move_sequence): Add *high/*lo_sum constant expand code.
1080         (nios2_print_operand_punct_valid_p): New.
1081         (nios2_print_operand): Add %., %!, %x, %y, %A.  Remove %U.
1082         (split_mem_address): New.
1083         (split_alu_insn): New.
1084         (cdxreg): New.
1085         (cdx_add_immed, cdx_and_immed, cdx_mov_immed, cdx_shift_immed): New.
1086         (enum nios2_add_insn_kind): New.
1087         (nios2_add_insn_names, nios2_add_insn_narrow): New.
1088         (nios2_add_insn_classify): New.
1089         (nios2_add_insn_asm): New.
1090         (nios2_cdx_narrow_form_p): New.
1091         (label_align, min_labelno, max_labelno): New.
1092         (nios2_reorg): New.
1093         (nios2_label_align): New.
1094         (nios2_adjust_reg_alloc_order): New.
1095         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
1096         (TARGET_MACHINE_DEPENDENT_REORG): Define.
1097         * config/nios2/constraints.md (P): New constraint.
1098         * config/nios2/predicates.md (const_and_operand): New.
1099         (and_operand): New.
1100         (stack_memory_operand): New.
1101         * config/nios2/nios2.md (SP_REGNO): Define stack pointer regno.
1102         (length): Update to use nios2_cdx_narrow_form_p().
1103         (type): Add new insn type values.
1104         (control, alu, st, ld, shift): Update insn reservations with
1105         new insn type values.
1106         (*high, *lo_sum): Define new insn patterns for constant generation.
1107         (movqi_internal, movhi_internal, movsi_internal): Reduce
1108         alternatives, update asm template to handle CDX variants, update
1109         type attributes.
1110         (zero_extendhisi2, zero_extendqi<mode>2): Add CDX variants to asm
1111         template, update type attributes.
1112         (extendhisi2, extendqi<mode>2): Likewise.
1113         (addsi3): Change to use function for asm string.
1114         (subsi3): Add CDX notation to asm template, update type attributes.
1115         (negsi3, one_cmplsi3): Likewise.
1116         (andsi3): New pattern, specialized from logical patterns.
1117         (<code>si3): Remove and case, combine alternatives, update asm
1118         template.
1119         (<shift_op>si3): Add CDX notation, update type attributes.
1120         (rotrsi3): Update type attribute.
1121         (*merge, extzv, insv): New insn patterns.
1122         (return): Change to define_expand.
1123         (simple_return): Add CDX notation, update type attributes.
1124         (indirect_jump): Add CDX notation.
1125         (jump): Update asm cases, update length attribute expression.
1126         (*call, *call_value, *sibcall, *sibcall_value): Add CDX variant.
1127         (nios2_cbranch): Update asm cases and length attribute expression
1128         to handle CDX variants.
1129         (nios2_cmp<code>): Update asm template.
1130         (nop): Add CDX notation, update type attributes.
1131         (trap): Add CDX notation.
1132         (ctrapsi4): Update asm cases and length attribute expression to
1133         handle CDX variant.
1134         * doc/md.texi (Machine Constraints): Document P constraint.
1135
1136 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
1137             Cesar Philippidis  <cesar@codesourcery.com>
1138             Chung-Lin Tang  <cltang@codesourcery.com>
1139
1140         * config/nios2/nios2.h (SMALL_INT12): New macro.
1141         * config/nios2/nios2.c (nios2_valid_addr_offset_p): New function.
1142         (nios2_valid_addr_expr_p): Use it.
1143         (nios2_symbol_ref_in_small_data_p): Disallow GP-relative addressing
1144         with implicit "io" instructions on R2.
1145         * config/nios2/constraints.md (w): New constraint.
1146         * config/nios2/predicates.md (ldstio_memory_operand): New.
1147         * config/nios2/nios2.md (ld<bhw_uns>io, ld<bh>io): Update memory
1148         operand predicate and constraint.
1149         (ld<bh>io_signed, st<bhw>io>): Likewise.
1150         * doc/md.texi (Machine Constraints): Document w constraint.
1151
1152 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
1153             Cesar Philippidis  <cesar@codesourcery.com>
1154             Chung-Lin Tang  <cltang@codesourcery.com>
1155
1156         * config/nios2/nios2.opt (march, mbmx, mcdx): New options.
1157         * config/nios2/nios2-opts.h (enum nios2_arch_type): New enum for
1158         Nios II architecture level.
1159         * config/nios2/nios2.h (TARGET_ARCH_R2): New define.
1160         (TARGET_CPU_CPP_BUILTINS): Add definition of __nios2_arch__ symbol.
1161         (OPTION_DEFAULT_SPECS): Define.
1162         (ASM_SPEC): Add -march= spec strings.
1163         * config/nios2/nios2.c (nios2_option_override): Check for
1164         conflicts involving new options.
1165         * config.gcc (nios2*-*-*): Support --with-arch=.
1166         * doc/invoke.texi (Option Summary, Nios II Options): Document
1167         -march=, -mbmx, and -mcdx.
1168
1169 2015-07-14  Vladimir Makarov  <vmakarov@redhat.com>
1170
1171         PR rtl-optimization/66626
1172         * lra-constraints.c (lra_constraints): Prevent equivalence
1173         substitution for static chain pseudo in functions with nonlocal
1174         goto.
1175
1176 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
1177
1178         * config/nios2/nios2.c (TEMP_REG_NUM): Move define up in file.
1179         (nios2_emit_stack_limit_check): Add size parameter.  Handle
1180         -fstack-limit-symbol as well as -fstack-limit-register.
1181         (nios2_expand_prologue): Emit only a single stack limit check,
1182         even if multiple stack adjustments are required.
1183         (nios2_option_override): Diagnose unsupported combination of -fpic
1184         and -stack-limit-symbol.
1185
1186 2015-07-14  H.J. Lu  <hongjiu.lu@intel.com>
1187
1188         * Makefile.in (top_srcdir): New.
1189         * configure.ac: Use AM_ZLIB.
1190         * configure: Regeneated.
1191
1192 2015-07-14  Matthias Klose  <doko@ubuntu.com>
1193
1194         PR target/66840
1195         * config/rs6000/t-rs6000 (TM_H): Add rs6000-cpus.def.
1196
1197 2015-07-14  Richard Biener  <rguenther@suse.de>
1198
1199         PR tree-optimization/66863
1200         * tree-vrp.c (register_edge_assert_for_2): Properly restrict
1201         what we record for conversion use stmt lhs inequalities.
1202
1203 2015-07-14  Richard Biener  <rguenther@suse.de>
1204
1205         * genmatch.c (dt_node::gen_kids_1): Fix case label indenting.
1206         (decision_tree::gen_gimple): Likewise.
1207
1208 2015-07-14  Tom de Vries  <tom@codesourcery.com>
1209
1210         * gcc.c (greater_than_spec_func): Declare forward.
1211         (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use gt to ignore
1212         -ftree-parallelize-loops={0,1}.
1213         (static_spec_functions): Add greater_than_spec_func function with name
1214         "gt".
1215         (greater_than_spec_func): New function.
1216
1217 2015-07-14  Richard Biener  <rguenther@suse.de>
1218
1219         * tree-ssa-dom.c (record_temporary_equivalences): Merge
1220         wideing type conversion case from record_equivalences_from_incoming_edge
1221         and use record_equality to record equivalences.
1222         (record_equivalences_from_incoming_edge): Call
1223         record_temporary_equivalences.
1224
1225 2015-07-14  Richard Biener  <rguenther@suse.de>
1226
1227         * genmatch.c (struct operand): Add OP_IF and OP_WITH op_types.
1228         (struct if_expr): New.
1229         (struct with_expr): Likewise.
1230         (is_a_helper): Add helpers for if_expr and with_expr.
1231         (struct simplify): Add simplify_kind enum and member.  Remove
1232         ifexpr_vec member.
1233         (simplify::simplify): Adjust.
1234         (lower_commutative): Adjust.
1235         (lower_opt_convert): Likewise.
1236         (lower_cond): Likewise.
1237         (replace_id): Handle with_expr and if_expr.
1238         (lower_for): Adjust.
1239         (dt_simplify::gen_1): New recursive worker, split out from ...
1240         (dt_simplify::gen): ... here.  Deal with if and with expansion
1241         recursively.
1242         (capture_info::capture_info): Take context argument
1243         (capture_info::walk_result): Only analyze specific result.
1244         (parser::parse_result): New function.
1245         (parser::parse_simplify): Adjust to parse ifs with then end
1246         else case.
1247         (parser::parse_if): Simplify.
1248         (parser::parse_pattern): Pass down simplify kind.
1249         * match.pd: Convert if structure to new syntax.
1250
1251 2015-07-13  Marek Polacek  <polacek@redhat.com>
1252
1253         * rtl.c (rtx_equal_p_cb): Fix typo.
1254
1255 2015-07-13  Andrew MacLeod  <amacleod@redhat.com>
1256
1257         * omega.h: Don't include config.h, don't include params.h again if
1258         omega.h has already been included.
1259         * graphite-poly.h: Include sese.h.
1260         * graphite.c: Don't include sese.h, remove needless includes and
1261         minimize includes outside #ifdef HAVE_isl block.
1262         * graphite-blocking.c: Don't include sese.h, remove needless includes,
1263         and wrap entire file in #ifdef HAVE_isl
1264         * graphite-dependences.c: Likewise.
1265         * graphite-interchange.c: Likewise.
1266         * graphite-isl-ast-to-gimple.c: Likewise.
1267         * graphite-optimize-isl.c: Likewise.
1268         * graphite-poly.c: Likewise.
1269         * graphite-scop-detection.c: Likewise.
1270         * graphite-sese-to-poly.c: Likewise.
1271
1272 2015-07-13  Tom de Vries  <tom@codesourcery.com>
1273
1274         * omp-low.c (build_receiver_ref): Mark *.omp_data_i as non-trapping.
1275
1276 2015-07-13  Renlin Li  <renlin.li@arm.com>
1277
1278         PR rtl/66556
1279         * simplify-rtx.c (simplify_const_relational_operation): Add
1280         side_effects_p checks.
1281
1282 2015-07-12  Aldy Hernandez  <aldyh@redhat.com>
1283
1284         * bitmap.h: Fix double word typos.
1285         * builtins.c: Same.
1286         * calls.c: Same.
1287         * cfgloopmanip.c: Same.
1288         * cgraph.c: Same.
1289         * cgraph.h: Same.
1290         * cgraphclones.c: Same.
1291         * combine.c: Same.
1292         * config/aarch64/aarch64-protos.h: Same.
1293         * config/aarch64/aarch64.c: Same.
1294         * config/aarch64/aarch64.md: Same.
1295         * config/arm/arm.md: Same.
1296         * config/arm/arm1020e.md: Same.
1297         * config/arm/arm1026ejs.md: Same.
1298         * config/arm/arm926ejs.md: Same.
1299         * config/arm/fa526.md: Same.
1300         * config/arm/fa606te.md: Same.
1301         * config/arm/fa626te.md: Same.
1302         * config/arm/fa726te.md: Same.
1303         * config/arm/fmp626.md: Same.
1304         * config/darwin.c: Same.
1305         * config/epiphany/epiphany.c: Same.
1306         * config/frv/frv.c: Same.
1307         * config/ft32/ft32.c: Same.
1308         * config/gnu-user.h: Same.
1309         * config/h8300/constraints.md: Same.
1310         * config/i386/i386.c: Same.
1311         * config/i386/i386.md: Same.
1312         * config/iq2000/iq2000.md: Same.
1313         * config/mips/mips.c: Same.
1314         * config/mmix/mmix.md: Same.
1315         * config/moxie/moxie.c: Same.
1316         * config/nds32/nds32.md: Same.
1317         * config/pa/pa.h: Same.
1318         * config/rs6000/aix.h: Same.
1319         * config/rs6000/rs6000.h: Same.
1320         * config/sh/sh.c: Same.
1321         * config/tilegx/tilegx.md: Same.
1322         * config/tilepro/gen-mul-tables.cc: Same.
1323         * cse.c: Same.
1324         * dbxout.c: Same.
1325         * doc/invoke.texi: Same.
1326         * dse.c: Same.
1327         * dwarf2out.c: Same.
1328         * final.c: Same.
1329         * gcc.c: Same.
1330         * genmatch.c: Same.
1331         * gimplify.c: Same.
1332         * hash-table.h: Same.
1333         * internal-fn.c: Same.
1334         * ipa-cp.c: Same.
1335         * ipa-devirt.c: Same.
1336         * ipa-icf.c: Same.
1337         * ipa-icf.h: Same.
1338         * ipa-profile.c: Same.
1339         * ipa-prop.c: Same.
1340         * ipa-prop.h: Same.
1341         * ira.c: Same.
1342         * omp-low.c: Same.
1343         * reg-stack.c: Same.
1344         * regcprop.c: Same.
1345         * reorg.c: Same.
1346         * rtl.h: Same.
1347         * sbitmap.h: Same.
1348         * tree-eh.c: Same.
1349         * tree-inline.c: Same.
1350         * tree-sra.c: Same.
1351         * tree-ssa-dom.c: Same.
1352         * tree-ssa-loop-ivopts.c: Same.
1353         * tree-ssa-structalias.c: Same.
1354         * tree-ssa-tail-merge.c: Same.
1355         * tree-ssa-ter.c: Same.
1356         * tree-ssa-threadupdate.c: Same.
1357         * tree-ssa-uninit.c: Same.
1358         * tree-ssanames.c: Same.
1359         * tree-vect-loop-manip.c: Same.
1360         * tree-vrp.c: Same.
1361         * tree.c: Same.
1362         * valtrack.c: Same.
1363         * vec.h: Same.
1364
1365 2015-07-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
1366
1367         PR middle-end/66726
1368         * tree-ssa-phiopt.c(factor_out_conditional_conversion): New function.
1369         tree_ssa_phiopt_worker): Call it.
1370
1371 2015-07-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
1372
1373         * cse.c (cse_insn): Calculate src_eqv for ZERO_EXTRACT.
1374         * emit-rtl.c (set_for_reg_notes): Allow ZERO_EXTRACT to set
1375         REG_EQUAL note.
1376
1377 2015-07-11  Marek Polacek  <polacek@redhat.com>
1378
1379         PR middle-end/66353
1380         * basic-block.h (has_abnormal_call_or_eh_pred_edge_p): New function.
1381         * ira-lives.c (bb_has_abnormal_call_pred): Remove function.
1382         (process_bb_node_lives): Call has_abnormal_call_or_eh_pred_edge_p
1383         rather than bb_has_abnormal_call_pred.
1384         * lra-lives.c (bb_has_abnormal_call_pred): Remove function.
1385         (process_bb_lives): Call has_abnormal_call_or_eh_pred_edge_p
1386         rather than bb_has_abnormal_call_pred.
1387
1388 2015-07-10  Anatoly Sokolov  <aesok@post.ru>
1389
1390         * config/v850/v850.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
1391         REG_OK_FOR_BASE_P_STRICT, REG_OK_FOR_INDEX_P_STRICT, STRICT,
1392         RTX_OK_FOR_BASE_P, GO_IF_LEGITIMATE_ADDRESS): Remove macros.
1393         * config/v850/v850.c (v850_reg_ok_for_base_, v850_rtx_ok_for_base_p,
1394         v850_legitimate_address_p): New functions.
1395         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
1396
1397 2015-07-10  H.J. Lu  <hongjiu.lu@intel.com>
1398
1399         PR target/66819
1400         * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow
1401         indirect sibcall with register arguments if register available
1402         for argument passing.
1403         (init_cumulative_args): Set cfun->machine->arg_reg_available
1404         to (cum->nregs > 0) or to true if function has a variable
1405         argument list.
1406         (function_arg_advance_32): Set cfun->machine->arg_reg_available
1407         to false if cum->nregs <= 0.
1408         * config/i386/i386.h (machine_function): Add arg_reg_available.
1409
1410 2015-07-10  Uros Bizjak  <ubizjak@gmail.com>
1411
1412         * config/i386/sse.md (movdi_to_sse): Use gen_lowpart
1413         and gen_higpart instead of gen_rtx_SUBREG.
1414         * config/i386/i386.md
1415         (floatdi<X87MODEF:mode>2_i387_with_xmm splitter): Ditto.
1416         (read-modify peephole2): Use gen_lowpart instead of
1417         gen_rtx_SUBREG for operand 5.
1418
1419 2015-07-10  Andrew MacLeod  <amacleod@redhat.com>
1420
1421         * config/tilepro/gen-mul-tables.cc (main): Change include list for
1422         generated files.
1423         * config/tilepro/mul-tables.c: Regenerate.
1424         * config/tilegx/mul-tables.c: Regenerate.
1425
1426 2015-07-10  Richard Biener  <rguenther@suse.de>
1427
1428         * fold-const.c (distribute_bit_expr): Remove.
1429         (fold_binary_loc): Move simplifying (A & C1) + (B & C2)
1430         to (A & C1) | (B & C2), distributing (A & B) | (A & C)
1431         to A & (B | C) and simplifying A << C1 << C2 to ...
1432         * match.pd: ... patterns here.
1433
1434 2015-07-10  Jiong Wang  <jiong.wang@arm.com>
1435
1436         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
1437         Mark mem as READONLY and NOTRAP for PIC symbol.
1438
1439 2015-07-10  Andrew MacLeod  <amacleod@redhat.com>
1440
1441         * gimple-predict.h: New file.
1442         (gimple_predict_predictor, gimple_predict_set_predictor,
1443         gimple_predict_outcome, gimple_predict_set_outcome,
1444         gimple_build_predict): Relocate here.
1445         * gimple.h (gimple_predict_predictor, gimple_predict_set_predictor,
1446         gimple_predict_outcome, gimple_predict_set_outcome): Move to
1447         gimple-predict.h.
1448         * gimple.c (gimple_build_predict): Move to gimple-predict.h
1449         * basic-block.h: Don't include cfghooks.h.
1450         * backend.h: Don't include predict.h.
1451         * cfghooks.h: Include predict.h.
1452         * gimple-pretty-print.c: Include gimple-predict.h.
1453         * gimplify.c: Likwise.
1454         * predict.c: Adjust includes.
1455         * tree-inline.c: Likewise.
1456         * asan.c: Likewise.
1457         * auto-inc-dec.c: Likewise.
1458         * auto-profile.c: Likewise.
1459         * bb-reorder.c: Likewise.
1460         * builtins.c: Likewise.
1461         * caller-save.c: Likewise.
1462         * calls.c: Likewise.
1463         * cfganal.c: Likewise.
1464         * cfgbuild.c: Likewise.
1465         * cfg.c: Likewise.
1466         * cfgcleanup.c: Likewise.
1467         * cfgexpand.c: Likewise.
1468         * cfghooks.c: Likewise.
1469         * cfgloopanal.c: Likewise.
1470         * cfgloop.c: Likewise.
1471         * cfgloopmanip.c: Likewise.
1472         * cfgrtl.c: Likewise.
1473         * cgraph.c: Likewise.
1474         * cgraphunit.c: Likewise.
1475         * combine.c: Likewise.
1476         * cprop.c: Likewise.
1477         * cse.c: Likewise.
1478         * dce.c: Likewise.
1479         * dojump.c: Likewise.
1480         * dse.c: Likewise.
1481         * except.c: Likewise.
1482         * expmed.c: Likewise.
1483         * expr.c: Likewise.
1484         * final.c: Likewise.
1485         * fold-const.c: Likewise.
1486         * function.c: Likewise.
1487         * fwprop.c: Likewise.
1488         * gcc-plugin.h: Likewise.
1489         * gcse.c: Likewise.
1490         * genattrtab.c: Likewise.
1491         * genemit.c: Likewise.
1492         * gengtype.c: Likewise.
1493         * genopinit.c: Likewise.
1494         * genoutput.c: Likewise.
1495         * genpreds.c: Likewise.
1496         * genrecog.c: Likewise.
1497         * gimple-fold.c: Likewise.
1498         * gimple-iterator.c: Likewise.
1499         * gimple-ssa-isolate-paths.c: Likewise.
1500         * gimple-ssa-strength-reduction.c: Likewise.
1501         * graph.c: Likewise.
1502         * graphite-blocking.c: Likewise.
1503         * graphite.c: Likewise.
1504         * graphite-dependences.c: Likewise.
1505         * graphite-interchange.c: Likewise.
1506         * graphite-isl-ast-to-gimple.c: Likewise.
1507         * graphite-optimize-isl.c: Likewise.
1508         * graphite-poly.c: Likewise.
1509         * graphite-scop-detection.c: Likewise.
1510         * graphite-sese-to-poly.c: Likewise.
1511         * haifa-sched.c: Likewise.
1512         * ifcvt.c: Likewise.
1513         * internal-fn.c: Likewise.
1514         * ipa-cp.c: Likewise.
1515         * ipa-profile.c: Likewise.
1516         * ipa-split.c: Likewise.
1517         * ipa-utils.c: Likewise.
1518         * ira-build.c: Likewise.
1519         * ira-color.c: Likewise.
1520         * ira-conflicts.c: Likewise.
1521         * ira-costs.c: Likewise.
1522         * ira-emit.c: Likewise.
1523         * ira-lives.c: Likewise.
1524         * jump.c: Likewise.
1525         * loop-doloop.c: Likewise.
1526         * loop-init.c: Likewise.
1527         * loop-invariant.c: Likewise.
1528         * loop-unroll.c: Likewise.
1529         * lower-subreg.c: Likewise.
1530         * lra-assigns.c: Likewise.
1531         * lra.c: Likewise.
1532         * lra-coalesce.c: Likewise.
1533         * lra-constraints.c: Likewise.
1534         * lra-lives.c: Likewise.
1535         * lto-cgraph.c: Likewise.
1536         * lto-streamer-in.c: Likewise.
1537         * mode-switching.c: Likewise.
1538         * modulo-sched.c: Likewise.
1539         * omp-low.c: Likewise.
1540         * optabs.c: Likewise.
1541         * passes.c: Likewise.
1542         * postreload.c: Likewise.
1543         * postreload-gcse.c: Likewise.
1544         * profile.c: Likewise.
1545         * recog.c: Likewise.
1546         * regstat.c: Likewise.
1547         * reload1.c: Likewise.
1548         * reorg.c: Likewise.
1549         * rtlanal.c: Likewise.
1550         * sched-ebb.c: Likewise.
1551         * sel-sched-ir.c: Likewise.
1552         * sese.c: Likewise.
1553         * shrink-wrap.c: Likewise.
1554         * simplify-rtx.c: Likewise.
1555         * stmt.c: Likewise.
1556         * store-motion.c: Likewise.
1557         * tracer.c: Likewise.
1558         * trans-mem.c: Likewise.
1559         * tree-call-cdce.c: Likewise.
1560         * tree-cfg.c: Likewise.
1561         * tree-cfgcleanup.c: Likewise.
1562         * tree-chkp.c: Likewise.
1563         * tree-complex.c: Likewise.
1564         * tree-eh.c: Likewise.
1565         * tree-if-conv.c: Likewise.
1566         * tree-loop-distribution.c: Likewise.
1567         * tree-outof-ssa.c: Likewise.
1568         * tree-parloops.c: Likewise.
1569         * tree-predcom.c: Likewise.
1570         * tree-pretty-print.c: Likewise.
1571         * tree-profile.c: Likewise.
1572         * tree-sra.c: Likewise.
1573         * tree-ssa.c: Likewise.
1574         * tree-ssa-coalesce.c: Likewise.
1575         * tree-ssa-dce.c: Likewise.
1576         * tree-ssa-dom.c: Likewise.
1577         * tree-ssa-forwprop.c: Likewise.
1578         * tree-ssa-ifcombine.c: Likewise.
1579         * tree-ssa-loop-ch.c: Likewise.
1580         * tree-ssa-loop-im.c: Likewise.
1581         * tree-ssa-loop-ivcanon.c: Likewise.
1582         * tree-ssa-loop-ivopts.c: Likewise.
1583         * tree-ssa-loop-manip.c: Likewise.
1584         * tree-ssa-loop-prefetch.c: Likewise.
1585         * tree-ssa-loop-unswitch.c: Likewise.
1586         * tree-ssa-math-opts.c: Likewise.
1587         * tree-ssa-phiopt.c: Likewise.
1588         * tree-ssa-pre.c: Likewise.
1589         * tree-ssa-reassoc.c: Likewise.
1590         * tree-ssa-sink.c: Likewise.
1591         * tree-ssa-tail-merge.c: Likewise.
1592         * tree-ssa-threadedge.c: Likewise.
1593         * tree-ssa-threadupdate.c: Likewise.
1594         * tree-switch-conversion.c: Likewise.
1595         * tree-tailcall.c: Likewise.
1596         * tree-vect-data-refs.c: Likewise.
1597         * tree-vect-loop.c: Likewise.
1598         * tree-vect-loop-manip.c: Likewise.
1599         * tree-vectorizer.c: Likewise.
1600         * tree-vrp.c: Likewise.
1601         * ubsan.c: Likewise.
1602         * value-prof.c: Likewise.
1603         * varasm.c: Likewise.
1604         * var-tracking.c: Likewise.
1605         * config/aarch64/aarch64-builtins.c: Likewise.
1606         * config/aarch64/aarch64.c: Likewise.
1607         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
1608         * config/alpha/alpha.c: Likewise.
1609         * config/arc/arc.c: Likewise.
1610         * config/arm/arm.c: Likewise.
1611         * config/avr/avr.c: Likewise.
1612         * config/bfin/bfin.c: Likewise.
1613         * config/c6x/c6x.c: Likewise.
1614         * config/cr16/cr16.c: Likewise.
1615         * config/cris/cris.c: Likewise.
1616         * config/darwin.c: Likewise.
1617         * config/darwin-c.c: Likewise.
1618         * config/epiphany/epiphany.c: Likewise.
1619         * config/epiphany/mode-switch-use.c: Likewise.
1620         * config/epiphany/resolve-sw-modes.c: Likewise.
1621         * config/fr30/fr30.c: Likewise.
1622         * config/frv/frv.c: Likewise.
1623         * config/ft32/ft32.c: Likewise.
1624         * config/h8300/h8300.c: Likewise.
1625         * config/i386/i386.c: Likewise.
1626         * config/i386/winnt.c: Likewise.
1627         * config/ia64/ia64.c: Likewise.
1628         * config/iq2000/iq2000.c: Likewise.
1629         * config/lm32/lm32.c: Likewise.
1630         * config/m32c/m32c.c: Likewise.
1631         * config/m32r/m32r.c: Likewise.
1632         * config/m68k/m68k.c: Likewise.
1633         * config/mcore/mcore.c: Likewise.
1634         * config/mep/mep.c: Likewise.
1635         * config/microblaze/microblaze.c: Likewise.
1636         * config/mips/mips.c: Likewise.
1637         * config/mmix/mmix.c: Likewise.
1638         * config/mn10300/mn10300.c: Likewise.
1639         * config/moxie/moxie.c: Likewise.
1640         * config/msp430/msp430.c: Likewise.
1641         * config/nds32/nds32.c: Likewise.
1642         * config/nds32/nds32-cost.c: Likewise.
1643         * config/nds32/nds32-fp-as-gp.c: Likewise.
1644         * config/nds32/nds32-intrinsic.c: Likewise.
1645         * config/nds32/nds32-isr.c: Likewise.
1646         * config/nds32/nds32-md-auxiliary.c: Likewise.
1647         * config/nds32/nds32-memory-manipulation.c: Likewise.
1648         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
1649         * config/nds32/nds32-predicates.c: Likewise.
1650         * config/nios2/nios2.c: Likewise.
1651         * config/nvptx/nvptx.c: Likewise.
1652         * config/pa/pa.c: Likewise.
1653         * config/pdp11/pdp11.c: Likewise.
1654         * config/rl78/rl78.c: Likewise.
1655         * config/rs6000/rs6000.c: Likewise.
1656         * config/rx/rx.c: Likewise.
1657         * config/s390/s390.c: Likewise.
1658         * config/sh/sh.c: Likewise.
1659         * config/sh/sh-mem.cc: Likewise.
1660         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
1661         * config/sh/sh_treg_combine.cc: Likewise.
1662         * config/sparc/sparc.c: Likewise.
1663         * config/spu/spu.c: Likewise.
1664         * config/stormy16/stormy16.c: Likewise.
1665         * config/tilegx/tilegx.c: Likewise.
1666         * config/tilepro/tilepro.c: Likewise.
1667         * config/v850/v850.c: Likewise.
1668         * config/vax/vax.c: Likewise.
1669         * config/visium/visium.c: Likewise.
1670         * config/xtensa/xtensa.c: Likewise.
1671
1672 2015-07-10  Richard Biener  <rguenther@suse.de>
1673
1674         * genmatch.c (dt_node::gen_kids_1): Fix indenting of case labels.
1675         (decision_tree::gen_gimple): Likewise.
1676         (decision_tree::gen_generic): Likewise.
1677
1678 2015-07-10  Uros Bizjak  <ubizjak@gmail.com>
1679
1680         PR target/66813
1681         * config/i386/i386.c (ix86_md_asm_adjust): Emit movstrictqi
1682         sequence for TARGET_ZERO_EXTEND_WITH_AND targets.
1683
1684 2015-07-10  Jakub Jelinek  <jakub@redhat.com>
1685
1686         PR middle-end/66820
1687         * gimplify.c (maybe_fold_stmt): Don't fold in ORT_PARALLEL
1688         or ORT_TASK contexts.
1689         * omp-low.c (lower_omp): Call fold_stmt even if taskreg_nesting_level
1690         is non-zero.
1691
1692 2015-07-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1693
1694         * expr.c (expand_cond_expr_using_cmove): Fix typos in comment
1695         above function.
1696
1697 2015-07-10  Tom de Vries  <tom@codesourcery.com>
1698
1699         * tree-parloops.c (try_transform_to_exit_first_loop_alt): If not found,
1700         insert nit + 1 bound.
1701
1702 2015-07-10  Richard Biener  <rguenther@suse.de>
1703
1704         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p):
1705         Use ifcvt_could_trap_p also when not flag_tree_loop_if_convert_stores.
1706         (if_convertible_loop_p_1): For this always compute bb predicates.
1707         (if_convertible_loop_p): And free them.
1708
1709 2015-07-10  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1710
1711         * ipa-icf.c (sem_item_optimizer::do_congruence_step): Fix typo
1712         in dump message.
1713
1714 2015-07-10  Richard Biener  <rguenther@suse.de>
1715
1716         PR tree-optimization/66823
1717         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Fix
1718         inverted predicate.
1719
1720 2015-07-09  Steve Ellcey  <sellcey@imgtec.com>
1721
1722         * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): Update
1723         to handle mips[32|64]r3 and mips[32|64]r5.
1724
1725 2015-07-09  Jakub Jelinek  <jakub@redhat.com>
1726
1727         PR middle-end/66633
1728         * tree-nested.c (get_static_chain): Or in a flag into
1729         info->static_chain_added.
1730         (get_frame_field, get_nonlocal_debug_decl): Likewise.
1731         (convert_nonlocal_omp_clauses, convert_local_omp_clauses): Revert
1732         2015-07-01 changes.
1733         (convert_tramp_reference_stmt): If a frame_decl or chain_decl
1734         is needed newly inside of GIMPLE_OMP_{PARALLEL,TASK,TARGET} body,
1735         add it to clauses.
1736
1737         PR tree-optimization/66718
1738         * tree-vect-stmts.c (struct simd_call_arg_info): Add simd_lane_linear
1739         field.
1740         (vect_simd_lane_linear): New function.
1741         (vectorizable_simd_clone_call): Support using linear arguments for
1742         addresses of arrays elements indexed by GOMP_SIMD_LANE result.
1743
1744 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
1745
1746         PR target/66821
1747         * config/i386/i386.c (iamcu_cost): Adjust variable shift costs.
1748
1749 2015-07-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
1750
1751         * config/rs6000/rs6000-protos.h (rs6000_secondary_reload_memory):
1752         Use machine mode, not enum machine_mode in the prototype.
1753
1754         * config/rs6000/rs6000.h (FLOAT128_IEEE_P): New helper macros to
1755         classify 128-bit floating point support.
1756         (FLOAT128_IBM_P): Likewise.
1757         (FLOAT128_VECTOR_P): Likewise.
1758         (FLOAT128_2REG_P): Likewise.
1759         (SCALAR_FLOAT_MODE_NOT_VECTOR_P): Likewise.
1760         (SLOW_UNALIGNED_ACCESS): Add IEEE 128-bit floating point support.
1761         (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
1762         (HARD_REGNO_CALL_PART_CLOBBERED): Likewise.
1763
1764         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Drop
1765         tests against TFmode/TDmode, since those modes do not use VSX
1766         addresses.
1767         (rs6000_hard_regno_mode_ok): Add IEEE 128-bit floating point
1768         support.
1769         (rs6000_init_hard_regno_mode_ok): Use new helper macros instead of
1770         tests against TFmode, etc.
1771         (invalid_e500_subreg): Add tests against IFmode/KFmode.
1772         (reg_offset_addressing_ok_p): Likewise.
1773         (rs6000_legitimate_offset_address_p): Likewise.
1774         (rs6000_legitimize_address): Likewise.
1775         (rs6000_legitimize_reload_address): Likewise.
1776         (rs6000_legitimate_address_p): Clean up tests against TFmode and
1777         TDmode to use the new helper macros, which will include IFmode and
1778         KFmode.
1779         (rs6000_emit_move): Likewise.
1780         (rs6000_darwin64_record_arg_recurse): Likewise.
1781         (print_operand): Likewise.
1782         (rs6000_member_type_forces_blk): Treat IEEE 128-bit floating point
1783         that uses a single vector register as a vector and not as a
1784         floating point register in terms of the calling sequence.
1785         (rs6000_discover_homogeneous_aggregate): Likewise.
1786         (rs6000_return_in_memory): Likewise.
1787         (init_cumulative_args): Likewise.
1788         (rs6000_function_arg_boundary): Likewise.
1789         (rs6000_function_arg_advance_1): Likewise.
1790         (rs6000_function_arg): Likewise.
1791         (rs6000_pass_by_reference): Likewise.
1792         (rs6000_gimplify_va_arg): Likewise.
1793         (rs6000_secondary_reload_memory): Use machine_mode not enum
1794         machine mode.
1795         (rs6000_split_multireg_move): Use new helper macros.
1796         (spe_func_has_64bit_regs_p): Likewise.
1797         (rs6000_output_function_epilogue): Add IFmode/KFmode support.
1798         (output_toc): Use new helper macros.
1799         (rs6000_register_move_cost): Likewise.
1800         (rs6000_function_value): Add IEEE 128-bit floating point calling
1801         sequence support.
1802         (rs6000_libcall_value): Likewise.
1803         (rs6000_scalar_mode_supported_p): Add support for IEEE 128-bit
1804         floating point support.
1805         (rs6000_vector_mode_supported_p): Likewise.
1806
1807 2015-07-09  Vladimir Makarov  <vmakarov@redhat.com>
1808
1809         PR rtl-optimization/66782
1810         * lra-int.h (struct lra_insn_recog_data): Add comment about
1811         clobbered hard regs for arg_hard_regs.
1812         * lra.c (lra_set_insn_recog_data): Add clobbered hard regs.
1813         * lra-lives.c (process_bb_lives): Process clobbered hard regs.
1814         Add condition for processing used hard regs.
1815         * lra-constraints.c (update_ebb_live_info, inherit_in_ebb):
1816         Process clobbered hard regs.
1817
1818 2015-07-09  Michael Matz  <matz@suse.de>
1819
1820         * genmatch.c (fprintf_indent): New function.
1821         (operand::gen_transform): Add indent parameter.
1822         (expr::gen_transform, c_expr::gen_transform,
1823         capture::gen_transform): Ditto and use fprintf_indent.
1824         (dt_node::gen, dt_node::gen_kids, dt_node::gen_kids_1): Ditto.
1825         (dt_operand::gen, dt_operand::gen_predicate,
1826         dt_operand::gen_match_op, dt_operand::gen_gimple_expr,
1827         dt_operand::gen_generic_expr, dt_simplify::gen): Ditto.
1828         (decision_tree::gen_gimple): Adjust calls and indent generated
1829         code.
1830         (decision_tree::gen_generic): Ditto.
1831         (write_predicate): Ditto.
1832
1833 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
1834
1835         PR target/66814
1836         * config/i386/predicates.md (nonimmediate_gr_operand): New predicate.
1837         * config/i386/i386.md (not peephole2): Use nonimmediate_gr_operand.
1838         (varous peephole2s): Use {GENERAL,SSE,MMX}_REGNO_P instead of
1839         {GENERAL,SSE,MMX}_REG_P where appropriate.
1840
1841 2015-07-09  Andrew MacLeod  <amacleod@redhat.com>
1842
1843         * lto-streamer.h: Don't include target.h and alloc-pool.h.
1844         * builtins.c: Adjust includes.
1845         * gimple.c: Likewise.
1846         * ipa-icf.c: Likewise.
1847         * lto-opts.c: Likewise.
1848         * ipa-reference.c: Likewise.
1849         * lto-section-out.c: Likewise.
1850         * lto-streamer-in.c: Likewise.
1851         * lto-streamer-out.c: Likewise.
1852         * opts-global.c: Likewise.
1853         * symtab.c: Likewise.
1854         * tree-chkp.c: Likewise.
1855         * tree-ssa-live.c: Likewise.
1856         * tree-streamer-in.c: Likewise.
1857         * tree-streamer-out.c: Likewise.
1858         * config/darwin.c: Likewise.
1859         * config/i386/winnt.c: Likewise.
1860
1861 2015-07-09  Richard Biener  <rguenther@suse.de>
1862
1863         * genmatch.c (struct expr): Add force_single_use flag.
1864         (expr::expr): Add copy constructor.
1865         (capture_info::walk_match): Gather force_single_use captures.
1866         (expr::gen_transform): Use possibly NULLified sequence.
1867         (dt_simplify::gen): Apply single-use restrictions by NULLifying
1868         seq if any constrained expr is not single-use.
1869         (parser::parse_expr): Refactor to allow multiple flags.  Handle
1870         's' flag to force an expression have a single-use if the pattern
1871         simplifies to more than one statement.
1872         * match.pd: Convert most single_use conditionals to :s flags.
1873
1874 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
1875
1876         * config/i386/iamcu.h (ASM_OUTPUT_ALIGNED_BSS): New.
1877         (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
1878         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
1879
1880 2015-07-09  Andrew MacLeod  <amacleod@redhat.com>
1881
1882         * flags.h: Don't include flag-types.h or options.h.
1883         * opts-common.c: Adjust includes.
1884         * opts-global.c: Likewise.
1885         * common/config/epiphany/epiphany-common.c: Likewise.
1886
1887 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
1888
1889         PR target/66818
1890         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Defined to 32
1891         for IA MCU.
1892
1893 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
1894
1895         PR target/66817
1896         * config/i386/i386.c (ix86_return_in_memory): Return true
1897         if int_size_in_bytes returns negative for IA MCU.
1898
1899 2015-07-09  Marek Polacek  <polacek@redhat.com>
1900
1901         PR tree-optimization/66718
1902         * Makefile.in (OBJS): Add gimple-laddress.o.
1903         * passes.def: Schedule pass_laddress.
1904         * timevar.def (DEFTIMEVAR): Add TV_GIMPLE_LADDRESS.
1905         * tree-pass.h (make_pass_laddress): Declare.
1906         * gimple-laddress.c: New file.
1907
1908 2015-07-09  Richard Biener  <rguenther@suse.de>
1909
1910         * toplev.c (compile_file): Reset maximum_field_alignment after parsing.
1911
1912 2015-07-09  Richard Biener  <rguenther@suse.de>
1913
1914         PR tree-optimization/66807
1915         * tree-chkp-opt.c (chkp_opt_fini): Free post dominator info.
1916
1917 2015-07-08  Kito Cheng  <kito.cheng@gmail.com>
1918
1919         * function.c (stack_protect_epilogue): Use if rather than switch for
1920         check targetm.have_stack_protect_test.
1921
1922 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1923
1924         * defaults.h: Provide default for WORD_REGISTER_OPERATIONS.
1925         * config/alpha/alpha.h: Define WORD_REGISTER_OPERATIONS to 1.
1926         * config/arc/arc.h: Likewise.
1927         * config/arm/arm.h: Likewise.
1928         * config/bfin/bfin.h: Likewise.
1929         * config/epiphany/epiphany.h: Likewise.
1930         * config/frv/frv.h: Likewise.
1931         * config/ia64/ia64.h: Likewise.
1932         * config/iq2000/iq2000.h: Likewise.
1933         * config/lm32/lm32.h: Likewise.
1934         * config/m32r/m32r.h: Likewise.
1935         * config/mcore/mcore.h: Likewise.
1936         * config/mep/mep.h: Likewise.
1937         * config/microblaze/microblaze.h: Likewise.
1938         * config/mips/mips.h: Likewise.
1939         * config/mmix/mmix.h: Likewise.
1940         * config/mn10300/mn10300.h: Likewise.
1941         * config/nds32/nds32.h: Likewise.
1942         * config/nios2/nios2.h: Likewise.
1943         * config/pa/pa.h: Likewise.
1944         * config/rl78/rl78.h: Likewise.
1945         * config/sh/sh.h: Likewise.
1946         * config/sparc/sparc.h: Likewise.
1947         * config/stormy16/stormy16.h: Likewise.
1948         * config/tilegx/tilegx.h: Likewise.
1949         * config/tilepro/tilepro.h: Likewise.
1950         * config/v850/v850.h: Likewise.
1951         * config/xtensa/xtensa.h: Likewise.
1952         * doc/tm.texi: Regenerate.
1953         * doc/tm.texi.in: Adjust.
1954         * combine.c (simplify_set): Likewise.
1955         (simplify_comparison): Likewise.
1956         * expr.c (store_constructor): Likewise.
1957         * internal-fn.c (expand_arith_overflow): Likewise.
1958         * reload.c (push_reload): Likewise.
1959         (find_reloads): Likewise.
1960         (find_reloads_subreg_address): Likewise.
1961         * reload1.c (eliminate_regs_1): Likewise.
1962         * rtlanal.c (nonzero_bits1): Likewise.
1963         (num_sign_bit_copies1): Likewise.
1964         * simplify-rtx.c (simplify_truncation): Likewise.
1965
1966 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1967
1968         * auto-inc-dec.c (pass_inc_dec::execute): Don't check the value
1969         of AUTO_INC_DEC with the preprocessor.
1970         * combine.c (combine_instructions): Likewise.
1971         (can_combine_p): Likewise.
1972         (try_combine): Likewise.
1973         * emit-rtl.c (try_split): Likewise.
1974         * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
1975         * lower-subreg.c (resolve_simple_move): Likewise.
1976         * lra.c (update_inc_notes): Likewise.
1977         * recog.c (asm_operand_ok): Likewise.
1978         (constrain_operands): Likewise.
1979         * regrename.c (scan_rtx_address): Likewise.
1980         * reload.c (update_auto_inc_notes): Likewise.
1981         (reg_inc_found_and_valid_p): Likewise.
1982         * reload1.c (reload): Likewise.
1983         (emit_input_reload_insns): Likewise.
1984         (delete_output_reload): Likewise.
1985         * sched-deps.c (init_insn_reg_pressure_info): Likewise.
1986         * valtrack.c (cleanup_auto_inc_dec): Likewise.
1987
1988 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1989
1990         * rtl.h: Always define AUTO_INC_DEC.
1991         * auto-inc-dec.c (pass_inc_dec::execute): Adjust.
1992         * combine.c (combine_instructions): Likewise.
1993         (can_combine_p): Likewise.
1994         (try_combine): Likewise.
1995         * emit-rtl.c (try_split): Likewise.
1996         * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
1997         * lower-subreg.c (resolve_simple_move): Likewise.
1998         * lra.c (update_inc_notes): Likewise.
1999         * recog.c (asm_operand_ok): Likewise.
2000         (constrain_operands): Likewise.
2001         * regrename.c (scan_rtx_address): Likewise.
2002         * reload.c (update_auto_inc_notes): Likewise.
2003         (find_equiv_reg): Likewise.
2004         * reload1.c (reload): Likewise.
2005         (reload_as_needed): Likewise.
2006         (choose_reload_regs): Likewise.
2007         (emit_input_reload_insns): Likewise.
2008         (delete_output_reload): Likewise.
2009         * sched-deps.c (init_insn_reg_pressure_info): Likewise.
2010         * valtrack.c (cleanup_auto_inc_dec): Likewise.
2011
2012 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2013
2014         * combine.c (can_combine_def_p): Don't check the value of
2015         HARD_FRAME_POINTER_IS_FRAME_POINTER with the preprocessor.
2016         (combinable_i3pat): Likewise.
2017         (mark_used_regs_combine): Likewise.
2018         * regrename.c (rename_chains): Likewise.
2019         * reload.c (find_reloads_address): Likewise.
2020         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
2021
2022 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2023
2024         * combine.c (update_rsp_from_reg_equal): Don't check if
2025         SHORT_IMMEDIATES_SIGN_EXTEND is defined.
2026         (reg_nonzero_bits_for_combine): Likewise.
2027         * config/alpha/alpha.h: Define SHORT_IMMEDIATES_SIGN_EXTEND to
2028         1.
2029         * config/frv/frv.h: Likewise.
2030         * config/lm32/lm32.h: Likewise.
2031         * config/mep/mep.h: Likewise.
2032         * config/mips/mips.h: Likewise.
2033         * config/rs6000/rs6000.h: Likewise.
2034         * config/sh/sh.h: Likewise.
2035         * config/tilegx/tilegx.h (enum reg_class): Likewise.
2036         * config/tilepro/tilepro.h: Likewise.
2037         * defaults.h: Add default for SHORT_IMMEDIATES_SIGN_EXTEND.
2038         * doc/tm.texi: Regenerate.
2039         * doc/tm.texi.in: Adjust.
2040         * rtlanal.c (nonzero_bits1): Likewise.
2041
2042 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2043
2044         * combine.c (do_SUBST_MODE): Don't check the value of HAVE_cc0
2045         with the preprocessor.
2046         (combine_instructions): Likewise.
2047         (try_combine): Likewise.
2048         (subst): Likewise.
2049         (distribute_notes): Likewise.
2050
2051 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2052
2053         * combine.c (try_combine): Don't check if LOAD_EXTEND_OP is
2054         defined.
2055         (simplify_set): Likewise.
2056         * cse.c (cse_insn): Likewise.
2057         * fold-const.c (fold_single_bit_test): Likewise.
2058         (fold_unary_loc): Likewise.
2059         * postreload.c (reload_cse_simplify_set): Likewise.
2060         (reload_cse_simplify_operands): Likewise.
2061
2062 2015-07-08  Jiong Wang  <jiong.wang@arm.com>
2063
2064         * config/aarch64/aarch64.c (aarch64_unspec_may_trap_p): New function.
2065         (TARGET_UNSPEC_MAY_TRAP_P): Define as aarch64_unspec_may_trap_p.
2066
2067 2015-07-08  H.J. Lu  <hongjiu.lu@intel.com>
2068
2069         PR target/66746
2070         * config/i386/x86intrin.h: Include <adxintrin.h> even if
2071         __iamcu__ is defined.
2072
2073 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
2074
2075         * config/i386/predicates.md (general_reg_operand): Use GENERAL_REGNO_P.
2076
2077 2015-07-08  Iain Sandoe  <iain@codesourcery.com>
2078
2079         PR target/66523
2080         * config/darwin.c (darwin_mark_decl_preserved): Exclude 'L' label
2081         names from preservation.
2082
2083 2015-07-08  H.J. Lu  <hongjiu.lu@intel.com>
2084
2085         PR target/66806
2086         * config/i386/i386.c (type_natural_mode): Don't warn vector ABI
2087         change for IAMCU.
2088         (function_arg_advance_32): Don't pass vectors in registers for
2089         IAMCU.
2090         (function_arg_32): Likewise.
2091         (ix86_return_in_memory): Don't return vectors in registers for
2092         IAMCU.
2093
2094 2015-07-08  Vladimir Makarov  <vmakarov@redhat.com>
2095
2096         PR middle-end/66334
2097         * ira-lives.c (process_bb_node_lives): Make conflicts with PIC
2098         hard regno live at the start of BB with incoming abnormal edges.
2099         * lra-lives.c (process_bb_lives): Ditto.
2100
2101 2015-07-08  Thomas Schwinge  <thomas@codesourcery.com>
2102
2103         PR libgomp/65099
2104         * config/nvptx/mkoffload.c (main): Create an offload image only in
2105         64-bit configurations.
2106
2107 2015-07-08  Martin Liska  <mliska@suse.cz>
2108
2109         PR bootstrap/66744
2110         * tree-sra.c (create_access_1): Call ctor without brackets.
2111         (create_artificial_child_access): Likewise.
2112
2113 2015-07-08  Richard Biener  <rguenther@suse.de>
2114
2115         PR tree-optimization/66793
2116         * gimple-ssa-isolate-paths.c (insert_trap_and_remove_trailing_statemen):
2117         Properly split the block after stmts ending it.
2118
2119 2015-07-08  Richard Biener  <rguenther@suse.de>
2120
2121         PR tree-optimization/66794
2122         * passes.c (execute_function_todo): Assert that post-dominators
2123         are not computed.
2124         * gimple-ssa-isolate-paths.c (gimple_ssa_isolate_erroneous_paths):
2125         Free post-dominators.
2126
2127 2015-07-08  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2128
2129         * config/s390/s390.c (s390_init_frame_layout): Replace assertion
2130         with early exit.
2131
2132 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
2133
2134         * config/i386/i386.md (*jcc_bt<mode>): Only allow const_int values
2135         more than or equal 8 and less than 32 when optimizing for size.
2136
2137 2015-07-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2138
2139         * config/arm/arm.c (arm_new_rtx_costs): Initialise cost to
2140         COSTS_N_INSNS (1) and increment it appropriately throughout the
2141         function.
2142
2143 2015-07-08  Richard Biener  <rguenther@suse.de>
2144
2145         * fold-const.c (fold_widened_comparison): Fix inverted comparison.
2146
2147 2015-07-08  Alan Modra  <amodra@gmail.com>
2148
2149         * target.def (rtx_costs): Remove "code" param, add "mode".
2150         * rtl.h (rtx_cost, get_full_rtx_cost): Update prototype.
2151         (set_src_cost, get_full_set_src_cost): Likewise.  Move later in file.
2152         (set_rtx_cost, get_full_set_rtx_cost): Move later in file.
2153         * rtlanal.c (rtx_cost): Add "mode" parameter.  Update targetm.rtx_costs
2154         call.  Track mode when given in rtx.
2155         (get_full_rtx_cost): Add "mode" parameter.  Update rtx_cost calls.
2156         (default_address_cost): Pass Pmode to rtx_cost.
2157         (insn_rtx_cost): Pass dest mode of set to set_src_cost.
2158         * cprop.c (try_replace_reg): Ensure set_rtx_cost is not called
2159         with NULL set.
2160         * cse.c (COST, COST_IN): Add MODE param.  Update all uses.
2161         (notreg_cost): Add mode param.  Use it.
2162         * gcse.c (want_to_gcse_p): Delete forward declaration.  Add
2163         mode param and pass to set_src_cost.  Update all calls.
2164         (hash_scan_set): Formatting.
2165         * hooks.c (hook_bool_rtx_int_int_int_intp_bool_false): Delete.
2166         (hook_bool_rtx_mode_int_int_intp_bool_false): New function.
2167         * hooks.h: Ditto.
2168         * expmed.c (init_expmed_one_conv, init_expmed_one_mode,
2169         init_expmed, expand_mult, mult_by_coeff_cost, expand_smod_pow2,
2170         emit_store_flag): Update set_src_cost and rtx_cost calls.
2171         * auto-inc-dec.c (attempt_change): Likewise.
2172         * calls.c (precompute_register_parameters): Likewise.
2173         * combine.c (expand_compound_operation, make_extraction,
2174         force_to_mode, distribute_and_simplify_rtx): Likewise.
2175         * dojump.c (prefer_and_bit_test): Likewise.
2176         * dse.c (find_shift_sequence): Likewise.
2177         * expr.c (compress_float_constant): Likewise.
2178         * fwprop.c (should_replace_address, try_fwprop_subst): Likewise.
2179         * ifcvt.c (noce_try_sign_mask): Likewise.
2180         * loop-doloop.c (doloop_optimize): Likewise.
2181         * loop-invariant.c (create_new_invariant): Likewise.
2182         * lower-subreg.c (shift_cost, compute_costs): Likewise.
2183         * optabs.c (avoid_expensive_constant, prepare_cmp_insn,
2184         lshift_cheap_p): Likewise.
2185         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
2186         try_replace_in_use, reload_cse_move2add): Likewise.
2187         * reload1.c (calculate_elim_costs_all_insns, note_reg_elim_costly):
2188         Likewise.
2189         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
2190         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
2191         * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Likewise.
2192         * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
2193         * config/aarch64/aarch64.c (aarch64_rtx_costs): Delete "code" param,
2194         add "mode" param.  Use "mode: in place of GET_MODE (x).  Pass mode
2195         to rtx_cost calls.
2196         * config/alpha/alpha.c (alpha_rtx_costs): Likewise.
2197         * config/arc/arc.c (arc_rtx_costs): Likewise.
2198         * config/arm/arm.c (arm_rtx_costs): Likewise.
2199         * config/avr/avr.c (avr_rtx_costs, avr_rtx_costs_1): Likewise.
2200         * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
2201         * config/c6x/c6x.c (c6x_rtx_costs): Likewise.
2202         * config/cris/cris.c (cris_rtx_costs): Likewise.
2203         * config/epiphany/epiphany.c (epiphany_rtx_costs): Likewise.
2204         * config/frv/frv.c (frv_rtx_costs): Likewise.
2205         * config/h8300/h8300.c (h8300_rtx_costs): Likewise.
2206         * config/i386/i386.c (ix86_rtx_costs): Likewise.
2207         * config/ia64/ia64.c (ia64_rtx_costs): Likewise.
2208         * config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
2209         * config/lm32/lm32.c (lm32_rtx_costs): Likewise.
2210         * config/m32c/m32c.c (m32c_rtx_costs): Likewise.
2211         * config/m32r/m32r.c (m32r_rtx_costs): Likewise.
2212         * config/m68k/m68k.c (m68k_rtx_costs): Likewise.
2213         * config/mcore/mcore.c (mcore_rtx_costs): Likewise.
2214         * config/mep/mep.c (mep_rtx_cost): Likewise.
2215         * config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
2216         * config/mips/mips.c (mips_rtx_costs): Likewise.
2217         * config/mmix/mmix.c (mmix_rtx_costs): Likewise.
2218         * config/mn10300/mn10300.c (mn10300_rtx_costs): Likewise.
2219         * config/msp430/msp430.c (msp430_rtx_costs): Likewise.
2220         * config/nds32/nds32-cost.c (nds32_rtx_costs_impl): Likewise.
2221         * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Likewise.
2222         * config/nds32/nds32.c (nds32_rtx_costs): Likewise.
2223         * config/nios2/nios2.c (nios2_rtx_costs): Likewise.
2224         * config/pa/pa.c (hppa_rtx_costs): Likewise.
2225         * config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
2226         * config/rl78/rl78.c (rl78_rtx_costs): Likewise.
2227         * config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
2228         * config/s390/s390.c (s390_rtx_costs): Likewise.
2229         * config/sh/sh.c (sh_rtx_costs): Likewise.
2230         * config/sparc/sparc.c (sparc_rtx_costs): Likewise.
2231         * config/spu/spu.c (spu_rtx_costs): Likewise.
2232         * config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
2233         * config/tilegx/tilegx.c (tilegx_rtx_costs): Likewise.
2234         * config/tilepro/tilepro.c (tilepro_rtx_costs): Likewise.
2235         * config/v850/v850.c (v850_rtx_costs): Likewise.
2236         * config/vax/vax.c (vax_rtx_costs): Likewise.
2237         * config/visium/visium.c (visium_rtx_costs): Likewise.
2238         * config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.
2239         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Change type of
2240         "code" param, and pass as outer_code to first rtx_cost call.  Pass
2241         mode to rtx_cost calls.
2242         (aarch64_address_cost, aarch64_if_then_else_costs): Update rtx_cost
2243         calls.
2244         (aarch64_rtx_costs_wrapper): Update.
2245         * config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs,
2246         arm_unspec_cost, arm_new_rtx_costs, arm_slowmul_rtx_costs): Update
2247         rtx_cost calls.
2248         * config/avr/avr.c (avr_final_prescan_insn): Update set_src_cost
2249         and rtx_cost calls.
2250         (avr_operand_rtx_cost): Similarly.
2251         (avr_rtx_costs_1): Correct mode passed to avr_operand_rtx_cost
2252         for subexpressions of ZERO_EXTEND, SIGN_EXTEND and COMPARE.
2253         * config/mips/mips.c (mips_stack_address_p): Comment typo.
2254         (mips_binary_cost): Update rtx_cost and set_src_cost calls.
2255         (mips_rtx_costs): Use GET_MODE (x) to detect const_int.
2256         * config/mn10300/mn10300.c (mn10300_address_cost): Pass Pmode to
2257         rtx_cost.
2258         (mn10300_rtx_costs): Correct mode passed to mn10300_address_cost.
2259         * config/rs6000/rs6000.c (rs6000_debug_rtx_costs): Update.
2260         * config/sh/sh.c (and_xor_ior_costs): Update rtx_cost call.
2261         * doc/tm.texi: Regenerate.
2262
2263 2015-07-07  Andrew MacLeod  <amacleod@redhat.com>
2264
2265         * tree-core.h: Include symtab.h.
2266         * rtl.h: Include hard-reg-set.h but not flags.h.
2267         (HARD_CONST): Remove condition compilation involving HARD_CONST since
2268         hard-reg-set.h is always included.
2269         * regs.h: Don't include hard-reg-set.h or rtl.h.
2270         * cfg.h: Include dominance.h.
2271         * gimple.h: Include tree-ssa-alias.h and gimple-expr.h.
2272         * backend.h: New.  Aggregate commonly used backend header files.
2273         * gimple-ssa.h: Don't include tree-hasher.h.
2274         * ssa.h: New.  Aggregate commonly used SSA header files.
2275         * regset.h: Remove bitmap.h and hard-reg-set.h #includes.
2276         * sel-sched-ir.h: Flatten includes.
2277         * lra-int.h: Flatten completely.
2278         * sel-sched-dump.h: Flatten includes.
2279         * ira-int.h: Flatten includes.
2280         * gimple-streamer.h: Remove all includes.
2281         * cfgloop.h: Remove all #includes except cfgloopmanip.h.
2282         * resource.h: Flatten hard-reg-set.h and df.h.
2283         * sched-int.h: Flatten insn-arrt.h and df.h.
2284         * valtrack.h: flatten bitmap.h, df.h, and rtl.h
2285         * df.h: Flatten includes, leaving regset.h, alloc-pool.h and timevar.h.
2286         * genattrtab.c (write_header): Adjust generated includes.
2287         * genautomata.c (main): Likewise.
2288         * genconditions.c (write-header): Likewise.
2289         * genemit.c (main): Likewise.
2290         * gengtype.c (open_base_files): Likewise.
2291         * genopinit.c (main): Likewise.
2292         * genoutput.c (output_prologue): Likewise.
2293         * genpeep.c (main): Likewise.
2294         * genpreds.c (write_insn_preds_c): Likewise.
2295         * genrecog.c (write_header): Likewise.
2296         * alias.c: Adjust includes.
2297         * asan.c: Likewise.
2298         * attribs.c: Likewise.
2299         * auto-inc-dec.c: Likewise.
2300         * auto-profile.c: Likewise.
2301         * bb-reorder.c: Likewise.
2302         * bt-load.c: Likewise.
2303         * builtins.c: Likewise.
2304         * caller-save.c: Likewise.
2305         * calls.c: Likewise.
2306         * ccmp.c: Likewise.
2307         * cfg.c: Likewise.
2308         * cfganal.c: Likewise.
2309         * cfgbuild.c: Likewise.
2310         * cfgcleanup.c: Likewise.
2311         * cfgexpand.c: Likewise.
2312         * cfghooks.c: Likewise.
2313         * cfgloop.c: Likewise.
2314         * cfgloopanal.c: Likewise.
2315         * cfgloopmanip.c: Likewise.
2316         * cfgrtl.c: Likewise.
2317         * cgraph.c: Likewise.
2318         * cgraphbuild.c: Likewise.
2319         * cgraphclones.c: Likewise.
2320         * cgraphunit.c: Likewise.
2321         * cilk-common.c: Likewise.
2322         * combine-stack-adj.c: Likewise.
2323         * combine.c: Likewise.
2324         * compare-elim.c: Likewise.
2325         * convert.c: Likewise.
2326         * coverage.c: Likewise.
2327         * cppbuiltin.c: Likewise.
2328         * cprop.c: Likewise.
2329         * cse.c: Likewise.
2330         * cselib.c: Likewise.
2331         * data-streamer-in.c: Likewise.
2332         * data-streamer-out.c: Likewise.
2333         * data-streamer.c: Likewise.
2334         * dbxout.c: Likewise.
2335         * dce.c: Likewise.
2336         * ddg.c: Likewise.
2337         * debug.c: Likewise.
2338         * df-core.c: Likewise.
2339         * df-problems.c: Likewise.
2340         * df-scan.c: Likewise.
2341         * dfp.c: Likewise.
2342         * dojump.c: Likewise.
2343         * dominance.c: Likewise.
2344         * domwalk.c: Likewise.
2345         * double-int.c: Likewise.
2346         * dse.c: Likewise.
2347         * dumpfile.c: Likewise.
2348         * dwarf2asm.c: Likewise.
2349         * dwarf2cfi.c: Likewise.
2350         * dwarf2out.c: Likewise.
2351         * emit-rtl.c: Likewise.
2352         * et-forest.c: Likewise.
2353         * except.c: Likewise.
2354         * explow.c: Likewise.
2355         * expmed.c: Likewise.
2356         * expr.c: Likewise.
2357         * final.c: Likewise.
2358         * fixed-value.c: Likewise.
2359         * fold-const.c: Likewise.
2360         * function.c: Likewise.
2361         * fwprop.c: Likewise.
2362         * gcc-plugin.h: Likewise.
2363         * gcse-common.c: Likewise.
2364         * gcse.c: Likewise.
2365         * generic-match-head.c: Likewise.
2366         * ggc-page.c: Likewise.
2367         * gimple-builder.c: Likewise.
2368         * gimple-expr.c: Likewise.
2369         * gimple-fold.c: Likewise.
2370         * gimple-iterator.c: Likewise.
2371         * gimple-low.c: Likewise.
2372         * gimple-match-head.c: Likewise.
2373         * gimple-pretty-print.c: Likewise.
2374         * gimple-ssa-isolate-paths.c: Likewise.
2375         * gimple-ssa-strength-reduction.c: Likewise.
2376         * gimple-streamer-in.c: Likewise.
2377         * gimple-streamer-out.c: Likewise.
2378         * gimple-walk.c: Likewise.
2379         * gimple.c: Likewise.
2380         * gimplify-me.c: Likewise.
2381         * gimplify.c: Likewise.
2382         * godump.c: Likewise.
2383         * graph.c: Likewise.
2384         * graphite-blocking.c: Likewise.
2385         * graphite-dependences.c: Likewise.
2386         * graphite-interchange.c: Likewise.
2387         * graphite-isl-ast-to-gimple.c: Likewise.
2388         * graphite-optimize-isl.c: Likewise.
2389         * graphite-poly.c: Likewise.
2390         * graphite-scop-detection.c: Likewise.
2391         * graphite-sese-to-poly.c: Likewise.
2392         * graphite.c: Likewise.
2393         * haifa-sched.c: Likewise.
2394         * hw-doloop.c: Likewise.
2395         * ifcvt.c: Likewise.
2396         * init-regs.c: Likewise.
2397         * internal-fn.c: Likewise.
2398         * ipa-chkp.c: Likewise.
2399         * ipa-comdats.c: Likewise.
2400         * ipa-cp.c: Likewise.
2401         * ipa-devirt.c: Likewise.
2402         * ipa-icf-gimple.c: Likewise.
2403         * ipa-icf.c: Likewise.
2404         * ipa-inline-analysis.c: Likewise.
2405         * ipa-inline-transform.c: Likewise.
2406         * ipa-inline.c: Likewise.
2407         * ipa-polymorphic-call.c: Likewise.
2408         * ipa-profile.c: Likewise.
2409         * ipa-prop.c: Likewise.
2410         * ipa-pure-const.c: Likewise.
2411         * ipa-ref.c: Likewise.
2412         * ipa-reference.c: Likewise.
2413         * ipa-split.c: Likewise.
2414         * ipa-utils.c: Likewise.
2415         * ipa-visibility.c: Likewise.
2416         * ipa.c: Likewise.
2417         * ira-build.c: Likewise.
2418         * ira-color.c: Likewise.
2419         * ira-conflicts.c: Likewise.
2420         * ira-costs.c: Likewise.
2421         * ira-emit.c: Likewise.
2422         * ira-lives.c: Likewise.
2423         * ira.c: Likewise.
2424         * jump.c: Likewise.
2425         * langhooks.c: Likewise.
2426         * lcm.c: Likewise.
2427         * loop-doloop.c: Likewise.
2428         * loop-init.c: Likewise.
2429         * loop-invariant.c: Likewise.
2430         * loop-iv.c: Likewise.
2431         * loop-unroll.c: Likewise.
2432         * lower-subreg.c: Likewise.
2433         * lra-assigns.c: Likewise.
2434         * lra-coalesce.c: Likewise.
2435         * lra-constraints.c: Likewise.
2436         * lra-eliminations.c: Likewise.
2437         * lra-lives.c: Likewise.
2438         * lra-remat.c: Likewise.
2439         * lra-spills.c: Likewise.
2440         * lra.c: Likewise.
2441         * lto-cgraph.c: Likewise.
2442         * lto-compress.c: Likewise.
2443         * lto-opts.c: Likewise.
2444         * lto-section-in.c: Likewise.
2445         * lto-section-out.c: Likewise.
2446         * lto-streamer-in.c: Likewise.
2447         * lto-streamer-out.c: Likewise.
2448         * lto-streamer.c: Likewise.
2449         * mcf.c: Likewise.
2450         * mode-switching.c: Likewise.
2451         * modulo-sched.c: Likewise.
2452         * omega.c: Likewise.
2453         * omp-low.c: Likewise.
2454         * optabs.c: Likewise.
2455         * opts-global.c: Likewise.
2456         * passes.c: Likewise.
2457         * plugin.c: Likewise.
2458         * postreload-gcse.c: Likewise.
2459         * postreload.c: Likewise.
2460         * predict.c: Likewise.
2461         * print-rtl.c: Likewise.
2462         * print-tree.c: Likewise.
2463         * profile.c: Likewise.
2464         * real.c: Likewise.
2465         * realmpfr.c: Likewise.
2466         * recog.c: Likewise.
2467         * ree.c: Likewise.
2468         * reg-stack.c: Likewise.
2469         * regcprop.c: Likewise.
2470         * reginfo.c: Likewise.
2471         * regrename.c: Likewise.
2472         * regstat.c: Likewise.
2473         * reload.c: Likewise.
2474         * reload1.c: Likewise.
2475         * reorg.c: Likewise.
2476         * resource.c: Likewise.
2477         * rtl-chkp.c: Likewise.
2478         * rtlanal.c: Likewise.
2479         * rtlhooks.c: Likewise.
2480         * sanopt.c: Likewise.
2481         * sched-deps.c: Likewise.
2482         * sched-ebb.c: Likewise.
2483         * sched-rgn.c: Likewise.
2484         * sched-vis.c: Likewise.
2485         * sdbout.c: Likewise.
2486         * sel-sched-dump.c: Likewise.
2487         * sel-sched-ir.c: Likewise.
2488         * sel-sched.c: Likewise.
2489         * sese.c: Likewise.
2490         * shrink-wrap.c: Likewise.
2491         * simplify-rtx.c: Likewise.
2492         * stack-ptr-mod.c: Likewise.
2493         * stmt.c: Likewise.
2494         * stor-layout.c: Likewise.
2495         * store-motion.c: Likewise.
2496         * stringpool.c: Likewise.
2497         * symtab.c: Likewise.
2498         * target-globals.c: Likewise.
2499         * targhooks.c: Likewise.
2500         * toplev.c: Likewise.
2501         * tracer.c: Likewise.
2502         * trans-mem.c: Likewise.
2503         * tree-affine.c: Likewise.
2504         * tree-browser.c: Likewise.
2505         * tree-call-cdce.c: Likewise.
2506         * tree-cfg.c: Likewise.
2507         * tree-cfgcleanup.c: Likewise.
2508         * tree-chkp-opt.c: Likewise.
2509         * tree-chkp.c: Likewise.
2510         * tree-chrec.c: Likewise.
2511         * tree-complex.c: Likewise.
2512         * tree-data-ref.c: Likewise.
2513         * tree-dfa.c: Likewise.
2514         * tree-diagnostic.c: Likewise.
2515         * tree-dump.c: Likewise.
2516         * tree-eh.c: Likewise.
2517         * tree-emutls.c: Likewise.
2518         * tree-if-conv.c: Likewise.
2519         * tree-inline.c: Likewise.
2520         * tree-into-ssa.c: Likewise.
2521         * tree-iterator.c: Likewise.
2522         * tree-loop-distribution.c: Likewise.
2523         * tree-nested.c: Likewise.
2524         * tree-nrv.c: Likewise.
2525         * tree-object-size.c: Likewise.
2526         * tree-outof-ssa.c: Likewise.
2527         * tree-parloops.c: Likewise.
2528         * tree-phinodes.c: Likewise.
2529         * tree-predcom.c: Likewise.
2530         * tree-pretty-print.c: Likewise.
2531         * tree-profile.c: Likewise.
2532         * tree-scalar-evolution.c: Likewise.
2533         * tree-sra.c: Likewise.
2534         * tree-ssa-address.c: Likewise.
2535         * tree-ssa-alias.c: Likewise.
2536         * tree-ssa-ccp.c: Likewise.
2537         * tree-ssa-coalesce.c: Likewise.
2538         * tree-ssa-copy.c: Likewise.
2539         * tree-ssa-copyrename.c: Likewise.
2540         * tree-ssa-dce.c: Likewise.
2541         * tree-ssa-dom.c: Likewise.
2542         * tree-ssa-dse.c: Likewise.
2543         * tree-ssa-forwprop.c: Likewise.
2544         * tree-ssa-ifcombine.c: Likewise.
2545         * tree-ssa-live.c: Likewise.
2546         * tree-ssa-loop-ch.c: Likewise.
2547         * tree-ssa-loop-im.c: Likewise.
2548         * tree-ssa-loop-ivcanon.c: Likewise.
2549         * tree-ssa-loop-ivopts.c: Likewise.
2550         * tree-ssa-loop-manip.c: Likewise.
2551         * tree-ssa-loop-niter.c: Likewise.
2552         * tree-ssa-loop-prefetch.c: Likewise.
2553         * tree-ssa-loop-unswitch.c: Likewise.
2554         * tree-ssa-loop.c: Likewise.
2555         * tree-ssa-math-opts.c: Likewise.
2556         * tree-ssa-operands.c: Likewise.
2557         * tree-ssa-phiopt.c: Likewise.
2558         * tree-ssa-phiprop.c: Likewise.
2559         * tree-ssa-pre.c: Likewise.
2560         * tree-ssa-propagate.c: Likewise.
2561         * tree-ssa-reassoc.c: Likewise.
2562         * tree-ssa-sccvn.c: Likewise.
2563         * tree-ssa-scopedtables.c: Likewise.
2564         * tree-ssa-sink.c: Likewise.
2565         * tree-ssa-strlen.c: Likewise.
2566         * tree-ssa-structalias.c: Likewise.
2567         * tree-ssa-tail-merge.c: Likewise.
2568         * tree-ssa-ter.c: Likewise.
2569         * tree-ssa-threadedge.c: Likewise.
2570         * tree-ssa-threadupdate.c: Likewise.
2571         * tree-ssa-uncprop.c: Likewise.
2572         * tree-ssa-uninit.c: Likewise.
2573         * tree-ssa.c: Likewise.
2574         * tree-ssanames.c: Likewise.
2575         * tree-stdarg.c: Likewise.
2576         * tree-streamer-in.c: Likewise.
2577         * tree-streamer-out.c: Likewise.
2578         * tree-streamer.c: Likewise.
2579         * tree-switch-conversion.c: Likewise.
2580         * tree-tailcall.c: Likewise.
2581         * tree-vect-data-refs.c: Likewise.
2582         * tree-vect-generic.c: Likewise.
2583         * tree-vect-loop-manip.c: Likewise.
2584         * tree-vect-loop.c: Likewise.
2585         * tree-vect-patterns.c: Likewise.
2586         * tree-vect-slp.c: Likewise.
2587         * tree-vect-stmts.c: Likewise.
2588         * tree-vectorizer.c: Likewise.
2589         * tree-vrp.c: Likewise.
2590         * tree.c: Likewise.
2591         * tsan.c: Likewise.
2592         * ubsan.c: Likewise.
2593         * valtrack.c: Likewise.
2594         * value-prof.c: Likewise.
2595         * var-tracking.c: Likewise.
2596         * varasm.c: Likewise.
2597         * varpool.c: Likewise.
2598         * vmsdbgout.c: Likewise.
2599         * vtable-verify.c: Likewise.
2600         * web.c: Likewise.
2601         * wide-int.cc: Likewise.
2602         * xcoffout.c: Likewise.
2603         * config/aarch64/aarch64-builtins.c: Likewise.
2604         * config/aarch64/aarch64.c: Likewise.
2605         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
2606         * config/alpha/alpha.c: Likewise.
2607         * config/arc/arc.c: Likewise.
2608         * config/arm/aarch-common.c: Likewise.
2609         * config/arm/arm-builtins.c: Likewise.
2610         * config/arm/arm-c.c: Likewise.
2611         * config/arm/arm.c: Likewise.
2612         * config/avr/avr-c.c: Likewise.
2613         * config/avr/avr-log.c: Likewise.
2614         * config/avr/avr.c: Likewise.
2615         * config/bfin/bfin.c: Likewise.
2616         * config/c6x/c6x.c: Likewise.
2617         * config/cr16/cr16.c: Likewise.
2618         * config/cris/cris.c: Likewise.
2619         * config/darwin-c.c: Likewise.
2620         * config/darwin.c: Likewise.
2621         * config/epiphany/epiphany.c: Likewise.
2622         * config/epiphany/mode-switch-use.c: Likewise.
2623         * config/epiphany/resolve-sw-modes.c: Likewise.
2624         * config/fr30/fr30.c: Likewise.
2625         * config/frv/frv.c: Likewise.
2626         * config/ft32/ft32.c: Likewise.
2627         * config/h8300/h8300.c: Likewise.
2628         * config/i386/i386-c.c: Likewise.
2629         * config/i386/i386.c: Likewise.
2630         * config/i386/msformat-c.c: Likewise.
2631         * config/i386/winnt-cxx.c: Likewise.
2632         * config/i386/winnt-stubs.c: Likewise.
2633         * config/i386/winnt.c: Likewise.
2634         * config/ia64/ia64-c.c: Likewise.
2635         * config/ia64/ia64.c: Likewise.
2636         * config/iq2000/iq2000.c: Likewise.
2637         * config/lm32/lm32.c: Likewise.
2638         * config/m32c/m32c-pragma.c: Likewise.
2639         * config/m32c/m32c.c: Likewise.
2640         * config/m32r/m32r.c: Likewise.
2641         * config/m68k/m68k.c: Likewise.
2642         * config/mcore/mcore.c: Likewise.
2643         * config/mep/mep-pragma.c: Likewise.
2644         * config/mep/mep.c: Likewise.
2645         * config/microblaze/microblaze-c.c: Likewise.
2646         * config/microblaze/microblaze.c: Likewise.
2647         * config/mips/mips.c: Likewise.
2648         * config/mmix/mmix.c: Likewise.
2649         * config/mn10300/mn10300.c: Likewise.
2650         * config/moxie/moxie.c: Likewise.
2651         * config/msp430/msp430-c.c: Likewise.
2652         * config/msp430/msp430.c: Likewise.
2653         * config/nds32/nds32-cost.c: Likewise.
2654         * config/nds32/nds32-fp-as-gp.c: Likewise.
2655         * config/nds32/nds32-intrinsic.c: Likewise.
2656         * config/nds32/nds32-isr.c: Likewise.
2657         * config/nds32/nds32-md-auxiliary.c: Likewise.
2658         * config/nds32/nds32-memory-manipulation.c: Likewise.
2659         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
2660         * config/nds32/nds32-predicates.c: Likewise.
2661         * config/nds32/nds32.c: Likewise.
2662         * config/nios2/nios2.c: Likewise.
2663         * config/nvptx/nvptx.c: Likewise.
2664         * config/pa/pa.c: Likewise.
2665         * config/pdp11/pdp11.c: Likewise.
2666         * config/rl78/rl78-c.c: Likewise.
2667         * config/rl78/rl78.c: Likewise.
2668         * config/rs6000/rs6000-c.c: Likewise.
2669         * config/rs6000/rs6000.c: Likewise.
2670         * config/rx/rx.c: Likewise.
2671         * config/s390/s390-c.c: Likewise.
2672         * config/s390/s390.c: Likewise.
2673         * config/sh/sh-c.c: Likewise.
2674         * config/sh/sh-mem.cc: Likewise.
2675         * config/sh/sh.c: Likewise.
2676         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
2677         * config/sh/sh_treg_combine.cc: Likewise.
2678         * config/sol2-c.c: Likewise.
2679         * config/sol2-cxx.c: Likewise.
2680         * config/sol2-stubs.c: Likewise.
2681         * config/sol2.c: Likewise.
2682         * config/sparc/sparc-c.c: Likewise.
2683         * config/sparc/sparc.c: Likewise.
2684         * config/spu/spu-c.c: Likewise.
2685         * config/spu/spu.c: Likewise.
2686         * config/stormy16/stormy16.c: Likewise.
2687         * config/tilegx/mul-tables.c: Likewise.
2688         * config/tilegx/tilegx-c.c: Likewise.
2689         * config/tilegx/tilegx.c: Likewise.
2690         * config/tilepro/mul-tables.c: Likewise.
2691         * config/tilepro/tilepro-c.c: Likewise.
2692         * config/tilepro/tilepro.c: Likewise.
2693         * config/v850/v850-c.c: Likewise.
2694         * config/v850/v850.c: Likewise.
2695         * config/vax/vax.c: Likewise.
2696         * config/visium/visium.c: Likewise.
2697         * config/vms/vms-c.c: Likewise.
2698         * config/vms/vms.c: Likewise.
2699         * config/vxworks.c: Likewise.
2700         * config/xtensa/xtensa.c: Likewise.
2701
2702 2015-07-07  Uros Bizjak  <ubizjak@gmail.com>
2703
2704         * config/i386/i386.md (*jcc_bt<mode>): Only split before reload.
2705         Remove operand constraints.  Change operand 2 predicate to
2706         nonmemory operand.  Limit const_int values to mode bitsize.  Only
2707         allow const_int values less than 32 when optimizing for size.
2708         (*jcc_bt<mode>_1, *jcc_bt<mode>_mask): Only split before reload.
2709         Remove operand constraints.
2710         (*bt<mode>): Use SImode for const_int values less than 32.
2711         (regmode): Remove mode attribute.
2712
2713 2015-07-07  Anatoly Sokolov  <aesok@post.ru>
2714
2715         * config/moxie/moxie.h (GO_IF_LEGITIMATE_ADDRESS): Remove macros.
2716         * config/moxie/moxie.c (moxie_reg_ok_for_base_p,
2717           moxie_legitimate_address_p): New functions.
2718           (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
2719
2720 2015-07-07  Tom de Vries  <tom@codesourcery.com>
2721
2722         PR tree-optimization/66642
2723         * tree-parloops.c (transform_to_exit_first_loop_alt): Update function
2724         header comment.  Rename split_edge variable to edge_at_split.  Split
2725         exit edge to create new loop exit bb.  Insert loop exit phis in new
2726         loop exit bb.
2727
2728 2015-07-07  Tom de Vries  <tom@codesourcery.com>
2729
2730         * tree-cfg.c (get_virtual_phi): New function.
2731         * tree-cfg.h (get_virtual_phi): Declare.
2732         * tree-ssa-loop-manip.c (replace_uses_in_dominated_bbs)
2733         (rewrite_virtuals_into_loop_closed_ssa): New function.
2734         * tree-ssa-loop-manip.h (rewrite_virtuals_into_loop_closed_ssa):
2735         Declare.
2736         * tree-parloops.c (replace_uses_in_bbs_by): Remove.
2737         (transform_to_exit_first_loop_alt): Use
2738         rewrite_virtuals_into_loop_closed_ssa.
2739
2740 2015-07-07  Richard Biener  <rguenther@suse.de>
2741
2742         * fold-const.c (fold_binary_loc): Move
2743         (X & C2) << C1 -> (X << C1) & (C2 << C1) simplification ...
2744         * match.pd: ... here.
2745         Add (X * C1) % C2 -> 0 simplification pattern derived from
2746         extract_muldiv_1.
2747
2748 2015-07-07  Kaz Kojima  <kkojima@gcc.gnu.org>
2749
2750         PR target/66780
2751         * config/sh/sh.md (symGOT_load): Revert a part of 2015-03-03
2752         change for target/65249.
2753
2754 2015-07-07  Paulo Matos  <pmatos@broadcom.com>
2755
2756         * symtab.c (address_matters_1): Fix typo in comment above.
2757         (can_increase_alignment_p): Likewise.
2758
2759 2015-07-07  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
2760
2761         * function.c (free_after_compilation): Clear PROP_cfg in
2762         f->curr_properties.
2763
2764 2015-07-07  Richard Biener  <rguenther@suse.de>
2765
2766         * tree-ssa-propagate.c (add_ssa_edge): Dump what edge list we
2767         add which use to.
2768         (add_control_edge): Remove excessive vertical space in dumping.
2769         (process_ssa_edge_worklist): Simulate at most one statement and
2770         return whether we did.  Do not simulate PHIs if they are in a
2771         BB not yet simulated.
2772         (ssa_propagate): Adjust to always drain the BB worklist whenever
2773         a BB is available there, likewise the VARYING edges list before
2774         the interesting edge list.
2775
2776 2015-07-07  Christian Bruel  <christian.bruel@st.com>
2777
2778         PR target/52144
2779         * config/arm/elf.h (TARGET_ASM_FILE_START_APP_OFF): Delete.
2780
2781 2015-07-07  Richard Biener  <rguenther@suse.de>
2782
2783         PR middle-end/66739
2784         * match.pd: Condition A - B ==/!= 0 -> A ==/!= B on single-use
2785         A - B.
2786
2787 2015-07-06  Uros Bizjak  <ubizjak@gmail.com>
2788
2789         * config/i386/i386.md (insv<mode>): Rename from insv.  Use SWI48
2790         modes for operands 0 and 3.  Use SImode for operands 2 and 3.
2791         Copy operand 0 to a temporary if !ext_register_operand.  Remove
2792         ancient extract_bit_field workaround.
2793         (insv<mode>_1): Rename from mov<mode>_insv_1.
2794         (*insvqi): Rename from *movqi_insv_2.
2795         * config/i386/i386.c (emit_i386_cw_initialization): Update calls
2796         for renamed insvsi_1.
2797         (promote_duplicated_reg): Ditto for renamed insv<mode>_1.
2798
2799 2015-07-06  Nathan Sidwell  <nathan@codesourcery.com>
2800
2801         * config/nvptx/nvptx.c (nvptx_reorg): Remove unused vars.  Fix
2802         call to nvptx_reorg_subreg.
2803
2804 2015-07-06  Jim Wilson  <jim.wilson@linaro.org>
2805
2806         * graphite-blocking.c (HAVE_isl): Include <stddef.h>.
2807         * graphite-dependencies.c, graphite-interchange.c,
2808         graphite-isl-ast-to-gimple.c, graphite-optimize-isl.c, graphite-poly.c,
2809         graphite-scop-detection.c, graphite-sese-to-poly.c, graphite.c:
2810         Likewise.
2811
2812 2015-07-06  Marc Glisse  <marc.glisse@inria.fr>
2813
2814         * match.pd: Remove element_mode inside HONOR_*.
2815         (~ (-A) -> A - 1, ~ (A - 1) -> -A): Handle complex types.
2816         (~X | X -> -1, ~X ^ X -> -1): Merge.
2817         * tree.c (build_each_one_cst): New function.
2818         * tree.h (build_each_one_cst): Likewise.
2819
2820 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
2821
2822         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
2823         PROCESSOR_IAMCU.
2824
2825 2015-07-06  Steve Ellcey  <sellcey@imgtec.com>
2826
2827         * config.gcc <mips*-*-*>: Add fused-madd.opt.
2828         * config/mips/mips.opt (mfused-madd): Remove.
2829         * config/mips/mips.c (mips_rtx_costs): Update cost calculations.
2830         * config/mips/mips.h (TARGET_MIPS8000): New.
2831         (ISA_HAS_FP_MADD4_MSUB4): Remove.
2832         (ISA_HAS_FP_MADDF_MSUBF): Remove.
2833         (ISA_HAS_FP_MADD3_MSUB3): Remove.
2834         (ISA_HAS_NMADD4_NMSUB4): Remove.
2835         (ISA_HAS_NMADD3_NMSUB3): Remove.
2836         (ISA_HAS_FUSED_MADD4): New.
2837         (ISA_HAS_UNFUSED_MADD4): New.
2838         (ISA_HAS_FUSED_MADDF): New.
2839         (ISA_HAS_FUSED_MADD3): New.
2840         * config/mips/mips.md: (fma<mode>4) Change from insn to expand.
2841         (*fma<mode>4_madd3) New.
2842         (*fma<mode>4_madd4) New.
2843         (*fma<mode>4_maddf) New.
2844         (fms<mode>4) New.
2845         (*fms<mode>4_msub3) New.
2846         (*fms<mode>4_msub4) New.
2847         (fnma<mode>4) New.
2848         (*fnma<mode>4_nmadd3) New.
2849         (*fnma<mode>4_nmadd4) New.
2850         (fnms<mode>4) New.
2851         (*fnms<mode>4_nmsub3) New.
2852         (*fnms<mode>4_nmsub4) New.
2853         (*madd4<mode>) Modify to be unfused only.
2854         (*msub4<mode>) Modify to be unfused only.
2855         (*nmadd4<mode>) Modify to be unfused only.
2856         (*nmsub4<mode>) Modify to be unfused only.
2857         (*madd3<mode>) Remove.
2858         (*msub3<mode>) Remove.
2859         (*nmadd3<mode>) Remove.
2860         (*nmsub3<mode>) Remove.
2861         (*nmadd3<mode>_fastmath) Remove.
2862         (*nmsub3<mode>_fastmath) Remove.
2863         (*nmadd4<mode>_fastmath) Update condition.
2864         (*nmsub4<mode>_fastmath) Update condition.
2865
2866 2015-07-06  Alan Lawrence  <alan.lawrence@arm.com>
2867
2868         PR target/65956
2869         * config/arm/arm.c (arm_needs_doubleword_align): Drop any outer
2870         alignment attribute, exploring one level down for records and arrays.
2871
2872 2015-07-06  Uros Bizjak  <ubizjak@gmail.com>
2873
2874         * config/i386/i386.md (extv<mode>): Rename from extv.  Use SWI24
2875         modes for operands 0 and 1.  Use SImode for operands 2 and 3.
2876         Copy operand 1 to a temporary if !ext_register_operand.  Remove
2877         ancient extract_bit_field workaround.
2878         (*extv<mode>): Rename from *mov<mode>_extv_1.
2879         (*extvqi): Rename from *movqi_extv_1.
2880         (extzv<mode>): Rename from extzv.  Use SWI248 modes for
2881         operands 0 and 1.  Use SImode for operands 2 and 3. Copy operand 1
2882         to a temporary if !ext_register_operand.  Remove ancient
2883         extract_bit_field workaround.
2884         (*extzv<mode>): Rename from *mov<mode>_extzv_1.
2885         (*extzvqi): Rename from *movqi_extzv_2.
2886         (*testqi_ext_3): Remove modes from const_int_operand predicated
2887         operands.  Add "n" constraint.
2888         (*btsq, *btrq, *btcq): Remove mode from const_0_to_63 predicated
2889         operand.  Add "J" constraint.
2890         (*btsq, *btrq, *btcq peephole2s): Remove mode from
2891         const_0_to_63 predicated operand.
2892         (regmode): New insn attribute.
2893         (*bt<mode>): Use SImode for operand 1.  Change operand 1 predicate
2894         to nonmemory_operand.  Use regmode insn attribute.
2895         (*jcc_bt<mode>_1): Convert operand 2 to SImode.
2896         (*jcc_bt<mode>_mask): Remove mode from operand 3.
2897         (*jcc_btsi_1, *jcc_btsi_mask_1): Remove patterns.
2898         (tbm_bextri_<mode>): Remove modes from const_0_to_255 predicated
2899         operands.  Use "N" constraint instead of "n".
2900
2901 2015-07-06  Alan Lawrence  <alan.lawrence@arm.com>
2902
2903         * config/arm/arm.md (movdi): Avoid odd-number ldrd/strd in ARM state.
2904
2905 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
2906
2907         PR target/66749
2908         * config/i386/i386.c (iamcu_cost): New.
2909         (m_IAMCU): Likewise.
2910         (initial_ix86_arch_features): Disable X86_ARCH_CMOV for m_IAMCU.
2911         (processor_target_table): Add an entry for "iamcu".
2912         (processor_alias_table): Likewise.
2913         (ix86_issue_rate): Handle PROCESSOR_IAMCU.
2914         (ix86_adjust_cost): Likewise.
2915         (ia32_multipass_dfa_lookahead): Likewise.
2916         * config/i386/i386.h (processor_type): Add PROCESSOR_IAMCU.
2917         * config/i386/x86-tune.def: Updated for m_IAMCU.
2918
2919 2015-07-06  Richard Biener  <rguenther@suse.de>
2920
2921         PR tree-optimization/66772
2922         * tree-ssa-ccp.c (ccp_visit_phi_node): Make sure that copy
2923         values are available in the PHI node BB when there are
2924         still unexecutable edges.
2925
2926 2015-07-06  Richard Biener  <rguenther@suse.de>
2927
2928         PR tree-optimization/66767
2929         * tree-vect-loop-manip.c (vect_create_cond_for_align_checks):
2930         Make sure to build the alignment test on a SSA name without
2931         final alignment info valid only if the alignment test
2932         evaluates to true.
2933
2934 2015-07-06  Bernd Schmidt  <bernds@codesourcery.com>
2935
2936         PR target/66620
2937         * config/bfin/bfin.c (hwloop_optimize): Create new bb between jump and
2938         loop start when inserting LSETUP.
2939
2940 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
2941
2942         PR target/53383
2943         * config/i386/i386.c (ix86_option_override_internal): Allow
2944         -mincoming-stack-boundary=3 for 64-bit if SSE is disabled.
2945
2946 2015-07-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2947
2948         * read-md.c (decimal_string): Rename to ...
2949         (md_decimal_string): ... this.
2950         (handle_enum): Reflect this.
2951
2952 2015-07-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>
2953
2954         PR target/66731
2955         * config/aarch64/aarch64.md (fnmul<mode>3): Handle -frounding-math.
2956
2957 2015-07-06  Richard Biener  <rguenther@suse.de>
2958
2959         PR middle-end/66759
2960         * match.pd: Add missing constraint of y to REAL_CST in
2961         REAL_CST - x CMP y to y - CST CMP x simplification.
2962
2963 2015-07-06  Eric Botcazou  <ebotcazou@adacore.com>
2964
2965         PR tree-optimization/66757
2966         * match.pd: Add missing condition to ~X ^ C -> X ^ ~C.
2967
2968 2015-07-05  Chung-Lin Tang  <cltang@codesourcery.com>
2969             Sandra Loosemore <sandra@codesourcery.com>
2970
2971         * config/nios2/nios2-protos.h (nios2_symbol_ref_in_small_data_p):
2972         Delete extern declaration.
2973         (gprel_constant_p): Add extern declaration.
2974         * config/nios2/constraints.md ("S"): Use gprel_constant_p
2975         instead of nios2_symbol_ref_in_small_data_p.
2976         * config/nios2/nios2.c (nios2_legitimate_address_p): Likewise.
2977         (nios2_symbol_ref_in_small_data_p): Make static.
2978         (gprel_constant_p): Make non-static.
2979
2980 2015-07-05  Gerald Pfeifer  <gerald@pfeifer.com>
2981
2982         * doc/fragments.texi (Target Fragment): Convert debian.org
2983         link to use https.
2984         * doc/install.texi (Configuration): Ditto.
2985
2986 2015-07-05  Jakub Jelinek  <jakub@redhat.com>
2987
2988         PR tree-optimization/66718
2989         * tree-vect-stmts.c (vectorizable_call): Replace uses of
2990         GOMP_SIMD_LANE outside of loop with vf - 1 rather than 0.
2991
2992         PR tree-optimization/66718
2993         * tree-vect-stmts.c (vectorizable_assignment, vectorizable_store,
2994         vectorizable_load, vectorizable_condition): Move vectype,
2995         nunits, ncopies computation after checking what kind of statement
2996         stmt is.
2997
2998 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
2999
3000         * target-insns.def (extv, extzv, insv): New targetm instruction
3001         patterns.
3002         * optabs.c (get_extraction_insn): Use them instead of HAVE_*/gen_*
3003         interface.
3004         * recog.c (simplify_while_replacing): Likewise.
3005
3006 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3007
3008         * target-insns.def (doloop_begin, doloop_end): New targetm
3009         instruction patterns.
3010         * loop-init.c: Include target.h.
3011         (pass_loop2::gate): Use the new targetm patterns instead of
3012         HAVE_*/gen_* interface.
3013         (pass_rtl_doloop::gate): Likewise.
3014         (pass_rtl_doloop::execute): Remove preprocessor condition.
3015         * hw-doloop.c: Build unconditionally.
3016         * loop-doloop.c: Likewise.
3017         (doloop_optimize): Use the new targetm patterns instead of
3018         HAVE_*/gen_* interface.
3019         (doloop_modify): Likewise. Change type of doloop_seq to rtx_insn *.
3020         * modulo-sched.c (doloop_register_get): Likewise.
3021
3022 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3023
3024         * target-insns.def (clear_cache): New targetm instruction pattern.
3025         * builtins.c (expand_builtin___clear_cache): Use it instead of
3026         HAVE_*/gen_* interface.
3027
3028 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3029
3030         * target-insns.def (allocate_stack, check_stack, probe_stack)
3031         (probe_stack_address, split_stack_prologue, split_stack_space_check):
3032         New targetm instruction patterns.
3033         * explow.c (allocate_dynamic_stack_space): Use them instead of
3034         HAVE_*/gen_* interface.
3035         (emit_stack_probe): Likewise.
3036         (probe_stack_range): Likewise.
3037         * function.c (thread_prologue_and_epilogue_insns): Likewise.
3038
3039 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3040
3041         * target-insns.def (stack_protect_set, stack_protect_test): New
3042         targetm instruction patterns.
3043         * cfgexpand.c (stack_protect_prologue): Use them instead of
3044         HAVE_*/gen_* interface.
3045         * function.c (stack_protect_epilogue): Likewise.
3046
3047 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3048
3049         * expr.h (gen_move_insn_uncast): Delete.
3050         * expr.c (gen_move_insn_uncast): Delete.
3051
3052 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3053
3054         * target-insns.def (restore_stack_block, restore_stack_function)
3055         (restore_stack_nonlocal, save_stack_block, save_stack_function)
3056         (save_stack_nonlocal): New targetm instruction patterns.
3057         * builtins.c (expand_builtin_apply): Use them instead of
3058         HAVE_*/gen_* interface.
3059         * explow.c (emit_stack_save, emit_stack_restore): Likewise.
3060
3061 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3062
3063         * target-insns.def (trap): New targetm instruction pattern.
3064         * builtins.c (expand_builtin_trap): Use it instead of HAVE_*/gen_*
3065         interface.
3066         * explow.c (allocate_dynamic_stack_space): Likewise.
3067         * ifcvt.c (find_if_header): Likewise.
3068
3069 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3070
3071         * target-insns.def (prefetch): New targetm instruction pattern.
3072         * tree-ssa-loop-prefetch.c: Include targeth.
3073         (tree_ssa_prefetch_arrays): Use prefetch targetm pattern instead
3074         of HAVE_*/gen_* interface.
3075         * builtins.c (expand_builtin_prefetch): Likewise.
3076         * toplev.c (process_options): Likewise.
3077
3078 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3079
3080         * target-insns.def (untyped_call, untyped_return): New targetm
3081         instruction patterns.
3082         * builtins.c (expand_builtin_apply): Use them instead of
3083         HAVE_*/gen_* interface.
3084         (result_vector): Define unconditionally.
3085
3086 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3087
3088         * target-insns.def (builtin_longjmp, builtin_setjmp_receiver)
3089         (builtin_setjmp_setup, exception_receiver, nonlocal_goto)
3090         (nonlocal_goto_receiver): New targetm instruction patterns.
3091         * builtins.c (expand_builtin_setjmp_setup): Use them instead
3092         of HAVE_*/gen_* interface.
3093         (expand_builtin_setjmp_receiver): Likewise.
3094         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
3095         * except.c (expand_dw2_landing_pad_for_region): Likewise.
3096
3097 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
3098
3099         * target.def: Add code_for_* hooks.
3100         * gentarget-def.c (def_target_insn): Add TARGET_CODE_FOR_* macros.
3101         * defaults.h (HAVE_tablejump, gen_tablejump): Delete.
3102         * target-insns.def (casesi, tablejump): New targetm instruction
3103         patterns.
3104         * expr.c (try_casesi): Use them instead of HAVE_*/gen_* interface.
3105         (do_tablejump): Likewise.
3106         * stmt.c (expand_switch_as_decision_tree_p): Likewise.
3107         (expand_sjlj_dispatch_table): Likewise.
3108         * targhooks.c (default_case_values_threshold): Likewise.
3109
3110 2015-07-04  Sandra Loosemore  <sandra@codesourcery.com>
3111
3112         * config/nios2/nios2.c (save_reg, restore_reg): Use plus_constant.
3113         Use rtx_insn * instead of rtx.
3114         (nios2_emit_add_constant): Use rtx_insn * instead of rtx.
3115         (nios2_expand_prologue, nios2_expand_epilogue): Likewise.
3116         (nios2_call_tls_get_addr): Likewise.
3117         (nios2_emit_expensive_div): Likewise.
3118         (nios2_emit_move_sequence): Change return type to bool.
3119         * config/nios2/nios2-protos.h (nios2_emit_move_sequence):
3120         Change return type to bool.
3121
3122 2015-07-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3123
3124         PR target/66747
3125         * config/mips/mips.c (mips_find_gp_ref): Handle instruction sequences.
3126
3127 2015-07-04  John David Anglin  <danglin@gcc.gnu.org>
3128
3129         PR target/66114
3130         * config/pa/pa.md (indirect_jump): Use pmode_register_operand instead
3131         of register_operand.  Remove constraint.
3132
3133 2015-07-04  Marc Glisse  <marc.glisse@inria.fr>
3134
3135         * tree-cfg.c (verify_gimple_assign_ternary) <VEC_COND_EXPR>: Check
3136         the first argument.
3137
3138 2015-07-03  Paolo Carlini  <paolo.carlini@oracle.com>
3139
3140         * attribs.c (decl_attributes): Guard inform with the return value
3141         of the preceding warning.
3142
3143 2015-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
3144
3145         * doc/invoke.texi (moverride): Move to correct section.
3146
3147 2015-07-03  Richard Biener  <rguenther@suse.de>
3148
3149         * genmatch.c (commutative_tree_code, commutative_ternary_tree_code):
3150         Copy from tree.c
3151         (dt_operand::gen_gimple_expr): After valueizing operands
3152         re-canonicalize operand order for commutative tree codes.
3153
3154 2015-07-03  H.J. Lu  <hongjiu.lu@intel.com>
3155
3156         PR target/66746.
3157         * config/i386/ia32intrin.h (__crc32b): Don't define if __iamcu__
3158         is defined.
3159         (__crc32w): Likewise.
3160         (__crc32d): Likewise.
3161         (__rdpmc): Likewise.
3162         (__rdtscp): Likewise.
3163         (_rdpmc): Likewise.
3164         (_rdtscp): Likewise.
3165         * config/i386/x86intrin.h: Only include ia32intrin.h if __iamcu__
3166         is defined.
3167
3168 2015-07-03  Richard Biener  <rguenther@suse.de>
3169
3170         * fold-const.c (fold_mathfn_compare): Remove.
3171         (fold_inf_compare): Likewise.
3172         (fold_comparison): Move floating point comparison simplifications...
3173         * match.pd: ... to patterns here.  Introduce simple_comparisons
3174         operator list and use it for patterns formerly in fold_comparison.
3175
3176 2015-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
3177
3178         PR tree-optimization/66119
3179         * toplev.c (process_options): Don't set up default values for
3180         the sra_max_scalarization_size_{speed,size} parameters.
3181         * tree-sra (analyze_all_variable_accesses): If no values
3182         have been set for the sra_max_scalarization_size_{speed,size}
3183         parameters, call get_move_ratio to get target defaults.
3184
3185 2015-07-03  Richard Biener  <rguenther@suse.de>
3186
3187         * fold-const.c (fold_binary_loc): Move (T)ptr & CST folding...
3188         * match.pd: ... here.
3189
3190 2015-07-03  Gerald Pfeifer  <gerald@pfeifer.com>
3191
3192         PR target/37072
3193         * doc/invoke.texi (i386 and x86-64 Options): -mno-fancy-math-387
3194         is not actually the default on FreeBSD.
3195
3196 2015-07-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3197
3198         * config/rs6000/rs6000-builtin.def (CMPGE_16QI): New built-in
3199         definition.
3200         (CMPGE_8HI): Likewise.
3201         (CMPGE_4SI): Likewise.
3202         (CMPGE_2DI): Likewise.
3203         (CMPGE_U16QI): Likewise.
3204         (CMPGE_U8HI): Likewise.
3205         (CMPGE_U4SI): Likewise.
3206         (CMPGE_U2DI): Likewise.
3207         (CMPLE_16QI): Likewise.
3208         (CMPLE_8HI): Likewise.
3209         (CMPLE_4SI): Likewise.
3210         (CMPLE_2DI): Likewise.
3211         (CMPLE_U16QI): Likewise.
3212         (CMPLE_U8HI): Likewise.
3213         (CMPLE_U4SI): Likewise.
3214         (CMPLE_U2DI): Likewise.
3215         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
3216         overloads for ALTIVEC_BUILTIN_VEC_CMPGE and
3217         ALTIVEC_BUILTIN_VEC_CMPLE.
3218         * config/rs6000/vector.md (vector_ge<mode>): Restrict to
3219         floating-point vector modes.
3220         (vector_nlt<mode>): New define_expand.
3221         (vector_nltu<mode>): Likewise.
3222         (vector_ngt<mode>): Likewise.
3223         (vector_ngtu<mode>): Likewise.
3224
3225 2015-07-02  Segher Boessenkool  <segher@kernel.crashing.org>
3226
3227         PR rtl-optimization/66706
3228         * combine.c (make_compound_operation): If an AND of SUBREG of
3229         LSHIFTRT does not simplify, see if just the AND of SUBREG does.
3230
3231 2015-07-02  Alan Lawrence  <alan.lawrence@arm.com>
3232
3233         * tree-pass.h (make_pass_ch_vect): New.
3234         * passes.def: Add pass_ch_vect just before pass_if_conversion.
3235
3236         * tree-ssa-loop-ch.c (ch_base, pass_ch_vect, pass_data_ch_vect,
3237         pass_ch::process_loop_p, pass_ch_vect::process_loop_p,
3238         make_pass_ch_vect): New.
3239         (pass_ch): Extend ch_base.
3240
3241         (pass_ch::execute): Move all but loop_optimizer_init/finalize to...
3242         (ch_base::copy_headers): ...here.
3243
3244 2015-07-02  Richard Biener  <rguenther@suse.de>
3245
3246         * builtins.c (get_pointer_alignment_1): Handle POINTER_PLUS_EXPR.
3247         * fold-const.c (get_pointer_modulus_and_residue): Remove.
3248         (fold_binary_loc): Implement (T)ptr & CST in terms of
3249         get_pointer_alignment_1.
3250         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop):
3251         Make sure to build the alignment test on a SSA name without
3252         final alignment info valid only after the prologue.
3253
3254 2015-07-02  Hans-Peter Nilsson  <hp@axis.com>
3255
3256         * config/cris/cris.md ("epilogue"): Remove condition.
3257         ("prologue"): Ditto.
3258
3259 2015-07-02  Richard Biener  <rguenther@suse.de>
3260
3261         * tree-ssa-dom.c (build_and_record_new_cond): Add optional
3262         parameter to record a condition that is false.
3263         (record_conditions): When recording an extra NE_EXPR that is
3264         true also record a EQ_EXPR that is false.
3265
3266 2015-07-02  Bin Cheng  <bin.cheng@arm.com>
3267
3268         * tree-ssa-loop-ivopts.c (struct ivopts_data): New field iv_obstack.
3269         (tree_ssa_iv_optimize_init): Initialize iv_obstack.
3270         (alloc_iv): New parameter.  Allocate struct iv using obstack_alloc.
3271         (set_iv, find_interesting_uses_address, add_candidate_1): New
3272         argument to alloc_iv.
3273         (find_interesting_uses_op, find_interesting_uses_cond): Don't
3274         duplicate struct iv.
3275         (free_loop_data): Don't free struct iv explicitly.
3276         (tree_ssa_iv_optimize_finalize): Free iv_obstack.
3277
3278 2015-07-01  DJ Delorie  <dj@redhat.com>
3279
3280         * config/s390/tpf.h (LIBSTDCXX): Change to CPP1.
3281         (LIB_SPEC): Add.
3282         (SUPPORTS_DISCRIMINATOR): Define.
3283
3284 2015-07-01  Richard Sandiford  <richard.sandiford@arm.com>
3285
3286         PR bootstrap/66685
3287         * rtl.c (classify_insn): Only return JUMP_INSN for parallel returns if
3288         there are no CALLs in the same pattern.
3289
3290 2015-07-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3291
3292         PR rtl-optimization/61047
3293         * rtlanal.c (get_initial_register_offset): New function.
3294         (rtx_addr_can_trap_p_1): Check offsets of stack references.
3295
3296 2015-07-01  Richard Biener  <rguenther@suse.de>
3297
3298         * fold-const.c (fold_comparison): Move X - Y CMP 0 -> X CMP Y,
3299         X * C1 CMP 0 -> X CMP 0, X CMP X, ~X CMP ~Y -> Y CMP X and
3300         ~X CMP C -> X CMP' ~C to ...
3301         * match.pd: ... patterns here.
3302
3303 2015-07-01  Nick Clifton  <nickc@redhat.com>
3304
3305         * config/msp430/msp430.md (zero_extendhipsi2): Use MOVX.A to store
3306         a 16-bit value into a 20-bit memory slot.
3307
3308 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
3309
3310         * doc/sourcebuild.texi (AArch64-specific attributes): Document
3311         "aarch64_tiny", "aarch64_small", "aarch64_large",
3312         "aarch64_little_endian", "aarch64_big_endian".
3313
3314 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
3315
3316         * doc/sourcebuild.texi (AArch64-specific attributes): New subsection.
3317         Document "aarch64_small_fpic".
3318
3319 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
3320
3321         * configure.ac: Add check for aarch64 assembler -fpic relocation
3322         modifier support.
3323         * configure: Regenerate.
3324         * config.in: Regenerate.
3325         * config/aarch64/aarch64.c (initialize_aarch64_code_model): Fall back
3326         to -fPIC if not support of -fpic relocation modifier in assembler.
3327
3328 2015-07-01  Richard Sandiford  <richard.sandiford@arm.com>
3329
3330         PR bootstrap/66685
3331         * rtl.c (classify_insn): Handle returns in PARALLELs.
3332
3333 2015-07-01  Eric Botcazou  <ebotcazou@adacore.com>
3334
3335         PR middle-end/66633
3336         * tree-nested.c (convert_nonlocal_omp_clauses): Initialize need_chain
3337         to true if the function is nested and if not optimizing.
3338         (convert_local_omp_clauses): Initialize need_frame to true if the
3339         function contains nested functions and if not optimizing.
3340
3341 2015-07-01  Richard Biener  <rguenther@suse.de>
3342
3343         * fold-const.c (fold_binary_loc): Move ~X ^ X -> -1 and
3344         (X & Y) ^ Y -> ~X & Y transforms to ...
3345         * match.pd: ... here.
3346
3347 2015-07-01  Richard Biener <rguenther@suse.de>
3348
3349         * genmatch.c (expr::gen_transform): Shortcut re-simplifying
3350         of converts to avoid uninteresting noise from the conversion
3351         simplifying patterns.
3352
3353 2015-06-30  Sandra Loosemore <sandra@codesourcery.com>
3354
3355         * config/c6x/c6x.c (try_rename_operands): Do not depend on
3356         gcc_assert evaluating its argument for side-effect.
3357
3358 2015-06-30  Kaz Kojima  <kkojima@gcc.gnu.org>
3359
3360         PR target/64833
3361         * config/sh/sh.md (casesi_worker_1): Set length to 8 when
3362         flag_pic is set.
3363
3364 2015-06-30  Eric Botcazou  <ebotcazou@adacore.com>
3365
3366         * lto-streamer-out.c (class DFS): Adjust hash_scc method.
3367         (DFS::DFS): Pass this_ref_p and ref_p to hash_scc.
3368         (hash_scc): Add this_ref_p and ref_p parameters and pass them
3369         to the inner DFS walk.
3370
3371 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
3372
3373         * target-insns.def (jump): New targetm instruction pattern.
3374         * bb-reorder.c (get_uncond_jump_length): Use targetm.gen_jump
3375         instead of gen_jump.
3376         (fix_up_crossing_landing_pad): Likewise.
3377         (add_labels_and_missing_jumps): Likewise.
3378         (fix_crossing_conditional_branches): Likewise.
3379         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
3380         (force_nonfallthru_and_redirect): Likewise.
3381         * cse.c (cse_insn): Likewise.
3382         * expmed.c (expand_divmod): Likewise.
3383         * expr.c (store_expr_with_bounds, expand_expr_real_2): Likewise.
3384         * haifa-sched.c (init_before_recovery): Likewise.
3385         (sched_create_recovery_edges): Likewise.
3386         * ifcvt.c (find_cond_trap): Likewise.
3387         * optabs.c (expand_doubleword_shift, expand_doubleword_clz): Likewise.
3388         (expand_float, expand_fix): Likewise.
3389         * stmt.c (emit_jump): Likewise.
3390
3391 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
3392
3393         * defaults.h (HAVE_load_multiple, gen_load_multiple)
3394         (HAVE_store_multiple, gen_store_multiple): Delete.
3395         * target-insns.def (load_multiple, store_multiple): New targetm
3396         instruction patterns.
3397         * expr.c (move_block_to_reg, move_block_from_reg): Use them instead
3398         of HAVE_*/gen_* interface.
3399
3400 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
3401
3402         * defaults.h (HAVE_mem_thread_fence, gen_mem_thread_fence)
3403         (HAVE_memory_barrier, gen_memory_barrier, HAVE_mem_signal_fence)
3404         (gen_mem_signal_fence): Delete.
3405         * target-insns.def (mem_signal_fence, mem_thread_fence)
3406         (memory_barrier): New targetm instruction patterns.
3407         * optabs.c (expand_mem_thread_fence): Use them instead of HAVE_*/gen_*
3408         interface.
3409         (expand_mem_signal_fence): Likewise.
3410
3411 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
3412
3413         * defaults.h (HAVE_epilogue, gen_epilogue): Delete.
3414         * target-insns.def (epilogue, prologue, sibcall_prologue): New
3415         targetm instruction patterns.
3416         * alias.c (init_alias_analysis): Use them instead of HAVE_*/gen_*
3417         interface.
3418         * calls.c (expand_call): Likewise.
3419         * cfgrtl.c (cfg_layout_finalize): Likewise.
3420         * df-scan.c (df_get_entry_block_def_set): Likewise.
3421         (df_get_exit_block_use_set): Likewise.
3422         * dwarf2cfi.c (pass_dwarf2_frame::gate): Likewise.
3423         * final.c (final_start_function): Likewise.
3424         * function.c (thread_prologue_and_epilogue_insns): Likewise.
3425         (reposition_prologue_and_epilogue_notes): Likewise.
3426         * reorg.c (find_end_label): Likewise.
3427         * toplev.c (process_options): Likewise.
3428
3429 2015-06-30  David Malcolm  <dmalcolm@redhat.com>
3430
3431         * typed-splay-tree.h: New file.
3432
3433 2015-06-30  Vladimir Makarov  <vmakarov@redhat.com>
3434
3435         PR debug/66691
3436         * lra-int.h (lra_substitute_pseudo): Add a parameter.
3437         (lra_substitute_pseudo_within_insn): Ditto.
3438         * lra.c (lra_substitute_pseudo): Add a parameter.  Simplify subreg
3439         of constant.
3440         (lra_substitute_pseudo_within_insn): Add a parameter.  Transfer it
3441         to lra_substitute_pseudo.
3442         * lra-lives.c (process_bb_lives): Add an argument to
3443         lra_substitute_pseudo_within_insn call.
3444         * lra-constraints.c (inherit_reload_reg, split_reg): Add an
3445         argument to lra_substitute_pseudo and
3446         lra_substitute_pseudo_within_insn calls.
3447         (remove_inheritance_pseudos, undo_optional_reloads): Ditto.
3448
3449 2015-06-30  H.J. Lu  <hongjiu.lu@intel.com>
3450
3451         * configure: Regenerated.
3452
3453 2015-06-30  H.J. Lu  <hongjiu.lu@intel.com>
3454
3455         * config.gcc: Support i[34567]86-*-elfiamcu target.
3456         * config/i386/iamcu.h: New.
3457         * config/i386/i386.opt: Add -miamcu.
3458         * doc/invoke.texi: Document -miamcu.
3459         * common/config/i386/i386-common.c  (ix86_handle_option): Turn
3460         off x87/MMX/SSE/AVX codegen for -miamcu.
3461         * config/i386/i386-c.c (ix86_target_macros_internal): Define
3462         __iamcu/__iamcu__ for -miamcu.
3463         * config/i386/i386.h (PREFERRED_STACK_BOUNDARY_DEFAULT): Set
3464         to MIN_STACK_BOUNDARY if TARGET_IAMCU is true.
3465         (BIGGEST_ALIGNMENT): Set to 32 if TARGET_IAMCU is true.
3466         * config/i386/i386.c (ix86_option_override_internal): Ignore and
3467         warn -mregparm for Intel MCU.  Turn on -mregparm=3 for Intel
3468         MCU by default.  Default long double to 64-bit for Intel MCU.
3469         Turn on -freg-struct-return for Intel MCU.  Issue an error when
3470         -miamcu is used in 64-bit or x32 mode or if x87, MMX, SSE or
3471         AVX is turned on.
3472         (function_arg_advance_32): Pass value whose size is no larger
3473         than 8 bytes in registers for Intel MCU.
3474         (function_arg_32): Likewise.
3475         (ix86_return_in_memory): Return value whose size is no larger
3476         than 8 bytes in registers for Intel MCU.
3477         (iamcu_alignment): New function.
3478         (ix86_data_alignment): Call iamcu_alignment if TARGET_IAMCU is
3479         true.
3480         (ix86_local_alignment): Don't increase alignment for Intel MCU.
3481         (x86_field_alignment): Return iamcu_alignment if TARGET_IAMCU is
3482         true.
3483
3484 2015-06-30  Marek Polacek  <polacek@redhat.com>
3485
3486         * match.pd (X - (X / Y) * Y): Use convert1 and convert2.  Convert
3487         both operands of the resulting expression.
3488
3489         * match.pd (~x | x): Don't use tree_nop_conversion_p.  Build
3490         the final expression with the operand's type and then convert
3491         it to the type of the expression.
3492
3493 2015-06-30  Richard Biener  <rguenther@suse.de>
3494
3495         * fold-const.c (fold_binary_loc): Move ~x & ~y -> ~(x | y) and
3496         ~x | ~y -> ~(x & y), (x & CST) ^ (x & CST2) -> (x & CST) | (x & CST2),
3497         (X | Y) ^ X -> Y & ~ X, ~X ^ ~Y to X ^ Y and ~X ^ C to X ^ ~C ...
3498         * match.pd: ... to patterns here.
3499
3500 2015-06-30  Richard Biener  <rguenther@suse.de>
3501
3502         PR tree-optimization/66704
3503         * tree-vect-data-refs.c (vect_setup_realignment): Use
3504         make_ssa_name for non-SSA name source.
3505
3506 2015-06-30  Jakub Jelinek  <jakub@redhat.com>
3507
3508         PR middle-end/66702
3509         * omp-low.c (simd_clone_adjust): Handle addressable linear
3510         or uniform parameters or non-gimple type uniform parameters.
3511
3512 2015-06-30  Richard Biener  <rguenther@suse.de>
3513
3514         * fold-const.c (fold_unary_loc): Move abs(abs(x)) -> abs(x),
3515         ~ (-A) to A - 1, ~ (A - 1) or ~ (A + -1) to -A and some cases of
3516         ~(X ^ Y) to ~X ^ Y or X ^ ~Y if ~X or ~Y simplify to ...
3517         * match.pd: ... here.
3518         Add a few cases of A - B -> A + (-B) when B "easily" negates.
3519         Move (x & y) | x -> x and friends before
3520         (x | CST1) & CST2 -> (x & CST2) | (CST1 & CST2).
3521
3522 2015-06-30  Eric Botcazou  <ebotcazou@adacore.com>
3523
3524         * config/sparc/leon.md (leon_load): Enable for all LEON variants if
3525         -mfix-ut699 is not specified.
3526         (leon3_load): Rename into...
3527         (ut699_load): ...this.  Enable for all LEON variants if -mfix-ut699
3528         is specified.
3529
3530 2015-06-30  Marek Polacek  <polacek@redhat.com>
3531
3532         * fold-const.c (fold_binary_loc): Move ~X | X folding ...
3533         * match.pd: ... here.
3534
3535 2015-06-30  Richard Biener  <rguenther@suse.de>
3536
3537         * target-insns.def (canonicalize_funcptr_for_compare): Add.
3538         * fold-const.c (build_range_check): Replace uses of
3539         HAVE_canonicalize_funcptr_for_compare.
3540         (fold_widened_comparison): Likewise.
3541         (fold_sign_changed_comparison): Likewise.
3542         * dojump.c: Include "target.h".
3543         (do_compare_and_jump): Replace uses of
3544         HAVE_canonicalize_funcptr_for_compare and
3545         gen_canonicalize_funcptr_for_compare.
3546         * expr.c (do_store_flag): Likewise.
3547
3548 2015-06-30  Tom de Vries  <tom@codesourcery.com>
3549
3550         PR tree-optimization/66652
3551         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
3552         max_loop_iterations to determine if nit + 1 overflows.
3553
3554 2015-06-30  Richard Biener  <rguenther@suse.de>
3555
3556         * tree-vrp.c (register_edge_assert_for_2): Also register
3557         asserts for dominating conversion results.
3558
3559 2015-06-30  Bin Cheng  <bin.cheng@arm.com>
3560
3561         * tree-ssa-loop-ivopts.c (record_sub_use): Don't reset ssa_name
3562         field in struct iv.
3563
3564 2015-06-29  Jack Howarth  <howarth.at.gcc@gmail.com>
3565
3566         PR target/66509
3567         * configure.ac: Fix filds and fildq test for 64-bit.
3568         * configure: Regenerated.
3569
3570 2015-06-29  Nathan Sidwell  <nathan@codesourcery.com>
3571
3572         * config/nvptx/nvptx.md (nvptx_reorg_subreg): New fn, broken out of ...
3573         (nvptx_reorg): Here.  Keep the non-subreg pieces.
3574
3575 2015-06-29  H.J. Lu  <hongjiu.lu@intel.com>
3576
3577         * config/gnu-user.h (GNU_USER_TARGET_ENDFILE_SPEC): Use
3578         PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
3579
3580 2015-06-29  Uros Bizjak  <ubizjak@gmail.com>
3581
3582         * config/i386/i386.md (*jcc_1): Use %! in asm template.
3583         Set attribute "length_nobnd" instead of "length".
3584         (*jcc_2): Ditto.
3585         (jump): Ditto.
3586         (*jcc_1_bnd, *jcc_2_bnd, jump_bnd): Remove insn patterns.
3587
3588 2015-06-29  Sandra Loosemore  <sandra@codesourcery.com>
3589
3590         * config/nios2/nios2.c (nios2_delegitimize_address): Make
3591         assert less restrictive.
3592
3593 2015-06-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3594
3595         PR fortran/66605
3596         * cgraphunit.c (cgraph_node::finalize_function): Do not call
3597         do_warn_unused_parameter.
3598         * function.c (do_warn_unused_parameter): Move from here.
3599         * function.h (do_warn_unused_parameter): Do not declare.
3600
3601 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
3602
3603         PR target/65697
3604         * gcc.target/arm/armv-sync-comp-swap.c: New.
3605         * gcc.target/arm/armv-sync-op-acquire.c: New.
3606         * gcc.target/arm/armv-sync-op-full.c: New.
3607         * gcc.target/arm/armv-sync-op-release.c: New.
3608
3609 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
3610
3611         PR target/65697
3612         * config/armc/arm.c (arm_split_compare_and_swap): For ARMv8, replace an
3613         initial acquire barrier with final barrier.
3614
3615 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
3616
3617         PR target/65697
3618         * config/armc/arm.c (arm_split_atomic_op): For ARMv8, replace an
3619         initial acquire barrier with final barrier.
3620
3621 2015-06-29  Richard Henderson  <rth@redhat.com>
3622
3623         * config/i386/constraints.md (Bf): New constraint.
3624         * config/i386/i386-c.c (ix86_target_macros): Define
3625         __GCC_ASM_FLAG_OUTPUTS__.
3626         * config/i386/i386.c (ix86_md_asm_adjust): Handle =@cc* constraints
3627         as flags outputs.
3628         * doc/extend.texi (FlagOutputOperands): Document them.
3629
3630 2015-06-29  Jiong Wang  <jiong.wang@arm.com>
3631
3632         * config/arch64/aarch64.md (UNSPEC_TLSLE): New enumeration.
3633         * config/arch64/aarch64.md (tlsle_small): Rename to tlsle and use new
3634         unspec name.
3635         (tlsle_small_<mode>): Rename to tlsle_<mode> and use new unspec name.
3636         * config/arch64/aarch64-protos.h (arch64_symbol_type): Rename
3637         SYMBOL_SMALL_TPREL to SYMBOL_TLSLE.
3638         (aarch64_symbol_context): Ditto.
3639         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto
3640         and use new pattern name.
3641         (aarch64_expand_mov_immediate): Ditto.
3642         (aarch64_print_operand): Ditto.
3643         (aarch64_classify_tls_symbol): Ditto.
3644
3645 2015-06-29  Marek Polacek  <polacek@redhat.com>
3646             Marc Glisse  <marc.glisse@inria.fr>
3647
3648         * fold-const.c (fold_binary_loc): Move X - (X / Y) * Y -> X % Y to ...
3649         * match.pd: ... pattern here.
3650
3651 2015-06-29  Tom de Vries  <tom@codesourcery.com>
3652
3653         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Simplify
3654         function structure.
3655
3656 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
3657
3658         * doc/invoke.texi (Aarch64 Options, -march): Split out arch and
3659         feature description, split out the native option, add a link to
3660         the feature documentation, rearrange and slightly rewrite text.
3661         (Aarch64 options, -mcpu): Likewise.
3662         (Aarch64 options, Feature Modifiers): Add an anchor.  Mention
3663         +rdma implies Adv. SIMD.
3664
3665 2015-06-29  Marek Polacek  <polacek@redhat.com>
3666
3667         PR c/66322
3668         * function.c (stack_protect_epilogue): Remove a cast to int.
3669         * doc/invoke.texi: Update -Wswitch-bool description.
3670
3671 2015-06-29  Richard Biener  <rguenther@suse.de>
3672
3673         * genmatch.c (add_operator): Treat ADDR_EXPR as atom.
3674         * fold-const.c (fold_binary_loc): Move &A - &B simplification
3675         via ptr_difference_const ...
3676         * match.pd: ... here.
3677         When matching (X ^ Y) == Y also match with swapped operands.
3678
3679 2015-06-29  Richard Biener  <rguenther@suse.de>
3680
3681         * lto-streamer.h (LTO_major_version): Bump to 5.
3682
3683 2015-06-29  Richard Biener  <rguenther@suse.de>
3684
3685         PR tree-optimization/66677
3686         * tree-vect-stmts.c (vect_transform_stmt): Make assert about
3687         STMT_VINFO_VEC_STMT clobbering less strict.
3688
3689 2015-06-29  Kugan Vivekanandarajah  <kuganv@linaro.org>
3690
3691         PR middle-end/64130
3692         * tree-vrp.c (extract_range_from_binary_expr_1): For unsigned
3693         division, compute max and min when value ranges for dividend and
3694         divisor are available.
3695
3696 2015-06-28  Chung-Lin Tang <cltang@codesourcery.com>
3697             Sandra Loosemore <sandra@codesourcery.com>
3698
3699         * regrename.h (regrename_do_replace): Change to return bool.
3700         * regrename.c (rename_chains): Check return value of
3701         regname_do_replace.
3702         (regrename_do_replace): Re-validate the modified insns and
3703         return bool status.
3704         * config/aarch64/cortex-a57-fma-steering.c (rename_single_chain):
3705         Update to match rename_chains changes.
3706         * config/c6x/c6x.c (try_rename_operands): Assert that
3707         regrename_do_replace returns true.
3708
3709 2015-06-28  Uros Bizjak  <ubizjak@gmail.com>
3710
3711         * config/i386/i386.md (<mode>_ldx): Do not zero-extend non-Pmode
3712         operand 2 here.  Use copy_addr_to_reg to copy non-index
3713         register operand 2 to a temporary.
3714         (<mode>_stx): Ditto for operand 1.
3715         (*<mode>_ldx, *<mode>_stx): Remove enclosing parallel.
3716         * config/i386/i386.c (ix86_load_bounds): Zero-extend non-Pmode ptr here.
3717         (ix86_store_bounds): Ditto.
3718
3719 2015-06-27  Patrick Palka  <ppalka@gcc.gnu.org>
3720
3721         * print-tree.c (print_node) [TREE_VEC]: Print its length.
3722
3723 2015-06-26  Andrew MacLeod  <amacleod@redhat.com>
3724
3725         * gimple.c (gimple_call_set_fndecl): Remove.
3726         * gimple.h (gimple_call_set_fndecl): Relocate to gimple.h and call
3727         build1_loc directly instead of build_fold_addr_expr_loc.
3728
3729 2015-06-26  Richard Sandiford  <richard.sandiford@arm.com>
3730
3731         * hash-map.h (hash_map::traverse): Use the definition of the
3732         Key typedef rather than the typedef itself.
3733
3734 2015-06-26  Martin Jambor  <mjambor@suse.cz>
3735
3736         PR debug/66301
3737         * tree-ssa-pre.c (before_dom_children): Check that dump_file is not
3738         NULL instead of calling dump_enabled_p.
3739
3740 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
3741
3742         * config/aarch64/aarch64.opt: (override): New.
3743         * doc/invoke.texi (override): Document.
3744         * config/aarch64/aarch64.c (aarch64_flag_desc): New
3745         (aarch64_fusible_pairs): Likewise.
3746         (aarch64_tuning_flags): Likewise.
3747         (aarch64_tuning_override_function): Likewise.
3748         (aarch64_tuning_override_functions): Likewise.
3749         (aarch64_parse_one_option_token): Likewise.
3750         (aarch64_parse_boolean_options): Likewise.
3751         (aarch64_parse_fuse_string): Likewise.
3752         (aarch64_parse_tune_string): Likewise.
3753         (aarch64_parse_one_override_token): Likewise.
3754         (aarch64_parse_override_string): Likewise.
3755         (aarch64_override_options): Parse the -override string if it
3756         is present.
3757
3758 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
3759
3760         * config/aarch64/aarch64-protos.h (tune_params): Remove
3761         const from members.
3762         (aarch64_tune_params): Remove const, change to no longer be
3763         a pointer.
3764         * config/aarch64/aarch64.c (aarch64_tune_params): Remove const,
3765         change to no longer be a pointer, initialize to generic_tunings.
3766         (aarch64_min_divisions_for_recip_mul): Change dereference of
3767         aarch64_tune_params to member access.
3768         (aarch64_reassociation_width): Likewise.
3769         (aarch64_rtx_mult_cost): Likewise.
3770         (aarch64_address_cost): Likewise.
3771         (aarch64_branch_cost): Likewise.
3772         (aarch64_rtx_costs): Likewise.
3773         (aarch64_register_move_cost): Likewise.
3774         (aarch64_memory_move_cost): Likewise.
3775         (aarch64_sched_issue_rate): Likewise.
3776         (aarch64_builtin_vectorization_cost): Likewise.
3777         (aarch64_override_options): Take a copy of the selected tuning
3778         struct in to aarch64_tune_params, rather than just setting
3779         a pointer, change dereferences of aarch64_tune_params to member
3780         accesses.
3781         (aarch64_override_options_after_change): Change dereferences of
3782         aarch64_tune_params to member access.
3783         (aarch64_macro_fusion_p): Likewise.
3784         (aarch_macro_fusion_pair_p): Likewise.
3785         * config/aarch64/cortex-a57-fma-steering.c (gate): Likewise.
3786
3787 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
3788
3789         * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Delete.
3790         (aarch64_tune_flags): Likewise.
3791         (AARCH64_TUNE_FMA_STEERING): Likewise.
3792         * config/aarch64/aarch64-cores.def (cortex-a57): Remove reference
3793         to AARCH64_FL_USE_FMA_STEERING_PASS.
3794         (cortex-a57.cortex-a53): Likewise.
3795         (cortex-a72): Use cortexa72_tunings.
3796         (cortex-a72.cortex-a53): Likewise.
3797         (exynos-m1): Likewise.
3798         * config/aarch64/aarch64-protos.h (tune_params): Add
3799         a field: extra_tuning_flags.
3800         * config/aarch64/aarch64-tuning-flags.def: New.
3801         * config/aarch64/aarch64-protos.h (AARCH64_EXTRA_TUNING_OPTION): New.
3802         (aarch64_extra_tuning_flags): Likewise.
3803         (aarch64_tune_params): Declare here.
3804         * config/aarch64/aarch64.c (generic_tunings): Set extra_tuning_flags.
3805         (cortexa53_tunings): Likewise.
3806         (cortexa57_tunings): Likewise.
3807         (thunderx_tunings): Likewise.
3808         (xgene1_tunings): Likewise.
3809         (cortexa72_tunings): New.
3810         * config/aarch64/cortex-a57-fma-steering.c: Include aarch64-protos.h.
3811          (gate): Check against aarch64_tune_params.
3812         * config/aarch64/t-aarch64 (cortex-a57-fma-steering.o): Depend on
3813         aarch64-protos.h.
3814
3815 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
3816
3817         * config/aarch64/aarch64-fusion-pairs.def: New.
3818         * config/aarch64/aarch64-protos.h (aarch64_fusion_pairs): New.
3819         * config/aarch64/aarch64.c (AARCH64_FUSE_NOTHING): Move to
3820         aarch64_fusion_pairs.
3821         (AARCH64_FUSE_MOV_MOVK): Likewise.
3822         (AARCH64_FUSE_ADRP_ADD): Likewise.
3823         (AARCH64_FUSE_MOVK_MOVK): Likewise.
3824         (AARCH64_FUSE_ADRP_LDR): Likewise.
3825         (AARCH64_FUSE_CMP_BRANCH): Likewise.
3826
3827 2015-06-26  Jiong Wang  <jiong.wang@arm.com>
3828
3829         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): New type
3830         SYMBOL_SMALL_GOT_28K.
3831         * config/aarch64/aarch64.md: (ldr_got_small_<mode>): Support new GOT
3832         relocation modifiers.
3833         (unspec): New enum "UNSPEC_GOTMALLPIC28K.
3834         (ldr_got_small_28k_<mode>): New.
3835         (ldr_got_small_28k_sidi): New.
3836         * config/aarch64/iterators.md (got_modifier): New mode iterator.
3837         * config/aarch64/aarch64-otps.h (aarch64_code_model): New model.
3838         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Support
3839         SYMBOL_SMALL_GOT_28K.
3840         (aarch64_rtx_costs): Add costs for new instruction sequences.
3841         (initialize_aarch64_code_model): Initialize new model.
3842         (aarch64_classify_symbol): Recognize new model and new symbol classification.
3843         (aarch64_asm_preferred_eh_data_format): Support new model.
3844         (aarch64_load_symref_appropriately): Generate new instruction
3845         sequences for -fpic.
3846         (TARGET_USE_PSEUDO_PIC_REG): New definition.
3847         (aarch64_use_pseudo_pic_reg): New function.
3848
3849 2015-06-26  Jiong Wang  <jiong.wang@arm.com>
3850
3851         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Rename
3852         SYMBOL_SMALL_GOT to SYMBOL_SMALL_GOT_4G.
3853         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto.
3854         (aarch64_expand_mov_immediate): Ditto.
3855         (aarch64_print_operand): Ditto.
3856         (aarch64_classify_symbol): Ditto.
3857
3858 2015-06-26  Nathan Sidwell  <nathan@codesourcery.com>
3859
3860         * config/nvptx/nvptx.md (call_operation): Remove unused variables.
3861
3862 2015-06-26  Bin Cheng  <bin.cheng@arm.com>
3863
3864         PR bootstrap/66638
3865         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Skip if
3866         assertion failed.  Remove assertion itself.
3867
3868 2015-06-26  Richard Biener  <rguenther@suse.de>
3869
3870         * fold-const.c (fold_binary_loc): Remove -A CMP -B -> A CMP B
3871         and -A CMP CST -> A CMP -CST which is redundant with a pattern
3872         in match.pd.
3873         Move (A | C) == D where C & ~D != 0 -> 0, (X ^ Y) ==/!= 0 -> X ==/!= Y,
3874         (X ^ Y) ==/!= {Y,X} -> {X,Y} ==/!= 0 and
3875         (X ^ C1) op C2 -> X op (C1 ^ C2) to ...
3876         * match.pd: ... patterns here.
3877
3878 2015-06-26  Marek Polacek  <polacek@redhat.com>
3879
3880         * match.pd ((x | y) & ~(x & y) -> x ^ y,
3881         (x | y) & (~x ^ y) -> x & y): New patterns.
3882
3883 2015-06-26  Richard Sandiford  <richard.sandiford@arm.com>
3884
3885         * rtl.h (emit): Add an optional boolean parameter to control
3886         whether barriers are emitted.
3887         * emit-rtl.c (emit): Likewise.
3888         * gensupport.c (get_emit_function): Return null rather than "emit".
3889         * genemit.c (gen_emit_seq): Handle the null return value.
3890         Don't emit barriers after the final instruction in the sequence.
3891         * gentarget-def.c (main): Don't emit barriers after the instruction.
3892
3893 2015-06-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3894
3895         * config/arm/arm.c (arm_output_multireg_pop): Fix use of
3896         TARGET_UNIFIED_ASM.
3897
3898 2015-06-26  Richard Biener  <rguenther@suse.de>
3899
3900         * match.pd: Allow associating FLOAT_TYPE_P when flag_associative_math.
3901
3902 2015-06-26  Richard Biener  <rguenther@suse.de>
3903
3904         * match.pd: Allow (p +p off1) +p off2 to (p +p (off1 + off2))
3905         irrespective on whether the inner operation has a single use
3906         of both off are constant.
3907
3908 2015-06-26  Uros Bizjak  <ubizjak@gmail.com>
3909             Segher Boessenkool  <segher@kernel.crashing.org>
3910
3911         PR target/66412
3912         * config/i386/i386.md (various splitters): Use shallow_copy_rtx
3913         before doing PUT_MODE or PUT_CODE on operands to avoid
3914         in-place RTX modification.
3915
3916 2015-06-25  H.J. Lu  <hongjiu.lu@intel.com>
3917
3918         * gentarget-def.c (def_target_insn): Cast return of strtol to
3919         unsigned int.
3920
3921 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
3922
3923         * gimple.h (gimple_call_set_fn): Move inline function.
3924         * gimple.c (gimple_call_set_fn): Relocate here.
3925
3926 2015-06-25  Oleg Endo  <olegendo@gcc.gnu.org>
3927
3928         PR target/65979
3929         PR target/66611
3930         * config/sh/sh.md (tstsi_t peephole2): Use insn_invalid_p to check if
3931         the replacement insn will work.
3932
3933 2015-06-25  H.J. Lu  <hongjiu.lu@intel.com>
3934
3935         * gcc.c (driver_handle_option): Validate -pie if PIE is enabled
3936         by default.
3937
3938 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
3939
3940         * function.h (ipa_opt_pass, ipa_opt_pass_d): Move forward declarations.
3941         * cgraph.h: Include ipa-ref.h and plugin-api.h.
3942         (ipa_opt_pass, ipa_opt_pass_d)): Relocate forward declarations here.
3943         (symtab_node::address_can_be_compared_p): Move function.
3944         * cgraph.c (symtab_node::address_can_be_compared_p): Relocate function
3945         definition here.
3946         * asan.c: Remove ipa-ref.h and plugin-api.h from include list.
3947         * auto-profile.c: Likewise.
3948         * bb-reorder.c: Likewise.
3949         * builtins.c: Likewise.
3950         * calls.c: Likewise.
3951         * cfgexpand.c: Likewise.
3952         * cgraphbuild.c: Likewise.
3953         * cgraphclones.c: Likewise.
3954         * cgraphunit.c: Likewise.
3955         * combine.c: Likewise.
3956         * coverage.c: Likewise.
3957         * data-streamer-in.c: Likewise.
3958         * data-streamer-out.c: Likewise.
3959         * data-streamer.c: Likewise.
3960         * dbxout.c: Likewise.
3961         * dwarf2out.c: Likewise.
3962         * except.c: Likewise.
3963         * expr.c: Likewise.
3964         * final.c: Likewise.
3965         * fold-const.c: Likewise.
3966         * ggc-page.c: Likewise.
3967         * gimple-fold.c: Likewise.
3968         * gimple-iterator.c: Likewise.
3969         * gimple-pretty-print.c: Likewise.
3970         * gimple-streamer-in.c: Likewise.
3971         * gimple-streamer-out.c: Likewise.
3972         * gimple.c: Likewise.
3973         * gimplify.c: Likewise.
3974         * ipa-chkp.c: Likewise.
3975         * ipa-comdats.c: Likewise.
3976         * ipa-cp.c: Likewise.
3977         * ipa-devirt.c: Likewise.
3978         * ipa-icf-gimple.c: Likewise.
3979         * ipa-icf.c: Likewise.
3980         * ipa-inline-analysis.c: Likewise.
3981         * ipa-inline-transform.c: Likewise.
3982         * ipa-inline.c: Likewise.
3983         * ipa-polymorphic-call.c: Likewise.
3984         * ipa-profile.c: Likewise.
3985         * ipa-prop.c: Likewise.
3986         * ipa-pure-const.c: Likewise.
3987         * ipa-ref.c: Likewise.
3988         * ipa-reference.c: Likewise.
3989         * ipa-split.c: Likewise.
3990         * ipa-utils.c: Likewise.
3991         * ipa-visibility.c: Likewise.
3992         * ipa.c: Likewise.
3993         * langhooks.c: Likewise.
3994         * lto-cgraph.c: Likewise.
3995         * lto-compress.c: Likewise.
3996         * lto-opts.c: Likewise.
3997         * lto-section-in.c: Likewise.
3998         * lto-section-out.c: Likewise.
3999         * lto-streamer-in.c: Likewise.
4000         * lto-streamer-out.c: Likewise.
4001         * lto-streamer.c: Likewise.
4002         * omp-low.c: Likewise.
4003         * opts-global.c: Likewise.
4004         * passes.c: Likewise.
4005         * predict.c: Likewise.
4006         * print-tree.c: Likewise.
4007         * profile.c: Likewise.
4008         * ree.c: Likewise.
4009         * sanopt.c: Likewise.
4010         * stor-layout.c: Likewise.
4011         * symtab.c: Likewise.
4012         * toplev.c: Likewise.
4013         * trans-mem.c: Likewise.
4014         * tree-cfg.c: Likewise.
4015         * tree-chkp.c: Likewise.
4016         * tree-eh.c: Likewise.
4017         * tree-emutls.c: Likewise.
4018         * tree-inline.c: Likewise.
4019         * tree-nested.c: Likewise.
4020         * tree-parloops.c: Likewise.
4021         * tree-pretty-print.c: Likewise.
4022         * tree-profile.c: Likewise.
4023         * tree-sra.c: Likewise.
4024         * tree-ssa-alias.c: Likewise.
4025         * tree-ssa-live.c: Likewise.
4026         * tree-ssa-loop-ivcanon.c: Likewise.
4027         * tree-ssa-loop-ivopts.c: Likewise.
4028         * tree-ssa-pre.c: Likewise.
4029         * tree-ssa-sccvn.c: Likewise.
4030         * tree-ssa-strlen.c: Likewise.
4031         * tree-ssa-structalias.c: Likewise.
4032         * tree-streamer-in.c: Likewise.
4033         * tree-streamer-out.c: Likewise.
4034         * tree-streamer.c: Likewise.
4035         * tree-switch-conversion.c: Likewise.
4036         * tree-tailcall.c: Likewise.
4037         * tree-vect-data-refs.c: Likewise.
4038         * tree-vect-stmts.c: Likewise.
4039         * tree-vectorizer.c: Likewise.
4040         * tree.c: Likewise.
4041         * tsan.c: Likewise.
4042         * ubsan.c: Likewise.
4043         * value-prof.c: Likewise.
4044         * varasm.c: Likewise.
4045         * varpool.c: Likewise.
4046         * config/arm/arm.c: Likewise.
4047         * config/bfin/bfin.c: Likewise.
4048         * config/c6x/c6x.c: Likewise.
4049         * config/cris/cris.c: Likewise.
4050         * config/darwin-c.c: Likewise.
4051         * config/darwin.c: Likewise.
4052         * config/i386/i386.c: Likewise.
4053         * config/i386/winnt.c: Likewise.
4054         * config/microblaze/microblaze.c: Likewise.
4055         * config/mips/mips.c: Likewise.
4056         * config/rs6000/rs6000.c: Likewise.
4057         * config/rx/rx.c: Likewise.
4058         * config/s390/s390.c: Likewise.
4059         * config/tilegx/mul-tables.c: Likewise.
4060
4061 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4062
4063         * config/aarch64/aarch64.c, config/alpha/alpha.c,
4064         config/arm/arm.c, config/avr/avr.c, config/bfin/bfin.c,
4065         config/c6x/c6x.c, config/cr16/cr16.c, config/cris/cris.c,
4066         config/fr30/fr30.c, config/frv/frv.c, config/h8300/h8300.c,
4067         config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
4068         config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
4069         config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
4070         config/microblaze/microblaze.c, config/mips/mips.c,
4071         config/mmix/mmix.c, config/mn10300/mn10300.c,
4072         config/moxie/moxie.c, config/msp430/msp430.c,
4073         config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
4074         config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
4075         config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
4076         config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
4077         config/stormy16/stormy16.c, config/tilegx/tilegx.c,
4078         config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
4079         config/visium/visium.c, config/xtensa/xtensa.c: Add comment above
4080         target-def.h include.
4081         * config/ft32/ft32.c: Likewise.  Fix misapplied hunk.
4082
4083 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4084
4085         * Makefile.in (TARGET_DEF): Add target-insns.def.
4086         (.PRECIOUS, simple_rtl_generated_h): Add insn-target-def.h.
4087         (build/gentarget-def.o): New rule.
4088         (genprogrtl): Add target-def.
4089         * target-insns.def, gentarget-def.c: New files.
4090         * target.def: Add targetm.have_* and targetm.gen_* hooks,
4091         based on the contents of target-insns.def.
4092         * defaults.h (HAVE_simple_return, gen_simple_return): Delete.
4093         (HAVE_return, gen_return): Delete.
4094         * target-def.h: Include insn-target-def.h.
4095         * cfgrtl.c (force_nonfallthru_and_redirect): Use targetm interface
4096         instead of direct calls.  Rely on them to do the appropriate assertions.
4097         * function.c (gen_return_pattern): Likewise.  Return an rtx_insn *.
4098         (convert_jumps_to_returns): Use targetm interface instead of
4099         direct calls.
4100         (thread_prologue_and_epilogue_insns): Likewise.
4101         * reorg.c (find_end_label, dbr_schedule): Likewise.
4102         * shrink-wrap.h (SHRINK_WRAPPING_ENABLED): Likewise.
4103         * shrink-wrap.c (convert_to_simple_return): Likewise.
4104         (try_shrink_wrapping): Use SHRINK_WRAPPING_ENABLED.
4105
4106 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4107
4108         * config/aarch64/aarch64.c, config/alpha/alpha.c, config/arm/arm.c,
4109         config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
4110         config/cr16/cr16.c, config/cris/cris.c, config/fr30/fr30.c,
4111         config/frv/frv.c, config/ft32/ft32.c, config/h8300/h8300.c,
4112         config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
4113         config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
4114         config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
4115         config/microblaze/microblaze.c, config/mips/mips.c, config/mmix/mmix.c,
4116         config/mn10300/mn10300.c, config/moxie/moxie.c, config/msp430/msp430.c,
4117         config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
4118         config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
4119         config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
4120         config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
4121         config/stormy16/stormy16.c, config/tilegx/tilegx.c,
4122         config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
4123         config/visium/visium.c, config/xtensa/xtensa.c: Move target-def.h
4124         includes to end.
4125
4126 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4127
4128         * hash-map-traits.h (simple_hashmap_traits::key_type): New typedef.
4129         (unbounded_int_hashmap_traits::key_type): Likewise.
4130         * hash-map.h (hash_map): Get the key type from the traits.
4131         * hash-traits.h (default_hash_traits): By default, inherit from the
4132         template parameter.
4133         * alias.c (alias_set_traits): Delete.
4134         (alias_set_entry_d::children): Use alias_set_hash as the first
4135         template parameter.
4136         (record_alias_subset): Update accordingly.
4137         * except.c (tree_hash_traits): Delete.
4138         (type_to_runtime_map): Use tree_hash as the first template parameter.
4139         (init_eh): Update accordingly.
4140         * genmatch.c (capture_id_map_hasher): Delete.
4141         (cid_map_t): Use nofree_string_hash as first template parameter.
4142         * ipa-icf.h (symbol_compare_hashmap_traits): Delete.
4143         * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
4144         Use symbol_compare_hash as the first template parameter in
4145         subdivide_hash_map.
4146         * mem-stats.h (mem_usage_pair::mem_alloc_hashmap_traits): Delete.
4147         (mem_usage_pair::mem_map_t): Use mem_location_hash as the first
4148         template parameter.
4149         * passes.c (pass_registry_hasher): Delete.
4150         (name_to_pass_map): Use nofree_string_hash as the first template
4151         parameter.
4152         (register_pass_name): Update accordingly.
4153         * sanopt.c (sanopt_tree_map_traits): Delete.
4154         (sanopt_tree_triplet_map_traits): Delete.
4155         (sanopt_ctx::asan_check_map): Use tree_operand_hash as the first
4156         template parameter.
4157         (sanopt_ctx::vptr_check_map): Use sanopt_tree_triplet_hash as
4158         the first template parameter.
4159         * sese.c (rename_map_hasher): Delete.
4160         (rename_map_type): Use tree_ssa_name_hash as the first template
4161         parameter.
4162         * symbol-summary.h (function_summary::summary_hashmap_traits): Delete.
4163         (function_summary::m_map): Use map_hash as the first template
4164         parameter.
4165         (function_summary::release): Update accordingly.
4166         * tree-if-conv.c (phi_args_hash_traits): Delete.
4167         (predicate_scalar_phi): Use tree_operand_hash as the first template
4168         parameter to phi_arg_map.
4169         * tree-inline.h (dependence_hasher): Delete.
4170         (copy_body_data::dependence_map): Use dependence_hash as the first
4171         template parameter.
4172         * tree-inline.c (remap_dependence_clique): Update accordingly.
4173         * tree-ssa-strlen.c (stridxlist_hash_traits): Delete.
4174         (decl_to_stridxlist_htab): Use tree_decl_hash as the first template
4175         parameter.
4176         (addr_stridxptr): Update accordingly.
4177         * value-prof.c (profile_id_traits): Delete.
4178         (cgraph_node_map): Use profile_id_hash as the first template
4179         parameter.
4180         (init_node_map): Update accordingly.
4181         * config/alpha/alpha.c (string_traits): Delete.
4182         (machine_function::links): Use nofree_string_hash as the first
4183         template parameter.
4184         (alpha_use_linkage, alpha_write_linkage): Update accordingly.
4185         * config/m32c/m32c.c (pragma_traits): Delete.
4186         (pragma_htab): Use nofree_string_hash as the first template parameter.
4187         (m32c_note_pragma_address): Update accordingly.
4188         * config/mep/mep.c (pragma_traits): Delete.
4189         (pragma_htab): Use nofree_string_hash as the first template parameter.
4190         (mep_note_pragma_flag): Update accordingly.
4191         * config/mips/mips.c (mips16_flip_traits): Delete.
4192         (mflip_mips16_htab): Use nofree_string_hash as the first template
4193         parameter.
4194         (mflip_mips16_use_mips16_p): Update accordingly.
4195         (local_alias_traits): Delete.
4196         (mips16_local_aliases): Use nofree_string_hash as the first template
4197         parameter.
4198         (mips16_local_alias): Update accordingly.
4199
4200 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4201
4202         * hash-map-traits.h (default_hashmap_traits): Delete.
4203
4204 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4205
4206         * hash-map-traits.h (unbounded_hashmap_traits): New class.
4207         (unbounded_int_hashmap_traits): Likewise.
4208         * cfgexpand.c (part_traits): Use unbounded_int_hashmap_traits.
4209
4210 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4211
4212         * ipa-icf.h (symbol_compare_hash): New class.
4213         (symbol_compare_hashmap_traits): Use it.
4214         * mem-stats.h (mem_alloc_description::mem_location_hash): New class.
4215         (mem_alloc_description::mem_alloc_hashmap_traits): Use it.
4216         (mem_alloc_description::reverse_mem_map_t): Remove redundant
4217         default_hashmap_traits.
4218         * sanopt.c (sanopt_tree_triplet_hash): New class.
4219         (sanopt_tree_triplet_map_traits): Use it.
4220
4221 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4222
4223         * gengtype-parse.c (require_template_declaration): Allow '+' in
4224         template parameters.  Consolidate cases.
4225         * hash-traits.h (int_hash): New class.
4226         * alias.c (alias_set_hash): New structure.
4227         (alias_set_traits): Use it.
4228         * symbol-summary.h (function_summary::map_hash): New class.
4229         (function_summary::summary_hashmap_traits): Use it.
4230         * tree-inline.h (dependence_hash): New class.
4231         (dependence_hasher): Use it.
4232         * tree-ssa-reassoc.c (oecount_hasher): Use int_hash.
4233         * value-prof.c (profile_id_hash): New class.
4234         (profile_id_traits): Use it.
4235
4236 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4237
4238         * config/mips/mips.c (mips16_flip_traits): Use it.
4239         (local_alias_traits, mips16_local_aliases): Convert from a map of
4240         rtxes to a map of symbol names.
4241         (mips16_local_alias): Update accordingly.
4242
4243 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4244
4245         * hash-traits.h (string_hash, nofree_string_hash): New classes.
4246         * genmatch.c (capture_id_map_hasher): Use nofree_string_hash.
4247         * passes.c (pass_registry_hasher): Likewise.
4248         * config/alpha/alpha.c (string_traits): Likewise.
4249         * config/i386/winnt.c (i386_find_on_wrapper_list): Likewise.
4250         * config/m32c/m32c.c (pragma_traits): Likewise.
4251         * config/mep/mep.c (pragma_traits): Likewise.
4252
4253 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4254
4255         * tree-hash-traits.h (tree_hash): New class.
4256         * except.c: Include tree-hash-traits.h.
4257         (tree_hash_traits): Use tree_hash.
4258
4259 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4260
4261         * tree-hash-traits.h (tree_ssa_name_hasher): New class.
4262         * sese.c: Include tree-hash-traits.h.
4263         (rename_map_hasher): Use tree_ssa_name_hasher.
4264
4265 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4266
4267         * tree-hash-traits.h (tree_decl_hash): New class.
4268         * tree-ssa-strlen.c: Include tree-hash-traits.h.
4269         (stridxlist_hash_traits): Use tree_decl_hash.
4270
4271 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4272
4273         * tree-hash-traits.h: New file.
4274         (tree_operand_hash): New class.
4275         * sanopt.c: Include tree-hash-traits.h.
4276         (sanopt_tree_map_traits): Use tree_operand_hash.
4277         * tree-if-conv.c: Include tree-hash-traits.h.
4278         (phi_args_hash_traits): Use tree_operand_hash.
4279         * tree-ssa-uncprop.c: Include tree-hash-traits.h.
4280         (val_ssa_equiv_hash_traits): Use tree_operand_hash.
4281
4282 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4283
4284         * hash-map-traits.h: Include hash-traits.h.
4285         (simple_hashmap_traits): New class.
4286         * mem-stats.h (hash_map): Change the default traits to
4287         simple_hashmap_traits<default_hash_traits<Key> >.
4288
4289 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4290
4291         * hash-table.h: Update comments.
4292
4293 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4294
4295         * hash-traits.h (default_hash_traits): New structure.
4296         * hash-set.h (default_hashset_traits): Delete.
4297         (hash_set): Use default_hash_traits<Key> instead of
4298         default_hashset_traits.  Delete hash_entry type and use Key directly.
4299         * ipa-devirt.c (pair_traits): Delete.
4300         (default_hash_traits <type_pair>): Override.
4301         (odr_subtypes_equivalent_p): Remove pair_types template parameter.
4302         (odr_types_equivalent_p, add_type_duplicate): Likewise.
4303
4304 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4305
4306         * hash-traits.h (typed_noop_remove): Don't require a pointer type.
4307
4308 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4309
4310         * hash-table.h (has_is_deleted, is_deleted_helper): Delete.
4311         (has_is_empty, is_empty_helper): Delete.
4312         (has_mark_deleted, mark_deleted_helper): Delete.
4313         (has_mark_empty, mark_empty_helper): Delete.
4314         (hash_table::is_deleted): Call the Descriptor unconditionally.
4315         (hash_table::is_empty): Likewise.
4316         (hash_table::mark_deleted): Likewise.
4317         (hash_table::mark_empty): Likewise.
4318
4319 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4320
4321         * cgraph.h (asmname_hasher): Inherit from ggc_ptr_hash.  Remove
4322         redundant typedefs and members.
4323         * coverage.c (counts_entry): Inherit from pointer_hash.  Remove
4324         redundant typedefs.
4325         * dwarf2out.c (cu_hash_table_entry_hasher): Likewise.
4326         * ipa-devirt.c (odr_name_hasher): Likewise.
4327         (polymorphic_call_target_hasher): Likewise.
4328         * ira-costs.c (cost_classes_hasher): Likewise.
4329         * statistics.c (stats_counter_hasher): Likewise.
4330         * trans-mem.c (log_entry_hasher): Likewise.
4331         * tree-ssa-dom.c (expr_elt_hasher): Likewise.
4332         * tree-ssa-sccvn.c (vn_phi_hasher, vn_reference_hasher): Likewise.
4333         * tree-ssa-tail-merge.c (same_succ_def): Likewise.
4334         * var-tracking.c (variable_hasher): Likewise.
4335         * valtrack.h (dead_debug_hash_descr): Inherit from free_ptr_hash.
4336         Remove redundant typedefs and members.
4337
4338 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4339
4340         * hash-traits.h (ggc_cache_hasher): Rename to...
4341         (ggc_cache_remove): ...this and remove typedefs.
4342         (ggc_cache_ptr_hash): New class.
4343         * hash-table.h: Update commentary.
4344         * emit-rtl.c (const_int_hasher): Inherit from ggc_cache_ptr_hash
4345         rather than ggc_cache_hasher.
4346         (const_wide_int_hasher, reg_attr_hasher): Likewise.
4347         (const_double_hasher, const_fixed_hasher): Likewise.
4348         * function.c (insn_cache_hasher): Likewise.
4349         * trans-mem.c (tm_wrapper_hasher): Likewise.
4350         * tree.h (tree_decl_map_cache_hasher): Likewise.
4351         * tree.c (type_cache_hasher, int_cst_hasher): Likewise.
4352         (cl_option_hasher, tree_vec_map_cache_hasher): Likewise.
4353         * ubsan.c (tree_type_map_cache_hasher): Likewise.
4354         * varasm.c (tm_clone_hasher): Likewise.
4355         * config/i386/i386.c (dllimport_hasher): Likewise.
4356         * config/nvptx/nvptx.c (declared_libfunc_hasher): Likewise.
4357         (tree_hasher): Likewise.
4358
4359 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4360
4361         * hash-traits.h (ggc_hasher): Rename to...
4362         (ggc_remover): ...this and remove typedefs.
4363         (ggc_cache_hasher): Update accordingly.  Add typedefs.
4364         (ggc_ptr_hash): New class.
4365         * hash-table.h: Update comment.
4366         * cfgloop.h (loop_exit_hasher): Inherit from ggc_ptr_hash rather than
4367         ggc_hasher.
4368         * cgraph.h (section_name_hasher, cgraph_edge_hasher): Likewise.
4369         (tree_descriptor_hasher): Likewise.
4370         * cgraph.c (function_version_hasher): Likewise.
4371         * dwarf2out.c (indirect_string_hasher, dwarf_file_hasher): Likewise.
4372         (decl_die_hasher, block_die_hasher, decl_loc_hasher): Likewise.
4373         (dw_loc_list_hasher, addr_hasher): Likewise.
4374         * function.h (used_type_hasher): Likewise.
4375         * function.c (temp_address_hasher): Likewise.
4376         * gimple-ssa.h (tm_restart_hasher, ssa_name_hasher): Likewise.
4377         * libfuncs.h (libfunc_hasher): Likewise.
4378         * lto-streamer.h (decl_state_hasher): Likewise.
4379         * optabs.c (libfunc_decl_hasher): Likewise.
4380         * tree-scalar-evolution.c (scev_info_hasher): Likewise.
4381         * varasm.c (section_hasher, object_block_hasher): Likewise.
4382         (const_rtx_desc_hasher): Likewise.
4383         * config/darwin.c (indirection_hasher, cfstring_hasher): Likewise.
4384         * config/rs6000/rs6000.c (toc_hasher, builtin_hasher): Likewise.
4385
4386 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4387
4388         * hash-traits.h (free_ptr_hash): New class.
4389         * dwarf2out.c (decl_table_entry_hasher): Inherit from free_ptr_hash
4390         rather than typed_free_remove.  Remove redudant typedefs.
4391         (external_ref_hasher): Likewise.
4392         * except.c (action_record_hasher, ttypes_filter_hasher): Likewise.
4393         (ehspec_hasher): Likewise.
4394         * ggc-common.c (saving_hasher): Likewise.
4395         * gimplify.c (gimplify_hasher): Likewise.
4396         * haifa-sched.c (delay_i2_hasher): Likewise.
4397         * loop-invariant.c (invariant_expr_hasher): Likewise.
4398         * loop-iv.c (biv_entry_hasher): Likewise.
4399         * loop-unroll.c (iv_split_hasher, var_expand_hasher): Likewise.
4400         * trans-mem.c (tm_mem_map_hasher, tm_memop_hasher): Likewise.
4401         * tree-cfg.c (locus_discrim_hasher): Likewise.
4402         * tree-eh.c (finally_tree_hasher): Likewise.
4403         * tree-into-ssa.c (var_info_hasher): Likewise.
4404         * tree-parloops.c (reduction_hasher, name_to_copy_hasher): Likewise.
4405         * tree-ssa-loop-ivopts.c (iv_inv_expr_hasher): Likewise.
4406         * tree-ssa-phiopt.c (ssa_names_hasher): Likewise.
4407         * tree-ssa-pre.c (expr_pred_trans_d): Likewise.
4408         * tree-ssa-sccvn.c (vn_constant_hasher): Likewise.
4409         * tree-ssa-structalias.c (equiv_class_hasher): Likewise.
4410         (shared_bitmap_hasher): Likewise.
4411         * tree-ssa-threadupdate.c (redirection_data): Likewise.
4412         * tree-vectorizer.h (peel_info_hasher): Likewise.
4413         * tree-vectorizer.c (simduid_to_vf, simd_array_to_simduid): Likewise.
4414         * config/mips/mips.c (mips_lo_sum_offset_hasher): Likewise.
4415
4416 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4417
4418         * hash-table.h: Update comments.
4419         * hash-traits.h (pointer_hash): Don't inherit from typed_noop_remove.
4420         (nofree_ptr_hash): New class.
4421         * asan.c (asan_mem_ref_hasher): Inherit from nofree_ptr_hash rather
4422         than typed_noop_remove.  Remove redudant typedefs.
4423         * attribs.c (attribute_hasher): Likewise.
4424         * cfg.c (bb_copy_hasher): Likewise.
4425         * cselib.c (cselib_hasher): Likewise.
4426         * dse.c (invariant_group_base_hasher): Likewise.
4427         * dwarf2cfi.c (trace_info_hasher): Likewise.
4428         * dwarf2out.c (macinfo_entry_hasher): Likewise.
4429         (comdat_type_hasher, loc_list_hasher): Likewise.
4430         * gcse.c (pre_ldst_expr_hasher): Likewise.
4431         * genmatch.c (id_base): Likewise.
4432         * genrecog.c (test_pattern_hasher): Likewise.
4433         * gimple-ssa-strength-reduction.c (cand_chain_hasher): Likewise.
4434         * haifa-sched.c (delay_i1_hasher): Likewise.
4435         * hard-reg-set.h (simplifiable_subregs_hasher): Likewise.
4436         * ipa-icf.h (congruence_class_group_hash): Likewise.
4437         * ipa-profile.c (histogram_hash): Likewise.
4438         * ira-color.c (allocno_hard_regs_hasher): Likewise.
4439         * lto-streamer.h (string_slot_hasher): Likewise.
4440         * lto-streamer.c (tree_entry_hasher): Likewise.
4441         * plugin.c (event_hasher): Likewise.
4442         * postreload-gcse.c (expr_hasher): Likewise.
4443         * store-motion.c (st_expr_hasher): Likewise.
4444         * tree-sra.c (uid_decl_hasher): Likewise.
4445         * tree-ssa-coalesce.c (coalesce_pair_hasher): Likewise.
4446         (ssa_name_var_hash): Likewise.
4447         * tree-ssa-live.c (tree_int_map_hasher): Likewise.
4448         * tree-ssa-loop-im.c (mem_ref_hasher): Likewise.
4449         * tree-ssa-pre.c (pre_expr_d): Likewise.
4450         * tree-ssa-sccvn.c (vn_nary_op_hasher): Likewise.
4451         * vtable-verify.h (registration_hasher): Likewise.
4452         * vtable-verify.c (vtbl_map_hasher): Likewise.
4453         * config/arm/arm.c (libcall_hasher): Likewise.
4454         * config/i386/winnt.c (wrapped_symbol_hasher): Likewise.
4455         * config/ia64/ia64.c (bundle_state_hasher): Likewise.
4456         * config/sol2.c (comdat_entry_hasher): Likewise.
4457         * fold-const.c (fold): Use nofree_ptr_hash instead of pointer_hash.
4458         (print_fold_checksum, fold_checksum_tree): Likewise.
4459         (debug_fold_checksum, fold_build1_stat_loc): Likewise.
4460         (fold_build2_stat_loc, fold_build3_stat_loc): Likewise.
4461         (fold_build_call_array_loc): Likewise.
4462         * tree-ssa-ccp.c (gimple_htab): Likewise.
4463         * tree-browser.c (tree_upper_hasher): Inherit from nofree_ptr_hash
4464         rather than pointer_type.
4465
4466 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4467
4468         * hash-traits.h (pointer_hash::mark_deleted, pointer_hash::mark_empty)
4469         (pointer_hash::is_deleted, pointer_hash::is_empty): New functions.
4470
4471 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4472
4473         * hash-traits.h (ggc_hasher::remove): Take a reference parameter.
4474         (ggc_hasher::ggc_mx): Likewise.
4475         (ggc_cache_hasher): Inherit from ggc_hasher.  Remove definitions
4476         that duplicate ggc_hasher ones.
4477
4478 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4479
4480         * hash-table.h (hash_table): Add gt_cleare_cache as a friend.
4481         (gt_cleare_cache): Check here for deleted and empty entries.
4482         Replace handle_cache_entry with a call to keep_cache_entry.
4483         * hash-traits.h (ggc_cache_hasher::handle_cache_entry): Delete.
4484         (ggc_cache_hasher::keep_cache_entry): New function.
4485         * trans-mem.c (tm_wrapper_hasher::handle_cache_entry): Delete.
4486         (tm_wrapper_hasher::keep_cache_entry): New function.
4487         * tree.h (tree_decl_map_cache_hasher::handle_cache_entry): Delete.
4488         (tree_vec_map_cache_hasher::keep_cache_entry): New function.
4489         * tree.c (type_cache_hasher::handle_cache_entry): Delete.
4490         (type_cache_hasher::keep_cache_entry): New function.
4491         (tree_vec_map_cache_hasher::handle_cache_entry): Delete.
4492         (tree_vec_map_cache_hasher::keep_cache_entry): New function.
4493         * ubsan.c (tree_type_map_cache_hasher::handle_cache_entry): Delete.
4494         (tree_type_map_cache_hasher::keep_cache_entry): New function.
4495         * varasm.c (tm_clone_hasher::handle_cache_entry): Delete.
4496         (tm_clone_hasher::keep_cache_entry): New function.
4497         * config/i386/i386.c (dllimport_hasher::handle_cache_entry): Delete.
4498         (dllimport_hasher::keep_cache_entry): New function.
4499
4500 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4501
4502         * hash-table.h: Include hash-traits.h.
4503         (typed_free_remove, typed_noop_remove, pointer_hash, ggc_hasher)
4504         (ggc_cache_hasher): Move to...
4505         * hash-traits.h: ...this new file.
4506
4507 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
4508
4509         * tree-core.h (struct tree_optimization_option): Make opts a pointer to
4510         struct cl_optimization.
4511         * tree.h (TREE_OPTIMIZATION): Return the pointer, not the address of it.
4512         * tree.c (make_node_stat): Allocate cl_optimization struct.
4513         (copy_node_stat): Allocate and copy cl_optimization struct.
4514
4515 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
4516
4517         * function.h (struct incoming_args): Move struct.
4518         (pass_by_reference, reference_callee_copied): Remove prototypes.
4519         * emit-rtl.h (struct incoming_args): Relocate struct here.
4520         * calls.h (pass_by_reference, reference_callee_copied): Relocate
4521         prototypes here.
4522         * function.c (pass_by_reference, reference_callee_copied): Move.
4523         * calls.c (pass_by_reference, reference_callee_copied): Relocate here.
4524         * cfgloop.h: Don't include tm.h or hard-reg-set.h.
4525         * ipa-chkp.c: Include calls.h.
4526
4527 2015-06-25  Andrew Macleod  <amacleod@redhat.com>
4528
4529         * alias.h (alias_set_type): Move typedef.
4530         * coretypes.h (alias_set_type): Relocate typedef here.
4531         * rtl.h: Don't include alias.h.
4532
4533 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
4534
4535         * cgraph.h (cgraph_rtl_info): Move to rtl.h
4536         (cgraph_node): Maintain pointer to struct cgraph_rtl_info instead of
4537         and instance.
4538         * rtl.h (struct cgraph_rtl_info): Define when HARD_REG_SET available.
4539         * cgraph.c (cgraph_node::rtl_info): Allocate cgraph_rtl_info if one
4540         doesn't exist.
4541         * calls.c: Include hard-reg-set.h before rtl.h.
4542         * ira.c: Likewise.
4543
4544 2015-06-25  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
4545             Vladimir Makarov  <vmakarov@redhat.com>
4546
4547         * ira-color.c (assign_hard_reg): Remove unecessary bitmap check.
4548         Add assert.
4549
4550 2015-06-25  Richard Biener  <rguenther@suse.de>
4551
4552         * fold-const.c (fold_binary_loc): Move simplification of
4553         (X <<>> C1) & C2 ...
4554         * match.pd: ... here.
4555
4556 2015-06-25  Eric Botcazou  <ebotcazou@adacore.com>
4557
4558         * lto-streamer-out.c (DFS::hash_scc): Fix typos & formatting glitches.
4559
4560 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
4561
4562         * match.pd: Add patterns for vec_conds between 1 and 0.
4563
4564 2015-06-25  Richard Biener  <rguenther@suse.de>
4565
4566         * tree-vect-stmts.c (vectorizable_conversion): Do not set
4567         STMT_VINFO_VEC_STMT for SLP.
4568         (vectorizable_store): Likewise.
4569         (vectorizable_load): Likewise.
4570         (vect_transform_stmt): Catch SLP vectorization clobbering
4571         STMT_VINFO_VEC_STMT.
4572
4573 2015-06-25  Richard Biener  <rguenther@suse.de>
4574
4575         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Improve debug
4576         dumping.
4577         (vect_create_mask_and_perm): Do not set STMT_VINFO_VEC_STMT and
4578         cleanup resulting dead code and parameters.
4579         (vect_transform_slp_perm_load): Adjust.
4580
4581 2015-06-25  Nick Clifton  <nickc@redhat.com>
4582
4583         * config/bfin/bfin.c (bfin_expand_prologue): Set
4584         current_function_static_stack_size if flag_stack_usage_info is set.
4585         * config/ft32/ft32.c (ft32_expand_prologue): Likewise.
4586         * config/h8300/h8300.c (h8300_expand_prologue): Likewise.
4587         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
4588         * config/m32c/m32c.c (m32c_emit_prologue): Likewise.
4589
4590 2015-06-25  Tom de Vries  <tom@codesourcery.com>
4591
4592         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Don't claim in header
4593         comment that the generated IV is unsigned.
4594
4595 2015-06-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4596
4597         PR target/29693
4598         * config/arm/arm.c (arm_dbx_register_number): Return
4599         DWARF_FRAME_REGISTERS by default.
4600
4601 2015-06-25  Tom de Vries  <tom@codesourcery.com>
4602
4603         * dominance.c (calculate_dominance_info): Fix verify_dominators call
4604         argument.  Call verify_dominator when reusing dominator info.
4605
4606 2015-06-24  Kaz Kojima  <kkojima@gcc.gnu.org>
4607
4608         PR target/66563
4609         * config/sh/sh.md (GOTaddr2picreg): Add a new operand for
4610         an additional element of the unspec vector.  Modify indices
4611         of operands.
4612         (builtin_setjmp_receiver): Pass const0_rtx to gen_GOTaddr2picreg.
4613         * config/sh/sh.c (prepare_move_operands): Pass incremented
4614         const_int to gen_GOTaddr2picreg.
4615         (sh_expand_prologue): Pass const0_rtx to gen_GOTaddr2picreg.
4616
4617 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
4618
4619         * config/aarch64/aarch64.md (<optab><fcvt_target><GPF:mode>2):
4620         Condition on TARGET_FLOAT.
4621
4622 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
4623
4624         * doc/invoke.texi: Clarify AArch64 feature modifiers (no)fp, (no)simd
4625         and (no)crypto.
4626
4627 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
4628
4629         * config/aarch64/aarch64-protos.h (aarch64_err_no_fpadvsimd): New.
4630
4631         * config/aarch64/aarch64.md (mov<mode>/GPF, movtf): Use
4632         aarch64_err_no_fpadvsimd.
4633
4634         * config/aarch64/aarch64.c (aarch64_err_no_fpadvsimd): New.
4635         (aarch64_layout_arg, aarch64_init_cumulative_args): Use
4636         aarch64_err_no_fpadvsimd if !TARGET_FLOAT and we need FP regs.
4637         (aarch64_expand_builtin_va_start, aarch64_setup_incoming_varargs):
4638         Turn error into assert, test TARGET_FLOAT.
4639         (aarch64_gimplify_va_arg_expr): Use aarch64_err_no_fpadvsimd, test
4640         TARGET_FLOAT.
4641
4642 2015-06-24  Aldy Hernandez  <aldyh@redhat.com>
4643
4644         PR debug/66482
4645         * dwarf2out.c (gen_formal_parameter_die): Remove assert.
4646
4647 2015-06-24  Ilya Enkovich  <enkovich.gnu@gmail.com>
4648
4649         * tree-vect-slp.c (vect_build_slp_tree_1): Init vectype.
4650
4651 2015-06-24 Renlin Li <renlin.li@arm.com>
4652
4653         * config/aarch64/aarch64.h(TARGET_CPU_CPP_BUILTINS): Add
4654         __ARM_ALIGN_MAX_PWR, __ARM_ALIGN_MAX_STACK_PWR.
4655
4656 2015-06-24  Richard Biener  <rguenther@suse.de>
4657
4658         * genmatch.c (enum tree_code): Add VIEW_CONVERT[012].
4659         (main): Likewise.
4660         (lower_opt_convert): Support lowering of conditional view_convert.
4661         (parser::parse_operation): Likewise.
4662         (parser::parse_for): Likewise.
4663
4664 2015-06-24  Renlin Li  <renlin.li@arm.com>
4665
4666         * varasm.c (emit_local): Use unsigned int for align variable.
4667
4668 2015-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4669
4670         PR target/63408
4671         * config/arm/arm.c (vfp3_const_double_for_fract_bits): Disable
4672         for negative numbers.
4673
4674 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4675
4676         PR rtl-optimization/66306
4677         * reload.c (find_reloads): Swap the match_dup info for
4678         commutative operands.
4679
4680 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4681
4682         * config/s390/vx-builtins.md
4683         ("vec_scatter_element<mode>_<non_vec_int>")
4684         ("vec_scatter_element<V_HW_64:mode>_SI"): Replace gf mode
4685         attribute with bhfgq.
4686
4687 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4688
4689         * config/s390/s390-builtins.def: Fix vpopct instruction comments.
4690
4691 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4692
4693         * config/s390/s390-builtin-types.def: Add flag to indicate the
4694         options under which the function type is needed.
4695         * config/s390/s390-builtins.def: Add flag to indicate the options
4696         under which the builtin is enabled.
4697         * config/s390/s390-builtins.h: Add flags parameter to macro
4698         definitions.
4699         (bflags_for_builtin): New function.
4700         (flags_for_builtin): Renamed to ...
4701         (opflags_for_builtin): ... this.
4702         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Rename
4703         flags_for_builtin to bflags_for_builtin and
4704         flags_overloaded_builtin_var to opflags_overloaded_builtin_var.
4705         * config/s390/s390.c: Add initialization of bflags_builtin and
4706         opflags_builtin arrays.
4707         Remove code for flags_builtin.
4708         (s390_init_builtins): Only create builtin function types if one of
4709         their flags is active.
4710         Only create builtins if all of their flags are active.
4711         (s390_expand_builtin): Rename flags_for_builtin to
4712         opflags_for_builtin.
4713
4714 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4715
4716         * config/s390/vecintrin.h: Remove internal builtins.
4717
4718 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4719
4720         * config/s390/s390.c (s390_secondary_reload): Fix check for
4721         GENERAL_REGS register class.
4722
4723 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4724
4725         * config/s390/s390.c (s390_support_vector_misalignment): Call
4726         default implementation for !TARGET_VX.
4727
4728 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4729
4730         * config/s390/s390.c (s390_legitimate_constant_p): Add
4731         TARGET_VX check.
4732
4733 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4734
4735         * config/s390/s390.c (s390_vector_abi): New variable definition.
4736         (s390_check_type_for_vector_abi): New function.
4737         (TARGET_ASM_FILE_END): New macro definition.
4738         (s390_asm_file_end): New function.
4739         (s390_function_arg): Call s390_check_type_for_vector_abi.
4740         (s390_gimplify_va_arg): Likewise.
4741         * configure: Regenerate.
4742         * configure.ac: Check for .gnu_attribute Binutils feature.
4743
4744 2015-06-23  Chen Gang  <gang.chen.5i5j@gmail.com>
4745
4746         PR target/65803
4747         * config/bfin/bfin.c (hwloop_optimize): Initialize
4748         JUMP_LABEL for newly created jump.
4749
4750 2015-06-23  Tristan Gingold  <gingold@adacore.com>
4751
4752         * collect-utils.c (collect_wait): Unlink the response file here
4753         instead of...
4754         (do_wait): ...here.
4755         (utils_cleanup): ...and here.
4756
4757 2015-06-23  Richard Sandiford  <richard.sandiford@arm.com>
4758
4759         * df-scan.c: Don't include target-def.h.
4760         * targhooks.c: Likewise.
4761         * config/arm/arm-c.c: Likewise.
4762         * config/i386/i386-c.c: Likewise.
4763         * config/nds32/nds32-cost.c: Likewise.
4764         * config/nds32/nds32-fp-as-gp.c: Likewise.
4765         * config/nds32/nds32-intrinsic.c: Likewise.
4766         * config/nds32/nds32-isr.c: Likewise.
4767         * config/nds32/nds32-md-auxiliary.c: Likewise.
4768         * config/nds32/nds32-memory-manipulation.c: Likewise.
4769         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
4770         * config/nds32/nds32-predicates.c: Likewise.
4771
4772 2015-06-23  Richard Biener  <rguenther@suse.de>
4773
4774         PR tree-optimization/66636
4775         * tree-vect-stmts.c (vectorizable_store): Properly compute the
4776         def type for further defs for strided stores.
4777
4778 2015-06-23  Nathan Sidwell  <nathan@codesourcery.com>
4779
4780         * config/nvptx/nvptx.md (sel_true<mode>, sel_false<mode>): New
4781         conditional selects.
4782         (setcc_int<mode>, setcc_float<mode>): Reformat.
4783
4784 2015-06-23  Marek Polacek  <polacek@redhat.com>
4785
4786         * match.pd ((x + y) - (x | y) -> x & y,
4787         (x + y) - (x & y) -> x | y): New patterns.
4788
4789 2015-06-23  Ludovic Courtès  <ludo@gnu.org>
4790
4791         PR 65711
4792         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Move
4793         '-dynamic-linker' within %{!shared: ...}.
4794
4795 2015-06-23  Uros Bizjak  <ubizjak@gmail.com>
4796
4797         PR target/66560
4798         * config/i386/predicates.md (addsub_vm_operator): New predicate.
4799         (addsub_vs_operator): Ditto.
4800         (addsub_vs_parallel): Ditto.
4801         * config/i386/sse.md (ssedoublemode): Add V4SF and V2DF modes.
4802         (avx_addsubv4df3, avx_addsubv8sf3, sse3_addsubv2df3, sse3_addsubv4sf3):
4803         Put minus RTX before plus and adjust vec_merge selector.
4804         (*avx_addsubv4df3_1, *avx_addsubv4df3_1s, *sse3_addsubv2df3_1)
4805         (*sse_addsubv2df3_1s, *avx_addsubv8sf3_1, *avx_addsubv8sf3_1s)
4806         (*sse3_addsubv4sf3_1, *sse_addsubv4sf3_1s): Remove insn patterns.
4807         (addsub vec_merge splitters): New combiner splitters.
4808         (addsub vec_select/vec_concat splitters): Ditto.
4809
4810 2015-06-23  Bin Cheng  <bin.cheng@arm.com>
4811
4812         PR tree-optimization/66449
4813         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Use
4814         POINTER_PLUS_EXPR for pointers.
4815
4816 2015-06-23  Alan Modra  <amodra@gmail.com>
4817
4818         * rtlanal.c (commutative_operand_precedence): Correct comments.
4819         * simplify-rtx.c (simplify_plus_minus_op_data_cmp): Delete forward
4820         declaration.  Return an int.  Distinguish REG,REG return from
4821         others.
4822         (struct simplify_plus_minus_op_data): Make local to function.
4823         (simplify_plus_minus): Don't set canonicalized if merely sorting
4824         registers.  Avoid packing ops if nothing changes.  White space fixes.
4825
4826 2015-06-22  Pierre-Marie de Rodat  <derodat@adacore.com>
4827
4828         * gcc.c (default_compilers): Pass "-o %g.s" to cc1 for headers even if
4829         -fdump-ada-spec is passed but not if -fsyntax-only is.
4830
4831 2015-06-22  Vladimir Makarov  <vmakarov@redhat.com>
4832
4833         PR bootstrap/63740
4834         * lra-lives.c (process_bb_lives): Check insn copying the same
4835         reload pseudo and don't create a copy for it.
4836
4837 2015-06-22  Tom de Vries  <tom@codesourcery.com>
4838
4839         * tree-parloops.c (transform_to_exit_first_loop_alt): Add update_stmt
4840         for cond_stmt.
4841
4842 2015-06-22  Tom de Vries  <tom@codesourcery.com>
4843
4844         * builtins.def (DEF_GOMP_BUILTIN): Test
4845         'flag_tree_parallelize_loops > 1' instead of
4846         'flag_tree_parallelize_loops'.  Test flag_cilkplus.
4847
4848 2015-06-22  Tom de Vries  <tom@codesourcery.com>
4849
4850         * dominance.c (calculate_dominance_info): Verify dominators if
4851         early-out.
4852
4853 2015-06-22  Marek Polacek  <polacek@redhat.com>
4854
4855         * match.pd ((x ^ y) ^ (x | y) -> x & y,
4856         (x & y) + (x ^ y) -> x | y, (x & y) | (x ^ y) -> x | y,
4857         (x & y) ^ (x ^ y) -> x | y, (x & y) + (x | y) -> x + y,
4858         (x | y) - (x ^ y) -> x & y, (x | y) - (x & y) -> x ^ y): New patterns.
4859
4860 2015-06-22  Uros Bizjak  <ubizjak@gmail.com>
4861
4862         PR target/65871
4863         * config/i386/i386.c (ix86_rtx_costs) <case COMPARE>: Ignore the
4864         cost of embedded comparison.
4865
4866 2015-06-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4867
4868         PR target/65914
4869         * config/rs6000/predicates.md (altivec_register_operand): Permit
4870         virtual stack registers.
4871         (vsx_register_operand): Likewise.
4872         (vfloat_operand): Likewise.
4873         (vint_operand): Likewise.
4874         (vlogical_operand): Likewise.
4875
4876 2015-06-22  Richard Biener  <rguenther@suse.de>
4877
4878         * tree-vectorizer.h (_loop_vec_info): Add scalar_cost_vec
4879         and single_scalar_iteration_cost members.
4880         (LOOP_VINFO_SCALAR_ITERATION_COST): New.
4881         (LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST): Likewise.
4882         (vect_get_single_scalar_iteration_cost): Remove.
4883         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
4884         Use LOOP_VINFO_SCALAR_ITERATION_COST.
4885         * tree-vect-loop.c (destroy_loop_vec_info): Free
4886         scalar_cost_vec.
4887         (vect_get_single_scalar_iteration_cost): Compute result into
4888         LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST and
4889         LOOP_VINFO_SCALAR_ITERATION_COST.  Make static.
4890         (vect_analyze_loop_2): Call vect_get_single_scalar_iteration_cost.
4891         (vect_estimate_min_profitable_iters): Use them.
4892
4893 2015-06-22  Christian Bruel  <christian.bruel@st.com>
4894
4895         PR target/52144
4896         * config/arm/arm.c (add_attribute, arm_insert_attributes): New functions
4897         (TARGET_INSERT_ATTRIBUTES): Define.
4898         (thumb_flipper): New var.
4899         * config/arm/arm.opt (-mflip-thumb): New switch.
4900
4901 2015-06-22  Jan Hubicka  <hubicka@ucw.cz>
4902             Martin Liska  <mliska@suse.cz>
4903
4904         PR ipa/65908
4905         * ipa-icf.c (sem_item::target_supports_symbol_aliases): Remove
4906         construction of arg_types.
4907         (sem_function::sem_function): Likewise.
4908         (sem_function::~sem_function): Remove destruction of arg_types.
4909         (sem_function::compatible_parm_types_p): New function.
4910         (sem_function::equals_wpa): Reorg matching of return values
4911         and parameter types.
4912         (sem_function::equals_private): Reorg mathcing of argument types.
4913         (sem_function::parse_tree_args): Remove.
4914         * ipa-icf.h (init_wpa): Do not call it.
4915         (parse_tree_args): Remove.
4916         (compatible_parm_types_p): Declare.
4917         (result_type): Remove.
4918         (arg_types): Remove.
4919
4920 2015-06-22  Jan Hubicka  <hubicka@ucw.cz>
4921
4922         PR ipa/66351
4923         * ipa-polymorphic-call.c
4924         (ipa_polymorphic_call_context::get_dynamic_type): Fix thinko when
4925         initializing alias oracle; fix formating; set base_alias_set if it
4926         is known.
4927
4928 2015-06-22  Mikhail Maltsev  <maltsevm@gmail.com>
4929
4930         * auto-inc-dec.c (reverse_mem, reverse_inc): Remove.
4931         (parse_add_or_inc): Use std::swap instead of reverse_{mem,inc}.
4932         (find_inc): Likewise.
4933         * combine.c (combine_simplify_rtx): Use std::swap instead of manually
4934         swapping.
4935         * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
4936         * df-scan.c (df_swap_refs): Remove.
4937         (df_sort_and_compress_refs): Use std::swap instead of df_swap_refs.
4938         * dominance.c (link_roots): Use std::swap instead of manually swapping.
4939         * expr.c (expand_expr_real_2, do_store_flag): Likewise.
4940         * fold-const.c (fold_relational_const): Likewise.
4941         * genattrtab.c (simplify_test_exp): Likewise.
4942         * gimple-match-head.c (gimple_resimplify2, gimple_resimplify3,
4943         gimple_simplify): Likewise.
4944         * ifcvt.c (noce_try_abs, find_if_header): Likewise.
4945         * internal-fn.c (expand_addsub_overflow, expand_mul_overflow): Likewise.
4946         * ipa-devirt.c (add_type_duplicate): Likewise.
4947         * loop-iv.c (get_biv_step_1, iv_number_of_iterations): Likewise.
4948         * lra-lives.c (lra_setup_reload_pseudo_preferenced_hard_reg): Likewise.
4949         * lra.c (lra_create_copy): Likewise.
4950         * lto-streamer-out.c (DFS::DFS): Likewise.
4951         * modulo-sched.c (get_sched_window): Likewise.
4952         * omega.c (omega_pretty_print_problem): Likewise.
4953         * optabs.c (prepare_float_lib_cmp, expand_mult_highpart): Likewise.
4954         * reload1.c (reloads_unique_chain_p): Likewise.
4955         * sel-sched-ir.c (exchange_lv_sets, exchange_av_sets): Remove.
4956         (exchange_data_sets): Move logic from exchange_{av,lv}_sets here and
4957         use std::swap.
4958         * simplify-rtx.c (simplify_unary_operation_1): Use std::swap instead of
4959         manually swapping.
4960         * tree-if-conv.c (is_cond_scalar_reduction, predicate_scalar_phi,
4961         predicate_mem_writes): Likewise.
4962         * tree-loop-distribution.c (pg_add_dependence_edges): Likewise.
4963         * tree-predcom.c (combine_chains): Likewise.
4964         * tree-ssa-alias.c (nonoverlapping_component_refs_p,
4965         refs_may_alias_p_1): Likewise.
4966         * tree-ssa-ifcombine.c (recognize_if_then_else): Likewise.
4967         * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
4968         * tree-ssa-loop-niter.c (refine_bounds_using_guard,
4969         number_of_iterations_cond): Likewise.
4970         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
4971         * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
4972         * tree-vect-slp.c (vect_build_slp_tree): Likewise.
4973         * tree-vect-stmts.c (supportable_widening_operation): Likewise.
4974         * tree-vrp.c (extract_range_from_binary_expr_1,
4975         extract_range_from_unary_expr_1): Likewise.
4976
4977 2015-06-20  Marek Polacek  <polacek@redhat.com>
4978
4979         * common.opt (fsanitize-undefined-trap-on-error): Add Driver.
4980
4981 2015-06-19  Kaz Kojima  <kkojima@gcc.gnu.org>
4982
4983         PR target/66591
4984         * config/sh/sh.c (prepare_move_operands): Replace subreg
4985         index term with R0 for base and index addressing.
4986
4987 2015-06-19  Jim Wilson  <jim.wilson@linaro.org>
4988
4989         * config/aarch64/aarch64.md (mov<mode>:GPF): Don't call force_reg if
4990         op1 is an fp zero.
4991         (movsf_aarch64): Change condition from register_operand to
4992         aarch64_reg_or_fp_zero for op1.  Change type for alternative 6 to
4993         load1.  Change type for alternative 7 to store1.
4994         (movdf_aarch64): Likewise.
4995
4996 2015-06-19  James Greenhalgh  <james.greenhalgh@arm.com>
4997
4998         * config/vax/vax.md: Adjust sign/zero extend patterns to
4999         handle SUBREGs in operands[1].
5000
5001 2015-06-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5002
5003         * config/i386/i386.c (ix86_function_versions): Use std::swap instead
5004         of manually swapping.
5005         (expand_vec_perm_interleave2): Likewise.
5006
5007 2015-06-19  Ilya Enkovich  <enkovich.gnu@gmail.com>
5008
5009         * tree-chkp.c (chkp_compute_bounds_for_assignment): Don't
5010         reuse bounds created for abnormal ssa names.
5011
5012 2015-06-19  Jakub Jelinek  <jakub@redhat.com>
5013
5014         * config/nvptx/nvptx.md (allocate_stack): Rename to...
5015         (allocate_stack_<mode>): ... this, and add :P on both
5016         match_operand and unspec.
5017         (allocate_stack): New expander.
5018
5019 2015-06-19  Christian Bruel  <christian.bruel@st.com>
5020
5021         PR target/66541
5022         PR target/52144
5023         * config/arm/arm.c (arm_set_current_function): Handle
5024         explicit default options.
5025
5026 2015-06-18  Uros Bizjak  <ubizjak@gmail.com>
5027
5028         * config/i386/i386.md (*movsicc_noc_zext): New insn.
5029         (zero-extended cmove with mem peephole2): New pattern.
5030         (cmove with mem peephole2): Merge patterns.
5031
5032 2015-06-18  Segher Boessenkool  <segher@kernel.crashing.org>
5033
5034         * config/rs6000/rs6000.h (WORD_REGISTER_OPERATIONS): Delete.
5035
5036 2015-06-18  Steve Ellcey  <sellcey@imgtec.com>
5037
5038         * config/mips/mips.c (mips_rtx_costs): Remove HONOR_NAN check.
5039         * config/mips/mips.md (*madd4<mode>): Ditto.
5040         (*nmadd3<mode>) Ditto.
5041         (*nmadd4<mode>_fastmath): Ditto.
5042         (*nmadd3<mode>_fastmath): Ditto.
5043         (*nmsub4<mode>): Ditto.
5044         (*nmsub3<mode>): Ditto.
5045         (*nmsub4<mode>_fastmath): Ditto.
5046         (*nmsub3<mode>_fastmath): Ditto.
5047
5048 2015-06-18  Michael Matz  <matz@suse.de>
5049
5050         PR middle-end/66253
5051         * tree-vect-stmts.c (vectorizable_store): Implement non-SLP
5052         grouped strided stores.
5053         (vectorizable_load): Don't use the DR from first_stmt in
5054         the non-SLP grouped strided case.
5055
5056 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
5057
5058         PR target/66569
5059         * function.c (assign_bounds): Add arguments assign_regs,
5060         assign_special, assign_bt.
5061         (assign_parms): For vararg functions handle bounds in BT
5062         and special slots after incoming vararg bounds.
5063
5064 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
5065
5066         PR middle-end/66568
5067         * cfgexpand.c (expand_return): Handle missing bounds.
5068         (expand_gimple_stmt_1): Likewise.
5069         * tree-chkp.c (chkp_expand_zero_bounds): New.
5070         * tree-chkp.h (chkp_expand_zero_bounds): New.
5071
5072 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
5073
5074         PR middle-end/66567
5075         * ipa-chkp.c (chkp_maybe_create_clone): Require
5076         functions to be instrumentable.
5077         * tree-chkp.c (chkp_replace_function_pointer): Use
5078         chkp_instrumentable_p instead of attribute check.
5079
5080 2015-06-18  Richard Biener  <rguenther@suse.de>
5081
5082         PR tree-optimization/66510
5083         * tree-vect-stmts.c (vectorizable_load): Properly compute the
5084         number of vector loads for SLP permuted loads.
5085         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Also
5086         check the stride for loop vectorization.
5087         (vect_enhance_data_refs_alignment): Deal with SLP adjusted
5088         vectorization factor.
5089         (vect_analyze_group_access): If the group size is not a power
5090         of two require a epilogue loop.
5091         * tree-vect-loop.c (vect_analyze_loop_2): Move alignment
5092         compute and optimizing and alias test pruning after final
5093         vectorization factor computation.
5094         * tree-vect-slp.c (vect_build_slp_tree_1): Remove check on
5095         vector alignment.
5096         (vect_transform_slp_perm_load): Properly compute the original
5097         number of vector load stmts.
5098
5099 2015-06-18  Uros Bizjak  <ubizjak@gmail.com>
5100
5101         * doc/invoke.texi (-fsanitize-sections): Split @var to avoid
5102         "unlikely character , in @var" warning.
5103
5104 2015-06-17  Uros Bizjak  <ubizjak@gmail.com>
5105
5106         * config/i386/i386.c (ix86_function_arg): Nest TARGET_64BIT code.
5107         (ix86_function_arg_advance): Ditto.
5108         (ix86_pass_by_reference): Ditto.  Rewrite MS_ABI part.
5109
5110 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
5111
5112         * function.h (struct rtl_data): Remove struct and accessor macros.
5113         * emit-rtl.h (struct rtl_data): Relocate to here.
5114         * Makefile.in (GTFILES): Add emit-rtl.h.
5115         * df-core.c: Include emit-rtl.h.
5116         * genattrtab.c: Likewise.
5117         * genconditions.c: Likewise.
5118         * genpreds.c: Likewise.
5119         * genrecog.c: Likewise.
5120         * regcprop.c: Likewise.
5121         * resource.c: Likewise.
5122         * sched-rgn.c: Likewise.
5123         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
5124         * config/i386/winnt.c: Likewise.
5125
5126 2015-06-17  Jakub Jelinek  <jakub@redhat.com>
5127
5128         PR middle-end/66429
5129         * omp-low.c (expand_omp_taskreg, expand_omp_target): Use child_cfun
5130         instead of DECL_STRUCT_FUNCTION (child_fn).  Or in has_simduid_loops
5131         and has_force_vectorize_loops flags from cfun into
5132         child_cfun.
5133         (expand_omp_simd): For broken loop, set cfun->has_simduid_loops
5134         if simduid is non-NULL.
5135         * tree-pass.h (make_pass_simduid_cleanup): New prototype.
5136         * passes.def (pass_simduid_cleanup): Add new pass after loop
5137         passes.
5138         * tree-vectorizer.c (adjust_simduid_builtins): Remove one unnecessary
5139         indirection from htab argument's type.
5140         (shrink_simd_arrays): New function.
5141         (vectorize_loops): Use it.  Adjust adjust_simduid_builtins caller.
5142         Don't call adjust_simduid_builtins if there are no loops.
5143         (pass_data_simduid_cleanup, pass_simduid_cleanup): New variables.
5144         (pass_simduid_cleanup::execute): New method.
5145         (make_pass_simduid_cleanup): New function.
5146
5147 2017-06-17  Andrew MacLeod  <amacleod@redhat.com>
5148
5149         * tree-core.h (tree_target_option): Make opts field a pointer to a
5150         cl_target_option instead of an instance of the struct.
5151         * tree.h (TREE_TARGET_OPTION): Return the pointer, not an address of
5152         the structure.
5153         * tree.c (make_node_stat ): Allocate a cl_target_option struct for
5154         TARGET_OPTION_NODE.
5155         (copy_node_stat): Allocate and copy struct cl_target_option.
5156
5157 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
5158
5159         * tree.h (merge_dllimport_decl_attributes, handle_dll_attribute):
5160         Remove conditional exposure of prototypes.
5161         (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Delete.
5162         * tree.c (anon_aggrname_format, anon_aggrname_p): New.  Replace macro
5163         definitions in tree.h with functions.
5164         * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Use
5165         anon_aggrname_p.
5166         * tree-streamer-out.c (write_ts_decl_minimal_tree_pointers): Likewise.
5167
5168 2015-06-17  Segher Boessenkool  <segher@kernel.crashing.org>
5169
5170         * config/rs6000/rs6000.md (*cmp<mode>_internal1): Rename to...
5171         (*cmp<mode>_signed): ... this.
5172         (*cmpsi_internal2, *cmpdi_internal2): Merge, rename to...
5173         (*cmp<mode>_unsigned): ... this.  Remove %b.
5174
5175 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
5176
5177         * coretypes.h: Include input.h and as-a.h.
5178         * rtl.h: Include input.h and as-a.h for generator files.
5179         * hwint.c: Include coretypes.h, don't include diagnostic-core.h.
5180         * vec.c: Don't include diagnostic-core.h.
5181         * alias.c: Do not include input.h, line-map.h or is-a.h.
5182         * asan.c: Likewise.
5183         * attribs.c: Likewise.
5184         * auto-inc-dec.c: Likewise.
5185         * auto-profile.c: Likewise.
5186         * bb-reorder.c: Likewise.
5187         * bt-load.c: Likewise.
5188         * builtins.c: Likewise.
5189         * caller-save.c: Likewise.
5190         * calls.c: Likewise.
5191         * ccmp.c: Likewise.
5192         * cfg.c: Likewise.
5193         * cfganal.c: Likewise.
5194         * cfgbuild.c: Likewise.
5195         * cfgcleanup.c: Likewise.
5196         * cfgexpand.c: Likewise.
5197         * cfghooks.c: Likewise.
5198         * cfgloop.c: Likewise.
5199         * cfgloop.h: Likewise.
5200         * cfgloopanal.c: Likewise.
5201         * cfgloopmanip.c: Likewise.
5202         * cfgrtl.c: Likewise.
5203         * cgraph.c: Likewise.
5204         * cgraphbuild.c: Likewise.
5205         * cgraphclones.c: Likewise.
5206         * cgraphunit.c: Likewise.
5207         * cilk-common.c: Likewise.
5208         * combine-stack-adj.c: Likewise.
5209         * combine.c: Likewise.
5210         * compare-elim.c: Likewise.
5211         * convert.c: Likewise.
5212         * coverage.c: Likewise.
5213         * cppbuiltin.c: Likewise.
5214         * cprop.c: Likewise.
5215         * cse.c: Likewise.
5216         * cselib.c: Likewise.
5217         * data-streamer-in.c: Likewise.
5218         * data-streamer-out.c: Likewise.
5219         * data-streamer.c: Likewise.
5220         * dbxout.c: Likewise.
5221         * dce.c: Likewise.
5222         * ddg.c: Likewise.
5223         * debug.c: Likewise.
5224         * df-core.c: Likewise.
5225         * df-problems.c: Likewise.
5226         * df-scan.c: Likewise.
5227         * df.h: Likewise.
5228         * dfp.c: Likewise.
5229         * diagnostic-core.h: Likewise.
5230         * diagnostic.c: Likewise.
5231         * dojump.c: Likewise.
5232         * dominance.c: Likewise.
5233         * domwalk.c: Likewise.
5234         * double-int.c: Likewise.
5235         * dse.c: Likewise.
5236         * dumpfile.c: Likewise.
5237         * dumpfile.h: Likewise.
5238         * dwarf2asm.c: Likewise.
5239         * dwarf2cfi.c: Likewise.
5240         * dwarf2out.c: Likewise.
5241         * emit-rtl.c: Likewise.
5242         * et-forest.c: Likewise.
5243         * except.c: Likewise.
5244         * explow.c: Likewise.
5245         * expmed.c: Likewise.
5246         * expr.c: Likewise.
5247         * final.c: Likewise.
5248         * fixed-value.c: Likewise.
5249         * fold-const.c: Likewise.
5250         * function.c: Likewise.
5251         * fwprop.c: Likewise.
5252         * gcc-plugin.h: Likewise.
5253         * gcse.c: Likewise.
5254         * generic-match-head.c: Likewise.
5255         * ggc-page.c: Likewise.
5256         * gimple-builder.c: Likewise.
5257         * gimple-expr.c: Likewise.
5258         * gimple-fold.c: Likewise.
5259         * gimple-iterator.c: Likewise.
5260         * gimple-low.c: Likewise.
5261         * gimple-match-head.c: Likewise.
5262         * gimple-pretty-print.c: Likewise.
5263         * gimple-ssa-isolate-paths.c: Likewise.
5264         * gimple-ssa-strength-reduction.c: Likewise.
5265         * gimple-streamer-in.c: Likewise.
5266         * gimple-streamer-out.c: Likewise.
5267         * gimple-streamer.h: Likewise.
5268         * gimple-walk.c: Likewise.
5269         * gimple.c: Likewise.
5270         * gimplify-me.c: Likewise.
5271         * gimplify.c: Likewise.
5272         * godump.c: Likewise.
5273         * graph.c: Likewise.
5274         * graphite-blocking.c: Likewise.
5275         * graphite-dependences.c: Likewise.
5276         * graphite-interchange.c: Likewise.
5277         * graphite-isl-ast-to-gimple.c: Likewise.
5278         * graphite-optimize-isl.c: Likewise.
5279         * graphite-poly.c: Likewise.
5280         * graphite-scop-detection.c: Likewise.
5281         * graphite-sese-to-poly.c: Likewise.
5282         * graphite.c: Likewise.
5283         * haifa-sched.c: Likewise.
5284         * hw-doloop.c: Likewise.
5285         * ifcvt.c: Likewise.
5286         * init-regs.c: Likewise.
5287         * input.c: Likewise.
5288         * internal-fn.c: Likewise.
5289         * ipa-chkp.c: Likewise.
5290         * ipa-comdats.c: Likewise.
5291         * ipa-cp.c: Likewise.
5292         * ipa-devirt.c: Likewise.
5293         * ipa-icf-gimple.c: Likewise.
5294         * ipa-icf.c: Likewise.
5295         * ipa-inline-analysis.c: Likewise.
5296         * ipa-inline-transform.c: Likewise.
5297         * ipa-inline.c: Likewise.
5298         * ipa-polymorphic-call.c: Likewise.
5299         * ipa-profile.c: Likewise.
5300         * ipa-prop.c: Likewise.
5301         * ipa-pure-const.c: Likewise.
5302         * ipa-ref.c: Likewise.
5303         * ipa-reference.c: Likewise.
5304         * ipa-split.c: Likewise.
5305         * ipa-utils.c: Likewise.
5306         * ipa-visibility.c: Likewise.
5307         * ipa.c: Likewise.
5308         * ira-build.c: Likewise.
5309         * ira-color.c: Likewise.
5310         * ira-conflicts.c: Likewise.
5311         * ira-costs.c: Likewise.
5312         * ira-emit.c: Likewise.
5313         * ira-lives.c: Likewise.
5314         * ira.c: Likewise.
5315         * jump.c: Likewise.
5316         * langhooks.c: Likewise.
5317         * lcm.c: Likewise.
5318         * loop-doloop.c: Likewise.
5319         * loop-init.c: Likewise.
5320         * loop-invariant.c: Likewise.
5321         * loop-iv.c: Likewise.
5322         * loop-unroll.c: Likewise.
5323         * lower-subreg.c: Likewise.
5324         * lra-assigns.c: Likewise.
5325         * lra-coalesce.c: Likewise.
5326         * lra-constraints.c: Likewise.
5327         * lra-eliminations.c: Likewise.
5328         * lra-lives.c: Likewise.
5329         * lra-remat.c: Likewise.
5330         * lra-spills.c: Likewise.
5331         * lra.c: Likewise.
5332         * lto-cgraph.c: Likewise.
5333         * lto-compress.c: Likewise.
5334         * lto-opts.c: Likewise.
5335         * lto-section-in.c: Likewise.
5336         * lto-section-out.c: Likewise.
5337         * lto-streamer-in.c: Likewise.
5338         * lto-streamer-out.c: Likewise.
5339         * lto-streamer.c: Likewise.
5340         * mcf.c: Likewise.
5341         * mode-switching.c: Likewise.
5342         * modulo-sched.c: Likewise.
5343         * omega.c: Likewise.
5344         * omp-low.c: Likewise.
5345         * optabs.c: Likewise.
5346         * opts-global.c: Likewise.
5347         * opts.h: Likewise.
5348         * passes.c: Likewise.
5349         * plugin.c: Likewise.
5350         * postreload-gcse.c: Likewise.
5351         * postreload.c: Likewise.
5352         * predict.c: Likewise.
5353         * pretty-print.h: Likewise.
5354         * print-rtl.c: Likewise.
5355         * print-tree.c: Likewise.
5356         * profile.c: Likewise.
5357         * real.c: Likewise.
5358         * realmpfr.c: Likewise.
5359         * recog.c: Likewise.
5360         * ree.c: Likewise.
5361         * reg-stack.c: Likewise.
5362         * regcprop.c: Likewise.
5363         * reginfo.c: Likewise.
5364         * regrename.c: Likewise.
5365         * regstat.c: Likewise.
5366         * reload.c: Likewise.
5367         * reload1.c: Likewise.
5368         * reorg.c: Likewise.
5369         * resource.c: Likewise.
5370         * rtl-chkp.c: Likewise.
5371         * rtl-error.c: Likewise.
5372         * rtlanal.c: Likewise.
5373         * rtlhooks.c: Likewise.
5374         * sanopt.c: Likewise.
5375         * sched-deps.c: Likewise.
5376         * sched-ebb.c: Likewise.
5377         * sched-rgn.c: Likewise.
5378         * sched-vis.c: Likewise.
5379         * sdbout.c: Likewise.
5380         * sel-sched-dump.c: Likewise.
5381         * sel-sched-ir.c: Likewise.
5382         * sel-sched.c: Likewise.
5383         * sese.c: Likewise.
5384         * shrink-wrap.c: Likewise.
5385         * simplify-rtx.c: Likewise.
5386         * stack-ptr-mod.c: Likewise.
5387         * statistics.c: Likewise.
5388         * stmt.c: Likewise.
5389         * stor-layout.c: Likewise.
5390         * store-motion.c: Likewise.
5391         * streamer-hooks.c: Likewise.
5392         * stringpool.c: Likewise.
5393         * symtab.c: Likewise.
5394         * target-globals.c: Likewise.
5395         * targhooks.c: Likewise.
5396         * toplev.c: Likewise.
5397         * tracer.c: Likewise.
5398         * trans-mem.c: Likewise.
5399         * tree-affine.c: Likewise.
5400         * tree-browser.c: Likewise.
5401         * tree-call-cdce.c: Likewise.
5402         * tree-cfg.c: Likewise.
5403         * tree-cfgcleanup.c: Likewise.
5404         * tree-chkp-opt.c: Likewise.
5405         * tree-chkp.c: Likewise.
5406         * tree-chrec.c: Likewise.
5407         * tree-complex.c: Likewise.
5408         * tree-data-ref.c: Likewise.
5409         * tree-dfa.c: Likewise.
5410         * tree-diagnostic.c: Likewise.
5411         * tree-dump.c: Likewise.
5412         * tree-eh.c: Likewise.
5413         * tree-emutls.c: Likewise.
5414         * tree-if-conv.c: Likewise.
5415         * tree-inline.c: Likewise.
5416         * tree-into-ssa.c: Likewise.
5417         * tree-iterator.c: Likewise.
5418         * tree-loop-distribution.c: Likewise.
5419         * tree-nested.c: Likewise.
5420         * tree-nrv.c: Likewise.
5421         * tree-object-size.c: Likewise.
5422         * tree-outof-ssa.c: Likewise.
5423         * tree-parloops.c: Likewise.
5424         * tree-phinodes.c: Likewise.
5425         * tree-predcom.c: Likewise.
5426         * tree-pretty-print.c: Likewise.
5427         * tree-profile.c: Likewise.
5428         * tree-scalar-evolution.c: Likewise.
5429         * tree-sra.c: Likewise.
5430         * tree-ssa-address.c: Likewise.
5431         * tree-ssa-alias.c: Likewise.
5432         * tree-ssa-ccp.c: Likewise.
5433         * tree-ssa-coalesce.c: Likewise.
5434         * tree-ssa-copy.c: Likewise.
5435         * tree-ssa-copyrename.c: Likewise.
5436         * tree-ssa-dce.c: Likewise.
5437         * tree-ssa-dom.c: Likewise.
5438         * tree-ssa-dse.c: Likewise.
5439         * tree-ssa-forwprop.c: Likewise.
5440         * tree-ssa-ifcombine.c: Likewise.
5441         * tree-ssa-live.c: Likewise.
5442         * tree-ssa-loop-ch.c: Likewise.
5443         * tree-ssa-loop-im.c: Likewise.
5444         * tree-ssa-loop-ivcanon.c: Likewise.
5445         * tree-ssa-loop-ivopts.c: Likewise.
5446         * tree-ssa-loop-manip.c: Likewise.
5447         * tree-ssa-loop-niter.c: Likewise.
5448         * tree-ssa-loop-prefetch.c: Likewise.
5449         * tree-ssa-loop-unswitch.c: Likewise.
5450         * tree-ssa-loop.c: Likewise.
5451         * tree-ssa-math-opts.c: Likewise.
5452         * tree-ssa-operands.c: Likewise.
5453         * tree-ssa-phiopt.c: Likewise.
5454         * tree-ssa-phiprop.c: Likewise.
5455         * tree-ssa-pre.c: Likewise.
5456         * tree-ssa-propagate.c: Likewise.
5457         * tree-ssa-reassoc.c: Likewise.
5458         * tree-ssa-sccvn.c: Likewise.
5459         * tree-ssa-scopedtables.c: Likewise.
5460         * tree-ssa-sink.c: Likewise.
5461         * tree-ssa-strlen.c: Likewise.
5462         * tree-ssa-structalias.c: Likewise.
5463         * tree-ssa-tail-merge.c: Likewise.
5464         * tree-ssa-ter.c: Likewise.
5465         * tree-ssa-threadedge.c: Likewise.
5466         * tree-ssa-threadupdate.c: Likewise.
5467         * tree-ssa-uncprop.c: Likewise.
5468         * tree-ssa-uninit.c: Likewise.
5469         * tree-ssa.c: Likewise.
5470         * tree-ssanames.c: Likewise.
5471         * tree-stdarg.c: Likewise.
5472         * tree-streamer-in.c: Likewise.
5473         * tree-streamer-out.c: Likewise.
5474         * tree-streamer.c: Likewise.
5475         * tree-switch-conversion.c: Likewise.
5476         * tree-tailcall.c: Likewise.
5477         * tree-vect-data-refs.c: Likewise.
5478         * tree-vect-generic.c: Likewise.
5479         * tree-vect-loop-manip.c: Likewise.
5480         * tree-vect-loop.c: Likewise.
5481         * tree-vect-patterns.c: Likewise.
5482         * tree-vect-slp.c: Likewise.
5483         * tree-vect-stmts.c: Likewise.
5484         * tree-vectorizer.c: Likewise.
5485         * tree-vrp.c: Likewise.
5486         * tree.c: Likewise.
5487         * tsan.c: Likewise.
5488         * ubsan.c: Likewise.
5489         * valtrack.c: Likewise.
5490         * value-prof.c: Likewise.
5491         * var-tracking.c: Likewise.
5492         * varasm.c: Likewise.
5493         * varpool.c: Likewise.
5494         * vmsdbgout.c: Likewise.
5495         * vtable-verify.c: Likewise.
5496         * web.c: Likewise.
5497         * wide-int.cc: Likewise.
5498         * xcoffout.c: Likewise.
5499         * common/common-target.h: Do not include input.h, line-map.h or is-a.h.
5500         * common/common-targhooks.c: Likewise.
5501         * config/aarch64/aarch64-builtins.c: Likewise.
5502         * config/aarch64/aarch64.c: Likewise.
5503         * config/alpha/alpha.c: Likewise.
5504         * config/arc/arc.c: Likewise.
5505         * config/arm/aarch-common.c: Likewise.
5506         * config/arm/arm-builtins.c: Likewise.
5507         * config/arm/arm-c.c: Likewise.
5508         * config/arm/arm.c: Likewise.
5509         * config/avr/avr-c.c: Likewise.
5510         * config/avr/avr-log.c: Likewise.
5511         * config/avr/avr.c: Likewise.
5512         * config/bfin/bfin.c: Likewise.
5513         * config/c6x/c6x.c: Likewise.
5514         * config/cr16/cr16.c: Likewise.
5515         * config/cris/cris.c: Likewise.
5516         * config/darwin-c.c: Likewise.
5517         * config/darwin.c: Likewise.
5518         * config/default-c.c: Likewise.
5519         * config/epiphany/epiphany.c: Likewise.
5520         * config/epiphany/mode-switch-use.c: Likewise.
5521         * config/epiphany/resolve-sw-modes.c: Likewise.
5522         * config/fr30/fr30.c: Likewise.
5523         * config/frv/frv.c: Likewise.
5524         * config/ft32/ft32.c: Likewise.
5525         * config/glibc-c.c: Likewise.
5526         * config/h8300/h8300.c: Likewise.
5527         * config/i386/i386-c.c: Likewise.
5528         * config/i386/i386.c: Likewise.
5529         * config/i386/msformat-c.c: Likewise.
5530         * config/i386/winnt-cxx.c: Likewise.
5531         * config/i386/winnt-stubs.c: Likewise.
5532         * config/i386/winnt.c: Likewise.
5533         * config/ia64/ia64-c.c: Likewise.
5534         * config/ia64/ia64.c: Likewise.
5535         * config/iq2000/iq2000.c: Likewise.
5536         * config/lm32/lm32.c: Likewise.
5537         * config/m32c/m32c-pragma.c: Likewise.
5538         * config/m32c/m32c.c: Likewise.
5539         * config/m32r/m32r.c: Likewise.
5540         * config/m68k/m68k.c: Likewise.
5541         * config/mcore/mcore.c: Likewise.
5542         * config/mep/mep-pragma.c: Likewise.
5543         * config/mep/mep.c: Likewise.
5544         * config/microblaze/microblaze-c.c: Likewise.
5545         * config/microblaze/microblaze.c: Likewise.
5546         * config/mips/mips.c: Likewise.
5547         * config/mmix/mmix.c: Likewise.
5548         * config/mn10300/mn10300.c: Likewise.
5549         * config/moxie/moxie.c: Likewise.
5550         * config/msp430/msp430-c.c: Likewise.
5551         * config/msp430/msp430.c: Likewise.
5552         * config/nds32/nds32-cost.c: Likewise.
5553         * config/nds32/nds32-fp-as-gp.c: Likewise.
5554         * config/nds32/nds32-intrinsic.c: Likewise.
5555         * config/nds32/nds32-isr.c: Likewise.
5556         * config/nds32/nds32-md-auxiliary.c: Likewise.
5557         * config/nds32/nds32-memory-manipulation.c: Likewise.
5558         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
5559         * config/nds32/nds32-predicates.c: Likewise.
5560         * config/nds32/nds32.c: Likewise.
5561         * config/nios2/nios2.c: Likewise.
5562         * config/nvptx/nvptx.c: Likewise.
5563         * config/pa/pa.c: Likewise.
5564         * config/pdp11/pdp11.c: Likewise.
5565         * config/rl78/rl78-c.c: Likewise.
5566         * config/rl78/rl78.c: Likewise.
5567         * config/rs6000/rs6000-c.c: Likewise.
5568         * config/rs6000/rs6000.c: Likewise.
5569         * config/rx/rx.c: Likewise.
5570         * config/s390/s390-c.c: Likewise.
5571         * config/s390/s390.c: Likewise.
5572         * config/sh/sh-c.c: Likewise.
5573         * config/sh/sh-mem.cc: Likewise.
5574         * config/sh/sh.c: Likewise.
5575         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
5576         * config/sh/sh_treg_combine.cc: Likewise.
5577         * config/sol2-c.c: Likewise.
5578         * config/sol2-cxx.c: Likewise.
5579         * config/sol2-stubs.c: Likewise.
5580         * config/sol2.c: Likewise.
5581         * config/sparc/sparc-c.c: Likewise.
5582         * config/sparc/sparc.c: Likewise.
5583         * config/spu/spu-c.c: Likewise.
5584         * config/spu/spu.c: Likewise.
5585         * config/stormy16/stormy16.c: Likewise.
5586         * config/tilegx/mul-tables.c: Likewise.
5587         * config/tilegx/tilegx-c.c: Likewise.
5588         * config/tilegx/tilegx.c: Likewise.
5589         * config/tilepro/mul-tables.c: Likewise.
5590         * config/tilepro/tilepro-c.c: Likewise.
5591         * config/tilepro/tilepro.c: Likewise.
5592         * config/v850/v850-c.c: Likewise.
5593         * config/v850/v850.c: Likewise.
5594         * config/vax/vax.c: Likewise.
5595         * config/visium/visium.c: Likewise.
5596         * config/vms/vms-c.c: Likewise.
5597         * config/vms/vms.c: Likewise.
5598         * config/vxworks.c: Likewise.
5599         * config/winnt-c.c: Likewise.
5600         * config/xtensa/xtensa.c: Likewise.
5601
5602 2015-06-17  Robert Suchanek  <robert.suchanek@imgtec.com>
5603
5604         * config/mips/mips.c (mips_ira_change_pseudo_allocno_class): New
5605         function.
5606         (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define macro.
5607
5608 2015-06-17  Richard Biener  <rguenther@suse.de>
5609
5610         PR tree-optimization/66251
5611         * tree-vect-stmts.c (vectorizable_store): Fix gathering of vectorized
5612         stmts for SLP strided stores.
5613
5614         Revert
5615         2015-05-22  Richard Biener  <rguenther@suse.de>
5616
5617         PR tree-optimization/66251
5618         * tree-vect-stmts.c (vectorizable_conversion): Properly
5619         set STMT_VINFO_VEC_STMT even for the SLP case.
5620
5621         2015-05-26  Michael Matz  <matz@suse.de>
5622
5623         PR middle-end/66251
5624         * tree-vect-stmts.c (vect_create_vectorized_demotion_stmts): Always set
5625         STMT_VINFO_VEC_STMT, also with SLP.
5626
5627 2015-06-16  Uros Bizjak  <ubizjak@gmail.com>
5628
5629         PR target/56766
5630         * config/i386/sse.md (*avx_addsubv4df3_1): New insn pattern.
5631         (*avx_addsubv4df3_1s): Ditto.
5632         (*sse3_addsubv2df3_1): Ditto.
5633         (*sse3_addsubv2df3_1s): Ditto.
5634         (*avx_addsubv8sf3_1): Ditto.
5635         (*avx_addsubv8sf3_1s): Ditto.
5636         (*sse3_addsubv4sf3_1): Ditto.
5637         (*sse3_addsubv4sf3_1s): Ditto.
5638
5639 2015-06-16  Steve Ellcey  <sellcey@imgtec.com>
5640
5641         * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): New.
5642         (SYSROOT_SUFFIX_SPEC): Update.
5643         (SYSROOT_HEADERS_SUFFIX_SPEC): New.
5644         (STARTFILE_PREFIX_SPEC): Update.
5645         * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Remove.
5646         (MULTILIB_REQUIRED): New.
5647         (MULTILIB_OSDIRNAMES): New.
5648         * config/mips/t-img-linux (MULTILIB_EXCEPTIONS): Remove.
5649         (MULTILIB_REQUIRED): New.
5650         (MULTILIB_OSDIRNAMES): New.
5651
5652 2015-06-16  Matthew Wahab  <matthew.wahab@arm.com>
5653
5654         * config/aarch64/aarch64-arches.def: Add "armv8.1-a".
5655         * config/aarch64/aarch64-options-extensions.def: Update "fP",
5656         "simd" and "crypto".  Add "lse", "pan", "lor" and "rdma".
5657         * gcc/config/aarch64/aarch64.h (AARCH64_FL_LSE): New.
5658         (AARCH64_FL_PAN): New.
5659         (AARCH64_FL_LOR): New.
5660         (AARCH64_FL_RDMA): New.
5661         (AARCH64_FL_FOR_ARCH8_1): New.
5662         * doc/invoke.texi (AArch64 Options): Add "armv8.1-a" to
5663         -march. Add "lse", "pan", "lor", "rdma" to feature modifiers.
5664
5665 2015-06-16  Martin Liska  <mliska@suse.cz>
5666
5667         * bitmap.c (dump_bitmap_statistics): Fix GNU coding style.
5668         * hash-table.c (void dump_hash_table_loc_statistics): Add missing
5669         guard.
5670
5671 2015-06-16  Richard Biener  <rguenther@suse.de>
5672
5673         * tree-vect-stmts.c (vectorizable_store): Adjust.
5674         (vectorizable_load): Likewise.
5675         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
5676         Simplify.
5677         (vect_create_data_ref_ptr): Likewise.
5678         (bump_vector_ptr): Adjust.
5679
5680 2015-06-16  Richard Biener  <rguenther@suse.de>
5681
5682         * tree-vect-stmts.c (vectorizable_load): Properly start loads
5683         with the first element if this is grouped loads.
5684
5685 2015-06-16  James Greenhalgh  <james.greenhalgh@arm.com>
5686
5687         * config/arm/arm-protos.h (struct tune_params): Rename
5688         log_op_non_sc to log_op_non_short_circuit, and rename enum
5689         values to expand SC to SHORT_CIRCUIT.
5690         * config/arm/arm.c (arm_slowmul_tune): Expand LOG_OP_NON_SC
5691         to LOG_OP_NON_SHORT_CIRCUIT.
5692         (arm_fastmul_tune):Likewise
5693         (arm_strongarm_tune): Likewise.
5694         (arm_xscale_tune): Likewise.
5695         (arm_9e_tune): Likewise.
5696         (arm_marvell_pj4_tune): Likewise.
5697         (arm_v6t2_tune): Likewise.
5698         (arm_cortex_tune): Likewise.
5699         (arm_cortex_a8_tune): Likewise.
5700         (arm_cortex_a7_tune): Likewise.
5701         (arm_cortex_a15_tune): Likewise.
5702         (arm_cortex_a53_tune): Likewise.
5703         (arm_cortex_a57_tune): Likewise.
5704         (arm_xgene1_tune): Likewise.
5705         (arm_cortex_a5_tune): Likewise.
5706         (arm_cortex_a9_tune): Likewise.
5707         (arm_cortex_a12_tune): Likewise.
5708         (arm_v7m_tune): Likewise.
5709         (arm_cortex_m7_tune): Likewise.
5710         (arm_v6m_tune): Likewise.
5711         (arm_fa726te_tune): Likewise.
5712
5713 2015-06-15  David Edelsohn  <dje.gcc@gmail.com>
5714
5715         * altivec.md: Delete UNSPEC_VMLADDUHM.
5716         (mulv4si3_p8): New pattern.
5717         (mulv4si3): Use it for POWER8.
5718         (mulv8hi3): Use vmladduhm with zero addend.
5719         (altivec_vmladduhm): Descriptive RTL.
5720
5721 2015-06-15  Jim Wilson  <jim.wilson@linaro.org>
5722
5723         * config/aarch64/aarch64.md (mov<mode>_aarch64): Change alternative 2
5724         to use neon_move instead of mov_imm.
5725         (movdi_aarch64): Change alternative 14 to use neon_move not fmov.
5726         (movtf_aarch64): Change alternative 4 to use neon_move_q not fconstd.
5727
5728         * config/aarch64/aarch64.c (aarch64_valid_floating_const): Move
5729         aarch64_float_const_zero_rtx_p check before TFmode check.
5730         * config/aarch64/aarch64.md (movtf): Don't call force_reg if op1 is
5731         an fp zero.
5732         (movtf_aarch64): Separate ?rY alternative into two.  Adjust assembly
5733         code and attributes to match.  Change condition from register_operand
5734         to aarch64_reg_or_fp_zero for op1.  Change type for ldp from
5735         neon_load1_2reg to load2.  Change type for stp from neon_store1_2reg
5736         to store2.
5737
5738 2015-06-15  Aldy Hernandez  <aldyh@redhat.com>
5739
5740         PR debug/66535
5741         * dwarf2out.c (gen_subprogram_die): Do not check a parent's tag if
5742         there is no parent.
5743
5744 2015-06-14  Shiva Chen  <shiva0217@gmail.com>
5745
5746         * aarch64.c (aarch64_simd_lane_bounds): Change %ld to %wd for
5747         HOST_WIDE_INT parameter.
5748
5749 2015-06-14  Jan Hubicka  <hubicka@ucw.cz>
5750
5751         PR ipa/66181
5752         * lto-streamer-out.c (hash_tree): Do not hash TYPE_NO_FORCE_BLK.
5753         * tree-streamer-out.c (pack_ts_type_common_value_fields): Do not stream
5754         TYPE_NO_FORCE_BLK.
5755         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Likewise.
5756
5757 2015-06-14  Richard Sandiford  <richard.sandiford@arm.com>
5758
5759         * rtl.h (classify_insn): Declare.
5760         * emit-rtl.c (classify_insn): Move to...
5761         * rtl.c: ...here and add generator support.
5762         * gensupport.h (get_emit_function, needs_barrier_p): Declare.
5763         * gensupport.c (get_emit_function, needs_barrier_p): New functions.
5764         * genemit.c (gen_emit_seq): New function.
5765         (gen_expand, gen_split): Use it.
5766
5767 2015-06-13  Patrick Palka  <ppalka@gcc.gnu.org>
5768
5769         * tree.c (make_vector_stat): Fix comment to state that the
5770         function returns a VECTOR_CST.
5771
5772 2015-06-13  Richard Sandiford  <richard.sandiford@arm.com>
5773
5774         * gensupport.h (add_implicit_parallel): Declare.
5775         * genrecog.c (add_implicit_parallel): Move to...
5776         * gensupport.c (add_implicit_parallel): ...here.
5777         (process_one_cond_exec): Use it.
5778         * genemit.c (gen_insn): Likewise.
5779
5780 2015-06-13  Iain Sandoe  <iain@codesourcery.com>
5781
5782         PR bootstrap/66448
5783         * passes.c (rest_of_decl_compilation): Do not register globals for
5784         early debug if they are declared in built-ins.
5785
5786 2015-06-12  Aldy Hernandez  <aldyh@redhat.com>
5787
5788         * dwarf2out.c (check_die): Protect with ENABLE_CHECKING.
5789
5790 2015-06-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5791
5792         * ifcvt.c (noce_try_store_flag_constants): Use std::swap instead of
5793         manually swapping.
5794         (noce_try_cmove_arith): Likewise.
5795         (noce_get_alt_condition): Likewise.
5796
5797 2015-06-12  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
5798
5799         * common/config/i386/i386-common.c
5800         (OPTION_MASK_ISA_MWAITX_SET): New.
5801         (ix86_handle_option): Handle mwaitx.
5802         * config.gcc (i[34567]86-*-*): Add mwaitxintrin.h,
5803         (x86_64-*-*): Likewise.
5804         * config/i386/mwaitxintrin.h: New header.
5805         * config/i386/cpuid.h (bit_MWAITX):  Define.
5806         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
5807         MWAITX support.
5808         * config/i386/i386.opt (mwaitx): New.
5809         * config/i386/i386-builtin-types.def
5810         (VOID_FTYPE_UNSIGNED_ UNSIGNED_UNSIGNED): New function type.
5811         * config/i386/i386-c.c: Define __MWAITX__ if needed.
5812         * config/i386/i386.c (ix86_target_string): Define -mmwaitx option.
5813         (PTA_MWAITX): New.
5814         (ix86_option_override_internal): Handle new option.
5815         (processor_alias_table): Added PTA_MWAITX.
5816         (ix86_valid_target_attribute_inner_p): Add OPT_mmwaitx.
5817         (ix86_builtins): Add IX86_BUILTIN_MWAITX, IX86_BUILTIN_MONITORX.
5818         (ix86_expand_builtin): Handle IX86_BUILTIN_MWAITX and
5819         IX86_BUILTIN_MONITORX  built-ins.
5820         * config/i386/i386.h (TARGET_MWAITX): New.
5821         * config/i386/i386.md (unspecv): Add UNSPEC_MWAITX and
5822         UNSPEC_MONITORX.
5823         (mwaitx):  New pattern.
5824         (monitorx_<mode>): New pattern.
5825         * config/i386/x86intrin.h: Include mwaitxintrin.h.
5826         * doc/extend.texi: Document monitorx and mwaitx builtins.
5827         * doc/invoke.texi: Document -mmwaitx option.
5828
5829 2015-06-12  Uros Bizjak  <ubizjak@gmail.com>
5830
5831         * emit-rtl.c (need_atomic_barrier_p): Mask model with
5832         MEMMODEL_BASE_MASK.  Remove MEMMODEL_SYNC_* cases.
5833
5834 2015-06-11  David Edelsohn  <dje.gcc@gmail.com>
5835
5836         * dbxout.c (xcoff_debug_hooks): Provide a function for
5837         register_main_translation_unit hook.
5838
5839 2015-06-11  David Edelsohn  <dje.gcc@gmail.com>
5840
5841         * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier): Remove SYNC
5842         variants cases from switch.
5843         (rs6000_post_atomic_barrier): Same.
5844         (rs6000_expand_atomic_compare_and_swap): Use memmodel_base.
5845         (rs6000_expand_atomic_exchange): Same.
5846         (rs6000_expand_atomic_op): Same.
5847         * config/rs6000/sync.md (mem_thread_fence): Use memodel_base. Remove
5848         SYNC variants cases from switch.
5849         (atomic_load): Same.
5850         (atomic_store): Same.
5851
5852 2015-06-11  John David Anglin  <danglin@gcc.gnu.org>
5853
5854         * config/pa/pa.c (pa_output_global_address): Handle LABEL_REF plus
5855         CONST_INT for goto.
5856
5857 2015-06-11  Aldy Hernandez  <aldyh@redhat.com>
5858
5859         PR bootstrap/66448
5860         * dwarf2out.c (check_die): Check for common duplicate attributes.
5861         (add_location_or_const_value_attribute): Do not add duplicate
5862         attributes.
5863         (gen_formal_parameter_die): Do not add DW_AT_artificial the second
5864         time around.
5865         (gen_struct_or_union_type_die): Bail early if TREE_ASM_WRITTEN.
5866         (gen_type_die_with_usage): Call check_die.
5867         (dwarf2out_decl): Only call check_die() when ENABLE_CHECKING.
5868
5869 2015-06-11  Jason Merrill  <jason@redhat.com>
5870
5871         * dwarf2out.c (prune_unused_types): Handle unused top-level limbo
5872         dies.
5873
5874 2015-06-11  Marek Polacek  <polacek@redhat.com>
5875
5876         * match.pd ((x & y) ^ (x | y)): Don't check for single_use.
5877
5878 2015-06-11  Eric Botcazou  <ebotcazou@adacore.com>
5879
5880         PR bootstrap/66252
5881         * config/sparc/sparc.c (hard_regno_mode_classes): Add ??? comment.
5882         * config/sparc/sparc.md (zero_extendsidi2_insn_sp32): Use single order.
5883         (*addx_extend_sp32): Fix pasto.
5884         (*subx_extend): Rename into...
5885         (*subx_extend_sp32): ...this.
5886         (*adddi3_extend_sp32): Add earlyclobber.
5887         (*subdi3_insn_sp32): Likewise.
5888         (*subdi3_extend_sp32): Likewise.
5889         (*and_not_di_sp32): Likewise.
5890         (*or_not_di_sp32): Likewise.
5891         (*xor_not_di_sp32): Likewise.
5892         (*negdi2_sp32): Likewise.
5893         (*one_cmpldi2_sp32): Likewise.
5894
5895 2015-06-11  Pierre-Marie de Rodat  <derodat@adacore.com>
5896
5897         * debug.h (struct gcc_debug_hooks): Add a
5898         register_main_translation_unit hook.
5899         * debug.c (do_nothing_debug_hooks): Provide a function for this
5900         new hook.
5901         * dbxout.c (dbx_debug_hooks): Likewise.
5902         * sdbout.c (sdb_debug_hooks): Likewise.
5903         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
5904         * dwarf2out.c (main_translation_unit): New global variable.
5905         (dwarf2out_register_main_translation_unit): New function
5906         implementing the new hook.
5907         (dwarf2_debug_hooks): Assign
5908         dwarf2out_register_main_translation_unit to this new hook.
5909         (dwarf2out_init): Associate any main translation unit to
5910         comp_unit_die ().
5911
5912 2015-06-11  Marek Polacek  <polacek@redhat.com>
5913
5914         * match.pd ((x & y) ^ (x | y) -> x ^ y): New pattern.
5915
5916 2015-06-11  Marek Polacek  <polacek@redhat.com>
5917
5918         * match.pd: Use single_use throughout.
5919
5920 2015-06-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5921
5922         * config/arm/arm.c (arm_option_params_internal): When optimising
5923         for speed set max_insns_skipped when arm_restrict_it.
5924
5925 2015-06-11  Christian Bruel  <christian.bruel@st.com>
5926
5927         PR target/52144
5928         * config/arm/arm-c.c (arm_cpu_cpp_builtins): Conditionally define
5929          macros in ...
5930         (arm_cpu_builtins): New function.
5931         (arm_pragma_target_parse): Call arm_cpu_builtins.
5932         * config/arm/arm-protos.h (arm_cpu_builtins): Declare.
5933         (arm_register_target_pragmas): Likewise.
5934         * config/arm/arm.h (REGISTER_TARGET_PRAGMAS):
5935          Call arm_register_target_pragmas.
5936         * config/arm/arm-c.c (arm_register_target_pragmas): New function.
5937         (arm_pragma_target_parse): Likewise.
5938
5939 2015-06-10  Kaz Kojima  <kkojima@gcc.gnu.org>
5940
5941         * config/sh/sh.md (tstsi_t): Add '?' modifier to 'r' alternative
5942         of the second operand.
5943
5944 2015-06-10  Uros Bizjak  <ubizjak@gmail.com>
5945
5946         PR target/66473
5947         * config/i386/i386.c (ix86_expand_vector_set): Use gen_int_mode
5948         to prepare mask operand for AVX512 modes.
5949
5950 2015-06-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
5951
5952         PR target/66474
5953         * doc/md.texi (Machine Constraints): Document that on the PowerPC
5954         if you use a constraint that targets a VSX register, you must use
5955         %x<n> in the template.
5956
5957 2015-06-10  Max Filippov  <jcmvbkbc@gmail.com>
5958
5959         * config/xtensa/xtensa.h (TARGET_DEBUG): New definition.
5960         * config/xtensa/xtensa.md (define_attr "type"): New type "trap".
5961         (define_insn "trap"): New definition.
5962
5963 2015-06-10  Richard Biener  <rguenther@suse.de>
5964
5965         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Split
5966         out from ...
5967         (vect_supported_load_permutation_p): ... here.  Handle
5968         supportable permutations in reductions.
5969         * tree-vect-stmts.c (vectorizable_load): Handle SLP permutations
5970         for vectorizing strided group loads.
5971
5972 2015-06-10  Jakub Jelinek  <jakub@redhat.com>
5973
5974         PR target/66470
5975         * config/i386/i386.c (ix86_split_long_move): For collisions
5976         involving direct tls segment refs, move the UNSPEC_TP possibly
5977         wrapped in ZERO_EXTEND out of the address for lea, to each of
5978         the memory loads.
5979
5980 2015-06-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5981
5982         * config/arm/sync.md (*memory_barrier): Use dmb ish instead of
5983         dmb sy. Adjust tabs.
5984
5985 2015-06-10  Tom de Vries  <tom@codesourcery.com>
5986
5987         * omp-low.c (expand_omp_target): Remove duplicate declaration of node.
5988
5989 2015-06-10  Martin Liska  <mliska@suse.cz>
5990
5991         PR bootstrap/66471
5992         * mem-stats-traits.h (enum mem_alloc_origin): Add _ORIGIN suffix for
5993         all enum values in mem_alloc_origin.
5994         * alloc-pool.c (dump_alloc_pool_statistics): Use newly changed enum
5995         name.
5996         * alloc-pool.h (pool_allocator::pool_allocator): Likewise.
5997         * bitmap.c (bitmap_register): Likewise.
5998         (dump_bitmap_statistics): Likewise.
5999         * ggc-common.c (dump_ggc_loc_statistics): Likewise.
6000         (ggc_record_overhead): Likewise.
6001         * hash-map.h: Likewise.
6002         * hash-set.h: Likewise.
6003         * hash-table.c (void dump_hash_table_loc_statistics): Likewise.
6004         * hash-table.h: Likewise.
6005         * vec.c (vec_prefix::register_overhead): Likewise.
6006         (vec_prefix::release_overhead): Likewise.
6007         (dump_vec_loc_statistics): Likewise.
6008
6009 2015-06-09  Christian Bruel  <christian.bruel@st.com>
6010
6011         PR target/52144
6012         * config/arm/arm.opt (THUMB, arm_restrict_it, inline_asm_unified): Save.
6013         * config/arm/arm-protos.h (arm_valid_target_attribute_tree): Declare.
6014         (arm_reset_previous_fndecl, arm_change_mode_p): Likewise.
6015         * config/arm/arm.h (SWITCHABLE_TARGET): Define.
6016         * config/arm/arm.c (arm_reset_previous_fndecl): New functions.
6017         (arm_valid_target_attribute_tree, arm_change_mode_p): Likewise.
6018         (arm_valid_target_attribute_p): Likewise.
6019         (arm_set_current_function, arm_can_inline_p): Likewise.
6020         (arm_valid_target_attribute_rec): Likewise.
6021         (arm_previous_fndecl): New variable.
6022         (TARGET_SET_CURRENT_FUNCTION, TARGET_OPTION_VALID_ATTRIBUTE_P): Define.
6023         (TARGET_CAN_INLINE_P): Define.
6024         (arm_asm_trampoline_template): Emit mode.
6025         (arm_file_start): Don't set unified syntax.
6026         (arm_declare_function_name): Set unified syntax and mode.
6027         (arm_option_override): Init target_option_default_node.
6028         and target_option_current_node.
6029         * config/arm/arm.md (*call_value_symbol): Set mode when possible.
6030         (*call_symbol): Likewise.
6031         * doc/extend.texi: Document ARM/Thumb target attribute.
6032         * doc/invoke.texi: Likewise.
6033
6034 2015-06-09  Alexandre Oliva <aoliva@redhat.com>
6035
6036         Revert:
6037         2015-06-09  Alexandre Oliva <aoliva@redhat.com>
6038         PR rtl-optimization/64164
6039         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
6040         * tree-ssa-copyrename.c: Removed.
6041         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
6042         -ftree-coalesce-vars.
6043         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
6044         * common.opt (ftree-copyrename): Ignore.
6045         (ftree-coalesce-inlined-vars): Likewise.
6046         * doc/invoke.texi: Remove the ignored options above.
6047         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
6048         * tree-ssa-coalesce.h: ... here.
6049         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
6050         headers required by it.
6051         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
6052         across variables when flag_tree_coalesce_vars.  Check register
6053         use and promoted modes to allow coalescing.  Moved to
6054         tree-ssa-coalesce.c.
6055         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
6056         with its member functions to tree-ssa-coalesce.c.
6057         (var_map_base_init): Likewise.  Renamed to
6058         compute_samebase_partition_bases.
6059         (partition_view_normal): Drop want_bases parameter.
6060         (partition_view_bitmap): Likewise.
6061         * tree-ssa-live.h: Adjust declarations.
6062         * tree-ssa-coalesce.c: Include explow.h.
6063         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
6064         default defs at the entry point.
6065         (dump_part_var_map): New.
6066         (compute_optimized_partition_bases): New, called by...
6067         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
6068         of compute_samebase_partition_bases.  Adjust.
6069         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
6070         * cfgexpand.c (leader_merge): New.
6071         (get_rtl_for_parm_ssa_default_def): New.
6072         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
6073         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
6074         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
6075         redundant MEM attr setting.
6076         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
6077         from...
6078         (expand_one_stack_var): ... this.  New wrapper to check and
6079         skip already expanded SSA partitions.
6080         (record_alignment_for_reg_var): New, factored out of...
6081         (expand_one_var): ... this.
6082         (expand_one_ssa_partition): New.
6083         (adjust_one_expanded_partition_var): New.
6084         (expand_one_register_var): Check and skip already expanded SSA
6085         partitions.
6086         (expand_used_vars): Don't create DECLs for anonymous SSA
6087         names.  Expand all SSA partitions, then adjust all SSA names.
6088         (pass::execute): Replace the loops that set
6089         SA.partition_to_pseudo from partition leaders and cleared
6090         DECL_RTL for multi-location variables, and that which used to
6091         rename vars and set attrs, with one that clears DECL_RTL and
6092         checks that PARMs and RESULTs default_defs match DECL_RTL.
6093         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
6094         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
6095         * explow.c (promote_ssa_mode): New.
6096         * explow.h (promote_ssa_mode): Declare.
6097         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
6098         * function.c: Include cfgexpand.h.
6099         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
6100         (use_register_for_parm_decl): Wrapper for the above to
6101         special-case the result_ptr.
6102         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
6103         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
6104         multiple locations.
6105         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
6106         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
6107         (assign_parm_setup_block): Prefer SSA-assigned location.
6108         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
6109         if stack_parm is NULL.
6110         (assign_parm_setup_stack): Prefer SSA-assigned location.
6111         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
6112         rtl before testing for pointer bounds.  Special-case result_ptr.
6113         (expand_function_start): Maybe reset DECL_RTL of result.
6114         Prefer SSA-assigned location for result and static chain.
6115         Factor out DECL_RESULT and SET_DECL_RTL.
6116         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
6117         anonymous SSA names.  Use promote_ssa_mode.
6118         (get_temp_reg): Likewise.
6119         (remove_ssa_form): Adjust.
6120         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
6121         and get its reg_usage for reg invalidation.
6122         (compute_bb_dataflow): Pass it insn.
6123         (emit_notes_in_bb): Likewise.
6124         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
6125         fail assert on conversion between unsigned types.
6126
6127 2015-06-09  Tom de Vries  <tom@codesourcery.com>
6128
6129         PR tree-optimization/65460
6130         * omp-low.c (expand_omp_target): Set parallelized_function on
6131         cgraph_node for child_fn.
6132
6133 2015-06-09  Tom de Vries  <tom@codesourcery.com>
6134
6135         * omp-low.c (finalize_task_copyfn, expand_omp_taskreg): Mark function
6136         parallelized_function before add_new_function.
6137
6138 2015-06-09  Andrew MacLeod  <amacleod@redhat.com>
6139
6140         * gcc-plugin.h: Move decls to plugin.h and include it.
6141         * plugin.h: Relocate decls from gcc-plugin.h
6142         * ggc-page.c: Include required header files.
6143         * passes.c: Likewise.
6144         * cgraphunit.c: Likewise.
6145
6146 2015-06-09  Tom de Vries  <tom@codesourcery.com>
6147
6148         * tree-stdarg.c (expand_ifn_va_arg_1): Handle location.
6149
6150 2015-06-09  Jason Merrill  <jason@redhat.com>
6151
6152         PR bootstrap/66448
6153         * toplev.c (check_global_declaration): Don't warn about a clone.
6154
6155 2015-06-09  Marek Polacek  <polacek@redhat.com>
6156
6157         PR tree-optimization/66299
6158         * match.pd ((CST1 << A) == CST2 -> A == ctz (CST2) - ctz (CST1)
6159         ((CST1 << A) != CST2 -> A != ctz (CST2) - ctz (CST1)): New
6160         patterns.
6161
6162 2015-06-09  Richard Biener  <rguenther@suse.de>
6163
6164         * tree-vect-slp.c (vect_build_slp_tree_1): Remove bailout on gaps.
6165         (vect_analyze_slp_instance): Instead do not falsely drop
6166         load permutations.
6167
6168 2015-06-09  Richard Biener  <rguenther@suse.de>
6169
6170         PR middle-end/66423
6171         * match.pd: Handle A % (unsigned)(1 << B).
6172
6173 2015-06-09  Aldy Hernandez  <aldyh@redhat.com>
6174
6175         * varasm.c (output_object_block_htab): Remove.
6176         (output_object_block_compare): New.
6177         (output_object_blocks): Sort named object_blocks before outputting
6178         them.
6179
6180 2015-06-09  Richard Biener  <rguenther@suse.de>
6181
6182         PR tree-optimization/66419
6183         * tree-vect-slp.c (vect_supported_load_permutation_p): Properly
6184         consider GROUP_GAP when detecting a perfect subchain.
6185
6186 2015-06-09  Nick Clifton  <nickc@redhat.com>
6187
6188         * config/rl78/rl78.c (rl78_select_section): When -mes0 is active
6189         place read only data in the .frodata section.
6190
6191 2015-06-09  Shiva Chen  <shiva0217@gmail.com>
6192
6193         * sync.md (atomic_load<mode>): Add conditional code for lda/ldr
6194         (atomic_store<mode>): Likewise.
6195
6196 2015-06-09  Richard Biener  <rguenther@suse.de>
6197
6198         * cfgloop.c (get_loop_body_in_bfs_order): Fix assert.
6199
6200 2015-06-09  Richard Biener  <rguenther@suse.de>
6201
6202         PR middle-end/66413
6203         * tree-inline.c (insert_init_debug_bind): Unshare value.
6204
6205 2015-06-09  Richard Biener  <rguenther@suse.de>
6206
6207         PR tree-optimization/66396
6208         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
6209         Rename virtual operands.
6210
6211 2015-06-09  Tom de Vries  <tom@codesourcery.com>
6212
6213         * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Don't
6214         always return false.
6215
6216 2015-06-09  Alexandre Oliva <aoliva@redhat.com>
6217
6218         PR rtl-optimization/64164
6219         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
6220         * tree-ssa-copyrename.c: Removed.
6221         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
6222         -ftree-coalesce-vars.
6223         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
6224         * common.opt (ftree-copyrename): Ignore.
6225         (ftree-coalesce-inlined-vars): Likewise.
6226         * doc/invoke.texi: Remove the ignored options above.
6227         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
6228         * tree-ssa-coalesce.h: ... here.
6229         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
6230         headers required by it.
6231         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
6232         across variables when flag_tree_coalesce_vars.  Check register
6233         use and promoted modes to allow coalescing.  Moved to
6234         tree-ssa-coalesce.c.
6235         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
6236         with its member functions to tree-ssa-coalesce.c.
6237         (var_map_base_init): Likewise.  Renamed to
6238         compute_samebase_partition_bases.
6239         (partition_view_normal): Drop want_bases parameter.
6240         (partition_view_bitmap): Likewise.
6241         * tree-ssa-live.h: Adjust declarations.
6242         * tree-ssa-coalesce.c: Include explow.h.
6243         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
6244         default defs at the entry point.
6245         (dump_part_var_map): New.
6246         (compute_optimized_partition_bases): New, called by...
6247         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
6248         of compute_samebase_partition_bases.  Adjust.
6249         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
6250         * cfgexpand.c (leader_merge): New.
6251         (get_rtl_for_parm_ssa_default_def): New.
6252         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
6253         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
6254         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
6255         redundant MEM attr setting.
6256         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
6257         from...
6258         (expand_one_stack_var): ... this.  New wrapper to check and
6259         skip already expanded SSA partitions.
6260         (record_alignment_for_reg_var): New, factored out of...
6261         (expand_one_var): ... this.
6262         (expand_one_ssa_partition): New.
6263         (adjust_one_expanded_partition_var): New.
6264         (expand_one_register_var): Check and skip already expanded SSA
6265         partitions.
6266         (expand_used_vars): Don't create DECLs for anonymous SSA
6267         names.  Expand all SSA partitions, then adjust all SSA names.
6268         (pass::execute): Replace the loops that set
6269         SA.partition_to_pseudo from partition leaders and cleared
6270         DECL_RTL for multi-location variables, and that which used to
6271         rename vars and set attrs, with one that clears DECL_RTL and
6272         checks that PARMs and RESULTs default_defs match DECL_RTL.
6273         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
6274         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
6275         * explow.c (promote_ssa_mode): New.
6276         * explow.h (promote_ssa_mode): Declare.
6277         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
6278         * function.c: Include cfgexpand.h.
6279         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
6280         (use_register_for_parm_decl): Wrapper for the above to
6281         special-case the result_ptr.
6282         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
6283         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
6284         multiple locations.
6285         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
6286         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
6287         (assign_parm_setup_block): Prefer SSA-assigned location.
6288         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
6289         if stack_parm is NULL.
6290         (assign_parm_setup_stack): Prefer SSA-assigned location.
6291         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
6292         rtl before testing for pointer bounds.  Special-case result_ptr.
6293         (expand_function_start): Maybe reset DECL_RTL of result.
6294         Prefer SSA-assigned location for result and static chain.
6295         Factor out DECL_RESULT and SET_DECL_RTL.
6296         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
6297         anonymous SSA names.  Use promote_ssa_mode.
6298         (get_temp_reg): Likewise.
6299         (remove_ssa_form): Adjust.
6300         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
6301         and get its reg_usage for reg invalidation.
6302         (compute_bb_dataflow): Pass it insn.
6303         (emit_notes_in_bb): Likewise.
6304         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
6305         fail assert on conversion between unsigned types.
6306
6307 2015-06-09  Alexandre Oliva <aoliva@redhat.com>
6308
6309         PR debug/58315
6310         * tree-inline.c (reset_debug_binding): New.
6311         (reset_debug_bindings): Likewise.
6312         (expand_call_inline): Call it.
6313
6314 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
6315
6316         * tree.c (gimple_canonical_types_compatible_p): Drop comparsion of
6317         TYPE_STRING_FLAG.
6318
6319 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
6320
6321         * lto-streamer-out.c (lto_output_location): Stream
6322         reserved locations correctly.
6323         * lto-streamer-in.c (lto_output_location): Likewise.
6324
6325 2015-06-08  Andrew MacLeod  <amacleod@redhat.com>
6326
6327         * coretypes.h: Include hash-table.h and hash-set.h for host files.
6328         * ggc.h: Don't include statistics.h>
6329         * hash-map.h: Remove all includes.
6330         * hash-set.h: Likewise.
6331         * hash-table.h: Add statistics.h, inchash.h and hash-map-traits.h to
6332         the include list. Remove <new>.
6333         * inchash.h: Remove all includes.
6334         * mem-stats.h: Likewise.
6335         * vec.h: No special processing for generators or ggc.
6336         * alias.c : Adjust include files.
6337         * alloc-pool.c : Likewise.
6338         * alloc-pool.h : Likewise.
6339         * asan.c : Likewise.
6340         * attribs.c : Likewise.
6341         * auto-inc-dec.c : Likewise.
6342         * auto-profile.c : Likewise.
6343         * bb-reorder.c : Likewise.
6344         * bitmap.c : Likewise.
6345         * bitmap.h : Likewise.
6346         * bt-load.c : Likewise.
6347         * builtins.c : Likewise.
6348         * caller-save.c : Likewise.
6349         * calls.c : Likewise.
6350         * ccmp.c : Likewise.
6351         * cfg.c : Likewise.
6352         * cfganal.c : Likewise.
6353         * cfgbuild.c : Likewise.
6354         * cfgcleanup.c : Likewise.
6355         * cfgexpand.c : Likewise.
6356         * cfghooks.c : Likewise.
6357         * cfgloop.c : Likewise.
6358         * cfgloop.h : Likewise.
6359         * cfgloopanal.c : Likewise.
6360         * cfgloopmanip.c : Likewise.
6361         * cfgrtl.c : Likewise.
6362         * cgraph.c : Likewise.
6363         * cgraphbuild.c : Likewise.
6364         * cgraphclones.c : Likewise.
6365         * cgraphunit.c : Likewise.
6366         * cilk-common.c : Likewise.
6367         * combine-stack-adj.c : Likewise.
6368         * combine.c : Likewise.
6369         * compare-elim.c : Likewise.
6370         * context.c : Likewise.
6371         * convert.c : Likewise.
6372         * coverage.c : Likewise.
6373         * cppbuiltin.c : Likewise.
6374         * cprop.c : Likewise.
6375         * cse.c : Likewise.
6376         * cselib.c : Likewise.
6377         * data-streamer-in.c : Likewise.
6378         * data-streamer-out.c : Likewise.
6379         * data-streamer.c : Likewise.
6380         * data-streamer.h : Likewise.
6381         * dbxout.c : Likewise.
6382         * dce.c : Likewise.
6383         * ddg.c : Likewise.
6384         * debug.c : Likewise.
6385         * df-core.c : Likewise.
6386         * df-problems.c : Likewise.
6387         * df-scan.c : Likewise.
6388         * df.h : Likewise.
6389         * dfp.c : Likewise.
6390         * dojump.c : Likewise.
6391         * dominance.c : Likewise.
6392         * domwalk.c : Likewise.
6393         * double-int.c : Likewise.
6394         * dse.c : Likewise.
6395         * dumpfile.c : Likewise.
6396         * dwarf2asm.c : Likewise.
6397         * dwarf2cfi.c : Likewise.
6398         * dwarf2out.c : Likewise.
6399         * emit-rtl.c : Likewise.
6400         * et-forest.c : Likewise.
6401         * except.c : Likewise.
6402         * except.h : Likewise.
6403         * explow.c : Likewise.
6404         * expmed.c : Likewise.
6405         * expr.c : Likewise.
6406         * final.c : Likewise.
6407         * fixed-value.c : Likewise.
6408         * fold-const.c : Likewise.
6409         * function.c : Likewise.
6410         * fwprop.c : Likewise.
6411         * gcc-plugin.h : Likewise.
6412         * gcc.c : Likewise.
6413         * gcse-common.c : Likewise.
6414         * gcse.c : Likewise.
6415         * genattrtab.c : Likewise.
6416         * genautomata.c : Likewise.
6417         * genconditions.c : Likewise.
6418         * genemit.c : Likewise.
6419         * generic-match-head.c : Likewise.
6420         * genextract.c : Likewise.
6421         * gengtype-state.c : Likewise.
6422         * gengtype.c : Likewise.
6423         * genhooks.c : Likewise.
6424         * genmatch.c : Likewise.
6425         * genmodes.c : Likewise.
6426         * genrecog.c : Likewise.
6427         * gensupport.c : Likewise.
6428         * ggc-common.c : Likewise.
6429         * ggc-internal.h : Likewise.
6430         * ggc-none.c : Likewise.
6431         * ggc-page.c : Likewise.
6432         * gimple-builder.c : Likewise.
6433         * gimple-expr.c : Likewise.
6434         * gimple-fold.c : Likewise.
6435         * gimple-iterator.c : Likewise.
6436         * gimple-low.c : Likewise.
6437         * gimple-match-head.c : Likewise.
6438         * gimple-pretty-print.c : Likewise.
6439         * gimple-ssa-isolate-paths.c : Likewise.
6440         * gimple-ssa-strength-reduction.c : Likewise.
6441         * gimple-ssa.h : Likewise.
6442         * gimple-streamer-in.c : Likewise.
6443         * gimple-streamer-out.c : Likewise.
6444         * gimple-streamer.h : Likewise.
6445         * gimple-walk.c : Likewise.
6446         * gimple.c : Likewise.
6447         * gimplify-me.c : Likewise.
6448         * gimplify.c : Likewise.
6449         * godump.c : Likewise.
6450         * graph.c : Likewise.
6451         * graphds.c : Likewise.
6452         * graphite-blocking.c : Likewise.
6453         * graphite-dependences.c : Likewise.
6454         * graphite-interchange.c : Likewise.
6455         * graphite-isl-ast-to-gimple.c : Likewise.
6456         * graphite-optimize-isl.c : Likewise.
6457         * graphite-poly.c : Likewise.
6458         * graphite-scop-detection.c : Likewise.
6459         * graphite-sese-to-poly.c : Likewise.
6460         * graphite.c : Likewise.
6461         * haifa-sched.c : Likewise.
6462         * hard-reg-set.h : Likewise.
6463         * hw-doloop.c : Likewise.
6464         * ifcvt.c : Likewise.
6465         * inchash.c : Likewise.
6466         * incpath.c : Likewise.
6467         * init-regs.c : Likewise.
6468         * input.c : Likewise.
6469         * internal-fn.c : Likewise.
6470         * ipa-chkp.c : Likewise.
6471         * ipa-comdats.c : Likewise.
6472         * ipa-cp.c : Likewise.
6473         * ipa-devirt.c : Likewise.
6474         * ipa-icf-gimple.c : Likewise.
6475         * ipa-icf.c : Likewise.
6476         * ipa-inline-analysis.c : Likewise.
6477         * ipa-inline-transform.c : Likewise.
6478         * ipa-inline.c : Likewise.
6479         * ipa-polymorphic-call.c : Likewise.
6480         * ipa-profile.c : Likewise.
6481         * ipa-prop.c : Likewise.
6482         * ipa-pure-const.c : Likewise.
6483         * ipa-ref.c : Likewise.
6484         * ipa-reference.c : Likewise.
6485         * ipa-split.c : Likewise.
6486         * ipa-utils.c : Likewise.
6487         * ipa-visibility.c : Likewise.
6488         * ipa.c : Likewise.
6489         * ira-build.c : Likewise.
6490         * ira-color.c : Likewise.
6491         * ira-conflicts.c : Likewise.
6492         * ira-costs.c : Likewise.
6493         * ira-emit.c : Likewise.
6494         * ira-lives.c : Likewise.
6495         * ira.c : Likewise.
6496         * jump.c : Likewise.
6497         * langhooks.c : Likewise.
6498         * lcm.c : Likewise.
6499         * libfuncs.h : Likewise.
6500         * lists.c : Likewise.
6501         * loop-doloop.c : Likewise.
6502         * loop-init.c : Likewise.
6503         * loop-invariant.c : Likewise.
6504         * loop-iv.c : Likewise.
6505         * loop-unroll.c : Likewise.
6506         * lower-subreg.c : Likewise.
6507         * lra-assigns.c : Likewise.
6508         * lra-coalesce.c : Likewise.
6509         * lra-constraints.c : Likewise.
6510         * lra-eliminations.c : Likewise.
6511         * lra-lives.c : Likewise.
6512         * lra-remat.c : Likewise.
6513         * lra-spills.c : Likewise.
6514         * lra.c : Likewise.
6515         * lto-cgraph.c : Likewise.
6516         * lto-compress.c : Likewise.
6517         * lto-opts.c : Likewise.
6518         * lto-section-in.c : Likewise.
6519         * lto-section-out.c : Likewise.
6520         * lto-streamer-in.c : Likewise.
6521         * lto-streamer-out.c : Likewise.
6522         * lto-streamer.c : Likewise.
6523         * lto-streamer.h : Likewise.
6524         * mcf.c : Likewise.
6525         * mode-switching.c : Likewise.
6526         * modulo-sched.c : Likewise.
6527         * omega.c : Likewise.
6528         * omp-low.c : Likewise.
6529         * optabs.c : Likewise.
6530         * opts-global.c : Likewise.
6531         * opts.h : Likewise.
6532         * passes.c : Likewise.
6533         * plugin.c : Likewise.
6534         * postreload-gcse.c : Likewise.
6535         * postreload.c : Likewise.
6536         * predict.c : Likewise.
6537         * print-rtl.c : Likewise.
6538         * print-tree.c : Likewise.
6539         * profile.c : Likewise.
6540         * read-md.c : Likewise.
6541         * read-md.h : Likewise.
6542         * read-rtl.c : Likewise.
6543         * real.c : Likewise.
6544         * realmpfr.c : Likewise.
6545         * recog.c : Likewise.
6546         * ree.c : Likewise.
6547         * reg-stack.c : Likewise.
6548         * regcprop.c : Likewise.
6549         * reginfo.c : Likewise.
6550         * regrename.c : Likewise.
6551         * regstat.c : Likewise.
6552         * reload.c : Likewise.
6553         * reload1.c : Likewise.
6554         * reorg.c : Likewise.
6555         * resource.c : Likewise.
6556         * rtl-chkp.c : Likewise.
6557         * rtl.c : Likewise.
6558         * rtl.h : Likewise.
6559         * rtlanal.c : Likewise.
6560         * rtlhash.c : Likewise.
6561         * rtlhash.h : Likewise.
6562         * rtlhooks.c : Likewise.
6563         * sanopt.c : Likewise.
6564         * sched-deps.c : Likewise.
6565         * sched-ebb.c : Likewise.
6566         * sched-rgn.c : Likewise.
6567         * sched-vis.c : Likewise.
6568         * sdbout.c : Likewise.
6569         * sel-sched-dump.c : Likewise.
6570         * sel-sched-ir.c : Likewise.
6571         * sel-sched-ir.h : Likewise.
6572         * sel-sched.c : Likewise.
6573         * sese.c : Likewise.
6574         * shrink-wrap.c : Likewise.
6575         * shrink-wrap.h : Likewise.
6576         * simplify-rtx.c : Likewise.
6577         * stack-ptr-mod.c : Likewise.
6578         * statistics.c : Likewise.
6579         * stmt.c : Likewise.
6580         * stor-layout.c : Likewise.
6581         * store-motion.c : Likewise.
6582         * stringpool.c : Likewise.
6583         * symtab.c : Likewise.
6584         * target-globals.c : Likewise.
6585         * targhooks.c : Likewise.
6586         * tlink.c : Likewise.
6587         * toplev.c : Likewise.
6588         * tracer.c : Likewise.
6589         * trans-mem.c : Likewise.
6590         * tree-affine.c : Likewise.
6591         * tree-affine.h : Likewise.
6592         * tree-browser.c : Likewise.
6593         * tree-call-cdce.c : Likewise.
6594         * tree-cfg.c : Likewise.
6595         * tree-cfgcleanup.c : Likewise.
6596         * tree-chkp-opt.c : Likewise.
6597         * tree-chkp.c : Likewise.
6598         * tree-chrec.c : Likewise.
6599         * tree-complex.c : Likewise.
6600         * tree-data-ref.c : Likewise.
6601         * tree-dfa.c : Likewise.
6602         * tree-diagnostic.c : Likewise.
6603         * tree-dump.c : Likewise.
6604         * tree-eh.c : Likewise.
6605         * tree-eh.h : Likewise.
6606         * tree-emutls.c : Likewise.
6607         * tree-hasher.h : Likewise.
6608         * tree-if-conv.c : Likewise.
6609         * tree-inline.c : Likewise.
6610         * tree-inline.h : Likewise.
6611         * tree-into-ssa.c : Likewise.
6612         * tree-iterator.c : Likewise.
6613         * tree-loop-distribution.c : Likewise.
6614         * tree-nested.c : Likewise.
6615         * tree-nrv.c : Likewise.
6616         * tree-object-size.c : Likewise.
6617         * tree-outof-ssa.c : Likewise.
6618         * tree-parloops.c : Likewise.
6619         * tree-phinodes.c : Likewise.
6620         * tree-predcom.c : Likewise.
6621         * tree-pretty-print.c : Likewise.
6622         * tree-profile.c : Likewise.
6623         * tree-scalar-evolution.c : Likewise.
6624         * tree-sra.c : Likewise.
6625         * tree-ssa-address.c : Likewise.
6626         * tree-ssa-alias.c : Likewise.
6627         * tree-ssa-ccp.c : Likewise.
6628         * tree-ssa-coalesce.c : Likewise.
6629         * tree-ssa-copy.c : Likewise.
6630         * tree-ssa-copyrename.c : Likewise.
6631         * tree-ssa-dce.c : Likewise.
6632         * tree-ssa-dom.c : Likewise.
6633         * tree-ssa-dse.c : Likewise.
6634         * tree-ssa-forwprop.c : Likewise.
6635         * tree-ssa-ifcombine.c : Likewise.
6636         * tree-ssa-live.c : Likewise.
6637         * tree-ssa-loop-ch.c : Likewise.
6638         * tree-ssa-loop-im.c : Likewise.
6639         * tree-ssa-loop-ivcanon.c : Likewise.
6640         * tree-ssa-loop-ivopts.c : Likewise.
6641         * tree-ssa-loop-manip.c : Likewise.
6642         * tree-ssa-loop-niter.c : Likewise.
6643         * tree-ssa-loop-prefetch.c : Likewise.
6644         * tree-ssa-loop-unswitch.c : Likewise.
6645         * tree-ssa-loop.c : Likewise.
6646         * tree-ssa-math-opts.c : Likewise.
6647         * tree-ssa-operands.c : Likewise.
6648         * tree-ssa-phiopt.c : Likewise.
6649         * tree-ssa-phiprop.c : Likewise.
6650         * tree-ssa-pre.c : Likewise.
6651         * tree-ssa-propagate.c : Likewise.
6652         * tree-ssa-reassoc.c : Likewise.
6653         * tree-ssa-sccvn.c : Likewise.
6654         * tree-ssa-scopedtables.c : Likewise.
6655         * tree-ssa-sink.c : Likewise.
6656         * tree-ssa-strlen.c : Likewise.
6657         * tree-ssa-structalias.c : Likewise.
6658         * tree-ssa-tail-merge.c : Likewise.
6659         * tree-ssa-ter.c : Likewise.
6660         * tree-ssa-threadedge.c : Likewise.
6661         * tree-ssa-threadupdate.c : Likewise.
6662         * tree-ssa-uncprop.c : Likewise.
6663         * tree-ssa-uninit.c : Likewise.
6664         * tree-ssa.c : Likewise.
6665         * tree-ssanames.c : Likewise.
6666         * tree-stdarg.c : Likewise.
6667         * tree-streamer-in.c : Likewise.
6668         * tree-streamer-out.c : Likewise.
6669         * tree-streamer.c : Likewise.
6670         * tree-streamer.h : Likewise.
6671         * tree-switch-conversion.c : Likewise.
6672         * tree-tailcall.c : Likewise.
6673         * tree-vect-data-refs.c : Likewise.
6674         * tree-vect-generic.c : Likewise.
6675         * tree-vect-loop-manip.c : Likewise.
6676         * tree-vect-loop.c : Likewise.
6677         * tree-vect-patterns.c : Likewise.
6678         * tree-vect-slp.c : Likewise.
6679         * tree-vect-stmts.c : Likewise.
6680         * tree-vectorizer.c : Likewise.
6681         * tree-vectorizer.h : Likewise.
6682         * tree-vrp.c : Likewise.
6683         * tree.c : Likewise.
6684         * tsan.c : Likewise.
6685         * ubsan.c : Likewise.
6686         * valtrack.c : Likewise.
6687         * valtrack.h : Likewise.
6688         * value-prof.c : Likewise.
6689         * var-tracking.c : Likewise.
6690         * varasm.c : Likewise.
6691         * varpool.c : Likewise.
6692         * vec.c: Likewise.
6693         * vmsdbgout.c : Likewise.
6694         * vtable-verify.c : Likewise.
6695         * vtable-verify.h : Likewise.
6696         * web.c : Likewise.
6697         * wide-int.cc : Likewise.
6698         * xcoffout.c : Likewise.
6699         * config/aarch64/aarch64-builtins.c : Likewise.
6700         * config/aarch64/aarch64.c : Likewise.
6701         * config/aarch64/cortex-a57-fma-steering.c : Likewise.
6702         * config/alpha/alpha.c : Likewise.
6703         * config/arc/arc.c : Likewise.
6704         * config/arm/aarch-common.c : Likewise.
6705         * config/arm/arm-builtins.c : Likewise.
6706         * config/arm/arm-c.c : Likewise.
6707         * config/arm/arm.c : Likewise.
6708         * config/avr/avr-c.c : Likewise.
6709         * config/avr/avr-log.c : Likewise.
6710         * config/avr/avr.c : Likewise.
6711         * config/bfin/bfin.c : Likewise.
6712         * config/c6x/c6x.c : Likewise.
6713         * config/cr16/cr16.c : Likewise.
6714         * config/cris/cris.c : Likewise.
6715         * config/darwin-c.c : Likewise.
6716         * config/darwin.c : Likewise.
6717         * config/default-c.c : Likewise.
6718         * config/epiphany/epiphany.c : Likewise.
6719         * config/epiphany/mode-switch-use.c : Likewise.
6720         * config/epiphany/resolve-sw-modes.c : Likewise.
6721         * config/fr30/fr30.c : Likewise.
6722         * config/frv/frv.c : Likewise.
6723         * config/ft32/ft32.c : Likewise.
6724         * config/glibc-c.c : Likewise.
6725         * config/h8300/h8300.c : Likewise.
6726         * config/i386/i386-c.c : Likewise.
6727         * config/i386/i386.c : Likewise.
6728         * config/i386/msformat-c.c : Likewise.
6729         * config/i386/winnt-cxx.c : Likewise.
6730         * config/i386/winnt-stubs.c : Likewise.
6731         * config/i386/winnt.c : Likewise.
6732         * config/ia64/ia64-c.c : Likewise.
6733         * config/ia64/ia64.c : Likewise.
6734         * config/iq2000/iq2000.c : Likewise.
6735         * config/lm32/lm32.c : Likewise.
6736         * config/m32c/m32c-pragma.c : Likewise.
6737         * config/m32c/m32c.c : Likewise.
6738         * config/m32r/m32r.c : Likewise.
6739         * config/m68k/m68k.c : Likewise.
6740         * config/mcore/mcore.c : Likewise.
6741         * config/mep/mep-pragma.c : Likewise.
6742         * config/mep/mep.c : Likewise.
6743         * config/microblaze/microblaze-c.c : Likewise.
6744         * config/microblaze/microblaze.c : Likewise.
6745         * config/mips/mips.c : Likewise.
6746         * config/mmix/mmix.c : Likewise.
6747         * config/mn10300/mn10300.c : Likewise.
6748         * config/moxie/moxie.c : Likewise.
6749         * config/msp430/msp430-c.c : Likewise.
6750         * config/msp430/msp430.c : Likewise.
6751         * config/nds32/nds32-cost.c : Likewise.
6752         * config/nds32/nds32-fp-as-gp.c : Likewise.
6753         * config/nds32/nds32-intrinsic.c : Likewise.
6754         * config/nds32/nds32-isr.c : Likewise.
6755         * config/nds32/nds32-md-auxiliary.c : Likewise.
6756         * config/nds32/nds32-memory-manipulation.c : Likewise.
6757         * config/nds32/nds32-pipelines-auxiliary.c : Likewise.
6758         * config/nds32/nds32-predicates.c : Likewise.
6759         * config/nds32/nds32.c : Likewise.
6760         * config/nios2/nios2.c : Likewise.
6761         * config/nvptx/nvptx.c : Likewise.
6762         * config/pa/pa.c : Likewise.
6763         * config/pdp11/pdp11.c : Likewise.
6764         * config/rl78/rl78-c.c : Likewise.
6765         * config/rl78/rl78.c : Likewise.
6766         * config/rs6000/rs6000-c.c : Likewise.
6767         * config/rs6000/rs6000.c : Likewise.
6768         * config/rx/rx.c : Likewise.
6769         * config/s390/s390-c.c : Likewise.
6770         * config/s390/s390.c : Likewise.
6771         * config/sh/sh-c.c : Likewise.
6772         * config/sh/sh-mem.cc : Likewise.
6773         * config/sh/sh.c : Likewise.
6774         * config/sh/sh_optimize_sett_clrt.cc : Likewise.
6775         * config/sh/sh_treg_combine.cc : Likewise.
6776         * config/sol2-c.c : Likewise.
6777         * config/sol2-cxx.c : Likewise.
6778         * config/sol2-stubs.c : Likewise.
6779         * config/sol2.c : Likewise.
6780         * config/sparc/sparc-c.c : Likewise.
6781         * config/sparc/sparc.c : Likewise.
6782         * config/spu/spu-c.c : Likewise.
6783         * config/spu/spu.c : Likewise.
6784         * config/stormy16/stormy16.c : Likewise.
6785         * config/tilegx/mul-tables.c : Likewise.
6786         * config/tilegx/tilegx-c.c : Likewise.
6787         * config/tilegx/tilegx.c : Likewise.
6788         * config/tilepro/mul-tables.c : Likewise.
6789         * config/tilepro/tilepro-c.c : Likewise.
6790         * config/tilepro/tilepro.c : Likewise.
6791         * config/v850/v850-c.c : Likewise.
6792         * config/v850/v850.c : Likewise.
6793         * config/vax/vax.c : Likewise.
6794         * config/visium/visium.c : Likewise.
6795         * config/vms/vms-c.c : Likewise.
6796         * config/vms/vms.c : Likewise.
6797         * config/vxworks.c : Likewise.
6798         * config/winnt-c.c : Likewise.
6799         * config/xtensa/xtensa.c : Likewise.
6800
6801 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
6802
6803         PR lto/65378
6804         * ipa-utils.h (warn_types_mismatch): Update prototype.
6805         * ipa-devirt.c (odr_types_equivalent_p): Add loc1/loc2
6806         parameters.
6807         (type_mismatch_p): New function.
6808         (warn_types_mismatch): Reorg to work better on non-C++ types.
6809         (odr_types_equivalent_p): Add loc1/loc2 parameters.
6810         (add_type_duplicate): Update.
6811
6812 2015-06-08  Tom de Vries  <tom@codesourcery.com>
6813
6814         PR rtl-optimization/66444
6815         * postreload.c (reload_combine): Use get_call_reg_set_usage instead of
6816         call_used_regs.
6817
6818 2015-06-08  Richard Biener  <rguenther@suse.de>
6819
6820         PR tree-optimization/66422
6821         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Split
6822         block after inserted gcc_unreachable.
6823
6824 2015-06-08  Nick Clifton  <nickc@redhat.com>
6825
6826         * config/rx/rx.c (rx_function_value): Do not promote vector types.
6827         (rx_promote_function_mode): Likewise.
6828         * config/rx/rx.h (LIBCALL_VALUE): Likewise.
6829
6830 2015-06-08  Jakub Jelinek  <jakub@redhat.com>
6831
6832         * genattrtab.c (insn_alternatives): Change type from int *
6833         to uint64_t *.
6834         (check_attr_test): Shift ((uint64_t) 1) instead of 1 up.
6835         (get_attr_value): Change type of num_alt to uint64_t.
6836         (compute_alternative_mask): Change return type from
6837         int to uint64_t, shift ((uint64_t) 1) instead of 1 up.
6838         (make_alternative_compare, mk_attr_alt): Change argument type
6839         from int to uint64_t.
6840         (simplify_test_exp): Change type of i from int to uint64_t.
6841         Shift ((uint64_t) 1) instead of 1 up.
6842         (main): Adjust oballocvec first argument from int to uint64_t.
6843         Shift ((uint64_t) 1) instead of 1 up.
6844
6845 2015-06-08  Jan Kratochvil  <jan.kratochvil@redhat.com>
6846
6847         PR other/65366
6848         * gdbhooks.py: Import sys.
6849         (intptr): New function.  Replace int(...) by intptr(...).
6850
6851 2015-06-08  Richard Biener  <rguenther@suse.de>
6852
6853         * tree-vect-stmts.c (vectorizable_load): Compute the pointer
6854         adjustment for gaps at the end of a SLP load group properly.
6855         * tree-vect-slp.c (vect_supported_load_permutation_p): Allow
6856         all permutations we can generate.
6857         (vect_transform_slp_perm_load): Use the correct group-size.
6858
6859 2015-06-08  Marc Glisse  <marc.glisse@inria.fr>
6860
6861         * genmatch.c (expr::gen_transform): For conditions, guess the type
6862         from the second operand.
6863
6864 2015-06-08  Tom de Vries  <tom@codesourcery.com>
6865
6866         PR tree-optimization/66442
6867         * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Add function.
6868         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Return false
6869         if the loop latch is not a singleton.  Use
6870         gimple_seq_nondebug_singleton_p instead of gimple_seq_singleton_p.
6871
6872 2015-06-08  Marek Polacek  <polacek@redhat.com>
6873
6874         PR sanitizer/66452
6875         * toplev.c (check_global_declaration): Don't warn about artificial
6876         decls.
6877
6878 2015-06-08  Tom de Vries  <tom@codesourcery.com>
6879
6880         PR tree-optimization/66436
6881         * cgraphunit.c (cgraph_node::analyze): Don't dump function to gimple
6882         dump file.
6883         * gimplify.c: Add tree-dump.h include.
6884         (gimplify_function_tree): Dump function to gimple dump file.
6885         * stor-layout.c (finalize_size_functions): Don't dump function to gimple
6886         dump file.
6887
6888 2015-06-08  Tom de Vries  <tom@codesourcery.com>
6889
6890         PR tree-optimization/66435
6891         * cgraphunit.c (cgraph_node::add_new_function): Dump message on new
6892         function.
6893
6894 2015-06-06  Jan Hubicka  <hubicka@ucw.cz>
6895
6896         * alias.c (get_alias_set): Be ready for TYPE_CANONICAL
6897         of ptr_type_node to not be ptr_to_node.
6898         * tree.c (gimple_types_compatible_p): Do not match TREE_CODE of
6899         TREE_TYPE of pointers.
6900         * gimple-expr.c (useless_type_conversion): Reorder the check for
6901         function pointers and TYPE_CANONICAL.
6902
6903 2015-06-06  John David Anglin  <danglin@gcc.gnu.org>
6904
6905         PR bootstrap/66319
6906         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Rearrange builtin
6907         defines.  Define _LARGEFILE_SOURCE and _LARGEFILE64_SOURCE for c++.
6908         Define _XOPEN_UNIX and _XOPEN_SOURCE_EXTENDED for c++ if unix95 or
6909         later.
6910         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Likewise.
6911         Define _INCLUDE_STDC_SOURCE_PRE_199901, _INCLUDE_STDC_SOURCE_199901,
6912         _INCLUDE_XOPEN_SOURCE_PRE_500, _INCLUDE_XOPEN_SOURCE_520,
6913         _INCLUDE_XOPEN_SOURCE_PRE_600 and _INCLUDE_XOPEN_SOURCE_600 for c++
6914         and non iso if unix2003.
6915
6916 2015-06-06  Aldy Hernandez  <aldyh@redhat.com>
6917
6918         * dwarf2out.c (gen_lexical_block_die): Initialize stmt_die.
6919
6920 2015-06-06  Richard Sandiford  <richard.sandiford@arm.com>
6921
6922         * emit-rtl.c, expr.c, gcse.c, optabs.c, optabs.h, print-rtl.c,
6923         rtl.h, bb-reorder.c, builtins.c, calls.c, cfgbuild.c, cfgexpand.c,
6924         cfgrtl.c, cilk-common.c, config/i386/i386.md, cse.c, dwarf2cfi.c,
6925         except.c, final.c, function.c, gcse-common.c, genemit.c,
6926         haifa-sched.c, ifcvt.c, jump.c, loop-invariant.c, loop-iv.c,
6927         lra-constraints.c, lra.c, reload1.c, resource.c, rtlanal.c,
6928         sched-deps.c, sched-ebb.c, sel-sched-ir.c, sel-sched.c,
6929         shrink-wrap.c, stmt.c, store-motion.c: Replace rtx base types with
6930         more derived ones.
6931
6932 2015-06-06  Mikhail Maltsev  <maltsevm@gmail.com>
6933
6934         * combine.c (combine_split_insns): Remove cast.
6935         * config/bfin/bfin.c (hwloop_fail): Add cast in try_split call.
6936         * config/sh/sh.c (sh_try_split_insn_simple): Remove cast.
6937         * config/sh/sh_treg_combine.cc (sh_treg_combine::execute): Add cast.
6938         * emit-rtl.c (try_split): Promote type of trial argument to rtx_insn.
6939         * genemit.c (gen_split): Change return type of generated functions to
6940         rtx_insn.
6941         * genrecog.c (get_failure_return): Use NULL instead of NULL_RTX.
6942         (print_subroutine_start): Promote rtx to rtx_insn in gen_split_* and
6943         gen_peephole2_* functions.
6944         (print_subroutine, main): Likewise.
6945         * recog.c (peephole2_optimize): Remove cast.
6946         (peep2_next_insn): Promote return type to rtx_insn.
6947         * recog.h (peep2_next_insn): Fix prototype.
6948         * rtl.h (try_split, split_insns): Likewise.
6949
6950 2015-06-06  DJ Delorie  <dj@redhat.com>
6951
6952         * config/msp430/msp430.c (msp430_asm_integer): Support addition
6953         and subtraction too.
6954
6955 2015-06-05  Kaz Kojima  <kkojima@gcc.gnu.org>
6956
6957         PR target/66410
6958         * config/sh/constraints.md (Sid, Ssd): New memory constraints.
6959         * config/sh/sh.md (*mov<mode>): Use Sid and Ssd alternatives
6960         instead of Snd.  Disparage Sid/z alternative with '^'.
6961
6962 2015-06-05  Aldy Hernandez  <aldyh@redhat.com>
6963
6964         * dwarf2out.c: Remove deferred_locations*.
6965         (dwarf2_debug_hooks): Add early_finish hook.
6966         Remove global_decl hook.
6967         Add early_global_decl and late_global_decl hook.
6968         New global early_dwarf.
6969         New structure set_early_dwarf.
6970         (output_die): Indicate whether a DIE was generated early
6971         when generating assembly with -dA.
6972         (struct limbo_die_struct): Document created_for field.
6973         Remove file_table_last_lookup.
6974         (remove_AT): Return TRUE if successful.
6975         (remove_child_TAG): Clear die_parent.
6976         (reparent_child): New function abstracted from...
6977         (splice_child_die): ...here.
6978         (new_die): ICE if a DIE ends up in limbo too late.
6979         (check_die): New.
6980         (defer_location): Remove.
6981         (add_subscript_info): Reuse DW_TAG_subrange_type if available.
6982         (fill_variable_array_bounds): New.
6983         (decl_start_label): Call fill_variable_array_bounds.
6984         (gen_formal_parameter_die): Rewrite to reuse previously generated
6985         DIEs.
6986         (gen_subprogram_die): Same.
6987         (gen_variable_die): Same.
6988         (gen_const_die): Same.
6989         (gen_label_die): Same.
6990         (gen_lexical_block_die): Same.
6991         (decl_will_get_specification_p): New.
6992         (local_function_static): New.
6993         (gen_struct_or_union_type_die): Fill in variable-length fields.
6994         (gen_typedef_die): Fill in variable-length typedefs.
6995         (gen_tagged_type_die): Gracefully return on error_mark_node.
6996         Handle re-entrancy.
6997         (gen_type_die_with_usage): Handle variable-length types.
6998         Remove duplicate code for ARRAY_TYPE case.
6999         (process_scope_var): Only process imported modules during early
7000         dwarf.
7001         (dwarf2out_early_global_decl): New.
7002         (dwarf2out_late_global_decl): Rename from dwarf2out_global_decl.
7003         (dwarf2out_type_decl): Set early_dwarf while calling
7004         dwarf2out_decl.
7005         (dwarf2out_decl): Verify that we did not recreate a previously
7006         generated DIE.
7007         Do not return on DECL_EXTERNALs in VAR_DECLs.
7008         Abstract some code to local_function_static.
7009         (lookup_filename): Remove use of file_table_last_lookup.
7010         Gracefully exit on missing file_name.
7011         (dwarf2out_finish): Verify limbo list.
7012         Remove deferred_locations_list use.
7013         Move deferred_asm_name and limbo flushing to...
7014         (dwarf2out_early_finish): ...here.  New.
7015         (dwarf2out_c_finalize): Remove set of deferred_location_list,
7016         deferred_asm_name, and file_table_last_lookup.
7017         * cgraph.h (referred_to_p): Add default argument.
7018         * cgraphunit.c (referred_to_p): Add and handle include_self
7019         argument.
7020         (analyze_functions): Add first_time argument.
7021         Call check_global_declaration for all symbols.
7022         Call late_global_decl for nodes for moribund nodes.
7023         (finalize_compilation_unit): Add new argument to
7024         analyze_functions.
7025         Call early_global_decl for functions.
7026         Call early_finish debug hook.
7027         * dbxout.c (dbxout_early_global_decl): New.
7028         (dbxout_late_global_decl): New.  Adapted from dbxout_global_decl.
7029         (dbx_debug_hooks): Add new hooks.
7030         (xcoff_debug_hooks): Same.
7031         * debug.c (do_nothing_debug_hooks): Add early_finish field.
7032         Add early and late debug hooks.
7033         Remove global_decl hook.
7034         * debug.h (struct gcc_debug_hooks): Add early_finish,
7035         early_global_decl, and late_global_decl fields.
7036         Remove global_decl field.
7037         Document gcc_debug_hooks.
7038         * gengtype.c (output_typename): Remove.
7039         * godump.c (go_early_global_decl): New.
7040         (go_late_global_decl): New.
7041         (go_global_decl): Remove.
7042         (dump_go_spec_init): Remove global_decl.  Add
7043         {early,late}_global_decl.
7044         * langhooks-def.h (LANG_HOOKS_WRITE_GLOBALS): Remove.
7045         (LANG_HOOKS_POST_COMPILATION_PARSING_CLEANUPS): New.
7046         * langhooks.c (lhd_warn_unused_global_decl): Adjust comment.
7047         (write_global_declarations): Remove.
7048         (global_decl_processing): New.
7049         * langhooks.h (struct lang_hooks_for_decls): Remove
7050         final_write_globals field.
7051         Add post_compilation_parsing_cleanups field.
7052         * passes.c (rest_of_decl_compilation): Call early_global_decl.
7053         * sdbout.c: Add early and late_global_decl hooks.  Remove
7054         sdbout_global_decl hook.
7055         Add early_finish field for sdb_debug_hooks.
7056         (sdbout_global_decl): Remove.
7057         (sdbout_early_global_decl): New.
7058         (sdbout_late_global_decl): New.
7059         * timevar.def (TV_PHASE_LATE_PARSING_CLEANUPS): New.
7060         * toplev.c (check_global_declaration): Rename from
7061         check_global_declaration_1.
7062         Adapt to use symtab infrastructure.
7063         (check_global_declarations): Remove.
7064         (emit_debug_global_declarations): Remove.
7065         (compile_file): Remove call to final_write_globals langhook.
7066         Run the actual compilation process.
7067         Perform any post compilation parser cleanups.
7068         Generate late debug info.
7069         * toplev.h (check_global_declaration): New.
7070         (check_global_declaration_1): Remove.
7071         (check_global_declarations): Remove.
7072         (write_global_declarations): Remove.
7073         (emit_debug_global_declarations): Remove.
7074         (global_decl_processing): New.
7075         * tree-core.h (struct tree_block): Add DIE field.
7076         * tree.h (BLOCK_DIE): New.
7077         * vmsdbgout.c (vmsdbgout_global_decl): Remove function and its use
7078         throughout.
7079         (vmsdbgout_early_global_decl): New.
7080         (vmsdbgout_late_global_decl): New.
7081         Add early_finish debug hook field to vmsdbg_debug_hooks.
7082         Remove vmsdbgout_decl to vmsdbgout_function_decl.
7083         Add early and late_global_decl debug hooks.
7084
7085 2015-06-05  Julian Brown  <julian@codesourcery.com>
7086             Sandra Loosemore  <sandra@codesourcery.com>
7087
7088         * config/print-sysroot-suffix.sh: Handle MULTILIB_REUSE settings.
7089         * config/t-sysroot-suffix (sysroot-suffix.h): Pass MULTILIB_REUSE
7090         to print-sysroot-suffix.sh script.
7091
7092 2015-06-05  Tom de Vries  <tom@codesourcery.com>
7093
7094         merge from gomp4 branch:
7095         2015-05-28  Tom de Vries  <tom@codesourcery.com>
7096
7097         PR tree-optimization/65443
7098         * tree-parloops.c (replace_imm_uses, replace_uses_in_bb_by)
7099         (replace_uses_in_bbs_by, transform_to_exit_first_loop_alt)
7100         (try_transform_to_exit_first_loop_alt): New function.
7101         (transform_to_exit_first_loop): Use
7102         try_transform_to_exit_first_loop_alt.
7103
7104 2015-06-05  James Greenhalgh  <james.greenhalgh@arm.com>
7105
7106         * builtins.c (expand_builtin_atomic_compare_exchange): Call
7107         emit_cmp_and_jump_insns with the mode of target.
7108
7109 2015-06-05  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
7110
7111         * config/i386/sse.md (sse3_mwait): Swap the operand constriants.
7112
7113 2015-06-04  DJ Delorie  <dj@redhat.com>
7114
7115         * config/msp430/msp430.md (movsi_s): New.  Special case for
7116         storing a 20-bit symbol into a 32-bit register.
7117         * config/msp430/msp430.c (msp430_subreg): Add support for it.
7118         * config/msp430/predicates.md (msp430_symbol_operand): New.
7119
7120 2015-06-04  Sriraman Tallam  <tmsriram@google.com>
7121
7122         * c-family/c-common.c (noplt): New attribute.
7123         (handle_noplt_attribute): New handler.
7124         * calls.c (prepare_call_address): Check for noplt
7125         attribute.
7126         * config/i386/i386.c (ix86_expand_call): Check
7127         for noplt attribute.
7128         (ix86_nopic_noplt_attribute_p): New function.
7129         (ix86_output_call_insn): Output indirect call for non-pic
7130         no plt calls.
7131         * doc/extend.texi (noplt): Document new attribute.
7132         * doc/invoke.texi: Document new attribute.
7133
7134 2015-06-04  Andrew MacLeod  <amacleod@redhat.com>
7135
7136         * coretypes.h: Include machmode.h, signop.h, wide-int.h, double-int.h,
7137         real.h, and fixed-value.h when included in host source files.
7138         * double-int.h: Remove redundant #includes listed above.
7139         * fixed-value.h: Likewise.
7140         * real.h: Likewise.
7141         * wide-int.h: Likewise.
7142         * inchash.h: Likewise.
7143         * rtl.h: Add some include files When included from a generator file.
7144         * target.h: Remove wide-int.h and insn-modes.h from the include list.
7145         * internal-fn.h: Don't include coretypes.h.
7146         * alias.c: Adjust includes for restructured coretypes.h.
7147         * asan.c: Likewise.
7148         * attribs.c: Likewise.
7149         * auto-inc-dec.c: Likewise.
7150         * auto-profile.c: Likewise.
7151         * bb-reorder.c: Likewise.
7152         * bt-load.c: Likewise.
7153         * builtins.c: Likewise.
7154         * caller-save.c: Likewise.
7155         * calls.c: Likewise.
7156         * ccmp.c: Likewise.
7157         * cfg.c: Likewise.
7158         * cfganal.c: Likewise.
7159         * cfgbuild.c: Likewise.
7160         * cfgcleanup.c: Likewise.
7161         * cfgexpand.c: Likewise.
7162         * cfghooks.c: Likewise.
7163         * cfgloop.c: Likewise.
7164         * cfgloop.h: Likewise.
7165         * cfgloopanal.c: Likewise.
7166         * cfgloopmanip.c: Likewise.
7167         * cfgrtl.c: Likewise.
7168         * cgraph.c: Likewise.
7169         * cgraphbuild.c: Likewise.
7170         * cgraphclones.c: Likewise.
7171         * cgraphunit.c: Likewise.
7172         * cilk-common.c: Likewise.
7173         * combine-stack-adj.c: Likewise.
7174         * combine.c: Likewise.
7175         * compare-elim.c: Likewise.
7176         * convert.c: Likewise.
7177         * coverage.c: Likewise.
7178         * cppbuiltin.c: Likewise.
7179         * cprop.c: Likewise.
7180         * cse.c: Likewise.
7181         * cselib.c: Likewise.
7182         * data-streamer-in.c: Likewise.
7183         * data-streamer-out.c: Likewise.
7184         * data-streamer.c: Likewise.
7185         * dbxout.c: Likewise.
7186         * dce.c: Likewise.
7187         * ddg.c: Likewise.
7188         * debug.c: Likewise.
7189         * df-core.c: Likewise.
7190         * df-problems.c: Likewise.
7191         * df-scan.c: Likewise.
7192         * df.h: Likewise.
7193         * dfp.c: Likewise.
7194         * dojump.c: Likewise.
7195         * dominance.c: Likewise.
7196         * domwalk.c: Likewise.
7197         * double-int.c: Likewise.
7198         * dse.c: Likewise.
7199         * dumpfile.c: Likewise.
7200         * dwarf2asm.c: Likewise.
7201         * dwarf2cfi.c: Likewise.
7202         * dwarf2out.c: Likewise.
7203         * dwarf2out.h: Likewise.
7204         * emit-rtl.c: Likewise.
7205         * et-forest.c: Likewise.
7206         * except.c: Likewise.
7207         * explow.c: Likewise.
7208         * expmed.c: Likewise.
7209         * expr.c: Likewise.
7210         * final.c: Likewise.
7211         * fixed-value.c: Likewise.
7212         * fold-const.c: Likewise.
7213         * function.c: Likewise.
7214         * fwprop.c: Likewise.
7215         * gcc-plugin.h: Likewise.
7216         * gcse.c: Likewise.
7217         * generic-match-head.c: Likewise.
7218         * ggc-page.c: Likewise.
7219         * gimple-builder.c: Likewise.
7220         * gimple-expr.c: Likewise.
7221         * gimple-fold.c: Likewise.
7222         * gimple-iterator.c: Likewise.
7223         * gimple-low.c: Likewise.
7224         * gimple-match-head.c: Likewise.
7225         * gimple-pretty-print.c: Likewise.
7226         * gimple-ssa-isolate-paths.c: Likewise.
7227         * gimple-ssa-strength-reduction.c: Likewise.
7228         * gimple-streamer-in.c: Likewise.
7229         * gimple-streamer-out.c: Likewise.
7230         * gimple-streamer.h: Likewise.
7231         * gimple-walk.c: Likewise.
7232         * gimple.c: Likewise.
7233         * gimplify-me.c: Likewise.
7234         * gimplify.c: Likewise.
7235         * godump.c: Likewise.
7236         * graph.c: Likewise.
7237         * graphite-blocking.c: Likewise.
7238         * graphite-dependences.c: Likewise.
7239         * graphite-interchange.c: Likewise.
7240         * graphite-isl-ast-to-gimple.c: Likewise.
7241         * graphite-optimize-isl.c: Likewise.
7242         * graphite-poly.c: Likewise.
7243         * graphite-scop-detection.c: Likewise.
7244         * graphite-sese-to-poly.c: Likewise.
7245         * graphite.c: Likewise.
7246         * haifa-sched.c: Likewise.
7247         * hooks.h: Likewise.
7248         * hw-doloop.c: Likewise.
7249         * ifcvt.c: Likewise.
7250         * incpath.c: Likewise.
7251         * init-regs.c: Likewise.
7252         * internal-fn.c: Likewise.
7253         * ipa-chkp.c: Likewise.
7254         * ipa-comdats.c: Likewise.
7255         * ipa-cp.c: Likewise.
7256         * ipa-devirt.c: Likewise.
7257         * ipa-icf-gimple.c: Likewise.
7258         * ipa-icf.c: Likewise.
7259         * ipa-inline-analysis.c: Likewise.
7260         * ipa-inline-transform.c: Likewise.
7261         * ipa-inline.c: Likewise.
7262         * ipa-polymorphic-call.c: Likewise.
7263         * ipa-profile.c: Likewise.
7264         * ipa-prop.c: Likewise.
7265         * ipa-pure-const.c: Likewise.
7266         * ipa-ref.c: Likewise.
7267         * ipa-reference.c: Likewise.
7268         * ipa-split.c: Likewise.
7269         * ipa-utils.c: Likewise.
7270         * ipa-visibility.c: Likewise.
7271         * ipa.c: Likewise.
7272         * ira-build.c: Likewise.
7273         * ira-color.c: Likewise.
7274         * ira-conflicts.c: Likewise.
7275         * ira-costs.c: Likewise.
7276         * ira-emit.c: Likewise.
7277         * ira-lives.c: Likewise.
7278         * ira.c: Likewise.
7279         * jump.c: Likewise.
7280         * langhooks.c: Likewise.
7281         * lcm.c: Likewise.
7282         * loop-doloop.c: Likewise.
7283         * loop-init.c: Likewise.
7284         * loop-invariant.c: Likewise.
7285         * loop-iv.c: Likewise.
7286         * loop-unroll.c: Likewise.
7287         * lower-subreg.c: Likewise.
7288         * lra-assigns.c: Likewise.
7289         * lra-coalesce.c: Likewise.
7290         * lra-constraints.c: Likewise.
7291         * lra-eliminations.c: Likewise.
7292         * lra-lives.c: Likewise.
7293         * lra-remat.c: Likewise.
7294         * lra-spills.c: Likewise.
7295         * lra.c: Likewise.
7296         * lto-cgraph.c: Likewise.
7297         * lto-compress.c: Likewise.
7298         * lto-opts.c: Likewise.
7299         * lto-section-in.c: Likewise.
7300         * lto-section-out.c: Likewise.
7301         * lto-streamer-in.c: Likewise.
7302         * lto-streamer-out.c: Likewise.
7303         * lto-streamer.c: Likewise.
7304         * mcf.c: Likewise.
7305         * mode-switching.c: Likewise.
7306         * modulo-sched.c: Likewise.
7307         * omega.c: Likewise.
7308         * omp-low.c: Likewise.
7309         * optabs.c: Likewise.
7310         * opts-global.c: Likewise.
7311         * passes.c: Likewise.
7312         * plugin.c: Likewise.
7313         * postreload-gcse.c: Likewise.
7314         * postreload.c: Likewise.
7315         * predict.c: Likewise.
7316         * print-rtl.c: Likewise.
7317         * print-tree.c: Likewise.
7318         * profile.c: Likewise.
7319         * real.c: Likewise.
7320         * realmpfr.c: Likewise.
7321         * realmpfr.h: Likewise.
7322         * recog.c: Likewise.
7323         * ree.c: Likewise.
7324         * reg-stack.c: Likewise.
7325         * regcprop.c: Likewise.
7326         * reginfo.c: Likewise.
7327         * regrename.c: Likewise.
7328         * regs.h: Likewise.
7329         * regstat.c: Likewise.
7330         * reload.c: Likewise.
7331         * reload1.c: Likewise.
7332         * reorg.c: Likewise.
7333         * resource.c: Likewise.
7334         * rtl-chkp.c: Likewise.
7335         * rtlanal.c: Likewise.
7336         * rtlhooks.c: Likewise.
7337         * sanopt.c: Likewise.
7338         * sched-deps.c: Likewise.
7339         * sched-ebb.c: Likewise.
7340         * sched-rgn.c: Likewise.
7341         * sched-vis.c: Likewise.
7342         * sdbout.c: Likewise.
7343         * sel-sched-dump.c: Likewise.
7344         * sel-sched-ir.c: Likewise.
7345         * sel-sched.c: Likewise.
7346         * sese.c: Likewise.
7347         * shrink-wrap.c: Likewise.
7348         * shrink-wrap.h: Likewise.
7349         * simplify-rtx.c: Likewise.
7350         * stack-ptr-mod.c: Likewise.
7351         * statistics.c: Likewise.
7352         * stmt.c: Likewise.
7353         * stor-layout.c: Likewise.
7354         * store-motion.c: Likewise.
7355         * stringpool.c: Likewise.
7356         * symtab.c: Likewise.
7357         * target-globals.c: Likewise.
7358         * targhooks.c: Likewise.
7359         * toplev.c: Likewise.
7360         * tracer.c: Likewise.
7361         * trans-mem.c: Likewise.
7362         * tree-affine.c: Likewise.
7363         * tree-affine.h: Likewise.
7364         * tree-browser.c: Likewise.
7365         * tree-call-cdce.c: Likewise.
7366         * tree-cfg.c: Likewise.
7367         * tree-cfgcleanup.c: Likewise.
7368         * tree-chkp-opt.c: Likewise.
7369         * tree-chkp.c: Likewise.
7370         * tree-chrec.c: Likewise.
7371         * tree-complex.c: Likewise.
7372         * tree-data-ref.c: Likewise.
7373         * tree-dfa.c: Likewise.
7374         * tree-diagnostic.c: Likewise.
7375         * tree-dump.c: Likewise.
7376         * tree-eh.c: Likewise.
7377         * tree-emutls.c: Likewise.
7378         * tree-if-conv.c: Likewise.
7379         * tree-inline.c: Likewise.
7380         * tree-into-ssa.c: Likewise.
7381         * tree-iterator.c: Likewise.
7382         * tree-loop-distribution.c: Likewise.
7383         * tree-nested.c: Likewise.
7384         * tree-nrv.c: Likewise.
7385         * tree-object-size.c: Likewise.
7386         * tree-outof-ssa.c: Likewise.
7387         * tree-parloops.c: Likewise.
7388         * tree-phinodes.c: Likewise.
7389         * tree-predcom.c: Likewise.
7390         * tree-pretty-print.c: Likewise.
7391         * tree-pretty-print.h: Likewise.
7392         * tree-profile.c: Likewise.
7393         * tree-scalar-evolution.c: Likewise.
7394         * tree-sra.c: Likewise.
7395         * tree-ssa-address.c: Likewise.
7396         * tree-ssa-alias.c: Likewise.
7397         * tree-ssa-ccp.c: Likewise.
7398         * tree-ssa-coalesce.c: Likewise.
7399         * tree-ssa-copy.c: Likewise.
7400         * tree-ssa-copyrename.c: Likewise.
7401         * tree-ssa-dce.c: Likewise.
7402         * tree-ssa-dom.c: Likewise.
7403         * tree-ssa-dse.c: Likewise.
7404         * tree-ssa-forwprop.c: Likewise.
7405         * tree-ssa-ifcombine.c: Likewise.
7406         * tree-ssa-live.c: Likewise.
7407         * tree-ssa-loop-ch.c: Likewise.
7408         * tree-ssa-loop-im.c: Likewise.
7409         * tree-ssa-loop-ivcanon.c: Likewise.
7410         * tree-ssa-loop-ivopts.c: Likewise.
7411         * tree-ssa-loop-manip.c: Likewise.
7412         * tree-ssa-loop-niter.c: Likewise.
7413         * tree-ssa-loop-prefetch.c: Likewise.
7414         * tree-ssa-loop-unswitch.c: Likewise.
7415         * tree-ssa-loop.c: Likewise.
7416         * tree-ssa-loop.h: Likewise.
7417         * tree-ssa-math-opts.c: Likewise.
7418         * tree-ssa-operands.c: Likewise.
7419         * tree-ssa-phiopt.c: Likewise.
7420         * tree-ssa-phiprop.c: Likewise.
7421         * tree-ssa-pre.c: Likewise.
7422         * tree-ssa-propagate.c: Likewise.
7423         * tree-ssa-reassoc.c: Likewise.
7424         * tree-ssa-sccvn.c: Likewise.
7425         * tree-ssa-scopedtables.c: Likewise.
7426         * tree-ssa-sink.c: Likewise.
7427         * tree-ssa-strlen.c: Likewise.
7428         * tree-ssa-structalias.c: Likewise.
7429         * tree-ssa-tail-merge.c: Likewise.
7430         * tree-ssa-ter.c: Likewise.
7431         * tree-ssa-threadedge.c: Likewise.
7432         * tree-ssa-threadupdate.c: Likewise.
7433         * tree-ssa-uncprop.c: Likewise.
7434         * tree-ssa-uninit.c: Likewise.
7435         * tree-ssa.c: Likewise.
7436         * tree-ssanames.c: Likewise.
7437         * tree-stdarg.c: Likewise.
7438         * tree-streamer-in.c: Likewise.
7439         * tree-streamer-out.c: Likewise.
7440         * tree-streamer.c: Likewise.
7441         * tree-switch-conversion.c: Likewise.
7442         * tree-tailcall.c: Likewise.
7443         * tree-vect-data-refs.c: Likewise.
7444         * tree-vect-generic.c: Likewise.
7445         * tree-vect-loop-manip.c: Likewise.
7446         * tree-vect-loop.c: Likewise.
7447         * tree-vect-patterns.c: Likewise.
7448         * tree-vect-slp.c: Likewise.
7449         * tree-vect-stmts.c: Likewise.
7450         * tree-vectorizer.c: Likewise.
7451         * tree-vrp.c: Likewise.
7452         * tree.c: Likewise.
7453         * tsan.c: Likewise.
7454         * ubsan.c: Likewise.
7455         * valtrack.c: Likewise.
7456         * value-prof.c: Likewise.
7457         * var-tracking.c: Likewise.
7458         * varasm.c: Likewise.
7459         * varpool.c: Likewise.
7460         * vmsdbgout.c: Likewise.
7461         * vtable-verify.c: Likewise.
7462         * web.c: Likewise.
7463         * wide-int-print.cc: Likewise.
7464         * wide-int-print.h: Likewise.
7465         * wide-int.cc: Likewise.
7466         * xcoffout.c: Likewise.
7467         * config/aarch64/aarch64-builtins.c: Likewise.
7468         * config/aarch64/aarch64.c: Likewise.
7469         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
7470         * config/alpha/alpha.c: Likewise.
7471         * config/arc/arc.c: Likewise.
7472         * config/arm/aarch-common.c: Likewise.
7473         * config/arm/arm-builtins.c: Likewise.
7474         * config/arm/arm-c.c: Likewise.
7475         * config/arm/arm.c: Likewise.
7476         * config/avr/avr-c.c: Likewise.
7477         * config/avr/avr-log.c: Likewise.
7478         * config/avr/avr.c: Likewise.
7479         * config/bfin/bfin.c: Likewise.
7480         * config/c6x/c6x.c: Likewise.
7481         * config/cr16/cr16.c: Likewise.
7482         * config/cris/cris.c: Likewise.
7483         * config/darwin-c.c: Likewise.
7484         * config/darwin.c: Likewise.
7485         * config/default-c.c: Likewise.
7486         * config/epiphany/epiphany.c: Likewise.
7487         * config/epiphany/mode-switch-use.c: Likewise.
7488         * config/epiphany/resolve-sw-modes.c: Likewise.
7489         * config/fr30/fr30.c: Likewise.
7490         * config/frv/frv.c: Likewise.
7491         * config/ft32/ft32.c: Likewise.
7492         * config/glibc-c.c: Likewise.
7493         * config/h8300/h8300.c: Likewise.
7494         * config/i386/i386-c.c: Likewise.
7495         * config/i386/i386.c: Likewise.
7496         * config/i386/msformat-c.c: Likewise.
7497         * config/i386/winnt-cxx.c: Likewise.
7498         * config/i386/winnt-stubs.c: Likewise.
7499         * config/i386/winnt.c: Likewise.
7500         * config/ia64/ia64-c.c: Likewise.
7501         * config/ia64/ia64.c: Likewise.
7502         * config/iq2000/iq2000.c: Likewise.
7503         * config/lm32/lm32.c: Likewise.
7504         * config/m32c/m32c-pragma.c: Likewise.
7505         * config/m32c/m32c.c: Likewise.
7506         * config/m32r/m32r.c: Likewise.
7507         * config/m68k/m68k.c: Likewise.
7508         * config/mcore/mcore.c: Likewise.
7509         * config/mep/mep-pragma.c: Likewise.
7510         * config/mep/mep.c: Likewise.
7511         * config/microblaze/microblaze-c.c: Likewise.
7512         * config/microblaze/microblaze.c: Likewise.
7513         * config/mips/mips.c: Likewise.
7514         * config/mmix/mmix.c: Likewise.
7515         * config/mn10300/mn10300.c: Likewise.
7516         * config/moxie/moxie.c: Likewise.
7517         * config/msp430/msp430-c.c: Likewise.
7518         * config/msp430/msp430.c: Likewise.
7519         * config/nds32/nds32-cost.c: Likewise.
7520         * config/nds32/nds32-fp-as-gp.c: Likewise.
7521         * config/nds32/nds32-intrinsic.c: Likewise.
7522         * config/nds32/nds32-isr.c: Likewise.
7523         * config/nds32/nds32-md-auxiliary.c: Likewise.
7524         * config/nds32/nds32-memory-manipulation.c: Likewise.
7525         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
7526         * config/nds32/nds32-predicates.c: Likewise.
7527         * config/nds32/nds32.c: Likewise.
7528         * config/nios2/nios2.c: Likewise.
7529         * config/nvptx/nvptx.c: Likewise.
7530         * config/pa/pa.c: Likewise.
7531         * config/pdp11/pdp11.c: Likewise.
7532         * config/rl78/rl78-c.c: Likewise.
7533         * config/rl78/rl78.c: Likewise.
7534         * config/rs6000/rs6000-c.c: Likewise.
7535         * config/rs6000/rs6000.c: Likewise.
7536         * config/rx/rx.c: Likewise.
7537         * config/s390/s390-c.c: Likewise.
7538         * config/s390/s390.c: Likewise.
7539         * config/sh/sh-c.c: Likewise.
7540         * config/sh/sh-mem.cc: Likewise.
7541         * config/sh/sh.c: Likewise.
7542         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
7543         * config/sh/sh_treg_combine.cc: Likewise.
7544         * config/sol2-c.c: Likewise.
7545         * config/sol2-cxx.c: Likewise.
7546         * config/sol2-stubs.c: Likewise.
7547         * config/sol2.c: Likewise.
7548         * config/sparc/sparc-c.c: Likewise.
7549         * config/sparc/sparc.c: Likewise.
7550         * config/spu/spu-c.c: Likewise.
7551         * config/spu/spu.c: Likewise.
7552         * config/stormy16/stormy16.c: Likewise.
7553         * config/tilegx/mul-tables.c: Likewise.
7554         * config/tilegx/tilegx-c.c: Likewise.
7555         * config/tilegx/tilegx.c: Likewise.
7556         * config/tilepro/mul-tables.c: Likewise.
7557         * config/tilepro/tilepro-c.c: Likewise.
7558         * config/tilepro/tilepro.c: Likewise.
7559         * config/v850/v850-c.c: Likewise.
7560         * config/v850/v850.c: Likewise.
7561         * config/vax/vax.c: Likewise.
7562         * config/visium/visium.c: Likewise.
7563         * config/vms/vms-c.c: Likewise.
7564         * config/vms/vms.c: Likewise.
7565         * config/vxworks.c: Likewise.
7566         * config/winnt-c.c: Likewise.
7567         * config/xtensa/xtensa.c: Likewise.
7568         * common/config/bfin/bfin-common.c: Likewise.
7569
7570 2015-06-04  Jan Hubicka  <hubicka@ucw.cz>
7571
7572         * tree.h (tree_code_for_canonical_type_merging): New function.
7573         * tree.c (gimple_canonical_types_compatible_p): Use
7574         tree_code_for_canonical_type_merging..
7575
7576 2015-06-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7577
7578         PR c++/66192
7579         PR target/66200
7580         * doc/tm.texi: Regenerate.
7581         * doc/tm.texi.in (TARGET_RELAXED_ORDERING): Delete.
7582         * target.def (TARGET_RELAXED_ORDERING): Likewise.
7583         * config/alpha/alpha.c (TARGET_RELAXED_ORDERING): Likewise.
7584         * config/ia64/ia64.c (TARGET_RELAXED_ORDERING): Likewise.
7585         * config/rs6000/rs6000.c (TARGET_RELAXED_ORDERING): Likewise.
7586         * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Likewise.
7587         * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
7588         * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Likewise.
7589         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Likewise.
7590
7591 2015-06-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7592
7593         * config/aarch64/aarch64.c (aarch64_override_options): Unconditionally
7594         register fma steering pass.
7595         * config/aarch64/cortex-a57-fma-steering.c (gate): Add gating on
7596         AARCH64_TUNE_FMA_STEERING.
7597
7598 2015-06-03  Jan Hubicka  <hubicka@ucw.cz>
7599
7600         * tree.c (verify_type_variant): Verify that type and variant is
7601         compatible.
7602         (gimple_canonical_types_compatible_p): Look for main variants.
7603
7604 2015-06-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
7605
7606         * config.gcc (powerpc*-*-*): Add support for a new configure
7607         option --with-advance-toolchain=<xxx> which overrides using the
7608         default header files, libraries and dynamic linker.
7609
7610         * config/rs6000/linux64.h (SUBSUBTARGET_EXTRA_SPECS): Add new
7611         specs to support the configure --with-advance-toolchain=<xxx>
7612         option.
7613         (INCLUDE_EXTRA_SPEC): Likewise.
7614         (LINK_OS_EXTRA_SPEC32): Likewise.
7615         (LINK_OK_EXTRA_SPEC64): Likewise.
7616         (LINK_OS_NEW_DTAGS_SPEC): Likewise.
7617         (DYNAMIC_LINKER_PREFIX): Likewise.
7618         (CPP_OS_DEFAULT_SPEC): Use the new specs for providing advance
7619         toolchain support.
7620         (GLIBC_DYNAMIC_LINKER32): Likewise.
7621         (GLIBC_DYNAMIC_LINKER64): Likewise.
7622         (LINK_OS_LINUX_SPEC32): Likewise.
7623         (LINK_OS_LINUX_SPEC64): Likewise.
7624
7625         * doc/install.texi (--enable-advance-toolchain=<xx>): Document new
7626         configuration option.
7627
7628 2015-06-03  Uros Bizjak  <ubizjak@gmail.com>
7629
7630         PR target/66275
7631         * config/i386/i386.c (ix86_function_arg_regno): Use ix86_cfun_abi
7632         to determine current function ABI.
7633         (ix86_function_value_regno_p): Ditto.
7634
7635 2015-06-03  Martin Liska  <mliska@suse.cz>
7636
7637         * alloc-pool.h (struct pool_usage): Correct GNU coding style.
7638         * bitmap.h (struct bitmap_usage): Likewise.
7639         * ggc-common.c (struct ggc_usage): Likewise.
7640         * mem-stats.h (struct mem_location): Likewise.
7641         (struct mem_usage): Likewise.
7642         * vec.c (struct vec_usage): Likewise.
7643
7644 2015-06-03  Benigno B. Junior  <bbj@gentoo.org>
7645
7646         * config/netbsd-elf.h (NETBSD_LINK_SPEC_ELF): Turn -symbolic into
7647         -Bsymbolic.
7648
7649 2015-06-02  Andres Tiraboschi  <andres.tiraboschi@tallertechnologies.com>
7650
7651         * doc/plugins.texi (enum plugin_event): New event.
7652         * plugin.c (register_callback): Handle PLUGIN_START_PARSE_FUNCTION
7653         and PLUGIN_FINISH_FUNCTION.
7654         * plugin.def (PLUGIN_START_PARSE_FUNCTION): Add plugin event
7655         (PLUGIN_FINISH_PARSE_FUNCTION): Likewise.
7656
7657 2015-06-03  Richard Biener  <rguenther@suse.de>
7658
7659         * tree-vect-data-refs.c (vect_analyze_group_access): Properly
7660         compute GROUP_GAP for the first element.
7661         * tree-vect-slp.c (vect_build_slp_tree_1): Remove restriction
7662         on in-group gaps.
7663
7664 2015-06-03  Nick Clifton  <nickc@redhat.com>
7665
7666         * config/rl78/rl78-real.md: Add peepholes to avoid a register
7667         copy when calling a function.
7668         * config/rl78/rl78.c (need_to_save): Do not push the frame
7669         pointer in an interrupt handler prologue if it is never used.
7670
7671 2015-06-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7672
7673         * ifcvt (end_ifcvt_sequence): Fix typo in comment above.
7674
7675 2015-06-03  Ilya Enkovich  <ilya.enkovich@intel.com>
7676
7677         * ipa-chkp.c (chkp_maybe_create_clone): Create alias
7678         reference when cloning alias node.
7679
7680 2015-06-03  Martin Liska  <mliska@suse.cz>
7681
7682         * alloc-pool.h (struct pool_usage): Correct space padding.
7683         * ggc-page.c (ggc_print_statistics): Align columns in a report.
7684         * mem-stats.h (struct mem_usage): Add argument to print_dash_line.
7685         * tree.c (dump_tree_statistics): Align columns in a report.
7686
7687 2015-06-03  Martin Liska  <mliska@suse.cz>
7688
7689         * alloc-pool.c (allocate_pool_descriptor): Remove.
7690         (struct pool_output_info): Likewise.
7691         (print_alloc_pool_statistics): Likewise.
7692         (dump_alloc_pool_statistics): Likewise.
7693         * alloc-pool.h (struct pool_usage): New struct.
7694         (pool_allocator::initialize): Change usage of memory statistics
7695         to a new interface.
7696         (pool_allocator::release): Likewise.
7697         (pool_allocator::allocate): Likewise.
7698         (pool_allocator::remove): Likewise.
7699         * mem-stats-traits.h (enum mem_alloc_origin): Add new enum value
7700         for a pool allocator.
7701         * mem-stats.h (struct mem_location): Add new ctor.
7702         (struct mem_usage): Add counter for number of
7703         instances.
7704         (mem_alloc_description::register_descriptor): New overload of
7705         * mem-stats.h (mem_location::to_string): New function.
7706         * bitmap.h (struct bitmap_usage): Use this new function.
7707         * ggc-common.c (struct ggc_usage): Likewise.
7708         the function.
7709
7710 2015-06-03  Richard Sandiford  <richard.sandiford@arm.com>
7711
7712         * defaults.h (SWITCHABLE_TARGET, TARGET_SUPPORTS_WIDE_INT): Move out
7713         of GCC_INSN_FLAGS_H block.
7714
7715 2015-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
7716
7717         * explow.c (plus_constant): Update check after force_const_mem call
7718         to see if the value returned is not a NULL_RTX.
7719
7720 2015-06-03  Ilya Enkovich  <ilya.enkovich@intel.com>
7721
7722         * ipa.c (symbol_table::remove_unreachable_nodes): Don't
7723         remove instumentation thunks calling reachable functions.
7724         * lto-cgraph.c (output_refs): Always output IPA_REF_CHKP.
7725         * lto/lto-partition.c (privatize_symbol_name_1): New.
7726         (privatize_symbol_name): Privatize both decl and orig_decl
7727         names for instrumented functions.
7728         * cgraph.c (cgraph_node::verify_node): Add transparent
7729         alias chain check for instrumented node.
7730
7731 2015-06-03  Marek Polacek  <polacek@redhat.com>
7732
7733         PR c/64223
7734         PR c/29358
7735         * tree.c (attribute_value_equal): Handle attribute format.
7736         (cmp_attrib_identifiers): Factor out of lookup_ident_attribute.
7737
7738 2015-06-03  Richard Biener  <rguenther@suse.de>
7739
7740         PR tree-optimization/63916
7741         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
7742         Forward-propagate non-invariant addresses by splicing their
7743         reference ops if the result isn't going to be used by PRE.
7744         (vn_reference_lookup_3): Remove pointless assert.
7745
7746 2015-06-03  Richard Biener  <rguenther@suse.de>
7747
7748         PR tree-optimization/66375
7749         * tree-scalar-evolution.c (follow_ssa_edge_binary): First
7750         add to the evolution before following SSA edges.
7751
7752 2015-06-03  Bin Cheng  <bin.cheng@arm.com>
7753
7754         * tree-ssa-loop-ivopts.c (dump_iv): New parameter.
7755         (dump_use, dump_cand, find_induction_variables): Pass new argument
7756         to dump_iv.
7757         (record_use): Preserve the ssa name information in IV.
7758
7759 2015-06-03  Richard Sandiford  <richard.sandiford@arm.com>
7760
7761         * genpreds.c (mark_mode_tests): Mark all MATCH_CODEs as
7762         NO_MODE_TEST.
7763         (add_mode_tests): Don't add mode tests if the predicate only
7764         accepts scalar constant integers.  Otherwise, allow the mode
7765         of "op" to be VOIDmode if the predicate does accept such integers.
7766
7767 2015-06-02  Jim Wilson  <jim.wilson@linaro.org>
7768
7769         PR target/66258
7770         * config/aarch64/aarch64.c (aarch64_function_value_regno_p): Change
7771         !TARGET_GENERAL_REGS_ONLY to TARGET_FLOAT.
7772         (aarch64_secondary_reload): Likewise
7773         (aarch64_expand_builtin_va_start): Change TARGET_GENERAL_REGS_ONLY
7774         to !TARGET_FLOAT.
7775         (aarch64_gimplify_va_arg_expr, aarch64_setup_incoming_varargs):
7776         Likewise.
7777
7778 2015-06-03  Kugan Vivekanandarajah  <kuganv@linaro.org>
7779             Zhenqiang Chen  <zhenqiang.chen@linaro.org>
7780
7781         PR target/65768
7782         * cprop.c (try_replace_reg): Check cost of constants before propagating.
7783
7784 2015-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
7785
7786         * config/rs6000/rs6000-modes.def (IFmode): Define IFmode to
7787         provide access to the IBM extended double floating point mode if
7788         long double is IEEE 128-bit floating point.
7789         (KFmode): Define KFmode to provide access to IEEE 128-bit floating
7790         point if long double is the IBM extended double type.
7791
7792         * config/rs6000/rs6000.opt (-mfloat128-none): New switches to
7793         enable adding IEEE 128-bit floating point support.
7794         (-mfloat128-software): Likewise.
7795         (-mfloat128-sw): Likewise.
7796
7797         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Do not allow
7798         128-bit floating point types to occupy any register if
7799         -mlong-double-64.  Do not allow use of IFmode/KFmode unless
7800         -mfloat128-software is enabled.
7801         (rs6000_debug_reg_global): Add IEEE 128-bit floating point debug
7802         support.
7803         (rs6000_option_override_internal): Add -mfloat128-* support.
7804         (rs6000_init_builtins): Setup __ibm128 and __float128 type modes.
7805
7806         * config/rs6000/rs6000.h (rs6000_builtin_type_index): Add ibm128
7807         and float128 type nodes.
7808         (ieee128_float_type_node): Likewise.
7809         (ibm128_float_type_node): Likewise.
7810
7811 2015-06-02  Szabolcs Nagy  <szabolcs.nagy@arm.com>
7812
7813         PR target/66136
7814         * config/aarch64/geniterators.sh: Rewrite in awk.
7815
7816 2015-06-02  Martin Liska  <mliska@suse.cz>
7817
7818         * alloc-pool.h (pool_allocator::pool_allocator): Set implicit
7819         values to avoid -Wmaybe-uninitialized errors.
7820
7821 2015-06-02  Richard Biener  <rguenther@suse.de>
7822
7823         PR debug/65549
7824         * dwarf2out.c (lookup_context_die): New function.
7825         (resolve_addr): Avoid forcing a full DIE for the
7826         target of a DW_TAG_GNU_call_site during late compilation.
7827         Instead create a stub DIE without a type if we have a
7828         context DIE present.
7829
7830 2015-06-02  Uros Bizjak  <ubizjak@gmail.com>
7831
7832         * df-scan.c (df_scan_start_dump): Add space between regno and regname.
7833
7834 2015-06-02  Bin Cheng  <bin.cheng@arm.com>
7835
7836         PR tree-optimization/48052
7837         * cfgloop.h (struct control_iv): New.
7838         (struct loop): New field control_ivs.
7839         * tree-ssa-loop-niter.c : Include "stor-layout.h".
7840         (number_of_iterations_lt): Set no_overflow information.
7841         (number_of_iterations_exit): Init control iv in niter struct.
7842         (record_control_iv): New.
7843         (estimate_numbers_of_iterations_loop): Call record_control_iv.
7844         (loop_exits_before_overflow): New.  Interface factored out of
7845         scev_probably_wraps_p.
7846         (scev_probably_wraps_p): Factor loop niter related code into
7847         loop_exits_before_overflow.
7848         (free_numbers_of_iterations_estimates_loop): Free control ivs.
7849         * tree-ssa-loop-niter.h (free_loop_control_ivs): New.
7850
7851 2015-06-02  Eric Botcazou  <ebotcazou@adacore.com>
7852
7853         * gimplify.c (gimplify_modify_expr): Do not create a DECL_DEBUG_EXPR if
7854         the target doesn't belong to the current function.
7855
7856 2015-06-02  Marek Polacek  <polacek@redhat.com>
7857
7858         PR middle-end/66345
7859         * gimple-fold.c (gimple_fold_builtin_snprintf): Return false if
7860         get_maxval_strlen does not produce an INTEGER_CST.
7861
7862 2015-06-02  Richard Sandiford  <richard.sandiford@arm.com>
7863
7864         * config/arc/constraints.md: Use lower-case names in match_code.
7865         * config/mmix/constraints.md: Likewise.
7866
7867 2015-06-02  Richard Biener  <rguenther@suse.de>
7868
7869         PR tree-optimization/65961
7870         * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove bogus
7871         check and clarify dump message.
7872         (vect_build_slp_tree): If all children are built up from scalars
7873         build up the parent from scalars instead.
7874         * tree-vect-stmts.c (vect_is_simple_use): Cleanup.
7875
7876 2015-06-02  Jan Kratochvil  <jan.kratochvil@redhat.com>
7877
7878         PR other/65366
7879         * gdbhooks.py: Use int(...) instead of long(...).  Use print(...)
7880         instead of print ... .
7881
7882 2015-06-02  Alan Modra  <amodra@gmail.com>
7883
7884         * config/rs6000/vsx.md (vsx_extract_v4sf): Revert accidental
7885         2014-08-11 change.
7886
7887 2015-06-02  Bin Cheng  <bin.cheng@arm.com>
7888
7889         PR tree-optimization/52563
7890         PR tree-optimization/62173
7891         * tree-ssa-loop-ivopts.c (struct iv): New field.  Reorder fields.
7892         (alloc_iv, set_iv): New parameter.
7893         (determine_biv_step): Delete.
7894         (find_bivs): Inline original determine_biv_step.  Pass new
7895         argument to set_iv.
7896         (idx_find_step): Use no_overflow information for conversion.
7897         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop): Let
7898         resolve_mixers handle folded_casts.
7899         (instantiate_scev_name): Change bool parameter to bool pointer.
7900         (instantiate_scev_poly, instantiate_scev_binary): Ditto.
7901         (instantiate_array_ref, instantiate_scev_not): Ditto.
7902         (instantiate_scev_3, instantiate_scev_2): Ditto.
7903         (instantiate_scev_1, instantiate_scev_r): Ditto.
7904         (instantiate_scev_convert, ): Change parameter.  Pass argument
7905         to chrec_convert_aggressive.
7906         (instantiate_scev): Change argument.
7907         (resolve_mixers): New parameter and set it.
7908         (scev_const_prop): New argument.
7909         * tree-scalar-evolution.h (resolve_mixers): New parameter.
7910         * tree-chrec.c (convert_affine_scev): Call chrec_convert instead
7911         of chrec_conert_1.
7912         (chrec_convert): New parameter.  Move definition below.
7913         (chrec_convert_aggressive): New parameter and set it.  Call
7914         convert_affine_scev.
7915         * tree-chrec.h (chrec_convert): New parameter.
7916         (chrec_convert_aggressive): Ditto.
7917
7918 2015-06-01  Eric Botcazou  <ebotcazou@adacore.com>
7919
7920         * gimplify.c (gimplify_modify_expr_rhs): Use simple test on the size.
7921         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Do not remove
7922         the LHS of a no-return call if its type has variable size.
7923         * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
7924         * tree-cfg.c (verify_gimple_call): Accept these no-return calls.
7925
7926 2015-06-01  Andreas Tobler  <andreast@gcc.gnu.org>
7927
7928         * read-rtl.c: Adapt to use HAVE_DECL_ATOLL instead of HAVE_ATOLL.
7929         * config.in: Regenerate.
7930
7931 2015-06-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
7932
7933         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
7934         consecutive accesses within outer-loop with force_vectorize
7935         for references with zero step in inner-loop.
7936
7937 2015-06-01  Vidya Praveen  <vidyapraveen@arm.com>
7938
7939         * Makefile.in: Pick up gcov-dump dependencies from gcc/ directory
7940         rather than from gcc/build directory.
7941
7942 2015-06-01  Matthew Wahab  <matthew.wahab@arm.com>
7943
7944         PR target/65697
7945         * config/aarch64/aarch64.c (aarch64_split_compare_and_swap): Check
7946         for __sync memory models, emit initial loads and final barriers as
7947         appropriate.
7948
7949 2015-06-01  Matthew Wahab  <matthew.wahab@arm.com>
7950
7951         PR target/65697
7952         * config/aarch64/aarch64.c (aarch64_emit_post_barrier):New.
7953         (aarch64_split_atomic_op): Check for __sync memory models, emit
7954         appropriate initial loads and final barriers.
7955
7956 2015-06-01  Vidya Praveen  <vidyapraveen@arm.com>
7957
7958         * Makefile.in: Fix gcov dependencies that should
7959         not point to a build folder.
7960
7961 2015-06-01  Richard Biener  <rguenther@suse.de>
7962
7963         Revert
7964         2015-05-29  Richard Biener  <rguenther@suse.de>
7965
7966         PR tree-optimization/66314
7967         * tree-ssa-threadupdate.c (create_block_for_threading): Add
7968         parameter that says which loop the new block belongs to.
7969         (ssa_create_duplicates): Blocks duplicated for the threaded
7970         path belong to the loop of the thread destination.
7971
7972 2015-06-01  Martin Liska  <mliska@suse.cz>
7973
7974         * sched-deps.c: Include pool-alloc.h before
7975         cselib.h header file is included.
7976
7977 2015-06-01  Richard Biener  <rguenther@suse.de>
7978
7979         * tree-ssa-structalias.c (ipa_pta_execute): Handle address-taken
7980         functions.
7981
7982 2015-06-01  Martin Liska  <mliska@suse.cz>
7983
7984         * alloc-pool.h: Add ATTRIBUTE_UNUSED for
7985         a function local variable.
7986
7987 2015-06-01  Martin Liska  <mliska@suse.cz>
7988
7989         * alloc-pool.c (create_alloc_pool): Remove.
7990         (empty_alloc_pool): Likewise.
7991         (free_alloc_pool): Likewise.
7992         (free_alloc_pool_if_empty): Likewise.
7993         (pool_alloc): Likewise.
7994         (pool_free): Likewise.
7995         * alloc-pool.h: Remove old declarations.
7996
7997 2015-06-01  Martin Liska  <mliska@suse.cz>
7998
7999         * ira-build.c (initiate_allocnos): Use new type-based pool allocator.
8000         (ira_create_object): Likewise.
8001         (ira_create_allocno): Likewise.
8002         (ira_create_live_range): Likewise.
8003         (copy_live_range): Likewise.
8004         (ira_finish_live_range): Likewise.
8005         (ira_free_allocno_costs): Likewise.
8006         (finish_allocno): Likewise.
8007         (finish_allocnos): Likewise.
8008         (initiate_prefs): Likewise.
8009         (ira_create_pref): Likewise.
8010         (finish_pref): Likewise.
8011         (finish_prefs): Likewise.
8012         (initiate_copies): Likewise.
8013         (ira_create_copy): Likewise.
8014         (finish_copy): Likewise.
8015         (finish_copies): Likewise.
8016         (finish_prefs): Likewise.
8017
8018 2015-06-01  Martin Liska  <mliska@suse.cz>
8019
8020         * ipa-cp.c (ipcp_value::add_source): Use new type-based pool allocator.
8021         (allocate_and_init_ipcp_value): Likewise.
8022         (ipcp_lattice::add_value): Likewise.
8023         (merge_agg_lats_step): Likewise.
8024         (ipcp_driver): Likewise.
8025         * ipa-prop.c (ipa_free_all_structures_after_ipa_cp): Likewise.
8026         (ipa_free_all_structures_after_iinln): Likewise.
8027         * ipa-prop.h: Likewise.
8028
8029 2015-06-01  Martin Liska  <mliska@suse.cz>
8030
8031         * ipa-inline-analysis.c (edge_set_predicate): Use new type-based
8032         pool allocator.
8033         (set_hint_predicate): Likewise.
8034         (inline_summary_alloc): Likewise.
8035         (reset_inline_edge_summary): Likewise.
8036         (reset_inline_summary): Likewise.
8037         (set_cond_stmt_execution_predicate): Likewise.
8038         (set_switch_stmt_execution_predicate): Likewise.
8039         (compute_bb_predicates): Likewise.
8040         (estimate_function_body_sizes): Likewise.
8041         (inline_free_summary): Likewise.
8042
8043 2015-06-01  Martin Liska  <mliska@suse.cz>
8044
8045         * ipa-prop.c (ipa_set_jf_constant): Use new type-based pool allocator.
8046         (ipa_edge_duplication_hook): Likewise.
8047         (ipa_free_all_structures_after_ipa_cp): Likewise.
8048         (ipa_free_all_structures_after_iinln): Likewise.
8049
8050 2015-06-01  Martin Liska  <mliska@suse.cz>
8051
8052         * ipa-profile.c (account_time_size): Use new type-based pool allocator.
8053         (ipa_profile_generate_summary): Likewise.
8054         (ipa_profile_read_summary): Likewise.
8055         (ipa_profile): Likewise.
8056
8057 2015-06-01  Martin Liska  <mliska@suse.cz>
8058
8059         * tree-ssa-structalias.c (new_var_info): Use new type-based
8060         pool allocator.
8061         (new_constraint): Likewise.
8062         (init_alias_vars): Likewise.
8063         (delete_points_to_sets): Likewise.
8064
8065 2015-06-01  Martin Liska  <mliska@suse.cz>
8066
8067         * tree-ssa-strlen.c (new_strinfo): Use new type-based pool allocator.
8068         (free_strinfo): Likewise.
8069         (pass_strlen::execute): Likewise.
8070
8071 2015-06-01  Martin Liska  <mliska@suse.cz>
8072
8073         * tree-ssa-sccvn.c (vn_reference_insert): Use new type-based
8074         pool allocator.
8075         (vn_reference_insert_pieces): Likewise.
8076         (vn_phi_insert): Likewise.
8077         (visit_reference_op_call): Likewise.
8078         (copy_phi): Likewise.
8079         (copy_reference): Likewise.
8080         (process_scc): Likewise.
8081         (allocate_vn_table): Likewise.
8082         (free_vn_table): Likewise.
8083
8084 2015-06-01  Martin Liska  <mliska@suse.cz>
8085
8086         * tree-ssa-reassoc.c (add_to_ops_vec): Use new type-based
8087         pool allocator.
8088         (add_repeat_to_ops_vec): Likewise.
8089         (get_ops): Likewise.
8090         (maybe_optimize_range_tests): Likewise.
8091         (init_reassoc): Likewise.
8092         (fini_reassoc): Likewise.
8093
8094 2015-06-01  Martin Liska  <mliska@suse.cz>
8095
8096         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Use new type-based
8097         pool allocator.
8098         (bitmap_set_new): Likewise.
8099         (get_or_alloc_expr_for_constant): Likewise.
8100         (get_or_alloc_expr_for): Likewise.
8101         (phi_translate_1): Likewise.
8102         (compute_avail): Likewise.
8103         (init_pre): Likewise.
8104         (fini_pre): Likewise.
8105
8106 2015-06-01  Martin Liska  <mliska@suse.cz>
8107
8108         * sched-deps.c (create_dep_node): Use new type-based pool allocator.
8109         (delete_dep_node): Likewise.
8110         (create_deps_list): Likewise.
8111         (free_deps_list): Likewise.
8112         (sched_deps_init): Likewise.
8113         (sched_deps_finish): Likewise.
8114
8115 2015-06-01  Martin Liska  <mliska@suse.cz>
8116
8117         * regcprop.c (free_debug_insn_changes): Use new type-based
8118         pool allocator.
8119         (replace_oldest_value_reg): Likewise.
8120         (pass_cprop_hardreg::execute): Likewise.
8121
8122 2015-06-01  Martin Liska  <mliska@suse.cz>
8123
8124         * ira-build.c (initiate_cost_vectors): Use new type-based
8125         pool allocator.
8126         (ira_allocate_cost_vector): Likewise.
8127         (ira_free_cost_vector): Likewise.
8128         (finish_cost_vectors): Likewise.
8129
8130 2015-06-01  Martin Liska  <mliska@suse.cz>
8131
8132         * sel-sched-ir.c (alloc_sched_pools): Use new type-based
8133         pool allocator.
8134         (free_sched_pools): Likewise.
8135         * sel-sched-ir.h (_list_alloc): Likewise.
8136         (_list_remove): Likewise.
8137
8138 2015-06-01  Martin Liska  <mliska@suse.cz>
8139
8140         * stmt.c (add_case_node): Use new type-based pool allocator.
8141         (expand_case): Likewise.
8142         (expand_sjlj_dispatch_table): Likewise.
8143
8144 2015-06-01  Martin Liska  <mliska@suse.cz>
8145
8146         * tree-ssa-math-opts.c (occ_new): Use new type-based pool allocator.
8147         (free_bb): Likewise.
8148         (pass_cse_reciprocals::execute): Likewise.
8149
8150 2015-06-01  Martin Liska  <mliska@suse.cz>
8151
8152         * tree-sra.c (sra_initialize): Use new type-based pool allocator.
8153         (sra_deinitialize) Likewise.
8154         (create_access_1) Likewise.
8155         (build_accesses_from_assign) Likewise.
8156         (create_artificial_child_access) Likewise.
8157
8158 2015-06-01  Martin Liska  <mliska@suse.cz>
8159
8160         * dse.c (get_group_info):Use new type-based pool allocator.
8161         (dse_step0) Likewise.
8162         (free_store_info) Likewise.
8163         (delete_dead_store_insn) Likewise.
8164         (free_read_records) Likewise.
8165         (record_store) Likewise.
8166         (replace_read) Likewise.
8167         (check_mem_read_rtx) Likewise.
8168         (scan_insn) Likewise.
8169         (dse_step1) Likewise.
8170         (dse_step7) Likewise.
8171
8172 2015-06-01  Martin Liska  <mliska@suse.cz>
8173
8174         * df-scan.c (struct df_scan_problem_data):Use new type-based
8175         pool allocator.
8176         (df_scan_free_internal) Likewise.
8177         (df_scan_alloc) Likewise.
8178         (df_grow_reg_info) Likewise.
8179         (df_free_ref) Likewise.
8180         (df_insn_create_insn_record) Likewise.
8181         (df_mw_hardreg_chain_delete) Likewise.
8182         (df_insn_info_delete) Likewise.
8183         (df_free_collection_rec) Likewise.
8184         (df_mw_hardreg_chain_delete_eq_uses) Likewise.
8185         (df_sort_and_compress_mws) Likewise.
8186         (df_ref_create_structure) Likewise.
8187         (df_ref_record) Likewise.
8188
8189 2015-06-01  Martin Liska  <mliska@suse.cz>
8190
8191         * df-problems.c (df_chain_create):Use new type-based pool allocator.
8192         (df_chain_unlink_1) Likewise.
8193         (df_chain_unlink) Likewise.
8194         (df_chain_remove_problem) Likewise.
8195         (df_chain_alloc) Likewise.
8196         (df_chain_free) Likewise.
8197         * df.h (struct dataflow) Likewise.
8198
8199 2015-06-01  Martin Liska  <mliska@suse.cz>
8200
8201         * cselib.c (new_elt_list):Use new type-based pool allocator.
8202         (new_elt_loc_list) Likewise.
8203         (unchain_one_elt_list) Likewise.
8204         (unchain_one_elt_loc_list) Likewise.
8205         (unchain_one_value) Likewise.
8206         (new_cselib_val) Likewise.
8207         (cselib_init) Likewise.
8208         (cselib_finish) Likewise.
8209
8210 2015-06-01  Martin Liska  <mliska@suse.cz>
8211
8212         * config/sh/sh.c (add_constant):Use new type-based pool allocator.
8213         (sh_reorg) Likewise.
8214
8215 2015-06-01  Martin Liska  <mliska@suse.cz>
8216
8217         * cfg.c (initialize_original_copy_tables):Use new type-based
8218         pool allocator.
8219         (free_original_copy_tables) Likewise.
8220         (copy_original_table_clear) Likewise.
8221         (copy_original_table_set) Likewise.
8222
8223 2015-06-01  Martin Liska  <mliska@suse.cz>
8224
8225         * asan.c (asan_mem_ref_get_alloc_pool):Use new type-based
8226         pool allocator.
8227         (asan_mem_ref_new) Likewise.
8228         (free_mem_ref_resources) Likewise.
8229
8230 2015-06-01  Martin Liska  <mliska@suse.cz>
8231
8232         * var-tracking.c (variable_htab_free):Use new type-based
8233         pool allocator.
8234         (attrs_list_clear) Likewise.
8235         (attrs_list_insert) Likewise.
8236         (attrs_list_copy) Likewise.
8237         (shared_hash_unshare) Likewise.
8238         (shared_hash_destroy) Likewise.
8239         (unshare_variable) Likewise.
8240         (var_reg_delete_and_set) Likewise.
8241         (var_reg_delete) Likewise.
8242         (var_regno_delete) Likewise.
8243         (drop_overlapping_mem_locs) Likewise.
8244         (variable_union) Likewise.
8245         (insert_into_intersection) Likewise.
8246         (canonicalize_values_star) Likewise.
8247         (variable_merge_over_cur) Likewise.
8248         (dataflow_set_merge) Likewise.
8249         (remove_duplicate_values) Likewise.
8250         (variable_post_merge_new_vals) Likewise.
8251         (dataflow_set_preserve_mem_locs) Likewise.
8252         (dataflow_set_remove_mem_locs) Likewise.
8253         (variable_from_dropped) Likewise.
8254         (variable_was_changed) Likewise.
8255         (set_slot_part) Likewise.
8256         (clobber_slot_part) Likewise.
8257         (delete_slot_part) Likewise.
8258         (loc_exp_insert_dep) Likewise.
8259         (notify_dependents_of_changed_value) Likewise.
8260         (emit_notes_for_differences_1) Likewise.
8261         (vt_emit_notes) Likewise.
8262         (vt_initialize) Likewise.
8263         (vt_finalize) Likewise.
8264
8265 2015-06-01  Martin Liska  <mliska@suse.cz>
8266
8267         * ira-color.c (init_update_cost_records):Use new type-based
8268         pool allocator.
8269         (get_update_cost_record) Likewise.
8270         (free_update_cost_record_list) Likewise.
8271         (finish_update_cost_records) Likewise.
8272         (initiate_cost_update) Likewise.
8273
8274 2015-06-01  Martin Liska  <mliska@suse.cz>
8275
8276         * lra.c (init_insn_regs): Use new type-based pool allocator.
8277         (new_insn_reg) Likewise.
8278         (free_insn_reg) Likewise.
8279         (free_insn_regs) Likewise.
8280         (finish_insn_regs) Likewise.
8281         (init_insn_recog_data) Likewise.
8282         (init_reg_info) Likewise.
8283         (finish_reg_info) Likewise.
8284         (lra_free_copies) Likewise.
8285         (lra_create_copy) Likewise.
8286         (invalidate_insn_data_regno_info) Likewise.
8287
8288 2015-06-01  Martin Liska  <mliska@suse.cz>
8289
8290         * lra-lives.c (free_live_range): Use new type-based pool allocator.
8291         (free_live_range_list) Likewise.
8292         (create_live_range) Likewise.
8293         (copy_live_range) Likewise.
8294         (lra_merge_live_ranges) Likewise.
8295         (remove_some_program_points_and_update_live_ranges) Likewise.
8296         (lra_live_ranges_init) Likewise.
8297         (lra_live_ranges_finish) Likewise.
8298
8299 2015-06-01  Martin Liska  <mliska@suse.cz>
8300
8301         * et-forest.c (et_new_occ): Use new type-based pool allocator.
8302         (et_new_tree): Likewise.
8303         (et_free_tree): Likewise.
8304         (et_free_tree_force): Likewise.
8305         (et_free_pools): Likewise.
8306         (et_split): Likewise.
8307
8308 2015-06-01  Martin Liska  <mliska@suse.cz>
8309
8310         * alloc-pool.c (struct alloc_pool_descriptor): Move definition
8311         to header file.
8312         * alloc-pool.h (pool_allocator::pool_allocator): New function.
8313         (pool_allocator::release): Likewise.
8314         (inline pool_allocator::release_if_empty): Likewise.
8315         (inline pool_allocator::~pool_allocator): Likewise.
8316         (pool_allocator::allocate): Likewise.
8317         (pool_allocator::remove): Likewise.
8318
8319 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
8320
8321         * sched-deps.c (sched_analyze_2): Replace fuseable with fusible
8322         in comment.
8323
8324 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
8325
8326         * gcc/config/arm/arm-protos.h (tune_params): Rename fuseable_ops
8327         to fusible_ops.
8328         * gcc/config/arm/arm.c (arm_print_tune_info): Likewise.
8329         (arm_macro_fusion_p): Likewise.
8330         (arm_macro_fusion_pair_p): Likewise.
8331
8332 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
8333
8334         * config/aarch64/aarch64-protos.h (tune_params): Rename
8335         fuseable_ops to fusible_ops.
8336         * config/aarch64/aarch64.c (generic_tunings): Rename
8337         fuseable_ops to fusible_ops.
8338         (cortexa53_tunings): Likewise.
8339         (cortexa57_tunings): Likewise.
8340         (thunderx_tunings): Likewise.
8341         (xgene1_tunings): Likewise.
8342         (aarch64_macro_fusion_p): Likewise.
8343         (aarch64_macro_fusion_pair_p): Likewise.
8344
8345 2015-06-01  Dominik Vogt  <vogt@linux.vnet.ibm.com>
8346
8347         * config/s390/driver-native.c: New file.
8348         * config/s390/x-native: New file.
8349         * config.host: Add new files for s390.
8350         * config/s390/s390.h (DRIVER_SELF_SPECS): Add support for -mtune=native
8351         and -march=native
8352         * config.gcc: Likewise.
8353         * config/s390/s390.opt (march): Likewise; add PROCESSOR_NATIVE
8354         * config/s390/s390-opts.h (enum processor_type): Ditto.
8355         * config/s390/s390.c (s390_option_override): Catch unhandled
8356         PROCESSOR_NATIVE
8357
8358 2015-06-01  Ilya Enkovich  <ilya.enkovich@intel.com>
8359
8360         PR target/65527
8361         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Add
8362         redirection for instrumented calls.
8363         * lto-wrapper.c (merge_and_complain): Merge -fcheck-pointer-bounds.
8364         (append_compiler_options): Append -fcheck-pointer-bounds.
8365         * tree-chkp.h (chkp_copy_call_skip_bounds): New.
8366         (chkp_redirect_edge): New.
8367         * tree-chkp.c (chkp_copy_call_skip_bounds): New.
8368         (chkp_redirect_edge): New.
8369
8370 2015-06-01  Richard Biener  <rguenther@suse.de>
8371
8372         PR tree-optimization/66280
8373         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Fix pattern
8374         def-use walking.
8375
8376 2015-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8377
8378         * config/aarch64/aarch64.md
8379         (*<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Change type to
8380         logic_shift_imm.
8381
8382 2015-06-01  Eric Botcazou  <ebotcazou@adacore.com>
8383
8384         * config/i386/winnt.c (i386_pe_encode_section_info) <FUNCTION_DECL>:
8385         Remove obsolete kludge.
8386
8387 2015-06-01  Richard Biener  <rguenther@suse.de>
8388
8389         * tree-ssa-reassoc.c (get_rank): Simplify.
8390
8391 2015-05-31  H.J. Lu  <hongjiu.lu@intel.com>
8392
8393         * configure.ac (NO_PIE_CFLAGS): Check CXXFLAGS instead of CFLAGS.
8394         * configure: Regenerated.
8395
8396 2015-05-31  Mikhail Maltsev  <maltsevm@gmail.com>
8397
8398         * config/cris/cris.h (CRIS_ARCH_CPP_DEFAULT): Fix C++11 compatibility
8399         issue (add space between string literal and macro).
8400         * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Likewise.
8401
8402 2015-05-30  Andreas Schwab  <schwab@linux-m68k.org>
8403
8404         * config/m68k/m68k.h (ASM_PCREL_SPEC): Pass --pcrel also for
8405         implict or explicit -fPIE or -fpie.
8406
8407 2015-05-30  Mike Frysinger  <vapier@gentoo.org>
8408
8409         * gcc/config/alpha/elf.h (ASM_SPEC): Add %{mcpu=*:-m%*}.
8410
8411 2015-05-28  DJ Delorie  <dj@redhat.com>
8412
8413         * expmed.c (extract_bit_field_1): Avoid clobbering a
8414         yet-to-be-used base/index register.
8415
8416 2015-05-30  Jan Hubicka  <hubicka@ucw.cz>
8417
8418         * alias.c (alias_set_entry_d): Add is_pointer and has_pointer.
8419         (alias_stats): Add num_universal.
8420         (alias_set_subset_of): Special case pointers; be ready for NULL
8421         children.
8422         (alias_sets_conflict_p): Special case pointers; be ready for NULL
8423         children.
8424         (init_alias_set_entry): Break out from ...
8425         (record_alias_subset): ... here; propagate new fields;
8426         allocate children only when really needed.
8427         (get_alias_set): Do less generous pointer globbing.
8428         (dump_alias_stats_in_alias_c): Update statistics.
8429
8430 2015-05-30  Alan Modra  <amodra@gmail.com>
8431
8432         * config/rs6000/rs6000.c (split_stack_arg_pointer_used_p): Scan
8433         correct block for use of r12.
8434         (rs6000_expand_split_stack_prologue): Error on r29 asm global reg.
8435
8436 2015-05-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
8437
8438         PR target/66215
8439         * config/s390/s390.c (s390_reorg): Fix placement of post-label NOPs
8440         with -mhotpatch=.
8441
8442 2015-05-29  Jakub Jelinek  <jakub@redhat.com>
8443
8444         PR tree-optimization/66142
8445         * tree-if-conv.c (if_convertible_phi_p): Don't give up on
8446         virtual phis that feed themselves.
8447
8448 2015-05-29  Richard Biener  <rguenther@suse.de>
8449
8450         PR tree-optimization/66314
8451         * tree-ssa-threadupdate.c (create_block_for_threading): Add
8452         parameter that says which loop the new block belongs to.
8453         (ssa_create_duplicates): Blocks duplicated for the threaded
8454         path belong to the loop of the thread destination.
8455
8456 2015-05-29  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
8457
8458         * config/arm/neon-testgen.ml (emit_epilogue): Remove manual call
8459         to cleanup-saved-temps.
8460         * doc/sourcebuild.texi (Clean up generated test files): Expand
8461         introduction.
8462         (dg-keep-saved-temps): Document new proc.
8463         (cleanup-ipa-dump, cleanup-rtl-dump, cleanup-tree-dump,
8464         cleanup-saved-temps): Remove.
8465
8466 2015-05-28  Andreas Tobler  <andreast@gcc.gnu.org>
8467
8468         * configure.ac: Move the atoll check from AC_CHECK_FUNCS to
8469         gcc_AC_CHECK_DECLS.
8470         * configure: Regenerate.
8471
8472 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
8473
8474         * config/nios2/linux.h (CPP_SPEC): Define.
8475
8476 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
8477
8478         * config/microblaze/linux.h (CPP_SPEC): Define.
8479
8480 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
8481
8482         * config/pa/pa-linux.h (CPP_SPEC): Change so -D_REENTRANT is used when
8483         -pthread is specified.
8484
8485 2015-05-28  Richard Biener  <rguenther@suse.de>
8486
8487         * tree-vect-loop.c (vect_fixup_reduc_chain): New function.
8488         (vect_fixup_scalar_cycles_with_patterns): Likewise.
8489         (vect_analyze_loop_2): Call vect_fixup_scalar_cycles_with_patterns
8490         after pattern recog.
8491         (vect_create_epilog_for_reduction): Properly handle reductions
8492         with patterns.
8493         (vectorizable_reduction): Likewise.
8494         * tree-vect-slp.c (vect_analyze_slp_instance): Properly mark
8495         reduction chains.
8496         (vect_get_constant_vectors): Create the correct number of
8497         initial values for reductions.
8498         (vect_schedule_slp_instance): Handle reduction chains that are
8499         type changing properly.
8500         * tree-vect-stmts.c (vect_analyze_stmt): Adjust.
8501
8502 2015-05-28  Richard Biener  <rguenther@suse.de>
8503
8504         PR tree-optimization/66142
8505         * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle non-GIMPLE
8506         values better in memcpy destination handling.  Handle non-aliasing
8507         we discover here.
8508
8509 2015-05-28  Lawrence Velázquez  <vq@larryv.me>
8510
8511         PR target/63810
8512         * config/darwin-c.c (version_components): New global enum.
8513         (parse_version, version_as_legacy_macro)
8514         (version_as_modern_macro, macosx_version_as_macro): New functions.
8515         (version_as_macro): Remove.
8516         (darwin_cpp_builtins): Use new function.
8517
8518 2015-05-28  H.J. Lu  <hongjiu.lu@intel.com>
8519
8520         * builtins.c (expand_builtin_acc_on_device): Mark parameters
8521         with ATTRIBUTE_UNUSED.
8522
8523 2015-05-28  Julian Brown  <julian@codesourcery.com>
8524
8525         PR libgomp/65742
8526
8527         * builtins.c (expand_builtin_acc_on_device): Don't use open-coded
8528         sequence for !ACCEL_COMPILER.
8529
8530 2015-05-28  Nick Clifton  <nickc@redhat.com>
8531
8532         * config/rx/rx.c (push_regs): New function.  Extracts code from...
8533         (rx_expand_prologue): ... here.  Use push_regs to push even small
8534         spans of registers.
8535         (pop_regs): New function.
8536         (rx_expand_epilogue):  Use pop_regs to pop even small spans of
8537         registers.
8538
8539 2015-05-28  Richard Biener  <rguenther@suse.de>
8540
8541         * tree-vectorizer.h (struct _slp_instance): Remove body_cost_vec
8542         member.
8543         (SLP_INSTANCE_BODY_COST_VEC): Remove.
8544         (vect_update_slp_costs_according_to_vf): Likewise.
8545         (vect_slp_analyze_operations): Update prototype.
8546         * tree-vect-loop.c (vect_analyze_loop_2): Remove call to
8547         vect_update_slp_costs_according_to_vf, adjust.
8548         * tree-vect-slp.c (vect_free_slp_instance): Adjust.
8549         (vect_analyze_slp_cost_1): Likewise.
8550         (vect_analyze_slp_cost): Likewise.  Properly deal with
8551         widening reduction ops.  Commit body costs.
8552         (vect_analyze_slp_instance): Adjust.  Do not analyze SLP
8553         cost for loops from here.
8554         (vect_slp_analyze_operations): But do it from here when
8555         the vectorization factor is known and stmts are analyzed.
8556         (vect_bb_vectorization_profitable_p): Simplify.
8557         (vect_slp_analyze_bb_1): Do not compute SLP cost here.
8558         (vect_update_slp_costs_according_to_vf): Remove.
8559
8560 2015-05-27  Magnus Granberg  <zorry@gentoo.org>
8561             H.J. Lu  <hongjiu.lu@intel.com>
8562
8563         * Makefile.in (COMPILER): Add @NO_PIE_CFLAGS@.
8564         (BUILD_CFLAGS): Likewise.
8565         (BUILD_CXXFLAGS): Likewise.
8566         (LINKER): Add @NO_PIE_FLAG@.
8567         (BUILD_LDFLAGS): Likewise.
8568         (libgcc.mvars): Set NO_PIE_CFLAGS to -fno-PIE for
8569         --enable-default-pie.
8570         * common.opt (fPIE): Initialize to -1.
8571         (fpie): Likewise.
8572         (no-pie): New option.
8573         (pie): Replace "Negative(shared)" with "Negative(no-pie)".
8574         * configure.ac: Add --enable-default-pie.
8575         (NO_PIE_CFLAGS): New.  Check if -fno-PIE works.  AC_SUBST.
8576         (NO_PIE_FLAG): New.  Check if -no-pie works.  AC_SUBST.
8577         * defaults.h (DEFAULT_FLAG_PIE): New.  Default PIE to -fPIE.
8578         * gcc.c (NO_PIE_SPEC): New.
8579         (PIE_SPEC): Likewise.
8580         (NO_FPIE1_SPEC): Likewise.
8581         (FPIE1_SPEC): Likewise.
8582         (NO_FPIE2_SPEC): Likewise.
8583         (FPIE2_SPEC): Likewise.
8584         (NO_FPIE2_SPEC): Likewise.
8585         (FPIE_SPEC): Likewise.
8586         (NO_FPIE_SPEC): Likewise.
8587         (NO_FPIC1_SPEC): Likewise.
8588         (FPIC1_SPEC): Likewise.
8589         (NO_FPIC2_SPEC): Likewise.
8590         (FPIC2_SPEC): Likewise.
8591         (NO_FPIC2_SPEC): Likewise.
8592         (FPIC_SPEC): Likewise.
8593         (NO_FPIC_SPEC): Likewise.
8594         (NO_FPIE1_AND_FPIC1_SPEC): Likewise.
8595         (FPIE1_OR_FPIC1_SPEC): Likewise.
8596         (NO_FPIE2_AND_FPIC2_SPEC): Likewise.
8597         (FPIE2_OR_FPIC2_SPEC): Likewise.
8598         (NO_FPIE_AND_FPIC_SPEC): Likewise.
8599         (FPIE_OR_FPIC_SPEC): Likewise.
8600         (LD_PIE_SPEC): Likewise.
8601         (LINK_PIE_SPEC): Handle -no-pie.  Use PIE_SPEC and LD_PIE_SPEC.
8602         * opts.c (finish_options): Update opts->x_flag_pie if it is -1.
8603         * config/darwin.h (PIE_SPEC): Renamed to ...
8604         (DARWIN_PIE_SPEC): This.
8605         (LINK_SPEC): Replace PIE_SPEC with DARWIN_PIE_SPEC.
8606         * config/darwin9.h (PIE_SPEC): Renamed to ...
8607         (DARWIN_PIE_SPEC): This.
8608         * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Use
8609         PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
8610         * config/openbsd.h (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and
8611         FPIE2_OR_FPIC2_SPEC.
8612         * config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
8613         * config/m68k/openbsd.h (ASM_SPEC): Likewise.
8614         * gcc/config/sol2.h (ASM_PIC_SPEC): Likewise.
8615         * config/arm/freebsd.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
8616         * config/arm/netbsd-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
8617         * config/arm/semi.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
8618         * config/cris/linux.h (CRIS_ASM_SUBTARGET_SPEC): Likewise.
8619         * config/m32r/m32r.h (ASM_SPEC): Likewise.
8620         * config/m68k/uclinux.h (DRIVER_SELF_SPECS): Likewise.
8621         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
8622         * config/rs6000/sysv4.h (ASM_SPEC): Likewise.
8623         * config/sparc/freebsd.h (ASM_SPEC): Likewise.
8624         * config/sparc/linux.h (ASM_SPEC): Likewise.
8625         * config/sparc/linux64.h (ASM_SPEC): Likewise.
8626         * config/sparc/netbsd-elf.h (ASM_SPEC): Likewise.
8627         * config/sparc/openbsd64.h (ASM_SPEC): Likewise.
8628         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
8629         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
8630         * config/sparc/sparc.h (ASM_SPEC): Likewise.
8631         * config/sparc/sysv4.h (ASM_SPEC): Likewise.
8632         * config/sparc/vxworks.h (ASM_SPEC): Likewise.
8633         * config/c6x/elf-common.h (ASM_SPEC): Use NO_FPIC2_SPEC,
8634         FPIC2_SPEC, FPIC1_SPEC and FPIC2_SPEC.
8635         * config/c6x/uclinux-elf.h (LINK_SPEC): Use FPIE_SPEC.
8636         * config/frv/frv.h (DRIVER_SELF_SPECS): Use FPIC_SPEC,
8637         NO_FPIC_SPEC and NO_FPIE1_AND_FPIC1_SPEC.
8638         (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and FPIE2_OR_FPIC2_SPEC.
8639         * config/m68k/m68k.h (ASM_PCREL_SPEC): Use FPIC_SPEC and NO_FPIC_SPEC.
8640         * config/mips/gnu-user.h (NO_SHARED_SPECS): Use NO_FPIE_AND_FPIC_SPEC.
8641         * config/mips/vxworks.h (SUBTARGET_ASM_SPEC): Use FPIC_SPEC.
8642         * config/rs6000/freebsd64.h (ASM_SPEC32): Likewise.
8643         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
8644         * config/vax/linux.h (ASM_SPEC): Likewise.
8645         * doc/install.texi: Document --enable-default-pie.
8646         * doc/invoke.texi: Document -no-pie.
8647         * config.in: Regenerated.
8648         * configure: Likewise.
8649
8650 2015-05-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
8651
8652         PR rtl-optimization/66168
8653         * loop-invariant.c (move_invariant_reg): Pass dest rather than reg to
8654         can_move_invariant_reg.
8655
8656 2015-05-27  John David Anglin  <danglin@gcc.gnu.org>
8657
8658         PR target/66148
8659         * config/pa/pa.c (pa_emit_move_sequence): Correct placement of
8660         REG_EQUAL note when doing insert.
8661
8662         * config/pa/pa.c (pa_print_operand): Use HOST_WIDE_INT_PRINT_DEC
8663         instead of "%d" for 'o' operand.
8664
8665 2015-05-27  Nathan Sidwell  <nathan@acm.org>
8666
8667         PR c++/66270
8668         * tree.c (build_pointer_type_for_mode): Canonical type does not
8669         inherit can_alias_all.
8670         (build_reference_type_for_mode): Likewise.
8671
8672 2015-05-27  Eric Botcazou  <ebotcazou@adacore.com>
8673
8674         * expr.h (array_at_struct_end_p): Move to...
8675         (array_ref_element_size): Likewise.
8676         (component_ref_field_offset): Likewise.
8677         * tree.h (array_ref_element_size): ...here.
8678         (array_at_struct_end_p): Likewise.
8679         (component_ref_field_offset): Likewise.
8680         * expr.c (array_ref_element_size): Move to...
8681         (array_ref_low_bound): Likewise.
8682         (array_at_struct_end_p): Likewise.
8683         (array_ref_up_bound): Likewise.
8684         (component_ref_field_offset): Likewise.
8685         * tree.c (array_ref_element_size): ...here.
8686         (array_ref_low_bound): Likewise.
8687         (array_ref_up_bound): Likewise.
8688         (array_at_struct_end_p): Likewise.
8689         (component_ref_field_offset): Likewise.
8690
8691 2015-05-27  Gregor Richards  <gregor.richards@uwaterloo.ca>
8692             Szabolcs Nagy  <szabolcs.nagy@arm.com>
8693
8694         * config/aarch64/aarch64-linux.h (MUSL_DYNAMIC_LINKER): Define.
8695
8696 2015-05-27  Jason Merrill  <jason@redhat.com>
8697
8698         PR bootstrap/66304
8699         * configure.ac: Use ACX_PROG_CXX_WARNING_OPTS,
8700         ACX_PROG_CXX_WARNING_ALMOST_PEDANTIC, and
8701         ACX_PROG_CXX_WARNINGS_ARE_ERRORS.
8702
8703 2015-05-22  Aditya Kumar  <hiraditya@msn.com>
8704
8705         * auto-profile.c (afdo_calculate_branch_prob): Break once has_sample
8706         is true.
8707
8708         * statistics.c (statistics_fini_pass): Print pass name.
8709
8710 2015-05-27  Richard Biener  <rguenther@suse.de>
8711
8712         PR tree-optimization/66272
8713         Revert parts of
8714         2014-08-15  Richard Biener  <rguenther@suse.de>
8715
8716         PR tree-optimization/62031
8717         * tree-data-ref.c (dr_analyze_indices): Do not set
8718         DR_UNCONSTRAINED_BASE.
8719         (dr_may_alias_p): All indirect accesses have to go the
8720         formerly DR_UNCONSTRAINED_BASE path.
8721         * tree-data-ref.h (struct indices): Remove
8722         unconstrained_base member.
8723         (DR_UNCONSTRAINED_BASE): Remove.
8724
8725 2015-05-27  Aldy Hernandez  <aldyh@redhat.com>
8726
8727         * dwarf2out.c: Remove block_map.
8728         (gen_call_site_die): Replace block_map use with BLOCK_DIE.
8729         (gen_lexical_block_die): Same.
8730         (dwarf2out_function_decl): Remove block_map use.
8731         (dwarf2out_c_finalize): Same.
8732         * tree-core.h (struct tree_block): Add die field.
8733         * tree.h (BLOCK_DIE): New.
8734
8735 2015-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8736
8737         PR target/65358
8738         * expr.c (memory_load_overlap): New function.
8739         (emit_push_insn): When pushing partial args to the stack would
8740         clobber the register part load the overlapping part into a pseudo
8741         and put it into the hard reg after pushing.  Change return type
8742         to bool.  Add bool argument.
8743         * expr.h (emit_push_insn): Change return type to bool.
8744         Add bool argument.
8745         * calls.c (expand_call): Cancel sibcall optimization when encountering
8746         partial argument on targets with ARGS_GROW_DOWNWARD and
8747         !STACK_GROWS_DOWNWARD.
8748         (emit_library_call_value_1): Update callsite of emit_push_insn.
8749         (store_one_arg): Likewise.
8750
8751 2015-05-27  Gregor Richards  <gregor.richards@uwaterloo.ca>
8752
8753         * config/arm/linux-eabi.h (MUSL_DYNAMIC_LINKER): Define.
8754
8755 2015-05-27  Martin Liska  <mliska@suse.cz>
8756
8757         * Makefile.in: Add additional dependencies related to memory report
8758         enhancement.
8759         * alloc-pool.c (allocate_pool_descriptor): Use new ctor.
8760         * bitmap.c (struct bitmap_descriptor_d): Remove.
8761         (struct loc): Likewise.
8762         (struct bitmap_desc_hasher): Likewise.
8763         (bitmap_desc_hasher::hash): Likewise.
8764         (bitmap_desc_hasher::equal): Likewise.
8765         (get_bitmap_descriptor): Likewise.
8766         (bitmap_register): User new memory descriptor API.
8767         (register_overhead): Likewise.
8768         (bitmap_find_bit): Register nsearches and search_iter statistics.
8769         (struct bitmap_output_info): Remove.
8770         (print_statistics): Likewise.
8771         (dump_bitmap_statistics): Use new memory descriptor.
8772         * bitmap.h (struct bitmap_usage): New class.
8773         * genmatch.c: Extend header file inclusion.
8774         * genpreds.c: Likewise.
8775         * ggc-common.c (struct ggc_usage): New class.
8776         (struct ggc_loc_desc_hasher): Remove.
8777         (ggc_loc_desc_hasher::hash): Likewise.
8778         (ggc_loc_desc_hasher::equal): Likewise.
8779         (struct ggc_ptr_hash_entry): Likewise.
8780         (struct ptr_hash_hasher): Likewise.
8781         (ptr_hash_hasher::hash): Likewise.
8782         (ptr_hash_hasher::equal): Likewise.
8783         (make_loc_descriptor): Likewise.
8784         (ggc_prune_ptr): Likewise.
8785         (dump_ggc_loc_statistics): Use new memory descriptor.
8786         (ggc_record_overhead): Likewise.
8787         (ggc_free_overhead): Likewise.
8788         (final_cmp_statistic): Remove.
8789         (cmp_statistic): Likewise.
8790         (ggc_add_statistics): Liekwise.
8791         (ggc_prune_overhead_list): Likewise.
8792         * hash-map-traits.h: New file.
8793         * hash-map.h (struct default_hashmap_traits): Move the traits to a
8794         separate header file.
8795         * hash-set.h: Pass memory statistics info to ctor.
8796         * hash-table.c (void dump_hash_table_loc_statistics): New function.
8797         * hash-table.h (hash_table::hash_table): Add new ctor arguments.
8798         (hash_table::~hash_table): Register memory release operation.
8799         (hash_table::alloc_entries): Handle memory allocation operation.
8800         (hash_table::expand): Likewise.
8801         * inchash.c (iterative_hash_hashval_t): Move implementation to header
8802         file.
8803         (iterative_hash_host_wide_int): Likewise.
8804         * inchash.h (class hash): Likewise.
8805         * mem-stats-traits.h: New file.
8806         * mem-stats.h: New file.
8807         (mem_location): Add new class.
8808         (mem_usage): Likewise.
8809         (mem_alloc_description): Likewise.
8810         * sese.c: Add new header file inclusision.
8811         * toplev.c (dump_memory_report): Add report for hash_table, hash_map
8812         and hash_set.
8813         * tree-sra.c: Add new header file inclusision.
8814         * vec.c (struct vec_descriptor): Remove.
8815         (hash_descriptor): Likewise.
8816         (struct vec_usage): Likewise.
8817         (struct ptr_hash_entry): Likewise.
8818         (hash_ptr): Likewise.
8819         (eq_ptr): Likewise.
8820         (vec_prefix::register_overhead): Use new memory descriptor API.
8821         (vec_prefix::release_overhead): Likewise.
8822         (add_statistics): Remove.
8823         (dump_vec_loc_statistics): Use new memory descriptor API.
8824         * vec.h (struct vec_prefix): Likewise.
8825         (va_heap::reserve): Likewise.
8826         (va_heap::release): Likewise.
8827         * emit-rtl.c (gen_raw_REG): Fix passing MEM_STAT.
8828
8829 2015-05-27  Richard Biener  <rguenther@suse.de>
8830
8831         * tree-vect-stmts.c (vectorizable_load): Initialize slp_perm
8832         earlier and remove ??? comment.
8833         (vect_analyze_stmt): If we are analyzing a pure SLP stmt
8834         and got called from loop analysis bail out.  Always pass the SLP
8835         node to the vectorizable_* functions.
8836         * tree-vect-loop.c (vect_analyze_loop_operations): Remove
8837         the premature SLP check here.
8838         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Dump hybrid
8839         detected SLP stmts.
8840         (vect_detect_hybrid_slp_1): Likewise.
8841
8842 2015-05-26  Jeff Law  <law@redhat.com>
8843
8844         * combine.c (find_split_point): Verify that the shift count is a
8845         constant when choosing (plus (ashift ...)) as a split point.
8846
8847         * tree-ssa-threadupdate.c: Replace 8 space sequences with tabs.
8848         No functional changes.
8849
8850 2015-05-26  Jan Hubicka  <hubicka@ucw.cz>
8851
8852         * ipa-polymorphic-call.c
8853         (ipa_polymorphic_call_context::get_dynamic_type): Short circuit the
8854         case when call target is already known.
8855
8856 2015-05-26  Oleg Endo  <olegendo@gcc.gnu.org>
8857
8858         PR target/65979
8859         * config/sh/sh.md (tstsi_t peephole2): Use gen_rtx_SET and
8860         take into account the case that operands[1] and operands[2]
8861         are the same register.
8862
8863 2015-05-26  Michael Matz  <matz@suse.de>
8864
8865         PR middle-end/66251
8866
8867         * tree-vect-stmts.c (vect_model_store_cost): Handled strided group
8868         stores.
8869         (vect_create_vectorized_demotion_stmts): Always set
8870         STMT_VINFO_VEC_STMT, also with SLP.
8871         (vectorizable_store): Handle strided group stores.
8872
8873 2015-05-26  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
8874
8875         PR target/66049
8876         * config/aarch64/aarch64.md
8877         (*adds_shift_imm_<mode>):  New pattern.
8878         (*subs_shift_imm_<mode>):  Likewise.
8879         (*adds_<optab><ALLX:mode>_shift_<GPI:mode>):  Likewise.
8880         (*subs_<optab><ALLX:mode>_shift_<GPI:mode>): Likewise.
8881         (*add_uxt<mode>_shift2): Likewise.
8882         (*add_uxtsi_shift2_uxtw): Likewise.
8883         (*sub_uxt<mode>_shift2): Likewise.
8884         (*sub_uxtsi_shift2_uxtw): Likewise.
8885
8886 2015-05-26  David Edelsohn  <dje.gcc@gmail.com>
8887
8888         * config/rs6000/constraints.md (Y, U): Use match_test.
8889
8890 2015-05-26  Christian Bruel  <christian.bruel@st.com>
8891
8892         PR target/52144
8893         * config/arm/arm.c (arm_option_check_internal)
8894         (arm_option_params_internal): Check opts->target_flags to set macros.
8895         (TREE_TARGET_ARM, TREE_TARGET_THUMB)
8896         (TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Replace with...
8897         (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
8898         (builtin_define): Replaced with def_or_undef_macro.
8899         * config/arm/arm.h (TREE_TARGET_ARM, TREE_TARGET_THUMB)
8900         TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Redefine with...
8901         (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
8902         (TARGET_32BIT_P, TARGET_ARM_QBIT_P, TARGET_ARM_SAT_P, TARGET_IDIV_P)
8903         (TARGET_HAVE_LDREX_P, TARGET_HAVE_LDREXBH_P, TARGET_HAVE_LDREXD_P)
8904         (TARGET_ARM_FEATURE_LDREX_P)
8905         (TARGET_DSP_MULTIPLY_P, TARGET_INT_SIMD_P): New macros.
8906         * config/arm/arm-c.c (def_or_undef_macro): New function.
8907         (arm_cpu_cpp_builtins): Use def_or_undef_macro for macros definition.
8908
8909 2015-05-26  Christian Bruel  <christian.bruel@st.com>
8910
8911         * c-common.h (builtin_define_with_int_value)
8912         (builtin_define_type_sizeof): Declare.
8913         * c-cppbuiltin.c (builtin_define_with_int_value)
8914         (builtin_define_type_sizeof): Externalize.
8915         (builtin_define_std): Cleanup declaration.
8916         * config/arm/arm-protos.h (arm_cpu_cpp_builtins): Declare.
8917         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Move macro defines into...
8918         * config/arm/arm-c.c (arm_cpu_cpp_builtins): New function.
8919         (builtin_define, builtin_assert): New macros.
8920
8921 2015-05-26  Richard Biener  <rguenther@suse.de>
8922
8923         PR tree-optimization/66142
8924         * tree-ssa-sccvn.c (vn_reference_lookup_3): Manually compare
8925         MEM_REFs for the same base address.
8926
8927 2015-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8928
8929         PR ipa/66181
8930         * tree.c (verify_type_variant): Do not check TYPE_NO_FORCE_BLK.
8931
8932 2015-05-26  Jason Merrill  <jason@redhat.com>
8933
8934         * configure.ac: Set CXXFLAGS for ISL test.
8935         * configure: Regenerate.
8936
8937         * configure.ac: Use C++ for all tests.  Use AC_CHECK_DECLS for
8938         strstr and basename.
8939         * configure: Regenerate.
8940
8941 2015-05-26  Richard Biener  <rguenther@suse.de>
8942
8943         * fold-const.c (fold_binary_loc): Move X % -Y -> X % Y and
8944         X % C -> X & (C - 1) for C being a power-of two to ...
8945         * match.pd: ... patterns.
8946
8947 2015-05-26  Marc Glisse  <marc.glisse@inria.fr>
8948
8949         * match.pd (swapped_tcc_comparison): New operator list.
8950         (-A CMP -B): New simplification.
8951         * fold-const.c (fold_comparison): Remove corresponding code.
8952
8953 2015-05-26  Richard Sandiford  <richard.sandiford@arm.com>
8954
8955         * caller-save.c (init_caller_save): Base temporary register numbers
8956         on LAST_VIRTUAL_REGISTER + 1 rather than FIRST_PSEUDO_REGISTER.
8957         * cfgloopanal.c (init_set_costs): Likewise.
8958         * dojump.c (prefer_and_bit_test): Likewise.
8959         * expr.c (init_expr_target): Likewise.
8960         * ira.c (setup_prohibited_mode_move_regs): Likewise.
8961         * lower-subreg.c (init_lower_subreg): Likewise.
8962         * postreload.c (reload_cse_regs_1): Likewise.
8963
8964 2015-05-26  Richard Sandiford  <richard.sandiford@arm.com>
8965
8966         * gensupport.h (compute_test_codes): Declare.
8967         * gensupport.c (compute_predicate_codes): Rename to...
8968         (compute_test_codes): ...this.  Generalize error message.
8969         (process_define_predicate): Update accordingly.
8970         * genpreds.c (compute_maybe_allows): Delete.
8971         (add_constraint): Use compute_test_codes to determine whether
8972         something can accept a SUBREG, REG or MEM.
8973
8974 2015-05-26  Torvald Riegel  <triegel@redhat.com>
8975
8976         * doc/extend.texi (__atomic Builtins): Use 'memory order' instead of
8977         'memory model' to align with C++11; fix description of memory orders;
8978         fix a few typos.
8979
8980 2015-05-26  Richard Biener  <rguenther@suse.de>
8981
8982         * tree-vect-loop.c (vect_update_vf_for_slp): Split out from ...
8983         (vect_analyze_loop_operations): ... here.  Remove slp parameter,
8984         detect whether we apply SLP.  Remove call to
8985         vect_update_slp_costs_according_to_vf.
8986         (vect_analyze_loop_2): Call vect_update_vf_for_slp and
8987         vect_update_slp_costs_according_to_vf from here.  Dispatch
8988         to vect_slp_analyze_operations to analyze SLP stmts.
8989         * tree-vect-slp.c (vect_slp_analyze_node_operations): Drop
8990         unused bb_vec_info parameter, adjust assert.
8991         (vect_slp_analyze_operations): Pass in the slp instance tree
8992         instead of bb_vec_info.
8993         (vect_slp_analyze_bb_1): Adjust call to vect_slp_analyze_operations.
8994         * tree-vectorizer.h (vect_slp_analyze_operations): Declare.
8995
8996 2015-05-25  Alexander Monakov  <amonakov@ispras.ru>
8997
8998         * config/i386/i386.h (enum reg_class): Move CLOBBERED_REGS prior to
8999         Q_REGS.  Expand comment.
9000         (REG_CLASS_NAMES): Ditto.
9001         (REG_CLASS_CONTENTS): Ditto.
9002
9003 2015-05-25  Uros Bizjak  <ubizjak@gmail.com>
9004
9005         PR target/66274
9006         * config/i386/i386.c (print_reg): Only print "r" for TARGET_64BIT
9007         when LEGACY_INT_REGNO_P is processed.
9008
9009 2015-05-25  Alexander Monakov  <amonakov@ispras.ru>
9010
9011         * config/i386/i386.c (ix86_function_ok_for_sibcall): Check flag_plt.
9012
9013 2015-05-25  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
9014
9015         * config/avr/avr.c (avr_out_load_psi_reg_no_disp_tiny): Restore base
9016         register if not marked dead/unused, before return.
9017
9018 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
9019
9020         PR lto/66180
9021         * ipa-devirt.c (type_with_linkage): Check that TYPE_STUB_DECL
9022         is set; check for assembler name at LTO time.
9023         (type_in_anonymous_namespace): Remove hacks, check that all
9024         anonymous types are called "<anon>"
9025         (odr_type_p): Simplify; add check for "<anon>"
9026         (odr_subtypes_equivalent): Add odr_type_p check.
9027         * tree.c (need_assembler_name_p): Even anonymous namespace needs
9028         assembler name.
9029
9030 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
9031
9032         * ipa-utils.h (method_class_type): Remove.
9033         * cgraphunit.c (walk_polymorphic_call_targets): Use
9034         TYPE_METHOD_BASETYPE.
9035         * ipa-devirt.c (type_in_anonymous_namespace_p): Check that it is called
9036         on main variants only.
9037         (method_class_type): Remove.
9038         (update_type_inheritance_graph): Use TYPE_METHOD_BASETYPE.
9039         (build_type_inheritance_graph): Likewise.
9040         * ipa-icf.c (sem_function::equals_wpa): Likewise.
9041         * pa-polymorphic-call.c (decl_maybe_in_construction_p,
9042         check_stmt_for_type_change): Use TYPE_METHOD_BASETYPE.
9043
9044 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
9045
9046         * tree.c (prototype_p, virtual_method_call_p, obj_type_ref_class,
9047         is_typedef_decl, typedef_variant_p): Constify.
9048         * tree.h (prototype_p, virtual_method_call_p, obj_type_ref_class,
9049         is_typedef_decl, typedef_variant_p): Constify.
9050
9051 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9052
9053         * defaults.h (gen_tablejump): New function.
9054         (HAVE_tablejump): Add default value.
9055         * expr.c: Adjust.
9056         * stmt.c: Likewise.
9057
9058 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9059
9060         * defaults.h (gen_store_multiple): New function.
9061         (HAVE_store_multiple): Add default value.
9062         * expr.c (move_block_from_reg): Adjust.
9063
9064 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9065
9066         * defaults.h (gen_load_multiple): New function.
9067         (HAVE_load_multiple): Add default value.
9068         * expr.c (move_block_to_reg): Adjust.
9069
9070 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9071
9072         * defaults.h (gen_mem_signal_fence): New function.
9073         (HAVE_mem_signal_fence): Add default value.
9074         * optabs.c: Adjust.
9075
9076 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9077
9078         * defaults.h (gen_memory_barrier): New function.
9079         (HAVE_memory_barrier): Add default value.
9080         * optabs.c: Adjust.
9081
9082 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9083
9084         * defaults.h (gen_mem_thread_fence): New function.
9085         (HAVE_mem_thread_fence): Add default definition.
9086         * optabs.c: Adjust.
9087
9088 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9089
9090         * combine.c (find_split_point): Check the value of HAVE_lo_sum
9091         instead of if it is defined.
9092         (combine_simplify_rtx): Likewise.
9093         * lra-constraints.c (process_address_1): Likewise.
9094         * config/darwin.c: Adjust.
9095         * genconfig.c (main): Always define HAVE_lo_sum.
9096
9097 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
9098
9099         * genmatch.c (parser::parse_operation): Reject expanding
9100         operator-list inside 'for'.
9101
9102 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
9103
9104         * genmatch.c (parser::parse_for): Reject iterator if used as
9105         operator-list.
9106
9107 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
9108
9109         * genmatch.c (parser::parse_operator_list): Check for CPP_CLOSE_PAREN
9110         after end of id-list.
9111
9112 2015-05-22  Jan Hubicka  <hubicka@ucw.cz>
9113
9114         * tree.c (gimple_canonical_types_compatible_p): Sanity check that
9115         we do not try to compute canonical type for type that does not need
9116         alias set.
9117         (verify_type): Drop FIXME for METHOD_TYPE, update FIXME for
9118         FUNCITON_TYPE.
9119         * tree.h (type_with_alias_set_p): New.
9120
9121 2015-05-22  Jan Hubicka  <hubicka@ucw.cz>
9122
9123         * tree.c (gimple_canonical_types_compatible_p):  Do not compare
9124         function attributes.
9125         (verify_type): Remove METHOD_TYPE FIXME; update FUNCTION_TYPE.
9126
9127 2015-05-22  Jim Wilson  <jim.wilson@linaro.org>
9128
9129         * Makefile.in (check_gcc_parallelize): Delete.
9130         (lang_checks_parallelized): Update comment.
9131
9132 2015-05-22  Mikhail Maltsev  <maltsevm@gmail.com>
9133
9134         PR rtl-optimization/66237
9135         * bb-reorder.c (fix_crossing_conditional_branches): Fix wrong
9136         location of an "as_a" cast.
9137
9138 2015-05-22  Jeff Law  <law@redhat.com>
9139
9140         * config/pa/pa.md (non-canonical shift-add insns): Remove.
9141         (peepholes with non-canonical RTL sources): Remove.
9142         (peepholes for indexed stores of FP regs in integer modes): Match and
9143         generate canonical RTL.
9144
9145 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
9146
9147         PR tree-optimization/63387
9148         * match.pd ((X /[ex] A) * A -> X): Remove unnecessary condition.
9149         ((x ord x) & (y ord y) -> (x ord y),
9150         (x ord x) & (x ord y) -> (x ord y)): New simplifications.
9151         * fold-const.c (tree_unary_nonnegative_warnv_p) <ABS_EXPR>: Handle
9152         vectors like scalars.
9153
9154 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
9155
9156         * convert.c (convert_to_integer, convert_to_vector): Include the
9157         types in the error message.
9158
9159 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
9160
9161         * match.pd ((x | y) & ~x -> y & ~x, (x & y) | ~x -> y | ~x): New
9162         simplifications.
9163
9164 2015-05-22  Jeff Law  <law@redhat.com>
9165
9166         * config/pa/pa.md (integer_indexed_store splitters): Use
9167         mem_shadd_operand.  Use ASHIFT rather than MULT in the resulting
9168         insns -- adjusting the constant 2nd operand accordingly.
9169
9170         * combine.c (try_combine): Canonicalize (plus (mult X pow2) Y) into
9171         (plus (ashift X log2) Y) if it is a split point.
9172
9173         * config/pa/pa.c (mem_shadd_or_shadd_rtx_p): New function factoredx
9174         out of hppa_legitimize_address to handle both forms of a multiply
9175         by 2, 4 or 8.
9176         (hppa_legitimize_address): Use mem_shadd_or_shadd_rtx_p.
9177         Always generate the ASHIFT variant as the result is not directly
9178         used in a MEM.  Update comments and refactor slightly to improve
9179         readability.
9180
9181 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9182
9183         PR target/65491
9184         * config/aarch64/aarch64.c (aarch64_short_vector_p): Move above
9185         aarch64_composite_type_p.  Remove check for aarch64_composite_type_p.
9186         (aarch64_composite_type_p): Return false if given type and mode are
9187         for a short vector.
9188
9189 2015-05-22  Richard Biener  <rguenther@suse.de>
9190
9191         * tree-vectorizer.h (struct _slp_oprnd_info): Add second_pattern
9192         member.
9193         * tree-vect-loop.c (vect_analyze_loop_operations): Look at
9194         patterns when determining whether SLP is pure.
9195         (vect_is_slp_reduction): Remove check for pattern stmts.
9196         (vect_is_simple_reduction_1): Remove dead code.
9197         * tree-vect-slp.c (vect_create_oprnd_info): Initialize second_pattern.
9198         (vect_get_and_check_slp_defs): Pass in the stmt number.
9199         Allow the first def in a reduction to be not a pattern stmt when
9200         the rest of the stmts def are patterns.
9201         (vect_build_slp_tree_1): Allow tcc_expression codes like
9202         SAD_EXPR and DOT_PROD_EXPR.
9203         (vect_build_slp_tree): Adjust.
9204         (vect_analyze_slp): Refactor and move BB vect error message ...
9205         (vect_slp_analyze_bb_1): ... here.
9206
9207 2015-05-22  Aldy Hernandez  <aldyh@redhat.com>
9208
9209         * tree-switch-conversion.c (build_one_array): Set DECL_IGNORED_P
9210         for CSWTCH temporary.
9211
9212 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9213
9214         * config/arm/arm.c (arm_new_rtx_costs): Handle UNSPEC_VOLATILE.
9215         (arm_unspec_cost): Allow UNSPEC_VOLATILE.  Do not recurse inside
9216         unknown unspecs.
9217
9218 2015-05-22  Richard Biener  <rguenther@suse.de>
9219
9220         PR tree-optimization/66251
9221         * tree-vect-stmts.c (vectorizable_conversion): Properly
9222         set STMT_VINFO_VEC_STMT even for the SLP case.
9223
9224 2015-05-22  Marek Polacek  <polacek@redhat.com>
9225
9226         * doc/extend.texi: Use @pxref instead of @xref.
9227
9228 2015-05-22  hiraditya  <hiraditya@msn.com>
9229
9230         * gimple.h (gimple_expr_type): Refactor to make it concise. Remove
9231         redundant if.
9232
9233 2015-05-22  Richard Biener  <rguenther@suse.de>
9234
9235         PR tree-optimization/65701
9236         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
9237         Move peeling cost models into one place.  Peel for alignment
9238         for single loads only if an aligned load is cheaper than
9239         an unaligned load.
9240
9241 2015-05-22  Marek Polacek  <polacek@redhat.com>
9242
9243         PR c/47043
9244         * doc/extend.texi (Enumerator Attributes): New section.
9245         Document syntax of enumerator attributes.
9246
9247 2015-05-22  Richard Biener  <rguenther@suse.de>
9248
9249         * tree-vect-loop.c (get_reduction_op): New function.
9250         (vect_model_reduction_cost): Use it, add reduc_index parameter.
9251         Make ready for BB reductions.
9252         (vect_create_epilog_for_reduction): Use get_reduction_op.
9253         (vectorizable_reduction): Init reduc_index to a valid value.
9254         Adjust vect_model_reduction_cost call.
9255         * tree-vect-slp.c (vect_get_constant_vectors): Use the proper
9256         operand for reduction defaults.  Add SAD_EXPR support.
9257         Assert we have a neutral op for SLP reductions.
9258         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): When
9259         walking pattern stmt ops only recurse to SSA names.
9260
9261 2015-05-22  Richard Biener  <rguenther@suse.de>
9262
9263         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Replace
9264         assert with guard, remove check on detected reduction.
9265         (vect_recog_sad_pattern): Likewise.
9266         (vect_recog_widen_sum_pattern): Likewise.
9267
9268 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9269
9270         * config/aarch64/arm_neon.h (vaeseq_u8): Add __extension__ and
9271         __always_inline__ attribute.
9272         (vaesdq_u8): Likewise.
9273         (vaesmcq_u8): Likewise.
9274         (vaesimcq_u8): Likewise.
9275         (vsha1cq_u32): Likewise.
9276         (vsha1mq_u32): Likewise.
9277         (vsha1pq_u32): Likewise.
9278         (vsha1h_u32): Likewise.
9279         (vsha1su0q_u32): Likewise.
9280         (vsha1su1q_u32): Likewise.
9281         (vsha256hq_u32): Likewise.
9282         (vsha256h2q_u32): Likewise.
9283         (vsha256su0q_u32): Likewise.
9284         (vsha256su1q_u32): Likewise.
9285         (vmull_p64): Likewise.
9286         (vmull_high_p64): Likewise.
9287
9288 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9289
9290         * final.c (final_scan_insn): Don't check HAVE_peephole with the
9291         preprocessor.
9292         * output.h: Likewise.
9293         * genconfig.c (main): Alwways define HAVE_peephole.
9294         * genpeep.c: Don't emit checks of HAVE_peephole.
9295
9296 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9297
9298         * combine.c, expmed.c, expr.c, optabs.c optabs.h, toplev.c: DOn't
9299         check HAVE_conditional_move with the preprocessor.
9300
9301 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9302
9303         * genconfig.c (main): Always define HAVE_conditional_move.
9304         * combine.c, expmed.c, expr.c, ifcvt.c, optabs.c, optabs.h,
9305         toplev.c, tree-ssa-phiopt.c: Don't check if HAVE_conditional_move
9306         is defined.
9307
9308 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9309
9310         * combine.c, df-problems.c, df-scan.c, emit-rtl.c, reginfo.c,
9311         reload.c, rtlanal.c: Remove comparison of ARG_FRAME_POINTER_REGNUM
9312         and FRAME_POINTER_REGNUM with the preprocessor.
9313
9314 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9315
9316         * defaults.h: Add default for STACK_PUSH_CODE.
9317         * expr.c: Don't redefine STACK_PUSH_CODE.
9318         * recog.c: Likewise.
9319
9320 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9321
9322         * builtins.c, dwarf2cfi.c, explow.c, expr.c, recog.c,
9323         sched-deps.c: Use if instead of preprocessor checks with
9324         STACK_GROWS_DOWNWARD.
9325
9326 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9327
9328         * *.c: Check the value of STACK_GROWS_DOWNWARD rather than if it
9329         is defined.
9330         * config/**/*.h: Define STACK_GROWS_DOWNWARD to an integer.
9331         * defaults.h: Provide default for STACK_GROWS_DOWNWARD.
9332         * doc/tm.texi.in: Update references to STACK_GROWS_DOWNWARD.
9333         * doc/tm.texi: Regenerate.
9334
9335 2015-05-21  H.J. Lu  <hongjiu.lu@intel.com>
9336
9337         PR target/66232
9338         * config/i386/constraints.md (Bg): New constraint for GOT memory
9339         operand.
9340         * config/i386/i386.md (*call_got_x32): New pattern.
9341         (*call_value_got_x32): Likewise.
9342         * config/i386/predicates.md (GOT_memory_operand): New predicate.
9343
9344 2015-05-21  Jakub Jelinek  <jakub@redhat.com>
9345
9346         PR tree-optimization/66233
9347         * match.pd (ocvt (icvt@1 @0)): Don't handle vector types.
9348         Simplify.
9349
9350 2015-05-21  Jeff Law  <law@redhat.com>
9351
9352         * config/pa/pa.md (add-with-constant splitter): Use ASHIFT rather
9353         than MULT for shadd sequences.
9354
9355 2015-05-08  Jan Hubicka  <hubicka@ucw.cz>
9356
9357         * alias.c (alias_stats): New static var.
9358         (alias_sets_conflict_p, alias_sets_must_conflict_p): Update stats.
9359         (dump_alias_stats_in_alias_c): New function.
9360         * alias.h (dump_alias_stats_in_alias_c): Declare.
9361         * tree-ssa-alias.c (dump_alias_stats): Call it.
9362
9363 2015-05-08  Michael Matz  <matz@suse.de>
9364
9365         * tree-vectorizer.h (struct _stmt_vec_info): Rename stride_load_p
9366         to strided_p.
9367         (STMT_VINFO_STRIDE_LOAD_P): Rename to ...
9368         (STMT_VINFO_STRIDED_P): ... this.
9369         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust.
9370         (vect_verify_datarefs_alignment): Likewise.
9371         (vect_enhance_data_refs_alignment): Likewise.
9372         (vect_analyze_data_ref_access): Likewise.
9373         (vect_analyze_data_refs): Accept strided stores.
9374         * tree-vect-stmts.c (vect_model_store_cost): Count strided stores.
9375         (vect_model_load_cost): Adjust for macro rename.
9376         (vectorizable_mask_load_store): Likewise.
9377         (vectorizable_load): Likewise.
9378         (vectorizable_store): Open code strided stores.
9379
9380 2015-05-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9381
9382         * doc/sourcebuild.texi (7.2.3.9 Other hardware attributes):
9383         Document sqrt_insn.
9384
9385 2015-05-21  Richard Biener  <rguenther@suse.de>
9386
9387         PR c++/66211
9388         * match.pd: Guard pattern optimzing (int)(float)int
9389         conversions to apply only on GIMPLE.
9390
9391 2015-05-21  Jeff Law  <law@redhat.com>
9392
9393         * combine.c (find_split_point): Handle ASHIFT like MULT to encourage
9394         multiply-accumulate/shift-add insn generation.
9395
9396 2015-05-21  Oleg Endo  <olegendo@gcc.gnu.org>
9397
9398         PR target/54236
9399         * config/sh/sh.md (*round_int_even): Reject pattern if operands[0] and
9400         operands[1] are the same.
9401
9402 2015-05-21  Ilya Enkovich  <enkovich.gnu@gmail.com>
9403
9404         PR middle-end/66221
9405         * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Use
9406         build_distinct_type_copy to copy bounds.
9407
9408 2015-05-21  Thomas Schwinge  <thomas@codesourcery.com>
9409
9410         * genrecog.c (MAX_DEPTH, MIN_NUM_STATEMENTS, MAX_NUM_STATEMENTS):
9411         Change to unsigned int.
9412
9413 2015-05-20  Jeff Law  <law@redhat.com>
9414
9415         * config/pa/pa.c (pa_print_operand): New 'o' output modifier.
9416         (pa_mem_shadd_constant_p): Renamed from pa_shadd_constant_p.
9417         (pa_shadd_constant_p): Allow constants for shadd insns rather
9418         than valid scaling constants for memory addresses.
9419         * config/pa/pa-protos.h (pa_mem_shadd_constant_p): Add prototype.
9420         * config/pa/predicates.md (mem_shadd_operand): New predicate.
9421         * config/pa/pa.md (shift-add insns using MULT): Use mem_shadd_operand.
9422         (shift-add insns using ASHIFT): New patterns.
9423
9424 2015-05-20  Mikhail Maltsev  <maltsevm@gmail.com>
9425
9426         * bb-reorder.c (set_edge_can_fallthru_flag): Use rtx_jump_insn where
9427         feasible.
9428         (fix_up_fall_thru_edges): Likewise.
9429         (fix_crossing_conditional_branches): Likewise. Promote jump targets
9430         from to rtx_insn to rtx_code_label where feasible.
9431         * bt-load.c (move_btr_def): Remove as-a cast of the value returned by
9432         gen_move_insn (returned type changed to rtx_insn).
9433         * builtins.c (expand_errno_check): Fix arguments of
9434         do_compare_rtx_and_jump (now expects rtx_code_label).
9435         (expand_builtin_acc_on_device): Likewise.
9436         * cfgcleanup.c (try_simplify_condjump): Add cast when calling
9437         invert_jump (now exprects rtx_jump_insn).
9438         * cfgexpand.c (label_rtx_for_bb): Promote return type to rtx_code_label.
9439         (construct_init_block): Use rtx_code_label.
9440         * cfgrtl.c (block_label): Promote return type to rtx_code_label.
9441         (try_redirect_by_replacing_jump): Use cast to rtx_jump_insn when
9442         calling redirect_jump.
9443         (patch_jump_insn): Likewise.
9444         (redirect_branch_edge): Likewise.
9445         (force_nonfallthru_and_redirect): Likewise.
9446         (fixup_reorder_chain): Explicitly use rtx_jump_insn instead of rtx_insn
9447         when suitable.
9448         (rtl_lv_add_condition_to_bb): Update call of do_compare_rtx_and_jump.
9449         * cfgrtl.h: Promote return type of block_label to rtx_code_label.
9450         * config/bfin/bfin.c (hwloop_optimize): Fix call of emit_label_before.
9451         * config/i386/i386.c (ix86_emit_cmove): Explicitly use rtx_code_label
9452         to store the value retured by gen_label_rtx.
9453         * config/mips/mips.c (mips16_split_long_branches): Promote rtx_insn to
9454         rtx_jump_insn.
9455         * config/sh/sh.c (gen_far_branch): Likewise. Fix call of invert_jump.
9456         (split_branches): Fix calls of redirect_jump.
9457         * dojump.c (jumpifnot): Promote argument type from rtx to
9458         rtx_code_label.
9459         (jumpifnot_1): Likewise.
9460         (jumpif): Likewise.
9461         (jumpif_1): Likewise.
9462         (do_jump_1): Likewise.
9463         (do_jump): Likewise. Use rtx_code_label when feasible.
9464         (do_jump_by_parts_greater_rtx): Likewise.
9465         (do_jump_by_parts_zero_rtx): Likewise.
9466         (do_jump_by_parts_equality_rtx): Likewise.
9467         (do_compare_rtx_and_jump): Likewise.
9468         * dojump.h: Update function prototypes.
9469         * dse.c (emit_inc_dec_insn_before): Remove case (gen_move_insn now
9470         returns rtx_insn).
9471         * emit-rtl.c (emit_jump_insn_before_noloc): Promote return type to
9472         rtx_jump_insn.
9473         (emit_label_before): Likewise.
9474         (emit_jump_insn_after_noloc): Likewise.
9475         (emit_jump_insn_after_setloc): Likewise.
9476         (emit_jump_insn_after): Likewise
9477         (emit_jump_insn_before_setloc): Likewise.
9478         (emit_jump_insn_before): Likewise.
9479         (emit_label_before): Promote return type to rtx_code_label.
9480         (emit_label): Likewise.
9481         * except.c (sjlj_emit_dispatch_table): Use jump_target_rtx.
9482         * explow.c (emit_stack_save): Use gen_move_insn_uncast instead of
9483         gen_move_insn.
9484         (emit_stack_restore): Likewise.
9485         * expmed.c (emit_store_flag_force): Fix calls of do_compare_rtx_and_jump.
9486         (do_cmp_and_jump): Likewise.
9487         * expr.c (expand_expr_real_2): Likewise. Promote some local variables
9488         from rtx to rtx_code_label.
9489         (gen_move_insn_uncast): New function.
9490         * expr.h: Update return type of gen_move_insn (promote to rtx_insn).
9491         * function.c (convert_jumps_to_returns): Fix call of redirect_jump.
9492         * gcse.c (pre_insert_copy_insn): Use rtx_insn instead of rtx.
9493         * ifcvt.c (dead_or_predicable): Use rtx_jump_insn when calling
9494         invert_jump_1 and redirect_jump_1.
9495         * internal-fn.c (expand_arith_overflow_result_store): Fix call of
9496         do_compare_rtx_and_jump.
9497         (expand_addsub_overflow): Likewise.
9498         (expand_neg_overflow): Likewise.
9499         (expand_mul_overflow): Likewise.
9500         * ira.c (split_live_ranges_for_shrink_wrap): Use rtx_insn for
9501         return value of gen_move_insn.
9502         * jump.c (redirect_jump): Promote argument from rtx to rtx_jump_insn.
9503         * loop-doloop.c (add_test): Use rtx_code_label.
9504         (doloop_modify): Likewise.
9505         (doloop_optimize): Likewise.
9506         * loop-unroll.c (compare_and_jump_seq): Promote rtx to rtx_code_label.
9507         * lra-constraints.c (emit_spill_move): Remove cast of value returned
9508         by gen_move_insn.
9509         (inherit_reload_reg): Add cast when calling dump_insn_slim.
9510         (split_reg): Likewise.
9511         * modulo-sched.c (schedule_reg_moves): Remove cast of value returned by
9512         gen_move_insn.
9513         * optabs.c (expand_binop_directly): Remove casts of values returned by
9514         maybe_gen_insn.
9515         (expand_unop_direct): Likewise.
9516         (expand_abs): Likewise.
9517         (maybe_emit_unop_insn): Likewise.
9518         (maybe_gen_insn): Promote return type to rtx_insn.
9519         * optabs.h: Update prototype of maybe_gen_insn.
9520         * postreload-gcse.c (eliminate_partially_redundant_load): Remove
9521         redundant cast.
9522         * recog.c (struct peep2_insn_data): Promote type of insn field to
9523         rtx_insn.
9524         (peep2_reinit_state): Use NULL instead of NULL_RTX.
9525         (peep2_attempt): Remove casts of insn in peep2_insn_data.
9526         (peep2_fill_buffer): Promote argument from rtx to rtx_insn
9527         * recog.h (struct insn_gen_fn): Promote return types of function
9528         pointers and operator ().from rtx to rtx_insn.
9529         * reorg.c (fill_simple_delay_slots): Promote rtx_insn to rtx_jump_insn.
9530         (fill_eager_delay_slots): Likewise.
9531         (relax_delay_slots): Likewise.
9532         (make_return_insns): Likewise.
9533         (dbr_schedule): Likewise.
9534         (optimize_skips): Likewise.
9535         (reorg_redirect_jump): Likewise.
9536         (fill_slots_from_thread): Likewise.
9537         * reorg.h: Update prototypes.
9538         * resource.c (find_dead_or_set_registers): Use dyn_cast to
9539         rtx_jump_insn instead of check.  Use it's jump_target method.
9540         * rtl.h (rtx_jump_insn::jump_label): Define new method.
9541         (rtx_jump_insn::jump_target): Define new method.
9542         (rtx_jump_insn::set_jump_target): Define new method.
9543         * rtlanal.c (tablejump_p): Promote type of one local variable.
9544         * sched-deps.c (sched_analyze_2): Promote rtx to rtx_insn_list.
9545         (sched_analyze_insn): Likewise.
9546         * sched-vis.c (print_insn_with_notes): Promote rtx to rtx_insn.
9547         (print_insn): Likewise.
9548         * stmt.c (label_rtx): Promote return type to rtx_insn.
9549         (force_label_rtx): Likewise.
9550         (jump_target_rtx): Define new function.
9551         (expand_label): Use it, get rid of one cast.
9552         (expand_naked_return): Promote rtx to rtx_code_label.
9553         (do_jump_if_equal): Fix do_compare_rtx_and_jump call.
9554         (expand_case): Use rtx_code_label instread of rtx where feasible.
9555         (expand_sjlj_dispatch_table): Likewise.
9556         (emit_case_nodes): Likewise.
9557         * stmt.h: Declare jump_target_rtx.  Update prototypes.  Fix comments.
9558         * store-motion.c (insert_store): Make use of new return type of
9559         gen_move_insn and remove a cast.
9560         (replace_store_insn): Likewise.
9561
9562 2015-05-20  Max Filippov  <jcmvbkbc@gmail.com>
9563
9564         * config/xtensa/xtensa.c (init_alignment_context): Replace MULT
9565         by BITS_PER_UNIT with ASHIFT by exact_log2 (BITS_PER_UNIT).
9566
9567 2015-05-20  Jeff Law  <law@redhat.com>
9568
9569         * tree-ssa-threadupdate.c (mark_threaded_blocks): Properly
9570         dispose of the jump thread path when the jump threading
9571         opportunity is cancelled.
9572
9573 2015-05-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9574
9575         * diagnostic.c (diagnostic_print_caret_line): Fix off-by-one error
9576         when printing the caret character.
9577
9578 2015-05-20  Marek Polacek  <polacek@redhat.com>
9579
9580         * cfgexpand.c (expand_debug_expr): Use UNARY_CLASS_P.
9581
9582 2015-05-20  Marek Polacek  <polacek@redhat.com>
9583
9584         * expr.c (expand_cond_expr_using_cmove): Use COMPARISON_CLASS_P.
9585         * gimple-expr.c (gimple_cond_get_ops_from_tree): Likewise.
9586         * gimple-fold.c (canonicalize_bool): Likewise.
9587         (same_bool_result_p): Likewise.
9588         * tree-if-conv.c (parse_predicate): Likewise.
9589
9590 2015-05-20  Marek Polacek  <polacek@redhat.com>
9591
9592         * gimple-fold.c (fold_const_aggregate_ref_1): Use DECL_P.
9593         * gimplify.c (gimplify_modify_expr_rhs): Likewise.
9594
9595 2015-05-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9596
9597         * config/aarch64/aarch64.c (aarch64_class_max_nregs):
9598         Use UNITS_PER_VREG and UNITS_PER_WORD instead of their direct
9599         values.
9600
9601 2015-05-20  Robert Suchanek  <robert.suchanek@imgtec.com>
9602
9603         * config/mips/mips.h (micromips_globals): Declare.
9604
9605 2015-05-20  David Malcolm  <dmalcolm@redhat.com>
9606
9607         * timevar.def (TV_INITIALIZE_RTL): New.
9608         * toplev.c (initialize_rtl): Use an auto_timevar to account this
9609         function's time to TV_INITIALIZE_RTL.
9610
9611 2015-05-20  Ilya Enkovich  <enkovich.gnu@gmail.com>
9612
9613         * tree-chkp.c (chkp_maybe_copy_and_register_bounds): Remove useless
9614         gimple_build_nop calls.
9615         (chkp_find_bounds_for_elem): Likewise.
9616         (chkp_get_zero_bounds): Likewise.
9617         (chkp_get_none_bounds): Likewise.
9618         (chkp_get_bounds_by_definition): Likewise.
9619         (chkp_generate_extern_var_bounds): Likewise.
9620         (chkp_get_bounds_for_decl_addr): Likewise.
9621         (chkp_get_bounds_for_string_cst): Likewise.
9622
9623 2015-05-20  Bin Cheng  <bin.cheng@arm.com>
9624
9625         PR tree-optimization/65447
9626         * tree-ssa-loop-ivopts.c (struct iv_use): New fields.
9627         (dump_use, dump_uses): Support to dump sub use.
9628         (record_use): New parameters to support sub use.  Remove call to
9629         dump_use.
9630         (record_sub_use, record_group_use): New functions.
9631         (compute_max_addr_offset, split_all_small_groups): New functions.
9632         (group_address_uses, rewrite_use_address): New functions.
9633         (strip_offset): New declaration.
9634         (find_interesting_uses_address): Call record_group_use.
9635         (add_candidate): New assertion.
9636         (infinite_cost_p): Move definition forward.
9637         (add_costs): Check INFTY cost and return immediately.
9638         (get_computation_cost_at): Clear setup cost and dependent bitmap
9639         for sub uses.
9640         (determine_use_iv_cost_address): Compute cost for sub uses.
9641         (rewrite_use_address_1): Rename from old rewrite_use_address.
9642         (free_loop_data): Free sub uses.
9643         (tree_ssa_iv_optimize_loop): Call group_address_uses.
9644
9645 2015-05-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
9646             Jim Wilson  <jim.wilson@linaro.org>
9647
9648         * config/arm/aarch-common-protos.h (struct mem_cost_table): Added
9649         new  fields loadv and storev.
9650         * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
9651         Initialize loadv and storev.
9652         * config/arm/aarch-cost-tables.h (generic_extra_costs): Likewise.
9653         (cortexa53_extra_costs): Likewise.
9654         (cortexa57_extra_costs): Likewise.
9655         (xgene1_extra_costs): Likewise.
9656         * config/aarch64/aarch64.c (aarch64_rtx_costs): Update vector
9657         rtx_costs.
9658
9659 2015-05-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
9660
9661         * config/arm/arm.c (cortexa9_extra_costs): Initialize loadv and
9662          storev.
9663         (cortexa8_extra_costs): Likewise.
9664         (cortexa5_extra_costs): Likewise.
9665         (cortexa7_extra_costs): Likewise.
9666         (cortexa12_extra_costs): Likewise.
9667         (cortexa15_extra_costs): Likewise.
9668         (v7m_extra_costs): Likewise.
9669
9670 2015-05-20  Jeff Law  <law@redhat.com>
9671
9672         * tree-ssa-threadupdate.c (thread_single_edge): Use delete_jump_thread
9673         instead of open-coded version.  Also delete the jump thread created
9674         within this function.
9675
9676 2015-05-20  Alan Modra  <amodra@gmail.com>
9677
9678         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Return
9679         stack adjusting insn.  Formatting.
9680         (rs6000_emit_prologue): Track stack adjusting insn, and use of
9681         r12.  If possible, emit first -fsplit-stack arg pointer insn
9682         before stack adjust.  Don't use r12 to save cr if split-stack.
9683
9684 2015-05-20  Alan Modra  <amodra@gmail.com>
9685
9686         * common/config/rs6000/rs6000-common.c (TARGET_SUPPORTS_SPLIT_STACK):
9687         Define.
9688         (rs6000_supports_split_stack): New function.
9689         * gcc/config/rs6000/rs6000.c (machine_function): Add
9690         split_stack_arg_pointer.
9691         (TARGET_EXTRA_LIVE_ON_ENTRY, TARGET_INTERNAL_ARG_POINTER): Define.
9692         (setup_incoming_varargs): Use crtl->args.internal_arg_pointer
9693         rather than virtual_incoming_args_rtx.
9694         (rs6000_va_start): Likewise.
9695         (split_stack_arg_pointer_used_p): New function.
9696         (rs6000_emit_prologue): Set up arg pointer for -fsplit-stack.
9697         (morestack_ref): New var.
9698         (gen_add3_const, rs6000_expand_split_stack_prologue,
9699         rs6000_internal_arg_pointer, rs6000_live_on_entry,
9700         rs6000_split_stack_space_check): New functions.
9701         (rs6000_elf_file_end): Call file_end_indicate_split_stack.
9702         * gcc/config/rs6000/rs6000.md (UNSPEC_STACK_CHECK): Define.
9703         (UNSPECV_SPLIT_STACK_RETURN): Define.
9704         (split_stack_prologue, load_split_stack_limit,
9705         load_split_stack_limit_di, load_split_stack_limit_si,
9706         split_stack_return, split_stack_space_check): New expands and insns.
9707         * gcc/config/rs6000/rs6000-protos.h
9708         (rs6000_expand_split_stack_prologue): Declare.
9709         (rs6000_split_stack_space_check): Declare.
9710
9711 2015-05-20  Alan Modra  <amodra@gmail.com>
9712
9713         * config/rs6000/rs6000.c (struct rs6000_stack): Correct comments.
9714         (direct_return): Test vrsave_size rather than vrsave_mask.
9715         (rs6000_emit_prologue): Likewise.  Remove redundant altivec tests.
9716         (rs6000_emit_epilogue): Likewise.
9717
9718 2015-05-20  Alan Modra  <amodra@gmail.com>
9719
9720         * config/rs6000/rs6000.c (rs6000_stack_info): Don't zero offsets
9721         when not saving registers.
9722         (debug_stack_info): Adjust to omit printing unused offsets,
9723         as before.
9724         (rs6000_emit_epilogue): Adjust use_backchain_to_restore_sp
9725         expression.
9726
9727 2015-05-19  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9728
9729         PR c++/65835
9730         * config/i386/winnt.c (struct wrapped_symbol_hasher): Change
9731         value_type to const char *.
9732
9733 2015-05-19  Sandra Loosemore  <sandra@codesourcery.com>
9734
9735         * config.gcc [powerpc*-*-linux*]: Allow --enable-targets=all
9736         to build a biarch toolchain again.
9737
9738 2015-05-19  Jan Hubicka  <hubicka@ucw.cz>
9739
9740         * ipa-devirt.c (type_in_anonymous_namespace_p): Return true
9741         or implicit declarations.
9742         (odr_type_p): Check that TYPE_NAME is TYPE_DECL before looking
9743         into it.
9744         (get_odr_type): Check type has linkage before adding bases.
9745         (register_odr_type): Check that type has linkage before adding it.
9746         (type_known_to_have_no_deriavations_p): Rename to ..
9747         (type_known_to_have_no_derivations_p): This one.
9748         * ipa-utils.h (type_known_to_have_no_deriavations_p): Rename to ..
9749         (type_known_to_have_no_derivations_p): This one.
9750         * ipa-polymorphic-call.c
9751         (ipa_polymorphic_call_context::restrict_to_inner_type): Check that
9752         type has linkage.
9753
9754 2015-05-19  Eric Botcazou  <ebotcazou@adacore.com>
9755
9756         * stor-layout.c (finalize_type_size): Use AGGREGATE_TYPE_P.
9757         (layout_type): Use RECORD_OR_UNION_TYPE_P.
9758
9759 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9760
9761         * config/s390/s390.c (s390_vector_bool_type_p): New function.
9762         (s390_invalid_binary_op): New function.
9763         (TARGET_INVALID_BINARY_OP): Define macro.
9764
9765 2015-05-19  David Sherwood  <david.sherwood@arm.com>
9766
9767         * loop-invariant.c (create_new_invariant): Don't calculate address cost
9768         if mode is not a scalar integer.
9769         (get_inv_cost): Increase computational cost for unused invariants.
9770
9771 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9772
9773         * config.gcc: Add vecintrin.h to extra_headers.  Add s390-c.o to
9774         c_target_objs and cxx_target_objs.  Add t-s390 to tmake_file.
9775         * config/s390/s390-builtin-types.def: New file.
9776         * config/s390/s390-builtins.def: New file.
9777         * config/s390/s390-builtins.h: New file.
9778         * config/s390/s390-c.c: New file.
9779         * config/s390/s390-modes.def: Add modes CCVEQANY, CCVH,
9780         CCVHANY, CCVHU, CCVHUANY, CCVFHANY, CCVFHEANY.
9781         * config/s390/s390-protos.h (s390_expand_vec_compare_cc)
9782         (s390_cpu_cpp_builtins, s390_register_target_pragmas): Add
9783         prototypes.
9784         * config/s390/s390.c (s390-builtins.h, s390-builtins.def):
9785         Include.
9786         (flags_builtin, flags_overloaded_builtin_var, s390_builtin_types)
9787         (s390_builtin_fn_types, s390_builtin_decls, code_for_builtin): New
9788         variable definitions.
9789         (s390_const_operand_ok): New function.
9790         (s390_expand_builtin): Rewrite.
9791         (s390_init_builtins): New function.
9792         (s390_handle_vectorbool_attribute): New function.
9793         (s390_attribute_table): Add s390_vector_bool attribute.
9794         (s390_match_ccmode_set): Handle new cc modes CCVH, CCVHU.
9795         (s390_branch_condition_mask): Generate masks for new modes.
9796         (s390_expand_vec_compare_cc): New function.
9797         (s390_mangle_type): Add mangling for vector bool types.
9798         (enum s390_builtin): Remove.
9799         (s390_atomic_assign_expand_fenv): Rename constants for sfpc and
9800         efpc builtins.
9801         * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Call
9802         s390_cpu_cpp_builtins.
9803         (REGISTER_TARGET_PRAGMAS): New macro.
9804         * config/s390/s390.md: Define more UNSPEC_VEC_* constants.
9805         (insn_cmp mode attribute): Add new CC modes.
9806         (s390_sfpc, s390_efpc): Rename patterns to sfpc and efpc.
9807         (lcbb): New pattern definition.
9808         * config/s390/s390intrin.h: Include vecintrin.h.
9809         * config/s390/t-s390: New file.
9810         * config/s390/vecintrin.h: New file.
9811         * config/s390/vector.md: Include vx-builtins.md.
9812         * config/s390/vx-builtins.md: New file.S/390 zvector builtin
9813         support.
9814
9815 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9816
9817         * config/s390/s390-modes.def: Add new modes CCVEQ, CCVFH, and
9818         CCVFHE.
9819         * config/s390/s390.c (s390_match_ccmode_set): Handle new modes.
9820         (s390_select_ccmode): Likewise.
9821         (s390_canonicalize_comparison): Swap operands if necessary.
9822         (s390_expand_vec_compare_scalar): Expand DFmode compare using
9823         single element vector instructions.
9824         (s390_emit_compare): Call s390_expand_vec_compare_scalar.
9825         (s390_branch_condition_mask): Generate CC masks for the new modes.
9826         * config/s390/s390.md (v0, vf, vd): New mode attributes.
9827         (VFCMP, asm_fcmp, insn_cmp): New mode iterator and attributes.
9828         (*vec_cmp<insn_cmp>df_cconly, *fixuns_truncdfdi2_z13)
9829         (*fix_trunc<BFP:mode><GPR:mode>2_bfp, *floatunsdidf2_z13)
9830         (*floatuns<GPR:mode><FP:mode>2, *extendsfdf2_z13)
9831         (*extend<DSF:mode><BFP:mode>2): New insn definition.
9832         (fix_trunc<BFP:mode><GPR:mode>2_bfp, loatuns<GPR:mode><FP:mode>2)
9833         (extend<DSF:mode><BFP:mode>2): Turn into expander.
9834         (floatdi<mode>2, truncdfsf2, add<mode>3, sub<mode>3, mul<mode>3)
9835         (div<mode>3, *neg<mode>2, *abs<mode>2, *negabs<mode>2)
9836         (sqrt<mode>2): Add vector instruction.
9837
9838 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9839
9840         * config/s390/constraints.md (j00, jm1, jxx, jyy, v): New
9841         constraints.
9842         * config/s390/predicates.md (const0_operand, constm1_operand)
9843         (constable_operand): Accept vector operands.
9844         * config/s390/s390-modes.def: Add supported vector modes.
9845         * config/s390/s390-protos.h (s390_cannot_change_mode_class)
9846         (s390_function_arg_vector, s390_contiguous_bitmask_vector_p)
9847         (s390_bytemask_vector_p, s390_expand_vec_strlen)
9848         (s390_expand_vec_compare, s390_expand_vcond)
9849         (s390_expand_vec_init): Add prototypes.
9850         * config/s390/s390.c (VEC_ARG_NUM_REG): New macro.
9851         (s390_vector_mode_supported_p): New function.
9852         (s390_contiguous_bitmask_p): Mask out the irrelevant bits.
9853         (s390_contiguous_bitmask_vector_p): New function.
9854         (s390_bytemask_vector_p): New function.
9855         (s390_split_ok_p): Vector regs don't work either.
9856         (regclass_map): Add VEC_REGS.
9857         (s390_legitimate_constant_p): Handle vector constants.
9858         (s390_cannot_force_const_mem): Handle CONST_VECTOR.
9859         (legitimate_reload_vector_constant_p): New function.
9860         (s390_preferred_reload_class): Handle CONST_VECTOR.
9861         (s390_reload_symref_address):  Likewise.
9862         (s390_secondary_reload): Vector memory instructions only support
9863         short displacements.  Rename reload*_nonoffmem* to reload*_la*.
9864         (s390_emit_ccraw_jump): New function.
9865         (s390_expand_vec_strlen): New function.
9866         (s390_expand_vec_compare): New function.
9867         (s390_expand_vcond): New function.
9868         (s390_expand_vec_init): New function.
9869         (s390_dwarf_frame_reg_mode): New function.
9870         (print_operand): Handle addresses with 'O' and 'R' constraints.
9871         (NR_C_MODES, constant_modes): Add vector modes.
9872         (s390_output_pool_entry): Handle vector constants.
9873         (s390_hard_regno_mode_ok): Handle vector registers.
9874         (s390_class_max_nregs): Likewise.
9875         (s390_cannot_change_mode_class): New function.
9876         (s390_invalid_arg_for_unprototyped_fn): New function.
9877         (s390_function_arg_vector): New function.
9878         (s390_function_arg_float): Remove size variable.
9879         (s390_pass_by_reference): Handle vector arguments.
9880         (s390_function_arg_advance): Likewise.
9881         (s390_function_arg): Likewise.
9882         (s390_return_in_memory): Vector values are returned in a VR if
9883         possible.
9884         (s390_function_and_libcall_value): Handle vector arguments.
9885         (s390_gimplify_va_arg): Likewise.
9886         (s390_call_saved_register_used): Consider the arguments named.
9887         (s390_conditional_register_usage): Disable v16-v31 for non-vec
9888         targets.
9889         (s390_preferred_simd_mode): New function.
9890         (s390_support_vector_misalignment): New function.
9891         (s390_vector_alignment): New function.
9892         (TARGET_STRICT_ARGUMENT_NAMING, TARGET_DWARF_FRAME_REG_MODE)
9893         (TARGET_VECTOR_MODE_SUPPORTED_P)
9894         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN)
9895         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
9896         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT)
9897         (TARGET_VECTOR_ALIGNMENT): Define target macro.
9898         * config/s390/s390.h (FUNCTION_ARG_PADDING): Define macro.
9899         (FIRST_PSEUDO_REGISTER): Increase value.
9900         (VECTOR_NOFP_REGNO_P, VECTOR_REGNO_P, VECTOR_NOFP_REG_P)
9901         (VECTOR_REG_P): Define macros.
9902         (FIXED_REGISTERS, CALL_USED_REGISTERS)
9903         (CALL_REALLY_USED_REGISTERS, REG_ALLOC_ORDER)
9904         (HARD_REGNO_CALL_PART_CLOBBERED, REG_CLASS_NAMES)
9905         (FUNCTION_ARG_REGNO_P, FUNCTION_VALUE_REGNO_P, REGISTER_NAMES):
9906         Add vector registers.
9907         (CANNOT_CHANGE_MODE_CLASS): Call C function.
9908         (enum reg_class): Add VEC_REGS, ADDR_VEC_REGS, GENERAL_VEC_REGS.
9909         (SECONDARY_MEMORY_NEEDED): Allow SF<->SI mode moves without
9910         memory.
9911         (DBX_REGISTER_NUMBER, FIRST_VEC_ARG_REGNO, LAST_VEC_ARG_REGNO)
9912         (SHORT_DISP_IN_RANGE, VECTOR_STORE_FLAG_VALUE): Define macro.
9913         * config/s390/s390.md (UNSPEC_VEC_*): New constants.
9914         (VR*_REGNUM): New constants.
9915         (ALL): New mode iterator.
9916         (INTALL): Remove mode iterator.
9917         Include vector.md.
9918         (movti): Implement TImode moves for VRs.
9919         Disable TImode splitter for VR targets.
9920         Implement splitting TImode GPR<->VR moves.
9921         (reload*_tomem_z10, reload*_toreg_z10): Replace INTALL with ALL.
9922         (reload<mode>_nonoffmem_in, reload<mode>_nonoffmem_out): Rename to
9923         reload<mode>_la_in, reload<mode>_la_out.
9924         (*movdi_64, *movsi_zarch, *movhi, *movqi, *mov<mode>_64dfp)
9925         (*mov<mode>_64, *mov<mode>_31): Add vector instructions.
9926         (TD/TF mode splitter): Enable for GPRs only (formerly !FP).
9927         (mov<mode> SF SD): Prefer lder, lde for loading.
9928         Add lrl and strl instructions.
9929         Add vector instructions.
9930         (strlen<mode>): Rename old strlen<mode> to strlen_srst<mode>.
9931         Call s390_expand_vec_strlen on z13.
9932         (*cc_to_int): Change predicate to nonimmediate_operand.
9933         (addti3): Rename to *addti3.  New expander.
9934         (subti3): Rename to *subti3.  New expander.
9935         * config/s390/vector.md: New file.
9936
9937 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9938
9939         * common/config/s390/s390-common.c (processor_flags_table): Add
9940         z13.
9941         * config.gcc: Add z13.
9942         * config/s390/s390-opts.h (enum processor_type): Add
9943         PROCESSOR_2964_Z13.
9944         * config/s390/s390.c (s390_adjust_priority): Check for
9945         PROCESSOR_2964_Z13.
9946         (s390_reorg): Likewise.
9947         (s390_sched_reorder): Likewise.
9948         (s390_sched_variable_issue): Likewise.
9949         (s390_loop_unroll_adjust): Likewise.
9950         (s390_option_override): Likewise. Default to -mvx when available.
9951         * config/s390/s390.h (enum processor_flags): Add PF_Z13 and PF_VX.
9952         (TARGET_CPU_Z13, TARGET_CPU_VX, TARGET_Z13, TARGET_VX)
9953         (TARGET_VX_ABI): Define macros.
9954         macros.
9955         (TARGET_DEFAULT): Add MASK_OPT_VX.
9956         * config/s390/s390.md ("cpu" attribute): Add z13.
9957         ("cpu_facility" attribute): Add vec.
9958         * config/s390/s390.opt (processor_type): Add z13.
9959         (mvx): New options.
9960         * doc/invoke.texi: Add z13 option for -march.
9961
9962 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9963
9964         * config/s390/predicates.md (shift_count_or_setmem_operand): Add
9965         mode check to make sure that only scalar integer values are
9966         accepted.
9967
9968 2015-05-19  Jan Hubicka  <hubicka@ucw.cz>
9969
9970         * tree.c (verify_type_variant): Fix #undef.
9971         (gimple_canonical_types_compatible_p): Move here from lto.c
9972         (verify_type): Verify TYPE_CANONICAL compatibility.
9973         * tree.h (gimple_canonical_types_compatible_p): Declare.
9974
9975 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
9976
9977         PR middle-end/66199
9978         * tree.h (OMP_TEAMS_COMBINED): Define.
9979         * gimplify.c (enum gimplify_omp_var_data): Add
9980         GOVD_LINEAR_LASTPRIVATE_NO_OUTER.
9981         (enum omp_region_type): Add ORT_COMBINED_TEAMS.
9982         (omp_notice_variable): Accept both ORT_TEAMS
9983         and ORT_COMBINED_TEAMS.  Don't recurse if
9984         GOVD_LINEAR_LASTPRIVATE_NO_OUTER is set and either
9985         GOVD_LINEAR is set, or GOVD_LASTPRIVATE without
9986         GOVD_FIRSTPRIVATE.
9987         (omp_no_lastprivate): New function.
9988         (gimplify_scan_omp_clauses): For OMP_CLAUSE_LASTPRIVATE
9989         and OMP_CLAUSE_LINEAR, if omp_no_lastprivate, don't
9990         notice_outer and set appropriate bits, otherwise make
9991         sure default(none) combined constructs won't complain.
9992         (gimplify_adjust_omp_clauses): Remove OMP_CLAUSE_LINEAR
9993         outer special casing, for OMP_CLAUSE_LASTPRIVATE if
9994         omp_no_lastprivate either remove the clause or turn it
9995         into OMP_CLAUSE_PRIVATE.
9996         (gimplify_omp_for): Fix up handling of implicit
9997         lastprivate or linear iterators.
9998         (gimplify_omp_workshare): For OMP_TEAMS_COMBINED use
9999         ORT_COMBINED_TEAMS.
10000         * omp-low.c (lower_omp_for_lastprivate): For combined
10001         for simd use fd.loop.n2 from the for rather than simd.
10002
10003 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10004
10005         * config/cris/cris.c (cris_expand_prologue): Use gen_raw_REG
10006         instead of gen_rtx_raw_REG.
10007         (cris_expand_epilogue): Likewise.
10008         * config/microblaze/microblaze.c (microblaze_classify_address):
10009         Likewise.
10010         * config/sparc/sparc.md: Likewise.
10011
10012 2015-05-19  Uros Bizjak  <ubizjak@gmail.com>
10013
10014         * config/alpha/alpha.c (alpha_legitimize_reload_address)
10015         (alpha_preferred_reload_class, alpha_legitimate_constant_p): Use
10016         CONST_INT_P, CONST_SCALAR_INT_P and CONST_DOUBLE_P predicates.
10017         (alpha_split_reload_pair) <case CONST_INT, case CONST_WIDE_INT>:
10018         Use CASE_CONST_SCALAR_INT.
10019         (print_operand) <case 'M'>: Use mode_width_operand to check the
10020         value of the constant.
10021         * config/alpha/alpha.md (movti): Use CONST_SCALAR_INT_P predicate.
10022         * config/alpha/predicates.md (input_operand): Use general_operand
10023         instead of match_code as operand check.
10024         (symbolic_operand): Use match_code with subexpression digits.
10025         * config/alpha/constraints.md (Q): Ditto.
10026
10027 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10028
10029         * optabs.c (expand_vec_perm): Don't re-use SEL as target operand.
10030
10031 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10032
10033         * config/s390/s390.c (s390_secondary_reload): Fix check for
10034         load/store relative.
10035
10036 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10037
10038         * recog.h: Increase MAX_RECOG_ALTERNATIVES.  Change type of
10039         alternative_mask to uint64_t.
10040
10041 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
10042
10043         PR tree-optimization/66187
10044         * match.pd ((bit_and (plus/minus (convert @0) (convert @1)) mask)):
10045         Pass TYPE_SIGN to tree_int_cst_min_precision.  If
10046         !TYPE_OVERFLOW_WRAPS, ensure @4 is non-negative.
10047
10048 2015-05-19  David Malcolm  <dmalcolm@redhat.com>
10049
10050         * diagnostic.c (diagnostic_report_current_module): Strengthen
10051         local "new_map" from const line_map * to
10052         const line_map_ordinary *.
10053         * genmatch.c (error_cb): Likewise for local "map".
10054         (output_line_directive): Likewise for local "map".
10055         * input.c (expand_location_1): Likewise for local "map".
10056         Pass NULL rather than &map to
10057         linemap_unwind_to_first_non_reserved_loc, since the value is never
10058         read from there, and the value written back not read from here.
10059         (is_location_from_builtin_token): Strengthen local "map" from
10060         const line_map * to const line_map_ordinary *.
10061         (dump_location_info): Strengthen locals "map" from
10062         line_map *, one to const line_map_ordinary *, the other
10063         to const line_map_macro *.
10064         * tree-diagnostic.c (loc_map_pair): Strengthen field "map" from
10065         const line_map * to const line_map_macro *.
10066         (maybe_unwind_expanded_macro_loc): Add a call to
10067         linemap_check_macro when writing to the "map" field of the
10068         loc_map_pair.
10069         Introduce local const line_map_ordinary * "ord_map", using it in
10070         place of "map" in the part of the function where we know we have
10071         an ordinary map.  Strengthen local "m" from const line_map * to
10072         const line_map_ordinary *.
10073
10074 2015-05-19  Nick Clifton  <nickc@redhat.com>
10075
10076         PR target/66156
10077         * config/msp430/msp430.md (zero_extendhisi2): Add support for
10078         separate source and destination registers.
10079
10080 2015-05-19  Richard Biener  <rguenther@suse.de>
10081
10082         PR tree-optimization/66165
10083         * tree-vect-slp.c (vect_supported_load_permutation_p): Add guard
10084         for no load permutation.
10085
10086         PR tree-optimization/66185
10087         * tree-vect-slp.c (vect_build_slp_tree): Properly roll back
10088         when building the SLP node from scalars.
10089
10090 2015-05-19  Eric Botcazou  <ebotcazou@adacore.com>
10091             Tristan Gingold  <gingold@adacore.com>
10092
10093         * insn-notes.def (UPDATE_SJLJ_CONTEXT): New note.
10094         * builtins.c (expand_builtin_update_setjmp_buf): Make global.
10095         (expand_stack_restore): Call record_new_stack_level.
10096         (expand_stack_save): Do not call do_pending_stack_adjust.
10097         * builtins.h (expand_builtin_update_setjmp_buf): Declare.
10098         * calls.c (expand_call): Call record_new_stack_level for alloca.
10099         * except.c (sjlj_mark_call_sites): Expand builtin_update_setjmp_buf
10100         wherever a NOTE_INSN_UPDATE_SJLJ_CONTEXT note is present.
10101         (update_sjlj_context): New global function.
10102         * except.h (update_sjlj_context): Declare.
10103         * explow.c (record_new_stack_level): New global function.
10104         (allocate_dynamic_stack_space): Call record_new_stack_level.
10105         * explow.h (record_new_stack_level): Declare.
10106         * final.c (final_scan_insn): Deal with NOTE_INSN_UPDATE_SJLJ_CONTEXT.
10107         * cfgrtl.c (duplicate_insn_chain): Likewise.
10108
10109 2015-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10110
10111         * calls.c: Always define STACK_GROWS_DOWNWARD as 0 or 1.
10112         (mem_overlaps_already_clobbered_arg_p): Rewrite ifdef
10113         STACK_GROWS_DOWNWARD as normal if.
10114         (expand_call): Likewise.
10115
10116 2015-05-19  Oleg Endo  <olegendo@gcc.gnu.org>
10117
10118         PR target/54236
10119         * config/sh/sh.md (*round_int_even): New insn_and_split and
10120         accompanying new unnamed split.
10121
10122 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10123
10124         * bitmap.c (bitmap_set_range): Handle count==1 specially.
10125         (bitmap_clear_range): Likewise.
10126         * cfgcleanup.c (mark_effect): Use bitmap_clear_range and
10127         bitmap_set_range unconditionally.
10128         * df-problems.c (df_simulate_one_insn_forwards): Likewise.
10129         * df-scan.c (df_mark_reg): Likewise.
10130         * haifa-sched.c (setup_ref_regs): Likewise.
10131         * sched-rgn.c (update_live_1): Likewise.
10132
10133 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10134
10135         * regs.h (END_HARD_REGNO): Delete.
10136         (END_REGNO): Move to...
10137         * rtl.h: ...here.
10138         * bt-load.c (note_btr_set): Use END_REGNO instead of END_HARD_REGNO.
10139         * caller-save.c (mark_set_regs): Likewise.
10140         * combine.c (move_deaths, distribute_notes): Likewise.
10141         * cse.c (invalidate, invalidate_for_call): Likewise.
10142         * df-scan.c (df_ref_record): Likewise.
10143         * postreload-gcse.c (reg_changed_after_insn_p): Likewise.
10144         (record_last_reg_set_info): Likewise.
10145         * reg-stack.c (convert_regs_exit): Likewise.
10146         * reload.c (reg_overlap_mentioned_for_reload_p): Likewise.
10147         * resource.c (update_live_status): Likewise.
10148         * rtlanal.c (find_reg_fusage, find_regno_fusage): Likewise.
10149
10150 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10151
10152         * rtl.h (reg_info): Add an nregs field.
10153         (REG_NREGS): Use it.
10154         (SET_REGNO_RAW): Delete.
10155         (set_regno_raw): New function.
10156         * regs.h (END_HARD_REGNO): Make equivalent to END_REGNO.
10157         (END_REGNO): Redefine in terms of REG_NREGS.
10158         * read-rtl.c (read_rtx_code): Call set_regno_raw instead of
10159         SET_REGNO_RAW.
10160         * emit-rtl.c (set_mode_and_regno): Likewise.
10161         * df-scan.c (df_ref_change_reg_with_loc): Use set_mode_and_regno
10162         instead of SET_REGNO_RAW.
10163
10164 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10165
10166         * rtl.h (PUT_MODE_RAW): New macro.
10167         (PUT_REG_NOTE_KIND): Use it.
10168         (set_mode_and_regno): Declare.
10169         (gen_raw_REG): Change regno to "unsigned int".
10170         (gen_rtx_REG): Change "unsigned" to "unsigned int".
10171         (PUT_MODE): Forward to PUT_MODE_RAW for generators, otherwise
10172         use set_mode_and_regno to change the mode of registers.
10173         * gengenrtl.c (gendef): Use PUT_MODE_RAW.
10174         * emit-rtl.c (set_mode_and_regno): New function.
10175         (gen_raw_REG): Change regno to unsigned int.  Use set_mode_and_regno.
10176         * caller-save.c (reg_save_code): Use set_mode_and_regno.
10177         * expr.c (init_expr_target): Likewise.
10178         * ira.c (setup_prohibited_mode_move_regs): Likewise.
10179         * postreload.c (reload_cse_simplify_operands): Likewise.
10180
10181 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10182
10183         * caller-save.c (init_caller_save): Use word_mode and
10184         FIRST_PSEUDO_REGISTER when creating temporary rtxes.
10185         * expr.c (init_expr_target): Likewise.
10186         * ira.c (setup_prohibited_mode_move_regs): Likewise.
10187         * postreload.c (reload_cse_regs_1): Likewise.
10188
10189 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10190
10191         * rtl.def (REG): Change format to "r".
10192         * rtl.h (rtunion): Remove rt_reg.
10193         (reg_info): New structure.
10194         (rtx_def): Add reg field to main union.
10195         (X0REGATTR): Delete.
10196         (REG_CHECK): New macro.
10197         (SET_REGNO_RAW, rhs_regno, REG_ATTRS): Use it.
10198         * rtl.c (rtx_format): Document "r".
10199         (rtx_code_size): Handle REG specially.
10200         * gengenrtl.c (special_format): Return true for formats
10201         that include 'r'.
10202         * gengtype.c (adjust_field_rtx_def): Handle 'r' fields.
10203         Deal with REG_ATTRS after the field loop.
10204         * emit-rtl.c (gen_raw_REG): Call rtx_alloc_stat directly.
10205         * expmed.c (init_expmed): Call gen_raw_REG instead of
10206         gen_rtx_raw_REG.
10207         * expr.c (init_expr_target): Likewise.
10208         * regcprop.c (maybe_mode_change): Likewise.
10209         * varasm.c (make_decl_rtl): Likewise.
10210         * final.c (leaf_renumber_regs_insn): Return early after
10211         handling REGs.
10212         * genemit.c (gen_exp): Handle 'r' fields.
10213         * genpeep.c (match_rtx): Likewise.
10214         * gensupport.c (subst_pattern_match): Likewise.
10215         (get_alternatives_number, collect_insn_data, alter_predicate_for_insn)
10216         (alter_constraints, subst_dup): Likewise.
10217         * read-rtl.c (read_rtx_code): Likewise.
10218         * print-rtl.c (print_rtx): Likewise.
10219         * genrecog.c (find_operand, find_matching_operand): Likewise.
10220         (validate_pattern, match_pattern_2): Likewise.
10221         (parameter::UINT, rtx_test::REGNO_FIELD): New enum values.
10222         (rtx_test::regno_field): New function.
10223         (operator ==, safe_to_hoist_p, transition_parameter_type)
10224         (parameter_type_string, print_parameter_value)
10225         (print_nonbool_test, print_test): Handle new enum values.
10226         * cselib.c (rtx_equal_for_cselib_1): Handle REG specially.
10227         * lra-constraints.c (operands_match_p): Likewise.
10228
10229 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10230
10231         * df.h (df_ref_change_reg_with_loc): Remove old_regno parameter.
10232         Change type of new_regno to unsigned int.
10233         * df-scan.c (df_ref_change_reg_with_loc_1): Change type of
10234         new_regno to unsigned int.
10235         (df_ref_change_reg_with_loc): Remove old_regno parameter.
10236         Change type of new_regno to unsigned int.  Use SET_REGNO_RAW.
10237         * rtl.h (SET_REGNO): Update call to df_ref_change_reg_with_loc.
10238         (SET_REGNO_RAW): Add space after ",".
10239
10240 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10241
10242         * rtl.h (REG_NREGS): New macro
10243         * alias.c (record_set): Use it.
10244         * cfgcleanup.c (mark_effect): Likewise.
10245         * combine.c (likely_spilled_retval_1): Likewise.
10246         (likely_spilled_retval_p, can_change_dest_mode): Likewise.
10247         (move_deaths, distribute_notes): Likewise.
10248         * cselib.c (cselib_record_set): Likewise.
10249         * df-problems.c (df_simulate_one_insn_forwards): Likewise.
10250         * df-scan.c (df_mark_reg): Likewise.
10251         * dse.c (look_for_hardregs): Likewise.
10252         * dwarf2out.c (reg_loc_descriptor): Likewise.
10253         (multiple_reg_loc_descriptor): Likewise.
10254         * expr.c (write_complex_part, read_complex_part): Likewise.
10255         (emit_move_complex): Likewise.
10256         * haifa-sched.c (setup_ref_regs): Likewise.
10257         * ira-lives.c (mark_hard_reg_live): Likewise.
10258         * lra.c (lra_set_insn_recog_data): Likewise.
10259         * mode-switching.c (create_pre_exit): Likewise.
10260         * postreload.c (reload_combine_recognize_const_pattern): Likewise.
10261         (reload_combine_recognize_pattern): Likewise.
10262         (reload_combine_note_use, move2add_record_mode): Likewise.
10263         (reload_cse_move2add): Likewise.
10264         * reg-stack.c (subst_stack_regs_pat): Likewise.
10265         * regcprop.c (kill_value, copy_value): Likewise.
10266         (copyprop_hardreg_forward_1): Likewise.
10267         * regrename.c (verify_reg_in_set, scan_rtx_reg): Likewise.
10268         (build_def_use): Likewise.
10269         * sched-deps.c (mark_insn_reg_birth, mark_reg_death): Likewise.
10270         (deps_analyze_insn): Likewise.
10271         * sched-rgn.c (check_live_1, update_live_1): Likewise.
10272         * sel-sched.c (count_occurrences_equiv): Likewise.
10273         * valtrack.c (dead_debug_insert_temp): Likewise.
10274
10275 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
10276
10277         * cfgcleanup.c (mentions_nonequal_regs): Use END_REGNO.
10278         * dse.c (note_add_store): Likewise.
10279         * ira-lives.c (mark_hard_reg_dead): Likewise.
10280         * loop-invariant.c (mark_reg_store): Likewise.
10281         (mark_reg_death): Likewise.
10282         * postreload.c (reload_combine): Likewise.
10283         (reload_combine_note_store): Likewise.
10284         (reload_combine_note_use): Likewise.
10285         * recog.c (peep2_reg_dead_p): Likewise.
10286
10287 2015-05-19  Alan Modra  <amodra@gmail.com>
10288
10289         * config/rs6000/predicates.md (gpc_reg_operand): Don't allow all
10290         hard registers numbered greater or equal to ARG_POINTER_REGNUM.
10291         (reg_or_neg_short_operand, fix_trunc_dest_operand): Delete
10292         unused predicates.
10293         * config/rs6000/altivec.md (save_vregs_*, restore_vregs_*):
10294         Use altivec_register_operand.  Make insn predicate TARGET_ALTIVEC.
10295         * config/rs6000/rs6000.md (extzvdi_internal2): Use cc_reg_operand.
10296         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Expand comment.
10297
10298 2015-05-19  Sameera Deshpande  <Sameera.Deshpande@imgtec.com>
10299
10300         * config/mips/mips.md (JOIN_MODE): New mode iterator.
10301         (join2_load_Store<JOIN_MODE:mode>): New pattern.
10302         (join2_loadhi): Likewise.
10303         (define_peehole2): Add peephole2 patterns to join 2 HI/SI/SF/DF-mode
10304         load-load and store-stores.
10305         * config/mips/mips.opt (mload-store-pairs): New option.
10306         (TARGET_LOAD_STORE_PAIRS): New macro.
10307         * config/mips/mips.h (ENABLE_LD_ST_PAIRS): Likewise.
10308         * config/mips/mips-protos.h (mips_load_store_bonding_p): New prototype.
10309         * config/mips/mips.c (mips_load_store_bonding_p): New function.
10310
10311 2015-05-19  Mikhail Maltsev  <maltsevm@gmail.com>
10312
10313         * bb-reorder.c (fix_up_fall_thru_edges): Use std::swap instead of
10314         explicit swaps.
10315         * dojump.c (do_compare_rtx_and_jump): Likewise.
10316         * expmed.c (emit_store_flag_1): Likewise.
10317         * fibonacci_heap.h (fibonacci_heap::union_with): Likewise.
10318         * final.c (sprint_ul): Use std::reverse for reversing a string.
10319         * fold-const.c (extract_muldiv_1): Use std::swap.
10320         * genmodes.c (emit_mode_int_n): Likewise.
10321         * ifcvt.c (dead_or_predicable): Likewise.
10322         * ira-build.c (ira_merge_live_ranges): Likewise.
10323         (swap_allocno_copy_ends_if_necessary): Likewise.
10324         * ira.c (ira_setup_alts): Likewise.
10325         * loop-iv.c (iv_analyze_expr): Likewise.
10326         (implies_p): Likewise.
10327         (canon_condition): Likewise.
10328         * lra-constraints.c (swap_operands): Likewise.
10329         * lra-lives.c (lra_merge_live_ranges): Likewise.
10330         * omega.c (swap): Remove.
10331         (bswap): Remove.
10332         (omega_unprotect_1): Use std::swap.
10333         (omega_solve_geq): Likewise.
10334         * optabs.c (expand_binop_directly): Likewise.
10335         (expand_binop): Likewise.
10336         (emit_conditional_move): Likewise.
10337         (emit_conditional_add): Likewise.
10338         * postreload.c (reload_cse_simplify_operands): Likewise.
10339         * reg-stack.c (emit_swap_insn): Likewise.
10340         (swap_to_top): Likewise.
10341         (compare_for_stack_reg): Likewise.
10342         (subst_asm_stack_regs): Likewise.
10343         * reload.c (find_reloads): Likewise.
10344         * reload1.c (gen_reload_chain_without_interm_reg_p): Likewise.
10345         * sel-sched.c (invoke_reorder_hooks): Likewise.
10346         (create_block_for_bookkeeping): Likewise.
10347         * tree-data-ref.c (lambda_matrix_row_exchange): Remove.
10348         (lambda_matrix_right_hermite): Use std::swap.
10349         * tree-ssa-coalesce.c (sort_coalesce_list): Likewise.
10350         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
10351         * tree-ssa-loop-ivopts.c (iv_ca_delta_reverse): Likewise.
10352         * tree-ssa-math-opts.c (is_widening_mult_p): Likewise.
10353         * tree-ssa-phiopt.c (hoist_adjacent_loads): Likewise.
10354         * tree-ssa-reassoc.c (linearize_expr_tree): Likewise.
10355         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
10356         * tree-vrp.c (compare_ranges): Likewise.
10357         * var-tracking.c (add_with_sets): Likewise.
10358         (vt_find_locations): Likewise.
10359
10360 2015-05-18  Andreas Tobler  <andreast@gcc.gnu.org>
10361
10362         * config/freebsd-spec.h (FBSD_STARTFILE_SPEC): Add the bits to build
10363         pie executables.
10364         (FBSD_ENDFILE_SPEC): Likewise.
10365         * config/i386/freebsd.h (STARTFILE_SPEC): Remove and use the one from
10366         config/freebsd-spec.h.
10367         (ENDFILE_SPEC): Likewise.
10368
10369 2015-05-18  Uros Bizjak  <ubizjak@gmail.com>
10370             Richard Henderson  <rth@redhat.com>
10371
10372         PR target/57032
10373         * config/alpha/constraints.md (Q): Rewrite as define_memory_constraint.
10374         Check for a memory location that is not a reference (using an AND)
10375         to an unaligned location here.
10376         * config/alpha/predicates.md (normal_memory_operand): Remove.
10377
10378 2015-05-18  Alex Velenko  <Alex.Velenko@arm.com>
10379
10380         * config/arm/arm.md (andsi_not_shiftsi_si_scc): New pattern.
10381         (andsi_not_shiftsi_si_scc_no_reuse): New pattern.
10382
10383 2015-05-18  Robert Suchanek  <robert.suchanek@imgtec.com>
10384
10385         * config/mips/mips.c (micromips_globals): New variable.
10386         (mips_set_compression_mode): Save and reinitialize target-dependent
10387         state for microMIPS.
10388
10389 2015-05-18  Martin Liska  <mliska@suse.cz>
10390
10391         * dbgcnt.def: Add new counter.
10392         * ipa-icf.c (sem_item_optimizer::merge_classes): Use the counter.
10393
10394 2015-05-18  Martin Liska  <mliska@suse.cz>
10395
10396         * dbgcnt.def: Sort counters.
10397         * opts.c (common_handle_option): Do not compile if
10398         -fdbg-cnt-list is enabled.
10399
10400 2015-05-18  Tom de Vries  <tom@codesourcery.com>
10401
10402         * gimplify.c (gimplify_modify_expr): Remove do_deref handling.
10403         (gimplify_va_arg_expr): Remove do_deref handling.  Remove adding of
10404         address operator to va_list operand.
10405         * tree-stdarg.c (expand_ifn_va_arg_1): Do deref of va_list operand
10406         unconditionally.
10407         * config/i386/i386.c (ix86_gimplify_va_arg): Remove deref on va_list
10408         operand.
10409         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Same.
10410         * config/s390/s390.c (s390_gimplify_va_arg): Same.
10411         * config/spu/spu.c (spu_gimplify_va_arg_expr): Same.
10412
10413 2015-05-18  Tom de Vries  <tom@codesourcery.com>
10414
10415         * tree-ssa-tail-merge.c: Fix whitespace.
10416
10417 2015-05-17  Jim Wilson  <jim.wilson@linaro.org>
10418
10419         * doc/invoke.texi (ARM Options, mtune): Add generic-armv7-a,
10420         cortex-a17, and cortex-a17.cortex-a7.
10421
10422 2015-05-17  Oleg Endo  <olegendo@gcc.gnu.org>
10423
10424         PR target/54236
10425         * config/sh/sh.md (*addc_2r_t): Use ashift instead of mult.
10426
10427 2015-05-17  Uros Bizjak  <ubizjak@gmail.com>
10428
10429         PR target/66174
10430         * config/i386/i386.c (expand_vec_perm_blend): Enable HImode and
10431         QImode inner modes for TARGET_AVX512BW.  Force mask operand
10432         to a register for AVX512F modes.
10433
10434 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
10435
10436         * toplev.c (emit_debug_global_declarations): Do not output debug info
10437         when doing slim LTO objects.
10438
10439 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
10440
10441         * ipa-utils.h (warn_types_mismatch, odr_or_derived_type_p,
10442         odr_types_equivalent_p): Declare.
10443         (odr_type_p): Use gcc_checking_assert.
10444         (type_in_anonymous_namespace_p) Declare.
10445         (type_with_linkage_p): Declare.
10446         * common.opt (Wlto-type-mismatch): New warning.
10447         * ipa-devirt.c (compound_type_base): New function.
10448         (odr_or_derived_type_p): New function.
10449         (odr_types_equivalent_p): New function.
10450         (add_type_duplicate): Simplify.
10451         (type_with_linkage_p): Add hack to prevent false positives on C types
10452         (type_in_anonymous_namespace_p): Likewise.
10453         * tree.c (need_assembler_name_p): Use type_with_linkage.
10454         * tree.h (type_in_anonymous_namespace_p): Remove.
10455         * doc/invoke.texi (-Wlto-type-mismatch): Document
10456
10457 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
10458
10459         * tree.c (verify_type_variant): Verify tree_base and type_common flags.
10460         (verify_type): Verify STRING_FLAG.
10461
10462 2015-05-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10463
10464         PR fortran/44054
10465         * tree-pretty-print.c (percent_K_format): Replace locus pointer
10466         with accessor function.
10467         * tree-diagnostic.c (diagnostic_report_current_function): Use
10468         diagnostic_location function.
10469         (maybe_unwind_expanded_macro_loc): Likewise.
10470         (virt_loc_aware_diagnostic_finalizer): Likewise.
10471         (default_tree_printer): Replace locus pointer with accessor function.
10472         * diagnostic.c (diagnostic_initialize): Initialize caret_chars array.
10473         (diagnostic_set_info_translated): Initialize second location.
10474         (diagnostic_build_prefix): Use CARET_LINE_MARGIN.
10475         (diagnostic_show_locus): Handle two locations. Call
10476         diagnostic_print_caret_line.
10477         (diagnostic_print_caret_line): New.
10478         (default_diagnostic_starter): Use diagnostic_location function.
10479         (diagnostic_report_diagnostic): Use diagnostic_location function.
10480         (verbatim): Do not set text.locus.
10481         * diagnostic.h (struct diagnostic_info): Remove location field.
10482         (struct diagnostic_context): Make caret_chars an array of two.
10483         (diagnostic_location): New inline.
10484         (diagnostic_expand_location): Handle two locations.
10485         (diagnostic_same_line): New inline.
10486         (diagnostic_print_caret_line): Declare.
10487         (CARET_LINE_MARGIN): New constant.
10488         * pretty-print.c (pp_printf): Do not set text.locus.
10489         (pp_verbatim): Do not set text.locus.
10490         * pretty-print.h (MAX_LOCATIONS_PER_MESSAGE): New constant.
10491         (struct text_info): Replace locus pointer with locations
10492         array. Add accessor functions.
10493
10494 2015-05-16  Kugan Vivekanandarajah  <kuganv@linaro.org>
10495             Zhenqiang Chen  <zhenqiang.chen@linaro.org>
10496
10497         PR target/65768
10498         * config/arm/arm.h (DONT_EARLY_SPLIT_CONSTANT): New macro.
10499         * config/arm/arm.md (subsi3, andsi3, iorsi3, xorsi3, movsi): Keep some
10500          large constants in register instead of splitting them.
10501
10502 2015-05-16  Uros Bizjak  <ubizjak@gmail.com>
10503
10504         PR target/66140
10505         * config/alpha/alpha.c (get_aligned_mem): Also look for reload
10506         replacements in memory addresses.
10507         (get_unaligned_address): Ditto.
10508
10509 2015-05-16  James Bowman  <james.bowman@ftdichip.com>
10510
10511         * config/ft32/*: New files for FT32 port.
10512         * doc/install.texi: Add FT32 information.
10513         * doc/invoke.texi: Add FT32 information.
10514         * doc/md.texi: Add FT32 information.
10515         * doc/contrib.texi: Self added.
10516
10517 2015-05-15  Marc Glisse  <marc.glisse@inria.fr>
10518
10519         PR tree-optimization/64454
10520         * match.pd ((X % Y) % Y, (X % Y) < Y): New patterns.
10521         (-1 - A -> ~A): Remove unnecessary condition.
10522
10523 2015-05-15  Gregor Richards  <gregor.richards@uwaterloo.ca>
10524
10525         * config/i386/linux.h (MUSL_DYNAMIC_LINKER): Define.
10526         * config/i386/linux64.h (MUSL_DYNAMIC_LINKER32): Define.
10527         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32): Define.
10528
10529 2015-05-15  Ilya Enkovich  <ilya.enkovich@intel.com>
10530
10531         * ipa-chkp.h (chkp_wrap_function): New.
10532         * ipa-chkp.c (chkp_wrap_function): Remove 'static'.
10533         (chkp_wrap_function_name): New.
10534         (chkp_build_instrumented_fndecl): Use chkp_wrap_function_name
10535         to get wrapper name.
10536         * lto-cgraph.c: Include ipa-chkp.h.
10537         (input_cgraph_1): Avoid alias chain for wrappers.
10538
10539 2015-05-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
10540
10541         PR middle-end/66134
10542         * tree-chkp.c (chkp_get_orginal_bounds_for_abnormal_copy): New.
10543         (chkp_maybe_copy_and_register_bounds): Don't copy abnormal copy.
10544
10545 2015-05-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10546
10547         * config/aarch64/aarch64.h (AARCH64_TUNE_SLOWMUL): Delete.
10548         (AARCH64_FL_SLOWMUL): Delete.
10549         (AARCH64_FL_CRC): Redefine to 1<<3.
10550         (AARCH64_FL_USE_FMA_STEERING_PASS): Redefine to 1<<4.
10551
10552 2015-05-15  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10553
10554         * config/arm/arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Add appropriate
10555         casting.
10556
10557 2015-05-15  Uros Bizjak  <ubizjak@gmail.com>
10558
10559         * config/alpha/alpha.md (extendqidi2): Use general_operand
10560         instead of some_operand for operand[1] predicate.
10561         (extendhidi2): Ditto.
10562         (cbranchdi4): Use general_operand instead of some_operand
10563         for operand[1] and operands[2] predicates.
10564         (cstoredi4): Ditto.
10565         * config/alpha/predicates.md (some_operand): Remove unused predicate.
10566         (some_ni_operand): Ditto.
10567
10568 2015-05-15  Uros Bizjak  <ubizjak@gmail.com>
10569
10570         * config/alpha/alpha.c (alpha_extract_integer): Do not handle
10571         CONST_WIDE_INT and CONST_DOUBLE.  Assert CONST_INT_P (x).
10572         (alpha_legitimate_constant_p) <case CONST_WIDE_INT>: Check high and
10573         low part of the constant using alpha_emit_set_const_1.
10574         (alpha_expand_mov): Do not handle CONST_WIDE_INT and CONST_DOUBLE.
10575
10576 2015-05-14  Rohit Arul Raj  <rohitrulraj@freescale.com>
10577
10578         * varasm.c (output_constant_pool_1): Pass down alignment from
10579         constant pool entry's descriptor to output_constant_pool_2.
10580         (output_object_block): Add comment prior to call to
10581         output_constant_pool_1.
10582
10583 2015-05-14  Vladimir Makarov  <vmakarov@redhat.com>
10584
10585         PR rtl-optimization/65862
10586         * target.def (ira_change_pseudo_allocno_class): New hook.
10587         * targhooks.c (default_ira_change_pseudo_allocno_class): Default
10588         value of the hook.
10589         * targhooks.h (default_ira_change_pseudo_allocno_class): New extern.
10590         * doc/tm.texi.in (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Add the
10591         hook.
10592         * ira-costs.c (find_costs_and_classes): Call the hook and change
10593         classes when it is necessary.
10594         * doc/tm.texi: Update.
10595
10596 2015-05-14  Alexander Monakov  <amonakov@ispras.ru>
10597
10598         * config/i386/i386.md (sibcall_memory): Check that register with
10599         callee address is not also used as one of the arguments, instead
10600         of checking that it is not live after the sibcall.
10601         (sibcall_pop_memory): Ditto.
10602         (sibcall_value_memory): Ditto.
10603         (sibcall_value_pop_memory): Ditto.
10604
10605 2015-05-14  Marc Glisse  <marc.glisse@inria.fr>
10606
10607         * generic-match-head.c (types_match): Handle non-types.
10608         * gimple-match-head.c (types_match): Likewise.
10609         * match.pd: Remove unnecessary TREE_TYPE for types_match.
10610
10611 2015-05-14  Wilco Dijkstra  <wdijkstr@arm.com>
10612
10613         * config/aarch64/aarch64.md (absdi2): Optimize abs expansion.
10614         (csneg3<mode>_insn): Enable expansion of pattern.
10615
10616 2015-05-14  Nick Clifton  <nickc@redhat.com>
10617
10618         * config/rl78/rl78.c (rl78_select_section): Select the correct
10619         default section based upon the category of the decl.
10620
10621 2015-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
10622
10623         PR rtl-optimization/30967
10624         * config/rs6000/rs6000.c (rs6000_rtx_costs): Don't consider
10625         destination mode for the cost of scc patterns.
10626
10627 2015-05-13  Uros Bizjak  <ubizjak@gmail.com>
10628
10629         * config/i386/i386.md (*mul<mode>3_1): Merge with *mulhi3_1
10630         using SWIM248 mode iterator.
10631         (*mulv<mode>4): Use x86_64_sext_operand for operand[2] constraint.
10632         (*mulvhi4): mark operand[1] as commutative.  Use nonimmediate_operand
10633         for operand[2] constraint.
10634         (*mulv<mode>4_1): Merge with *mulvhi4_1 using SWI248 mode iterator.
10635
10636 2015-05-13  Jakub Jelinek  <jakub@redhat.com>
10637
10638         PR middle-end/66133
10639         * omp-low.c (expand_omp_taskreg): For GIMPLE_OMP_TASK expansion,
10640         make sure it is never noreturn, even when the task body does not
10641         return.
10642         (lower_omp_taskreg): For GIMPLE_OMP_TASK, emit GIMPLE_OMP_CONTINUE
10643         right before GIMPLE_OMP_RETURN.
10644         (make_gimple_omp_edges): Accept GIMPLE_OMP_CONTINUE as ->cont
10645         for GIMPLE_OMP_TASK.  For GIMPLE_OMP_RETURN corresponding to
10646         GIMPLE_OMP_TASK add an EDGE_ABNORMAL edge from entry to exit.
10647
10648 2015-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10649
10650         * params.def (PARAM_MAX_POW_SQRT_DEPTH): New param.
10651         * tree-ssa-math-opts.c: Include params.h
10652         (pow_synth_sqrt_info): New struct.
10653         (representable_as_half_series_p): New function.
10654         (get_fn_chain): Likewise.
10655         (print_nested_fn): Likewise.
10656         (dump_fractional_sqrt_sequence): Likewise.
10657         (dump_integer_part): Likewise.
10658         (expand_pow_as_sqrts): Likewise.
10659         (gimple_expand_builtin_pow): Use above to attempt to expand
10660         pow as series of square roots.  Removed now unused variables.
10661
10662 2015-05-13  Uros Bizjak  <ubizjak@gmail.com>
10663
10664         * config/alpha/alpha.c (alpha_emit_set_long_const): Remove c1 argument.
10665         (alpha_extract_integer): Redeclare as static HOST_WIDE_INT.
10666         Remove *p0 and *p1 arguments.  Rewrite function.
10667         (alpha_legitimate_constant_p): Update call to alpha_extract_integer.
10668         (alpha_split_const_mov): Update calls to alpha_extract_integer and
10669         alpha_emit_set_long_const.
10670         (alpha_expand_epilogue): Update calls to alpha_emit_set_long_const.
10671         (alpha_output_mi_thunk_osf): Ditto.
10672         * config/alpha/alpha.md (movti): Do not check operands[1]
10673         for CONST_DOUBLE.
10674
10675 2015-05-13  Richard Biener  <rguenther@suse.de>
10676
10677         PR tree-optimization/66129
10678         * tree-vect-slp.c (vect_build_slp_tree): Make sure all ops are
10679         commutative.
10680         (vect_schedule_slp_instance): Fix typo.
10681
10682 2015-05-13  David Malcolm  <dmalcolm@redhat.com>
10683
10684         * common.opt (fdump-internal-locations): New option.
10685         * input.c: Include diagnostic-core.h.
10686         (get_end_location): New function.
10687         (write_digit): New function.
10688         (write_digit_row): New function.
10689         (dump_location_range): New function.
10690         (dump_labelled_location_range): New function.
10691         (dump_location_info): New function.
10692         * input.h (dump_location_info): New prototype.
10693         * toplev.c (compile_file): Handle flag_dump_locations.
10694
10695 2015-05-13  Eric Botcazou  <ebotcazou@adacore.com>
10696
10697         * gimple-expr.h (is_gimple_constant): Reorder.
10698         * tree-ssa-propagate.c (before_dom_children): Use inline accessor.
10699
10700 2015-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
10701
10702         * combine.c (simplify_set): When generating a CC set, if the
10703         source already is in the correct mode, do not wrap it in a
10704         compare.  Simplify the rest of that code.
10705
10706 2015-05-13  Richard Biener  <rguenther@suse.de>
10707
10708         PR tree-optimization/66123
10709         * tree-ssa-dom.c (propagate_rhs_into_lhs): Check if we found
10710         a taken edge.
10711
10712 2015-05-13  Richard Biener  <rguenther@suse.de>
10713
10714         PR middle-end/66110
10715         * alias.c (alias_sets_conflict_p): Do not treat has_zero_child
10716         specially.
10717         * Makefile.in (dfp.o-warn): Add -Wno-strict-aliasing.
10718
10719 2015-05-13  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
10720
10721         * doc/install.texi: Bump latest automake 1.11 version to 1.11.6.
10722         * aclocal.m4: Regenerated with automake-1.11.6.
10723
10724 2015-05-13  Tom de Vries  <tom@codesourcery.com>
10725
10726         PR tree-optimization/66010
10727         * gimplify.h (gimplify_va_arg_internal): Remove declaration.
10728         * gimplify.c (gimplify_va_arg_internal): Remove and inline into ...
10729         * tree-stdarg.c (expand_ifn_va_arg_1): ... here.  Choose between lval
10730         and rval based on do_deref.
10731
10732 2015-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
10733
10734         PR target/65103
10735         * config/i386/i386.c (ix86_rtx_costs): We want to propagate
10736         link time constants into adress expressions and therefore set
10737         their cost to 0.
10738
10739 2015-05-13  Jakub Jelinek  <jakub@redhat.com>
10740
10741         PR target/66112
10742         * config/i386/i386.md (mulv<mode>4, umulv<mode>4, *umulv<mode>4):
10743         Use SWI248 iterator instead of SWI.
10744         (*mulv<mode>4_1): Use SWI48 instead of SWI.  Simplify output template.
10745         Use eq_attr "alternative" "0" instead of match_test in
10746         length_immediate attribute computation.
10747         (*mulvhi4, *mulvhi4_1): New define_insns.
10748
10749         PR target/66112
10750         * internal-fn.c (get_min_precision): Use UNSIGNED instead of
10751         SIGNED to get precision of non-negative value.
10752
10753 2015-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
10754
10755         PR target/66048
10756         * function.c (diddle_return_value_1): Process bounds first.
10757         * config/i38/i386.c (ix86_function_value_regno_p): Add bnd1
10758         register.
10759
10760 2015-05-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
10761
10762         PR rtl-optimization/64616
10763         * loop-invariant.c (can_move_invariant_reg): New.
10764         (move_invariant_reg): Call above new function to decide whether
10765         instruction can just be moved, skipping creation of temporary
10766         register.
10767
10768 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
10769
10770         PR target/pr66047.c
10771         * i386.c (ix86_function_sseregparm): Only return -1 if local function
10772         with implied regparm is called from -mno-sse function.
10773         (init_cumulative_args): Output error if ix86_function_sseregparm
10774         return -1 and SSE register would be needed.
10775         (function_arg_advance_32): Likewise.
10776         (function_arg_32): Likewise.
10777         * i386.h (ix86_args): Add decl field.
10778
10779 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
10780
10781         PR ipa/65873
10782         * ipa-inline.c (can_inline_edge_p): Allow early inlining of always
10783         inlines across optimization boundary.
10784
10785 2015-05-12  Jason Merrill  <jason@redhat.com>
10786
10787         * config/mmix/mmix.c, config/msp430/msp430.c: Add space between
10788         string literal and macro name.
10789
10790 2015-05-12  Steve Ellcey  <sellcey@imgtec.com>
10791
10792         * config/mips/mips.c (mips_print_operand): Remove 'y' operand code.
10793         * config/mips/mips.md (<GPR:d>lsa): Rewrite with shift operator.
10794         * config/mips/predicates.md (const_immlsa_operand): Remove log call.
10795
10796 2015-05-12  David Malcolm  <dmalcolm@redhat.com>
10797
10798         * doc/invoke.texi (Warning Options): Add -Wmisleading-indentation.
10799         (-Wmisleading-indentation): New option.
10800         * Makefile.in (C_COMMON_OBJS): Add c-family/c-indentation.o.
10801
10802 2015-05-12  Uros Bizjak  <ubizjak@gmail.com>
10803
10804         * config/alpha/alpha.h (TARGET_SUPPORTS_WIDE_INT): New define.
10805         * config/alpha/alpha.c (alpha_rtx_costs): Handle CONST_WIDE_INT.
10806         (alpha_extract_integer): Ditto.
10807         (alpha_legitimate_constant_p): Ditto.
10808         (alpha_split_tmode_pair): Ditto.
10809         (alpha_preferred_reload_class): Add CONST_WIDE_INT.
10810         (alpha_expand_mov): Ditto.
10811         (print_operand): Remove handling of 'H' modifier.
10812         <case 'm'>: Remove CONST_DOUBLE handling.
10813         (summarize_insn): Handle CONST_WIDE_INT.
10814         * config/alpha/alpha.md (*andsi_internal): Remove H constraint.
10815         (anddi3): Ditto.
10816         (movti): Handle CONST_WIDE_INT.
10817         * config/alpha/constraints.md ('H'): Remove constraint definition.
10818         ('G'): Do not match MODE_FLOAT class.
10819         * config/alpha/predicates.md (const0_operand): Also match
10820         const_wide_int.
10821         (non_add_const_operand): Ditto.
10822         (non_zero_const_operand): Ditto.
10823         (some_operand): Ditto.
10824         (input_operand): Ditto.  Handle CONST_WIDE_INT.
10825         (and_operand): Do not match const_double.
10826         * config/alpha/sync.md (fetchop_constr): Remove H constraint.
10827
10828 2015-05-12  Andrew MacLeod  <amacleod@redhat.com>
10829
10830         PR target/65697
10831         * coretypes.h (MEMMODEL_SYNC, MEMMODEL_BASE_MASK): New macros.
10832         (enum memmodel): Add SYNC_{ACQUIRE,RELEASE,SEQ_CST}.
10833         * tree.h (memmodel_from_int, memmodel_base, is_mm_relaxed,
10834         is_mm_consume,is_mm_acquire, is_mm_release, is_mm_acq_rel,
10835         is_mm_seq_cst, is_mm_sync): New accessor functions.
10836         * builtins.c (expand_builtin_sync_operation,
10837         expand_builtin_compare_and_swap): Use MEMMODEL_SYNC_SEQ_CST.
10838         (expand_builtin_sync_lock_release): Use MEMMODEL_SYNC_RELEASE.
10839         (get_memmodel,  expand_builtin_atomic_compare_exchange,
10840         expand_builtin_atomic_load, expand_builtin_atomic_store,
10841         expand_builtin_atomic_clear): Use new accessor routines.
10842         (expand_builtin_sync_synchronize): Use MEMMODEL_SYNC_SEQ_CST.
10843         * optabs.c (expand_compare_and_swap_loop): Use MEMMODEL_SYNC_SEQ_CST.
10844         (maybe_emit_sync_lock_test_and_set): Use new accessors and
10845         MEMMODEL_SYNC_ACQUIRE.
10846         (expand_sync_lock_test_and_set): Use MEMMODEL_SYNC_ACQUIRE.
10847         (expand_mem_thread_fence, expand_mem_signal_fence, expand_atomic_load,
10848         expand_atomic_store): Use new accessors.
10849         * emit-rtl.c (need_atomic_barrier_p): Add additional enum cases.
10850         * tsan.c (instrument_builtin_call): Update check for memory model beyond
10851         final enum to use MEMMODEL_LAST.
10852         * c-family/c-common.c: Use new accessor for memmodel_base.
10853         * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap): Use new
10854         accessors.
10855         * config/aarch64/atomics.md (atomic_load<mode>,atomic_store<mode>,
10856         arch64_load_exclusive<mode>, aarch64_store_exclusive<mode>,
10857         mem_thread_fence, *dmb): Likewise.
10858         * config/alpha/alpha.c (alpha_split_compare_and_swap,
10859         alpha_split_compare_and_swap_12): Likewise.
10860         * config/arm/arm.c (arm_expand_compare_and_swap,
10861         arm_split_compare_and_swap, arm_split_atomic_op): Likewise.
10862         * config/arm/sync.md (atomic_load<mode>, atomic_store<mode>,
10863         atomic_loaddi): Likewise.
10864         * config/i386/i386.c (ix86_destroy_cost_data, ix86_memmodel_check):
10865         Likewise.
10866         * config/i386/sync.md (mem_thread_fence, atomic_store<mode>): Likewise.
10867         * config/ia64/ia64.c (ia64_expand_atomic_op): Add new memmodel cases and
10868         use new accessors.
10869         * config/ia64/sync.md (mem_thread_fence, atomic_load<mode>,
10870         atomic_store<mode>, atomic_compare_and_swap<mode>,
10871         atomic_exchange<mode>): Use new accessors.
10872         * config/mips/mips.c (mips_process_sync_loop): Likewise.
10873         * config/pa/pa.md (atomic_loaddi, atomic_storedi): Likewise.
10874         * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier,
10875         rs6000_post_atomic_barrier): Add new cases.
10876         (rs6000_expand_atomic_compare_and_swap): Use new accessors.
10877         * config/rs6000/sync.md (mem_thread_fence): Add new cases.
10878         (atomic_load<mode>): Add new cases and use new accessors.
10879         (store_quadpti): Add new cases.
10880         * config/s390/s390.md (mem_thread_fence, atomic_store<mode>): Use new
10881         accessors.
10882         * config/sparc/sparc.c (sparc_emit_membar_for_model): Use new accessors.
10883         * doc/extend.texi: Update docs to indicate 16 bits are used for memory
10884         model, not 8.
10885
10886 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
10887
10888         * ipa-devirt.c (type_with_linkage_p): New function.
10889         (type_in_anonymous_namespace_p): Move here from tree.c; assert that
10890         type has linkage.
10891         (odr_type_p): Move here from ipa-utils.h; use type_with_linkage_p.
10892         (can_be_name_hashed_p): Simplify.
10893         (hash_odr_name): Check that type has linkage before checking if it is
10894         anonymous.
10895         (types_same_for_odr): Likewise.
10896         (odr_name_hasher::equal): Likewise.
10897         (odr_subtypes_equivalent_p): Likewise.
10898         (warn_types_mismatch): Likewise.
10899         (get_odr_type): Likewise.
10900         (odr_types_equivalent_p): Fix checking of TYPE_MAIN_VARIANT.
10901         * ipa-utils.h (odr_type_p): Move offline.
10902         * tree.c (need_assembler_name_p): Fix handling of types
10903         without linkages.
10904         (type_in_anonymous_namespace_p): Move to ipa-devirt.c
10905
10906 2015-05-12  David Malcolm  <dmalcolm@redhat.com>
10907
10908         * timevar.c (timevar_enable): Delete in favor of...
10909         (g_timer): New global.
10910         (struct timevar_def): Move to timevar.h inside class timer.
10911         (struct timevar_stack_def): Likewise.
10912         (timevars): Delete global in favor of field "m_timevars" within
10913         class timer in timevar.h
10914         (stack): Likewise, in favor of field "m_stack".
10915         (unused_stack_instances): Likewise, in favor of field
10916         "m_unused_stack_instances".
10917         (start_time): Likewise, in favor of field "m_start_time".
10918         (get_time): Eliminate check for timevar_enable.
10919         (timer::timer): New function, built from part of timevar_init.
10920         (timevar_init): Rewrite idempotency test from using
10921         "timevar_enable" bool to using dynamic allocation of "g_timer".
10922         Move rest of implementation into timer's constructor.
10923         (timevar_push_1): Rename to...
10924         (timer::push): ...this, adding "m_" prefixes to variables that
10925         are now fields of timer.
10926         (timevar_pop_1): Likewise, rename to...
10927         (timer::pop): ...this, and add "m_" prefixes.
10928         (timevar_start): Replace test for "timevar_enable" with one for
10929         "g_timer", and move bulk of implementation to...
10930         (timer::start): ...here, adding "m_" prefixes.
10931         (timevar_stop): Likewise, from here...
10932         (timer::stop): ...to here.
10933         (timevar_cond_start): Likewise, from here...
10934         (timer::cond_start): ...to here.
10935         (timevar_cond_stop): Likewise, from here...
10936         (timer::cond_stop): ...to here.
10937         (validate_phases): Rename to...
10938         (timer::validate_phases): ...this, and add "m_" prefixes.  Make
10939         locals "total" and "tv" const.
10940         (timevar_print): Rename to...
10941         (timer::print): ...this, and add "m_" prefixes.  Make locals
10942         "total" and "tv" const.  Eliminate test for timevar_enable.
10943         * timevar.h (timevar_enable): Eliminate.
10944         (g_timer): New declaration.
10945         (timevar_push_1): Eliminate.
10946         (timevar_pop_1): Eliminate.
10947         (timevar_print): Eliminate.
10948         (class timer): New class.
10949         (timevar_push): Rewrite to use g_timer.
10950         (timevar_pop): Likewise.
10951         * toplev.c (toplev::~toplev): Likewise.
10952
10953 2015-05-12  Richard Earnshaw  <rearnsha@arm.com>
10954
10955         * arm-protos.h (arm_sched_autopref): Delete.
10956         (tune_params): Re-organize, use enums for flag values.
10957         (FUSE_OPS): New macro.
10958         * arm.c (ARM_PREFETCH_NOT_BENEFICIAL): Update.
10959         (ARM_PREFETCH_BENEFICIAL): Likewise.
10960         (ARM_FUSE_NOTHING, ARM_FUSE_MOVW_MOVT): Delete.
10961         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
10962         (arm_xscale_tune, arm_9e_tune, arm_marvell_pj4_tune)
10963         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a8_tune)
10964         (arm_cortex_a7_tune, arm_cortex_a15_tune, arm_cortex_a53_tune)
10965         (arm_cortex_a57_tune,  arm_xgene1_tune, arm_cortex_a5_tune)
10966         (arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune)
10967         (arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune): Use new
10968         format.
10969         (arm_option_override, thumb2_reorg, arm_print_tune_info)
10970         (aarch_macro_fusion_pair_p): Update uses of current_tune.
10971         * arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Likewise.
10972
10973 2015-05-12  Sandra Loosemore  <sandra@codesourcery.com>
10974
10975         * config/nios2/nios2.md (trap, ctrapsi4): Use "trap" instead of
10976         "break".
10977
10978 2015-05-12  Chung-Lin Tang  <cltang@codesourcery.com>
10979             Sandra Loosemore <sandra@codesourcery.com>
10980
10981         * config/nios2/nios2.h (enum reg_class): Add IJMP_REGS enum
10982         value.
10983         (REG_CLASS_NAMES): Add "IJMP_REGS".
10984         (REG_CLASS_CONTENTS): Add new entry for IJMP_REGS.
10985         * config/nios2/nios2.md (indirect_jump,*tablejump): Adjust to
10986         use new "c" register constraint.
10987         * config/nios2/constraint.md (c): New register constraint
10988         corresponding to IJMP_REGS.
10989
10990 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
10991
10992         * config/rs6000/rs6000.md (*rotlsi3_internal4, *rotlsi3_internal5,
10993         *rotlsi3_internal6, rlwinm, 5 unnamed define_insns, and 6
10994         define_splits): Delete, revamp, transmogrify into ...
10995         (*rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
10996         *ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
10997         *lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
10998         New.
10999
11000 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
11001
11002         * config/rs6000/rs6000.md (rs6000_adjust_atomic_subword): Use
11003         gen_ashlsi3 and gen_andsi3 instead of gen_rlwinm.
11004
11005 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
11006
11007         * config/rs6000/rs6000.md (extzv): FAIL for SImode.
11008         (extzvsi_internal, *extzvsi_internal1, *extzvsi_internal2,
11009         *rotlsi3_internal7le, *rotlsi3_internal7be, *rotlsi3_internal8le,
11010         *rotlsi3_internal8be, *rotlsi3_internal9le, *rotlsi3_internal9be,
11011         *rotlsi3_internal10le, *rotlsi3_internal10be, *rotlsi3_internal11le,
11012         *rotlsi3_internal11be, *rotlsi3_internal12le, *rotlsi3_internal12be,
11013         *lshiftrt_internal1le, *lshiftrt_internal1be, *lshiftrt_internal2le,
11014         *lshiftrt_internal2be, *lshiftrt_internal3le, *lshiftrt_internal3be,
11015         *lshiftrt_internal4le, *lshiftrt_internal4be, *lshiftrt_internal5le,
11016         *lshiftrt_internal5be, *lshiftrt_internal5le, *lshiftrt_internal5be,
11017         *rotldi3_internal7le, *rotldi3_internal7be, *rotldi3_internal8le,
11018         *rotldi3_internal8be, *rotldi3_internal9le, *rotldi3_internal9be,
11019         *rotldi3_internal10le, *rotldi3_internal10be, *rotldi3_internal11le,
11020         *rotldi3_internal11be, *rotldi3_internal12le, *rotldi3_internal12be,
11021         *rotldi3_internal13le, *rotldi3_internal13be, *rotldi3_internal14le,
11022         *rotldi3_internal14be, *rotldi3_internal15le, *rotldi3_internal15be,
11023         and 30 corresponding splitters): Delete.
11024
11025 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
11026
11027         * config/rs6000/rs6000.md (define_split for bswaphi): Don't use
11028         zero_extract.
11029
11030 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
11031
11032         * combine.c (recog_for_combine_1): New function, factored out
11033         from recog_for_combine.
11034         (change_zero_ext): New function.
11035         (recog_for_combine): If recog fails, try again with the pattern
11036         modified by change_zero_ext; if that still fails, restore the
11037         pattern.
11038
11039 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
11040
11041         * combine.c (get_undo_marker): New function.
11042         (undo_to_marker): New function, largely factored out from ...
11043         (undo_all): ... this.  Adjust.
11044
11045 2015-05-12  Richard Biener  <rguenther@suse.de>
11046
11047         PR tree-optimization/66101
11048         * tree-ssa-dce.c (remove_dead_stmt): Properly mark loops for
11049         fixup if we turn a loop exit edge to a fallthru edge.
11050
11051 2015-05-12  Richard Biener  <rguenther@suse.de>
11052
11053         PR tree-optimization/37021
11054         * tree-vectorizer.h (struct _slp_tree): Add two_operators flag.
11055         (SLP_TREE_TWO_OPERATORS): New define.
11056         * tree-vect-slp.c (vect_create_new_slp_node): Initialize
11057         SLP_TREE_TWO_OPERATORS.
11058         (vect_build_slp_tree_1): Allow two mixing plus/minus in an
11059         SLP node.
11060         (vect_build_slp_tree): Adjust.
11061         (vect_analyze_slp_cost_1): Likewise.
11062         (vect_schedule_slp_instance): Vectorize mixing plus/minus by
11063         emitting two vector stmts and mixing the results.
11064
11065 2015-05-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>
11066
11067         * call.c (print_z_candidates): Remove dead code.
11068
11069 2015-05-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11070
11071         * config/s390/2827.md: Split zEC12_simple into zEC12_simple_int
11072         and zEC12_simple_fp.
11073         * config/s390/s390.c (s390_issue_rate): Set issue rate for zEC12
11074         to 1.
11075
11076 2015-05-12  Tom de Vries  <tom@codesourcery.com>
11077
11078         PR tree-optimization/66010
11079         * gimplify.c (gimplify_modify_expr): Handle new do_deref argument of
11080         ifn_va_arg.
11081         * gimplify.h (gimplify_va_arg_internal): Remove loc parameter.
11082         (gimplify_va_arg_internal): Remove loc parameter.  Assert no array-typed
11083         va_lists are passed, and remove corresponding handling.
11084         (gimplify_va_arg_expr): Only take address of ap if necessary.  Add
11085         do_deref argument to ifn_va_arg.
11086         * tree-stdarg.c (expand_ifn_va_arg_1): Handle new do_deref argument of
11087         ifn_va_arg.
11088
11089 2015-05-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11090
11091         PR target/65955
11092         * config/arm/arm.md (movcond_addsi): Check that operands[2] is a
11093         REG before taking its REGNO.
11094
11095 2015-05-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
11096
11097         * combine.c i(set_nonzero_bits_and_sign_copies): Split code updating
11098         rsp->sign_bit_copies and rsp->nonzero_bits into ...
11099         (update_rsp_from_reg_equal): This.  Also use REG_EQUAL note on src if
11100         present to get more accurate information about the number of sign bit
11101         copies and non zero bits.
11102
11103 2015-05-12  Richard Biener  <rguenther@suse.de>
11104
11105         * tree-vect-slp.c (vect_build_slp_tree_1): For BB vectorization
11106         do not allow unrolling.
11107
11108 2015-05-11  Richard Henderson  <rth@redhat.com>
11109
11110         * config/i386/i386-modes.def (CCP): New.
11111         * config/i386/i386.c (put_condition_code): Handle it.
11112         (ix86_match_ccmode, ix86_cc_modes_compatible): Likewise.
11113
11114 2015-05-11  Richard Henderson  <rth@redhat.com>
11115
11116         * target.def (md_asm_clobbers): Replace with...
11117         (md_asm_adjust): this.
11118         * tm.texi.in (TARGET_MD_ASM_CLOBBERS): Remove.
11119         (TARGET_MD_ASM_ADJUST): New.
11120         * tm.texi: Rebuild.
11121         * hooks.c (hook_tree_tree_tree_tree_3rd_identity): Remove.
11122         * hooks.h (hook_tree_tree_tree_tree_3rd_identity): Remove.
11123         * system.h (TARGET_MD_ASM_CLOBBERS): Poison.
11124
11125         * cfgexpand.c (check_operand_nalternatives): Accept vector of
11126         constraints instead of lists of outputs and inputs.
11127         (expand_asm_stmt): Save and restore input_location around the
11128         body of the function.  Move asm data into vectors instead of
11129         building tree lists.  Generate cleanup sequences as needed,
11130         rather than waiting til the end.  Use new md_asm_adjust hook.
11131
11132         * config/vxworks.c: Include vec.h before target.h.
11133         * gimple.c: Likewise.
11134         * incpath.c: Likewise.
11135         * mode-switching.c: Likewise.
11136
11137         * config/cris/cris.c (cris_md_asm_clobbers): Convert to...
11138         (cris_md_asm_adjust): this.
11139         (TARGET_MD_ASM_CLOBBERS): Remove.
11140         (TARGET_MD_ASM_ADJUST): New.
11141         * config/i386/i386.c (ix86_md_asm_clobbers): Convert to...
11142         (ix86_md_asm_adjust): this.
11143         (TARGET_MD_ASM_CLOBBERS): Remove.
11144         (TARGET_MD_ASM_ADJUST): New.
11145         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): Convert to...
11146         (mn10300_md_asm_adjust): this.
11147         (TARGET_MD_ASM_CLOBBERS): Remove.
11148         (TARGET_MD_ASM_ADJUST): New.
11149         * config/rs6000/rs6000.c (rs6000_md_asm_clobbers): Convert to...
11150         (rs6000_md_asm_adjust): this.
11151         (TARGET_MD_ASM_CLOBBERS): Remove.
11152         (TARGET_MD_ASM_ADJUST): New.
11153         * config/visium/visium.c (visium_md_asm_clobbers): Convert to...
11154         (visium_md_asm_adjust): this.
11155         (TARGET_MD_ASM_CLOBBERS): Remove.
11156         (TARGET_MD_ASM_ADJUST): New.
11157
11158 2015-05-11  Richard Henderson  <rth@redhat.com>
11159
11160         * gimplify.c (gimplify_asm_expr): Set gimple_asm_volatile_p
11161         if noutputs is zero.
11162         * cfgexpand.c (expand_asm_stmt): Use gimple_asm_volatile_p unchanged.
11163
11164         * cfgexpand.c (expand_asm_operands): Merge into...
11165         (expand_asm_stmt): ... here.
11166
11167         * cfgexpand.c (expand_asm_operands): Don't call
11168         resolve_asm_operand_names.
11169         * stmt.c (resolve_asm_operand_names): Clarify block comment.
11170
11171 2015-05-11  Jan Hubicka  <hubicka@ucw.cz>
11172
11173         * dwarf2out.c (gen_member_die): Sanity check that we access
11174         TYPE_MAIN_VARIANT for TYPE_METHODS.
11175         * function.c (use_register_for_decl): Look for TYPE_MAIN_VARIANT when
11176         checking TYPE_METHODS.
11177         * tree.c (free_lang_data_in_type): See TYPE_METHODS to error_mark_node
11178         if non-null.
11179         (build_distinct_type_copy): Clear TYPE_METHODS.
11180         (verify_type_variant): Verify that TYPE_METHODS is NULL for variants.
11181         (verify_type): Allow TYPE_METHODS to be error_mark_node.
11182         * tree.def: Update docs of TYPE_STUB_DECL and TYPE_METHODS.
11183
11184 2015-05-11  Eric Botcazou  <ebotcazou@adacore.com>
11185
11186         * emit-rtl.c (emit_pattern_after_setloc): Add missing guard.
11187         (emit_pattern_before_setloc): Likewise.
11188
11189 2015-05-11  Richard Sandiford  <richard.sandiford@arm.com>
11190
11191         * genrecog.c (match_pattern_1): Expect the pattern to be a SEQUENCE
11192         for define_peephole2s.
11193         (get_peephole2_pattern): New function.
11194         (main): Use it.  Call validate_pattern.
11195
11196 2015-05-11  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
11197
11198         * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Use
11199         LAST_CALLEE_SAVED_REG instead of hard-coded register number.
11200         (Last callee saved reg is different for AVR_TINY architecture)
11201
11202 2015-05-11  Uros Bizjak  <ubizjak@gmail.com>
11203
11204         * config/i386/i386.c (ix86_loop_unroll_adjust): Use PATTERN (insn)
11205         when looking for memory references.
11206
11207 2015-05-11  Alexander Monakov  <amonakov@ispras.ru>
11208
11209         PR target/65753
11210         * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow PIC sibcalls
11211         via function pointers.
11212
11213 2015-05-11  Alexander Monakov  <amonakov@ispras.ru>
11214
11215         * calls.c (prepare_call_address): Transform PLT call to GOT lookup and
11216         indirect call by forcing address into a pseudo with -fno-plt.
11217         * common.opt (flag_plt): New option.
11218         * doc/invoke.texi (Code Generation Options): Add -fno-plt.
11219         ([-fno-plt]): Document.
11220
11221 2015-05-11  Markus Trippelsdorf  <markus@trippelsdorf.de>
11222
11223         PR bootstrap/66105
11224         * config/rs6000/option-defaults.h: Add space between string literal
11225         and macro name.
11226
11227 2015-05-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>
11228
11229         * gcc.target/arm/pr64616.c: Test dump rather than assembly to work
11230         accross ARM targets.
11231
11232 2015-05-11  Christian Bruel  <christian.bruel@st.com>
11233
11234         * config/arm/arm-protos.h (thumb_code, thumb1_code): Remove.
11235         * config/arm/vxworks.h (thumb_code): Replace with TARGET_THUMB.
11236
11237 2015-05-11  Richard Sandiford  <richard.sandiford@arm.com>
11238
11239         PR rtl-optimization/66076
11240         * rtlanal.c (generic_subrtx_iterator <T>::add_single_to_queue):
11241         Don't grow the heap array if it is already big enough from a
11242         previous iteration.
11243
11244 2015-05-11  Christian Bruel  <christian.bruel@st.com>
11245
11246         * config/arm/arm-protos.h (arm_declare_function_name): Declare.
11247         (is_called_in_ARM_mode): Remove.
11248         * config/arm/arm.c (is_called_in_ARM_mode): Declare static bool.
11249         (arm_declare_function_name): Moved from from ARM_DECLARE_FUNCTION_NAME.
11250         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Call
11251          arm_declare_function_name.
11252
11253 2015-05-11  Christian Bruel  <christian.bruel@st.com>
11254
11255         * config/arm/arm.c (arm_option_override): Reoganized and split into :
11256         (arm_option_params_internal); New function.
11257         (arm_option_check_internal): New function.
11258         (arm_option_override_internal): New function.
11259         (thumb_code, thumb1_code): Remove.
11260         * config/arm/arm.h (TREE_TARGET_THUMB, TREE_TARGET_THUMB1): New macros.
11261         (TREE_TARGET_THUM2, TREE_TARGET_ARM): Likewise.
11262         (thumb_code, thumb1_code): Remove.
11263         * config/arm/arm.md (is_thumb, is_thumb1): Check TARGET flag.
11264
11265 2015-05-11  Uros Bizjak  <ubizjak@gmail.com>
11266
11267         * config/alpha/alpha.c (alpha_emit_set_const_1)
11268         (alpha_emit_set_long_const, alpha_extract_integer)
11269         (alpha_legitimate_constant_p, alpha_split_const_mov)
11270         (alpha_expand_block_clear, alpha_expand_zap_mask, print_operand):
11271         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
11272         (alpha_emit_set_const_1): Change "(HOST_WIDE_INT) 1" to
11273         HOST_WIDE_INT_1U.
11274         * config/alpha/predicates.md (mode_mask_operand): Do not match
11275         const_double RTX.
11276         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
11277         * config/alpha/alpha.md (abstf, *abstf_internal, UNSPEC_ZAP splitter):
11278         Change "(HOST_WIDE_INT) 1" to HOST_WIDE_INT_1U.
11279         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
11280         (*negtf_internal): Use gen_int_mode instead of immed_double_const.
11281
11282 2015-05-11  Jakub Jelinek  <jakub@redhat.com>
11283
11284         PR target/65780
11285         * config/s390/linux.h (TARGET_BINDS_LOCAL_P): Define to
11286         default_binds_local_p_2.
11287         * config/arm/linux-elf.h (TARGET_BINDS_LOCAL_P): Likewise.
11288         * config/aarch64/aarch64-linux.h (TARGET_BINDS_LOCAL_P): Likewise.
11289
11290 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
11291
11292         * tree.c (verify_type_variant): Check TYPE_VALUES_RAW and TYPE_PRECISION
11293
11294 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
11295
11296         Patch by Richard Biener
11297         * coverage.c (coverage_obj_init): Delay building of type variant
11298         until the type is finished.
11299
11300 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
11301
11302         * ipa-devirt.c (warn_types_mismatch): Do not ICE when warning about
11303         mismatch between C and C++ type; compoare correctly ARG_TYPES
11304         for non-prototypes and output correctly parameter index for METHOD_TYPE.
11305         (odr_types_equivalent_p): Fix wording of warning about attributes;
11306         it is OK to match prototype and non-prototype.
11307
11308 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
11309
11310         * tree.c (free_lang_data_in_type): Free TREE_PURPOSE of
11311         TYPE_ARG_TYPES list.
11312         (verify_type): Permit non-NULL TREE_PURPOSE in non-LTO builds.
11313         * tree.def (FUNCTION_TYPE): Document TREE_PURPOSE in TYPE_ARG_TYPES
11314
11315 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
11316
11317         * tree.c (verify_type): Verify TYPE_BINFO and TYPE_VALUES_RAW.
11318         * tree.h (is_lang_specific): Constify.
11319
11320 2015-05-09  Marc Glisse  <marc.glisse@inria.fr>
11321
11322         PR tree-optimization/64454
11323         * tree-vrp.c (extract_range_from_binary_expr_1) <TRUNC_MOD_EXPR>:
11324         Rewrite.
11325
11326 2015-05-08  Jason Merrill  <jason@redhat.com>
11327
11328         * bitmap.c, c/c-aux-info.c, cfg.c, cfghooks.c, cgraph.c,
11329         config/aarch64/aarch64.md config/alpha/vms.h, config/darwin.c,
11330         config/darwin.h, config/darwin9.h, config/elfos.h,
11331         config/i386/bsd.h, config/ia64/ia64.c, config/lm32/lm32.h,
11332         config/microblaze/microblaze.h, config/mips/mips.h,
11333         config/mmix/mmix.c, config/msp430/msp430.c, config/nios2/nios2.h,
11334         config/nvptx/nvptx.c, config/nvptx/nvptx.h, config/pa/pa.c,
11335         config/pa/pa.h, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
11336         config/rs6000/xcoff.h, config/rx/rx.h, config/s390/s390.h,
11337         config/sparc/sol2.h, config/sparc/sparc.h, config/visium/visium.h,
11338         cppbuiltin.c, defaults.h, doc/invoke.texi, dwarf2cfi.c,
11339         dwarf2out.c, final.c, gcc.c, gcov-dump.c, gcov.c, ipa-cp.c,
11340         ipa-inline.c, ipa-polymorphic-call.c, ipa-profile.c, ipa-prop.c,
11341         ira-color.c, ira.c, loop-doloop.c, loop-iv.c, mcf.c,
11342         modulo-sched.c, predict.c, profile.c, stor-layout.c, toplev.c,
11343         tree-ssa-reassoc.c, value-prof.c, wide-int-print.cc: Add space
11344         between string literal and macro name.
11345
11346 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11347
11348         * jump.c: Change argument types to rtx_insn *.
11349         * rtl.h: Adjust.
11350
11351 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11352
11353         * lra-constraints.c: Change argument type to rtx_insn *.
11354
11355 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11356
11357         * df-problems.c: Change argument type to rtx_insn *.
11358
11359 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11360
11361         * combine.c: Change argument type to rtx_insn *.
11362
11363 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11364
11365         * rtl.h: Adjust.
11366         * rtlanal.c: Change argument type to rtx_insn *.
11367
11368 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11369
11370         * sched-deps.c: Change argument types to rtx_insn *.
11371         * sched-int.h: Adjust.
11372
11373 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11374
11375         * dwarf2cfi.c: Change argument type to rtx_insn *.
11376
11377 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11378
11379         * ira.c (decrease_live_ranges_number): Changetype of local
11380         variable to rtx_insn *.
11381         * recog.c: Change argument types to rtx_insn *.
11382         * recog.h: Adjust.
11383
11384 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11385
11386         * reorg.c: Change argument types to rtx_insn *.
11387
11388 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11389
11390         * ira-color.c: Change argument types to rtx_insn *.
11391         * lra-eliminations.c: Likewise.
11392         * ira.h: Adjust.
11393
11394 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11395
11396         * gcse.c: Change argument types to rtx_insn *.
11397
11398 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11399
11400         * cse.c (cse_change_cc0_mode): Change argument type to rtx_insn *.
11401
11402 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11403
11404         * emit-rtl.c (emit_debug_insn_before): Change argument type to
11405         rtx_insn *.
11406         * rtl.h: Adjust.
11407
11408 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11409
11410         * emit-rtl.c (emit_note_before): Change argument type to rtx_insn *.
11411         * rtl.h: Adjust.
11412
11413 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11414
11415         * emit-rtl.c (emit_note_after): Change argument type to rtx_insn *.
11416         * rtl.h: Adjust.
11417
11418 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11419
11420         * emit-rtl.c (prev_cc0_setter): Change argument type to rtx_insn *.
11421         * rtl.h: Adjust.
11422
11423 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11424
11425         * rtlanal.c (noop_move_p): Change argument type to rtx_insn *.
11426         * rtl.h: Adjust.
11427
11428 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11429
11430         * rtlanal.c (add_shallow_copy_of_reg_note): Change argument type
11431         to rtx_insn *.
11432         * rtl.h: Adjust.
11433
11434 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11435
11436         * rtlanal.c (remove_reg_equal_equiv_notes): Change argument type
11437         to rtx_insn *.
11438         * rtl.h: Likewise.
11439
11440 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11441
11442         * except.c (can_nonlocal_goto): Change type of argument to
11443         rtx_insn *.
11444         * rtl.h: Adjust.
11445
11446 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11447
11448         * rtlanal.c (computed_jump_p): Cange argument type to rtx_insn *.
11449         * rtl.h: Adjust.
11450
11451 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11452
11453         * rtlanal.c (in_insn_list_p): Renamed from in_expr_list_p.
11454         * cfgrtl.c (can_delete_label_p): Adjust.
11455         * rtl.h: likewise.
11456
11457 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11458
11459         * reorg.c (stop_search_p): Change argument to rtx_insn *.
11460
11461 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11462
11463         * except.c (make_reg_eh_region_note): Change argument to
11464         rtx_insn *.
11465         (make_reg_eh_region_note_nothrow_nononlocal): Likewise.
11466         * except.h: Adjust.
11467
11468 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11469
11470         * mode-switching.c (commit_mode_sets): Change type of local
11471         variable from rtx to rtx_insn *.
11472
11473 2015-05-08  Jim Wilson  <jim.wilson@linaro.org>
11474
11475         * doc/install.texi (--enable-languages): Add missing jit and lto info.
11476         Add ^ to grep command.
11477         * doc/match-and-simplify.texi (GIMPLE API): Add missing fourth tree
11478         arg to last gimple_simplify declaration.  Add missing gimple_build
11479         declaration for built-in function case with four tree args.
11480
11481 2015-05-08  Gregor Richards  <gregor.richards@uwaterloo.ca>
11482             Szabolcs Nagy  <szabolcs.nagy@arm.com>
11483
11484         * config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Define.
11485         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Define.
11486         (GNU_USER_DYNAMIC_LINKERN32): Update.
11487
11488 2015-05-08  Richard Biener  <rguenther@suse.de>
11489
11490         PR tree-optimization/66036
11491         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
11492         Handle strided group loads.
11493         (vect_verify_datarefs_alignment): Likewise.
11494         (vect_enhance_data_refs_alignment): Likewise.
11495         (vect_analyze_group_access): Likewise.
11496         (vect_analyze_data_ref_access): Likewise.
11497         (vect_analyze_data_ref_accesses): Likewise.
11498         * tree-vect-stmts.c (vect_model_load_cost): Likewise.
11499         (vectorizable_load): Likewise.
11500
11501 2015-05-08  Segher Boessenkool  <segher@kernel.crashing.org>
11502
11503         * config/rs6000/rs6000.md: Require operand inequality in one
11504         of the peepholes.
11505
11506 2015-05-08  Richard Sandiford  <richard.sandiford@arm.com>
11507             Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
11508
11509         * config/i386/i386.md (<mode>_ldx, *<mode>_ldx): Remove mode
11510         from (set ...).
11511         * config/rx/rx.md (movdi, movdf): Likewise.
11512         Likewise for define_peephole2s.
11513
11514 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
11515
11516         * config/aarch64/arm_neon.h (vceq_s64, vceq_u64, vceqz_s64, vceqz_u64,
11517         vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64, vcgtz_s64, vcle_s64,
11518         vcle_u64, vclez_s64, vclt_s64, vclt_u64, vcltz_s64, vtst_s64,
11519         vtst_u64): Rewrite using gcc vector extensions.
11520
11521 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
11522
11523         * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>,
11524         vcond<mode><mode>, vcondu<mode><mode>): Add DImode variant.
11525
11526 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
11527
11528         * optabs.c (vector_compare_rtx): Handle RTL operands having VOIDmode.
11529
11530 2015-05-08  Szabolcs Nagy  <szabolcs.nagy@arm.com>
11531
11532         * config/glibc-stdint.h (OPTION_MUSL): Define.
11533         (INT_FAST16_TYPE, INT_FAST32_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE):
11534         Change the definition based on OPTION_MUSL for 64 bit targets.
11535         * config/linux.h (OPTION_MUSL): Redefine.
11536         * config/alpha/linux.h (OPTION_MUSL): Redefine.
11537         * config/rs6000/linux.h (OPTION_MUSL): Redefine.
11538         * config/rs6000/linux64.h (OPTION_MUSL): Redefine.
11539
11540 2015-05-08  Gregor Richards  <gregor.richards@uwaterloo.ca>
11541             Szabolcs Nagy  <szabolcs.nagy@arm.com>
11542
11543         * config.gcc (LIBC_MUSL): New tm_defines macro.
11544         * config/linux.h (OPTION_MUSL): Define.
11545         (MUSL_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER32,)
11546         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32,)
11547         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
11548         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
11549         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
11550         * config/linux.opt (mmusl): New option.
11551         * doc/invoke.texi (GNU/Linux Options): Document -mmusl.
11552         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
11553         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
11554         * configure: Regenerate.
11555
11556 2015-05-08  H.J. Lu  <hongjiu.lu@intel.com>
11557             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
11558
11559         PR target/48904
11560         * config.gcc (x86_64-*-knetbsd*-gnu): Add i386/knetbsd-gnu64.h.
11561         * config/i386/knetbsd-gnu64.h: New file.
11562
11563 2015-05-08  Marek Polacek  <polacek@redhat.com>
11564
11565         PR c/64918
11566         * doc/invoke.texi: Document -Woverride-init-side-effects.
11567
11568 2015-05-07  Marek Polacek  <polacek@redhat.com>
11569
11570         PR c/65179
11571         * doc/invoke.texi: Document -Wshift-negative-value.
11572
11573 2015-05-06  Aditya Kumar  <hiraditya@msn.com>
11574
11575         * gcov-tool.c (do_merge): Refactore to remove int ret.
11576         * ipa-icf.c (sem_item::hash_referenced_symbol_properties): Change
11577         !type == FUNC to type != FUNC.
11578         * reload.h (struct target_reload): Changee to type of
11579         x_spill_indirect_levels from bool to unsigned char.
11580
11581 2015-05-07  Richard Sandiford  <richard.sandiford@arm.com>
11582
11583         * rtl.h (always_void_p): New function.
11584         * gengenrtl.c (always_void_p): Likewise.
11585         (genmacro): Don't add a mode parameter to gen_rtx_foo if rtxes
11586         with code foo are always VOIDmode.
11587         * genemit.c (gen_exp): Update gen_rtx_foo calls accordingly.
11588         * builtins.c, caller-save.c, calls.c, cfgexpand.c, combine.c,
11589         compare-elim.c, config/aarch64/aarch64.c,
11590         config/aarch64/aarch64.md, config/alpha/alpha.c,
11591         config/alpha/alpha.md, config/arc/arc.c, config/arc/arc.md,
11592         config/arm/arm-fixed.md, config/arm/arm.c, config/arm/arm.md,
11593         config/arm/ldrdstrd.md, config/arm/thumb2.md, config/arm/vfp.md,
11594         config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
11595         config/c6x/c6x.md, config/cr16/cr16.c, config/cris/cris.c,
11596         config/cris/cris.md, config/darwin.c, config/epiphany/epiphany.c,
11597         config/epiphany/epiphany.md, config/fr30/fr30.c, config/frv/frv.c,
11598         config/frv/frv.md, config/h8300/h8300.c, config/i386/i386.c,
11599         config/i386/i386.md, config/i386/sse.md, config/ia64/ia64.c,
11600         config/ia64/vect.md, config/iq2000/iq2000.c,
11601         config/iq2000/iq2000.md, config/lm32/lm32.c, config/lm32/lm32.md,
11602         config/m32c/m32c.c, config/m32r/m32r.c, config/m68k/m68k.c,
11603         config/m68k/m68k.md, config/mcore/mcore.c, config/mcore/mcore.md,
11604         config/mep/mep.c, config/microblaze/microblaze.c,
11605         config/mips/mips.c, config/mips/mips.md, config/mmix/mmix.c,
11606         config/mn10300/mn10300.c, config/msp430/msp430.c,
11607         config/nds32/nds32-memory-manipulation.c, config/nds32/nds32.c,
11608         config/nds32/nds32.md, config/nios2/nios2.c, config/nvptx/nvptx.c,
11609         config/pa/pa.c, config/pa/pa.md, config/rl78/rl78.c,
11610         config/rs6000/altivec.md, config/rs6000/rs6000.c,
11611         config/rs6000/rs6000.md, config/rs6000/vector.md,
11612         config/rs6000/vsx.md, config/rx/rx.c, config/rx/rx.md,
11613         config/s390/s390.c, config/s390/s390.md, config/sh/sh.c,
11614         config/sh/sh.md, config/sh/sh_treg_combine.cc,
11615         config/sparc/sparc.c, config/sparc/sparc.md, config/spu/spu.c,
11616         config/spu/spu.md, config/stormy16/stormy16.c,
11617         config/tilegx/tilegx.c, config/tilegx/tilegx.md,
11618         config/tilepro/tilepro.c, config/tilepro/tilepro.md,
11619         config/v850/v850.c, config/v850/v850.md, config/vax/vax.c,
11620         config/visium/visium.c, config/xtensa/xtensa.c, cprop.c, dse.c,
11621         expr.c, gcse.c, ifcvt.c, ira.c, jump.c, lower-subreg.c,
11622         lra-constraints.c, lra-eliminations.c, lra.c, postreload.c, ree.c,
11623         reg-stack.c, reload.c, reload1.c, reorg.c, sel-sched.c,
11624         var-tracking.c: Update calls accordingly.
11625
11626 2015-05-07  Segher Boessenkool  <segher@kernel.crashing.org>
11627
11628         PR middle-end/192
11629         PR middle-end/54303
11630         * varasm.c (function_mergeable_rodata_prefix): New function.
11631         (mergeable_string_section): Use it.
11632         (mergeable_constant_section): Use it.
11633
11634 2015-05-07  Jeff Law  <law@redhat.com>
11635
11636         PR target/39726
11637         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
11638         simplifier to narrow arithmetic.
11639         * generic-match-head.c: (types_match, single_use): New functions.
11640         * gimple-match-head.c: (types_match, single_use): New functions.
11641
11642 2015-05-07  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
11643
11644         * combine.c (make_compound_operation): Remove checks for PLUS/MINUS
11645         rtx type.
11646
11647 2015-05-07  Richard Biener  <rguenther@suse.de>
11648
11649         PR tree-optimization/66002
11650         * passes.def: Schedule another pass_merge_phi after ifcombine, right
11651         before phiopt.
11652
11653 2015-05-07  Marek Polacek  <polacek@redhat.com>
11654             Martin Uecker  <uecker@eecs.berkeley.edu>
11655
11656         * doc/invoke.texi: Document -fsanitize=bounds-strict.
11657         * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS_STRICT, or it
11658         into SANITIZE_NONDEFAULT.
11659         * opts.c (common_handle_option): Handle -fsanitize=bounds-strict.
11660
11661 2015-05-07  Uros Bizjak  <ubizjak@gmail.com>
11662
11663         PR target/66015
11664         * config/alpha/alpha.c (alpha_override_options_after_change): New.
11665         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
11666         (alpha_override_options): Move align_loops, align_jumps and
11667         align_functions handling into alpha_override_options_after_change.
11668
11669 2015-05-06  Sandra Loosemore  <sandra@codesourcery.com>
11670             Chris Jones  <chrisj@nvidia.com>
11671             Joshua Conner  <jconner@nvidia.com>
11672
11673         * config/arm/unknown-elf.h (STARTFILE_SPEC): Add conditional
11674         linking of crtfastmath.o.
11675         * config/arm/linux-eabi.h (STARTFILE_SPEC): Likewise.
11676
11677 2015-05-06  Segher Boessenkool  <segher@kernel.crashing.org>
11678
11679         * config/rs6000/rs6000.md (cstore<mode>4_signed_imm): New expander.
11680         (cstore<mode>4_unsigned_imm): New expander.
11681         (cstore<mode>4): Remove empty constraint strings.  Use the new
11682         expanders.
11683
11684 2015-05-06  Yvan Roux  <yvan.roux@linaro.org>
11685
11686         PR target/64208
11687         * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Cleanup redundant
11688         alternatives.
11689
11690 2015-05-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>
11691
11692         * config/aarch64/geniterators.sh: Use standard BRE in sed.
11693
11694 2015-05-06  Alan Modra  <amodra@gmail.com>
11695
11696         PR target/66033
11697         * config/rs6000/rs6000.md (nop): Use an unspec pattern.
11698         (UNSPEC_NOP): Define.
11699         (reload_vsx_from_gpr<mode>): Add missing DONE.
11700         (reload_gpr_from_vsx<mode>): Likewise.
11701         * config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
11702         (vsx_div_v2di, vsx_udiv_v2di): Likewise.
11703
11704 2015-05-06  Christian Bruel  <christian.bruel@st.com>
11705
11706         PR target/66015
11707         * config/aarch64/aarch64.c (aarch64_override_options): Move align_loops,
11708         align_jumps, align_functions into aarch64_override_options_after_change.
11709
11710 2015-05-06  Richard Biener  <rguenther@suse.de>
11711
11712         * tree-vect-slp.c (vect_supported_load_permutation_p): Use
11713         vect_transform_slp_perm_load to check if we support a permutation
11714         for basic-block vectorization.
11715
11716 2015-05-06  Nick Clifton  <nickc@redhat.com>
11717
11718         * config/rl78/rl78.c (need_to_save): Save register 22 if it is
11719         used, even if it is not being used as a frame pointer.
11720
11721 2015-05-05  Jason Merrill  <jason@redhat.com>
11722
11723         * dwarf2out.c (gen_member_die): Don't emit anything for an
11724         anonymous class constructor.
11725
11726 2015-05-05  David Malcolm  <dmalcolm@redhat.com>
11727
11728         * auto-profile.c (afdo_find_equiv_class): Fix indentation so
11729         that it reflects the block structure.
11730         (afdo_propagate_edge): Likewise.
11731         (afdo_calculate_branch_prob): Likewise.
11732         (afdo_annotate_cfg): Likewise.
11733         * cfgcleanup.c (equal_different_set_p): Likewise.
11734         (try_crossjump_to_edge): Likewise.
11735         * cgraph.c (cgraph_node::verify_node): Likewise.
11736         * cgraphunit.c (expand_all_functions): Likewise.
11737         * config/i386/i386.c (ix86_expand_copysign): Likewise.
11738         (exact_dependency_1): Likewise.
11739         * dwarf2asm.c (dw2_output_indirect_constants): Likewise.
11740         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Likewise.
11741         * gensupport.c (process_define_subst): Likewise.
11742         * lto-wrapper.c (merge_and_complain): Likewise.
11743         * tree-if-conv.c (if_convertible_bb_p): Likewise.
11744         * tree-ssa-loop-prefetch.c (find_or_create_group): Likewise.
11745         * tree-ssa-tail-merge.c (gsi_advance_fw_nondebug_nonlocal): Likewise.
11746         * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
11747         * tree-vect-loop.c (vectorizable_reduction): Likewise.
11748         * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
11749         * tree-vect-stmts.c (vectorizable_shift): Likewise.
11750         * tree-vrp.c (vrp_finalize): Likewise.
11751         * tree.c (variably_modified_type_p): Likewise.
11752
11753 2015-05-05  Jack Howarth  <howarth.at.gcc@gmail.com>
11754
11755         * config.gcc: Use darwin9.h, darwin10.h and darwin12.h
11756         on darwin12 and later.
11757         * config/darwin12.h (LINK_GCC_C_SEQUENCE_SPEC): Add
11758         file to pass -rdynamic on darwin12 and later.
11759         * config/darwin.opt (rdynamic): Add.
11760
11761 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
11762
11763         * doc/extend.texi (C Extensions): Update menu for moved Variable
11764         Attributes and Type Attributes sections.
11765
11766 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
11767
11768         PR target/65990
11769         * config/i386/i386.c (ix86_parse_stringop_strategy_string): Error out
11770         if rep_8byte stringop strategy was specified for 32-bit target.
11771
11772 2015-05-05  Ilya Tocar  <ilya.tocar@intel.com>
11773
11774         PR target/65915
11775         * config/i386/i386.md (vector convert to float spltiter): Check for
11776         xmm16+, when splitting scalar float conversion.
11777         * config/i386/sse.md (sse2_cvtsi2sd): Support EVEX version.
11778
11779 2015-05-05  Nick Clifton  <nickc@redhat.com>
11780
11781         * config/msp430/msp430-opts.h (enum msp430_regions): New.
11782         * config/msp430/msp430.c (msp430_override_options): Complain if
11783         -mcode-region or -mdata-region is used on a non MSP430X.
11784         (msp430_section_attr): New function.  Checks lower, upper and
11785         either attributes.
11786         (msp430_attribute_table): Add lower, upper and either.
11787         (gen_prefix): New function.  Generates a prefix for a section
11788         name.
11789         (msp430_select_section): New function - handles the choice of
11790         section for an object.  Takes into account memory region
11791         attributes and options.
11792         (msp430_function_section): Use gen_prefix.
11793         (TARGET_SECTION_TYPE_FLAGS): Define.
11794         (msp430_section_type_flags): New function.
11795         (TARGET_ASM_UNIQUE_SECTION): Define.
11796         (msp430_unique_section): New function.
11797         (msp430_output_aligned_decl_common): New function.
11798         (msp430_do_not_relax_short_jumps): New function.
11799         * config/msp430/msp430.h (USE_SELECT_SECTION_FOR_FUNCTIONS):
11800         Define.
11801         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
11802         * config/msp430/msp430-protos.h
11803         (msp430_do_not_relax_short_jumps): New prototype.
11804         (msp430_output_aligned_decl_common): New prototype.
11805         * config/msp430/msp430.md (length): New attribute.
11806         (cbranchhi4_real): If msp430_do_not_relax_short_jumps is true
11807         then use a long code sequence for short jumps.
11808         * config/msp430/msp430.opt (mcode-region): New.
11809         (mdata-region): New.
11810         * doc/invoke.texi: Document new options.
11811         * doc/extend.texi: Document new attributes.
11812
11813 2015-05-05  Matthew Wahab  <matthew.wahab@arm.com>
11814
11815         * gcc/config/aarch64-protos.h (struct cpu_branch_cost): New.
11816         (tune_params): Add field branch_costs.
11817         (aarch64_branch_cost): Declare.
11818         * gcc/config/aarch64.c (generic_branch_cost): New.
11819         (generic_tunings): Set field cpu_branch_cost to generic_branch_cost.
11820         (cortexa53_tunings): Likewise.
11821         (cortexa57_tunings): Likewise.
11822         (thunderx_tunings): Likewise.
11823         (xgene1_tunings): Likewise.
11824         (aarch64_branch_cost): Define.
11825         * gcc/config/aarch64/aarch64.h (BRANCH_COST): Redefine.
11826
11827 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
11828
11829         * config/i386/i386.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1
11830         and HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1.
11831         * config/i386/i386.md: Ditto.
11832         * config/i386/winnt.c: Ditto.
11833
11834 2015-05-05  Matthew Wahab  <matthew.wahab@arm.com>
11835
11836         * doc/extend.texi (__atomic Builtins): Move implementation details
11837         to the end of the description, rewrite opening paragraphs, state
11838         difference with __sync builtins, state C11/C++11 assumptions,
11839         weaken itemized descriptions, add explanation of memory model
11840         behaviour, expand description of compare-exchange, simplify text.
11841
11842 2015-05-05  Renlin Li  <renlin.li@arm.com>
11843
11844         * config/aarch64/aarch64.md (add<mode>3): Use mov when allowed.
11845
11846 2015-05-05  Yvan Roux  <yvan.roux@linaro.org>
11847
11848         * config/aarch64/aarch64-elf-raw.h (CA53_ERR_843419_SPEC): Define.
11849         (LINK_SPEC): Include CA53_ERR_843419_SPEC.
11850         * config/aarch64/aarch64-linux.h (CA53_ERR_843419_SPEC): Define.
11851         (LINK_SPEC): Include CA53_ERR_843419_SPEC.
11852         * config/aarch64/aarch64.opt (mfix-cortex-a53-843419): New option.
11853         * configure: Regenerate.
11854         * configure.ac: Add --enable-fix-cortex-a53-843419 option.
11855         * doc/install.texi (aarch64*-*-*): Document new
11856         --enable-fix-cortex-a53-843419 option.
11857         * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-843419
11858         and -mno-fix-cortex-a53-843419 options.
11859
11860 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
11861
11862         PR target/65871
11863         * config/i386/i386.md (*bmi_andn_<mode>_ccno): New pattern.
11864
11865 2015-05-04  Jan Hubicka  <hubicka@ucw.cz>
11866
11867         * tree.c (verify_type): Check various uses of TYPE_MAXVAL;
11868         fix overactive TYPE_MIN_VALUE check and add FIXME for type
11869         compatibility problems.
11870
11871 2015-05-04  Ajit Agarwal  <ajitkum@xilinx.com>
11872
11873         * config/microblaze/microblaze.md (cbranchsi4): Added immediate
11874         constraints.
11875         (cbranchsi4_reg): New.
11876         * config/microblaze/microblaze.c
11877         (microblaze_expand_conditional_branch_reg): New.
11878         * config/microblaze/microblaze-protos.h
11879         (microblaze_expand_conditional_branch_reg): New prototype.
11880
11881 2015-05-04  Ajit Agarwal  <ajitkum@xilinx.com>
11882
11883         * config/microblaze/microblaze.md (peephole2): New.
11884
11885 2015-05-04  Jeff Law  <law@redhat.com>
11886
11887         Revert:
11888         2015-05-04  Jeff Law  <law@redhat.com>
11889
11890         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
11891         simplifier to narrow arithmetic.
11892         * generic-match-head.c: (types_match, single_use): New functions.
11893         * gimple-match-head.c: (types_match, single_use): New functions.
11894
11895 2015-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
11896
11897         PR target/65987
11898         * config/sh/sh.c (output_far_jump): Take into account crossing jumps.
11899         (split_branches): Likewise.
11900
11901 2015-05-04  Sandra Loosemore  <sandra@codesourcery.com>
11902
11903         * common.opt (fdelete-null-pointer-checks): Init to -1.
11904         * config/nios2/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define to
11905         override flag_delete_null_pointer_checks default.
11906         * doc/invoke.texi (-fdelete-null-pointer-checks): Clarify
11907         behavior re address zero.  Better document target-specific behavior.
11908         (-fisolate-errneous-paths-dereference): Mention relationship to
11909         -fdelete-null-pointer-checks.
11910
11911 2015-05-04  Jakub Jelinek  <jakub@redhat.com>
11912
11913         PR tree-optimization/65984
11914         * ubsan.c: Include tree-cfg.h.
11915         (instrument_bool_enum_load): Use stmt_ends_bb_p instead of
11916         stmt_could_throw_p test, rename can_throw variable to ends_bb.
11917
11918 2015-05-04  Uros Bizjak  <ubizjak@gmail.com>
11919
11920         * config/i386/i386.c: Change GET_CODE (...) == CONST_DOUBLE check
11921         to CONST_DOUBLE_P predicate.
11922         (standard_sse_constant_p): Return 0 for !TARGET_SSE.
11923         (ix86_legitimate_constant_p) <case CONST_WIDE_INT>: For 32bit targets,
11924         allow only operands that satisfy standard_sse_constant_p predicate.
11925         * config/i386/i386.md: Change GET_CODE (...) == CONST_DOUBLE check
11926         to CONST_DOUBLE_P predicate.
11927
11928 2015-05-04  Jeff Law  <law@redhat.com>
11929
11930         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
11931         simplifier to narrow arithmetic.
11932         * generic-match-head.c: (types_match, single_use): New functions.
11933         * gimple-match-head.c: (types_match, single_use): New functions.
11934
11935 2015-05-04  Andreas Tobler  <andreast@gcc.gnu.org>
11936
11937         * config/arm/arm.c: Restore bootstrap.
11938
11939 2015-05-04  Uros Bizjak  <ubizjak@gmail.com>
11940
11941         * config/i386/i386.h (TARGET_SUPPORTS_WIDE_INT): New define.
11942         * config/i386/i386.c (ix86_legitimate_constant_p): Handle TImode
11943         as CONST_WIDE_INT, not CONST_DOUBLE.
11944         (ix86_cannot_force_const_mem): Handle CONST_WIDE_INT.
11945         (output_pic_addr_const): Do not handle VOIDmode CONST_DOUBLEs.
11946         (ix86_find_base_term): Do not check for CONST_DOUBLE.
11947         (ix86_print_operand): Do not handle non-FPmode CONST_DOUBLEs.
11948         (ix86_build_signbit_mask): Rewrite using wide ints.
11949         (ix86_split_to_parts) [HOST_BITS_PER_WIDE_INT < 64]: Remove.
11950         (ix86_rtx_costs): Handle CONST_WIDE_INT.
11951         (find_constant): Ditto.
11952         * config/i386/i386.md (bts, btr, btc peepholes): Rewrite
11953         using gen_int_mode.
11954         * config/i386/predicates.md (x86_64_immediate_operand)
11955         <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
11956         (x86_64_zext_immediate_operand): Remove CONST_DOUBLE handling.
11957         <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
11958         (const0_operand): Also match const_wide_int.
11959         (constm1_operand): Ditto.
11960         (const1_operand): Ditto.
11961
11962 2015-05-04  Richard Biener  <rguenther@suse.de>
11963
11964         PR tree-optimization/65965
11965         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Split
11966         store groups at gaps.
11967
11968 2015-05-04  Richard Biener  <rguenther@suse.de>
11969
11970         PR tree-optimization/65935
11971         * tree-vect-slp.c (vect_build_slp_tree): If we swapped operands
11972         then make sure to apply that swapping to the IL.
11973
11974 2015-05-04  Jakub Jelinek  <jakub@redhat.com>
11975
11976         * Makefile.in (PATCHLEVEL_c): New variable.
11977         (DATESTAMP_s, REVISION_s): If PATCHLEVEL_c is not 0,
11978         expand the same way as if DEVPHASE_c was non-empty.
11979
11980 2015-05-04  Kai Tietz  <ktietz@redhat.com>
11981
11982         PR target/65559
11983         * lto-wrapper.c (run_gcc): Open filename
11984         in binary-mode.
11985
11986 2015-05-03  Sandra Loosemore  <sandra@codesourcery.com>
11987
11988         * doc/extend.texi (Variable Attributes, Type Attributes):  Move
11989         sections up in file, to immediately after the Function Attributes
11990         section.
11991
11992 2015-05-02  Jan Hubicka  <hubicka@ucw.cz>
11993
11994         * tree.c (verify_type): Check various uses of TYPE_MINVAL.
11995
11996 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11997
11998         * tree-outof-ssa.c (emit_partition_copy): Return rtx_insn *.
11999         (insert_partition_copy_on_edge): Adjust.
12000         (insert_rtx_to_part_on_edge): Likewise.
12001         (insert_part_to_rtx_on_edge): Likewise.
12002
12003 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12004
12005         * function.c (set_return_jump_label): Change type of argument to
12006         rtx_insn *.
12007         * function.h (set_return_jump_label): Adjust.
12008
12009 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12010
12011         * reload.h (struct reg_equivs_t): Change type of init to
12012         rtx_insn *.
12013         * ira.c (fix_reg_equiv_init): Adjust.
12014         * reload1.c (eliminate_regs_1): Likewise.
12015         (init_eliminable_invariants): Likewise.
12016
12017 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12018
12019         * cselib.c (fp_setter_insn): Take a rtx_insn *.
12020         * cselib.h (fp_setter_insn): Adjust.
12021
12022 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12023
12024         * recog.c (struct validate_replace_src_data): Change type of
12025         insn field to rtx_insn *.
12026         (validate_replace_src_group): Change type of argument to rtx_insn *.
12027         * recog.h (validate_replace_src_group): Adjust.
12028
12029 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12030
12031         * haifa-sched.c: Change the type of some variables to rtx_insn *.
12032         * sched-deps.c: Likewise.
12033         * sched-int.h: Likewise.
12034         * sched-rgn.c: Likewise.
12035         * sel-sched.c: Likewise.
12036
12037 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12038
12039         to rtx_insn *.
12040         * config/i386/i386.c: Change the type of some arguments to
12041         rtx_insn *.
12042         * config/arm/arm.c: Likewise.
12043
12044 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12045
12046         * lra-constraints.c: Change type of some arguments to rtx_insn *.
12047
12048 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12049
12050         * regcprop.c (kill_autoinc_value): Change type of argument to
12051         rtx_insn *.
12052
12053 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12054
12055         * genrecog.c (print_subroutine): Adjust.
12056         * recog.c (get_bool_attr_mask_uncached): Likewise.
12057         * recog.h (struct recog_data_d): Change the type of insn to
12058         rtx_insn *.
12059
12060 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12061
12062         * dwarf2cfi.c (add_cfi_insn): Change type to rtx_insn *.
12063
12064 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12065
12066         * df-problems.c (df_set_note): Change type of argument to
12067         rtx_insn *.
12068
12069 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12070
12071         * builtins.c (expand_builtin_trap): Change type of local
12072         variable to rtx_insn *.
12073         (add_sched_insns_for_speculation): Likewise.
12074         (ix86_emit_save_regs): Likewise.
12075         (get_scratch_register_on_entry): Likewise.
12076         (ix86_emit_restore_reg_using_pop): Likewise.
12077         (ix86_emit_leave): Likewise.
12078         (ix86_emit_restore_regs_using_mov): Likewise.
12079         (ix86_expand_epilogue): Likewise.
12080         Likewise.
12081         (rl78_alloc_physical_registers_umul): Likewise.
12082         * cselib.c (discard_useless_locs): Likewise.
12083         (cselib_invalidate_regno): Likewise.
12084         (cselib_invalidate_mem): Likewise.
12085         * function.c (expand_function_start): Likewise.
12086         (emit_use_return_register_into_block): Likewise.
12087         * gcse.c: Likewise.
12088         * haifa-sched.c (ok_for_early_queue_removal): Likewise.
12089         * ifcvt.c (noce_get_alt_condition): Likewise.
12090         * loop-doloop.c (doloop_condition_get): Likewise.
12091         * lra-constraints.c (inherit_in_ebb): Likewise.
12092         * modulo-sched.c (sms_schedule_by_order): Likewise.
12093         * recog.c (next_insn_tests_no_inequality): Likewise.
12094         * reorg.c (emit_delay_sequence): Likewise.
12095         (update_reg_dead_notes): Likewise.
12096         (fix_reg_dead_note): Likewise.
12097         (fill_slots_from_thread): Likewise.
12098         (delete_computation): Likewise.
12099
12100 2015-05-01  Sandra Loosemore  <sandra@codesourcery.com>
12101
12102         * doc/extend.texi (Variable Attributes): Add menu and proper
12103         @nodes to subsections.  Move Microsoft Windows attributes to
12104         their own subsection.
12105         (Type Attributes): Reorganize introduction to remove duplicate
12106         list of attributes.  Add menu and proper @nodes to subsections.
12107         Alphabetize the main table of common attributes.
12108
12109 2015-05-01  Rasmus Villemoes  <rv@rasmusvillemoes.dk>
12110
12111         * match.pd: New simplification patterns.
12112         (x + (x & 1))  -> ((x + 1) & ~1)
12113         (x & ~(x & y)) -> ((x & ~y))
12114         (x | ~(x | y)) -> ((x | ~y))
12115
12116 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12117
12118         * target.def (attribute_table): Mention that struct attribute_spec
12119         is defined in tree-core.h rather than tree.h
12120         * doc/tm.texi: Regenerate.
12121
12122 2015-05-01  Richard Sandiford  <richard.sandiford@arm.com>
12123
12124         * genrecog.c (test): Rename to rtx_test.  Update rest of file
12125         accordingly.
12126
12127 2015-05-01  Andreas Schwab  <schwab@linux-m68k.org>
12128
12129         PR translation/65959
12130         * params.h (DEFPARAM): Rename msgid to nocmsgid.
12131
12132 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
12133
12134         * gcc/config/aarch64/aarch64-protos.h (tune_params):
12135         Add min_div_recip_mul_sf and min_div_recip_mul_df fields.
12136         * gcc/config/aarch64/aarch64.c (aarch64_min_divisions_for_recip_mul):
12137         Return value depending on target.
12138         (generic_tunings): Initialize new target settings.
12139         (cortexa53_tunings): Likewise.
12140         (cortexa57_tunings): Likewise.
12141         (thunderx_tunings): Likewise.
12142         (xgene1_tunings): Likewise.
12143
12144 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
12145
12146         * gcc/config/arm/aarch-cost-tables.h (cortexa53_extra_costs):
12147         Make Cortex-A53 shift costs more accurate.
12148
12149 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12150
12151         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle FLOAT and
12152         UNSIGNED_FLOAT.
12153
12154 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
12155
12156         * gcc/config/aarch64/aarch64.c (aarch64_rtx_costs):
12157         Calculate cost of op0 and op1 in PLUS and MINUS cases.
12158
12159 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12160
12161         * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
12162         Add cost of op0 in the compare-with-fpzero case.
12163
12164 2015-04-30  David Malcolm  <dmalcolm@redhat.com>
12165
12166         * builtins.c (fold_builtin_1): Remove spurious second
12167         semicolon.
12168         * cgraph.h (symtab_node::get_availability): Likewise.
12169         * opts.c (common_handle_option): Remove spurious second semicolon.
12170         * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
12171         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
12172
12173 2015-04-30  Caroline Tice  <cmtice@google.com>
12174
12175         PR gcov-profile/65929
12176         * config/elfos.h (ASM_DECLARE_COLD_FUNCTION_NAME): New macro definition.
12177         (ASM_DECLARE_COLD_FUNCTION_SIZE): New macro definition.
12178         * doc/tm.texi.in (ASM_DECLARE_COLD_FUNCTION_NAME): Document new macro.
12179         (ASM_DECLARE_COLD_FUNCTION_SIZE): Document new macro.
12180         * doc/tm.texi: Regenerate.
12181         * final.c (final_scan_insn):  Use ASM_DECLARE_COLD_FUNCTION_NAME
12182         instead of ASM_DECLARE_FUNCTION_NAME for cold partition name.
12183         * varasm.c (assemble_end_function):  Use ASM_DECLARE_COLD_FUNCTION_SIZE
12184         instead of ASM_DECLARE_FUNCTION_SIZE for cold partition size.
12185
12186 2015-04-30  Marek Polacek  <polacek@redhat.com>
12187
12188         * varasm.c (handle_cache_entry): Fix logic.
12189
12190 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12191
12192         * config/aarch64/aarch64.md (*extr<mode>5_insn_alt): New pattern.
12193         (*extrsi5_insn_uxtw_alt): Likewise.
12194         * config/aarch64/aarch64.c (aarch64_extr_rtx_p): New function.
12195         (aarch64_rtx_costs, IOR case): Use above to properly cost extr
12196         operations.
12197
12198 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12199
12200         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle pattern for
12201         fabd in ABS case.
12202
12203 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12204
12205         * config/aarch64/aarch64.md
12206         (*eor_one_cmpl_<SHIFT:optab><mode>3_alt): New pattern.
12207         (*eor_one_cmpl_<SHIFT:optab>sidi3_alt_ze): Likewise.
12208         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle MVN-shift
12209         appropriately.  Handle alternative EON form.
12210
12211 2015-04-30  Renlin Li  <renlin.li@arm.com>
12212
12213         * config/aarch64/aarch64-simd.md (vec_shr): Defined as an unspec.
12214         * config/aarch64/iterators.md (unspec): Add UNSPEC_VEC_SHR.
12215
12216 2015-04-30  Jan Hubicka  <hubicka@ucw.cz>
12217
12218         PR ipa/65873
12219         * ipa-inline.c (can_inline_edge_p): It is safe to inline across
12220         -fstrict-aliasing boundaries.
12221
12222 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12223
12224         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Handle MNEG
12225         and [SU]MNEGL patterns.
12226
12227 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12228
12229         * config/aarch64/aarch64.c (aarch64_shift_p): New function.
12230         (aarch64_rtx_mult_cost): Update comment to reflect that it also handles
12231         combined arithmetic-shift ops.  Properly handle all shift and extend
12232         operations that can occur in combination with PLUS/MINUS.
12233         Rename maybe_fma to compound_p.
12234         (aarch64_rtx_costs): Use aarch64_shift_p when costing compound
12235         arithmetic and shift operations.
12236
12237 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12238
12239         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use extend_arith
12240         rather than arith_shift cost when costing ADD/MINUS of an
12241         extended value.
12242
12243 2015-04-30  Jan Hubicka  <hubicka@ucw.cz>
12244
12245         PR lto/65948
12246         * ipa-devirt.c (odr_types_equivalent_p): NULLPTR_TYPE is equivalent
12247         to itself.
12248
12249 2015-04-30  Richard Sandiford  <richard.sandiford@arm.com>
12250
12251         * genrecog.c (simplify_tests): Check that CONST_INT and XWINT tests
12252         are for the same position.
12253
12254 2015-04-29  Aditya Kumar  <hiraditya@hotmail.com>
12255
12256         * tree-vectorizer.c (set_uid_loop_bbs): New.  Factored out of
12257         vectorize_loops.
12258         (vectorize_loops): Use it.
12259
12260 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
12261
12262         * ipa-devirt.c (odr_subtypes_equivalent_p): Compare TYPE_NAME only
12263         for aggregate types.
12264         (register_odr_type): Be ready for MAIN_VARIANT of ODR type
12265         type to be non_ODR.
12266         * tree.c (need_assembler_name_p): Compute mangled name for
12267         non-fundamental types and integer types.
12268
12269 2015-04-29  Mikhail Maltsev  <maltsevm@gmail.com>
12270
12271         * dojump.c (do_compare_rtx_and_jump): Use std::swap instead of
12272         manual swaps.
12273         * expr.c (expand_expr_real_2): Likewise.
12274
12275 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
12276
12277         * tree.c (build_common_builtin_nodes): Do not build
12278         __builtin_alloca_with_align as equivalent of library alloca.
12279
12280 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
12281
12282         * dwarf2out.c (gen_type_die_with_usage): Call verify_type.
12283         * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Do not produce
12284         bugus variants.
12285         * tree.c: Include print-tree.h and ipa-utils.h
12286         (free_lang_data_in_type): Clear TYPE_VFIELD leaked by C FE.
12287         (free_lang_data_in_cgraph): Call verify_type.
12288         (verify_type_variant): New function.
12289         (verify_type): New function.
12290         * tree.h (verify_type): Declare.
12291
12292 2015-04-29  Steve Ellcey  <sellcey@imgtec.com>
12293
12294         * config/mips/mips-cpus.def: (mips4): Change default processor
12295         from PROCESSOR_R8000 to PROCESSOR_R10000.
12296
12297 2015-04-29  Petar Jovanovic  <petar.jovanovic@rt-rk.com>
12298
12299         * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Fix the macro to use
12300         la/jalr instead of jal.
12301
12302 2015-04-29  Uros Bizjak  <ubizjak@gmail.com>
12303
12304         PR target/65871
12305         * config/i386/i386.md (*bmi_bextr_<mode>_ccz): New pattern.
12306         (*bmi2_bzhi_<mode>3_1_ccz): Ditto.
12307         (setcc+movzbl peephole2): Check also clobbered reg.
12308         (setcc+andl peephole2): Ditto.
12309
12310 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
12311
12312         PR libgomp/65099
12313         * config/nvptx/mkoffload.c (target_ilp32): New variable.
12314         (main): Set it depending on "-foffload-abi=[...]".
12315         (compile_native, main): Use it to pass "-m32" or "-m64" to the
12316         compiler.
12317
12318 2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>
12319
12320         PR target/65770
12321         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>,
12322         vec_store_lanesci_lane<mode>, vec_store_lanesxi_lane<mode>):
12323         Flip lane index back at assembly time for bigendian.
12324
12325 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
12326
12327         * tree.h (OMP_STANDALONE_CLAUSES): New macro.
12328         * gimplify.c (gimplify_omp_workshare): Use it.
12329
12330 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
12331
12332         * Makefile.in (build/genrecog.o): Depend on inchash.h.
12333         (build/genrecog$(build_exeext): Depend on build/hash-table.o and
12334         build/inchash.o
12335         * genrecog.c: Rewrite most of the code except for the third page.
12336
12337 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
12338
12339         * inchash.h, inchash.c: Include bconfig.h for build objects.
12340         * Makefile.in (build/inchash.o): New rule.
12341
12342 2015-04-29  Yvan Roux  <yvan.roux@linaro.org>
12343
12344         PR target/65924
12345         * config/arm/thumb2.md (*thumb2_addsi3_compare0_scratch): Fix operand
12346         number in type attribute expression.
12347
12348 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
12349
12350         * loop-iv.c (canon_condition): Generalize to all types of integer
12351         constant.
12352
12353 2015-04-29  Bernhard Reuther-Fischer  <aldot@gcc.gnu.org>
12354
12355         * gimple-walk.c: Prune duplicate or unneeded includes.
12356         (walk_gimple_asm): Only call parse_input_constraint or
12357         parse_output_constraint if their findings are used.
12358         Honour parse_input_constraint and parse_output_constraint
12359         result.
12360
12361 2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>
12362
12363         * config/arm/neon.md (vec_shl<mode>, vec_shr<mode>): Remove.
12364
12365 2015-04-29  Tom de Vries  <tom@codesourcery.com>
12366
12367         PR tree-optimization/65893
12368         * passes.def (pass_all_optimizations): Move pass_stdarg to after
12369         pass_dce.
12370
12371 2015-04-29  Richard Biener  <rguenther@suse.de>
12372
12373         * tree-vect-data-refs.c (vect_analyze_group_access): Properly
12374         compute GROUP_SIZE for basic-block SLP.
12375         * tree-vect-slp.c (vect_get_place_in_interleaving_chain): Properly
12376         take into account gaps.
12377         (vect_get_mask_element): Properly reject references to previous
12378         vectors.
12379         (vect_transform_slp_perm_load): Likewise.
12380
12381 2015-04-29  Christian Bruel  <christian.bruel@st.com>
12382
12383         PR target/64835
12384         * config/i386/i386.c (ix86_default_align): New function.
12385         (ix86_override_options_after_change): Call ix86_default_align.
12386         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New hook.
12387         (ix86_override_options_after_change): New function.
12388
12389 2015-04-28  Jeff Law  <law@redhat.com>
12390
12391         * tree-ssa-dom.c (record_equality); Fix comment typos.
12392
12393 2015-04-28  Tom de Vries  <tom@codesourcery.com>
12394
12395         PR tree-optimization/65887
12396         * gimplify.c (gimplify_modify_expr): Remove ifn_va_arg ap fixup.
12397
12398 2015-04-28  Sandra Loosemore  <sandra@codesourcery.com>
12399
12400         * doc/extend.texi (Declaring Attributes of Functions): Split into
12401         subsections by target.  Alphabetize the table of common attributes.
12402         Rewrite some of the introductory text to reflect the new structure.
12403         Update some cross-references to point to the new subsections.
12404         (Attribute Syntax): Put paragraph about "__" naming here.  Remove
12405         duplicate copies in the discussion of function, label, and type
12406         attributes.
12407
12408 2015-04-28  Dominique d'Humieres  <dominiq@lps.ens.fr>
12409
12410         PR bootstrap/65910
12411         * varasm.c (assemble_end_function): Guard ASM_DECLARE_FUNCTION_SIZE.
12412
12413 2015-04-28  Jason Merrill  <jason@redhat.com>
12414
12415         PR c++/65734
12416         * stor-layout.c (layout_type): Layout the TYPE_MAIN_VARIANT.
12417         (finalize_type_size): Respect TYPE_USER_ALIGN.
12418         (layout_type) [ARRAY_TYPE]: Likewise.
12419
12420 2015-04-28  Yvan Roux  <yvan.roux@linaro.org>
12421
12422         * config/arm/arm.md (*arm_movt): Fix type attribute.
12423         (*cmpsi_shiftsi): Likewise.
12424         (*cmpsi_shiftsi_swp): Likewise.
12425         (*movsicc_insn): Likewise.
12426         (*cond_move): Likewise.
12427         (*if_plus_move): Likewise.
12428         (*if_move_plus): Likewise.
12429         (*if_arith_move): Likewise.
12430         (*if_move_arith): Likewise.
12431         (*if_shift_move): Likewise.
12432         (*if_move_shift): Likewise.
12433         (*arm_movtas_ze): Likewise.
12434         * config/arm/thumb2.md (*thumb2_movsicc_insn): Fix alternative
12435         redundancy and type attribute.
12436         (*thumb2_movsi_insn): Fix type attribute.
12437         (*thumb2_addsi_short): Likewise.
12438         (thumb2_addsi3_compare0): Likewise.
12439         (*thumb2_addsi3_compare0_scratch): Merge alternatives and fix
12440         attributes accordingly.
12441
12442 2015-04-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
12443
12444         PR other/65911
12445         * function.c (pad_to_arg_alignment): Add parentheses.
12446
12447 2015-04-28  Uros Bizjak  <ubizjak@gmail.com>
12448
12449         * config/frv/frv.h (CRT_GET_RFIB_DATA): Move definition to
12450         libgcc/config/frv/elf-lib.h.
12451
12452 2015-04-28  Tom de Vries  <tom@codesourcery.com>
12453
12454         * tree-call-cdce.c: Fix example in header comment.
12455
12456 2015-04-28  Richard Biener  <rguenther@suse.de>
12457
12458         PR tree-optimization/62283
12459         * tree-vect-slp.c (vect_build_slp_tree): When the SLP build
12460         fails fatally and we are vectorizing a basic-block simply
12461         cause the child to be constructed piecewise.
12462         (vect_analyze_slp_cost_1): Adjust.
12463         (vect_detect_hybrid_slp_stmts): Likewise.
12464         (vect_bb_slp_scalar_cost): Likewise.
12465         (vect_get_constant_vectors): For piecewise constructed
12466         constants place them after the last def.
12467         (vect_get_slp_defs): Adjust.
12468         * tree-vect-stmts.c (vect_is_simple_use): Detect in-BB
12469         externals for basic-block vectorization.
12470
12471 2015-04-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
12472
12473         PR target/63503
12474         * config.gcc: Add cortex-a57-fma-steering.o to extra_objs for
12475         aarch64-*-*.
12476         * config/aarch64/t-aarch64: Add a rule for cortex-a57-fma-steering.o.
12477         * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Define.
12478         (AARCH64_TUNE_FMA_STEERING): Likewise.
12479         * config/aarch64/aarch64-cores.def: Set
12480         AARCH64_FL_USE_FMA_STEERING_PASS for cores with dynamic steering of
12481         FMUL/FMADD instructions.
12482         * config/aarch64/aarch64.c (aarch64_register_fma_steering): Declare.
12483         (aarch64_override_options): Include cortex-a57-fma-steering.h.  Call
12484         aarch64_register_fma_steering () if AARCH64_TUNE_FMA_STEERING is true.
12485         * config/aarch64/cortex-a57-fma-steering.h: New file.
12486         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
12487
12488 2015-04-28  Richard Sandiford  <richard.sandiford@arm.com>
12489
12490         * gensupport.c (std_preds): Add missing codes to address_operand entry.
12491
12492 2015-04-28  Richard Biener  <rguenther@suse.de>
12493
12494         PR tree-optimization/65851
12495         * tree-ssa-ccp.c (set_lattice_value): Perform a meet when
12496         changing CONSTANT to CONSTANT non-copy.  Get new_val by reference.
12497         (ccp_lattice_meet): Remove stray argument.  Use operand_equal_p
12498         rather than simple_cst_equal as the latter doesn't handle COMPLEX_CST.
12499         (ccp_visit_phi_node): Adjust.
12500         (evaluate_stmt): For simplifications to SSA names return its
12501         lattice value if that isn't VARYING.  Return immediately when
12502         simplified to a constant.
12503         (visit_assignment): Adjust.
12504         (ccp_visit_stmt): Likewise.
12505
12506 2015-04-28  Tom de Vries  <tom@codesourcery.com>
12507
12508         PR tree-optimization/65818
12509         * tree-stdarg.c (expand_ifn_va_arg_1): Ensure that side-effects are
12510         evaluated.
12511
12512 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12513
12514         * calls.c (save_fixed_argument_area): Don't check
12515         ARGS_GROW_DOWNWARD with the preprocessor.
12516         (restore_fixed_argument_area): Likewise.
12517         (mem_overlaps_already_clobbered_arg_p): Likewise.
12518         (check_sibcall_argument_overlap): Likewise.
12519         (expand_call): Likewise.
12520         (emit_library_call_value_1): Likewise.
12521         (store_one_arg): Likewise.
12522         * function.c (assign_parms): Likewise.
12523         (locate_and_pad_parm): Likewise.
12524         (pad_to_arg_alignment): Likewise.
12525         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
12526
12527 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12528
12529         * config/pa/pa.h (ARGS_GROW_DOWNWARD): Define to 1.
12530         * defaults.h (ARGS_GROW_DOWNWARD): Define it to 0 by default.
12531         * calls.c (save_fixed_argument_area): Don't chekc if
12532         ARGS_GROW_DOWNWARD is defined.
12533         (restore_fixed_argument_area): Likewise.
12534         (mem_overlaps_already_clobbered_arg_p): Likewise.
12535         (check_sibcall_argument_overlap): Likewise.
12536         (expand_call): Likewise.
12537         (emit_library_call_value_1): Likewise.
12538         (store_one_arg): Likewise.
12539         * function.c (assign_parms): Likewise.
12540         (locate_and_pad_parm): Likewise.
12541         (pad_to_arg_alignment): Likewise.
12542         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
12543
12544 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12545
12546         * defaults.h (gen_epilogue): New function.
12547         * alias.c (init_alias_analysis): don't check if HAVE_epilogue is
12548         defined.
12549         * cfgrtl.c (cfg_layout_finalize): Likewise.
12550         * df-scan.c: Likewise.
12551         * function.c (thread_prologue_and_epilogue_insns): Likewise.
12552         (reposition_prologue_and_epilogue_notes): Likewise.
12553         * reorg.c (find_end_label): Likewise.
12554         * toplev.c: Likewise.
12555
12556 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12557
12558         * bb-reorder.c (HAVE_return): Don't check if its undefined.
12559         * defaults.h (gen_simple_return): New function.
12560         (gen_simple_return): Likewise.
12561         (HAVE_return): Add default definition to false.
12562         (HAVE_simple_return): Likewise.
12563         * cfgrtl.c (force_nonfallthru_and_redirect): Remove checks if
12564         HAVE_return and HAVE_simple_return are defined.
12565         * function.c (gen_return_pattern): Likewise.
12566         (convert_jumps_to_returns): Likewise.
12567         (thread_prologue_and_epilogue_insns): Likewise.
12568         * reorg.c (find_end_label): Likewise.
12569         (dbr_schedule): Likewise.
12570         * shrink-wrap.c: Likewise.
12571         * shrink-wrap.h: Likewise.
12572
12573 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12574
12575         * defaults.h (EPILOGUE_USES): Add default definition of false.
12576         * df-scan.c (EPILOGUE_USES): Remove check if its undefined.
12577         * resource.c (init_resource_info): Likewise.
12578
12579 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12580
12581         * defaults.h (PCC_BITFIELD_TYPE_MATTERS): Add default definition
12582         to false.
12583         * dwarf2out.c (field_byte_offset): REmove check if
12584         PCC_BITFIELD_TYPE_MATTERS is defined.
12585         * stor-layout.c (layout_decl): Likewise.
12586         (update_alignment_for_field): Likewise.
12587         (place_field): Likewise.
12588
12589 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12590
12591         * defaults.h (HARD_REGNO_RENAME_OK): Add default definition to
12592         true.
12593         * regrename.c (check_new_reg_p): Remove check if
12594         HARD_REGNO_RENAME_OK is defined.
12595         * sel-sched.c (sel_hard_regno_rename_ok): Likewise.
12596
12597 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12598
12599         * calls.c (prepare_call_address): Remove ifdef NO_FUNCTION_CSE.
12600         * cse.c (fold_rtx): Likewise.
12601         * config/alpha/alpha.h (NO_FUNCTION_CSE): Define to 1.
12602         * config/arc/arc.h (NO_FUNCTION_CSE): Likewise.
12603         * config/avr/avr.h (NO_FUNCTION_CSE): Likewise.
12604         * config/cr16/cr16.h (NO_FUNCTION_CSE): Likewise.
12605         * config/epiphany/epiphany.h (NO_FUNCTION_CSE): Likewise.
12606         * config/frv/frv.h (NO_FUNCTION_CSE): Likewise.
12607         * config/h8300/h8300.h (NO_FUNCTION_CSE): Likewise.
12608         * config/i386/i386.h (NO_FUNCTION_CSE): Likewise.
12609         * config/ia64/ia64.h (NO_FUNCTION_CSE): Likewise.
12610         * config/lm32/lm32.h (enum reg_class) (NO_FUNCTION_CSE):
12611         * Likewise.
12612         * config/m32r/m32r.h (NO_FUNCTION_CSE): Likewise.
12613         * config/mep/mep.h (NO_FUNCTION_CSE): Likewise.
12614         * config/mn10300/mn10300.h (NO_FUNCTION_CSE): Likewise.
12615         * config/nds32/nds32.h (NO_FUNCTION_CSE): Likewise.
12616         * config/nios2/nios2.h (NO_FUNCTION_CSE): Likewise.
12617         * config/pa/pa.h (NO_FUNCTION_CSE): Likewise.
12618         * config/rs6000/rs6000.h (NO_FUNCTION_CSE): Likewise.
12619         * config/s390/s390.h (NO_FUNCTION_CSE): Likewise.
12620         * config/sparc/sparc.h (NO_FUNCTION_CSE): Likewise.
12621         * config/spu/spu.h (NO_FUNCTION_CSE): Likewise.
12622         * config/stormy16/stormy16.h (NO_FUNCTION_CSE): Likewise.
12623         * config/v850/v850.h (NO_FUNCTION_CSE): Likewise.
12624         * defaults.h (NO_FUNCTION_CSE): Provide default definition to 0.
12625         * doc/tm.texi: Regenerate.
12626         * doc/tm.texi.in: Document NO_FUNCTION_CSE is always defined to
12627         either true or false.
12628
12629 2015-04-27  Jeff Law  <law@redhat.com>
12630
12631         PR tree-optimization/65217
12632         * tree-ssa-dom.c (record_equality): Given two SSA_NAMEs, if just one
12633         of them has a single use, make sure it is the LHS of the implied
12634         copy.
12635
12636 2015-04-28  Alan Modra  <amodra@gmail.com>
12637
12638         PR target/65810
12639         * config/rs6000/rs6000.c (POWERPC64_TOC_POINTER_ALIGNMENT): Define.
12640         (offsettable_ok_by_alignment): Use minimum of decl and toc
12641         pointer alignment.  Replace dead code with assertion.
12642         (use_toc_relative_ref): Add mode arg.  Return false in -mcmodel=medium
12643         case if size exceeds toc pointer alignment.
12644         (rs6000_legitimize_reload_address): Update use_toc_relative_ref call.
12645         (rs6000_emit_move): Likewise.
12646         * configure.ac: Add linker toc pointer alignment check.
12647         * configure: Regenerate.
12648         * config.in: Regenerate.
12649
12650 2015-04-27  Yoshinori Sato <ysato@users.sourceforge.jp>
12651
12652         * config.gcc: Add h8300-*-linux.
12653         * config/h8300/linux.h: New.
12654         * config/h8300/t-linux: New.
12655         * config/h8300/h8300.c (h8300_option_override): Normal mode
12656         is not supported for h8300-*-linux.
12657         (h8300_file_start): Target priority change.
12658         (get_shift_alg): Likewise.
12659         (h8300_shift_need_scratch_p): Likewise.
12660         * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Likewise.
12661         * config/h8300/h8300.md (define_peephole2): Remove duplicate condition.
12662
12663 2015-04-27  Caroline Tice  <cmtice@google.com>
12664
12665         * final.c (final_scan_insn):  Output cold_function_name as function
12666         type.
12667         * varasm.c (cold_function_name):  Make global.
12668         (assemble_start_function):  Re-set cold_function_name.
12669         (assemble_end_function): Output cold partition size.
12670         * varasm.h (cold_function_name):  Declare global.
12671
12672 2015-04-27  Ilya Tocar  <ilya.tocar@intel.com>
12673
12674         * config/i386/i386.h (EXT_REX_SSE_REG_P): New.
12675         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed): Use "v"
12676         constraint.
12677         (*movxi_internal_avx512f): Ditto.
12678         (define_split): Check for xmm16+, when splitting scalar float_extend.
12679         (*extendsfdf2_mixed): Use "v" constraint.
12680         (define_split): Check for xmm16+, when splitting scalar float_truncate.
12681         (*truncdfsf_fast_sse): Use "v" constraint.
12682         (fix_trunc<MODEF:mode><SWI48:mode>_sse): Ditto.
12683         (*float<SWI48:mode><MODEF:mode>2_sse): Ditto.
12684         (define_peephole2): Check for xmm16+, when converting scalar
12685         float_truncate.
12686         (define_peephole2): Check for xmm16+, when converting scalar
12687         float_extend.
12688         (*fop_<mode>_comm_mixed): Use "v" constraint.
12689         (*fop_<mode>_comm_sse): Ditto.
12690         (*fop_<mode>_1_mixed): Ditto.
12691         (*sqrt<mode>2_sse): Ditto.
12692         (*ieee_s<ieee_maxmin><mode>3): Ditto.
12693
12694 2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12695
12696         * combine.c (simplify_if_then_else): Use std::swap instead
12697         of manually swapping.
12698         (known_cond): Likewise.
12699         (simplify_comparison): Likewise.
12700
12701 2015-04-27  Peter Bergner  <bergner@vnet.ibm.com>
12702
12703         PR target/64579
12704         * config/rs6000/htm.md: Remove all define_expands.
12705         (UNSPECV_HTM_TABORTDC, UNSPECV_HTM_TABORTDCI, UNSPECV_HTM_TABORTWC,
12706         UNSPECV_HTM_TABORTWCI): Remove.
12707         (UNSPECV_HTM_TABORTXC, UNSPECV_HTM_TABORTXCI, UNSPECV_HTM_TTEST): New.
12708         (tabort_internal, tbegin_internal, tcheck_internal, tend_internal,
12709         trechkpt_internal, treclaim_internal, tsr_internal): Rename from this...
12710         (tabort, tbegin, tcheck, tend, trechkpt, treclaim, tsr): ...to this.
12711         (tabortdc_internal, tabortdci_internal, tabortwc_internal,
12712         tabortwci_internal): Remove define_insns.
12713         (tabort<wd>c, tabort<wd>ci): New define_insns.
12714         (tabort): Use gpc_reg_operand.
12715         (tcheck): Remove operand.
12716         (htm_mfspr_<mode>, htm_mtspr_<mode>): Use GPR mode macro.
12717         * config/rs6000/htmxlintrin.h (__TM_end): Use _HTM_TRANSACTIONAL as
12718         expected value.
12719         * config/rs6000/rs6000-builtin.def (BU_HTM_SPR0): Remove.
12720         (BU_HTM_SPR1): Rename to BU_HTM_V1.  Remove use of RS6000_BTC_SPR.
12721         (tabort, tabortdc, tabortdci, tabortwc, tabortwci, tbegin,
12722         tcheck, tend, tendall, trechkpt, treclaim, tresume, tsuspend,
12723         tsr, ttest): Pass in the RS6000_BTC_CR attribute.
12724         (get_tfhar, set_tfhar, get_tfiar, set_tfiar, get_texasr, set_texasr,
12725         get_texasru, set_texasru): Pass in the RS6000_BTC_SPR attribute.
12726         (tcheck): Remove builtin argument.
12727         * config/rs6000/rs6000.c (rs6000_htm_spr_icode): Use TARGET_POWERPC64
12728         not TARGET_64BIT.
12729         (htm_expand_builtin): Fix usage of expandedp.  Disallow usage of the
12730         tabortdc and tabortdci builtins when not in 64-bit mode.
12731         Modify code to handle the loss of the HTM define_expands.
12732         Emit code to copy the CR register to TARGET.
12733         (htm_init_builtins): Modify code to handle the loss of the HTM
12734         define_expands.
12735         * config/rs6000/rs6000.h (RS6000_BTC_32BIT): Delete.
12736         (RS6000_BTC_64BIT): Likewise.
12737         (RS6000_BTC_CR): New macro.
12738         * doc/extend.texi: Update documentation for htm builtins.
12739
12740 2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12741
12742         * simplify-rtx.c (simplify_gen_binary): Use std::swap instead
12743         of manually swapping.
12744         (simplify_associative_operation): Likewise.
12745         (simplify_binary_operation): Likewise.
12746         (simplify_plus_minus): Likewise.
12747         (simplify_relational_operation): Likewise.
12748         (simplify_ternary_operation): Likewise.
12749
12750 2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>
12751
12752         * config/stormy16/predicates.md (xs_hi_general_operand): Delete.
12753         (xs_hi_nonmemory_operand): Remove error.
12754         * config/stormy16/stormy16.md (movhi, movhi_internal): Use
12755         general_operand rather than xs_hi_general_operand.
12756
12757 2015-04-27  Richard Biener  <rguenther@suse.de>
12758
12759         * tree-ssa-dom.c (record_equivalences_from_phis): Valueize PHI arg.
12760         (record_equivalences_from_stmt): Valueize rhs.
12761         (record_equality): Canonicalize x and y order via
12762         tree_swap_operands_p.  Do not swap operands for same loop depth.
12763
12764 2015-04-27  Georg-Johann Lay  <avr@gjlay.de>
12765
12766         PR target/65296
12767         PR target/65895
12768         * config/avr/gen-avr-mmcu-specs.c (print_mcu): Close file.
12769         Add hint how to use own spec file.
12770
12771 2015-04-27  Jakub Jelinek  <jakub@redhat.com>
12772
12773         PR tree-optimization/65875
12774         * tree-vrp.c (update_value_range): If in is_new case setting
12775         old_vr to VR_VARYING, also set new_vr to it.  Remove
12776         old_vr->type == VR_VARYING test.
12777         (vrp_visit_phi_node): Return SSA_PROP_VARYING instead of
12778         SSA_PROP_INTERESTING if update_value_range returned true,
12779         but new range is VR_VARYING.
12780
12781 2015-04-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>
12782
12783         * combine.c (sign_extend_short_imm): New.
12784         (set_nonzero_bits_and_sign_copies): Use above new function for sign
12785         extension of src short immediate.
12786         (reg_nonzero_bits_for_combine): Likewise for tem.
12787
12788 2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>
12789
12790         * stor-layout.c (self_referential_component_ref_p): New predicate.
12791         (copy_self_referential_tree_r): Use it.
12792         (self_referential_size): Punt for simple operations directly involving
12793         self-referential component references.
12794         * tree-cfg.c (dump_function_to_file): Add missing final curly bracket.
12795
12796 2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>
12797
12798         * ipa-icf.c (icf_handled_component_p): Remove redundant tests.
12799
12800 2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>
12801
12802         * vec.h (vec): Make splice arguments const.  Update definitions
12803         accordingly.
12804
12805 2015-04-27  Yvan Roux  <yvan.roux@linaro.org>
12806
12807         * config/arm/arm.md (*arm_subsi3_insn): Fixed redundant
12808         alternatives.
12809
12810 2015-04-26  Tom de Vries  <tom@codesourcery.com>
12811
12812         PR tree-optimization/65826
12813         * internal-fn.def: Mark VA_ARG with ECF_LEAF.
12814
12815 2015-04-24  Steve Ellcey  <sellcey@imgtec.com>
12816
12817         * config/mips/mips.md: (*madd4<mode>) Remove accum_in attribute.
12818         (*madd3<mode>): Ditto.
12819         (*msub4<mode>): Ditto.
12820         (*msub3<mode>): Ditto.
12821         (*nmadd4<mode>): Ditto.
12822         (*nmadd3<mode>): Ditto.
12823         (*nmadd4<mode>_fastmath): Ditto.
12824         (*nmadd3<mode>_fastmath): Ditto.
12825         (*nmsub4<mode>): Ditto.
12826         (*nmsub3<mode>): Ditto.
12827         (*nmsub4<mode>_fastmath): Ditto.
12828         (*nmsub3<mode>_fastmath): Ditto.
12829
12830 2015-04-24  Jason Merrill  <jason@redhat.com>
12831
12832         PR c++/50800
12833         * tree.c (build_reference_type_for_mode): Don't pass can_alias_all
12834         down when building TYPE_CANONICAL.
12835         (build_pointer_type_for_mode): Likewise.
12836
12837 2015-04-24  Chen Gang  <gang.chen.5i5j@gmail.com>
12838
12839         * genrecog.c (validate_pattern): Check matching constraint refers
12840         to a lower numbered operand.
12841
12842 2015-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
12843
12844         PR target/65849
12845         * config/rs6000/rs6000.opt (-mvsx-align-128): Make options that
12846         save to independent variables use the Save attribute.  This will
12847         allow these options to be modified with the #pragma/attribute
12848         target support.
12849         (-mallow-movmisalign): Likewise.
12850         (-mallow-df-permute): Likewise.
12851         (-msched-groups): Likewise.
12852         (-malways-hint): Likewise.
12853         (-malign-branch-targets): Likewise.
12854         (-mvectorize-builtins): Likewise.
12855         (-msave-toc-indirect): Likewise.
12856
12857         * config/rs6000/rs6000.c (rs6000_opt_masks): Add more options that
12858         can be set via the #pragma/attribute target support.
12859         (rs6000_opt_vars): Likewise.
12860         (rs6000_inner_target_options): If VSX was set, also set
12861         -mno-avoid-indexed-addresses.
12862
12863 2015-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12864
12865         * config/arm/iterators.md (shiftable_ops): Rename to...
12866         (SHIFTABLE_OPS): ... This.  Update use in comments.
12867         (ior_xor): Rename to...
12868         (IOR_XOR): ... This.
12869         (vqh_ops): Rename to...
12870         (VQH_OPS): ... This.
12871         (vqhs_ops): Rename to...
12872         (VQHS_OPS): ... This.
12873         (rshifts): Rename to...
12874         (RSHIFTS): ... This.
12875         (returns): Rename to...
12876         (RETURNS): ... This.
12877         * config/arm/arm.md: Update uses of the above.
12878         * config/arm/neon.md: Likewise.
12879
12880 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12881
12882         * config.host (case ${host}): Add aarch64*-*-linux case.
12883         * config/aarch64/aarch64-cores.def: Add IMPLEMENTER_ID and PART_NUMBER
12884         fields to all the cores.
12885         * config/aarch64/aarch64-elf.h (DRIVER_SELF_SPECS):
12886         Add MCPU_MTUNE_NATIVE_SPECS.
12887         * config/aarch64/aarch64-option-extensions.def: Add FEATURE_STRING
12888         field to all extensions.
12889         * config/aarch64/aarch64-opts.h: Adjust definition of AARCH64_CORE.
12890         * config/aarch64/aarch64.c: Adjust definition of AARCH64_CORE.
12891         Adjust definition of AARCH64_OPT_EXTENSION.
12892         * config/aarch64/aarch64.h: Adjust definition of AARCH64_CORE.
12893         (MCPU_MTUNE_NATIVE_SPECS): Define.
12894         * config/aarch64/driver-aarch64.c: New file.
12895         * config/aarch64/x-arch64: New file.
12896         * doc/invoke.texi (AArch64 Options): Document native value for -mcpu,
12897         -mtune and -march.
12898
12899 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
12900             Wei Mi  <wmi@google.com>
12901
12902         * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple): New.
12903         * config/i386/i386.c (extract_base_offset_in_addr): New function.
12904         (ix86_operands_ok_for_move_multiple): Ditto.
12905         * config/i386/sse.md (movsd/movhpd to movupd peephole2): New pattern.
12906         (movlpd/movhpd to movupd peephole2): Ditto.
12907
12908 2015-04-24  Marek Polacek  <polacek@redhat.com>
12909
12910         PR c/61534
12911         * input.h (from_macro_expansion_at): Define.
12912
12913         PR c/63357
12914         * doc/invoke.texi: Update description of -Wlogical-op.
12915
12916 2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
12917
12918         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): fix
12919         ternary operator in fprintf and harmonize spacing.
12920
12921 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
12922
12923         * config/i386/sse.md (*vec_widen_smult_even_v8si<mask_name>):
12924         Mark operand1 commutative.
12925
12926 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
12927
12928         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Do not allow both
12929         input operands in memory.
12930         (*vec_concatv2si_sse4_1): Ditto.
12931         (*vec_concatv2df): Ditto, except for SSE3 and equal input operands.
12932         (vec_extract_lo_<mode><mask_name>): Change operand 1 predicate to
12933         register_operand.
12934         (vec_extract_hi_v32hi): Ditto.
12935         (vec_extract_hi_v64hi): Ditto.
12936         (<mask_codefor>avx512f_unpckhpd512<mask_name>): Ditto.
12937
12938 2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
12939             Steven Bosscher <steven@gcc.gnu.org>
12940
12941         PR rtl-optimization/34503
12942         * cprop.c (cprop_reg_p): New.
12943         (hash_scan_set): Use above function to check if register can be
12944         propagated.
12945         (find_avail_set): Return up to two sets, one whose source is a
12946         register and one whose source is a constant.  Sets are returned in an
12947         array passed as parameter rather than as a return value.
12948         (cprop_insn): Use a do while loop rather than a goto.  Try each of the
12949         sets returned by find_avail_set, starting with the one whose source is
12950         a constant. Use cprop_reg_p to check if register can be propagated.
12951         (do_local_cprop): Use cprop_reg_p to check if register can be
12952         propagated.
12953         (implicit_set_cond_p): Likewise.
12954
12955 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
12956
12957         * ipa-icf.c (sem_function::equals_wpa): Compare thunk info.
12958         (sem_function::equals): IGNORED_NODES parameter is now unused;
12959         update call of equals_private.
12960         (sem_function::equals_private): Do not call equals_wpa; skip
12961         gimple body matching if there is no body.
12962         (sem_function::init): Add logic to hash tthunk info.
12963         (sem_function::parse): Also parse thunks.
12964         * ipa-icf.h (equals_private): Update declaration.
12965
12966 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12967
12968         * config/rs6000/altivec.md (*altivec_lvx_<mode>_internal): Remove
12969         asterisk from name so this can be generated directly.
12970         (*altivec_stvx_<mode>_internal): Likewise.
12971         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Add assert
12972         that this is never called during or after reload/lra.
12973         (rs6000_frame_related): Remove split_reg
12974         argument and logic that references it.
12975         (emit_frame_save): Remove last parameter from call to
12976         rs6000_frame_related.
12977         (rs6000_emit_prologue): Remove last parameter from eight calls to
12978         rs6000_frame_related.  Force generation of stvx instruction for
12979         Altivec register saves.  Remove split_reg handling, which is no
12980         longer needed.
12981         (rs6000_emit_epilogue):  Force generation of lvx instruction for
12982         Altivec register restores.
12983
12984 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12985
12986         * config/rs6000/rs6000.opt (mcrypto): Change option description to
12987         match category changes in ISA 2.07B.
12988
12989 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12990
12991         * config/arm/iterators.md (GTGE, GTUGEU, COMPARISONS): New code
12992         iterators.
12993         (cmp_op, cmp_type): New code attributes.
12994         (NEON_VCMP, NEON_VACMP): New int iterators.
12995         (cmp_op_unsp): New int attribute.
12996         * config/arm/neon.md (neon_vc<cmp_op><mode>): New define_expand.
12997         (neon_vceq<mode>): Delete.
12998         (neon_vc<cmp_op><mode>_insn): New pattern.
12999         (neon_vc<cmp_op_unsp><mode>_insn_unspec): Likewise.
13000         (neon_vcgeu<mode>): Delete.
13001         (neon_vcle<mode>): Likewise.
13002         (neon_vclt<mode>: Likewise.
13003         (neon_vcage<mode>): Likewise.
13004         (neon_vcagt<mode>): Likewise.
13005         (neon_vca<cmp_op><mode>): New define_expand.
13006         (neon_vca<cmp_op><mode>_insn): New pattern.
13007         (neon_vca<cmp_op_unsp><mode>_insn_unspec): Likewise.
13008
13009 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
13010
13011         * tree.h (attribute_value_equal): Declare.
13012         * tree.c (attribute_value_equal): Export.
13013
13014 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
13015
13016         * ipa-icf.c (sem_item::compare_attributes): New function.
13017         (sem_item::compare_referenced_symbol_properties): Compare variable
13018         attributes.
13019         (sem_item::hash_referenced_symbol_properties): Record DECL_ALIGN.
13020         (sem_function::param_used_p): New function.
13021         (sem_function::equals_wpa): Fix attribute comparsion; match
13022         parameter type codes; do not compare paremter flags when
13023         they are not used; compare edge flags; compare indirect calls.
13024         (sem_item::update_hash_by_addr_refs): Hash reference type.
13025         (sem_function::equals_private): Do not match DECL_ATTRIBUTES.
13026         (sem_variable::equals_wpa): Do not match DECL_ALIGN; match
13027         reference use type.
13028         (sem_item_optimizer::update_hash_by_addr_refs): Use param_used_p.
13029         * ipa-icf.h (compare_attributes, param_used_p): Declare.
13030
13031 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
13032
13033         * ipa-icf.c (symbol_compare_collection::symbol_compare_collection):
13034         cleanup.
13035         (sem_function::get_hash): Do not hash DECL_DISREGARD_INLINE_LIMITS,
13036         DECL_DECLARED_INLINE_P and DECL_IS_OPERATOR_NEW.
13037         (sem_item::compare_referenced_symbol_properties): New.
13038         (sem_item::hash_referenced_symbol_properties): New.
13039         (sem_item::compare_cgraph_references): Rename to ...
13040         (sem_item::compare_symbol_references): ... this one; use
13041         compare_referenced_symbol_properties.
13042         (sem_function::equals_wpa): Do not compare
13043         DECL_DISREGARD_INLINE_LIMITS, DECL_DECLARED_INLINE_P,
13044         DECL_IS_OPERATOR_NEW; compare pointer sizes.
13045         (sem_item::update_hash_by_addr_refs): Call
13046         hash_referenced_symbol_properties.
13047         (sem_item::update_hash_by_local_refs): Cleanup.
13048         (sem_function::merge): Do not mix up symbol properties.
13049         (sem_variable::equals_wpa): Use compare_symbol_references.
13050         * ipa-icf.h (sem_item::compare_referenced_symbol_properties): New.
13051         (sem_item::hash_referenced_symbol_properties): New.
13052         (sem_item::compare_symbol_references): New.
13053         (sem_item::compare_cgraph_references): Remove.
13054
13055 2015-04-23  Kwok Cheung Yeung  <kcy@codesourcery.com>
13056
13057         PR target/26702
13058         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL):
13059         Emit size of local.
13060
13061 2015-04-23  Nick Clifton  <nickc@redhat.com>
13062
13063         * config/rl78/rl78.c (rl78_preferred_reload_class): Add
13064         ATTRIBUTE_UNUSED to x parameter.
13065         * config/rl78/rl78-opts.h (enum rl78_mul_types): Remove unused MUL_RL78.
13066
13067 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13068
13069         * config/rs6000/crypto.md (crypto_vpmsum<CR_char>): Change
13070         TARGET_CRYPTO to TARGET_P8_VECTOR>
13071         (crypto_vpermxor_<mode>): Likewise.
13072         * config/rs6000/rs6000-builtin.def (BU_CRYPTO_2A): New #define.
13073         (BU_CRYPTO_3A): Likewise.
13074         (BU_CRYPTO_OVERLOAD_2A): Rename from BU_CRYPTO_OVERLOAD_2.
13075         (BU_CRYPTO_OVERLOAD_3A): New #define.
13076         (VPMSUMB): Change from BU_CRYPTO_2 to BU_CRYPTO_2A.
13077         (VPMSUMH): Likewise.
13078         (VPMSUMW): Likewise.
13079         (VPMSUMD): Likewise.
13080         (VPERMXOR_V2DI): Change from BU_CRYPTO_3 to BU_CRYPTO_3A.
13081         (VPERMXOR_V4SI): Likewise.
13082         (VPERMXOR_V8HI): Likewise.
13083         (VPERMXOR_V16QI): Likewise.
13084         (VPMSUM): Change from BU_CRYPTO_OVERLOAD_2 to
13085         BU_CRYPTO_OVERLOAD_2A.
13086         (VPERMXOR): Change from BU_CRYPTO_OVERLOAD3 to
13087         BU_CRYPTO_OVERLOAD_3A.
13088         * config/rs6000/rs6000.opt (mcrypto): Change description of
13089         option.
13090
13091 2015-04-23  Richard Biener  <rguenther@suse.de>
13092
13093         * passes.def: Remove copy propagation passes run directly after CCP.
13094         * tree-ssa-ccp.c (get_value_for_expr): Fall back to a COPY for
13095         SSA names.
13096         (ccp_visit_phi_node): Rework to handle first executable edge
13097         specially.
13098
13099 2015-04-23  Matthew Wahab  <matthew.wahab@arm.com>
13100
13101         * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
13102         (ARM_LEGITIMIZE_RELOAD_ADDRESS): Remove.
13103         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Remove.
13104         * config/arm/arm.c (arm_legimitimize_reload_address): Remove.
13105         (thumb_legimitimize_reload_address): Remove.
13106         * config/arm/arm-protos.h (arm_legimitimize_reload_address):
13107         Remove.
13108         (thumb_legimitimize_reload_address): Remove.
13109
13110 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13111
13112         * conditions.h (CC_STATUS_INIT): Gate on #ifndef CC_STATUS_INIT.
13113
13114 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13115
13116         * config/arm/arm.md (load_multiple): Reject operand 2 greater than
13117         MAX_LDM_STM_OPS.
13118         (store_multiple): Likewise.
13119
13120 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13121
13122         * config/arm/arm-protos.h (struct tune_params): Add issue_rate field.
13123         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune,
13124         arm_strongarm_tune, arm_xscale_tune, arm_9e_tune, arm_v6t2_tune,
13125         arm_cortex_tune, arm_cortex_a8_tune, arm_cortex_a7_tune,
13126         arm_cortex_a15_tune, arm_cortex_a53_tune, arm_cortex_a57_tune,
13127         arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune,
13128         arm_fa726te_tune arm_cortex_a5_tune, arm_xgene1_tune):
13129         Specify issue_rate value.
13130         (arm_issue_rate): Look up issue rate from tuning structs. Remove
13131         large switch statement.
13132         (arm_marvell_pj4_tune): New struct.
13133         * config/arm/arm-cores.def (marvell-pj4): Use arm_marvell_pj4_tune
13134         struct.
13135
13136 2015-04-23  Richard Biener  <rguenther@suse.de>
13137
13138         * tree-vect-slp.c (vect_find_first_load_in_slp_instance): Remove.
13139         (vect_find_last_store_in_slp_instance): Rename to ...
13140         (vect_find_last_scalar_stmt_in_slp): ... this and generalize.
13141         (vect_analyze_slp_cost_1): Use vector_load for constant defs
13142         and vec_construct for external defs when estimating prologue cost.
13143         (vect_analyze_slp_instance): Do not init SLP_INSTANCE_FIRST_LOAD_STMT.
13144         Compute costs here only when vectorizing loops.
13145         (vect_slp_analyze_bb_1): Compute SLP cost here, after vector types
13146         have been determined.
13147         (vect_schedule_slp_instance): Simplify vectorized code placement
13148         and prepare for in-BB external defs.
13149         * tree-vectorizer.h (struct _slp_instance): Remove first_load member.
13150         (SLP_INSTANCE_FIRST_LOAD_STMT): Remove.
13151         * tree-vect-stmts.c (vect_model_store_cost): Remove PURE_SLP_STMT
13152         guard.
13153         (vect_model_load_cost): Likewise.
13154         (vectorizable_store): Instead add it here.
13155         (vectorizable_load): Likewise.
13156         (vect_is_simple_use): Dump def type textually.
13157
13158 2015-04-23  Richard Biener  <rguenther@suse.de>
13159
13160         * cfgexpand.c (expand_gimple_stmt_1): Use ops.code.
13161         * cfgloop.c (verify_loop_structure): Verify the root loop node.
13162         * except.c (duplicate_eh_regions): Call get_eh_region_from_lp_number_fn
13163         instead of get_eh_region_from_lp_number.
13164         * loop-init.c (fix_loop_structure): If we removed a loop, reset
13165         the SCEV cache.
13166
13167 2015-04-23  Anton Blanchard  <anton@samba.org>
13168
13169         * config/rs6000/rs6000.c (rs6000_output_function_prologue): No
13170         need for -mprofile-kernel to save LR to stack.
13171
13172 2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13173
13174         * config/rs6000/rs6000.c (rtx_is_swappable_p): Commentary
13175         adjustments.
13176         (insn_is_swappable_p): Return 1 for a convert from double to
13177         single precision when all of its uses are splats of BE element
13178         zero.
13179
13180 2015-04-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
13181
13182         * ira-costs.c (record_operand_costs): Fix typo (remove redundant code).
13183
13184 2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13185
13186         PR target/65456
13187         * config/rs6000/rs6000.c (rs6000_option_override_internal):  For
13188         VSX + POWER8, enable TARGET_ALLOW_MOVMISALIGN and
13189         TARGET_EFFICIENT_UNALIGNED_VSX if not selected by command line
13190         option.
13191         (rs6000_builtin_mask_for_load): Return 0 for targets with
13192         efficient unaligned VSX accesses so that the vectorizer will use
13193         direct unaligned loads.
13194         (rs6000_builtin_support_vector_misalignment): Always return true
13195         for targets with efficient unaligned VSX accesses.
13196         (rs6000_builtin_vectorization_cost): Cost of unaligned loads and
13197         stores on targets with efficient unaligned VSX accesses is almost
13198         always the same as the cost of an aligned load or store, so model
13199         it that way.
13200         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Return 0 for
13201         unaligned vectors if we have efficient unaligned VSX accesses.
13202         * config/rs6000/rs6000.opt (mefficient-unaligned-vector): New
13203         undocumented option.
13204
13205 2015-04-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13206
13207         Revert:
13208         2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>
13209
13210         * config.gcc (LIBC_MUSL): New tm_defines macro.
13211         * config/linux.h (OPTION_MUSL): Define.
13212         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
13213         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
13214         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
13215
13216         * config/linux.opt (mmusl): New option.
13217         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
13218         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
13219
13220         * configure: Regenerate.
13221
13222 2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>
13223
13224         * config.gcc (LIBC_MUSL): New tm_defines macro.
13225         * config/linux.h (OPTION_MUSL): Define.
13226         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
13227         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
13228         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
13229
13230         * config/linux.opt (mmusl): New option.
13231         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
13232         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
13233
13234         * configure: Regenerate.
13235
13236 2015-04-22  Yury Gribov  <y.gribov@samsung.com>
13237
13238         * doc/invoke.texi (-fsanitize-sections): Update description.
13239         * asan.c (set_sanitized_sections): Parse incoming arg.
13240         (section_sanitized_p): Support wildcards.
13241
13242 2015-04-22  Tom de Vries  <tom@codesourcery.com>
13243
13244         PR tree-optimization/65823
13245         * gimplify.c (gimplify_modify_expr): Use operand_equal_p to test for
13246         equality between ap_copy and ap.
13247
13248 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13249
13250         PR target/47098
13251         * config/openbsd-oldgas.h (OBSD_LIB_SPEC): Add.
13252
13253 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13254
13255         PR target/47122
13256         * config.gcc (vax-*-openbsd*): Fix name of pthread spec header.
13257
13258 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13259
13260         PR target/55144
13261         * config.gcc (bfin*-linux-uclibc*): Prepend tmake_file and
13262         remove already contained t-files.
13263
13264 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13265
13266         * tree-tailcall.c (suitable_for_tail_opt_p, find_tail_calls):
13267         Remove unneeded forward declarations.
13268         (suitable_for_tail_call_opt_p): Commentary typo fix.
13269
13270 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13271
13272         * varasm.c (emit_bss): Remove redundant guard.
13273
13274 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13275
13276         * config/c6x/c6x.h (TARGET_CPU_CPP_BUILTINS): Add unk_isa.
13277
13278 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13279
13280         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Add BFIN_CPU_UNKNOWN.
13281
13282 2015-04-22  Hale Wang  <hale.wang@arm.com>
13283             Terry Guo  <terry.guo@arm.com>
13284
13285         PR rtl-optimization/64818
13286         * combine.c (can_combine_p): Don't combine user-specified
13287         register if it is in an asm input.
13288
13289 2015-04-21  Jan Hubicka  <hubicka@ucw.cz>
13290
13291         PR ipa/65076
13292         * passes.def (early_optimizations): Add pass_dse.
13293
13294 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13295
13296         * defaults.h (INSN_REFERENCES_ARE_DELAYED): New definition.
13297         * reorg.c (redundant_insn): Remove ifdef
13298         INSN_REFERENCES_ARE_DELAYED.
13299         * resource.c (mark_referenced_resources): Likewise.
13300
13301 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13302
13303         * defaults.h (INSN_SETS_ARE_DELAYED): New definition.
13304         * reorg.c (redundant_insn): Remove ifdef INSN_SETS_ARE_DELAYED.
13305         * resource.c (mark_set_resources): Likewise.
13306
13307 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13308
13309         * caller-save.c (insert_one_insn): Remove ifdef HAVE_cc0.
13310         * cfgcleanup.c (flow_find_cross_jump): Likewise.
13311         (flow_find_head_matching_sequence): Likewise.
13312         (try_head_merge_bb): Likewise.
13313         * combine.c (can_combine_p): Likewise.
13314         (try_combine): Likewise.
13315         (distribute_notes): Likewise.
13316         * df-problems.c (can_move_insns_across): Likewise.
13317         * final.c (final): Likewise.
13318         * gcse.c (insert_insn_end_basic_block): Likewise.
13319         * ira.c (find_moveable_pseudos): Likewise.
13320         * reorg.c (try_merge_delay_insns): Likewise.
13321         (fill_simple_delay_slots): Likewise.
13322         (fill_slots_from_thread): Likewise.
13323         * sched-deps.c (sched_analyze_2): Likewise.
13324
13325 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13326
13327         * df-scan.c (df_get_entry_block_def_set): Remove #ifdef
13328         PIC_OFFSET_TABLE_REGNUM.
13329
13330 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13331
13332         * alias.c (init_alias_target): Remove ifdef
13333         * HARD_FRAME_POINTER_IS_FRAME_POINTER.
13334         * df-scan.c (df_insn_refs_collect): Likewise.
13335         (df_get_regular_block_artificial_uses): Likewise.
13336         (df_get_eh_block_artificial_uses): Likewise.
13337         (df_get_entry_block_def_set): Likewise.
13338         (df_get_exit_block_use_set): Likewise.
13339         * emit-rtl.c (gen_rtx_REG): Likewise.
13340         * ira.c (ira_setup_eliminable_regset): Likewise.
13341         * reginfo.c (init_reg_sets_1): Likewise.
13342         * regrename.c (rename_chains): Likewise.
13343         * reload1.c (reload): Likewise.
13344         (eliminate_regs_in_insn): Likewise.
13345         * resource.c (mark_referenced_resources): Likewise.
13346         (init_resource_info): Likewise.
13347
13348 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13349
13350         * defaults.h (MASK_RETURN_ADDR): New definition.
13351         * except.c (expand_builtin_extract_return_addr): Remove ifdef
13352         MASK_RETURN_ADDR.
13353
13354 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13355
13356         * defaults.h (RETURN_ADDR_OFFSET): New definition.
13357         * except.c (expand_builtin_extract_return_addr): Remove ifdef
13358         RETURN_ADDR_OFFSET.
13359         (expand_builtin_frob_return_addr): Likewise.
13360
13361 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13362
13363         * cfgrtl.c (rtl_merge_blocks): Change #if HAVE_cc0 to if (HAVE_cc0)
13364         (try_redirect_by_replacing_jump): Likewise.
13365         (rtl_tidy_fallthru_edge): Likewise.
13366         * combine.c (insn_a_feeds_b): Likewise.
13367         (find_split_point): Likewise.
13368         (simplify_set): Likewise.
13369         * cprop.c (cprop_jump): Likewise.
13370         * cse.c (cse_extended_basic_block): Likewise.
13371         * df-problems.c (can_move_insns_across): Likewise.
13372         * function.c (emit_use_return_register_into_block): Likewise.
13373         * haifa-sched.c (sched_init): Likewise.
13374         * ira.c (find_moveable_pseudos): Likewise.
13375         * loop-invariant.c (find_invariant_insn): Likewise.
13376         * lra-constraints.c (curr_insn_transform): Likewise.
13377         * postreload.c (reload_combine_recognize_const_pattern):
13378         * Likewise.
13379         * reload.c (find_reloads): Likewise.
13380         * reorg.c (delete_scheduled_jump): Likewise.
13381         (steal_delay_list_from_target): Likewise.
13382         (steal_delay_list_from_fallthrough): Likewise.
13383         (redundant_insn): Likewise.
13384         (fill_simple_delay_slots): Likewise.
13385         (fill_slots_from_thread): Likewise.
13386         (delete_computation): Likewise.
13387         * sched-rgn.c (add_branch_dependences): Likewise.
13388
13389 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13390
13391         * genconfig.c (main): Always define HAVE_cc0.
13392         * caller-save.c (insert_one_insn): Change ifdef HAVE_cc0 to #if
13393         HAVE_cc0.
13394         * cfgcleanup.c (flow_find_cross_jump): Likewise.
13395         (flow_find_head_matching_sequence): Likewise.
13396         (try_head_merge_bb): Likewise.
13397         * cfgrtl.c (rtl_merge_blocks): Likewise.
13398         (try_redirect_by_replacing_jump): Likewise.
13399         (rtl_tidy_fallthru_edge): Likewise.
13400         * combine.c (do_SUBST_MODE): Likewise.
13401         (insn_a_feeds_b): Likewise.
13402         (combine_instructions): Likewise.
13403         (can_combine_p): Likewise.
13404         (try_combine): Likewise.
13405         (find_split_point): Likewise.
13406         (subst): Likewise.
13407         (simplify_set): Likewise.
13408         (distribute_notes): Likewise.
13409         * cprop.c (cprop_jump): Likewise.
13410         * cse.c (cse_extended_basic_block): Likewise.
13411         * df-problems.c (can_move_insns_across): Likewise.
13412         * final.c (final): Likewise.
13413         (final_scan_insn): Likewise.
13414         * function.c (emit_use_return_register_into_block): Likewise.
13415         * gcse.c (insert_insn_end_basic_block): Likewise.
13416         * haifa-sched.c (sched_init): Likewise.
13417         * ira.c (find_moveable_pseudos): Likewise.
13418         * loop-invariant.c (find_invariant_insn): Likewise.
13419         * lra-constraints.c (curr_insn_transform): Likewise.
13420         * optabs.c (prepare_cmp_insn): Likewise.
13421         * postreload.c (reload_combine_recognize_const_pattern):
13422         * Likewise.
13423         * reload.c (find_reloads): Likewise.
13424         (find_reloads_address_1): Likewise.
13425         * reorg.c (delete_scheduled_jump): Likewise.
13426         (steal_delay_list_from_target): Likewise.
13427         (steal_delay_list_from_fallthrough): Likewise.
13428         (try_merge_delay_insns): Likewise.
13429         (redundant_insn): Likewise.
13430         (fill_simple_delay_slots): Likewise.
13431         (fill_slots_from_thread): Likewise.
13432         (delete_computation): Likewise.
13433         (relax_delay_slots): Likewise.
13434         * sched-deps.c (sched_analyze_2): Likewise.
13435         * sched-rgn.c (add_branch_dependences): Likewise.
13436
13437 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13438
13439         * combine.c (find_single_use): Remove HAVE_cc0 ifdef for code
13440         that is trivially ded on non cc0 targets.
13441         (simplify_set): Likewise.
13442         (mark_used_regs_combine): Likewise.
13443         * cse.c (new_basic_block): Likewise.
13444         (fold_rtx): Likewise.
13445         (cse_insn): Likewise.
13446         (cse_extended_basic_block): Likewise.
13447         (set_live_p): Likewise.
13448         * rtlanal.c (canonicalize_condition): Likewise.
13449         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
13450
13451 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13452
13453         * conditions.h: Define macros even if HAVE_cc0 is undefined.
13454         * emit-rtl.c: Define functions even if HAVE_cc0 is undefined.
13455         * final.c: Likewise.
13456         * jump.c: Likewise.
13457         * recog.c: Likewise.
13458         * recog.h: Declare functions even when HAVE_cc0 is undefined.
13459         * sched-deps.c (sched_analyze_2): Always compile case for cc0.
13460
13461 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13462
13463         * defaults.h: New definition of EH_RETURN_DATA_REGNO.
13464         * except.c: Remove definition of EH_RETURN_DATA_REGNO.
13465         * builtins.c (expand_builtin): Remove check if
13466         EH_RETURN_DATA_REGNO is defined.
13467         * df-scan.c (df_bb_refs_collect): Likewise.
13468         (df_get_exit_block_use_set): Likewise.
13469         * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
13470         * ira-lives.c (process_bb_node_lives): Likewise.
13471         * lra-lives.c (process_bb_lives): Likewise.
13472
13473 2015-04-21  Uros Bizjak  <ubizjak@gmail.com>
13474
13475         * config/i386/i386.md (ARGP_REG, FRAME_REG, BND2_REG, BND3_REG,
13476         FIRST_PSEUDO_REG): New.
13477         * config/i386/i386.h (STACK_POINTER_REGNUM): Define to SP_REG.
13478         (ARG_POINTER_REGNUM): Define to ARGP_REG.
13479         (FRAME_POINTER_REGNUM): Define to FRAME_REG.
13480         (HARD_FRAME_POINTER_REGNUM): Define to BP_REG.
13481         (FIRST_PSEUDO_REGISTER): Define to FIRST_PSEUDO_REG.
13482         (FIRST_INT_REG): New.
13483         (LAST_INT_REG): New.
13484         (FIRST_*_REG): Define using *_REG.
13485         (LAST_*_REG): Ditto.
13486         (QI_REGNO_P): Define using FIRST_QU_REG and LAST_QI_REG.
13487         (LEGACY_INT_REGNO_P): Define using FIRST_INT_REG and LAST_INT_REG.
13488         (FIRST_FLOAT_REG): Define to FIRST_STACK_REG.
13489
13490 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13491
13492         * expmed.c: (synth_mult): Only assume overlapping
13493         shift with previous steps in alg_sub_t_m2 case.
13494
13495 2015-04-21  Richard Biener  <rguenther@suse.de>
13496
13497         PR tree-optimization/65650
13498         * tree-ssa-ccp.c (valid_lattice_transition): Allow lattice
13499         transitions involving copies.
13500         (set_lattice_value): Adjust for copy lattice state.
13501         (ccp_lattice_meet): Do not merge UNDEFINED and a copy to the copy
13502         if that doesn't dominate the merge point.
13503         (bit_value_unop): Adjust what we treat as varying mask.
13504         (bit_value_binop): Likewise.
13505         (bit_value_assume_aligned): Likewise.
13506         (evaluate_stmt): When we simplified to a SSA name record a copy
13507         instead of dropping to varying.
13508         (visit_assignment): Simplify.
13509
13510         * gimple-match.h (gimple_simplify): Add another callback.
13511         * gimple-fold.c (fold_stmt_1): Adjust caller.
13512         (gimple_fold_stmt_to_constant_1): Likewise - pass valueize
13513         for the 2nd callback.
13514         * gimple-match-head.c (gimple_simplify): Add a callback that is
13515         used to valueize the stmt operands and use it that way.
13516
13517 2015-04-21  Richard Biener  <rguenther@suse.de>
13518
13519         PR tree-optimization/65788
13520         * tree-ssa-ccp.c (evaluate_stmt): Evaluate to UNDEFINED early.
13521
13522 2015-04-21  Richard Biener  <rguenther@suse.de>
13523
13524         * config/i386/i386.c (ix86_builtin_vectorization_cost): Scale
13525         vec_construct cost by vec_stmt_cost.
13526
13527 2015-04-21  Richard Biener  <rguenther@suse.de>
13528
13529         * cfghooks.h (create_basic_block): Replace with two overloads
13530         for RTL and GIMPLE.
13531         (split_block): Likewise.
13532         * cfghooks.c (split_block): Rename to ...
13533         (split_block_1): ... this.
13534         (split_block): Add two type-safe overloads for RTL and GIMPLE.
13535         (split_block_after_labels): Call split_block_1.
13536         (create_basic_block): Rename to ...
13537         (create_basic_block_1): ... this.
13538         (create_basic_block): Add two type-safe overloads for RTL and GIMPLE.
13539         (create_empty_bb): Call create_basic_block_1.
13540         * cfgrtl.c (fixup_fallthru_exit_predecessor): Use
13541         split_block_after_labels.
13542         * omp-low.c (expand_parallel_call): Likewise.
13543         (expand_omp_target): Likewise.
13544         (simd_clone_adjust): Likewise.
13545         * tree-chkp.c (chkp_get_entry_block): Likewise.
13546         * cgraphunit.c (init_lowered_empty_function): Use the GIMPLE
13547         create_basic_block overload.
13548         (cgraph_node::expand_thunk): Likewise.
13549         * tree-cfg.c (make_blocks): Likewise.
13550         (handle_abnormal_edges): Likewise.
13551         * tree-inline.c (copy_bb): Likewise.
13552
13553 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13554
13555         * config/aarch64/aarch64.md (*<NLOGICAL:optab>_one_cmplsidi3_ze):
13556         New pattern.
13557         (*xor_one_cmplsidi3_ze): Likewise.
13558
13559 2015-04-21  Thomas Preud'homme  <thomas.preudhomme@arm.com>
13560
13561         * df-core.c (df_finish_pass): Iterate over df->problems_by_index[] and
13562         use df_remove_problem rather than manually removing problems, leaving
13563         holes in df->problems_in_order[].
13564
13565 2015-04-21  Tom de Vries  <tom@codesourcery.com>
13566
13567         PR tree-optimization/65802
13568         * internal-fn.def (VA_ARG): Add ECF_NOTROW to flags.
13569
13570 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13571
13572         * common/config/aarch64/aarch64-common.c (AARCH64_CPU_NAME_LENGTH):
13573         Increase to 128.
13574         (aarch64_rewrite_selected_cpu): Do not chop off extensions starting
13575         at '.'.  Assert that there's enough space for everything.
13576
13577 2015-04-21  Uros Bizjak  <ubizjak@gmail.com>
13578
13579         PR tree-optimization/64950
13580         Revert:
13581         2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
13582
13583         PR target/41089
13584         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
13585         as volatile.
13586
13587 2015-04-20  Shiva Chen  <shiva0217@gmail.com>
13588
13589         PR rtl-optimization/64916
13590         * cfgcleanup.c (values_equal_p): New function.
13591         (can_replace_by): Use it.
13592
13593 2015-04-20  Paolo Carlini  <paolo.carlini@oracle.com>
13594
13595         PR c++/65801
13596         * doc/invoke.texi ([-Wnarrowing]): Update.
13597
13598 2015-04-20  Jeff Law  <law@redhat.com>
13599
13600         PR tree-optimization/65658
13601         * tree-ssa-threadupdate.c (redirection_block_p): Remove
13602         redundant test for GIMPLE_ASSIGN in last change.
13603
13604 2015-04-20  Uros Bizjak  <ubizjak@gmail.com>
13605
13606         * config/i386/i386.c (set_pic_reg_ever_live): Remove.
13607         (legitimize_pic_address): Do not call set_pic_reg_ever_live.
13608         (legitimize_tls_address): Ditto.
13609         (ix86_expand_move): Ditto.
13610         (ix86_expand_binary_operator): Remove reload_in_progress checks.
13611         (ix86_expand_unary_operator): Ditto.
13612         * config/i386/predicates.md (index_register_operand): Ditto.
13613
13614 2015-04-20  Selim Belbachir  <selim.belbachir@fr.thalesgroup.com>
13615
13616         * reorg.c (try_merge_delay_insns): Improve correctness checking
13617         for targets with multiple delay slots.
13618
13619 2015-04-20  Jeff Law  <law@redhat.com>
13620
13621         PR tree-optimization/65658
13622         * tree-ssa-threadupdate.c (redirection_block_p): Ignore clobber
13623         statements too.
13624
13625 2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>
13626
13627         * config/aarch64/aarch64.c (aarch64_simd_emit_pair_result_insn): Delete.
13628         * config/aarch64/aarch64-protos.h (aarch64_simd_emit_pair_result_insn):
13629         Delete.
13630
13631 2015-04-20  Jakub Jelinek  <jakub@redhat.com>
13632
13633         PR debug/65807
13634         * dwarf2out.c (add_AT_wide): Clear attr.dw_attr_val.val_entry.
13635
13636 2015-04-20  Richard Biener  <rguenther@suse.de>
13637
13638         * gimple-fold.h (gimple_build): Remove optional valueize arguments.
13639         * gimple-fold.c (gimple_build_valueize): New function.
13640         (gimple_build): Always use gimple_build_valueize as valueize hook.
13641
13642 2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>
13643
13644         PR target/64134
13645         * config/aarch64/aarch64.c (aarch64_expand_vector_init): Load constant
13646         and overwrite variable parts if <= 1/2 the elements are variable.
13647
13648 2015-04-19  Vladimir Makarov  <vmakarov@redhat.com>
13649
13650         PR rtl-optimization/65805
13651         * lra-eliminations.c (lra_eliminate_regs_1): Add new assert.
13652         Don't use difference of offset and previous offset if
13653         update_sp_offset is non-zero.
13654         (eliminate_regs_in_insn): Ditto.
13655         * lra-spills.c (remove_pseudos): Exchange 4th and 6th args in
13656         lra_eliminate_regs_1 call.
13657         * lra-constraints.c (get_equiv_with_elimination): Ditto.
13658
13659 2015-04-18  Trevor Saunders  <tsaunders@mozilla.com>
13660
13661         * hash-table.h: Remove version of hash_table that stored value_type *.
13662         * asan.c, attribs.c, bitmap.c, cfg.c, cgraph.h, config/arm/arm.c,
13663         config/i386/winnt.c, config/ia64/ia64.c, config/mips/mips.c,
13664         config/sol2.c, coverage.c, cselib.c, dse.c, dwarf2cfi.c,
13665         dwarf2out.c, except.c, gcse.c, genmatch.c, ggc-common.c,
13666         gimple-ssa-strength-reduction.c, gimplify.c, haifa-sched.c,
13667         hard-reg-set.h, hash-map.h, hash-set.h, ipa-devirt.c, ipa-icf.h,
13668         ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
13669         loop-iv.c, loop-unroll.c, lto-streamer.h, plugin.c, postreload-gcse.c,
13670         reginfo.c, statistics.c, store-motion.c, trans-mem.c, tree-cfg.c,
13671         tree-eh.c, tree-hasher.h, tree-into-ssa.c, tree-parloops.c,
13672         tree-sra.c, tree-ssa-coalesce.c, tree-ssa-dom.c, tree-ssa-live.c,
13673         tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c,
13674         tree-ssa-pre.c, tree-ssa-reassoc.c, tree-ssa-sccvn.c,
13675         tree-ssa-structalias.c, tree-ssa-tail-merge.c,
13676         tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
13677         valtrack.h, var-tracking.c, vtable-verify.c, vtable-verify.h: Adjust.
13678
13679 2015-04-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13680             Jakub Jelinek  <jakub@redhat.com>
13681
13682         PR target/65787
13683         * config/rs6000/rs6000.c (rtx_is_swappable_p): Ensure that a
13684         subsequent SH_NONE operand does not overwrite an existing *special
13685         value.
13686         (adjust_extract): Handle case where a vec_extract operation is
13687         wrapped in a PARALLEL.
13688
13689 2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>
13690
13691         PR target/65780
13692         * config/i386/i386.c (ix86_binds_local_p): Define only if
13693         TARGET_MACHO and TARGET_DLLIMPORT_DECL_ATTRIBUTES are false.
13694
13695 2015-04-17  Jeff Law  <law@redhat.com>
13696
13697         PR tree-optimization/47679
13698         * Makefile.in (OBJS); Add tree-ssa-scopedtables.o.
13699         * tree-ssa-scopedtables.c: New file.
13700         * tree-ssa-scopedtables.h: New file.
13701         * tree-ssa-dom.c: Include tree-ssa-scopedtables.h.
13702         (const_and_copies): Change name/type.
13703         (record_const_or_copy): Move into tree-ssa-scopedtables.c
13704         (record_const_or_copy_1): Similarly.
13705         (restore_vars_to_original_value): Similarly.
13706         (pass_dominator::execute): Create and destroy const_and_copies table.
13707         (thread_across_edge): Update passing of const_and_copies.
13708         (record_temporary_equivalence): Use method calls rather than
13709         manipulating const_and_copies directly.
13710         (record_equality, cprop_into_successor_phis): Similarly.
13711         (dom_opt_dom_walker::before_dom_children): Similarly.
13712         (dom_opt_dom_walker::after_dom_children): Similarly.
13713         (eliminate_redundant_computations): Similarly.
13714         * tree-ssa-threadedge.c (remove_temporary_equivalences): Delete.
13715         (record_temporary_equivalence): Likewise.
13716         (invalidate_equivalences): Likewise.
13717         (record_temporary_equivalences_from_phis): Update due to type
13718         change of const_and_copies.  Use method calls rather than
13719         manipulating the stack directly.
13720         (record_temporary_equivalences_from_stmts_at_dest): Likewise.
13721         (thread_through_normal_block, thread_across_edge): Likewise.
13722         (thread_across_edge): Likewise.
13723         * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
13724         * tree-vrp.c: Include tree-ssa-scopedtables.h.  Change type
13725         of equiv_stack.
13726         (identify_jump_threads): Update due to type change of equiv_stack.
13727         (finalize_jump_threads): Delete the equiv_stack when complete.
13728
13729 2015-04-17  Uros Bizjak  <ubizjak@gmail.com>
13730
13731         * config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
13732         * config/i386/i386.c (ix86_legitimize_reload_address): Ditto.
13733         * config/i386/i386-protos.h (ix86_legitimize_reload_address): Ditto.
13734
13735 2015-04-17  Andreas Tobler  <andreast@gcc.gnu.org>
13736
13737         PR target/65535
13738         * config.gcc: Exit with a comment when we do not have a major version
13739         number for the FreeBSD target.
13740
13741 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
13742
13743         PR target/65689
13744         * genpreds.c (struct constraint_data): Add maybe_allows_reg and
13745         maybe_allows_mem bitfields.
13746         (maybe_allows_none_start, maybe_allows_none_end,
13747         maybe_allows_reg_start, maybe_allows_reg_end, maybe_allows_mem_start,
13748         maybe_allows_mem_end): New variables.
13749         (compute_maybe_allows): New function.
13750         (add_constraint): Use it to initialize maybe_allows_reg and
13751         maybe_allows_mem fields.
13752         (choose_enum_order): Sort the non-is_register/is_const_int/is_memory/
13753         is_address constraints such that those that allow neither mem nor
13754         reg come first, then those that only allow reg but not mem, then
13755         those that only allow mem but not reg, then the rest.
13756         (write_allows_reg_mem_function): New function.
13757         (write_tm_preds_h): Call it.
13758         * stmt.c (parse_output_constraint, parse_input_constraint): Use
13759         the generated insn_extra_constraint_allows_reg_mem function
13760         instead of always setting *allows_reg = true; *allows_mem = true;
13761         for unknown extra constraints.
13762
13763 2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>
13764
13765         PR target/65780
13766         * output.h (default_binds_local_p_3): New.
13767         * varasm.c (default_binds_local_p_3): Make it public.  Take an
13768         argument to indicate if common symbol may be local.  If common
13769         symbol may be local, treat non-external variable as defined
13770         locally.
13771         (default_binds_local_p_2): Pass !flag_pic to default_binds_local_p_3.
13772         (default_binds_local_p_1): Pass false to default_binds_local_p_3.
13773         * config/i386/i386.c (ix86_binds_local_p): New.
13774         (TARGET_BINDS_LOCAL_P): Replace default_binds_local_p_2 with
13775         ix86_binds_local_p.
13776
13777 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
13778
13779         PR debug/65771
13780         * dwarf2out.c (mem_loc_descriptor): For CONST, fallback to
13781         trying mem_loc_descriptor on XEXP (rtl, 0).
13782
13783 2015-04-17  Martin Liska  <mliska@suse.cz>
13784
13785         * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
13786         Release symbol_compare_collection.
13787         * ipa-reference.c: Add TODO that a vector should be released.
13788
13789 2015-04-17  Sivanupandi Pitchumani <Pitchumani.Sivanupandi@atmel.com>
13790
13791         PR target/65296
13792         * config/avr/gen-avr-mmcu-specs.c (*avrlibc_startfile): Adjust
13793         to new AVR-LibC file layout (bug #44574).
13794         (*avrlibc_devicelib): Same.
13795         * config/avr/avr-mcus.def: Adjust comments.
13796         * config/avr/avr.opt (nodevicelib): Adjust help.
13797
13798 2015-04-17  Alan Lawrence  <alan.lawrence@arm.com>
13799
13800         * config/aarch64/arm_neon.h (vdup_n_f32): Remove forward declaration.
13801
13802 2015-04-17  Patrick Palka  <ppalka@gcc.gnu.org>
13803
13804         PR c++/64527
13805         * gimplify.c (gimplify_init_constructor): Always emit a
13806         side-effecting constructor.
13807
13808 2015-04-17  Tom de Vries  <tom@codesourcery.com>
13809
13810         PR tree-optimization/64950
13811         * gimplify.c (gimplify_function_tree): Tentatively set PROP_gimple_lva
13812         in cfun->curr_properties.
13813         (gimplify_va_arg_expr): Clear PROP_gimple_lva in cfun->curr_properties
13814         if we generate an IFN_VA_ARG.
13815         * tree-inline.c (expand_call_inline): Reset PROP_gimple_lva in dest
13816         function if PROP_gimple_lva is not set in src function.
13817
13818 2015-04-17  Tom de Vries  <tom@codesourcery.com>
13819             Michael Matz  <matz@suse.de>
13820
13821         PR tree-optimization/64950
13822         * gimple-iterator.c (update_modified_stmts): Remove static.
13823         * gimple-iterator.h (update_modified_stmts): Declare.
13824         * gimplify.c (gimplify_modify_expr): Handle IFN_VA_ARG.
13825         (gimplify_va_arg_internal): New function.
13826         (gimplify_va_arg_expr): Use IFN_VA_ARG.
13827         * gimplify.h (gimplify_va_arg_internal): Declare.
13828         * internal-fn.c (expand_VA_ARG): New unreachable function.
13829         * internal-fn.def (VA_ARG): New DEF_INTERNAL_FN.
13830         * tree-stdarg.c (gimple_call_ifn_va_arg_p, expand_ifn_va_arg_1)
13831         (expand_ifn_va_arg): New function.
13832         (pass_data_stdarg): Add PROP_gimple_lva to properties_provided field.
13833         (pass_stdarg::execute): Call expand_ifn_va_arg.
13834         (pass_data_lower_vaarg): New pass_data.
13835         (pass_lower_vaarg): New gimple_opt_pass.
13836         (pass_lower_vaarg::gate, pass_lower_vaarg::execute)
13837         (make_pass_lower_vaarg): New function.
13838         * cfgexpand.c (pass_data_expand): Add PROP_gimple_lva to
13839         properties_required field.
13840         * passes.def (all_passes): Add pass_lower_vaarg.
13841         * tree-pass.h (PROP_gimple_lva): Add define.
13842         (make_pass_lower_vaarg): Declare.
13843
13844 2015-04-17  Tom de Vries  <tom@codesourcery.com>
13845
13846         * fold-const.c (operand_equal_p): Handle INTERNAL_FNs.
13847         * calls.c (call_expr_flags): Same.
13848
13849 2015-04-17  Tom de Vries  <tom@codesourcery.com>
13850
13851         * tree-stdarg.c (optimize_va_list_gpr_fpr_size): Factor out of ...
13852         (pass_stdarg::execute): ... here.
13853
13854 2015-04-17  Tom de Vries  <tom@codesourcery.com>
13855             Michael Matz  <matz@suse.de>
13856
13857         * tree-cfg.c (make_blocks_1): Factor out of ...
13858         (make_blocks): ... here.
13859         (make_edges_bb): Factor out of ...
13860         (make_edges): ... here.
13861         (gimple_find_sub_bbs): New function.
13862         * tree-cfg.h (gimple_find_sub_bbs): Declare.
13863
13864 2015-04-17  Tom de Vries  <tom@codesourcery.com>
13865
13866         * tree.c (free_lang_data): Disable lang_hooks.gimplify_expr.
13867
13868 2015-04-17  Yury Gribov  <y.gribov@samsung.com>
13869
13870         * asan.c (set_sanitized_sections): New function.
13871         (section_sanitized_p): Ditto.
13872         (asan_protect_global): Optionally sanitize user-defined
13873         sections.
13874         * asan.h (set_sanitized_sections): Declare new function.
13875         * common.opt (fsanitize-sections): New option.
13876         * doc/invoke.texi (-fsanitize-sections): Document new option.
13877         * opts-global.c (handle_common_deferred_options): Handle new
13878         option.
13879
13880 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
13881
13882         PR debug/65771
13883         * dwarf2out.c (loc_list_from_tree): Return NULL
13884         for DEBUG_EXPR_DECL.
13885
13886 2015-04-17  Christian Bruel  <christian.bruel@st.com>
13887
13888         * ipa-inline.c (can_inline_edge_p): Allow inlining of functions with
13889         same attributes.
13890
13891 2015-04-16  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
13892
13893         * ira-color.c (setup_left_conflict_sizes_p): Do not process
13894         node itself when computing left conflict subnode size.
13895
13896 2015-04-16  Uros Bizjak  <ubizjak@gmail.com>
13897
13898         * config/i386/predicates.md (register_mixssei387nonimm_operand): New.
13899         * config/i386/i386.md (*fop_<mode>_1_mixed): Merge with
13900         *fop_<mode>_1_sse using enabled attribute.  Use
13901         register_mixssei387nonimm_operand operand 1 predicate. Change
13902         alternative 3 constraints from "x" to "v".
13903
13904 2015-04-16  Richard Biener  <rguenther@suse.de>
13905
13906         PR tree-optimization/65774
13907         * tree-ssa-ccp.c (evaluate_stmt): Constrain types we invoke
13908         bit-value tracking on.
13909
13910 2015-04-16  Richard Biener  <rguenther@suse.de>
13911
13912         PR tree-optimization/64277
13913         * tree-vrp.c (check_array_ref): Fix anti-range handling,
13914         simplify upper bound handling.
13915         (search_for_addr_array): Simplify.
13916         (check_array_bounds): Handle ADDR_EXPRs here.
13917         (check_all_array_refs): Simplify.
13918
13919 2015-04-16  Uros Bizjak  <ubizjak@gmail.com>
13920
13921         * config/i386/i386.c (print_reg): Rewrite function.
13922
13923 2015-04-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13924
13925         * config/s390/s390.h (IRA_HARD_REGNO_ADD_COST_MULTIPLIER):
13926         Invert the condition.
13927
13928 2015-04-16  Renlin Li  <renlin.li@arm.com>
13929
13930         * simplify-rtx.c (simplify_unary_operation_1): Fix a typo. Enable two
13931         simplifications for UNSIGNED_FLOAT.
13932
13933 2015-04-16  Nick Clifton  <nickc@redhat.com>
13934
13935         * config/rl78/rl78-opts.h (enum rl78_mul_types): Add MUL_G14 and
13936         MUL_UNINIT.
13937         (enum rl78_cpu_type): New.
13938         * config/rl78/rl78-virt.md (attr valloc): Add divhi and divsi.
13939         (umulhi3_shift_virt): Remove m constraint from operand 1.
13940         (umulqihi3_virt): Likewise.
13941         * config/rl78/rl78.c (rl78_option_override): Add code to process
13942         -mcpu and -mmul options.
13943         (rl78_alloc_physical_registers): Add code to handle divhi and
13944         divsi valloc attributes.
13945         (set_origin): Likewise.
13946         * config/rl78/rl78.h (RL78_MUL_G14): Define.
13947         (TARGET_G10, TARGET_G13, TARGET_G14): Define.
13948         (TARGET_CPU_CPP_BUILTINS): Define __RL78_MUL_xxx__ and
13949         __RL78_Gxx__.
13950         (ASM_SPEC): Pass -mcpu on to assembler.
13951         * config/rl78/rl78.md (mulqi3): Add a clobber of AX.
13952         (mulqi3_rl78): Likewise.
13953         (mulhi3_g13): Likewise.
13954         (mulhi3): Generate the G13 or G14 versions of the insn directly.
13955         (mulsi3): Likewise.
13956         (mulhi3_g14): Add clobbers of AX and BC.
13957         (mulsi3_g14): Likewise.
13958         (mulsi3_g13): Likewise.
13959         (udivmodhi4, udivmodhi4_g14, udivmodsi4): New patterns.
13960         (udivmodsi4_g14, udivmodsi4_g13): New patterns.
13961         * config/rl78/rl78.opt (mmul): Initialise value to
13962         RL78_MUL_UNINIT.
13963         (mcpu): New option.
13964         (m13, m14, mrl78): New option aliases.
13965         * config/rl78/t-rl78 (MULTILIB_OPTIONS): Add mg13 and mg14.
13966         (MULTILIB_DIRNAMES): Add g13 and g14.
13967         * doc/invoke.texi: Document -mcpu and -mmul options.
13968
13969 2015-04-16  Richard Biener  <rguenther@suse.de>
13970
13971         * tree-ssa-ccp.c (likely_value): See if we have operands that
13972         are marked as never simulate again and return CONSTANT in this
13973         case.
13974         * tree-ssa-propagate.c (simulate_stmt): Mark stmts that do
13975         not have any operands that will be simulated again as
13976         not being simulated again.
13977
13978 2015-04-15  Uros Bizjak  <ubizjak@gmail.com>
13979
13980         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed):
13981         Merge with *cmpi<FPCMP:unord><MODEF:mode>_sse using enabled attribute.
13982         (*extendsfdf2_mixed): Merge with *extendsfdf2_sse using enabled
13983         attribute.
13984         (*truncdfsf_fast_mixed): Merge with *truncdfsf_fast_sse using
13985         enabled attribute.
13986         (*float<SWI48:mode><MODEF:mode>2_mixed): Rename from
13987         *float<SWI48:mode><MODEF:mode>2_sse.
13988         (*absneg<mode>2_mixed): Merge with *absneg<mode>2_sse using
13989         enabled attribute.
13990         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_sse using
13991         enabled attribute.
13992
13993 2015-04-15  Tom de Vries  <tom@codesourcery.com>
13994
13995         PR other/65487
13996         * function.c (push_dummy_function): New function.
13997         (init_dummy_function_start): Use push_dummy_function.
13998         (pop_dummy_function): New function.  Factored out of ...
13999         (expand_dummy_function_end): ... here.
14000         * function.h (push_dummy_function, pop_dummy_function): Declare.
14001         * passes.c (pass_manager::dump_passes): Use push_dummy_function and
14002         pop_dummy_function.
14003         * tree-chkp.c (chkp_gate): Handle cgraph_node::get (cfun->decl) == NULL.
14004
14005 2015-04-15  Jeff Law  <law@redhat.com>
14006
14007         PR tree-optimization/47679
14008         * tree-ssa-dom.c (build_and_record_new_cond): Moved to avoid
14009         need for forward declaration in upcoming changes.
14010         (record_conditions, record_edge_info): Likewise.
14011
14012         PR rtl-optimization/42522
14013         * cse.c (fold_rtx): Try to simplify a ZERO_EXTRACT or
14014         SIGN_EXTRACT as a whole object rather than simplifying
14015         its operand.
14016
14017 2015-04-15  Jakub Jelinek  <jakub@redhat.com>
14018
14019         PR ipa/65765
14020         * ipa-icf-gimple.c (func_checker::compare_bb): For GIMPLE_NOP
14021         and GIMPLE_PREDICT use break instead of return true. For
14022         GIMPLE_EH_DISPATCH, compare dispatch region.
14023
14024 2015-04-14  Matthew Wahab  <matthew.wahab@arm.com>
14025
14026         * doc/extend.texi (__sync Builtins): Simplify some text.  Update
14027         details about the implementation.  Make clear preference for
14028         __atomic builtins.  Reduce possibility of future change.
14029
14030 2015-04-15  Nick Clifton  <nickc@redhat.com>
14031
14032         * config/rx/rx.opt (mallow-string-insns): New option.
14033         * config/rx/rx.c (RX_BUILTIN_RMPA): Disable the use of this
14034         builtin if string instructions are denied.
14035         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Define
14036         __RX_ALLOW_STRING_INSNS__ or __RX_DISALLOW_STRING_INSNS__, as
14037         appropriate.
14038         (ASM_SPEC): Pass -mno-allow-string-insns on to the assembler.
14039         * config/rx/rx.md (movstr): Enable pattern only if string
14040         instructions are allowed.
14041         (rx_movstr, rx_strend, movmemsi, rx_movmem): Likewise.
14042         (cmpstrnsi, cmpstrsi, rx_cmpstrn, rmpa): Likewise.
14043         * config/rx/t-rx (MULTILIB_OPTIONS): Add mno-allow-string-insns.
14044         (MULTILIB_DIRNAMES): Add no-strings.
14045         * doc/invoke.texi: Document -mno-allow-string-insns.
14046
14047 2015-04-15  Alan Modra  <amodra@gmail.com>
14048
14049         PR target/65408
14050         PR target/58744
14051         PR middle-end/36043
14052         * calls.c (load_register_parameters): Don't load past end of
14053         mem unless suitably aligned.
14054
14055 2015-04-15  Nick Clifton  <nickc@redhat.com>
14056
14057         * config/rl78/rl78.c (rl78_expand_prologue): Mark large stack
14058         decrement instruction as being frame related.
14059         (rl78_print_operand_1): Handle 'p' modifier to add +0 to HL
14060         based addresses.
14061         If zero extending a function address enclose the operation in
14062         %code(...).
14063         (rl78_preferred_reload_class): New function.
14064         (TARGET_PREFERRED_RELOAD_CLASS): Define.
14065         * config/rl78/rl78.md: Remove useless constraints in expanders.
14066         (mulqi3_rl78): Remove + qualifier on input-only operand 1.
14067         (mulhi3_rl78): Likewise.
14068         (mulhi3_g13): Likewise.
14069         (mulsi3_rl78): Likewise.
14070         (es_addr): Move to before the multiply patterns.
14071
14072 2015-04-15  Alan Modra  <amodra@gmail.com>
14073
14074         * function.h (struct emit_status): Delete x_first_insn, x_last_insn
14075         and sequence_stack.  Add seq.
14076         (seq_stack): Delete.
14077         * function.c (prepare_function_start): Don't access x_last_insn.
14078         * emit-rtl.h (get_current_sequence, get_topmost_sequence): New.
14079         (get_insns, set_first_insn, get_last_insn, set_last_insn): Use them.
14080         * emit_rtl.c (start_sequence, push_topmost_sequence,
14081         pop_topmost_sequence, end_sequence, in_sequence_p, init_emit): Use
14082         sequence accessors.
14083         (get_last_insn_anywhere, add_insn_after_nobb, add_insn_before_nobb,
14084         remove_insn): Likewise.  Simplify.
14085         * config/m32c/m32c.c (m32c_leaf_function_p): Use push_topmost_sequence
14086         and pop_topmost_sequence.
14087         (m32c_function_needs_enter): Use get_topmost_sequence.  Ignore
14088         debug insns.
14089         * config/rs6000/rs6000.c (rs6000_call_aix): Use get_current_sequence.
14090
14091 2015-04-14  Yvan Roux  <yvan.roux@linaro.org>
14092
14093         PR target/65729
14094         * lra-constraints.c (prohibited_class_reg_set_mode_p): Restore and fix
14095         the assertiion.
14096
14097 2015-04-14  Uros Bizjak  <ubizjak@gmail.com>
14098
14099         * config/i386/i386.h (LEGACY_INT_REG_P): New define.
14100         (LEGACY_INT_REGNO_P): Ditto.
14101         (GENERAL_REGNO_P): Use LEGACY_INT_REGNO_P.
14102         (ANY_MASK_REG_P): Remove.
14103         (BND_REG_P): Rename from ANY_BND_REG_P.
14104         * config/i386/i386.c (print_reg): Use LEGACY_INT_REG_P to print
14105         legacy integer registers.  Do not handle MMX_REG_P in a special way.
14106         Merge 64byte and 32byte SSE handling.
14107
14108 2015-04-14  Nick Clifton  <nickc@redhat.com>
14109
14110         * expr.c (expand_assignment): Force an address offset computation
14111         into a register before changing its mode.
14112         (expand_expr_real_1): Likewise.
14113
14114 2015-04-14  Alan Lawrence  <alan.lawrence@arm.com>
14115
14116         * config/aarch64/arm_neon.h (vst1_lane_f32, vst1_lane_f64,
14117         vst1_lane_p8, vst1_lane_p16, vst1_lane_s8, vst1_lane_s16,
14118         vst1_lane_s32, vst1_lane_s64, vst1_lane_u8, vst1_lane_u16,
14119         vst1_lane_u32, vst1_lane_u64, vst1q_lane_f32, vst1q_lane_f64,
14120         vst1q_lane_p8, vst1q_lane_p16, vst1q_lane_s8, vst1q_lane_s16,
14121         vst1q_lane_s32, vst1q_lane_s64, vst1q_lane_u8, vst1q_lane_u16,
14122         vst1q_lane_u32, vst1q_lane_u64): Reimplement with pointer dereference
14123         and __aarch64_vget_lane_any.
14124
14125 2015-04-14  Jakub Jelinek  <jakub@redhat.com>
14126
14127         PR rtl-optimization/65761
14128         * cfgrtl.c (rtl_split_edge): For EDGE_CROSSING split, use
14129         get_last_bb_insn (after) instead of NEXT_INSN (BB_END (after)).
14130
14131 2015-04-14  Richard Biener  <rguenther@suse.de>
14132
14133         * graphite-scop-detection.c: Do not include cp/cp-tree.h.
14134         (graphite_can_represent_scev): Use POINTER_TYPE_P.
14135
14136 2015-04-14  Richard Biener  <rguenther@suse.de>
14137
14138         PR tree-optimization/65758
14139         * tree-ssa-ccp.c (get_value_from_alignment): Adjust mask test
14140         against -1.
14141         (ccp_lattice_meet): Likewise.
14142         (bit_value_unop): Likewise.
14143         (bit_value_binop): Likewise.
14144         (bit_value_assume_aligned): Likewise.
14145
14146 2015-04-14  Christian Bruel  <christian.bruel@st.com>
14147
14148         * execute_dwarf2_frame (dw_frame_pointer_regnum): Reinitialize for each
14149         function.
14150
14151 2015-04-14  Marc Glisse  <marc.glisse@inria.fr>
14152
14153         PR tree-optimization/63387
14154         * match.pd ((x unord x) | (y unord y) -> (x unord y),
14155         (x unord x) | (x unord y) -> (x unord y)): New simplifications.
14156
14157 2015-04-14  Uros Bizjak  <ubizjak@gmail.com>
14158
14159         * config/i386/predicates.md (any_QIreg_operand): Rename from
14160         q_regs_operand.  Do not process subregs.
14161         (QIreg_operand): Use QI_REGNO_P predicate.
14162         (ext_QIreg_operand): Ditto.
14163         (ext_register_operand): Ditto.
14164         * config/i386/i386.md (TEST splitters): Use QIreg_operand predicate.
14165         (AND splitters): Ditto.
14166         (AND with -65536 splitter): Add SWI48 mode for operand 0.
14167         (AND with -256 splitter): Use any_QIreg_operand predicate and
14168         SWI248 mode for operand 0.
14169         (AND with -65281 splitter): Use QIreg_operand predicate and SWI248
14170         mode for operand 0.
14171         (SETCC + MOVZBL peepholes): Update for renamed any_QIreg_operand.
14172
14173 2015-04-13  Gerald Pfeifer  <gerald@pfeifer.com>
14174
14175         * doc/plugins.texi: Rewrite first introductory paragraph.
14176
14177 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
14178
14179         * tree-vrp.c (nonnull_arg_p): THIS pointers and references are non-zero.
14180         (gimple_stmt_nonzero_warnv_p): Reference return values are non-zero.
14181
14182 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
14183
14184         * ipa-profie.c (ipa_profile): Check number of parameters
14185         and possible polymorphic call targets before
14186         devirtualizing.
14187
14188 2015-04-13  Uros Bizjak  <ubizjak@gmail.com>
14189
14190         * config/i386/i386.md (*bmi2_umul<mode><dwi>3_1): Merge from
14191         *bmi2_umulsidi3_1 and *bmi2_umulditi3_1 using DWIH mode iterator.
14192
14193 2015-04-13  Richard Biener  <rguenther@suse.de>
14194
14195         PR tree-optimization/65204
14196         * tree-ssa-ccp.c (evaluate_stmt): Always evaluate address
14197         takens for bit-CCP.
14198
14199 2015-04-13  Richard Biener  <rguenther@suse.de>
14200
14201         PR target/65660
14202         * config/i386/i386.c (bdver1_cost): Double cond_taken_branch_cost
14203         and cond_not_taken_branch_cost to 4 and 2.
14204         (bdver2_cost): Likewise.
14205         (bdver3_cost): Likewise.
14206         (bdver4_cost): Likewise.
14207
14208 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
14209
14210         * hash-table.h (hash_table constructor): Add mem stats.
14211         (alloc_entries): Likewise.
14212
14213 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
14214
14215         * ipa-cp.c (ipcp_driver): Relase prev_edge.
14216         * passes.c (execute_one_pass): Only add transform if pass has one.
14217
14218 2015-04-12  Joseph Myers  <joseph@codesourcery.com>
14219
14220         * config/i386/i386.c (ix86_option_override_internal): Don't set
14221         -fprefetch-loop-arrays if optimizing for size.
14222
14223 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
14224             Gerald Pfeifer  <gerald@pfeifer.com>
14225
14226         * doc/contrib.texi (Contributors): Add Martin Jambor and
14227         Michael Matz.
14228
14229 2015-04-12  Jakub Jelinek  <jakub@redhat.com>
14230
14231         * BASE-VER: Set to 6.0.0.
14232
14233         PR tree-optimization/65747
14234         * ipa-icf-gimple.c (func_checker::compare_operand): Use compare_operand
14235         rather than compare_ssa_name for OBJ_TYPE_REF_OBJECT.
14236
14237 2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
14238
14239         * doc/invoke.texi (-Wmemset-transposed-args): Break a long
14240         sentence.  Improve grammar.
14241
14242 2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
14243
14244         * doc/contrib.texi (Contributors): Add Maxim Kuvyrkov.
14245
14246 2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
14247
14248         PR ipa/65743
14249         * ipa-inline-transform.c (speculation_removed): Remove static var.
14250         (check_speculations): New function.
14251         (clone_inlined_nodes): Do not check spculations.
14252         (inline_call): Call check_speculations.
14253         * ipa-prop.c (ipa_make_edge_direct_to_target): Do not
14254         consider non-invariants.
14255
14256 2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
14257             Martin Liska  <mliska@suse.cz>
14258
14259         PR ipa/65722
14260         * ipa-icf.c (sem_item::compare_cgraph_references): function and
14261         variable can not match.
14262         (sem_item::update_hash_by_addr_refs): Fix handling of virtual tables.
14263         (sem_variable::equals_wpa): Fix checking of DECL_FINAL_P patch.
14264
14265 2015-04-11  Jakub Jelinek  <jakub@redhat.com>
14266
14267         PR tree-optimization/65735
14268         * tree-ssa-threadedge.c (fsm_find_control_statement_thread_paths):
14269         Remove visited_phis argument, add visited_bbs, avoid recursing into the
14270         same bb rather than just into the same phi node.
14271         (thread_through_normal_block): Adjust caller.
14272
14273 2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
14274
14275         * doc/contrib.texi (Contributors): Add Ira Rosen.
14276
14277 2015-04-11  Benno Schulenberg  <bensberg@justemail.net>
14278
14279         * gcov.c (find_source): Fix miswording in error message.
14280         * config/i386/i386.c (ix86_handle_cconv_attribute): Likewise.
14281         (ix86_expand_sse_comi_round): Fix typo in error message.
14282
14283 2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
14284
14285         * doc/contrib.texi (Contributors): Add Laurynas Biveinis.
14286
14287 2015-04-10  Gerald Pfeifer  <gerald@pfeifer.com>
14288
14289         * doc/contrib.texi (Contributors): Update Joe Buck's entry.
14290
14291 2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>
14292
14293         PR target/65710
14294         * lra-assigns.c (spill_for): Update smallest_bad_spills_num.
14295         Print bad_spills_num and insn_pseudos_num.
14296
14297 2015-04-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14298
14299         PR target/65694
14300         * config/arm/arm.c (arm_canonicalize_comparison): Use ARM_SIGN_EXTEND
14301         when creating +1 values for SImode.
14302
14303 2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>
14304
14305         PR target/65729
14306         * lra-constraints.c (prohibited_class_reg_set_mode_p): Comment the
14307         assert.
14308
14309 2015-04-10  Jakub Jelinek  <jakub@redhat.com>
14310             Iain Sandoe  <iain@codesourcery.com>
14311
14312         PR target/65351
14313         * configure: Regenerate.
14314
14315 2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>
14316
14317         PR target/65671
14318         * config/i386/sse.md: Generate vextract32x4 if AVX-512DQ is disabled.
14319
14320 2015-04-09  Gerald Pfeifer  <gerald@pfeifer.com>
14321
14322         * doc/contrib.texi (Contributors): Add John Marino.
14323
14324 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
14325
14326         PR tree-optimization/65709
14327         * ubsan.c (instrument_mem_ref): Use TREE_TYPE (base) instead of
14328         TREE_TYPE (TREE_TYPE (t)).
14329
14330 2015-04-09  Vladimir Makarov  <vmakarov@redhat.com>
14331
14332         PR target/65710
14333         * lra-int.h (lra_bad_spill_regno_start): New.
14334         * lra.c (lra_bad_spill_regno_start): New.
14335         (lra): Set up lra_bad_spill_regno_start.  Set up
14336         lra_constraint_new_regno_start unconditionally.
14337         * lra-assigns.c (spill_for): Use lra_bad_spill_regno_start for
14338         spill preferences.
14339
14340 2015-04-09  Marek Polacek  <polacek@redhat.com>
14341             Jakub Jelinek  <jakub@redhat.com>
14342
14343         PR middle-end/65554
14344         * gimple-fold.c (gimple_fold_builtin_memory_op): Update comment.
14345         (fold_ctor_reference): Use STRIP_USELESS_TYPE_CONVERSION instead
14346         of STRIP_NOPS.
14347
14348 2015-04-09  Segher Boessenkool  <segher@kernel.crashing.org>
14349
14350         PR rtl-optimization/65693
14351         * combine.c (is_parallel_of_n_reg_sets): Move outside of
14352         #ifndef HAVE_cc0.
14353
14354 2015-04-09  Georg-Johann Lay  <avr@gjlay.de>
14355
14356         PR target/65296
14357         * config/avr/driver-avr.c (avr_devicespecs_file): Don't specify a
14358         device specs file if "device-specs%s" didn't resolve to a path.
14359
14360 2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>
14361
14362         PR target/65676
14363         * config/i386/i386.c (fixup_modeless_constant): New.
14364         (ix86_expand_args_builtin): Fixup modeless constant operand.
14365         (ix86_expand_round_builtin): Ditto.
14366         (ix86_expand_special_args_builtin): Ditto.
14367         (ix86_expand_builtin): Ditto.
14368
14369 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
14370
14371         PR target/65693
14372         * config/i386/i386.md (*udivmod<mode>4_pow2): Allow
14373         any pow2 integer in between 2 and 0x80000000U inclusive.
14374
14375 2015-04-08  Segher Boessenkool  <segher@kernel.crashing.org>
14376
14377         PR rtl-optimization/65693
14378         * combine.c (is_parallel_of_n_reg_sets): Change first argument
14379         from an rtx_insn * to an rtx.
14380         (try_combine): Adjust both callers.  Use it once more.
14381
14382 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
14383
14384         * tree-chkp.c (chkp_find_const_bounds_var): Remove.
14385         (chkp_make_static_const_bounds): Search existing
14386         symbol by assembler name.  Use make_decl_one_only.
14387         (chkp_get_zero_bounds_var): Remove node search which
14388         is now performed in chkp_make_static_const_bounds.
14389         (chkp_get_none_bounds_var): Likewise.
14390
14391 2015-04-08  Michael Witten  <mfwitten@gmail.com>
14392
14393         * doc/extend.texi (Attribute Syntax): Add a trailing semicolon
14394         to an example.
14395
14396 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
14397
14398         * tree.h (CONVERT_EXPR_P): Commentary typo fix.
14399
14400 2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>
14401
14402         * doc/extend.texi (__sync Builtins): Fix grammar.
14403
14404 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
14405
14406         * doc/cfg.texi (GIMPLE statement iterators): Fix typo.
14407
14408 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
14409
14410         * varasm.c (emit_local): Move definition of align.
14411
14412 2015-04-08  Julian Brown  <julian@codesourcery.com>
14413
14414         * config/nvptx/mkoffload.c (process): Support variable mapping.
14415
14416 2015-03-27  Trevor Saunders  <tbsaunde@tbsaunde.org>
14417
14418         * config/alpha/alpha.c (alpha_use_linkage): Change type of slot to
14419         alpha_links **.
14420         (alpha_write_one_linkage): Correct typo.
14421
14422 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
14423
14424         * ipa-comdats.c (propagate_comdat_group): Walk through thunks.
14425
14426 2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>
14427
14428         * doc/install.texi (bootstrap-lto-noplugin): Rewrite.
14429
14430 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
14431
14432         * tree-chkp.h (chkp_insert_retbnd_call): New.
14433         * tree-chkp.c (chkp_insert_retbnd_call): New.
14434         * ipa-split.c (insert_bndret_call_after): Remove.
14435         (split_function): Use chkp_insert_retbnd_call.
14436         * cgraphunit.c (cgraph_node::expand_thunk): Build returned
14437         bounds for instrumented functions.
14438
14439 2015-04-07  Jan Hubicka  <hubicka@ucw.cz>
14440
14441         PR ipa/65540
14442         * calls.c (initialize_argument_information): When producing tail
14443         call also turn SSA_NAMES passed by references to original PARM_DECLs
14444
14445 2015-04-07  Vladimir Makarov  <vmakarov@redhat.com>
14446
14447         PR target/65648
14448         * lra-remat.c (do_remat): Process input and non-input insn
14449         registers separately.
14450
14451 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
14452
14453         PR debug/65678
14454         * valtrack.c (debug_lowpart_subreg): New function.
14455         (dead_debug_insert_temp): Use it.
14456
14457         PR middle-end/65680
14458         * expr.c (get_inner_reference): Handle bit_offset that doesn't fit
14459         into signed HOST_WIDE_INT the same as negative bit_offset.
14460
14461 2015-04-07  Ilya Enkovich  <ilya.enkovich@intel.com>
14462
14463         * ipa-comdats.c (ipa_comdats): Visit all thunks
14464         to set proper comdat group.
14465
14466 2015-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14467
14468         PR target/65489
14469         * config/arm/arm.c (arm_legitimate_constant_p_1): Remove restriction
14470         on constants for NEON VSTRUCT modes.
14471
14472 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
14473             Iain Sandoe  <iain@codesourcery.com>
14474
14475         PR target/65351
14476         * configure: Regenerate.
14477
14478 2015-04-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
14479
14480         PR target/65614
14481         * config/rs6000/rs6000.c (struct processor_costs): Add cost field
14482         for SF->DF conversions to make FLOAT_EXTEND more expensive, so
14483         that LFD is used to load double constants instead of LFS.  Add
14484         defaults for all costs structures.  Add comments for missing
14485         initialization fields.
14486         (size32_cost): Likewise.
14487         (size64_cost): Likewise.
14488         (rs64a_cost): Likewise.
14489         (mpccore_cost): Likewise.
14490         (ppc403_cost): Likewise.
14491         (ppc405_cost): Likewise.
14492         (ppc440_cost): Likewise.
14493         (ppc476_cost): Likewise.
14494         (ppc601_cost): Likewise.
14495         (ppc603_cost): Likewise.
14496         (ppc604_cost): Likewise.
14497         (ppc604e_cost): Likewise.
14498         (ppc620_cost): Likewise.
14499         (ppc630_cost): Likewise.
14500         (ppccell_cost): Likewise.
14501         (ppc750_cost): Likewise.
14502         (ppc7450_cost): Likewise.
14503         (ppc8540_cost): Likewise.
14504         (ppce300c2c3_cost): Likewise.
14505         (ppce500mc_cost): Likewise.
14506         (ppce500mc64_cost): Likewise.
14507         (ppce5500_cost): Likewise.
14508         (ppce6500_cost): Likewise.
14509         (titan_cost): Likewise.
14510         (power4_cost): Likewise.
14511         (power6_cost): Likewise.
14512         (power7_cost): Likewise.
14513         (power8_cost): Likewise.
14514         (ppca2_cost): Likewise.
14515         (rs6000_rtx_costs): Make FLOAT_EXTEND use SFDF_convert field.
14516
14517         * config/rs6000/rs6000.md (extendsfdf2_fpr): Generate XSCPSGNDP
14518         instead of XXLOR to copy SFmode to clear out dirty bits created
14519         when SFmode denormals are generated.
14520         (mov<mode>_hardfloat, FMOVE32 case): Likewise.
14521         (truncdfsf2_fpr): Add support for ISA 2.07 XSRSP instruction.
14522
14523 2015-04-06  Evandro Menezes  <e.menezes@samsung.com>
14524
14525         * doc/invoke.texi (AARCH64/mtune): Add exynos-m1 as an option.
14526         * config/aarch64/aarch64-cores.def (exynos-m1): New core.
14527         * config/aarch64/aarch64-tune.md: Regenerate.
14528
14529 2015-04-06  Evandro Menezes  <e.menezes@samsung.com>
14530
14531         * doc/invoke.texi (ARM/mtune): Add "exynos-m1" as an option.
14532         * config/arm/arm.c (arm_issue_rate): Specify "3" for "exynosm1".
14533         * config/arm/arm-cores.def (exynos-m1): New core.
14534         * config/arm/arm-tune.md: Regenerate.
14535         * config/arm/arm-tables.opt: Add entry for "exynos-m1".
14536         * config/arm/bpabi.h: Likewise.
14537
14538 2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>
14539
14540         * ipa-cp (set_single_call_flag): Remove too
14541         restrictive assert.
14542
14543 2015-04-06  Ilya Verbin  <ilya.verbin@intel.com>
14544
14545         * config/i386/intelmic-mkoffload.c (generate_host_descr_file): Call
14546         GOMP_offload_unregister from the destructor.
14547
14548 2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>
14549
14550         * ipa-chkp.c (chkp_maybe_create_clone): Reset cdtor
14551         flags for instrumentation thunk.
14552         (chkp_produce_thunks): Likewise.
14553
14554 2015-04-05  Martin Liska  <mliska@suse.cz>
14555
14556         PR ipa/65665
14557         * ipa-icf.c (sem_function::equals_wpa): Verify that IPA CP
14558         has computed data structure.
14559         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
14560
14561 2015-04-04  Jan Hubicka  <hubicka@ucw.cz>
14562
14563         * invoke.texi (inline-unit-growth): Increase growth to 20%
14564         * params.def (PARAM_INLINE_UNIT_GROWTH): Likewise.
14565
14566 2015-04-04  Vladimir Makarov  <vmakarov@redhat.com>
14567
14568         PR target/65647
14569         * lra-int.h (LRA_MAX_REMATERIALIZATION_PASSES): New.  Add its
14570         value checking.
14571         (lra_rematerialization_iter): New.
14572         * lra.c (lra): Initialize lra_rematerialization_iter.
14573         Stop updating lra_constraint_new_regno_start after switching of
14574         inheritance and rematerialization.
14575         * lra-remat.c (lra_rematerialization_iter): New.
14576         (lra_remat): Add printing pass iteration.  Do rematerialization
14577         only first LRA_MAX_REMATERIALIZATION_PASSES iterations.
14578
14579 2015-04-04  Richard Biener  <rguenther@suse.de>
14580
14581         PR tree-optimization/64909
14582         PR tree-optimization/65660
14583         * tree-vectorizer.h (vect_get_known_peeling_cost): Adjust
14584         to take a cost vector for scalar iteration cost.
14585         (vect_get_single_scalar_iteration_cost): Likewise.
14586         * tree-vect-loop.c (vect_get_single_scalar_iteration_cost):
14587         Compute the scalar iteration cost into a cost vector.
14588         (vect_get_known_peeling_cost): Use the scalar cost vector to
14589         account for the cost of the peeled iterations.
14590         (vect_estimate_min_profitable_iters): Likewise.
14591         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
14592         Likewise.
14593
14594 2015-04-04  Alan Modra  <amodra@gmail.com>
14595
14596         PR target/65576
14597         PR target/65240
14598         * config/rs6000/predicates.md (zero_reg_mem_operand): Exclude
14599         0.0 constant unless TARGET_VSX.
14600         * config/rs6000/rs6000.md (extenddftf2_internal): Remove last
14601         alternative.
14602
14603 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
14604
14605         PR ipa/65654
14606         * ipa-inline-transform.c (inline_call): Skip sanity check to work
14607         around the ICE
14608
14609 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
14610
14611         PR ipa/65655
14612         * ipa-inline-analysis.c (edge_set_predicate): Do not redirect
14613         speculative indirect edges to avoid ordering issue.
14614
14615 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
14616
14617         PR ipa/65076
14618         * ipa-inline.c (edge_badness): Add combined size to the denominator.
14619
14620 2015-04-03  Jakub Jelinek  <jakub@redhat.com>
14621
14622         * omp-low.c (scan_omp_parallel, scan_omp_task, scan_omp_target): Set
14623         TYPE_ARTIFICIAL on the .omp_data* types.
14624
14625 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
14626
14627         * cgraphunit.c (cgraph_node::expand_thunk): Don't expand
14628         instrumentation thunks.
14629
14630 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
14631
14632         * config/i386/i386.c (ix86_expand_call): Avoid nested
14633         PARALLEL in returned call value.
14634
14635 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
14636
14637         * lto-cgraph.c (input_cgraph_1): Always link instrumented
14638         assembler name with original one.
14639
14640 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
14641
14642         * config/i386/i386.c (ix86_register_priority): Use AX_REG.
14643
14644 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
14645
14646         Revert parts of r216820.
14647         * config/i386/i386.md (movqi_internal): Correct type calculation
14648         for alternatives 3 and 5.
14649
14650 2015-04-02  Jakub Jelinek  <jakub@redhat.com>
14651
14652         PR preprocessor/61977
14653         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Don't
14654         predefine __vector/__bool/__pixel macros nor context sensitive
14655         macros for CLK_ASM.
14656         * config/spu/spu-c.c (spu_cpu_cpp_builtins): Similarly.
14657
14658 2015-04-02  John David Anglin  <danglin@gcc.gnu.org>
14659
14660         * config/pa/pa.c (pa_output_move_double): Directly handle register
14661         indexed memory operand.  Simplify handling of scaled register indexed
14662         memory operands.
14663
14664 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
14665
14666         PR driver/65444
14667         * config/i386/linux-common.h (MPX_SPEC): New.
14668         (CHKP_SPEC): Add MPX_SPEC.
14669         * doc/invoke.texi (-fcheck-pointer-boudns): Document
14670         possible issues with '-z bndplt' support in linker.
14671
14672 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
14673
14674         * config/i386/sync.md (UNSPEC_FILD_ATOMIC, UNSPEC_FIST_ATOMIC): New.
14675         (loaddi_via_fpu): Use UNSPEC_FILD_ATOMIC.
14676         (storedi_via_fpu): Use UNSPEC_FIST_ATOMIC.
14677         * reg-stack.c (get_true_reg): Change UNSPEC_LDA to UNSPEC_FILD_ATOMIC.
14678         (subst_stack_regs_pat): Change UNSPEC_STA to UNSPEC_FIST_ATOMIC.
14679
14680 2015-04-01  Uros Bizjak  <ubizjak@gmail.com>
14681
14682         * config/i386/sync.md (UNSPEC_MOVA): Remove.
14683         (atomic_load<mode>): Change operand 0 predicate to
14684         nonimmediate_operand and fix up the destination when needed.
14685         Use UNSPEC_LDA.
14686         (atomic_loaddi_fpu): Use UNSPEC_LDA.
14687         (atomic_store<mode>): Change operand 1 predicate to
14688         nonimmendate_operand and move the source to register when needed.
14689         Use UNSPEC_STA.
14690         (atomic_store<mode>_1): Use UNSPEC_STA.
14691         (atomic_storedi_fpu): Change operand 1 to nonimmediate_operand.
14692         Fix moves from memory operand.  Use UNSPEC_STA.
14693
14694 2015-04-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
14695
14696         * expmed.c (strict_volatile_bitfield_p): Check that the access will
14697         not cross a MODESIZE boundary.
14698         (store_bit_field, extract_bit_field): Added assertions in the
14699         strict volatile bitfields code path.
14700
14701 2015-04-01  Max Ostapenko  <m.ostapenko@partner.samsung.com>
14702
14703         PR target/65624
14704         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_builtin):
14705         Increase args array size by one to avoid buffer overflow.
14706
14707 2015-03-31  Jan Hubicka  <hubicka@ucw.cz>
14708
14709         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
14710         split_part.
14711         * ipa-inline.c (edge_badness): Add wrapper penalty.
14712         (sum_callers): Move up.
14713         (inline_small_functions): Set single_caller.
14714         * ipa-inline.h (inline_summary): Add single_caller.
14715         * ipa-split.c (split_function): Set split_part.
14716         (cgraph_node::create_clone): Do not shadow decl; copy split_part.
14717         * cgraph.h (cgraph_node): Add split_part.
14718
14719 2015-03-31  Uros Bizjak  <ubizjak@gmail.com>
14720
14721         PR target/58945
14722         * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
14723         Do not split operands 0 and operands 2 to halfmode.
14724         (atomic_compare_and_swap<mode>): Update for
14725         atomic_compare_and_swap<dwi>_doubleword changes.
14726
14727 2015-03-31  Jan Hubicka  <hubicka@ucw.cz>
14728
14729         * tree.c (need_assembler_name_p): Artificial types have no ODR names.
14730         * ipa-devirt.c (warn_odr): Do not try to apply ODR cache when
14731         no caching is done.
14732
14733 2015-03-31  Martin Liska  <mliska@suse.cz>
14734
14735         PR ipa/65557
14736         * ipa-icf.c (sem_function::equals_wpa): Check if IPA CP
14737         has already filled up function summary.
14738         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
14739
14740 2015-03-31  Richard Biener  <rguenther@suse.de>
14741
14742         * tree-sra.c (create_access_replacement): Drop under-/over-alignment
14743         of types.
14744
14745 2015-03-31  Dominik Vogt  <vogt@linux.vnet.ibm.com>
14746
14747         * config/s390/s390.c (s390_function_num_hotpatch_hw): Allow hotpatching
14748         nested functions.
14749         (s390_reorg): Adapt to new signature of s390_function_num_hotpatch_hw.
14750         (s390_asm_output_function_label): Adapt to new signature of
14751         s390_function_num_hotpatch_hw
14752         Optimise the code generating assembler output.
14753         Add comments to assembler file.
14754
14755 2015-03-31  Richard Biener  <rguenther@suse.de>
14756
14757         PR middle-end/65626
14758         * tree-cfgcleanup.c (fixup_noreturn_call): Only split the block
14759         of the noreturn call so it is last and cleanup_control_flow_bb
14760         can do the CFG part.
14761
14762 2015-03-31  Ilya Enkovich  <ilya.enkovich@intel.com>
14763
14764         PR target/65531
14765         * ipa-chkp.c (chkp_maybe_create_clone): Don't set
14766         same_comdat_group for external symbols.
14767         * symtab.c (symtab_node::verify_symtab_nodes): Avoid
14768         infinite same_comdat_group traversal loop.
14769
14770 2015-03-31  Jakub Jelinek  <jakub@redhat.com>
14771
14772         PR plugins/61176
14773         * Makefile.in (install-plugin): Add all gcc/*.{h,def} files
14774         automatically to $headers.
14775
14776 2015-03-30  Jakub Jelinek  <jakub@redhat.com>
14777
14778         PR ipa/65610
14779         * ipa-utils.h (inlined_polymorphic_ctor_dtor_block_p): Declare.
14780         * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p): New
14781         function.
14782         (decl_maybe_in_construction_p, noncall_stmt_may_be_vtbl_ptr_store):
14783         Use it.
14784         * ipa-prop.c (param_type_may_change_p): Likewise.
14785         * tree-ssa-live.c: Include ipa-utils.h and its dependencies.
14786         (remove_unused_scope_block_p): Add in_ctor_dtor_block
14787         argument.  Before inlining, preserve
14788         inlined_polymorphic_ctor_dtor_block_p blocks and the outermost block
14789         with FUNCTION_DECL BLOCK_ABSTRACT_ORIGIN inside of them.  Adjust
14790         recursive calls.
14791         (remove_unused_locals): Adjust remove_unused_scope_block_p caller.
14792
14793 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
14794
14795         PR ipa/65076
14796         * ipa-inline.c (edge_badness): Base denominator on callee's
14797         grwoth squared.
14798
14799 2015-03-27  Martin Jambor  <mjambor@suse.cz>
14800
14801         PR ipa/65478
14802         * params.def (PARAM_IPA_CP_RECURSION_PENALTY) : New.
14803         (PARAM_IPA_CP_SINGLE_CALL_PENALTY): Likewise.
14804         * ipa-prop.h (ipa_node_params): New flags node_within_scc and
14805         node_calling_single_call.
14806         * ipa-cp.c (count_callers): New function.
14807         (set_single_call_flag): Likewise.
14808         (initialize_node_lattices): Count callers and set single_flag_call if
14809         necessary.
14810         (incorporate_penalties): New function.
14811         (good_cloning_opportunity_p): Use it, dump new flags.
14812         (propagate_constants_topo): Set node_within_scc flag if appropriate.
14813         * doc/invoke.texi (ipa-cp-recursion-penalty,
14814         ipa-cp-single-call-pentalty): Document.
14815
14816 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
14817
14818         PR ipa/65588
14819         * symtab.c (symtab_node::get_partitioning_class): Register vars
14820         are duplicated.
14821         * varpool.c (symbol_table::output_variables) Do not assemble unefined
14822         decls for non-symbols.
14823
14824 2015-03-27  H.J. Lu  <hongjiu.lu@intel.com>
14825
14826         PR target/65248
14827         * output.h (default_binds_local_p_2): New.
14828         * varasm.c (default_binds_local_p_2): Renamed to ...
14829         (default_binds_local_p_3): This.  Don't return true on protected
14830         data symbol if protected data may be external.
14831         (default_binds_local_p): Use default_binds_local_p_3.
14832         (default_binds_local_p_1): Likewise.
14833         (default_binds_local_p_2): New.
14834         * config/i386/i386.c (TARGET_BINDS_LOCAL_P): Set to
14835         default_binds_local_p_2 if TARGET_MACHO is undefined.
14836
14837 2015-03-27  Jakub Jelinek  <jakub@redhat.com>
14838
14839         PR target/65593
14840         * config/i386/i386.c (legitimize_pic_address): If base
14841         is SYMBOL_REF or LABEL_REF using %rip addressing, force
14842         it to reg to avoid PLUS of SYMBOL_REF/LABEL_REF and register.
14843
14844 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
14845
14846         PR target/65531
14847         * symtab.c (symtab_node::verify_symtab_nodes): Fix verification of
14848         comdat groups.
14849
14850 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
14851
14852         PR ipa/65600
14853         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Fix the case
14854         of optimized out indirect call.
14855         (redirect_to_unreachable): Always build symbol table node for
14856         BUILT_IN_UNREACHABLE
14857
14858 2015-03-27  Vladimir Makarov  <vmakarov@redhat.com>
14859
14860         PR target/65407
14861         * ira-costs.c (record_reg_classes): Process all constraint string
14862         containing 0-9.
14863
14864 2015-03-27  Bernd Schmidt  <bernds@codesourcery.com>
14865
14866         * config/c6x/c6x.md (movmisalign<mode>): Use MEM_P, not
14867         memory_operand.
14868
14869         PR target/65052
14870         * config/c6x/constraints.md (S3): New constraint.
14871         * config/c6x/c6x.md (real_jump): Use it.
14872
14873 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
14874
14875         PR middle-end/65595
14876         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Only
14877         do redirection if the call is not optimized out.
14878
14879 2015-03-27  Ilya Enkovich  <ilya.enkovich@intel.com>
14880
14881         PR target/65495
14882         * c-family/c.opt (fcheck-pointer-bounds): List supported languages.
14883         (fchkp-check-incomplete-type): Add LTO.
14884         (fchkp-zero-input-bounds-for-main): Likewise.
14885         (fchkp-first-field-has-own-bounds): Likewise.
14886         (fchkp-narrow-bounds): Likewise.
14887         (fchkp-narrow-to-innermost-array): Likewise.
14888         (fchkp-use-static-bounds): Likewise.
14889         (fchkp-use-static-const-bounds): Likewise.
14890         (fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
14891
14892 2015-03-27  Marek Polacek  <polacek@redhat.com>
14893
14894         * gimple-iterator.h (gsi_prev_nondebug): Fix typo.
14895
14896 2015-03-27  Marek Polacek  <polacek@redhat.com>
14897
14898         PR sanitizer/65583
14899         * ubsan.c (ubsan_create_edge): New function.
14900         (instrument_bool_enum_load): Call it.
14901         (instrument_nonnull_arg): Likewise.
14902         (instrument_nonnull_return): Likewise.
14903         (instrument_object_size): Likewise.
14904
14905 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
14906
14907         * lto-streamer.h (class lto_location_cache): Turn loc_cache into
14908         auto_vec.
14909
14910 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
14911
14912         PR lto/65536
14913         * lto-streamer.h (class lto_location_cache): New.
14914         (struct data_in): Add location_cache.
14915         (lto_input_location): Update prototype.
14916         (stream_input_location_now): New.
14917         * streamer-hooks.h (struct streamer_hooks): Make input_location to take
14918         pointer to location.
14919         (stream_input_location): Update.
14920         * ipa-devirt.c: Include streamer-hooks.h and lto-streamer.h
14921         (warn_odr): Apply location cache before warning.
14922         (lto_input_location): Update prototype.
14923         * gimple-streamer-in.c (input_phi, input_gimple_stmt):
14924         Use stream_input_location_now.
14925         * lto-streamer-in.c (lto_location_cache::current_cache): New static
14926         variable.
14927         (lto_location_cache::cmp_loc): New function.
14928         (lto_location_cache::apply_location_cache): New function.
14929         (lto_location_cache::accept_location_cache): New function.
14930         (lto_location_cache::revert_location_cache): New function.
14931         (lto_location_cache::input_location): New function.
14932         (lto_input_location): Do location caching.
14933         (stream_input_location_now): New function.
14934         (input_eh_region, input_struct_function_base): Use
14935         stream_input_location_now.
14936         (lto_data_in_create): use new.
14937         (lto_data_in_delete): Use delete.
14938         * tree-streamer-in.c (unpack_ts_block_value_fields,
14939         unpack_ts_omp_clause_value_fields, streamer_read_tree_bitfields,
14940         lto_input_ts_exp_tree_pointers): Update for cached location api.
14941
14942 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
14943
14944         PR ipa/65076
14945         * passes.def: Add pass_nothrow.
14946         * ipa-pure-const.c: (pass_data_nothrow): New.
14947         (pass_nothrow): New.
14948         (pass_nothrow::execute): New.
14949         (make_pass_nothrow): New.
14950         * tree-pass.h (make_pass_nothrow): Declare.
14951
14952 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
14953
14954         * ipa-inline-analysis.c (redirect_to_unreachable): Be prepared for
14955         edge to change by speculation resolution or redirection.
14956         (edge_set_predicate): Likewise.
14957         (inline_summary_t::duplicate): Likewise.
14958         (remap_edge_summaries): Likewise.
14959
14960 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
14961
14962         * ipa-inline.c (check_maybe_up, check_maybe_down, check_match):
14963         New macros.
14964         (can_inline_edge_p): Relax option matching for always inline functions.
14965
14966 2015-03-26  Uros Bizjak  <ubizjak@gmail.com>
14967
14968         PR target/65561
14969         * config/i386/sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm):
14970         Check operand 4 and operand 0 for equality.
14971         (avx512f_vextract<shuffletype>32x4_1_maskm):
14972         Check operand 6 and operand 0 for equality.
14973         (vec_extract_lo_<mode>_maskm): Check operand 2 and operand 0
14974         for equality.
14975         (vec_extract_hi_<mode>_maskm): Ditto.
14976
14977 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
14978
14979         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Do not bring
14980         dead calls back to live.
14981         (cgraph_edge::verify_count_and_frequency): Move cgraph/cfg frequency
14982         cross check to ...
14983         (cgraph_node::verify_node): ... here; verify only callee edges,
14984         not caller.
14985         * cif-code.def (CILK_SPAWN): New code.
14986
14987 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
14988
14989         * ipa-inline-analysis.c (redirect_to_unreachable): New function.
14990         (edge_set_predicate): Use it to mark unreachable edges.
14991         (inline_summary_t::duplicate): Remove unnecesary code.
14992         (remap_edge_summaries): Likewise.
14993         (dump_inline_summary): Report contains_cilk_spawn.
14994         (compute_inline_parameters): Compute contains_cilk_spawn.
14995         (inline_read_section, inline_write_summary): Stream
14996         contains_cilk_spawn.
14997         * ipa-inline.c (can_inline_edge_p): Do not touch
14998         DECL_STRUCT_FUNCTION that may not be available;
14999         use CIF_CILK_SPAWN for cilk; fix optimization attribute checks;
15000         remove check for callee_fun->can_throw_non_call_exceptions and
15001         replace it by optimization attribute check; check for flag_exceptions.
15002         * ipa-inline-transform.c (inline_call): Maintain
15003         DECL_FUNCTION_PERSONALITY
15004         * ipa-inline.h (inline_summary): Add contains_cilk_spawn.
15005
15006 2015-03-26  Jakub Jelinek  <jakub@redhat.com>
15007
15008         PR tree-optimization/65551
15009         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use
15010         TYPE_PRECISION only for INTEGRAL_TYPE_P types.
15011
15012 2015-03-26  Richard Biener  <rguenther@suse.de>
15013
15014         PR middle-end/65555
15015         * tree-cfg.c (verify_gimple_call): Do not require a call to
15016         have no LHS if it wasn't recognized as control altering yet.
15017
15018 2015-03-26  Jakub Jelinek  <jakub@redhat.com>
15019
15020         PR tree-optimization/64715
15021         * passes.def: Add another instance of pass_object_sizes before ccp1.
15022         * tree-object-size.c (pass_object_sizes::execute): In
15023         first_pass_instance, only handle __bos (, 1) and __bos (, 3)
15024         calls, and keep the call in the IL, as {MIN,MAX}_EXPR of the
15025         __bos result and the computed constant.  Remove redundant
15026         checks, obsoleted by gimple_call_builtin_p test.
15027
15028         * var-tracking.c (variable_tracking_main_1): Don't track
15029         variables for targetm.no_register_allocation targets.
15030
15031 2015-03-26  Oleg Endo  <olegendo@gcc.gnu.org>
15032
15033         * config/sh/t-linux (DEFAULT_ENDIAN, MULTILIB_EXCEPTIONS): Remove.
15034         * config/sh/t-sh (MULTILIB_EXCEPTIONS): Handle default endian.
15035
15036 2015-03-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
15037
15038         PR target/65569
15039         * config/rs6000/rs6000.md (extenddftf2_fprs): On VSX systems use
15040         XXLXOR to create 0.0.  On pre-VSX systems make sure the constant
15041         0.0 is correctly setup.
15042         (extenddftf2_internal): Likewise.
15043
15044 2015-03-25  Sebastian Pop  <s.pop@samsung.com>
15045
15046         PR tree-optimization/65177
15047         * tree-ssa-threadupdate.c (verify_seme): Renamed verify_jump_thread.
15048         (bb_in_bbs): New.
15049         (duplicate_seme_region): Renamed duplicate_thread_path.  Redirect all
15050         edges not adjacent on the path to the original code.
15051
15052 2015-03-25  Uros Bizjak  <ubizjak@gmail.com>
15053
15054         PR bootstrap/65537
15055         * doc/install.texi (Building a native compiler): Document new
15056         bootstrap-lto-noplugin configuration.  Mention that bootstrap-lto
15057         configuration assumes that the host supports the linker plugin.
15058
15059 2015-03-25  Ilya Enkovich  <ilya.enkovich@intel.com>
15060
15061         PR target/65508
15062         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Set static
15063         chain for generated call.
15064
15065 2015-03-25  Richard Biener  <rguenther@suse.de>
15066
15067         * passes.c (pass_manager::execute_early_local_passes): Guard
15068         execution of pass_chkp_instrumentation_passes with
15069         flag_check_pointer_bounds.
15070         (pass_chkp_instrumentation_passes::gate): Likewise.
15071
15072 2015-03-25  Martin Liska  <mliska@suse.cz>
15073
15074         PR tree-optimization/65538
15075         * symbol-summary.h (function_summary::~function_summary):
15076         Relese memory for allocated summaries.
15077         (function_summary::release): New function.
15078
15079 2015-03-25  Jakub Jelinek  <jakub@redhat.com>
15080
15081         PR lto/65515
15082         * lto-streamer-out.c (DFS::worklist): New struct.
15083         (DFS::worklist_vec): New data member.
15084         (DFS::next_dfs_num): Remove.
15085         (DFS::DFS): Rewritten using worklist instead of recursion,
15086         using most of code from DFS::DFS_write_tree.
15087         (DFS::DFS_write_tree_body): Remove SINGLE_P argument, don't
15088         pass it to DFS_write_tree calls.
15089         (DFS::DFS_write_tree): Remove SINGLE_P argument, after
15090         quick initial checks push it into worklist_vec and return.
15091
15092 2015-03-25  Richard Biener  <rguenther@suse.de>
15093
15094         PR middle-end/65519
15095         * genmatch.c (expr::gen_transform): Re-write to avoid
15096         using gimple_build.
15097
15098 2015-03-25  Bin Cheng  <bin.cheng@arm.com>
15099
15100         * doc/sourcebuild.texi (arm_tune_string_ops_prefer_neon): New.
15101
15102 2015-03-25  Bin Cheng  <bin.cheng@arm.com>
15103
15104         * config/arm/arm.opt (print_tune_info): New option.
15105         * config/arm/arm.c (arm_print_tune_info): New function.
15106         (arm_file_start): Call arm_print_tune_info.
15107         * config/arm/arm-protos.h (struct tune_params): Add comment.
15108         * doc/invoke.texi (@item -mprint-tune-info): New item.
15109         (-mtune): mention it in ARM Option Summary.
15110
15111 2015-03-25  DJ Delorie  <dj@redhat.com>
15112
15113         * config/rl78/rl78.c (rl78_print_operand_1): Move 'p' test to
15114         correct clause.
15115
15116 2015-03-24  Jan Hubicka  <hubicka@ucw.cz>
15117             Martin Liska  <mliska@suse.cz>
15118
15119         * ipa-icf-gimple.h (return_with_result): Add missing colon to dump.
15120         * ipa-icf.c (sem_function::get_hash): Hash new declaration properties.
15121         (sem_item::add_type): New function.
15122         (sem_function::hash_stmt): Add TREE_TYPE of gimple_op.
15123         (sem_function::compare_polymorphic_p): Do not consider indirect calls.
15124         (sem_item_optimizer::update_hash_by_addr_refs): Add ODR type to hash.
15125         (sem_function::equals_wpa): Fix typo.
15126         * ipa-icf.h (sem_item::add_type): New function.
15127         (symbol_compare_hashmap_traits): Replace hashing of pointer with symbol
15128         order.
15129
15130 2015-03-24  Jakub Jelinek  <jakub@redhat.com>
15131
15132         PR tree-optimization/65533
15133         * tree-vect-slp.c (vect_build_slp_tree): Before re-trying
15134         with swapped operands, call vect_free_slp_tree on
15135         SLP_TREE_CHILDREN of child and truncate the SLP_TREE_CHILDREN
15136         vector.
15137
15138 2015-03-24  Richard Biener  <rguenther@suse.de>
15139
15140         PR middle-end/65517
15141         * tree-cfg.c (remove_edge_and_dominated_blocks): Mark loops
15142         for fixup if necessary.
15143
15144 2015-03-23  Sandra Loosemore  <sandra@codesourcery.com>
15145
15146         * doc/extend.texi (Function Attributes): Add @cindex entries
15147         for all attributes and regularize their format.  Delete text
15148         about long-obsolete 68HC11 and 68HC12 targets.  Move misplaced
15149         information about "eightbit_data", "tiny_data", and "model"
15150         variable attributes to the Variable Attributes section.  Fix
15151         some obvious typos and copy-editing issues.
15152         (Variable Attributes, Type Attributes): Likewise add/fix
15153         @cindex entries for all attributes.
15154
15155 2015-03-23  Jakub Jelinek  <jakub@redhat.com>
15156
15157         PR target/65523
15158         * tree-chkp.c (chkp_build_returned_bound): Ignore
15159         ERF_RETURNS_ARG calls if they have fewer than needed arguments.
15160
15161 2015-03-23  Oleg Endo  <olegendo@gcc.gnu.org>
15162
15163         PR target/65505
15164         * config/sh/predicates.md (simple_mem_operand,
15165         displacement_mem_operand): Add test for reg.
15166         (short_displacement_mem_operand): Test for displacement_mem_operand
15167         before invoking sh_disp_addr_displacement.
15168         * config/sh/constraints.md (Sdd, Sra): Simplify.
15169         * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1):
15170         Remove redundant displacement_mem_operand tests.
15171
15172 2015-03-23  Georg-Johann Lay  <avr@gjlay.de>
15173
15174         PR target/65296
15175         * config/avr/driver-avr.c (avr_devicespecs_file): Allow to specify
15176         the same -mmcu=MCU more than once.
15177
15178 2015-03-23  Jakub Jelinek  <jakub@redhat.com>
15179
15180         PR bootstrap/65522
15181         * ipa-devirt.c: Remove duplicate demangle.h include.
15182
15183         PR target/65504
15184         * config/i386/i386.c (ix86_copy_addr_to_reg): Set REG_POINTER
15185         on the pseudo.
15186         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Set
15187         REG_POINTER on *destptr after adjusting it for prologue size.
15188
15189         PR ipa/65521
15190         * ipa-icf.c (sem_item::update_hash_by_addr_refs): Hash
15191         ultimate_alias_target ()->order ints instead of
15192         ultimate_alias_target () pointers.
15193
15194 2015-03-23  Richard Biener  <rguenther@suse.de>
15195
15196         PR tree-optimization/65518
15197         * tree-vect-stmts.c (vectorizable_load): Reject single-element
15198         interleaving cases we generate absymal code for.
15199
15200 2015-03-23  Richard Biener  <rguenther@suse.de>
15201
15202         PR tree-optimization/65494
15203         * tree-vect-slp.c (vect_build_slp_tree): Do not (re-)allocate
15204         matches here.
15205         (vect_analyze_slp_instance): But do that here, always and once.
15206
15207 2015-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15208
15209         * expmed.c (synth_mult): Fix comment about multiplying by T-1 and
15210         adding T or multiplying by T+1 and subracting T.
15211
15212 2015-03-22  Jeff Law  <law@redhat.com>
15213
15214         PR rtl-optimization/64317
15215         * Makefile.in (OBJS): Add gcse-common.c
15216         * gcse.c: Include gcse-common.h
15217         (struct modify_pair_s): Move structure definition to gcse-common.h
15218         (compute_transp): Move function to gcse-common.c.
15219         (canon_list_insert): Similarly.
15220         (record_last_mem_set_info): Break out some code and put it into
15221         gcse-common.c.  Call into the new common code.
15222         (compute_local_properties): Pass additional arguments to compute_transp.
15223         * postreload-gcse.c: Include gcse-common.h and df.h
15224         (modify_mem_list_set, blocks_with_calls): New variables.
15225         (modify_mem_list, canon_modify_mem_list, transp): Likewise.
15226         (get_bb_avail_insn): Pass in the expression index too.
15227         (alloc_mem): Allocate memory for the new bitmaps and lists.
15228         (free_mem): Free memory for the new bitmaps and lists.
15229         (insert_expr_in_table): Record a bitmap index for each entry we
15230         add to the table.
15231         (record_last_mem_set_info): Call into common code in gcse-common.c.
15232         (get_bb_avail_insn): If no available insn was found in the requested
15233         BB.  If BB has a single predecessor, see if the expression is
15234         transparent in BB and available in that single predecessor.
15235         (compute_expr_transp): New wrapper for compute_transp.
15236         (eliminate_partially_redundant_load): Pass expression's bitmap_index
15237         to get_bb_avail_insn.  Compute next_pred_bb_end a bit later.
15238         (gcse_after_reload_main): If there are elements in the hash table,
15239         then compute transparency for all the elements in the hash table.
15240         * gcse-common.h: New file.
15241         * gcse-common.c: New file.
15242
15243 2015-03-22  Sandra Loosemore  <sandra@codesourcery.com>
15244
15245         * doc/cpp.texi (Search Path): Hyphenate "command-line" when used
15246         as an adjective.
15247         (System Headers): Likewise.
15248         (Ifdef): Likewise.
15249         (Traditional macros): Likewise.
15250         (Invocation): Likewise.
15251         (Option Index): Likewise.
15252         * doc/cppopts.texi (-M): Likewise.
15253         (-finput-charset): Likewise.
15254         (--help): Likewise.
15255         * doc.invoke.texi (AVR Options): Likewise.
15256         (V850 Options): Likewise.
15257
15258 2015-03-22  Jan Hubicka  <hubicka@ucw.cz>
15259
15260         PR ipa/65475
15261         * ipa-devirt.c: Include demangle.h
15262         (odr_type_d): Add field rtti_broken.
15263         (odr_subtypes_equivalent_p): Do not require name to match.
15264         (compare_virtual_tables): Fix typo; if type already has ODR violation,
15265         bypass the tests; be ready for function referneces in vtables that are
15266         not DECL_VIRTUAL; make warnings to be OPT_Wodr.
15267         (warn_odr): Give up for nameless types.
15268         (warn_types_mismatch): Report mismatch in mangled names;
15269         report mismatch in anonymous namespaces; look into component types to
15270         give useful error; report when mismatch is dragged in from other ODR
15271         type.
15272         (odr_types_equivalent_p): Match types for being polymorphic; avoid
15273         duplicated diagnostics.
15274         (add_type_duplicate): Reorder checks so more informative ones come
15275         first; fix typo; do not output "the extra base is defined here" when
15276         we did not warn.
15277         (BINFO_N_BASE_BINFOS): Relax sanity check.
15278
15279 2015-03-22  Martin Liska  <mliska@suse.cz>
15280             Jakub Jelinek  <jakub@redhat.com>
15281
15282         * config/i386/i386.c (def_builtin): Set deferred_isa_values for
15283         masks that can potentially include a builtin.
15284         (ix86_add_new_builtins): Introduce fast filter for isa values
15285         that cannot trigger builtin inclusion.
15286
15287 2015-03-22  Martin Liska  <mliska@suse.cz>
15288
15289         * ipa-icf.c (sem_item::update_hash_by_addr_refs): New function.
15290         (sem_item::update_hash_by_local_refs): Likewise.
15291         (sem_variable::get_hash): Empty line is fixed.
15292         (sem_item_optimizer::execute): Include adding of hash references.
15293         (sem_item_optimizer::update_hash_by_addr_refs): New function.
15294         (sem_item_optimizer::build_hash_based_classes): Use local hash.
15295         * ipa-icf.h (sem_item::update_hash_by_addr_refs): New function.
15296         (sem_item::update_hash_by_local_refs): Likewise.
15297
15298 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
15299
15300         PR ipa/65502
15301         * ipa-comdats.c (enqueue_references): Walk through thunks.
15302         (ipa_comdats): Likewise.
15303         (set_comdat_group_1): New function.
15304
15305 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
15306
15307         PR ipa/65475
15308         * ipa-devirt.c (add_type_duplicate): Prevail polymorphic type over
15309         non-polymorphic
15310
15311 2015-03-22  Dave Korn  <dave.korn.cygwin@gmail.com>
15312             Gerald Pfeifer  <gerald@pfeifer.com>
15313
15314         * doc/contrib.texi (Contributors): Update entry for Danny Smith.
15315
15316 2015-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
15317             Sandra Loosemore  <sandra@codesourcery.com>
15318
15319         * config/nios2/nios2-protos.h (nios2_adjust_call_address): Adjust
15320         function parameter declaration.
15321         * config/nios2/nios2.md (call,call_value,sibcall,sibcall_value):
15322         Update arguments to nios2_adjust_call_address().
15323         (sibcall_internal): Rename from *sibcall.
15324         (sibcall_value_internal): Rename from *sibcall_value.
15325         * config/nios2/nios2.c (nios2_emit_add_constant): New function.
15326         (nios2_large_got_address): Add target temp reg parameter.
15327         (nios2_got_address): Adjust call to nios2_large_got_address, add
15328         force_reg around it.
15329         (nios2_load_pic_address): Add target temp reg parameter, replace call
15330         to nios2_got_address with corresponding code.
15331         (nios2_legitimize_constant_address): Update call to
15332         nios2_load_pic_address.
15333         (nios2_adjust_call_address): Add temp reg parameter, update PIC case
15334         to use temp reg for PIC loading purposes.
15335         (nios2_asm_output_mi_thunk): Implement TARGET_ASM_OUTPUT_MI_THUNK.
15336         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
15337         (TARGET_ASM_OUTPUT_MI_THUNK): Likewise.
15338
15339 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
15340
15341         * doc/invoke.texi (-fno-diagnostics-show-caret): Fix
15342         usage of "the @option{...}".
15343         (-Wopenmp-simd): Likewise.
15344         (-fsanitize-recover): Likewise.
15345         (-fsanitize-undefined-trap-on-error): Likewise.
15346         (-flto): Likewise.
15347         (tracer-dynamic-coverage-feedback): Likewise.
15348         (reorder-block-duplicate-feedback): Likewise.
15349         (loop-unroll-jam-size): Likewise.
15350         (-B): Likewise.
15351         (-I-): Likewise.
15352         (-mabs=legacy): Likewise.
15353         (-mupper-regs-df): Likewise.
15354         (-mupper-regs-sf): Likewise.
15355         (-mpointers-to-nested-functions): Likewise.
15356
15357 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
15358
15359         * doc/extend.texi (Cilk Plus Builtins): Add markup.
15360
15361 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
15362
15363         * doc/invoke.texi (-fcheck-pointer-bounds): Copy-edit, add
15364         additional index entries and cross-references.
15365         (-fchkp-check-incomplete-type): Likewise.
15366         (-fchkp-first-field-has-own-bounds): Likewise.
15367         (-fchkp-narrow-to-innermost-array): Likewise.
15368         (-fchkp-use-fast-string-functions): Likewise.
15369         (-fchkp-use-nochk-string-functions): Likewise.
15370         (-fchkp-use-static-const-bounds): Likewise.
15371         (-fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
15372         (-fchkp-instrument-marked-only): Likewise.
15373         (-fchkp-use-wrappers): Likewise.
15374         (-static-libmpx): Likewise.
15375         (-static-libmpxwrappers): Likewise.
15376         * doc/extend.texi (bnd_legacy): Likewise.
15377         (bnd_instrument): Likewise.
15378         (bnd_variable_size): Likewise.
15379         (Pointer Bounds Checker builtins): Likewise.
15380
15381 2015-03-21  Tom de Vries  <tom@codesourcery.com>
15382
15383         PR tree-optimization/65458
15384         * cgraph.c (cgraph_node::dump): Handle parallelized_function field.
15385         * cgraph.h (cgraph_node): Add parallelized_function field.
15386         * lto-cgraph.c (lto_output_node): Write parallelized_function field.
15387         (input_overwrite_node): Read parallelized_function field.
15388         * omp-low.c (expand_omp_taskreg, finalize_task_copyfn): Set
15389         parallelized_function on cgraph_node for child_fn.
15390         * tree-parloops.c: Add include of plugin-api.h, ipa-ref.h and cgraph.h.
15391         Remove include of gt-tree-parloops.h.
15392         (parallelized_functions): Remove static variable.
15393         (parallelized_function_p): Rewrite using parallelized_function field of
15394         cgraph_node.
15395         (create_loop_fn): Remove adding to parallelized_functions.
15396         * Makefile.in (GTFILES): Remove tree-parloops.c
15397
15398 2015-03-20  Vladimir Makarov  <vmakarov@redhat.com>
15399
15400         PR rtl-optimization/64366
15401         * lra.c (lra_update_insn_regno_info): Consider regs in
15402         CALL_INSN_FUNCTION_USAGE memory.
15403
15404 2015-03-20  Richard Biener  <rguenther@suse.de>
15405
15406         PR middle-end/64715
15407         * tree-chrec.c (chrec_fold_poly_cst): Use useless_type_conversion_p
15408         for type comparison and gcc_checking_assert.
15409         (chrec_fold_plus_poly_poly): Likewise.
15410         (chrec_fold_multiply_poly_poly): Likewise.
15411         (chrec_convert_1): Likewise.
15412         * gimplify.c (gimplify_expr): Remove premature folding of
15413         &X + CST to &MEM[&X, CST].
15414
15415 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
15416
15417         * ipa-inline.c (can_inline_edge_p): Short circuit if inline_failed
15418         already is final.
15419         (ipa_inline): Recompute inline_failed codes.
15420         * cif-code.def (FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
15421         USES_COMDAT_LOCAL, ATTRIBUTE_MISMATCH, UNREACHABLE): Declare as
15422         CIF_FINAL_ERROR.
15423
15424 2015-03-20  Uros Bizjak  <ubizjak@gmail.com>
15425
15426         PR rtl-optimization/60851
15427         * recog.c (constrain_operands): Accept a pseudo register before reload
15428         for LRA enabled targets.
15429
15430 2015-03-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
15431
15432         PR target/65240
15433         * config/rs6000/predicates.md (easy_fp_constant): Remove special
15434         -ffast-math handling that kept non-0 constants live in the RTL
15435         until reload.  Remove logic testing the number of instructions it
15436         took to create a constant in a GPR that was never used, due to a
15437         test for soft-float earlier.
15438         (memory_fp_constant): Delete, no longer used.
15439
15440         * config/rs6000/rs6000.md (mov<MODE>_hardfloat): Remove
15441         alternatives for loading non-0 constants into GPRs for hard
15442         floating point that is no longer needed due to changes in
15443         easy_fp_constant.  Add support for loading 0.0 into GPRs.
15444         (mov<mode>_hardfloat32): Likewise.
15445         (mov<mode>_hardfloat64): Likewise.
15446         (mov<mode>_64bit_dm): Likewise.
15447         (movtd_64bit_nodm): Likewise.
15448         (pre-reload move FP constant define_split): Delete define_split,
15449         since it is no longer used.
15450         (extenddftf2_internal): Remove GHF constraints that are not valid
15451         for extenddftf2.
15452
15453 2015-03-19  Vladimir Makarov  <vmakarov@redhat.com>
15454
15455         PR rtl-optimization/63491
15456         * lra-constraints.c (check_and_process_move): Use src instead of
15457         sreg.  Remove some dead code.
15458
15459 2015-03-19  Jan Hubicka  <hubicka@ucw.cz>
15460
15461         PR ipa/65380
15462         * ipa-icf.c (sem_function::merge): Do not merge DECL_EXTERNAL symbols.
15463         (sem_variable::merge): Likewise.
15464
15465 2015-03-19  Martin Liska  <mliska@suse.cz>
15466
15467         PR ipa/65465
15468         * cgraphunit.c (cgraph_node::create_wrapper): Correctly reset
15469         all fields of cgraph_thunk_info.
15470
15471 2015-03-19  Ilya Enkovich  <ilya.enkovich@intel.com>
15472
15473         * ipa-chkp.c (chkp_maybe_create_clone): Don't try to
15474         clone instrumented thunks.
15475
15476 2015-03-19  Richard Biener  <rguenther@suse.de>
15477
15478         Revert
15479         2015-03-10  Richard Biener  <rguenther@suse.de>
15480
15481         PR middle-end/63155
15482         * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
15483         * tree-ssa-coalesce.c: Include timevar.h.
15484         (attempt_coalesce): Handle graph being NULL.
15485         (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
15486         Split out abnormal coalescing to ...
15487         (perform_abnormal_coalescing): ... this function.
15488         (coalesce_ssa_name): Perform abnormal coalescing without computing
15489         live/conflict.
15490         (verify_ssa_coalescing_worker): New function.
15491         (verify_ssa_coalescing): Likewise.
15492
15493 2015-03-19  Bernd Edlinger  <bernd.edlinger@hotmail.de>
15494             Jakub Jelinek  <jakub@redhat.com>
15495
15496         PR sanitizer/65400
15497         * tsan.c (instrument_gimple): Clear tail call flag on
15498         calls.
15499
15500 2015-03-19  Jakub Jelinek  <jakub@redhat.com>
15501
15502         PR sanitizer/65400
15503         * ipa-split.c (find_return_bb): Allow TSAN_FUNC_EXIT internal
15504         call in the return bb.
15505         (find_split_points): Add RETURN_BB argument, don't call
15506         find_return_bb.
15507         (split_function): Likewise.  Add ADD_TSAN_FUNC_EXIT argument,
15508         if true append TSAN_FUNC_EXIT internal call after the call to
15509         the split off function.
15510         (execute_split_functions): Call find_return_bb here.
15511         Don't optimize if TSAN_FUNC_EXIT is found in unexpected places.
15512         Adjust find_split_points and split_function calls.
15513
15514 2015-03-18  DJ Delorie  <dj@redhat.com>
15515
15516         * config/rl78/rl78-virt.md (andqi3_virt): Allow far operands.
15517         (iorqi3_virt): Likewise.
15518
15519 2015-03-18  Tom de Vries  <tom@codesourcery.com>
15520
15521         * tree-parloops.c (parallelize_loops): Make static.
15522         * tree-parloops.h (parallelize_loops): Remove extern declaration.
15523
15524 2015-03-18  Andrew Stubbs  <ams@codesourcery.com>
15525
15526         PR middle-end/64491
15527         Revert:
15528         2014-11-20  Andrew Stubbs  <ams@codesourcery.com>
15529
15530         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Warn if a loop
15531         condition would be removed due to undefined behaviour.
15532
15533 2015-03-18  Martin Liska  <mliska@suse.cz>
15534
15535         PR ipa/65432
15536         * cgraph.c (cgraph_node::get_create): Remove unnecessary
15537         xstrdup_for_dump wrapper.
15538         * ipa-icf.c (sem_item::dump): Use symtab_node::name instead of
15539         sem_item::name.
15540         (sem_function::equals): Wrap symtab_node::name and symtab_node::asm_name
15541         with xstrdup_for_dump.
15542         (sem_variable::equals): Likewise.
15543         (sem_item_optimizer::read_section): Use symtab_node::name instead of
15544         sem_item::name.
15545         (sem_item_optimizer::parse_funcs_and_vars): Likewise.
15546         (sem_item_optimizer::merge_classes): Wrap symtab_node::name and
15547         symtab_node::asm_name with xstrdup_for_dump.
15548         (congruence_class::dump): Use symtab_node::name instead of
15549         sem_item::name.
15550         * ipa-icf.h (symtab_node::name): Remove.
15551         (symtab_node::asm_name): Likewise.
15552
15553 2015-03-18  Jakub Jelinek  <jakub@redhat.com>
15554
15555         PR tree-optimization/65450
15556         * tree-vect-data-refs.c (vect_duplicate_ssa_name_ptr_info): New
15557         function.
15558         (vect_create_addr_base_for_vector_ref, vect_create_data_ref_ptr): Use
15559         it instead of duplicate_ssa_name_ptr_info.
15560
15561         PR target/65222
15562         * doc/invoke.texi: Add knl as x86 -march=/-mtune= CPU type.
15563
15564 2015-03-18  Richard Biener  <rguenther@suse.de>
15565
15566         * tree-data-ref.h (struct access_matrix): Remove.
15567         (AM_LOOP_NEST, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
15568         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
15569         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT): Likewise.
15570         (am_vector_index_for_loop): Likewise.
15571         (struct data_reference): Remove access_matrix member.
15572         (DR_ACCESS_MATRIX): Remove.
15573         (lambda_vector_new): Add comment.
15574         (lambda_matrix_new): Use XOBNEWVEC.
15575
15576 2015-03-18  Richard Biener  <rguenther@suse.de>
15577
15578         * tree-ssa-loop-ch.c (pass_data_ch): Remove TODO_cleanup_cfg.
15579         (pass_ch::execute): Cleanup the CFG only if we did sth.
15580         * tree-vect-generic.c (pass_data_lower_vector): Remove TODO_cleanup_cfg.
15581
15582 2015-03-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15583
15584         * expmed.c (synth_mult): Use std::swap instead of manually
15585         swapping algorithms.
15586
15587 2015-03-18  Jakub Jelinek  <jakub@redhat.com>
15588
15589         PR target/65078
15590         * config/i386/sse.md (movsi/movdi -> vec_extract_*_0 splitter): New.
15591
15592 2015-03-16  Georg-Johann Lay  <avr@gjlay.de>
15593
15594         PR target/65296
15595         * config/avr/avr.opt (-nodevicelib): New option.
15596         * doc/invoke.texi (AVR Options): Document it.
15597         * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC) [avr1]: Don't link
15598         libgcc.a, libc.a, libm.a.
15599         * config/avr/specs.h: Same.
15600         * config/avr/gen-avr-mmcu-specs.c (print_mcu): Don't print specs
15601         which don't (directly) depend on the device.  Print more help.
15602         (*avrlibc_devicelib) [-nodevicelib]: Don't link libdev.a.
15603         (*cpp): Don't define __AVR_DEV_LIB_NAME__.
15604         * config/avr/driver-avr.c: Remove -nodevicelib from option list in
15605         case of an error.
15606         (avr_devicespecs_file): Use suffix "%s" instead of absolute path
15607         for specs file name.
15608         * config/avr/avr-arch.h (avr_mcu_t) [.library_name]: Remove.
15609         * config/avr/avr-mcus.def: Adjust initializers and comments.
15610
15611 2015-03-16  Jan Hubicka  <hubicka@ucw.cz>
15612
15613         * tree-sra.c (ipa_sra_preliminary_function_checks): Use
15614         DECL_ONE_ONLY to check if decl is one only.
15615         * ipa-split.c (consider_split): Limit splitt of one only functions.
15616
15617 2015-03-16  Jakub Jelinek  <jakub@redhat.com>
15618
15619         PR tree-optimization/65427
15620         * tree-vect-generic.c (do_cond, expand_vector_scalar_condition): New
15621         functions.
15622         (expand_vector_operations_1): Handle BLKmode vector COND_EXPR.
15623
15624 2015-03-16  Marek Polacek  <polacek@redhat.com>
15625
15626         * cgraph.h (add_new_static_var): Remove declaration.
15627         * varpool.c (add_new_static_var): Remove function.
15628
15629 2015-03-16  Jakub Jelinek  <jakub@redhat.com>
15630
15631         * omp-low.c (expand_omp_target): Use auto_vec<tree, 11>
15632         instead of vec<tree> * with vec_alloc and release for args.
15633         Adjust all users.
15634
15635         PR middle-end/65431
15636         * omp-low.c (delete_omp_context): Only splay_tree_delete
15637         reduction_map in GIMPLE_OMP_TARGET is_gimple_omp_offloaded
15638         is_gimple_omp_oacc contexts.  Don't look at ctx->outer.
15639
15640 2015-03-16  Max Ostapenko  <m.ostapenko@partner.samsung.com>
15641
15642         PR sanitizer/64820
15643         * cfgexpand.c (align_base): New function.
15644         (alloc_stack_frame_space): Call it.
15645         (expand_stack_vars): Align prev_frame to be sure
15646         data->asan_vec elements aligned properly.
15647
15648 2015-03-16  Eric Botcazou  <ebotcazou@adacore.com>
15649
15650         PR middle-end/65409
15651         * expr.c (store_field): Do not do a direct block copy if the source is
15652         a PARALLEL with BLKmode.
15653
15654 2015-03-16  Tom de Vries  <tom@codesourcery.com>
15655
15656         PR middle-end/65414
15657         Revert:
15658         2015-03-12  Tom de Vries  <tom@codesourcery.com>
15659
15660         PR rtl-optimization/64895
15661         * lra-lives.c (check_pseudos_live_through_calls): Use
15662         actual_call_used_reg_set instead of call_used_reg_set, if available.
15663
15664 2015-03-16  Alan Modra  <amodra@gmail.com>
15665
15666         PR target/63150
15667         * config/rs6000/rs6000.md (bswapdi2): Remove one scratch reg.
15668         Modify Z->r bswapdi splitter to use dest in place of scratch.
15669         In r->Z and Z->r bswapdi splitter rename word_high, word_low
15670         to word1, word2 and rearrange logic to suit.
15671         (bswapdi2_64bit): Remove early clobber on Z->r alternative.
15672         (bswapdi2_ldbrx): Likewise.  Remove '??' on r->r.
15673         (bswapdi2_32bit): Remove early clobber on Z->r alternative.
15674         Add one '?' on r->r.  Modify Z->r splitter to avoid need for
15675         early clobber.
15676
15677 2015-03-14  Jakub Jelinek  <jakub@redhat.com>
15678
15679         PR tree-optimization/65369
15680         * tree-vect-stmts.c (vectorizable_load) <case dr_explicit_realign>:
15681         Set bump to vs * TYPE_SIZE_UNIT (elem_type) - 1 instead of
15682         (vs - 1) * TYPE_SIZE_UNIT (elem_type).
15683
15684         PR tree-optimization/65418
15685         * tree-ssa-reassoc.c (extract_bit_test_mask): If there
15686         are casts in the first PLUS_EXPR operand, ensure tbias and
15687         *totallowp are in the inner type.
15688
15689         PR rtl-optimization/65401
15690         * combine.c (rtx_equal_for_field_assignment_p): Add widen_x
15691         argument.  If true, adjust_address_nv of x with big-endian
15692         correction for the mode widening to GET_MODE (y).
15693         (make_field_assignment): Don't do MEM mode widening here.
15694         Use MEM_P instead of GET_CODE == MEM.
15695
15696 2015-03-13  Ilya Verbin  <ilya.verbin@intel.com>
15697
15698         * varpool.c (varpool_node::get_create): Don't set 'offloadable' flag for
15699         the external decls.
15700
15701 2015-03-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15702
15703         PR target/64600
15704         * config/arm/arm.c (arm_gen_constant, AND case): Use
15705         ARM_SIGN_EXTEND when constructing AND mask.
15706
15707 2015-03-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
15708
15709         * graph.c (print_graph_cfg): Make function names visible and append
15710         parenthesis to it.  Also make groups of basic blocks belonging to the
15711         same function visible.
15712
15713 2015-03-12  Richard Biener  <rguenther@suse.de>
15714
15715         PR middle-end/44563
15716         * tree-inline.c (gimple_expand_calls_inline): Walk BB backwards
15717         to avoid quadratic behavior with inline expansion splitting blocks.
15718         * tree-cfgcleanup.c (cleanup_tree_cfg_bb): Do not merge block
15719         with the successor if the predecessor will be merged with it.
15720         * tree-cfg.c (gimple_can_merge_blocks_p): We can't merge the
15721         entry block with its successor.
15722
15723 2015-03-13  Richard Biener  <rguenther@suse.de>
15724
15725         PR middle-end/44563
15726         * tree-cfgcleanup.c (split_bb_on_noreturn_calls): Remove.
15727         (cleanup_tree_cfg_1): Do not call it.
15728         (execute_cleanup_cfg_post_optimizing): Fixup the CFG here.
15729         (fixup_noreturn_call): Mark the stmt as control altering.
15730         * tree-cfg.c (execute_fixup_cfg): Do not dump the function
15731         here.
15732         (pass_data_fixup_cfg): Produce a dump file.
15733         * tree-ssa-dom.c: Include tree-cfgcleanup.h.
15734         (need_noreturn_fixup): New global.
15735         (pass_dominator::execute): Fixup queued noreturn calls.
15736         (optimize_stmt): Queue calls that became noreturn for fixup.
15737         * tree-ssa-forwprop.c (pass_forwprop::execute): Likewise.
15738         * tree-ssa-pre.c: Include tree-cfgcleanup.h.
15739         (el_to_fixup): New global.
15740         (eliminate_dom_walker::before_dom_childre): Queue calls that
15741         became noreturn for fixup.
15742         (eliminate): Fixup queued noreturn calls.
15743         * tree-ssa-propagate.c: Include tree-cfgcleanup.h.
15744         (substitute_and_fold_dom_walker): New member stmts_to_fixup.
15745         (substitute_and_fold_dom_walker::before_dom_children): Queue
15746         alls that became noreturn for fixup.
15747         (substitute_and_fold): Fixup queued noreturn calls.
15748
15749 2015-03-12  Jan Hubicka  <hubicka@ucw.cz>
15750
15751         * ipa-icf.c (sem_function::equals_wpa): Match CXX_CONSTRUCTOR_P
15752         and CXX_DESTURCTOR_P. For consutrctors match ODR type of class they
15753         are building; for methods check ODR type of class they belong to if
15754         they may lead to a polymorphic call.
15755         (sem_function::compare_polymorphic_p): Be bit smarter about testing
15756         when function may lead to a polymorphic call.
15757         (sem_function::compare_type_list): Remove.
15758         (sem_variable::equals): Update use of compatible_types_p.
15759         (sem_variable::parse_tree_refs): Remove.
15760         (sem_item_optimizer::filter_removed_items): Do not filter out CXX
15761         cdtor.
15762         * ipa-icf-gimple.c (func_checker::compare_decl): Do polymorphic
15763         matching here.
15764         (func_checker::compatible_polymorphic_types_p): Break out from ...
15765         (unc_checker::compatible_types_p): ... here.
15766         * ipa-icf-gimple.h (func_checker::compatible_polymorphic_types_p):
15767         Declare.
15768         (unc_checker::compatible_types_p): Update.
15769         * ipa-icf.h (compare_type_list, parse_tree_refs, compare_sections):
15770         Remove.
15771
15772 2015-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15773
15774         PR rtl-optimization/65235
15775         * simplify-rtx.c (simplify_binary_operation_1, VEC_SELECT case):
15776         When first element of vec_concat is const_int, calculate its size
15777         using second element.
15778
15779 2015-03-12  Richard Biener  <rguenther@suse.de>
15780
15781         PR middle-end/65270
15782         * fold-const.c (operand_equal_p): Fix ordering of resetting
15783         OEP_ADDRESS_OF and checking for it in the [TARGET_]MEM_REF case.
15784
15785 2015-03-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>
15786
15787         * config/s390/s390.c (s390_reorg): Move code to output nops after label
15788         to s390_reorg ().
15789         (s390_asm_output_function_label): Likewise.
15790         * config/s390/s390.c (s390_asm_output_function_label):
15791         Fix function label alignment with -mhtopatch.
15792         * config/s390/s390.md ("unspecv"): New values UNSPECV_NOP_2_BYTE,
15793         UNSPECV_NOP_4_BYTE and UNSPECV_NOP_6_BYTE
15794         ("nop_2_byte"): New define_insn.
15795         ("nop_4_byte"): Likewise.
15796         ("nop_6_byte"): Likewise.
15797         * doc/extend.texi (hotpatch): hotpatch attribute doc fixes.
15798         * doc/invoke.texi (-mhotpatch): -mhotpatch doc fixes.
15799
15800 2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>
15801
15802         PR target/65103
15803         * config/i386/i386.c (ix86_address_cost): Fix cost of a PIC
15804         register.
15805
15806 2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>
15807
15808         PR target/65044
15809         * toplev.c (process_options): Restrict Pointer Bounds Checker
15810         usage with Address Sanitizer.
15811
15812 2015-03-12  Richard Biener  <rguenther@suse.de>
15813
15814         * tree-cfg.c (gimple_split_block): Remove loop finding stmt
15815         to split on.
15816         * omp-low.c (expand_omp_taskreg): Split block before removing
15817         the stmt.
15818         (expand_omp_target): Likewise.
15819         * ubsan.c (ubsan_expand_null_ifn): Adjust stmt if we replaced it.
15820         * tree-parloops.c (create_call_for_reduction_1): Pass a proper
15821         stmt to split_block.
15822
15823 2015-03-12  Tom de Vries  <tom@codesourcery.com>
15824
15825         PR rtl-optimization/64895
15826         * lra-lives.c (check_pseudos_live_through_calls): Use
15827         actual_call_used_reg_set instead of call_used_reg_set, if available.
15828
15829 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
15830
15831         * cgraph.c (cgraph_node::release_body): Free function_in_decl_state.
15832         (cgraph_node::remove): Likewise.
15833         (cgraph_node::get_untransformed_body): Likewise.
15834         * varpool.c (varpool_node::remove): Likewise.
15835         (varpool_node::get_constructor): Add sanity check.
15836
15837 2015-03-11  Sandra Loosemore  <sandra@codesourcery.com>
15838
15839         * doc/invoke.texi (-fgnu89-inline): Remove discussion about
15840         old GCC versions.
15841         (-fabi-compat-version): Likewise.
15842         (-ffriend-injection): Likewise.
15843         (-Wdeclaration-after-statement): Likewise.
15844         (-fomit-frame-pointer): Likewise.
15845         (-ftree-coalesce-inlined-vars): Likewise.
15846         (-fvisibility=): Likewise.
15847         * doc/extend.texi (Typeof): Likewise.
15848         (Zero Length): Likewise.
15849         (Escaped Newlines): Likewise.
15850         (Compound Literals): Likewise.
15851         (Function Attributes): Likewise.
15852         (Label Attributes): Likewise.
15853         (Type Attributes): Likewise.
15854         (Function Names): Likewise.
15855         (Other Builtins): Likewise.
15856         (Function Specific Option Pragmas): Likewise.
15857         (C++ Interface): Likewise.
15858
15859 2015-03-11  Thomas Schwinge  <thomas@codesourcery.com>
15860
15861         * config/nvptx/nvptx.h (LIBSTDCXX): Define to "gcc".
15862
15863 2015-03-11  Marek Polacek  <polacek@redhat.com>
15864
15865         PR tree-optimization/65388
15866         * tree-ssa-tail-merge.c (same_succ_def::equal): Fix typo in comparison.
15867
15868 2015-03-10  Georg-Johann Lay  <avr@gjlay.de>
15869
15870         PR target/65296
15871         * configure.ac [avr]: Check as for options -mrmw, --mlink-relax.
15872         * configure: Regenerate.
15873         * config.in: Regenerate.
15874         * doc/invoke.texi (AVR Options) [-mrmw]: Document it.
15875         [-mn-flash]: Document it.
15876         [__AVR_ARCH__]: Document avrtiny.
15877
15878         * config/avr/gen-avr-mmcu-specs.c (config.h): Include it.
15879         (*asm_relax): Only define spec if HAVE_AS_AVR_MLINK_RELAX_OPTION.
15880         (*asm_rmw): Only define spec if HAVE_AS_AVR_MRMW_OPTION.
15881
15882 2015-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15883
15884         * doc/invoke.texi: Add missing cpu values (z196, zEC12).
15885
15886 2015-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
15887
15888         PR target/65242
15889         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Do not
15890         allow reloads of PLUS in floating point/VSX registers.
15891
15892 2015-03-11  Junmo Park  <junmoz.park@samsung.com>
15893
15894         * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Add
15895         crypto_sha256_fast.
15896         (cortex_a57_crypto_complex): Add crypto_sha256_slow.
15897
15898 2015-03-11  Richard Biener  <rguenther@suse.de>
15899
15900         PR tree-optimization/65310
15901         * tree-sra.c (build_ref_for_offset): Also preserve larger
15902         alignment.
15903
15904 2015-03-11  Marat Zakirov  <m.zakirov@samsung.com>
15905
15906         * asan.c (instrument_derefs): Disable instrumentation on asan-globals=0.
15907
15908 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
15909
15910         PR target/65368
15911         * config/i386/i386.md (bmi2_bzhi_<mode>3): Removed define_insn,
15912         new define_expand.
15913         (*bmi2_bzhi_<mode>3, *bmi2_bzhi_<mode>3_1): New define_insns.
15914
15915 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
15916
15917         * ipa-icf.c (sem_function::equals_wpa): Move here some checks from ...
15918         (sem_function::equals_wpa): ... here.
15919
15920 2015-03-10  Marek Polacek  <polacek@redhat.com>
15921             Jakub Jelinek  <jakub@redhat.com>
15922
15923         PR sanitizer/65367
15924         * ubsan.c (ubsan_expand_objsize_ifn): Update GSI instead of GSI_ORIG
15925         when only removing the statement.  Handle expanding UBSAN_OBJECT_SIZE
15926         separately.
15927
15928 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
15929
15930         PR target/65286
15931         * config/rs6000/t-linux: For powerpc64* target set
15932         MULTILIB_OSDIRNAMES instead of MULTIARCH_DIRNAME.
15933
15934 2015-03-10  Richard Biener  <rguenther@suse.de>
15935
15936         PR middle-end/44563
15937         * tree-inline.c (copy_cfg_body): Skip block mapped to entry/exit
15938         for redirect_all_calls.
15939
15940 2015-03-10  Marek Polacek  <polacek@redhat.com>
15941
15942         * gdbinit.in (pcfun): Define and document.
15943
15944 2015-03-10  Ilya Verbin  <ilya.verbin@intel.com>
15945
15946         * config/i386/intelmic-mkoffload.c: Include intelmic-offload.h instead
15947         of libgomp-plugin.h.
15948         (find_target_compiler): Support a case when the path to gcc is
15949         specified in the PATH env var, so COLLECT_GCC doesn't contain a path.
15950         (generate_host_descr_file): Use GOMP_DEVICE_INTEL_MIC from
15951         intelmic-offload.h instead of OFFLOAD_TARGET_TYPE_INTEL_MIC from
15952         libgomp-plugin.h.
15953         (main): Use GCC_INSTALL_NAME as target_driver_name.
15954         * config/i386/t-intelmic (CFLAGS-mkoffload.o): Add GCC_INSTALL_NAME
15955         define.
15956         (mkoffload.o): Remove obsolete include path and defines.
15957         (mkoffload$(exeext)): Use $(LINKER) instead of $(COMPILER).
15958
15959 2015-03-10  Richard Biener  <rguenther@suse.de>
15960
15961         PR middle-end/63155
15962         * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
15963         * tree-ssa-coalesce.c: Include timevar.h.
15964         (attempt_coalesce): Handle graph being NULL.
15965         (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
15966         Split out abnormal coalescing to ...
15967         (perform_abnormal_coalescing): ... this function.
15968         (coalesce_ssa_name): Perform abnormal coalescing without computing
15969         live/conflict.
15970         (verify_ssa_coalescing_worker): New function.
15971         (verify_ssa_coalescing): Likewise.
15972
15973 2015-03-10  Georg-Johann Lay  <avr@gjlay.de>
15974
15975         PR target/65296
15976         * config.gcc (extra_options) [avr]: Remove.
15977         (extra_gcc_objs) [avr]: Use driver-avr.o, avr-devices.o.
15978         (tm_file) [avr]: Add avr/specs.h after avr/avr.h.
15979         (tm_defines) [avr-*-rtems*]: Add WITH_RTEMS.
15980
15981         * config/avr/avr.opt (config/avr/avr-arch.h): Remove include.
15982         (-mmcu=): Add Var and MissingArgError properties.
15983         (-march=): Remove.
15984         * config/avr/genmultilib.awk: Use -mmcu= instead of -march=.
15985         * config/avr/t-multilib: Regenerate.
15986         * config/avr/specs.h: New file.
15987         * config/avr/driver-avr.c: New file.
15988         * config/avr/genopt.sh: Remove file.
15989         * config/avr/avr-tables.opt: Remove file.
15990         * config/avr/predicates.md (avr_current_arch): Rename to avr_arch.
15991         * config/avr/avr-c.c: Same.
15992         * avr-arch.h: Same.
15993         (avr_current_device): Remove proto.
15994         * config/avr/avr.h (avr_current_arch): Rename to avr_arch.
15995         (AVR_HAVE_8BIT_SP): Don't depend on avr_current_device.
15996         (EXTRA_SPEC_FUNCTIONS): Define.
15997         (avr_devicespecs_file): New specs function proto.
15998         (DRIVER_SELF_SPECS): Use device-specs-file spec function.
15999         * config/avr/avr.c (avr_current_arch): Rename to avr_arch.
16000         (avr_current_device): Remove definition and usage.
16001         (avr_set_core_architecture): New static function.
16002         (avr_option_override): Use it.
16003         * config/avr/avr-devices.c (diagnostic.h, avr-arch.h): Include them.
16004         (mcu_name): New static array.
16005         (comparator, avr_archs_str, avr_mcus_str): New static functions.
16006         (avr_inform_devices, avr_inform_core_architectures): New functions.
16007         * config/avr/gen-avr-mmcu-specs.c (avr-arch.h, specs.h): Include.
16008         (avrlibc.h) [WITH_AVRLIBC]: Include.
16009         (../rtems.h, rtems.h) [WITH_RTEMS]: Include.
16010         (print_mcu): Rewrite from scratch.
16011         * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC, STARTFILE_SPEC):
16012         Forward to avr-specific specs defined in device-specs file.
16013         * config/avr/t-avr (driver-avr.o): New rule.
16014         (avr-devices.o): Depend on avr-arch.h.
16015         (avr-mcus): No more depend on avr-tables.opt.
16016         (avr-tables.opt): Remove rule.
16017         (install-device-specs): Use INSTALL_DATA, not INSTALL_PROGRAM.
16018
16019 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
16020
16021         * c-family/c.opt (fchkp-use-wrappers): New.
16022         * ipa-chkp.c (CHKP_WRAPPER_SYMBOL_PREFIX): New.
16023         (chkp_wrap_function): New.
16024         (chkp_build_instrumented_fndecl): Support wrapped
16025         functions.
16026         * doc/invoke.texi (-fcheck-pointer-bounds): New.
16027         (-fchkp-check-incomplete-type): New.
16028         (-fchkp-first-field-has-own-bounds): New.
16029         (-fchkp-narrow-bounds): New.
16030         (-fchkp-narrow-to-innermost-array): New.
16031         (-fchkp-optimize): New.
16032         (-fchkp-use-fast-string-functions): New.
16033         (-fchkp-use-nochk-string-functions): New.
16034         (-fchkp-use-static-bounds): New.
16035         (-fchkp-use-static-const-bounds): New.
16036         (-fchkp-treat-zero-dynamic-size-as-infinite): New.
16037         (-fchkp-check-read): New.
16038         (-fchkp-check-write): New.
16039         (-fchkp-store-bounds): New.
16040         (-fchkp-instrument-calls): New.
16041         (-fchkp-instrument-marked-only): New.
16042         (-fchkp-use-wrappers): New.
16043         (-static-libmpx): New.
16044         (-static-libmpxwrappers): New.
16045
16046 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
16047
16048         * config/i386/linux-common.h (LIBMPX_WRAPPERSSPEC): New.
16049         (CHKP_SPEC): Add wrappers library.
16050         * c-family/c.opt (static-libmpxwrappers): New.
16051
16052 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
16053
16054         * config/i386/linux-common.h (LIBMPX_LIBS): New.
16055         (LIBMPX_SPEC): New.
16056         (CHKP_SPEC): New.
16057         * gcc.c (CHKP_SPEC): New.
16058         (LINK_COMMAND_SPEC): Add CHKP_SPEC.
16059         * c-family/c.opt (static-libmpx): New.
16060
16061 2015-03-10  Richard Biener  <rguenther@suse.de>
16062
16063         PR middle-end/44563
16064         * cgraph.h (struct cgraph_edge_hasher): Add hash overload
16065         for compare_type.
16066         * cgraph.c (cgraph_edge_hasher::hash): Inline htab_hash_pointer.
16067         (cgraph_update_edge_in_call_site_hash): Use cgraph_edge_hasher::hash.
16068         (cgraph_add_edge_to_call_site_hash): Likewise.
16069         (cgraph_node::get_edge): Likewise.
16070         (cgraph_edge::set_call_stmt): Likewise.
16071         (cgraph_edge::remove_caller): Likewise.
16072
16073 2015-03-10  Chung-Ju Wu  <jasonwucj@gmail.com>
16074
16075         * config/nds32/nds32.h (callee_saved_regs_size): Rename to ...
16076         (callee_saved_gpr_regs_size): ... this.
16077         (callee_saved_regs_first_regno): Rename to ...
16078         (callee_saved_first_gpr_regno): ... this.
16079         (callee_saved_regs_last_regno) Rename to ...
16080         (callee_saved_last_gpr_regno): ... this.
16081         * config/nds32/nds32.c (nds32_compute_stack_frame): Adjust renamed
16082         variables.
16083         (nds32_initial_elimination_offset): Likewise.
16084         (nds32_expand_prologue): Likewise.
16085         (nds32_expand_epilogue): Likewise.
16086         (nds32_expand_prologue_v3push): Likewise.
16087         (nds32_expand_epilogue_v3pop): Likewise.
16088         * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
16089         Adjust renamed variables.
16090         (nds32_output_stack_pop): Likewise.
16091
16092 2015-03-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16093
16094         * dominance.c (nearest_common_dominator_for_set): Fix A_Dominated_by_B
16095         code in comment.
16096
16097 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
16098
16099         PR rtl-optimization/65321
16100         * cfgexpand.c (expand_debug_expr): Ensure shift amount isn't wider
16101         than shift mode.
16102         * var-tracking.c (use_narrower_mode): Likewise.
16103
16104 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
16105
16106         PR tree-optimization/65355
16107         * varasm.c (notice_global_symbol): Do not produce RTL.
16108         * symtab.c (symtab_node::can_increase_alignment_p): Check for section
16109         anchor.
16110         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Do not
16111         check for section anchors.
16112
16113 2015-03-10  Alan Modra  <amodra@gmail.com>
16114
16115         PR target/65286
16116         * config.gcc (powerpc*-*-linux*): Arrange for powerpc64le-linux
16117         to be single-arch by default.  Set cpu_is_64bit for powerpc64
16118         given --with-cpu=native.
16119         * config/rs6000/t-fprules: Do not set default MULTILIB vars.
16120         * config/rs6000/t-linux (MULTIARCH_DIRNAME): Support powerpc64
16121         and powerpc64le.
16122         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Test
16123         rs6000_isa_flags rather than TARGET_64BIT.
16124
16125 2015-03-09  Yoshinori Sato  <ysato@users.sourceforge.jp>
16126             Kaz Kojima  <kkojima@gcc.gnu.org>
16127
16128         * config/sh/t-linux (MULTILIB_EXCEPTIONS): Define for m2a cases.
16129
16130 2015-03-09  Jakub Jelinek  <jakub@redhat.com>
16131
16132         PR lto/65361
16133         * ipa-devirt.c (add_type_duplicate): Don't use DECL_CONTEXT
16134         on a TREE_BINFO, instead use BINFO_TYPE.
16135
16136 2015-03-09  Richard Biener  <rguenther@suse.de>
16137
16138         PR middle-end/65270
16139         * tree-core.h (enum operand_equal_flag): Add OEP_ADDRESS_OF.
16140         * fold-const.c (operand_equal_p): When recursing for ADDR_EXPRs
16141         operand set OEP_ADDRESS_OF.  Clear it when recursing to non-bases
16142         of that.  When comparing dereferences compare alignment.
16143         When comparing MEM_REFs or TARGET_MEM_REFs compare dependence info.
16144
16145 2015-03-08  Jan Hubicka  <hubicka@ucw.cz>
16146
16147         * ipa-inline-analysis.c (check_callers): Check
16148         node->can_remove_if_no_direct_calls_and_refs_p.
16149         (growth_likely_positive): Reorganize to call
16150         can_remove_if_no_direct_calls_p later.
16151         * cgraph.h (will_be_removed_from_program_if_no_direct_calls_p,
16152         will_be_removed_from_program_if_no_direct_calls_p): Add
16153         will_inline parameter.
16154         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p,
16155         cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
16156         Handle inliner case correctly.
16157
16158 2015-03-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16159
16160         PR tree-optimization/63743
16161         * cfgexpand.c (reorder_operands): Also reorder if only second operand
16162         had its definition forwarded by TER.
16163
16164 2015-03-08  Jan Hubicka  <hubicka@ucw.cz>
16165
16166         PR lto/65316
16167         * ipa-utils.h (types_odr_comparable): Add strict argument.
16168         * ipa-devirt.c: Fix whitespace;
16169         (odr_hasher): Remove.
16170         (odr_name_hasher, odr_vtable_hasher): New hashers.
16171         (can_be_name_hashed_p): New predicate.
16172         (hash_type_name): remove.
16173         (hash_odr_name): New.
16174         (odr_name_hasher::hash): new.
16175         (can_be_vtable_hashed_p): New.
16176         (hash_odr_vtable): New.
16177         (odr_vtable_hasher::hash): New.
16178         (types_same_for_odr): Add strict parameter.
16179         (types_odr_comparable): Likewise.
16180         (odr_name_hasher::equal): New.
16181         (odr_vtable_hasher::equal): New.
16182         (odr_name_hasher::remove): New.
16183         (odr_hash_type): Change to hash_table<odr_name_hasher>.
16184         (odr_vtable_hash_type): New.
16185         (odr_vtable_hash): New.
16186         (odr_subtypes_equivalent_p): Do strict comparsion.
16187         (add_type_duplicate): Merge type names; cleanup; avoid type
16188         duplicates.
16189         (register_odr_type): Initialize vtable hash.
16190         (build_type_inheritance_graph): Likewise
16191         (get_odr_type): Reorg to use two hashes.
16192         (dump_possible_polymorphic_call_targets): Move sanity check after debug
16193         output.
16194         (ipa_devirt): Dump type_inheritance_graph.
16195         (types_same_for_odr): Add strict mode.
16196
16197 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
16198
16199         PR ipa/65334
16200         * cgraph.h (symtab_node): Add definition_alignment,
16201         can_increase_alignment_p and increase_alignment.
16202         * symtab.c (symtab_node::can_increase_alignment_p,
16203         increase_alignment_1, symtab_node::increase_alignment,
16204         symtab_node::definition_alignment): New.
16205         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Use
16206         can_increase_alignment_p.
16207         * tree-vectorizer.c (increase_alignment): Use increase_alignment.
16208         * tree-vect-stmts.c (ensure_base_align): Likewise.
16209         * varasm.c (function_section_1): Use definition_alignment.
16210         (assemble_start_function): Likewise.
16211         (emit_local): likewise.
16212         (build_constant_desc): Likewsie.
16213         (output_constant_def_contents): Likewise.
16214         (place_block_symbol): Likewise.
16215         (output_object_block): Likewise.
16216
16217 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
16218
16219         PR ipa/65316
16220         * tree.c (free_lang_data_in_type): Be sure to keep BINFO_VTABLE
16221         when outputting debug.
16222
16223 2015-03-07  Marek Polacek  <polacek@redhat.com>
16224             Martin Uecker  <uecker@eecs.berkeley.edu>
16225
16226         PR sanitizer/65280
16227         * doc/invoke.texi: Update description of -fsanitize=bounds.
16228
16229 2015-03-06  Wilco Dijkstra  <wilco.dijkstra@arm.com>
16230
16231         * tree-ssa-phiopt.c (neg_replacement): Remove.
16232         (tree_ssa_phiopt_worker): Remove negate optimization.
16233
16234 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
16235
16236         PR ipa/65302
16237         * value-prof.c (gimple_ic): Pure dead eh edges when needed.
16238
16239 2015-03-06  Richard Biener  <rguenther@suse.de>
16240
16241         PR middle-end/64928
16242         * tree-ssa-live.h (struct tree_live_info_d): Add livein_obstack
16243         and liveout_obstack members.
16244         (calculate_live_on_exit): Remove.
16245         (calculate_live_ranges): Change declaration.
16246         * tree-ssa-live.c (liveness_bitmap_obstack): Remove global var.
16247         (new_tree_live_info): Adjust.
16248         (calculate_live_ranges): Delete livein when not wanted.
16249         (calculate_live_ranges): Do not initialize liveness_bitmap_obstack.
16250         Deal with partly deleted live info.
16251         (loe_visit_block): Remove temporary bitmap by using
16252         bitmap_ior_and_compl_into.
16253         (live_worklist): Adjust accordingly.
16254         (calculate_live_on_exit): Make static.
16255         * tree-ssa-coalesce.c (coalesce_ssa_name): Tell calculate_live_ranges
16256         we do not need livein.
16257
16258 2015-03-06  Jonathan Wakely  <jwakely@redhat.com>
16259
16260         * real.c (real_from_string): Fix typo in assertion.
16261
16262 2015-03-06  Alex Velenko  <alex.velenko@arm.com>
16263
16264         * ChangeLog (2015-03-05): Reflect Richard Henderson as actual author of
16265         the patch.
16266
16267 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
16268
16269         * ipa-icf.c (sem_variable::equals_wpa): Check FINAL flags.
16270
16271 2015-03-05  Vladimir Makarov  <vmakarov@redhat.com>
16272
16273         PR target/64342
16274         * lra-assigns.c (find_hard_regno_for): Rename to
16275         find_hard_regno_for_1.  Add a new parameter.
16276         (find_hard_regno_for): New function using find_hard_regno_for_1.
16277
16278 2015-03-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
16279
16280         PR rtl-optimization/65067
16281         * expmed.c (store_bit_field, extract_bit_field): Reworked the
16282         strict volatile bitfield handling.
16283
16284 2015-03-05  Martin Liska  <mliska@suse.cz>
16285
16286         PR ipa/65318
16287         * ipa-icf.c (sem_variable::equals): Compare variables types.
16288
16289 2015-03-05  Richard Henderson  <rth@redhat.com>
16290
16291         PR target/65121
16292         * config/arm/arm.c (arm_function_in_section_p): Fix predicate to
16293         correctly check weak symbol binding.
16294
16295 2015-03-05  Steve Ellcey  <sellcey@imgtec.com>
16296
16297         PR middle-end/65315
16298         * cfgexpand.c (expand_stack_vars): Update large_align to maximum
16299         needed alignment.
16300
16301 2015-03-05  Martin Liska  <mliska@suse.cz>
16302
16303         * ipa-inline.c (inline_small_functions): Set default value to
16304         prevent warning during bootstrap.
16305         * tree.h: Add pragma guard that ignores false positives during
16306         bootstrap.
16307
16308 2015-03-05  Richard Biener  <rguenther@suse.de>
16309
16310         PR tree-optimization/65310
16311         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
16312         Properly preserve alignment of the base of the access.
16313
16314 2015-03-05  Richard Biener  <rguenther@suse.de>
16315
16316         PR ipa/65270
16317         * ipa-icf-gimple.c (func_checker::compare_memory_operand):
16318         Compare dependence info.
16319
16320 2015-03-05  Richard Biener  <rguenther@suse.de>
16321
16322         PR middle-end/65233
16323         * ipa-polymorphic-call.c: Include tree-ssa-operands.h and
16324         tree-into-ssa.h.
16325         (walk_ssa_copies): Revert last chage.  Instead do not walk
16326         SSA names registered for SSA update.
16327
16328 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
16329
16330         PR ipa/65270
16331         * ipa-icf.c (sem_item::compare_cgraph_references): Compare
16332         vtable references for their containing type.
16333         (sem_function::equals_wpa): Compare TYPE_RESTRICT
16334         and type attributes.
16335
16336 2015-03-04  Eric Botcazou  <ebotcazou@adacore.com>
16337
16338         * fold-const.c (round_up_loc): Cast divisor to signed on all paths
16339         before negating it.
16340         * stor-layout.c (finalize_record_size): Revert latest change.
16341
16342 2015-03-04  Andreas Tobler  <andreast@gcc.gnu.org>
16343
16344         * config/rs6000/t-freebsd64: Remove 32-bit soft-float multilibs.
16345
16346 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
16347
16348         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p): Rewrite
16349         for correct comdat handling.
16350         (cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
16351         Likewise.
16352         * cgraph.h (call_for_symbol_and_aliases): Fix formating.
16353         (used_from_object_file_p_worker): Remove.
16354         (cgraph_node::only_called_directly_or_alised): Add
16355         used_from_object_file_p.
16356         * ipa-inline-analysis.c (growth_likely_positive): Optimie.
16357         * ipa-inline-transform.c (can_remove_node_now_p_1): Use
16358         can_remove_if_no_direct_calls_and_refs_p.
16359
16360 2015-03-04  Nick Clifton  <nickc@redhat.com>
16361
16362         * config/rl78/rl78.h (enum reg_class): Remove real registers from
16363         General register class.
16364         * config/rl78/rl78-real.md: Replace general register constraints
16365         with real+virtual register constraints.
16366
16367 2015-03-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16368
16369         * config/s390/s390.c (s390_expand_builtin): Exlude non-htm builtins
16370         from checking for -mhtm option.
16371
16372 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
16373
16374         * tree-sra.c (convert_callers): Use call_for_symbol_and_aliases.
16375         (struct ipa_sra_check_caller_data): Add has_thunk field.
16376         (ipa_sra_check_caller): Check for thunk.
16377         (ipa_sra_preliminary_function_checks): Give up on function with
16378         thunks.
16379         (ipa_early_sra): Use call_for_symbol_and_aliases.
16380
16381 2015-03-03  Kaz Kojima  <kkojima@gcc.gnu.org>
16382
16383         PR target/65249
16384         * config/sh/sh.md (symGOT_load): Use R0 reg for operands[2] when
16385         called for __stack_chk_guard symbol.
16386
16387 2015-03-03  DJ Delorie  <dj@redhat.com>
16388
16389         * config/rl78/rl78-real.md (*addqi_real): Allow SADDR types for
16390         inc/dec.
16391         (*addhi3_real): Likewise.
16392         * config/rl78/rl78-virt.md (*inc<mode>3_virt): Additional
16393         pattern to match incrementing memory.
16394         * config/rl78/predicates.md (rl78_1_2_operand): New.
16395         * config/rl78/rl78.c (rl78_force_nonfar_3): Allow far mem-mem if
16396         it's the same and only mem.
16397         (rl78_alloc_physical_registers_op2): If there's effectively only
16398         one MEM, transcode it into HL.
16399         (rl78_far_p): Reject addresses that aren't legitimate.
16400
16401 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
16402
16403         * fold-const.c (round_up_loc): Cast divisor to HOST_WIDE_INT before
16404         negating it.
16405
16406         * tree-sra.c (pa_sra_preliminary_function_checks): Fix typo in message.
16407
16408 2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
16409
16410         Implement call0 ABI for xtensa
16411         * config/xtensa/constraints.md ("a" constraint): Include stack
16412         pointer in case of call0 ABI.
16413         ("q" constraint): Make empty in case of call0 ABI.
16414         ("D" constraint): Include stack pointer in case of call0 ABI.
16415         * config/xtensa/xtensa-protos.h (xtensa_set_return_address,
16416         xtensa_expand_epilogue, xtensa_regno_to_class): Add new function
16417         prototypes.
16418         * config/xtensa/xtensa.c (xtensa_callee_save_size): New
16419         variable.
16420         (xtensa_regno_to_class): Make it a local variable in the
16421         function xtensa_regno_to_class.
16422         (xtensa_function_epilogue, TARGET_ASM_FUNCTION_EPILOGUE): Remove
16423         macro, function prototype and implementation.
16424         (reg_nonleaf_alloc_order): Make it a local variable in the
16425         function order_regs_for_local_alloc.
16426         (xtensa_conditional_register_usage): New function.
16427         (TARGET_CONDITIONAL_REGISTER_USAGE): Define macro.
16428         (xtensa_valid_move): Allow direct moves to stack pointer
16429         register in call0 ABI.
16430         (xtensa_setup_frame_addresses): Only spill register windows in
16431         windowed ABI.
16432         (xtensa_emit_call): Emit call(x)8 or call(x)0 in windowed and
16433         call0 ABI respectively.
16434         (xtensa_function_arg_1): Only mark a7 register for copying in
16435         windowed ABI.
16436         (xtensa_call_save_reg): New function.
16437         (compute_frame_size): Add space for callee saved register
16438         storage to the frame size in call0 ABI.
16439         (xtensa_expand_prologue): Generate code to set up stack frame
16440         and save callee-saved registers in call0 ABI.
16441         (xtensa_expand_epilogue): New function.
16442         (xtensa_set_return_address): New function.
16443         (xtensa_return_addr): Calculate return address in call0 ABI.
16444         (xtensa_builtin_saveregs): Only mark a7 register for copying and
16445         emit copying code in windowed ABI.
16446         (order_regs_for_local_alloc): Add preferred register allocation
16447         order for non-leaf function in call0 ABI.
16448         (xtensa_static_chain): Add atatic chain passing for call0 ABI.
16449         (xtensa_asm_trampoline_template): Add trampoline generation for
16450         call0 ABI.
16451         (xtensa_trampoline_init): Add trampoline initialization for
16452         call0 ABI.
16453         (xtensa_conditional_register_usage, xtensa_regno_to_class): New
16454         functions.
16455         * config/xtensa/xtensa.h (TARGET_WINDOWED_ABI): New macro.
16456         (TARGET_CPU_CPP_BUILTINS): Add built-in define for call0 ABI.
16457         (CALL_USED_REGISTERS): Modify to encode both windowed and call0
16458         ABI call-used registers.
16459         (HARD_FRAME_POINTER_REGNUM): Add frame pointer for call0 ABI.
16460         (INCOMING_REGNO, OUTGOING_REGNO): Use argument unchanged in
16461         call0 ABI.
16462         (REG_CLASS_CONTENTS): Include all registers into the preferred
16463         reload registers set, adjust the set in the
16464         xtensa_conditional_register_usage.
16465         (xtensa_regno_to_class): Drop variable declaration.
16466         (REGNO_REG_CLASS): Redefine to use xtensa_regno_to_class
16467         function.
16468         (WINDOW_SIZE): Define as 8 or 0 for windowed and call0 ABI
16469         respectively.
16470         (FUNCTION_PROFILER): Add _mcount call for call0 ABI.
16471         (TRAMPOLINE_SIZE): Define trampoline size for call0 ABI.
16472         (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 in call0 ABI.
16473         (ASM_OUTPUT_POOL_PROLOGUE): Always generate literal pool
16474         location in call0 ABI.
16475         (EH_RETURN_STACKADJ_RTX): New definition, use a10 for passing
16476         stack adjustment size when handling exception.
16477         (CRT_CALL_STATIC_FUNCTION): Add definition for call0 ABI.
16478         * config/xtensa/xtensa.md (A9_REG, UNSPECV_BLOCKAGE): New
16479         definitions.
16480         ("return" pattern): Generate ret.n/ret in call0 ABI.
16481         ("epilogue" pattern): Expand epilogue.
16482         ("nonlocal_goto" pattern): Use default in call0 ABI.
16483         ("eh_return" pattern): Move implementation to eh_set_a0_windowed,
16484         emit eh_set_a0_* depending on ABI.
16485         ("eh_set_a0_windowed" pattern): Former eh_return pattern.
16486         ("eh_set_a0_call0", "blockage"): New patterns.
16487
16488 2015-03-03  Martin Liska  <mliska@suse.cz>
16489
16490         PR ipa/65287
16491         * ipa-icf.c (sem_variable::parse): Skip all alias variables.
16492
16493 2015-03-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
16494
16495         PR 65138/target
16496         * config/rs6000/rs6000-tables.opt: Regenerate table.
16497
16498 2015-03-03  Renlin Li  <renlin.li@arm.com>
16499
16500         * doc/md.texi (@item ^): Change ? into ^.
16501
16502 2015-03-03  H.J. Lu  <hongjiu.lu@intel.com>
16503
16504         * doc/tm.texi: Regenerated.
16505
16506 2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
16507
16508         * builtins.c (expand_builtin_return_addr): Add
16509         RETURN_ADDR_IN_PREVIOUS_FRAME to 'if' condition, remove
16510         surrounding #ifdef.
16511         * config/sparc/sparc.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Change
16512         definition to 1.
16513         * config/xtensa/xtensa.h (RETURN_ADDR_IN_PREVIOUS_FRAME):
16514         Likewise.
16515         * defaults.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 if
16516         undefined.
16517         * doc/tm.texi.in (RETURN_ADDR_IN_PREVIOUS_FRAME): Update
16518         paragraph.
16519
16520 2015-03-03  Martin Jambor  <mjambor@suse.cz>
16521             Eric Botcazou  <ebotcazou@adacore.com>
16522
16523         * tree-sra.c (ipa_sra_check_caller_data): New type.
16524         (has_caller_p): Removed.
16525         (ipa_sra_check_caller): New function.
16526         (ipa_sra_preliminary_function_checks): Use it.
16527
16528 2015-03-03  Martin Liska  <mliska@suse.cz>
16529
16530         * ipa-icf.c (sem_item_optimizer::merge_classes): Use bit or
16531         instead of if branch.
16532
16533 2015-03-03  Martin Liska  <mliska@suse.cz>
16534
16535         PR ipa/65282
16536         * ipa-icf.c (sem_variable::equals): Fix wrong condition.
16537
16538 2015-03-23  Jeff Law  <law@redhat.com>
16539
16540         PR tree-optimization/65241
16541         * tree-ssa-dom.c (lookup_avail_expr): Only modify the avail_expr
16542         hash table if INSERT is true.
16543
16544 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
16545
16546         PR target/65296
16547         * config.gcc (extra_gcc_objs) [avr-*-rtems*]: Remove.
16548
16549 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
16550
16551         PR target/64331
16552         * config/avr/avr.c (context.h, tree-pass.h): Include them.
16553         (avr_pass_data_recompute_notes): New static variable.
16554         (avr_pass_recompute_notes): New class.
16555         (avr_register_passes): New static function.
16556         (avr_option_override): Call it.
16557
16558 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
16559
16560         Fix various problems with specs file generation.
16561
16562         PR target/65296
16563         * config.gcc (extra_gcc_objs) [avr]: Remove.
16564         * config/avr/driver-avr.c: Remove file.
16565         * config/avr/t-avr (driver-avr.o): Remove rule.
16566         (gen-avr-mmcu-specs): Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD and
16567         INCLUDES to build.  Depend on TM_H.
16568         * config/avr/gen-avr-mmcu-specs.c: Tidy up code.  Fix various
16569         build warnings.  Fix non-matching types and non-existing %-codes.
16570         (tm.h): Include.
16571         (*lib) [!WITH_AVRLIBC]: Don't link libdev.a.
16572         (*libgcc) [WITH_AVRLIBC]: Add "-lm".
16573         * config/avr/avrlibc.h (LIBGCC_SPEC): Remove definition.
16574         * config/avr/avr.h (DRIVER_SELF_SPECS): Fix handling of -march=.
16575         (CPP_SPEC, CC1PLUS_SPEC, ASM_SPEC, LINK_SPEC, LIB_SPEC)
16576         (LIBGCC_SPEC): Remove definitions.
16577
16578 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
16579
16580         * config/ia64/ia64.c (expand_vec_perm_interleave_2): Use gen_raw_REG
16581         to create a register in testing mode.
16582
16583 2015-03-03  Martin Liska  <mliska@suse.cz>
16584             Jan Hubicka  <hubicka@ucw.cz>
16585
16586         PR ipa/65263
16587         * cgraph.c (cgraph_node::has_thunk_p): New function.
16588         * cgraph.h (cgraph_node::has_thunk_p: Likewise.
16589         * ipa-icf.c (redirect_all_callers): Do not redirect thunks.
16590         (sem_function::merge): Assert is changed.
16591
16592 2015-03-03  Martin Liska  <mliska@suse.cz>
16593             Martin Jambor  <mjambor@suse.cz>
16594
16595         PR ipa/65087
16596         * ipa-icf.c (sem_item_optimizer::execute): Change function
16597         return value to boolean.
16598         (sem_item_optimizer::merge_classes): Likewise.
16599         (ipa_icf_driver): Return TODO_remove_functions in case there's
16600         a merge operation processed.
16601         * ipa-icf.h: Change function return value to boolean.
16602
16603 2015-03-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
16604
16605         PR 65138/target
16606         * config/rs6000/rs6000-cpus.def (powerpc64le): Add new generic
16607         processor type for 64-bit little endian PowerPC.
16608
16609         * config/rs6000/rs6000.c (rs6000_option_override_internal): If
16610         -mdebug=reg, print TARGET_DEFAULT.  Fix logic to use
16611         TARGET_DEFAULT if there is no default cpu.  Fix -mdebug=reg
16612         printing built-in mask so it does not pass NULL pointers.
16613
16614         * doc/invoke.texi (IBM RS/6000 and PowerPC options): Document
16615         -mcpu=powerpc64le.
16616
16617 2015-03-02  Steve Ellcey  <sellcey@imgtec.com>
16618
16619         PR target/58158
16620         * config/mips/mips.md (mov<mode>cc): Change ISA_HAS_SEL check to
16621         !ISA_HAS_FP_CONDMOVE.
16622
16623 2015-03-02  Aldy Hernandez  <aldyh@redhat.com>
16624
16625         * config/i386/i386.md (*udivmod<mode>4_pow2): Remove
16626         reload_completed.
16627
16628 2015-03-02  Ulrich Drepper  <drepper@gmail.com>
16629
16630         * doc/invoke.texi (Options for Code Generation Conventions):
16631         Fix URL of DSO paper.
16632
16633 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
16634
16635         PR ipa/65130
16636         * ipa-inline.c (check_callers): Looks for recursion.
16637         (inline_to_all_callers): Give up on uninlinable or recursive edges.
16638         * ipa-inline-analysis.c (inline_summary_t::duplicate): Do not update
16639         summary of inline clones.
16640         (do_estimate_growth_1): Fix recursion check.
16641
16642 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
16643
16644         PR ipa/64988
16645         * ipa-inline-transform.c (clone_inlined_nodes): Do not dissolve
16646         comdat groups.
16647
16648 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
16649             Aldy Hernandez  <aldyh@redhat.com>
16650
16651         PR lto/65276
16652         * ipa-devirt.c (add_type_duplicate): Remove odr_violated assert
16653         when checking TYPE_BINFO.
16654
16655 2015-03-02  Richard Biener  <rguenther@suse.de>
16656
16657         PR ipa/65270
16658         * ipa-icf-gimple.c: Include builtins.h.
16659         (func_checker::compare_memory_operand): Compare base alignment.
16660
16661 2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>
16662
16663         PR target/65184
16664         * gcc/config/i386/i386.c (ix86_pass_by_reference) Bounds
16665         are never passed by reference.
16666
16667 2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>
16668
16669         PR target/65183
16670         * tree-chkp.c (chkp_check_lower): Don't check against
16671         zero bounds for already instrumented functions.
16672         (chkp_check_upper): Likewise.
16673         (chkp_fini): Clean pass local data to avoid wrong reusage.
16674
16675 2015-02-28  Martin Liska  <mliska@suse.cz>
16676             Jan Hubicka  <hubicka@ucw.cz>
16677
16678         * ipa-icf.c (sem_variable::equals): Improve debug output;
16679         get variable constructor.
16680         (sem_variable::parse): Do not filter out too early; give up on
16681         volatile and register vars.
16682         (sem_item_optimizer::filter_removed_items): Filter out nonreadonly
16683         variables.
16684         * ipa-icf.h (sem_variable::init): Do not set ctor.
16685         (sem_variable::ctor): Remove.
16686
16687 2015-03-01  Aldy Hernandez  <aldyh@redhat.com>
16688
16689         PR middle-end/65233
16690         * ipa-polymorphic-call.c (walk_ssa_copies): Handle empty PHIs.
16691
16692 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
16693
16694         * ipa-icf.c: Include stor-layout.h
16695         (sem_function::compare_cgraph_references): Rename to ...
16696         (sem_item::compare_cgraph_references): ... this one.
16697         (sem_variable::equals_wpa): New function
16698         (sem_variable::equals): Do not check stuff already verified by
16699         equals_wpa.
16700         (sem_variable::equals): Reorg based on varasm.c:compare_constant.
16701         * ipa-icf.h (sem_item): Add compare_cgraph_references.
16702         (sem_function): Remove compare_cgraph_references.
16703         (sem_variable): Turns equals_wpa into non-inline.
16704
16705 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
16706
16707         * ipa-icf.c (sem_function::init): Fix formating; skip GIMPLE_PREDICT.
16708         (sem_item::add_expr): New function.
16709         (sem_function::hash_stmt): Handle operands of most statements.
16710         (sem_variable::get_hash): Hash the actual constructor.
16711         * ipa-icf.h (sem_item): Add add_expr.
16712         (sem_function): Update prototype of hash_stmt
16713
16714 2015-02-28  Martin Liska  <mliska@suse.cz>
16715             Jan Hubicka  <hubicka@ucw.cz>
16716
16717         PR ipa/65245
16718         * ipa-icf-gimple.c (func_checker::compare_function_decl):
16719         Remove.
16720         (func_checker::compare_variable_decl): Skip symtab vars.
16721         (func_checker::compare_cst_or_decl): Update.
16722         * ipa-icf.c (sem_function::parse): Do not consider aliases.
16723         (sem_function::compare_cgraph_references): Add ADDRESS parameter;
16724         use correct symtab predicates.
16725         (sem_function::equals_wpa): Update uses of compare_cgraph_references.
16726         (sem_variable::parse):  Update comment.
16727         (sem_item_optimizer::build_graph): Consider ultimate aliases
16728         for references.
16729
16730 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
16731
16732         * ipa-icf-gimple.c (func_checker::compare_operand): Fix handling
16733         of OBJ_TYPE_REF.
16734
16735 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
16736
16737         * ipa-icf.c (sem_function::merge): Fix handling of COMDAT.
16738         (sem_variable::merge) Likewise.
16739
16740 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
16741
16742         * ipa-inline.c (can_inline_edge_p): Match opt_for_fn on inline
16743         target; also match flag_ipa_devirt.
16744
16745 2015-03-01  Martin Liska  <mliska@suse.cz>
16746             Jan Hubicka  <hubicka@ucw.cz>
16747
16748         * ipa-icf-gimple.c (func_checker::compare_variable_decl):
16749         Validate variable alignment.
16750         * ipa-icf.c (sem_function::equals_private): Be more precise
16751         about non-common function attributes.
16752         (sem_variable::equals): Likewise.
16753
16754 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
16755
16756         PR ipa/65237
16757         * ipa-icf.c (sem_function::merge): Do not attempt to produce alias
16758         across COMDAT group boundary.
16759
16760 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
16761
16762         PR ipa/65232
16763         * ipa-icf.c (clear_decl_rtl): New function.
16764         (sem_function::merge): Clear RTL before forming alias.
16765         (sem_variable::merge): Clear RTL before forming alias.
16766
16767 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
16768
16769         PR ipa/65236
16770         * cgraphunit.c (cgraph_node::expand_thunk): Enable return slot opt.
16771
16772 2015-02-28  Xingxing Pan  <xxingpan@marvell.com>
16773
16774         * config/aarch64/aarch64.md: (mov<mode>_aarch64): Change type
16775         to neon_to_gp<q>.
16776
16777 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
16778
16779         * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): Fix
16780         a typo in the description.
16781
16782 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
16783
16784         PR target/64317
16785         * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
16786         * params.h (LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
16787         * lra-constraints.c: Include "params.h".
16788         (EBB_PROBABILITY_CUTOFF): Use
16789         LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF.
16790         (lra_inheritance): Use '<' instead of '<=' for
16791         EBB_PROBABILITY_CUTOFF.
16792         * doc/invoke.texi (lra-inheritance-ebb-probability-cutoff):
16793         Document change.
16794
16795 2015-02-27  Martin Liska  <mliska@suse.cz>
16796
16797         * ipa-icf.h (struct symbol_compare_hashmap_traits): Add missing
16798         vector length condition.
16799
16800 2015-02-27  Sandra Loosemore  <sandra@codesourcery.com>
16801
16802         * doc/extend.texi (x86 transactional memory intrinsics):
16803         Reorganize discussion of _xbegin.  Clarify that the return
16804         value is a bit mask.  Expand example and move to end of section.
16805
16806 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
16807             Aldy Hernandez  <aldyh@redhat.com>
16808
16809         PR rtl-optimization/65220
16810         * config/i386/i386.md (*udivmod<mode>4_pow2): New.
16811
16812 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
16813
16814         PR target/65032
16815         * lra-remat.c (update_scratch_ops): New.
16816         (do_remat): Call it.
16817         * lra.c (lra_register_new_scratch_op): New. Take code from ...
16818         (remove_scratches): ... here.
16819         * lra-int.h (lra_register_new_scratch_op): New prototype.
16820
16821 2015-02-27  Marek Polacek  <polacek@redhat.com>
16822
16823         PR c/65040
16824         * doc/invoke.texi: Update to reflect that -Wformat=2 doesn't enable
16825         -Wformat-signedness anymore.
16826
16827 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16828
16829         * config/s390/s390.c: (s390_atomic_assign_expand_fenv): New
16830         function.
16831         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define macro.
16832
16833 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16834
16835         * config/s390/s390.c (enum s390_builtin):
16836         Add S390_BUILTIN_S390_SFPC and S390_BUILTIN_S390_EFPC.
16837         (code_for_builtin): Add CODE_FOR_s390_sfpc and CODE_FOR_s390_efpc.
16838         (s390_init_builtins): Generate new builtin functions.
16839         * config/s390/s390.md (UNSPECV_SFPC, UNSPECV_EFPC): New constants.
16840         (s390_sfpc, s390_efpc): New pattern definitions.
16841
16842 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16843
16844         * config/s390/s390.c: (enum s390_builtin, s390_expand_builtin):
16845         Rename S390_BUILTIN_max to S390_BUILTIN_MAX.
16846         (s390_builtin_decls): New array.
16847         (s390_init_builtins): Put builtin decls into s390_builtin_decls.
16848         (s390_builtin_decl): New function.
16849         (TARGET_BUILTIN_DECL): Define macro.
16850
16851 2015-02-27  Richard Biener  <rguenther@suse.de>
16852
16853         PR middle-end/63175
16854         * builtins.c (get_object_alignment_2): Make sure to re-apply
16855         the ANDed mask after recursing to its operand gets us a new
16856         misalignment bit position.
16857
16858 2015-02-26  Jan Hubicka  <hubicka@ucw.cz>
16859             Martin Liska  <mliska@suse.cz>
16860
16861         PR bootstrap/65150
16862         * ipa-icf.c (symbol_compare_collection::symbol_compare_colleciton):
16863         Use address_matters_p.
16864         (redirect_all_callers, set_addressable): New functions.
16865         (sem_function::merge): Reorganize and fix merging issues.
16866         (sem_variable::merge): Likewise.
16867         (sem_variable::compare_sections): Remove.
16868         * common.opt (fmerge-all-constants, fmerge-constants): Remove
16869         Optimization flag.
16870         * symtab.c (symtab_node::resolve_alias): When alias has aliases,
16871         redirect them.
16872         (symtab_node::make_decl_local): Set ADDRESSABLE bit when
16873         decl is used.
16874         (address_matters_1): New function.
16875         (symtab_node::address_matters_p): New function.
16876         * cgraph.c (cgraph_edge::verify_corresponds_to_fndecl): Fix
16877         check for merged flag.
16878         * cgraph.h (address_matters_p): Declare.
16879         (symtab_node::address_taken_from_non_vtable_p): Remove.
16880         (symtab_node::address_can_be_compared_p): New method.
16881         (ipa_ref::address_matters_p): Move here from ipa-ref.c; simplify.
16882         * ipa-visibility.c (symtab_node::address_taken_from_non_vtable_p):
16883         Remove.
16884         (comdat_can_be_unshared_p_1) Use address_matters_p.
16885         (update_vtable_references): Fix formating.
16886         * ipa-ref.c (ipa_ref::address_matters_p): Move inline.
16887         * cgraphunit.c (cgraph_node::create_wrapper): Drop UNINLINABLE flag.
16888         * cgraphclones.c: Preserve merged and icf_merged flags.
16889
16890 2015-02-26  Sandra Loosemore  <sandra@codesourcery.com>
16891
16892         * doc/extend.texi (Function Attributes): Fix spelling and typos.
16893         (Label Attributes): Likewise.
16894         (Cilk Plus Builtins): Likewise.
16895         (ARC SIMD Built-in Functions): Likewise.
16896         (ARM C Language Extensions (ACLE)): Likewise.
16897         (PowerPC Built-in Functions): Likewise.
16898         (PowerPC Hardware Transactional Memory Built-in Functions):
16899         Likewise.
16900
16901 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
16902
16903         PR tree-optimization/65216
16904         * tree-ssa-reassoc.c (rewrite_expr_tree): Force creation of
16905         new stmt and new SSA_NAME for lhs whenever the arguments have
16906         changed and weren't just swapped.  Fix comment typo.
16907
16908         PR tree-optimization/65215
16909         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Return false
16910         for PDP endian targets.
16911         (perform_symbolic_merge, find_bswap_or_nop_1, find_bswap_or_nop):
16912         Fix up formatting issues.
16913         (bswap_replace): Likewise.  For BYTES_BIG_ENDIAN, if the final access
16914         size is smaller than the original, adjust MEM_REF offset by the
16915         difference of sizes.  Use is_gimple_mem_ref_addr instead of
16916         is_gimple_min_invariant test to avoid adding address temporaries.
16917
16918 2015-02-26  Martin Liska  <mliska@suse.cz>
16919             Jan Hubicka  <hubicka@ucw.cz>
16920
16921         PR ipa/64693
16922         * ipa-icf.c (symbol_compare_collection::symbol_compare_collection): New.
16923         (sem_item_optimizer::subdivide_classes_by_sensitive_refs): New function.
16924         (sem_item_optimizer::process_cong_reduction): Include division by
16925         sensitive references.
16926         * ipa-icf.h (struct symbol_compare_hashmap_traits): New class.
16927         * ipa-ref.c (ipa_ref::address_matters_p): New function.
16928         * ipa-ref.h (ipa_ref::address_matters_p): Likewise.
16929
16930 2015-02-26  Georg-Johann Lay  <avr@gjlay.de>
16931
16932         PR target/65192
16933         * config/avr/avr-protos.h (tiny_valid_direct_memory_access_range):
16934         Remove.
16935         * config/avr/avr.c: Same.
16936         (avr_legitimate_address_p) <AVR_TINY, CONSTANT_ADDRESS_P>:
16937         Refuse any constant address not in 0..0xbf.
16938         * config/avr/avr.md (*mov<mode>, *movsf): Remove
16939         tiny_valid_direct_memory_access_range from insn conditions.
16940         (mov<mode>): Don't special-case expansion of avrtiny addresses.
16941
16942 2015-02-26  Oleg Endo  <olegendo@gcc.gnu.org>
16943
16944         PR target/61142
16945         * config/sh/sh.c (sh_check_add_incdec_notes): New function.
16946         * config/sh/sh-protos.h (sh_check_add_incdec_notes): Declare it.
16947         * config/sh/predicates.md (const_logical_operand): New predicate.
16948         * config/sh/sh.md: Add new peephole2 patterns.
16949
16950 2015-02-26  Marek Polacek  <polacek@redhat.com>
16951
16952         PR ipa/65008
16953         * ipa-inline.c (early_inliner): Recompute inline parameters.
16954
16955 2015-02-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16956
16957         PR target/65171
16958         * config/rs6000/rs6000.c (rs6000_analyze_swaps): Ensure
16959         instructions with TImode operands are included in the analysis.
16960
16961 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
16962
16963         * tree-ssa-threadupdate.c (dump_jump_thread_path): Print all edges
16964         of an EDGE_FSM_THREAD.
16965
16966 2015-02-25  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
16967
16968         * config/rs6000/htm.md (tcheck): Fix assembly encoding.
16969
16970 2015-02-25  Aldy Hernandez  <aldyh@redhat.com>
16971
16972         PR debug/46102
16973         * dwarf2out.c (dwarf2out_init): Disable -feliminate-dwarf2-dups.
16974
16975 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
16976
16977         PR tree-optimization/65048
16978         * tree-ssa-threadupdate.c (valid_jump_thread_path): New.
16979         (thread_through_all_blocks): Call valid_jump_thread_path.
16980         Remove invalid FSM jump-thread paths.
16981
16982 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
16983
16984         * passes.c (ipa_write_summaries_1): Call lto_output_init_mode_table.
16985         (ipa_write_optimization_summaries): Likewise.
16986         * tree-streamer.h: Include data-streamer.h.
16987         (streamer_mode_table): Declare extern variable.
16988         (bp_pack_machine_mode, bp_unpack_machine_mode): New inline functions.
16989         * lto-streamer-out.c (lto_output_init_mode_table,
16990         lto_write_mode_table): New functions.
16991         (produce_asm_for_decls): Call lto_write_mode_table when streaming
16992         offloading LTO.
16993         * lto-section-in.c (lto_section_name): Add "mode_table" entry.
16994         (lto_create_simple_input_block): Add mode_table argument to the
16995         lto_input_block constructors.
16996         * ipa-prop.c (ipa_prop_read_section, read_replacements_section):
16997         Likewise.
16998         * data-streamer-in.c (string_for_index): Likewise.
16999         * ipa-inline-analysis.c (inline_read_section): Likewise.
17000         * ipa-icf.c (sem_item_optimizer::read_section): Likewise.
17001         * lto-cgraph.c (input_cgraph_opt_section): Likewise.
17002         * lto-streamer-in.c (lto_read_body_or_constructor,
17003         lto_input_toplevel_asms): Likewise.
17004         (lto_input_mode_table): New function.
17005         * tree-streamer-out.c (pack_ts_fixed_cst_value_fields,
17006         pack_ts_decl_common_value_fields, pack_ts_type_common_value_fields):
17007         Use bp_pack_machine_mode.
17008         * real.h (struct real_format): Add name field.
17009         * lto-streamer.h (enum lto_section_type): Add LTO_section_mode_table.
17010         (class lto_input_block): Add mode_table member.
17011         (lto_input_block::lto_input_block): Add mode_table_ argument,
17012         initialize mode_table.
17013         (struct lto_file_decl_data): Add mode_table field.
17014         (lto_input_mode_table, lto_output_init_mode_table): New prototypes.
17015         * tree-streamer-in.c (unpack_ts_fixed_cst_value_fields,
17016         unpack_ts_decl_common_value_fields,
17017         unpack_ts_type_common_value_fields): Call bp_unpack_machine_mode.
17018         * tree-streamer.c (streamer_mode_table): New variable.
17019         * real.c (ieee_single_format, mips_single_format,
17020         motorola_single_format, spu_single_format, ieee_double_format,
17021         mips_double_format, motorola_double_format,
17022         ieee_extended_motorola_format, ieee_extended_intel_96_format,
17023         ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format,
17024         ibm_extended_format, mips_extended_format, ieee_quad_format,
17025         mips_quad_format, vax_f_format, vax_d_format, vax_g_format,
17026         decimal_single_format, decimal_double_format, decimal_quad_format,
17027         ieee_half_format, arm_half_format, real_internal_format): Add name
17028         field.
17029         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
17030
17031 2015-02-26  Yuri Rumyantsev  <ysrumyan@gmail.com>
17032
17033         PR target/65161
17034         * config/i386/i386.c (ix86_sched_reorder): Skip instruction
17035         reordering for selective scheduling.
17036
17037 2015-02-26  Terry Guo  <terry.guo@arm.com>
17038
17039         * config/arm/arm-cores.def (cortex-m7): Add flag FL_NO_VOLATILE_CE.
17040         * config/arm/arm-protos.h (FL_NO_VOLATILE_CE): New flag.
17041         (arm_arch_no_volatile_ce): Declare new global variable.
17042         * config/arm/arm.c (arm_arch_no_volatile_ce): New global variable.
17043         (arm_option_override): Assign value to arm_arch_no_volatile_ce.
17044         * config/arm/arm.h (arm_arch_no_volatile_ce): Declare it.
17045         (TARGET_NO_VOLATILE_CE): New macro.
17046         * config/arm/arm.md (arm_comparison_operator): Disabled if not allow
17047         volatile memory access in IT block
17048
17049 2015-02-25  Kai Tietz  <ktietz@redhat.com>
17050
17051         PR tree-optimization/61917
17052         * tree-vect-loop.c (vectorizable_reduction): Handle obvious case
17053         that reduc_def_stmt is null.
17054
17055 2015-02-25  Martin Liska  <mliska@suse.cz>
17056
17057         * ipa-icf-gimple.c (func_checker::compare_variable_decl): Compare
17058         hard register variables.
17059
17060 2015-02-25  Kai Tietz  <ktietz@redhat.com>
17061
17062         PR target/64212
17063         * symtab.c (symtab::make_decl_local): Set DECL_IMPORT_P explicit to 0.
17064         (symtab::noninterposable_alias): Likewise.
17065
17066 2015-02-25  Ilya Enkovich  <ilya.enkovich@intel.com>
17067
17068         PR target/65167
17069         * gcc/config/i386/i386.c (ix86_function_arg_regno_p): Support
17070         bounds registers.
17071         (avoid_func_arg_motion): Add dependencies for BNDSTX insns.
17072
17073 2015-02-25  Alan Lawrence  <alan.lawrence@arm.com>
17074
17075         PR target/64997
17076         * config/aarch64/aarch64.md (*xor_one_cmpl<mode>3): Use FP_REGNUM_P
17077         as split condition; force split via '#' in output pattern.
17078
17079 2015-02-25  Richard Biener  <rguenther@suse.de>
17080             Kai Tietz  <ktietz@redhat.com>
17081
17082         PR tree-optimization/61917
17083         * tree-vect-loop.c (vectorizable_reduction): Allow
17084         vect_internal_def without reduction to exit graceful.
17085
17086 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
17087
17088         PR target/65196
17089         * config/avr/avr.c (avr_adjust_insn_length): Call recog_memoized
17090         only with NONDEBUG_INSN_P.
17091
17092 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
17093
17094         Use variadic macros with avr-log.c.
17095
17096         * config/avr/avr-protos.h (avr_vdump): New prototype.
17097         (avr_log_set_caller_e, avr_log_set_caller_f): Remove protos.
17098         (avr_edump, avr_fdump, avr_dump): (Re)define to use avr_vdump.
17099         * config/avr/avr-log.c: Adjust comments.
17100         (avr_vdump): New function.
17101         (avr_vadump): Pass caller as 2nd argument instead of format string.
17102         (avr_log_caller, avr_log_fdump_e, avr_log_fdump_f)
17103         (avr_log_set_caller_e, avr_log_set_caller_f): Remove.
17104
17105 2015-02-25  Jakub Jelinek  <jakub@redhat.com>
17106
17107         PR lto/64374
17108         * target.def (target_option_stream_in): New target hook.
17109         * tree-streamer-in.c (streamer_read_tree_bitfields): Invoke
17110         targetm.target_option.post_stream_in if non-NULL.
17111         * doc/tm.texi.in: Add @hook TARGET_OPTION_POST_STREAM_IN.
17112         * doc/tm.texi: Updated.
17113         * config/i386/i386.c (ix86_function_specific_post_stream_in): New
17114         function.
17115         (TARGET_OPTION_POST_STREAM_IN): Redefine.
17116
17117 2015-02-24  Jeff Law  <law@redhat.com>
17118
17119         PR target/65117
17120         * config/xtensa/xtensa.md (zero_cost_loop_start): Reverse numbering
17121         of operand 0 and operand 2.
17122         (zero_cost_loop_end, loop_end): Similarly.
17123
17124 2015-02-24  Aldy Hernandez  <aldyh@redhat.com>
17125
17126         * gimple.h (gimple_build_assign): Rename CXX_MEM_STAT_DECL to
17127         CXX_MEM_STAT_INFO.
17128
17129 2015-02-24  DJ Delorie  <dj@redhat.com>
17130
17131         * config/rl78/rl78-protos.h (rl78_split_movsi): Accept a mode as well.
17132         * config/rl78/rl78-expand.md (movsf): New, same as movsi.
17133         * config/rl78/rl78.c (rl78_split_movsi): Accept a mode, use it
17134         instead of hardcoding SImode.
17135
17136 2015-02-24  Bernd Schmidt  <bernds@codesourcery.com>
17137
17138         * omp-low.c (create_omp_child_function): Tag entrypoint
17139         functions with a special attribute.
17140
17141 2015-02-24  Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
17142
17143         PR target/65058
17144         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Drop unused variable.
17145
17146 2015-02-24  Vladimir Makarov  <vmakarov@redhat.com>
17147
17148         PR rtl-optimization/65123
17149         * lra-remat.c (operand_to_remat): Check hard regs in insn
17150         definition too.
17151
17152 2015-02-24  Nick Clifton  <nickc@redhat.com>
17153
17154         * config/v850/v850.h (ASM_SPEC): Pass -msoft-float/-mhard-float on
17155         to the assembler.
17156
17157 2015-02-24  Thomas Schwinge  <thomas@codesourcery.com>
17158
17159         PR libgomp/64625
17160         * omp-builtins.def (BUILT_IN_GOACC_DATA_START): Specify as
17161         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR, not
17162         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR.
17163         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_UPDATE): Specify as
17164         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR, not
17165         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR.
17166         (BUILT_IN_GOACC_PARALLEL): Specify as
17167         BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR, not
17168         BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR.
17169         * builtin-types.def
17170         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
17171         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
17172         Remove function types.
17173         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR)
17174         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR)
17175         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
17176         New function types.
17177
17178 2015-02-24  Georg-Johann Lay  <avr@gjlay.de>
17179
17180         * config/avr/stdfix.h [__WITH_AVRLIBC__]: Include <stdfix-avrlibc.h>.
17181
17182 2015-02-24  Jakub Jelinek  <jakub@redhat.com>
17183
17184         PR tree-optimization/65170
17185         * wide-int.cc (wi::mul_internal): For the umul_ppmm optimization,
17186         if val[1] < 0, clear also val[2] and return 3.
17187
17188 2015-02-24  Alan Modra  <amodra@gmail.com>
17189
17190         PR target/65172
17191         * config/rs6000/rs6000.c (get_memref_parts): Only return true
17192         when *base is a reg.  Handle nested plus addresses.  Simplify
17193         pre_modify test.
17194
17195 2015-02-22  Max Filippov  <jcmvbkbc@gmail.com>
17196
17197         * config/xtensa/xtensa.h (CONSTANT_ALIGNMENT, DATA_ALIGNMENT):
17198         use natural alignment when optimizing for size.
17199
17200 2015-02-23  Kaz Kojima  <kkojima@gcc.gnu.org>
17201
17202         PR target/65153
17203         * config/sh/sh.md (movsicc_true+3): Remove peephole.
17204         * config/sh/sh-protos.h (replace_n_hard_rtx): Don't declare.
17205         * config/sh/sh.c (replace_n_hard_rtx): Remove.
17206
17207 2015-02-23  Richard Sandiford  <richard.sandiford@arm.com>
17208
17209         PR fortran/63427
17210         * wide-int.cc (wi::from_mpz): Cope with unwrapped values that are
17211         too big for a wide_int.  Implement missing wrapping operation.
17212
17213 2015-02-23  Oleg Endo  <olegendo@gcc.gnu.org>
17214
17215         PR target/65163
17216         * config/sh/sh.md (swapbsi2, related peephole2): Use const_int -65536
17217         instead of const_int 4294901760.
17218
17219 2015-02-23  Georg-Johann Lay  <avr@gjlay.de>
17220
17221         * config/avr/t-avr: Fix typo in comment.
17222
17223 2015-02-21  Richard Sandiford  <richard.sandiford@arm.com>
17224
17225         * doc/rtl.texi (fma): Clarify documentation.
17226
17227 2015-02-20  Aldy Hernandez  <aldyh@redhat.com>
17228
17229         PR debug/58123
17230         * gimplify.c (gimplify_expr): Prefer location of TRY_FINALLY_EXPR
17231         over input_location.
17232
17233 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
17234
17235         * tree-streamer-in.c (unpack_ts_decl_common_value_fields,
17236         unpack_ts_type_common_value_fields): If ACCEL_COMPILER,
17237         restrict alignments to absolute_biggest_alignment.
17238         * config/i386/i386.c (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT):
17239         Define.
17240         * doc/tm.texi.in (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT): Add.
17241         * doc/tm.texi: Regenerate.
17242         * target.def (absolute_biggest_alignment): New DEFHOOKPOD.
17243
17244 2015-02-20  Vladimir Makarov  <vmakarov@redhat.com>
17245
17246         PR target/64172
17247         * ira-color.c (color_pass): Prevent splitting multi-register pseudos.
17248
17249 2015-02-20  Richard Biener  <rguenther@suse.de>
17250
17251         PR tree-optimization/65136
17252         * tree-ssa-propagate.c: Include cfgloop.h.
17253         (replace_phi_args_in): Avoid replacing loop latch edge PHI
17254         arguments with constants.
17255
17256 2015-02-20  Jakub Jelinek  <jakub@redhat.com>
17257             Martin Liska  <mliska@suse.cz>
17258
17259         PR target/63892
17260         * ipa-icf.c (sem_function::merge): If DECL_COMDAT_GROUP (alias->decl),
17261         don't try to create_thunk if stdarg_p.  If
17262         !sem_item::target_supports_symbol_aliases_p (), similarly, and try to
17263         redirect_callers if possible.
17264         (sem_item_optimizer::execute): Call unregister_hooks here...
17265         (ipa_icf_driver): ... instead of here.
17266
17267 2015-02-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17268
17269         * config/aarch64/aarch64.md (*aarch64_lshr_sisd_or_int_<mode>3):
17270         Mark operand 0 as earlyclobber in 2nd alternative.
17271         (1st define_split below *aarch64_lshr_sisd_or_int_<mode>3):
17272         Write negated shift amount into QI lowpart operand 0 and use it
17273         in the shift step.
17274         (2nd define_split below *aarch64_lshr_sisd_or_int_<mode>3): Likewise.
17275
17276 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
17277
17278         * cgraph.h (clone_function_name_1): Declare.
17279         * cgraphclones.c (clone_function_name_1): New function.
17280         (clone_function_name): Use it.
17281         * lto-partition.c: Include "stringpool.h".
17282         (must_not_rename, maybe_rewrite_identifier)
17283         (validize_symbol_for_target): New static functions.
17284         (privatize_symbol_name): Use must_not_rename.
17285         (promote_symbol): Call validize_symbol_for_target.
17286         (lto_promote_cross_file_statics): Likewise.
17287         (lto_promote_statics_nonwpa): Likewise.
17288
17289 2015-02-20  Georg-Johann Lay  <avr@gjlay.de>
17290
17291         PR target/64452
17292         * config/avr/avr.md (pushhi_insn): New insn.
17293         (push<mode>1): Push virtual regs in one chunk using pushhi1_insn.
17294
17295 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
17296             Jakub Jelinek  <jakub@redhat.com>
17297
17298         * tree-streamer.c (preload_common_nodes): Don't preload
17299         TI_VA_LIST* for offloading.
17300         * tree-stdarg.c (pass_stdarg::gate): Disable for ACCEL_COMPILER
17301         in_lto_p.
17302
17303 2015-02-19  John David Anglin  <danlgin@gcc.gnu.org>
17304
17305         * config/pa/pa.c (pa_emit_move_sequence): Always force
17306         (const (plus (symbol) (const_int))) to const mem.  Put REG_EQUAL
17307         note on insn.
17308
17309         * config/pa/pa.c (pa_reloc_rw_mask): New function.
17310         (TARGET_ASM_RELOC_RW_MASK): Define.
17311         (pa_cannot_force_const_mem): Revert previous change.
17312
17313 2015-02-19  Martin Jambor  <mjmabor@suse.cz>
17314             Jan Hubicka  <hubicka@ucw.cz>
17315
17316         PR ipa/65028
17317         * ipa-cp.c (propagate_alignment_accross_jump_function): Fix propagation
17318         across jump functions.
17319
17320 2015-02-19  Uros Bizjak  <ubizjak@gmail.com>
17321
17322         * config/alpha/alpha.c (alpha_in_small_data_p): Reject common symbols.
17323
17324 2015-02-19  Sandra Loosemore  <sandra@codesourcery.com>
17325
17326         * doc/extend.texi (x86 transactional memory intrinsics): Copy-edit.
17327
17328 2015-02-19  Richard Henderson  <rth@redhat.com>
17329
17330         PR middle-end/65074
17331         * varasm.c (default_binds_local_p_2): Don't test node->definition;
17332         test DECL_EXTERNAL independent of symtab_node.
17333
17334 2015-02-19  Jakub Jelinek  <jakub@redhat.com>
17335
17336         PR lto/65012
17337         * varpool.c (varpool_node::get_constructor): Return early
17338         if this->lto_file_data is NULL.
17339
17340 2015-02-19  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
17341
17342         * haifa-sched.c (enum rfs_decision, rfs_str): Remove RFS_DEBUG.
17343         (rank_for_schedule_debug): Update.
17344         (ready_sort): Make static.  Move sorting logic to ...
17345         (ready_sort_debug, ready_sort_real): New static functions.
17346         (schedule_block): Sort both debug insns and real insns in preparation
17347         for ready list trimming.  Improve debug output.
17348         * sched-int.h (ready_sort): Remove global declaration.
17349
17350 2015-02-18  Trevor Saunders  <tsaunders@mozilla.com>
17351
17352         * ipa-icf.c (sem_function::equals_private): Adjust.
17353         (sem_function::bb_dict_test): Take a vec<int> * instead of
17354         auto_vec<int>.
17355         * ipa-icf.h (bb_dict_test): Likewise.
17356
17357 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
17358
17359         PR gcov-profile/64634
17360         * tree-eh.c (frob_into_branch_around): Fix up typos
17361         in function comment.
17362         (lower_catch): Put eh_seq resulting from EH lowering of
17363         the cleanup sequence after the cleanup rather than before it.
17364
17365 2015-02-18  Tom de Vries  <tom@codesourcery.com>
17366
17367         * common.opt (fstdarg-opt): New option.
17368         * tree-stdarg.c (pass_stdarg::gate): Use flag_stdarg_opt.
17369         * doc/invoke.texi (@item Optimization Options): Add -fstdarg-opt.
17370         (@item -fstdarg-opt): New item.
17371
17372 2015-02-18  H.J. Lu  <hongjiu.lu@intel.com>
17373
17374         PR target/65064
17375         * config/ia64/predicates.md (sdata_symbolic_operand): Return false
17376         for common symbols.
17377
17378 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
17379
17380         * config/i386/t-intelmic (mkoffload.o): Remove dependency on
17381         insn-modes.h.
17382         (ALL_HOST_OBJS): Add mkoffload.o.
17383         * config/nvptx/t-nvptx (ALL_HOST_OBJS): Likewise.
17384
17385 2015-02-18  Jan Hubicka  <hubicka@ucw.cz>
17386
17387         * ipa-devirt.c (odr_subtypes_equivalent_p): Fix formating.
17388         (compare_virtual_tables): Be smarter about skipping typeinfos;
17389         do sane output on virtual table table mismatch.
17390         (warn_odr): Be ready for forward declarations of enums;
17391         output sane info on base mismatch and virtual table mismatch.
17392         (add_type_duplicate): Fix code choosing prevailing type; do not ICE
17393         when only one type is polymorphic.
17394         (get_odr_type): Fix hashtable corruption.
17395         (dump_odr_type): Dump mangled names.
17396
17397 2015-02-18  Richard Biener  <rguenther@suse.de>
17398
17399         PR tree-optimization/65063
17400         * tree-predcom.c (determine_unroll_factor): Return 1 if we
17401         have replaced looparound PHIs.
17402
17403 2015-02-18  Martin Liska  <mliska@suse.cz>
17404
17405         * lto-streamer.c (lto_streamer_init): Encapsulate
17406         streamer_check_handled_ts_structures with checking macro.
17407
17408 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
17409
17410         PR ipa/65087
17411         * cgraphclones.c (cgraph_node::create_virtual_clone): Only copy
17412         section if !implicit_section.
17413         (cgraph_node::create_version_clone_with_body): Likewise.
17414         * trans-mem.c (ipa_tm_create_version): Likewise.
17415
17416 2015-02-18  Richard Biener  <rguenther@suse.de>
17417
17418         PR tree-optimization/62217
17419         * tree-ssa-dom.c (cprop_operand): Avoid propagating copies
17420         into BIVs.
17421
17422 2015-02-18  Marek Polacek  <polacek@redhat.com>
17423
17424         PR sanitizer/65081
17425         * ubsan.c (OBJSZ_MAX_OFFSET): Define.
17426         (ubsan_expand_objsize_ifn): Don't emit run-time check if the offset
17427         is in range [-16K, -1].  Don't issue run-time error if
17428         (ptr > ptr + offset).
17429
17430 2015-02-18  Thomas Schwinge  <thomas@codesourcery.com>
17431
17432         * doc/install.texi (nvptx-*-none): New section.
17433         * doc/invoke.texi (Nvidia PTX Options): Likewise.
17434         * config/nvptx/nvptx.opt: Update.
17435
17436         * config/nvptx/mkoffload.c (parse_env_var, free_array_of_ptrs)
17437         (access_check): New functions, copied from
17438         config/i386/intelmic-mkoffload.c.
17439         (main): For non-installed testing, look in all COMPILER_PATHs for
17440         GCC_INSTALL_NAME.
17441
17442         * config/nvptx/nvptx.h (GOMP_SELF_SPECS): Define macro.
17443
17444 2015-02-18  Andrew Pinski  <apinski@cavium.com>
17445             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
17446
17447         * config/aarch64/aarch64.c (*aarch64_load_symref_appropriately):
17448         Check whether the destination of SYMBOL_SMALL_TPREL is Pmode.
17449
17450 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
17451
17452         * ipa-visibility.c (function_and_variable_visibility): Only
17453         check locality if node is not already local.
17454         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
17455         call_for_symbol_and_aliases instead of
17456         call_for_symbol_thunks_and_aliases.
17457         (ipa_inline): Likewise.
17458         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
17459         first walk aliases.
17460         * ipa.c (symbol_table::remove_unreachable_nodes): Use
17461         call_for_symbol_and_aliases.
17462         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
17463         (ipa_propagate_frequency_1): Use it; use opt_for_fn
17464         (ipa_propagate_frequency): Update.
17465         (ipa_profile): Add opt_for_fn gueards.
17466
17467 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
17468
17469         * config/sh/sh.opt (mcbranch-force-delay-slot): New option.
17470         * doc/invoke.texi (SH options): Document it.
17471         * config/sh/sh.c (sh_insn_length_adjustment): Check
17472         TARGET_CBRANCH_FORCE_DELAY_SLOT instead of sh_cpu_attr == CPU_SH2E.
17473
17474 2015-02-17  H.J. Lu  <hongjiu.lu@intel.com>
17475
17476         * common.opt (fipa-cp-alignment): New.
17477         * ipa-cp.c (ipcp_store_alignment_results): Check
17478         flag_ipa_cp_alignment.
17479         * opts.c (default_options_table): Enable -fipa-cp-alignment for
17480         -O2.
17481         (enable_fdo_optimizations): Set x_flag_ipa_cp_alignment.
17482         * doc/invoke.texi: Document -fipa-cp-alignment.
17483
17484 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
17485
17486         PR target/64793
17487         * config/sh/sh.md (cbranch define_delay): Set annulled true branch insn
17488         to nil.  Adjust comments.
17489
17490 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
17491
17492         * ipa-visibility.c (function_and_variable_visibility): Only
17493         check locality if node is not already local.
17494         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
17495         call_for_symbol_and_aliases instead of
17496         call_for_symbol_thunks_and_aliases.
17497         (ipa_inline): Likewise.
17498         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
17499         first walk aliases.
17500         * ipa.c (symbol_table::remove_unreachable_nodes): Use
17501         call_for_symbol_and_aliases.
17502         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
17503         (ipa_propagate_frequency_1): Use it; use opt_for_fn
17504         (ipa_propagate_frequency): Update.
17505         (ipa_profile): Add opt_for_fn guards.
17506
17507 2015-02-17  Thomas Schwinge  <thomas@codesourcery.com>
17508
17509         * config/nvptx/mkoffload.c (parse_file): Fix logic error in
17510         skipping of "strange" tokens.
17511
17512 2015-02-17  Jeff Law  <law@redhat.com>
17513
17514         * tree-vrp.c (identify_jump_threads): Use last_stmt.  Remove
17515         obsolete comment.
17516
17517 2015-02-17  James Greenhalgh  <james.greenhalgh@arm.com>
17518
17519         * haifa-sched.c (recompute_todo_spec): Treat SCHED_GROUP_P
17520         as forcing a HARD_DEP between instructions, thereby
17521         disallowing rewriting to break dependencies.
17522
17523 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
17524
17525         * symtab.c (symtab_node::verify_base): Verify body_removed->!definiton
17526         * lto-cgraph.c (lto_output_varpool_node): Do not keep definition of
17527         variables in boundary that have no inlitalizer encoded and are
17528         not aliases.
17529         * varasm.c (default_binds_local_p_2): External definitions do not
17530         count as definitions here.
17531
17532 2015-02-16  Jeff Law  <law@redhat.com>
17533
17534         PR tree-optimization/64823
17535         * tree-vrp.c (identify_jump_threads): Handle blocks with no real
17536         statements.
17537         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
17538         threading through blocks with PHIs, but no statements.
17539         (thread_through_normal_block): Distinguish between blocks where
17540         we did not process all the statements and blocks with no statements.
17541
17542 2015-02-16  Jakub Jelinek  <jakub@redhat.com>
17543             James Greenhalgh  <james.greenhalgh@arm.com>
17544
17545         PR ipa/64963
17546         * cgraphclones.c (cgraph_node::create_virtual_clone): Copy
17547         section if not linkonce.  Fix up formatting.
17548         (cgraph_node::create_version_clone_with_body): Copy section.
17549         * trans-mem.c (ipa_tm_create_version): Likewise.
17550
17551 2015-02-16  Richard Biener  <rguenther@suse.de>
17552
17553         PR tree-optimization/65077
17554         * tree-ssa-structalias.c (get_constraint_for_1): Handle
17555         IMAGPART_EXPR, REALPART_EXPR and BIT_FIELD_REF.
17556         (find_func_aliases): Allow float values to carry pointers again.
17557
17558 2015-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
17559
17560         * doc/install.texi (Specific): Reorder targets list to put
17561         aarch64 in alphabetical order.  Add a link to aarch64*-*-*
17562         from the top menu.
17563
17564 2015-02-16  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
17565             David Edelsohn  <dje.gcc@gmail.com>
17566
17567         PR target/65058
17568         * config/rs6000/rs6000.c (rs6000_output_symbol_ref): Append storage
17569         mapping class to external variable or function reference.
17570         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Do not append storage
17571         mapping class.
17572
17573 2015-02-16  David Eelsohn  <dje.gcc@gmail.com>
17574
17575         PR target/53348
17576         * config/rs6000/rs6000.c (rs6000_declare_alias): Only use
17577         ASM_WEAKEN_DECL if defined.
17578
17579 2015-02-16  Richard Biener  <rguenther@suse.de>
17580
17581         PR lto/65015
17582         * varasm.c (default_file_start): For LTO produced units
17583         emit <artificial> as file directive.
17584
17585 2015-02-16  Richard Biener  <rguenther@suse.de>
17586
17587         PR tree-optimization/63593
17588         * tree-predcom.c (execute_pred_commoning_chain): Delay removing
17589         stmts and releasing SSA names until...
17590         (execute_pred_commoning): ... after processing all chains.
17591
17592 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
17593
17594         PR ipa/65059
17595         * ipa-comdats.c (ipa_comdats): Do not categorize thunks to
17596         external functions.
17597
17598 2015-02-15  Sandra Loosemore  <sandra@codesourcery.com>
17599
17600         * doc/bugreport.texi: Adjust section titles throughout the file
17601         to use "Title Case".
17602         * doc/extend.texi: Likewise.
17603         * doc/gcov.texi: Likewise.
17604         * doc/implement-c.texi: Likewise.
17605         * doc/implement-cxx.texi: Likewise.
17606         * doc/invoke.texi: Likewise.
17607         * doc/objc.texi: Likewise.
17608         * doc/standards.texi: Likewise.
17609         * doc/trouble.texi: Likewise.
17610
17611 2015-02-15  Jan Hubicka  <hubicka@ucw.cz>
17612
17613         * cgraph.h (symtab_node::has_aliases_p): Simplify.
17614         (symtab_node::call_for_symbol_and_aliases): Use has_aliases_p
17615         * tree.c (lookup_binfo_at_offset): Make static.
17616         (get_binfo_at_offset): Do not shadow offset; add explanatory
17617         comment.
17618
17619 2015-02-15  John David Anglin  <danglin@gcc.gnu.org>
17620
17621         * config/pa/pa.c (pa_secondary_reload): Request a secondary reload
17622         for all floading point loads and stores except those using a register
17623         index address.
17624         * config/pa/pa.md: Add new patterns to load a lo_sum DLT operand
17625         to a register.
17626
17627 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
17628
17629         * ipa-inline-analysis.c (growth_data): Add uninlinable field.
17630         (do_estimate_growth_1): Record if any uninlinable edge was seen.
17631         (estimate_growth): Handle uninlinable edges correctly.
17632         (check_callers): New.
17633         (growth_likely_positive): Handle aliases correctly.
17634
17635 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
17636
17637         * ipa-chkp.c: Use iterate_direct_aliases.
17638         * symtab.c (resolution_used_from_other_file_p): Move inline.
17639         (symtab_node::create_reference): Fix formating.
17640         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
17641         (symtab_node::iterate_reference): Move inline.
17642         (symtab_node::iterate_referring): Move inline.
17643         (symtab_node::iterate_direct_aliases): Move inline.
17644         (symtab_node::used_from_object_file_p_worker): Inline into ...
17645         (symtab_node::used_from_object_file_p): ... this one; move inline.
17646         (symtab_node::call_for_symbol_and_aliases): Move inline;
17647         use iterate_direct_aliases.
17648         (symtab_node::call_for_symbol_and_aliases_1): New method.
17649         (cgraph_node::call_for_symbol_and_aliases): Move inline;
17650         use iterate_direct_aliases.
17651         (cgraph_node::call_for_symbol_and_aliases_1): New method.
17652         (varpool_node::call_for_node_and_aliases): Rename to ...
17653         (varpool_node::call_for_symbol_and_aliases): ... this one; Move inline;
17654         use iterate_direct_aliases.
17655         (varpool_node::call_for_symbol_and_aliases_1): New method.
17656         * ipa.c (ipa_single_use): Use iterate_direct_aliases.
17657         (ipa_discover_readonly_nonaddressable_var): Update.
17658         * ipa-devirt.c: Fix formating.
17659         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_and_refs_p):
17660         Move inline.
17661         (cgraph_node::call_for_symbol_and_aliases): Move inline.
17662         (cgraph_node::call_for_symbol_and_aliases_1): New function..
17663         * cgraph.h (used_from_object_file_p_worker): Remove.
17664         (resolution_used_from_other_file_p): Move inline.
17665         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
17666         (symtab_node::iterate_reference): Move inline.
17667         (symtab_node::iterate_referring): Move inline.
17668         (symtab_node::iterate_direct_aliases): Move inline.
17669         (symtab_node::used_from_object_file_p_worker): Inline into ...
17670         (symtab_node::used_from_object_file_p): Move inline.
17671         * tree-emutls.c (ipa_lower_emutls): Update.
17672         * varpool.c (varpool_node::call_for_symbol_and_aliases_1): New method.
17673         (varpool_node::call_for_node_and_aliases): Remove.
17674
17675 2015-02-14  Jakub Jelinek  <jakub@redhat.com>
17676
17677         PR tree-optimization/62209
17678         * tree-ssa-reassoc.c (update_range_test): If stmt is a PHI and
17679         op == range->exp, insert seq and gimplified code after labels
17680         instead of after the phi.
17681
17682 2015-02-13  Jeff Law  <law@redhat.com>
17683
17684         PR bootstrap/65060
17685         Revert my change for tree-optimization/64823.
17686
17687 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
17688
17689         PR tree-optimization/65053
17690         * tree-ssa-phiopt.c (value_replacement): When moving assign before
17691         cond, either reset VR on lhs or set it to phi result VR.
17692
17693 2015-02-13  Jeff Law  <law@redhat.com>
17694
17695         PR tree-optimization/64823
17696         * tree-vrp.c (identify_jump_threads): Handle blocks with no statements.
17697         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
17698         threading through blocks with PHIs, but no statements.
17699         (thread_through_normal_block): Distinguish between blocks where
17700         we did not process all the statements and blocks with no statements.
17701
17702         PR rtl-optimization/47477
17703         * match.pd (convert (plus/minus (convert @0) (convert @1): New
17704         simplifier to narrow arithmetic.
17705
17706 2015-02-13  Jan Hubicka  <hubicka@ucw.cz>
17707
17708         PR ipa/65028
17709         * ipa-prop.c (update_indirect_edges_after_inlining): Do not drop
17710         polymorphic call info when type is not known to be preserved.
17711
17712 2015-02-13  Maritn Jambor  <mjambor@suse.cz>
17713
17714         PR ipa/65028
17715         * ipa-inline-transform.c (mark_all_inlined_calls_cdtor): New function.
17716         (inline_call): Use it.
17717
17718 2015-02-13  Thomas Schwinge  <thomas@codesourcery.com>
17719
17720         * config/nvptx/offload.h (ACCEL_COMPILER_acc_device): Define to
17721         GOMP_DEVICE_NVIDIA_PTX.
17722
17723 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
17724
17725         PR ipa/65034
17726         * stmt.c (emit_case_nodes): Use void_type_node instead of
17727         NULL_TREE as LABEL_DECL type.
17728
17729 2015-02-13  John David Anglin  <danglin@gcc.gnu.org>
17730
17731         * config/pa/constraints.md: Change "Q" and "T" constraints to memory
17732         constraints.
17733         * config/pa/pa.c (pa_cannot_force_const_mem): Don't allow constant
17734         symbolic references to data to be forced to constant memory on the
17735         SOM target.
17736
17737 2015-02-13  Ilya Enkovich  <ilya.enkovich@intel.com>
17738
17739         PR tree-optimization/65002
17740         * tree-cfg.c (pass_data_fixup_cfg): Don't update
17741         SSA on start.
17742         * tree-sra.c (some_callers_have_no_vuse_p): New.
17743         (ipa_early_sra): Reject functions whose callers
17744         assume function is read only.
17745
17746 2015-02-13  Richard Biener  <rguenther@suse.de>
17747
17748         PR lto/65015
17749         * dwarf2out.c (dwarf2out_finish): Use <artificial> as DW_AT_name
17750         for LTO produced CUs.
17751
17752 2015-02-13  Bin Cheng  <bin.cheng@arm.com>
17753
17754         PR tree-optimization/64705
17755         * tree-ssa-loop-niter.h (expand_simple_operations): New parameter.
17756         * tree-ssa-loop-niter.c (expand_simple_operations): New parameter.
17757         * tree-ssa-loop-ivopts.c (extract_single_var_from_expr): New.
17758         (find_bivs, find_givs_in_stmt_scev): Pass new argument to
17759         expand_simple_operations.
17760
17761 2015-02-13  H.J. Lu  <hongjiu.lu@intel.com>
17762             Richard Henderson  <rth@redhat.com>
17763
17764         PR rtl/32219
17765         * cgraphunit.c (cgraph_node::finalize_function): Set definition
17766         before notice_global_symbol.
17767         (varpool_node::finalize_decl): Likewise.
17768         * varasm.c (default_binds_local_p_2): Rename from
17769         default_binds_local_p_1, add weak_dominate argument.  Use direct
17770         returns instead of assigning to local variable.  Unify varpool and
17771         cgraph paths via symtab_node.  Reject undef weak variables before
17772         testing visibility.  Reorder tests for simplicity.
17773         (default_binds_local_p): Use default_binds_local_p_2.
17774         (default_binds_local_p_1): Likewise.
17775         (decl_binds_to_current_def_p): Unify varpool and cgraph paths
17776         via symtab_node.
17777         (default_elf_asm_output_external): Emit visibility when specified.
17778
17779 2015-02-13  Alan Modra  <amodra@gmail.com>
17780
17781         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Fix typo in
17782         code setting up r11 for out-of-line fp restore.
17783
17784 2015-02-13  Eric Botcazou  <ebotcazou@adacore.com>
17785
17786         * config/visium/visium.opt (msv-mode): Add RejectNegative and Report.
17787         (muser-mode): Likewise.
17788
17789 2015-02-13  Alan Modra  <amodra@gmail.com>
17790
17791         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Use addsi3_carry
17792         or adddi3_carry when restoring frame_reg_rtx from r0 after restvr.
17793
17794 2015-02-12  David Howells  <dhowells@redhat.com>
17795
17796         * tree-sra.c (dump_dereferences_table): Avoid -Wformat-security
17797         warning.
17798         * tree-ssa-uninit.c (dump_predicates): Likewise.
17799         * opts.c (print_filtered_help): Likewise.
17800
17801 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
17802
17803         * dwarf2out.c (output_die): Use "%s", name instead of name to
17804         avoid -Wformat-security warning.
17805
17806         * dwarf2asm.c (dw2_asm_output_vms_delta): Only define
17807         if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
17808         * dwarf2out.c (output_die): Use dw2_asm_output_vms_delta
17809         only if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
17810
17811 2015-02-12  Jason Merrill  <jason@redhat.com>
17812
17813         * common.opt (-flifetime-dse): New.
17814
17815 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
17816
17817         PR sanitizer/65019
17818         * ubsan.c (ubsan_expand_objsize_ifn): Always return true.
17819
17820         PR tree-optimization/65014
17821         * fold-const.c (fold_binary_loc): When creating {L,R}ROTATE_EXPR,
17822         use original second operand of arg0 or arg1 instead of
17823         that adjusted by STRIP_NOPS.
17824
17825 2015-02-11  Jeff Law  <law@redhat.com>
17826
17827         PR target/63347
17828         * haifa-sched.c (prune_ready_list): If we have a SCHED_GROUP_P insn
17829         that needs to be queued, just queue it for a single cycle.
17830
17831 2015-02-11  Jan Hubicka  <hubicka@ucw.cz>
17832
17833         * ipa.c (symbol_table::remove_unreachable_nodes): Avoid releasing
17834         bodies of thunks; comment on why.
17835         * symtab.c (symtab_node::get_partitioning_class): Aliases of extern
17836         symbols are extern.
17837
17838 2015-02-11  Richard Henderson  <rth@redhat.com>
17839
17840         PR sanitize/65000
17841         * tree-eh.c (mark_reachable_handlers): Mark source and destination
17842         regions of __builtin_eh_copy_values.
17843
17844 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
17845
17846         PR middle-end/65003
17847         * varasm.c (place_block_symbol): Assert that DECL_RTL of the
17848         ultimate alias is MEM with SYMBOL_REF satisfying
17849         SYMBOL_REF_HAS_BLOCK_INFO_P as its operand.  Don't pass the MEM
17850         to place_block_symbol, but instead pass the SYMBOL_REF operand of it.
17851
17852 2015-02-11  Thomas Schwinge  <thomas@codesourcery.com>
17853
17854         * config/nvptx/mkoffload.c: Include "diagnostic.h" instead of
17855         "diagnostic-core.h".
17856         (main): Initialize progname, and call diagnostic_initialize.
17857
17858         * config/nvptx/mkoffload.c (process): Refer to __OFFLOAD_TABLE__
17859         instead of __OPENMP_TARGET__.
17860
17861         * config/nvptx/mkoffload.c: Include "gomp-constants.h".
17862         (process): Use its GOMP_DEVICE_NVIDIA_PTX instead of (wrongly)
17863         hard-coding PTX_ID.
17864
17865 2015-02-11  H.J. Lu  <hongjiu.lu@intel.com>
17866
17867         * doc/sourcebuild.texi (pie_enabled): Document.
17868
17869 2015-02-11  Martin Liska  <mliska@suse.cz>
17870
17871         PR ipa/64813
17872         * cgraphunit.c (cgraph_node::expand_thunk): Do not create
17873         a return value for call to a function that is noreturn.
17874
17875 2015-02-11  Richard Biener  <rguenther@suse.de>
17876
17877         PR lto/65015
17878         * dwarf2out.c (gen_producer_string): Drop -fltrans-output-list
17879         and -fresolution.
17880
17881 2015-02-11  Andrew Pinski  <apinski@cavium.com>
17882
17883         PR target/64893
17884         * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
17885         Change the first argument type to size_type_node and add another
17886         size_type_node.
17887         (aarch64_simd_expand_builtin): Handle the new argument to
17888         AARCH64_SIMD_BUILTIN_LANE_CHECK and don't ICE but rather
17889         print an out when the first two arguments are not
17890         nonzero integer constants.
17891         * config/aarch64/arm_neon.h (__AARCH64_LANE_CHECK):
17892         Pass the sizeof directly to __builtin_aarch64_im_lane_boundsi.
17893
17894 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
17895
17896         PR target/61925
17897         * config/i386/i386.c (ix86_reset_to_default_globals): Removed.
17898         (ix86_reset_previous_fndecl): Restore it here, unconditionally.
17899         (ix86_set_current_function): Rewritten.
17900         (ix86_add_new_builtins): Temporarily clear current_target_pragma
17901         when creating builtin fndecls.
17902
17903 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
17904
17905         PR ipa/65005
17906         * ipa-visibility.c (cgraph_node::non_local_p): Turn into static
17907         function.
17908         * symtab.c (symtab_node::verify_base): Remove check that non-definitions
17909         have no comdat group.
17910         * lto-cgraph.c (lto_output_node): Always output thunk and alias info.
17911         (lto_output_varpool_node): Always output alias info.
17912         (output_refs): Output refs of boundary aliases, too.
17913         (compute_ltrans_boundary): Add alias and thunk target into boundaries.
17914         (output_symtab): Output call eges in thunks in boundary.
17915         (get_alias_symbol): Remove.
17916         (input_node, input_varpool_node): Do not special case weakrefs.
17917         * ipa.c (symbol_table::remove_unreachable_nodes): Do not remove
17918         alias and thunks targets in the boundary; do not take removed symbols
17919         from their comdat groups.
17920         * cgraph.c (cgraph_node::local_info): Look through aliases and thunks.
17921         (cgraph_node::global_info): Remove.
17922         (cgraph_node::rtl_info): Look through aliases and thunks.
17923         * cgrpah.h (global_info): Remove.
17924         (non_local_p): Remove.
17925
17926 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
17927             Sandra Loosemore  <sandra@codesourcery.com>
17928
17929         * doc/invoke.texi (x86 Options [-masm=dialect]): Add cross-references
17930         to inline asm.  List dialects in proper order.
17931
17932 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
17933             Sandra Loosemore  <sandra@codesourcery.com>
17934
17935         * doc/extend.texi (Loop-Specific Pragmas): Fix grammar error.
17936
17937 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
17938
17939         * doc/extend.texi (Symbol-Renaming Pragmas): Restore (slightly
17940         modified) reference to Solaris.
17941
17942 2015-02-10  Sandra Loosemore  <sandra@codesourcery.com>
17943
17944         * doc/extend.texi (Extended Asm): Fix typos.
17945
17946 2015-02-10  Jakub Jelinek  <jakub@redhat.com>
17947
17948         PR sanitizer/65004
17949         * ubsan.c (ubsan_expand_vptr_ifn): Always return true.
17950
17951 2015-02-10  Oleg Endo  <olegendo@gcc.gnu.org>
17952
17953         PR target/64661
17954         * config/sh/sh-protos.h (TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
17955         TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
17956         TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): Add parentheses.
17957         * config/sh/constraints.md (Ara, Add): New constraints.
17958         * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1): New
17959         predicates.
17960         (atomic_compare_and_swap<mode>, atomic_exchange<mode>): Use
17961         atomic_mem_operand_0.  Don't use force_reg on the memory address.
17962         (atomic_compare_and_swapsi_hard): Use atomic_mem_operand_0 predicate and
17963         Sra constraint.  Convert to insn_and_split.  Add workaround for
17964         PR 64974.
17965         (atomic_compare_and_swap<mode>_hard): Copy to
17966         atomic_compare_and_swap<mode>_hard_1.  Convert to insn_and_split.
17967         Use atomic_mem_operand_0 predicate.
17968         (atomic_compare_and_swap<mode>_soft_gusa,
17969         atomic_exchange<mode>_soft_gusa): Use atomic_mem_operand_0 predicate and
17970         AraAdd constraints.
17971         (atomic_compare_and_swap<mode>_soft_tcb,
17972         atomic_compare_and_swap<mode>_soft_imask,
17973         atomic_exchange<mode>_soft_tcb, atomic_exchange<mode>_soft_imask): Use
17974         atomic_mem_operand_0 predicate and SraSdd constraints.
17975         (atomic_exchangesi_hard) Use atomic_mem_operand_0 predicate and Sra
17976         constraint.
17977         (atomic_exchange<mode>_hard): Copy to atomic_exchange<mode>_hard_1.
17978         Convert to insn_and_split.  Use atomic_mem_operand_0 predicate.
17979         (atomic_fetch_<fetchop_name><mode>, atomic_fetch_nand<mode>,
17980         atomic_<fetchop_name>_fetch<mode>): Use atomic_mem_operand_1.  Don't use
17981         force_reg on the memory address.
17982         (atomic_fetch_<fetchop_name>si_hard, atomic_fetch_notsi_hard,
17983         atomic_fetch_nandsi_hard, atomic_<fetchop_name>_fetchsi_hard,
17984         atomic_not_fetchsi_hard, atomic_nand_fetchsi_hard): Use
17985         atomic_mem_operand_1 predicate and Sra constraint.
17986         (atomic_fetch_<fetchop_name><mode>_hard): Copy to
17987         atomic_fetch_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
17988         Use atomic_mem_operand_1 predicate.
17989         (atomic_<fetchop_name><mode>_hard): Copy to
17990         atomic_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
17991         Use atomic_mem_operand_1 predicate.
17992         (atomic_fetch_nand<mode>_hard): Copy to atomic_fetch_nand<mode>_hard_1.
17993         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
17994         (atomic_nand<mode>_hard): Copy to atomic_nand<mode>_hard_1.  Convert to
17995         insn_and_split.  Use atomic_mem_operand_1 predicate.
17996         (atomic_<fetchop_name>_fetch<mode>_hard): Copy to
17997         atomic_<fetchop_name>_fetch<mode>_hard_1.  Convert to insn_and_split.
17998         Use atomic_mem_operand_1 predicate.
17999         (atomic_nand_fetch<mode>_hard): Copy to atomic_nand_fetch<mode>_hard_1.
18000         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
18001         (atomic_fetch_not<mode>_hard, atomic_not_fetch<mode>_hard): Replace mems
18002         in generated insn with original mem operand before emitting the insn.
18003         (atomic_fetch_<fetchop_name><mode>_soft_gusa,
18004         atomic_fetch_not<mode>_soft_gusa, atomic_fetch_nand<mode>_soft_gusa,
18005         atomic_<fetchop_name>_fetch<mode>_soft_gusa,
18006         atomic_not_fetch<mode>_soft_gusa, atomic_nand_fetch<mode>_soft_gusa):
18007         Use atomic_mem_operand_1 predicate and AraAdd constraints.
18008         (atomic_fetch_<fetchop_name><mode>_soft_tcb,
18009         atomic_<fetchop_name><mode>_soft_tcb, atomic_fetch_not<mode>_soft_tcb,
18010         atomic_not<mode>_soft_tcb, atomic_fetch_<fetchop_name><mode>_soft_imask,
18011         atomic_fetch_not<mode>_soft_imask, atomic_fetch_nand<mode>_soft_tcb,
18012         atomic_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask,
18013         atomic_<fetchop_name>_fetch<mode>_soft_tcb,
18014         atomic_not_fetch<mode>_soft_tcb,
18015         atomic_<fetchop_name>_fetch<mode>_soft_imask,
18016         atomic_not_fetch<mode>_soft_imask, atomic_nand_fetch<mode>,
18017         atomic_nand_fetch<mode>_soft_tcb, atomic_nand_fetch<mode>_soft_imask):
18018         Use atomic_mem_operand_1 predicate and SraSdd constraints.
18019
18020 2015-02-10  Uros Bizjak  <ubizjak@gmail.com>
18021
18022         * config/alpha/alpha.md (reload_out<mode>_aligned): Make operands 2
18023         and 3 earlyclobber operands.
18024
18025 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
18026
18027         * common.opt (fstack-reuse): Mark as optimization.
18028
18029 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
18030
18031         PR ipa/64982
18032         * cgraphunit.c (cgraph_node::expand_thunk): Look for stdarg thunks.
18033
18034 2015-02-10  Trevor Saunders  <tsaunders@mozilla.com>
18035
18036         PR tree-optimization/64326
18037         * cfghooks.c (make_forwarder_block): Cap frequency of created block.
18038
18039 2015-02-10  Rainer Emrich  <rainer@emrich-ebersheim.de>
18040
18041         PR gcov-profile/61889
18042         * gcov-tool.c: Remove wrong #if !defined(_WIN32)
18043
18044 2015-02-10  Richard Biener  <rguenther@suse.de>
18045
18046         PR tree-optimization/64995
18047         * tree-ssa-sccvn.c (set_ssa_val_to): Assert that the
18048         value we use is final.
18049         (visit_reference_op_store): Always valueize op.
18050         (visit_use): Properly valueize vuses.
18051
18052 2015-02-10  Richard Biener  <rguenther@suse.de>
18053
18054         PR tree-optimization/64909
18055         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Properly
18056         pass a scalar-stmt count estimate to the cost model.
18057         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Likewise.
18058
18059 2015-02-10  Alexander Monakov  <amonakov@ispras.ru>
18060
18061         * doc/invoke.texi (-fvar-tracking-assignments): Clarify that VTA is
18062         enabled by default together with var-tracking.
18063
18064 2015-02-10  Nick Clifton  <nickc@redhat.com>
18065
18066         * config/rl78/rl78.c: Remove DIV attribute code accidentally
18067         included in previous rl78 commit.
18068
18069 2015-02-10  Richard Biener  <rguenther@suse.de>
18070
18071         * tree-streamer.h (streamer_read_tree_bitfields): Adjust.
18072         * tree-streamer-in.c (streamer_read_tree_bitfields): Do not
18073         return the bitpack.
18074
18075 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
18076
18077         PR gcov-profile/61889
18078         * config.in: regenerate.
18079         * configure.in: Likewise.
18080         * configure.ac: Check for ftw.h.
18081         * gcov-tool.c: Check for ftw.h before using nftw.
18082
18083 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
18084
18085         PR lto/64076
18086         * ipa-visibility.c (update_visibility_by_resolution_info): Only
18087         assert when not in lto mode.
18088
18089 2015-02-09  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
18090
18091         * ira-color.c (setup_left_conflict_sizes_p): Simplify
18092         initialization/assignment of conflict_size.
18093
18094 2015-02-09  Jan Hubicka  <hubicka@ucw.cz>
18095
18096         PR ipa/64978
18097         * ipa-cp.c (gather_caller_stats): Skip thunks.
18098         (propagate_constants_topo): Skip aliases.
18099
18100 2015-02-09  Kaz Kojima  <kkojima@gcc.gnu.org>
18101
18102         PR target/64761
18103         * config/sh/sh.c (sh_option_override): Don't change
18104         -freorder-blocks-and-partition to -freorder-blocks even when
18105         unwinding is enabled.
18106         (sh_can_follow_jump): Return false if the followee jump is
18107         a crossing jump when -freorder-blocks-and-partition is specified.
18108         * config/sh/sh.md (*jump_compact_crossing): New insn.
18109
18110 2015-02-09  Joern Rennecke  <joern.rennecke@embecosm.com>
18111             Kaz Kojima  <kkojima@gcc.gnu.org>
18112
18113         PR target/64761
18114         * config/sh/sh-protos.h (sh_can_redirect_branch): Don't declare.
18115         * config/sh/sh.c (TARGET_CAN_FOLLOW_JUMP): Redefine.
18116         (sh_can_redirect_branch): Rename to ...
18117         (sh_can_follow_jump): ... this.  Constify argument types.
18118         * config/sh/sh.h (MD_CAN_REDIRECT_BRANCH): Don't define.
18119         * doc/tm.texi.in (MD_CAN_REDIRECT_BRANCH): Remove documentation.
18120         * reorg.c (steal_delay_list_from_target): Use targetm.can_follow_jump.
18121         * doc/tm.texi: Regenerate.
18122
18123 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
18124
18125         PR sanitizer/64981
18126         * builtins.c (expand_builtin): Call targetm.expand_builtin
18127         for BUILT_IN_MD builtins regardless of asan_intercepted_p.
18128
18129 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
18130
18131         PR ipa/61548
18132         * tree-emutls.c (ipa_lower_emutls): Avoid duplicates in TLS_VARS.
18133
18134 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
18135
18136         PR ipa/63566
18137         * ipa-icf.c (set_local): New function.
18138         (sem_function::merge): Use it.
18139
18140 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
18141
18142         * ipa-devirt.c (odr_types_equivalent_p): Fix formating.
18143         (add_type_duplicate): Fix comparison of BINFOs.
18144
18145 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
18146
18147         * ipa-polymorphic-call.c (ipa_polymorphic_call_context): Avoid ICE
18148         on getting VOID pointer.
18149
18150 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
18151
18152         PR target/64979
18153         * tree-stdarg.c (pass_stdarg::execute): Scan phi node args for
18154         va_list escapes.
18155
18156 2015-02-09  Richard Biener  <rguenther@suse.de>
18157
18158         * genmatch.c (replace_id): Copy expr_type.
18159
18160 2015-02-09  Richard Biener  <rguenther@suse.de>
18161
18162         * tree-streamer.h (streamer_pack_tree_bitfields): Remove.
18163         (streamer_write_tree_bitfields): Declare.
18164         * tree-streamer-in.c (unpack_ts_base_value_fields): Inline,
18165         properly unpack padding.
18166         (unpack_value_fields): Inline ...
18167         (streamer_read_tree_bitfields): ... here.
18168         * tree-streamer-out.c (pack_ts_base_value_fields): Inline
18169         and properly add padding bits.
18170         (streamer_pack_tree_bitfields): Fold into ...
18171         (streamer_write_tree_bitfields): ... this new function,
18172         exposing the bitpack object.
18173         * lto-streamer-out.c (lto_write_tree_1): Call
18174         streamer_write_tree_bitfields.
18175
18176 2015-02-09  Richard Biener  <rguenther@suse.de>
18177
18178         PR tree-optimization/54000
18179         * tree-ssa-looo-ivopts.c: Include tree-vectorizer.h.
18180         (struct ivopts_data): Add loop_loc member.
18181         (tree_ssa_iv_optimize_loop): Dump loop location.
18182         (create_new_ivs): Likewise, also dump number of IVs generated.
18183
18184 2015-02-09  Martin Liska  <mliska@suse.cz>
18185
18186         * ipa-icf.c (sem_item_optimizer::register_hooks): Register hooks
18187         just if not yet registered.
18188         (ipa_icf_generate_summary): Register callgraph hooks.
18189
18190 2015-02-08  Andrew Pinski  <apinski@cavium.com>
18191
18192         * config/aarch64/aarch64.c (gty_dummy): Delete.
18193
18194 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
18195
18196         PR ipa/63566
18197         * ipa-visibility.c (cgraph_node::non_local_p): Accept aliases.
18198         (cgraph_node::local_p): Remove thunk related FIXME.
18199
18200 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
18201
18202         PR ipa/63566
18203         * i386.c (ix86_function_regparm): Look through aliases to see if callee
18204         is local and optimized.
18205         (ix86_function_sseregparm): Likewise; also use target's SSE math
18206         settings; error out instead of silently generating wrong code
18207         on mismatches.
18208         (init_cumulative_args): Look through aliases.
18209
18210 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
18211
18212         PR ipa/63566
18213         * ipa-split.c (execute_split_functions): Split if function has aliases.
18214
18215 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
18216
18217         PR ipa/63566
18218         * cgraphunit.c (cgraph_node::analyze): Be sure target of thunk is
18219         aliases before trying to expand it.
18220         (cgraph_node::expand_thunk): Fix formating.
18221
18222 2015-02-07  Sandra Loosemore  <sandra@codesourcery.com>
18223
18224         * doc/extend.texi (Function Attributes [naked]): Copy-edit.
18225         (Using Assembly Language with C): Expand introduction.
18226         (Basic Asm): Copy-edit.  Add more information about uses of
18227         basic asm.
18228         (Extended Asm): Copy-edit.  Document new escape syntax and
18229         %l[label] syntax.
18230         (Global Reg Vars): Copy-edit.
18231         (Local Reg Vars): Likewise.
18232
18233 2015-02-06  David Edelsohn  <dje.gcc@gmail.com>
18234
18235         PR debug/2714
18236         PR bootstrap/64256
18237         * xcoffout.h (DBX_CONTIN_LENGTH): Define as 16384.
18238         (DBX_CONTIN_CHAR): Define.
18239
18240 2015-02-06  Sebastian Pop  <s.pop@samsung.com>
18241             Brian Rzycki  <b.rzycki@samsung.com>
18242
18243         PR tree-optimization/64878
18244         * tree-ssa-threadedge.c: Include tree-ssa-loop.h.
18245         (fsm_find_control_statement_thread_paths): Add parameter seen_loop_phi.
18246         Stop recursion at loop phi nodes after having visited a loop phi node.
18247
18248 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
18249
18250         * toplev.c (process_options): Change flag_ipa_ra before creating
18251         optimization_{default,current}_node.
18252
18253         PR ipa/64896
18254         * cgraphunit.c (cgraph_node::expand_thunk): If
18255         restype is not is_gimple_reg_type nor the thunk_fndecl
18256         returns aggregate_value_p, set restmp to a temporary variable
18257         instead of resdecl.
18258
18259 2015-02-06  Vladimir Makarov  <vmakarov@redhat.com>
18260
18261         * lra.c (lra_emit_add): Fix a typo in using disp instead of base.
18262
18263 2015-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
18264
18265         PR target/64205
18266         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
18267         add a general secondary reload handler for SDmode, unless we have
18268         both read/write support for SDmode.
18269
18270 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
18271
18272         PR middle-end/64937
18273         * dwarf2out.c (set_block_abstract_flags, set_decl_abstract_flags):
18274         Replace setting argument with abstract_vec, always set BLOCK_ABSTRACT
18275         or DECL_ABSTRACT_P flags to 1 rather than to setting, and if it wasn't
18276         1 before, push it to abstract_vec.
18277         (dwarf2out_abstract_function): Adjust caller.  Don't call
18278         set_decl_abstract_flags second time, instead clear BLOCK_ABSTRACT or
18279         DECL_ABSTRACT_P flags for all abstract_vec elts.
18280
18281 2015-02-06  Renlin Li  <renlin.li@arm.com>
18282
18283         * tree-ssa-forwprop.c (execute): Keep location info while rewrite
18284         complex gimple.
18285         * tree-ssa.c (execute_update_addresses_taken): Likewise.
18286
18287 2015-02-06  Jeff Law  <law@redhat.com>
18288
18289         PR target/64889
18290         * config/h8300/h8300.c (push): New argument "in_prologue".
18291         Pass "in_prologue" along to "F".
18292         (h8300_push_pop): Corresponding changes.
18293         (h8300_expand_prologue): Likewise.
18294         (h8300_swap_into_er6): Likewise.  Do not set RTX_FRAME_RELATED_P.
18295
18296 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
18297
18298         PR rtl-optimization/64957
18299         PR debug/64817
18300         * simplify-rtx.c (simplify_binary_operation_1): Use ~cval for
18301         IOR rather than for AND.
18302
18303 2015-02-06  Eric Botcazou  <ebotcazou@adacore.com>
18304
18305         PR target/62631
18306         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Use the mininum of costs
18307         of shift-add and (add + shift) operations.  Rename local variable.
18308
18309 2015-02-05  Jeff Law  <law@redhat.com>
18310
18311         PR target/17306
18312         * config/h8300/constraints.md (U): Correctly dectect
18313         "eightbit_data" memory addresses.
18314         * config/h8300/h8300.c (eightbit_constant_address_p): Also
18315         handle (const (plus (symbol_ref (x)))) where x is declared
18316         as an 8-bit data memory address.
18317         * config/h8300/h8300.md (call, call_value): Correctly detect
18318         "funcvec" functions.
18319
18320         PR target/43264
18321         * config/h8300/h8300.c (get_shift_alg): Fix ASHIFTRT by
18322         24 to 28 bits for the H8/300.
18323
18324 2015-02-06  Alan Modra  <amodra@gmail.com>
18325
18326         PR target/64876
18327         * config/rs6000/rs6000.c (chain_already_loaded): New function.
18328         (rs6000_call_aix): Use it.
18329
18330 2015-02-05  Jan Hubicka <hubicka@ucw.cz>
18331
18332         * ipa-cp.c (ipa_value_from_jfunc, ipa_context_from_jfunc): Add bounds
18333         check.
18334
18335 2015-02-05  Joern Rennecke  <joern.rennecke@embecosm.com>
18336
18337         * config/h8300/constraints.md ("U" constraint): Use strict
18338         variant of REG_OK_FOR_BASE_P after reload has started.
18339
18340 2015-02-04  Mantas Mikaitis  <mantas.mikaitis@arm.com>
18341
18342         * config/arm/arm.h (TARGET_NEON_FP): Removed conditional definition,
18343         define to zero if !TARGET_NEON.
18344         (TARGET_ARM_FP): Added !TARGET_SOFT_FLOAT into conditional definition.
18345
18346 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
18347             Trevor Saunders  <tsaunders@mozilla.com>
18348
18349         PR ipa/61548
18350         * tree-emultls.c (new_emutls_decl): Resolve alias after creating it.
18351
18352 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
18353
18354         PR ipa/61548
18355         * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering issue
18356         when removing varpool nodes.
18357
18358 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
18359
18360         PR ipa/61548
18361         * varpool.c (varpool_node::remove): Fix order of variables.
18362
18363 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
18364
18365         PR ipa/64686
18366         * ipa-inline.c (inline_small_functions): Fix ordering issue between
18367         speculation resolution and key updates.
18368
18369 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
18370
18371         * ipa-prop.c (update_indirect_edges_after_inlining): By more careful
18372         about not letting any speculative edges unupdated.
18373
18374 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
18375
18376         PR gcov/64123
18377         * gcov-io.c (gcov_var): Export.
18378
18379 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
18380
18381         PR middle-end/64922
18382         * ipa-prop.c (update_indirect_edges_after_inlining): Correctly update
18383         edges that become speculative.
18384
18385 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
18386
18387         * dwarf2out.c (is_fortran): Also return true for DW_LANG_Fortran03
18388         or DW_LANG_Fortran08.
18389         (lower_bound_default): Return 1 for DW_LANG_Fortran03 or
18390         DW_LANG_Fortran08.
18391         (gen_compile_unit_die): Handle "GNU Fortran2003" and
18392         "GNU Fortran2008" language strings.
18393         * dbxout.c (get_lang_number): Use lang_GNU_Fortran.
18394         * langhooks.h (lang_GNU_Fortran): New prototype.
18395         * langhooks.c (lang_GNU_Fortran): New function.
18396         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
18397         lang_GNU_Fortran.
18398
18399 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
18400
18401         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P): Fix off-by-one error.
18402         (RTX_OK_FOR_OLO10_P): Likewise.
18403
18404 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
18405
18406         * tree-ssa-loop-ivopts.c (get_address_cost): Use right mode for offset.
18407
18408 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
18409
18410         PR middle-end/64922
18411         * gimple.c: Include gimple-ssa.h.
18412         (maybe_remove_unused_call_args): New function.
18413         * gimple.h (maybe_remove_unused_call_args): Declare.
18414         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
18415         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
18416         * gimple-fold.c (gimple_fold_call): Likewise.
18417
18418 2015-02-04  H.J. Lu  <hongjiu.lu@intel.com>
18419
18420         PR rtl-optimization/64905
18421         * lra-eliminations.c (setup_can_eliminate): Clear hard frame
18422         pointer alignment if it isn't needed.
18423
18424 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
18425
18426         * config/aarch64/aarch64-cores.def: Add cortex-a72 and
18427         cortex-a72.cortex-a53.
18428         * config/aarch64/aarch64-tune.md: Regenerate.
18429         * doc/invoke.texi (AArch64 Options/-mtune): Add "cortex-a72".
18430
18431 2015-02-04  Nick Clifton  <nickc@redhat.com>
18432
18433         * config/rl78/rl78.c (rl78_note_reg_set): Note the use of REGs
18434         inside a MEM.
18435
18436 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
18437
18438         * builtins.def (DEF_BUILTIN_CHKP): Define if not defined.
18439         (DEF_LIB_BUILTIN_CHKP, DEF_EXT_LIB_BUILTIN_CHKP): Redefine.
18440         (DEF_CHKP_BUILTIN): Define using DEF_BUILTIN_CHKP instead
18441         of DEF_BUILTIN.
18442         (BUILT_IN_MEMCPY, BUILT_IN_MEMMOVE, BUILT_IN_MEMSET, BUILT_IN_STRCAT,
18443         BUILT_IN_STRCHR, BUILT_IN_STRCPY, BUILT_IN_STRLEN): Use
18444         DEF_LIB_BUILTIN_CHKP macro instead of DEF_LIB_BUILTIN.
18445         (BUILT_IN_MEMCPY_CHK, BUILT_IN_MEMMOVE_CHK, BUILT_IN_MEMPCPY_CHK,
18446         BUILT_IN_MEMPCPY, BUILT_IN_MEMSET_CHK, BUILT_IN_STPCPY_CHK,
18447         BUILT_IN_STPCPY, BUILT_IN_STRCAT_CHK, BUILT_IN_STRCPY_CHK): Use
18448         DEF_EXT_LIB_BUILTIN_CHKP macro instead of DEF_EXT_LIB_BUILTIN.
18449         * tree-core.h (enum built_in_function): In between
18450         BEGIN_CHKP_BUILTINS and END_CHKP_BUILTINS only define enum values
18451         for builtins that use DEF_BUILTIN_CHKP macro.
18452
18453 2015-02-04  Alexandre Oliva <aoliva@redhat.com>
18454
18455         PR debug/64817
18456         * cfgexpand.c (expand_debug_expr): Compute unsignedp from
18457         operands for tcc_comparison exprs.  Fix typos.
18458
18459         PR debug/64817
18460         * simplify-rtx.c (simplify_binary_operation_1): Simplify one
18461         of two XORs that have an intervening AND or IOR.
18462
18463         PR debug/64817
18464         * simplify-rtx.c (simplify_binary_operation_1): Rewrite
18465         simplification of XOR of AND to not allocate new rtx before
18466         committing to a simplification.
18467
18468 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18469
18470         * config/aarch64/aarch64-ldpstp.md: Use std::swap instead of
18471         manual swaps in all peepholes.
18472
18473 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18474
18475         * config/aarch64/aarch64.c (aarch64_evpc_ext): Use std::swap instead
18476         of manual swapping implementation.
18477         (aarch64_expand_vec_perm_const_1): Likewise.
18478
18479 2015-02-04  James Greenhalgh <james.greenhalgh@arm.com>
18480
18481         * config/aarch64/aarch64.c (NAMED_PARAM): Delete it.
18482         (generic_addrcost_table): Remove NAMED_PARAM.
18483         (cortexa57_addrcost_table): Likewise.
18484         (xgene1_addrcost_table): Likewise.
18485         (generic_regmove_table): Likewise.
18486         (cortexa53_regmove_table): Likewise.
18487         (xgene1_regmove_table): Likewise.
18488         (generic_vector_table): Likewise.
18489         (cortexa57_vector_table): Likewise.
18490         (xgene1_vector_table): Likewise.
18491         (generic_tunings): Likewise.
18492         (cortexa53_tunings): Likewise.
18493         (cortexa57_tunings): Likewise.
18494         (xgene1_tunings): Likewise.
18495
18496 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
18497
18498         * config/arm/arm-cores.def: Add cortex-a72 and
18499         cortex-a72.cortex-a53.
18500         * config/arm/bpabi.h (BE8_LINK_SPEC): Likewise.
18501         * config/arm/t-aprofile (MULTILIB_MATCHES): Likewise.
18502         * config/arm/arm-tune.md: Regenerate.
18503         * config/arm/arm-tables.opt: Add entries for "cortex-a72" and
18504         "cortex-a72.cortex-a53".
18505         * doc/invoke.texi (ARM Options/-mtune): Likewise.
18506
18507 2015-02-04  Nick Clifton  <nickc@redhat.com>
18508
18509         PR target/64408
18510         * config/fr30/predicates.md (di_operand): Add SUBREG to the list
18511         of accepted codes.
18512         (nonimmediate_di_operand): Likewise.
18513
18514         * config/msp430/msp430.c (msp430_use_f5_series_hwmult): Add more
18515         prefixes of known F5 using MSP430 MCUs.
18516
18517 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18518
18519         * config/aarch64/aarch64-simd-builtins.def (sqrt): Use BUILTIN_VDQF_DF.
18520         * config/aarch64/arm_neon.h (vsqrt_f64): Use __builtin_aarch64_sqrtdf
18521         instead of __builtin_sqrt.
18522
18523 2015-02-04  Ilya Enkovich  <ilya.enkovich@intel.com>
18524
18525         * varasm.c (do_assemble_alias): Follow transparent alias
18526         chain for target.
18527         (default_assemble_visibility): Follow transparent alias
18528         chain for decl name.
18529
18530 2015-02-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
18531
18532         PR middle-end/62103
18533         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use TYPE_PRECISION
18534         to compute size of referenced value in the constant case.
18535
18536 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
18537
18538         PR rtl-optimization/64756
18539         * cse.c (invalidate_dest): New function.
18540         (cse_insn): Use it.  If dest != SET_DEST (sets[i].rtl) and
18541         HASH (SET_DEST (sets[i].rtl), mode) computation sets do_not_record,
18542         invalidate and do not record it.
18543
18544 2015-02-03  Oleg Endo  <olegendo@gcc.gnu.org>
18545
18546         PR target/64660
18547         * config/sh/sync.md (atomic_<fetchop_name><mode>_hard,
18548         atomic_not<mode>_hard, atomic_<fetchop_name><mode>_soft_tcb,
18549         atomic_not<mode>_soft_tcb, atomic_nand<mode>_hard,
18550         atomic_nand<mode>_soft_tcb): New insns.
18551         (atomic_fetch_<fetchop_name>si_hard): Convert to insn_and_split.
18552         Split into atomic_<fetchop_name>_fetchsi_hard if operands[0] is unused.
18553         (define_insn "atomic_fetch_notsi_hard): Convert to insn_and_split.
18554         Split into atomic_not_fetchsi_hard if operands[0] is unused.
18555         (atomic_fetch_<fetchop_name><mode>_hard): Convert to insn_and_split.
18556         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
18557         (atomic_fetch_not<mode>_hard): Convert to insn_and_split.  Split into
18558         atomic_not<mode>_hard if operands[0] is unused.
18559         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Convert to
18560         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_gusa
18561         if operands[0] is unused.
18562         (atomic_fetch_not<mode>_soft_gusa): Convert to insn_and_split.  Split
18563         into atomic_not_fetch<mode>_soft_gusa if operands[0] is unused.
18564         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Convert to insn_and_split.
18565         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
18566         unused.
18567         (atomic_fetch_not<mode>_soft_tcb): Convert to insn_and_split.  Split
18568         into atomic_not<mode>_soft_tcb if operands[0] is unused.
18569         (atomic_fetch_<fetchop_name><mode>_soft_imask): Convert to
18570         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_imask
18571         if operands[0] is unused.
18572         (atomic_fetch_not<mode>_soft_imask): Convert to insn_and_split.  Split
18573         into atomic_not_fetch<mode>_soft_imask is operands[0] is unused.
18574         (atomic_fetch_nandsi_hard): Convert to insn_and_split.  Split into
18575         atomic_nand_fetchsi_hard if operands[0] is unused.
18576         (atomic_fetch_nand<mode>_hard): Convert to insn_and_split.  Split into
18577         atomic_nand<mode>_hard if operands[0] is unused.
18578         (atomic_fetch_nand<mode>_soft_gusa): Convert to insn_and_split.  Split
18579         into atomic_nand_fetch<mode>_soft_gusa if operands[0] is unused.
18580         (atomic_fetch_nand<mode>_soft_tcb): Convert to insn_and_split.  Split
18581         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
18582         (atomic_fetch_nand<mode>_soft_imask): Convert to insn_and_split.  Split
18583         into atomic_nand_fetch<mode>_soft_imask if operands[0] is unused.
18584         (atomic_<fetchop_name>_fetch<mode>_hard): Convert to insn_and_split.
18585         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
18586         (atomic_not_fetch<mode>_hard): Convert to insn_and_split.  Split into
18587         atomic_not<mode>_hard if operands[0] is unused.
18588         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Convert to insn_and_split.
18589         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
18590         unused.
18591         (atomic_not_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
18592         into atomic_not<mode>_soft_tcb if operands[0] is unused.
18593         (atomic_nand_fetch<mode>_hard): Convert to insn_and_split.  Split into
18594         atomic_nand<mode>_hard if operands[0] is unused.
18595         (atomic_nand_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
18596         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
18597
18598 2015-02-03  David Malcolm  <dmalcolm@redhat.com>
18599
18600         PR jit/64810
18601         * Makefile.in (GCC_OBJS): Add gcc-main.o.
18602         * gcc-main.c: New file, containing "main" taken from gcc.c.
18603         * gcc.c (do_self_spec): Free decoded_options.
18604         (class driver): Move declaration to gcc.h.
18605         (main): Move declaration and implementation to new file
18606         gcc-main.c.
18607         (driver_get_configure_time_options): New function.
18608         * gcc.h (class driver): Move this declaration here, from
18609         gcc.c.
18610         (driver_get_configure_time_options): New declaration.
18611
18612 2015-02-03  Jan Hubicka  <hubicka@ucw.cz>
18613
18614         * ipa-inline-analysis.c (simple_edge_hints): Fix check for
18615         cross-module inlining.
18616         * cgraph.h (cgraph_node): Add flag merged.
18617         * ipa-icf.c (sem_function::merge): Maintain it.
18618
18619 2015-02-03  Richard Sandiford  <richard.sandiford@arm.com>
18620
18621         * config/arm/arm.c (thumb2_reorg): Test UNARY_P and BINARY_P
18622         instead of OBJECT_P.
18623
18624 2015-02-03  Eric Botcazou  <ebotcazou@adacore.com>
18625
18626         PR target/62631
18627         * config/sparc/sparc.h (TARGET_HARD_MUL): Remove TARGET_V8PLUS.
18628         (TARGET_HARD_MUL32): Rewrite based on TARGET_HARD_MUL.
18629         * config/sparc/sparc.c (sparc_rtx_costs) <MULT>: Return costs based on
18630         int_mulX for integers in 64-bit mode if TARGET_HARD_MUL is not set.
18631
18632 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
18633
18634         PR other/63504
18635         * combine.c (reg_n_sets_max): New variable.
18636         (can_change_dest_mode, reg_nonzero_bits_for_combine,
18637         reg_num_sign_bit_copies_for_combine, get_last_value_validate,
18638         get_last_value): Use REG_N_SETS only on pseudos < reg_n_sets_max.
18639         (try_combine): Use INC_REG_N_SETS only on pseudos < reg_n_sets_max.
18640         (rest_of_handle_combine): Initialize reg_n_sets_max.
18641
18642 2015-02-02  Jan Hubicka  <hubicka@ucw.cz>
18643
18644         * ipa-inline.c (early_inliner): Skip inlining only in always_inlined;
18645         if some always_inline was inlined, apply changes before inlining
18646         heuristically.
18647
18648 2015-02-02  David Malcolm  <dmalcolm@redhat.com>
18649
18650         PR jit/64810
18651         * config/arm/arm.c (arm_option_override): Set
18652         arm_selected_arch/cpu/tune to NULL on entry.
18653
18654 2015-02-02  Tejas Belagod  <tejas.belagod@arm.com>
18655             Andrew Pinski  <pinskia@gcc.gnu.org>
18656             Jakub Jelinek  <jakub@gcc.gnu.org>
18657
18658         PR target/64231
18659         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix large
18660         integer typing for small model. Use IN_RANGE.
18661
18662 2015-02-02  Richard Biener  <rguenther@suse.de>
18663
18664         * tree-ssa-ccp.c (valueize_op_1): Always allow valueizing default-defs.
18665         * tree-vrp.c (vrp_valueize_1): Likewise.
18666
18667 2015-02-02  Alan Modra  <amodra@gmail.com>
18668
18669         * config/rs6000/rs6000.c (rs6000_call_aix): Use unspec rather
18670         than mem for toc_restore.
18671         * config/rs6000/rs6000.md (UNSPEC_TOCSLOT): Define.
18672         (call_indirect_aix, call_value_indirect_aix): Adjust to suit.
18673         (call_indirect_elfv2, call_value_indirect_elfv2): Likewise.
18674
18675 2015-02-01  David Edelsohn  <dje.gcc@gmail.com>
18676
18677         PR target/64047
18678         * config/rs6000/rs6000.c (rs6000_set_current_function): Handle
18679         explicit default options.
18680
18681 2015-02-01  Jan Hubicka  <hubicka@ucw.cz>
18682
18683         PR ipa/64872
18684         * ipa-utils.c (ipa_merge_profiles): Add release argument.
18685         * ipa-icf.c (sem_function::merge): Do not release body when merging.
18686         * ipa-utils.h (ipa_merge_profiles): Update prototype.
18687
18688 2015-02-01  Jakub Jelinek  <jakub@redhat.com>
18689
18690         PR debug/64817
18691         * cfgexpand.c (deep_ter_debug_map): New variable.
18692         (avoid_deep_ter_for_debug): New function.
18693         (expand_debug_expr): If TERed SSA_NAME is in
18694         deep_ter_debug_map, use the corresponding DEBUG_EXPR_DECL
18695         instead of trying to expand SSA_NAME's def stmt.
18696         (expand_debug_locations): When expanding debug bind
18697         of a DEBUG_EXPR_DECL to corresponding SSA_NAME,
18698         temporarily remove the DEBUG_EXPR_DECL from deep_ter_debug_map's
18699         value.
18700         (pass_expand::execute): Call avoid_deep_ter_for_debug on
18701         all debug bind stmts.  Delete deep_ter_debug_map after
18702         expand_debug_location if non-NULL and clear it.
18703
18704 2015-02-01  Oleg Endo  <olegendo@gcc.gnu.org>
18705
18706         PR target/64851
18707         * config/sh/sync.md (atomic_fetch_notsi_hard,
18708         atomic_fetch_not<mode>_hard, atomic_fetch_not<mode>_soft_gusa,
18709         atomic_fetch_not<mode>_soft_tcb, atomic_fetch_not<mode>_soft_imask,
18710         atomic_not_fetchsi_hard, atomic_not_fetch<mode>_hard,
18711         atomic_not_fetch<mode>_soft_gusa, atomic_not_fetch<mode>_soft_tcb,
18712         atomic_not_fetch<mode>_soft_imask): New insns.
18713
18714 2015-02-01  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
18715
18716         * haifa-sched.c (INSN_RFS_DEBUG_ORIG_ORDER): New access macro.
18717         (rank_for_schedule_debug): Split from ...
18718         (rank_for_schedule): ... this.
18719         (ready_sort): Sort DEBUG_INSNs separately from normal INSNs.
18720         * sched-int.h (struct _haifa_insn_data): New field rfs_debug_orig_order.
18721
18722 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
18723
18724         * doc/md.texi (Machine Constraints): Alphabetize table by target.
18725         * doc/extend.texi (x86 Variable Attributes): Move section to
18726         correct alphabetization after renaming.
18727         (x86 Type Attributes): Likewise.
18728         (Target Builtins): Re-alphabetize menu.
18729         (x86 Built-in Functions): Move section to correct alphabetization
18730         after renaming.
18731         (x86 transactional memory intrinsics): Likewise.
18732         * doc/invoke.texi (Option Summary): Re-alphabetize x86 Options
18733         and x86 Windows Options in table and menu.
18734         (x86 Options): Move section to correct alphabetization after
18735         renaming.
18736         (x86 Windows Options): Likewise.
18737
18738 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
18739
18740         * doc/extend.texi: Use "x86", "x86-32", and "x86-64" as the
18741         preferred names of the architecture and its 32- and 64-bit
18742         variants.
18743         * doc/invoke.texi: Likewise.
18744         * doc/md.texi: Likewise.
18745
18746 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
18747
18748         PR target/64882
18749         * config/i386/predicates.md (address_no_seg_operand): Reject
18750         non-CONST_INT_P operands in invalid mode.
18751
18752 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
18753
18754         * config/i386/i386.md (*prefetch_prefetchw1): Remove mode of
18755         address_operand 0.  Rename from *prefetch_prefetchwt1_<mode>.
18756         * config/i386/predicates.md (address_no_seg_operand): Call
18757         address_operand with VOIDmode.
18758         (vsib_address_operand): Ditto.
18759         (address_mpx_no_base_operand): Ditto.
18760         (address_mpx_no_index_operand): Ditto.
18761
18762 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
18763
18764         PR target/64688
18765         * lra-constraints.c (original_subreg_reg_mode): New.
18766         (simplify_operand_subreg): Try to simplify subreg of const.  Use
18767         original_subreg_reg_mode for it.
18768         (swap_operands): Update original_subreg_reg_mode.
18769         (curr_insn_transform): Set up original_subreg_reg_mode.
18770
18771 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
18772
18773         PR target/64617
18774         * lra-constraints.c (prohibited_class_reg_set_mode_p): New
18775         function.
18776         (process_alt_operands): Use it.
18777         (curr_insn_transform): Check the optional reload pseudo class is
18778         ok for the mode.
18779
18780 2015-01-30  Joseph Myers  <joseph@codesourcery.com>
18781
18782         * diagnostic.c (fatal_error (const char *, ...)): Remove function.
18783         * diagnostic-core.h (fatal_error (const char *, ...)): Remove
18784         prototype.
18785         * toplev.h (init_asm_output): Update comment on use of
18786         UNKNOWN_LOCATION with fatal_error.
18787         * cgraph.c, collect-utils.c, collect2.c, config/arc/arc.c,
18788         config/arc/arc.md, config/avr/avr.c, config/c6x/c6x.h,
18789         config/darwin.c, config/host-darwin.c, config/i386/host-cygwin.c,
18790         config/i386/intelmic-mkoffload.c, config/nios2/nios2.c,
18791         config/nvptx/mkoffload.c, config/nvptx/nvptx.h,
18792         config/rs6000/host-darwin.c, config/rs6000/rs6000.c,
18793         config/s390/s390.c, gcc.c, gcov-io.h, gcov-tool.c, ggc-common.c,
18794         ggc-page.c, graph.c, ipa-inline-analysis.c, ipa-reference.c,
18795         lto-cgraph.c, lto-section-in.c, lto-streamer-in.c, lto-streamer.c,
18796         lto-wrapper.c, objc/objc-act.c, opts.c, passes.c, plugin.c,
18797         tlink.c, toplev.c, tree-streamer-in.c, varpool.c: All callers of
18798         fatal_error changed to pass input_location as first argument.
18799
18800 2015-01-30  Martin Liska  <mliska@suse.cz>
18801
18802         * tree.h: Change GCC_VERSION >= 4004 to GCC_VERSION >= 4006
18803         in #pragma GCC diagnostic guards.
18804
18805 2015-01-30  Richard Biener  <rguenther@suse.de>
18806
18807         PR tree-optimization/64829
18808         * tree-vect-patterns.c (vect_handle_widen_op_by_const): Do
18809         not add a widening conversion pattern but hand off extra
18810         widenings to callers.
18811         (vect_recog_widen_mult_pattern): Handle extra widening produced
18812         by vect_handle_widen_op_by_const.
18813         (vect_recog_widen_shift_pattern): Likewise.
18814         (vect_pattern_recog_1): Remove excess vertical space in dumping.
18815         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
18816         (vect_init_vector_1): Likewise.
18817         (vect_get_vec_def_for_operand): Likewise.
18818         (vect_finish_stmt_generation): Likewise.
18819         (vectorizable_load): Likewise.
18820         (vect_analyze_stmt): Likewise.
18821         (vect_is_simple_use): Likewise.
18822
18823 2015-01-29  Jeff Law  <law@redhat.com>
18824
18825         * combine.c (try_combine): Fix typo in comment.
18826
18827 2015-01-29  Segher Boessenkool  <segher@kernel.crashing.org>
18828
18829         PR target/64580
18830         * config.rs6000/rs6000.c (compute_vrsave_mask): Reverse loop order.
18831         (rs6000_stack_info): Add assert.
18832         (rs6000_output_savres_externs): New function, split off from...
18833         (rs6000_output_function_prologue): ... here.  Do not call it for
18834         thunks.
18835
18836 2015-01-29  Jeff Law  <law@redhat.com>
18837
18838         PR target/15184
18839         * combine.c (try_combine): If I0 is a memory load and I3 a store
18840         to a related address, increase the "goodness" of doing a 4-insn
18841         combination with I0-I3.
18842         (make_field_assignment): Handle SUBREGs in the ior+and case.
18843
18844 2015-01-29  Yuri Rumyantsev  <ysrumyan@gmail.com>
18845
18846         PR tree-optimization/64746
18847         * tree-if-conv.c (mask_exists): New function.
18848         (predicate_mem_writes): Save created mask with given size for further
18849         use.
18850         (stmt_is_root_of_bool_pattern): Remove argument VAR and store to it.
18851         (ifcvt_repair_bool_pattern): Collect all statements that are root
18852         of bool pattern and use iterative algorithm to remove multiple uses
18853         of predicates, display number of required iterations.
18854
18855 2015-01-29  Richard Biener  <rguenther@suse.de>
18856
18857         PR tree-optimization/64853
18858         * tree-vrp.c (vrp_valueize_1): Do not return anything if the
18859         stmt will get simulated again.
18860         * tree-ssa-ccp.c (valueize_op_1): Likewise.
18861
18862 2015-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18863
18864         * config/arm/arm.c (arm_emit_multi_reg_pop): Simplify definition of
18865         return_in_pc.  Remove redundant assignments.
18866         (thumb2_emit_ldrd_pop): Simplify definition of return_in_pc.
18867         (arm_expand_epilogue): Don't compare boolean with true in if condition.
18868
18869 2015-01-29  Uros Bizjak  <ubizjak@gmail.com>
18870
18871         * config/i386/i386.c (ix86_mode_after): Make static.
18872
18873 2015-01-29  Richard Biener  <rguenther@suse.de>
18874
18875         PR tree-optimization/64844
18876         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Always
18877         dump cost model analysis.
18878         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
18879         Do not register adjusted load/store costs here.
18880
18881 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
18882             Uros Bizjak  <ubizjak@gmail.com>
18883
18884         * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): New.
18885         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Simplify by
18886         using x86_use_pseudo_pic_reg.
18887         * config/i386/i386.c (ix86_conditional_register_usage): Remove
18888         support for fixed PIC register.
18889         (ix86_use_pseudo_pic_reg): Not static any more.
18890
18891 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
18892
18893         PR middle-end/64805
18894         * ipa-inline.c (early_inliner): Rebuild IPA_REF_CHKP reference
18895         to avoid error in cgraph node verification.
18896
18897 2015-01-29  Marek Polacek  <polacek@redhat.com>
18898
18899         * doc/standards.texi: Reflect that the default for C is gnu11.
18900
18901 2015-01-29  Kaz Kojima  <kkojima@gcc.gnu.org>
18902
18903         PR target/64761
18904         * reorg.c (switch_text_sections_between_p): New function.
18905         (relax_delay_slots): Call it when testing if the jump insn
18906         is removable.  Use targetm.can_follow_jump when testing if
18907         the conditional branch can follow an unconditional jump.
18908
18909 2015-01-27  Caroline Tice  <cmtice@google.com>
18910
18911         Committing VTV Cywin/Ming patch for Patrick Wollgast
18912         * config/i386/cygwin.h (STARTFILE_SPEC): Add vtv_start.o,
18913         if -fvtable-verify=preinit/std is used.
18914         * config/i386/mingw-w64.h (STARTFILE_SPEC): Likewise.
18915         * config/i386/mingw32.h (STARTFILE_SPEC): Likewise.
18916         * config/i386/cygwin.h (ENDFILE_SPEC): Add vtv_end.o,
18917         if -fvtable-verify=preinit/std is used.
18918         * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
18919         * config/i386/cygwin.h (LIB_SPEC): Pass -lvtv and -lpsapi,
18920         if -fvtable-verify=preinit/std is used.
18921         * config/i386/mingw-w64.h (LIB_SPEC): Likewise.
18922         * config/i386/mingw32.h (LIB_SPEC): Likewise.
18923         * varasm.c (assemble_variable): Add code to properly set the comdat
18924         section and name for the .vtable_map_vars section in case the
18925         target is PE or COFF.
18926
18927 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
18928
18929         PR ipa/64801
18930         * cgraphunit.c (init_lowered_empty_function): Add CoUNT parameter;
18931         make sane BB profile.
18932         (cgraph_node::expand_thunk): Make sane BB profile.
18933         (cgraph_node::create_wrapper): Do not set call_stmt_cannot_inline_p.
18934         * cgraph.h (init_lowered_empty_function): Update prototype.
18935         * config/i386/i386.c (make_resolver_func): Update call.
18936         * predict.c (gate): Disable branch prediction pass if
18937         profile is already there.
18938
18939 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
18940
18941         * optc-save-gen.awk: flag_fp_contract_mode is no longer speical.
18942         * opth-gen.awk: Likewise.
18943         * common.opt: Mark flag_fp_contract_mode as Optimization.
18944
18945 2015-01-29  Bernd Edlinger  <bernd.edlinger@hotmail.de>
18946
18947         * config/i386/cygwin.h (LIBGCJ_SONAME): Set libgcj version to -16.
18948         * config/i386/mingw32.h (LIBGCJ_SONAME): Set libgcj version to -16.
18949
18950 2015-01-28  Oleg Endo  <olegendo@gcc.gnu.org>
18951
18952         PR target/64659
18953         * config/sh/predicates.md (atomic_arith_operand,
18954         atomic_logical_operand): Remove.
18955         * config/sh/sync.md (fetchop_predicate, fetchop_constraint): Remove.
18956         (atomic_arith_operand_0): New predicate.
18957         (atomic_compare_and_swap<mode>): Use arith_reg_dest for output values.
18958         Use atomic_arith_operand_0 for input values.
18959         (atomic_compare_and_swapsi_hard, atomic_compare_and_swap<mode>_hard,
18960         atomic_compare_and_swap<mode>_soft_gusa,
18961         atomic_compare_and_swap<mode>_soft_tcb,
18962         atomic_compare_and_swap<mode>_soft_imask): Use arith_reg_dest and
18963         arith_reg_operand instead of register_operand.
18964         (atomic_exchange<mode>): Use arith_reg_dest for output value.  Use
18965         atomic_arith_operand_0 for newval input.
18966         (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
18967         atomic_exchange<mode>_soft_gusa, atomic_exchange<mode>_soft_tcb,
18968         atomic_exchange<mode>_soft_imask): Use arith_reg_dest and
18969         arith_reg_operand instead of register_operand.
18970         (atomic_arith_operand_1, atomic_logical_operand_1): New predicates.
18971         fetchop_predicate_1, fetchop_constraint_1_llcs,
18972         fetchop_constraint_1_gusa, fetchop_constraint_1_tcb,
18973         fetchop_constraint_1_imask): New code iterator attributes.
18974         (atomic_fetch_<fetchop_name><mode>): Use arith_reg_dest instead of
18975         register_operand.  Use fetchop_predicate_1.
18976         (atomic_fetch_<fetchop_name>si_hard,
18977         atomic_fetch_<fetchop_name><mode>_hard): Use arith_reg_dest instead of
18978         register_operand.  Use fetchop_predicate_1, fetchop_constraint_1_llcs.
18979         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Use arith_reg_dest
18980         and arith_reg_operand instead of register_operand.  Use
18981         fetchop_predicate_1, fetchop_constraint_1_gusa.
18982         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Use arith_reg_dest
18983         and arith_reg_operand instead of register_operand.  Use
18984         fetchop_predicate_1, fetchop_constraint_1_tcb.  Adjust asm sequence
18985         to allow R0 usage.
18986         (atomic_fetch_<fetchop_name><mode>_soft_imask): Use arith_reg_dest
18987         and arith_reg_operand instead of register_operand.  Use
18988         fetchop_predicate_1, fetchop_constraint_1_imask.  Adjust asm sequence
18989         to allow R0 usage.
18990         (atomic_fetch_nand<mode>): Use arith_reg_dest instead of
18991         register_operand.  Use atomic_logical_operand_1.
18992         (atomic_fetch_nandsi_hard, atomic_fetch_nand<mode>_hard,
18993         atomic_fetch_nand<mode>_soft_gusa): Use arith_reg_dest and
18994         arith_reg_operand instead of register_operand.
18995         (atomic_fetch_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask):
18996         Use arith_reg_dest and arith_reg_operand instead of register_operand.
18997         Use logical_operand and rK08.  Adjust asm sequence to allow R0 usage.
18998         (atomic_<fetchop_name>_fetch<mode>): Use arith_reg_dest instead of
18999         register_operand.  Use fetchop_predicate_1.
19000         (atomic_<fetchop_name>_fetchsi_hard,
19001         atomic_<fetchop_name>_fetch<mode>_hard): Use arith_reg_dest and
19002         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
19003         fetchop_constraint_1_llcs.
19004         (atomic_<fetchop_name>_fetch<mode>_soft_gusa): Use arith_reg_dest and
19005         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
19006         fetchop_constraint_1_gusa.
19007         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Use arith_reg_dest and
19008         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
19009         fetchop_constraint_1_tcb.  Adjust asm sequence to allow R0 usage.
19010         (atomic_<fetchop_name>_fetch<mode>_soft_imask): Use arith_reg_dest and
19011         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
19012         fetchop_constraint_1_imask.  Adjust asm sequence to allow R0 usage.
19013         (atomic_nand_fetch<mode>): Use arith_reg_dest instead of
19014         register_operand.  Use atomic_logical_operand_1.
19015         (atomic_nand_fetchsi_hard, atomic_nand_fetch<mode>_hard,
19016         atomic_nand_fetch<mode>_soft_gusa): Use arith_reg_dest and
19017         arith_reg_operand instead of register_operand.
19018         (atomic_nand_fetch<mode>_soft_tcb): Use arith_reg_dest and
19019         arith_reg_operand instead of register_operand.  Use logical_operand
19020         and K08.  Adjust asm sequence to allow R0 usage.
19021         (atomic_nand_fetch<mode>_soft_imask): Use arith_reg_dest and
19022         arith_reg_operand instead of register_operand.  Use logical_operand
19023         and K08.
19024
19025 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
19026
19027         PR other/63504
19028         * dwarf2out.c (add_AT_wide, mem_loc_descriptor, loc_descriptor):
19029         Use ggc_alloc<wide_int> instead of ggc_cleared_alloc<wide_int>.
19030         (attr_checksum, attr_checksum_ordered, hash_loc_operands): Checksum
19031         only get_full_len HOST_WIDE_INTs from get_val () array rather than
19032         all bits in *val_wide.
19033
19034 2015-01-28  Jan Hubicka  <hubicka@ucw.cz>
19035
19036         * varpool.c (tls_model_names): Fix names.
19037         (varpool_node::dump): Dump tls- prefix for tls models.
19038
19039 2015-01-28  Thomas Schwinge  <thomas@codesourcery.com>
19040             Bernd Schmidt  <bernds@codesourcery.com>
19041             Nathan Sidwell  <nathan@codesourcery.com>
19042
19043         * config/nvptx/mkoffload.c: New file.
19044         * config/nvptx/t-nvptx: Add build rules for it.
19045         * config.gcc <nvptx-*> [$enable_as_accelerator = yes]
19046         (extra_programs): Add mkoffload.
19047         * config/nvptx/nvptx.c (nvptx_record_offload_symbol): New
19048         function.
19049         (TARGET_RECORD_OFFLOAD_SYMBOL): Define macro to use it.
19050
19051 2015-01-28  Yuri Rumyantsev  <ysrumyan@gmail.com>
19052
19053         PR middle-end/64809
19054         * cfgexpand.c (reorder_operands): Skip debug gimples.
19055
19056 2015-01-28  Ilya Enkovich  <ilya.enkovich@intel.com>
19057
19058         PR tree-optimization/64277
19059         * tree-ssa-loop-niter.c (record_nonwrapping_iv): Use base
19060         range info when possible to refine estimation.
19061
19062 2015-01-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
19063
19064         PR tree-optimization/64718
19065         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Make bswap_type
19066         be a 16bit unsigned integer when n->range is 16.
19067         (bswap_replace): Convert src to that type if necessary for all bswap
19068         sizes.  Fix rotation right notation in nearby comment.  Use bswap_type
19069         set in pass_optimize_bswap::execute ().
19070
19071 2015-01-28  James Greenhalgh  <james.greenhalgh@arm.com>
19072
19073         * config/aarch64/aarch64-simd.md (aarch64_abs<mode>): New.
19074         * config/aarch64/aarch64-simd-builtins.def (abs): Split by
19075         integer and floating point variants.
19076         * config/aarch64/iterators.md (unspec): Add UNSPEC_ABS.
19077
19078 2015-01-28  Robert Suchanek  <robert.suchanek@imgtec.com>
19079
19080         * config/mips/mips.c (mips_hard_regno_mode_ok_p): Prohibit accumulators
19081         for all vector modes.
19082
19083 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
19084
19085         PR bootstrap/64612
19086         * doc/sourcebuild.texi (comdat_group): Document.
19087
19088 2015-01-28  Terry Guo  <terry.guo@arm.com>
19089
19090         * config/arm/thumb1.md (*thumb1_movpc_insn): New insn pattern.
19091
19092 2015-01-27  David Malcolm  <dmalcolm@redhat.com>
19093
19094         * toplev.c (print_version): Add param "show_global_state", and
19095         only print GGC and plugin information if it is true.
19096         (init_asm_output): Pass in "true" for the new param when calling
19097         print_version.
19098         (process_options): Likewise.
19099         (toplev::main): Likewise.
19100         * toplev.h (print_version): Add new param to decl.
19101
19102 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
19103
19104         PR ipa/60871
19105         PR ipa/64139
19106         * tree.c (lookup_binfo_at_offset): New function.
19107         (get_binfo_at_offset): Use it.
19108
19109 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
19110
19111         PR ipa/64282
19112         * gimple-fold.c (gimple_get_virt_method_for_vtable): Remove assert
19113         on vtable being vtable.
19114
19115 2015-01-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
19116
19117         * doc/extend.texi: s/390: Update documentation of hotpatch attribute.
19118         * doc/invoke.texi (-mhotpatch): s/390: Update documentation of
19119         -mhotpatch= option.
19120         * config/s390/s390.opt (mhotpatch): s/390: Remove -mhotpatch and
19121         -mno-hotpatch options.  Change syntax of -mhotpatch= option.
19122         * config/s390/s390.c (s390_hotpatch_trampoline_halfwords_default):
19123         Renamed.
19124         (s390_hotpatch_trampoline_halfwords_max): Renamed.
19125         (s390_hotpatch_hw_max): New name.
19126         (s390_hotpatch_trampoline_halfwords): Renamed.
19127         (s390_hotpatch_hw_before_label): New name.
19128         (get_hotpatch_attribute): Removed.
19129         (s390_hotpatch_hw_after_label): New name.
19130         (s390_handle_hotpatch_attribute): Add second parameter to hotpatch
19131         attribute.
19132         (s390_attribute_table): Ditto.
19133         (s390_function_num_hotpatch_trampoline_halfwords): Renamed.
19134         (s390_function_num_hotpatch_hw): New name.
19135         Remove special handling of inline functions and hotpatching.
19136         Return number of nops before and after the function label.
19137         (s390_can_inline_p): Removed.
19138         (s390_asm_output_function_label): Emit a configurable number of nops
19139         after the function label.
19140         (s390_option_override): Update -mhotpatch= syntax and remove -mhotpatch.
19141         (TARGET_CAN_INLINE_P) Removed.
19142         (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): New.
19143
19144 2015-01-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19145             Jiong Wang  <jiong.wang@arm.com>
19146
19147         * config/aarch64/aarch64.md (tb<optab><mode>1): Clobber CC reg instead
19148         of scratch reg.
19149         (cb<optab><mode>1): Likewise.
19150         * config/aarch64/iterators.md (bcond): New define_code_attr.
19151
19152 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19153
19154         * config/s390/s390.c (s390_memory_move_cost): Increase costs for
19155         memory accesses.
19156
19157 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19158
19159         * config/s390/s390.c (s390_register_move_cost): Increase costs for
19160         FPR->GPR moves.
19161
19162 2015-01-27  Richard Biener  <rguenther@suse.de>
19163
19164         * tree-vrp.c (update_value_range): Intersect the range with
19165         old recorded SSA name range information.
19166
19167 2015-01-27  Nick Clifton  <nickc@redhat.com>
19168
19169         * config/rl78/rl78.c (rl78_expand_prologue): In G10 mode push the
19170         BC, DE and HL registers directly, not via AX.
19171         When decrementing the stack pointer by a large amount, transfer SP
19172         into AX and perform the subtraction there.
19173         (rl78_expand_epilogue): Perform the inverse of the above
19174         enhancements.
19175
19176 2015-01-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19177
19178         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Remove.
19179
19180 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
19181             Yury Gribov  <y.gribov@samsung.com>
19182
19183         PR ubsan/64741
19184         * ubsan.c (ubsan_source_location): Refactor code.
19185         (ubsan_type_descriptor): Update type size. Refactor code.
19186
19187 2015-01-27  Richard Biener  <rguenther@suse.de>
19188
19189         PR tree-optimization/56273
19190         PR tree-optimization/59124
19191         PR tree-optimization/64277
19192         * tree-vrp.c (vrp_finalize): Emit array-bound warnings only
19193         from the first VRP pass.
19194
19195 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
19196
19197         PR ipa/64776
19198         * cgraphunit.c (cgraph_node::expand_thunk): If not this_adjusting,
19199         handle the first argument in the same loop as all the other arguments.
19200
19201         PR rtl-optimization/61058
19202         * jump.c (cleanup_barriers): Update basic block boundaries
19203         if BLOCK_FOR_INSN is non-NULL on PREV.
19204
19205 2015-01-27  Ilya Enkovich  <ilya.enkovich@intel.com>
19206
19207         * tree-chkp.c (chkp_call_returns_bounds_p): Fix handling of
19208         bounds narrowing, already instrumented calls and calls to
19209         not instrumentable functions.
19210
19211 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
19212
19213         PR tree-optimization/64807
19214         * wide-int.cc (wi::divmod_internal): Clear
19215         b_dividend[dividend_blocks_needed].
19216
19217 2015-01-26  DJ Delorie  <dj@redhat.com>
19218
19219         * config/rl78/rl78.c (move_elim_pass): Don't optimize away
19220         volatile memory references.
19221
19222 2015-01-26  Oleg Endo  <olegendo@gcc.gnu.org>
19223
19224         PR target/49263
19225         * config/sh/sh.c (sh_split_treg_set_expr): Invoke emit_insn before
19226         remove_insn.
19227         * config/sh/sh.md (tstsi_t): Don't try to optimize constant with right
19228         shifts if it already fits into K08.
19229
19230 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
19231
19232         PR ipa/64730
19233         * ipa-inline.c (inline_small_functions): Print "unknown" even
19234         if edge->call_stmt is non-NULL, but has builtins or unknown
19235         location.
19236
19237         PR middle-end/64421
19238         * omp-low.c (simd_clone_mangle): If DECL_ASSEMBLER_NAME starts
19239         with asterisk, skip the first character.
19240
19241 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
19242
19243         PR target/64806
19244         * config/i386/i386 (feature_priority): Revert the last P_POPCNT
19245         order change.
19246
19247 2015-01-26  Uros Bizjak  <ubizjak@gmail.com>
19248
19249         PR target/64795
19250         * config/i386/i386.md (*movdi_internal): Also check operand 0
19251         to determine TYPE_LEA operand.
19252         (*movsi_internal): Ditto.
19253
19254 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
19255
19256         * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add
19257         OPTION_MASK_QUAD_MEMORY_ATOMIC.
19258
19259 2015-01-26  Renlin Li  <renlin.li@arm.com>
19260
19261         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Correct
19262         the comment.
19263         * config/aarch64/aarch64.md (tlsle_small_<mode>): Add left shift 12-bit
19264         for higher part.
19265
19266 2015-01-26  Richard Biener  <rguenther@suse.de>
19267
19268         PR middle-end/64764
19269         * tree-ssa-uninit.c (is_pred_expr_subset_of): Handle
19270         combining two BIT_AND_EXPR predicates.
19271
19272 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
19273
19274         PR bootstrap/64754
19275         * tree-ssa-structalias.c (new_var_info): Initialize ruid.
19276
19277 2015-01-26  Terry Guo  <terry.guo@arm.com>
19278
19279         * config/arm/arm.c (arm_file_start): Update the assignment of
19280         Tag_ABI_HardFP_use.
19281
19282 2015-01-25  James Greenhalgh  <james.greenhalgh@arm.com>
19283
19284         * config/arm/arm-cores.def (cortex-a57): Use the new Cortex-A57
19285         pipeline model.
19286         config/arm/arm.md: Include the new Cortex-A57 model.
19287         (generic_sched): Don't use generic_sched when tuning for
19288         Cortex-A57.
19289
19290 2015-01-25  Allan Sandfeld Jensen  <sandfeld@kde.org>
19291             Uros Bizjak  <ubizjak@gmail.com>
19292
19293         * config/i386/i386.c (get_builtin_code_for_version): Add
19294         support for BMI and BMI2 multiversion functions.
19295
19296 2015-01-25  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
19297
19298         * emit-rtl.h (store_bit_field): Move prototype to expmed.h.
19299         (extract_bit_field): Likewise.
19300         (extract_low_bits): Likewise.
19301         (expand_mult): Likewise.
19302         (expand_mult_highpart_adjust): Likewise.
19303
19304 2015-01-24  H.J. Lu  <hongjiu.lu@intel.com>
19305
19306         * config/i386/driver-i386.c (host_detect_local_cpu): Check new
19307         Silvermont, Haswell, Broadwell and Knights Landing model numbers.
19308         * config/i386/i386.c (processor_model): Add
19309         M_INTEL_COREI7_BROADWELL.
19310         (arch_names_table): Add "broadwell".
19311
19312 2015-01-24  Oleg Endo  <olegendo@gcc.gnu.org>
19313
19314         PR target/49263
19315         PR target/53987
19316         PR target/64345
19317         PR target/59533
19318         PR target/52933
19319         PR target/54236
19320         PR target/51244
19321         * config/sh/sh-protos.h
19322         (sh_extending_set_of_reg::can_use_as_unextended_reg,
19323         sh_extending_set_of_reg::use_as_unextended_reg,
19324         sh_is_nott_insn, sh_movt_set_dest, sh_movrt_set_dest, sh_is_movt_insn,
19325         sh_is_movrt_insn, sh_insn_operands_modified_between_p,
19326         sh_reg_dead_or_unused_after_insn, sh_in_recog_treg_set_expr,
19327         sh_recog_treg_set_expr, sh_split_treg_set_expr): New functions.
19328         (sh_treg_insns): New class.
19329         * config/sh/sh.c (TARGET_LEGITIMATE_COMBINED_INSN): Define target hook.
19330         (scope_counter): New class.
19331         (sh_legitimate_combined_insn, sh_is_nott_insn, sh_movt_set_dest,
19332         sh_movrt_set_dest, sh_reg_dead_or_unused_after_insn,
19333         sh_extending_set_of_reg::can_use_as_unextended_reg,
19334         sh_extending_set_of_reg::use_as_unextended_reg, sh_recog_treg_set_expr,
19335         sh_in_recog_treg_set_expr, sh_try_split_insn_simple,
19336         sh_split_treg_set_expr): New functions.
19337         (addsubcosts): Handle treg_set_expr.
19338         (sh_rtx_costs): Handle IF_THEN_ELSE and ZERO_EXTRACT.
19339         (sh_rtx_costs): Use arith_reg_operand in SIGN_EXTEND and ZERO_EXTEND.
19340         (sh_rtx_costs): Handle additional bit test patterns in EQ and AND cases.
19341         (sh_insn_operands_modified_between_p): Make non-static.
19342         * config/sh/predicates.md (zero_extend_movu_operand): Allow
19343         simple_mem_operand in addition to displacement_mem_operand.
19344         (zero_extend_operand): Don't allow zero_extend_movu_operand.
19345         (treg_set_expr, treg_set_expr_not_const01,
19346         arith_reg_or_treg_set_expr): New predicates.
19347         * config/sh/sh.md (tstsi_t): Use arith_reg_operand and
19348         arith_or_int_operand instead of logical_operand.  Convert to
19349         insn_and_split.  Try to optimize constant operand in splitter.
19350         (tsthi_t, tstqi_t): Fold into *tst<mode>_t.  Convert to insn_and_split.
19351         (*tstqi_t_zero): Delete.
19352         (*tst<mode>_t_subregs): Add !sh_in_recog_treg_set_expr split condition.
19353         (tstsi_t_and_not): Delete.
19354         (tst<mode>_t_zero_extract_eq): Rename to *tst<mode>_t_zero_extract.
19355         Convert to insn_and_split.
19356         (unnamed split, tstsi_t_zero_extract_xor,
19357         tstsi_t_zero_extract_subreg_xor_little,
19358         tstsi_t_zero_extract_subreg_xor_big): Delete.
19359         (*tstsi_t_shift_mask): New insn_and_split.
19360         (cmpeqsi_t, cmpgesi_t): Add new split for const_int 0 operands and try
19361         to recombine with surrounding insns when splitting.
19362         (*negtstsi): Add !sh_in_recog_treg_set_expr condition.
19363         (cmp_div0s_0, cmp_div0s_1, *cmp_div0s_0, *cmp_div0s_1): Rewrite as ...
19364         (cmp_div0s, *cmp_div0s_1, *cmp_div0s_2, *cmp_div0s_3, *cmp_div0s_4,
19365         *cmp_div0s_5, *cmp_div0s_6): ... these new insn_and_split patterns.
19366         (*cbranch_div0s: Delete.
19367         (*addc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
19368         Try to recombine with surrounding insns when splitting.  Add operand
19369         order variants.
19370         (*addc_t_r, *addc_r_t): Use treg_set_expr_not_const01.
19371         (*addc_r_r_1, *addc_r_lsb, *addc_r_r_lsb, *addc_r_lsb_r, *addc_r_msb,
19372         *addc_r_r_msb, *addc_2r_msb): Delete.
19373         (*addc_2r_lsb): Rename to *addc_2r_t.  Use treg_set_expr.  Add operand
19374         order variant.
19375         (*addc_negreg_t): New insn_and_split.
19376         (*subc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
19377         Try to recombine with surrounding insns when splitting.
19378         Add operand order variants.
19379         (*subc_negt_reg, *subc_negreg_t, *reg_lsb_t, *reg_msb_t): New
19380         insn_and_split patterns.
19381         (*rotcr): Use arith_reg_or_treg_set_expr.  Try to recombine with
19382         surrounding insns when splitting.
19383         (unnamed rotcr split): Use arith_reg_or_treg_set_expr.
19384         (*rotcl): Likewise.  Add zero_extract variant.
19385         (*ashrsi2_31): New insn_and_split.
19386         (*negc): Convert to insn_and_split.  Use treg_set_expr.
19387         (*zero_extend<mode>si2_disp_mem): Update comment.
19388         (movrt_negc, *movrt_negc, nott): Add !sh_in_recog_treg_set_expr split
19389         condition.
19390         (*mov_t_msb_neg, mov_neg_si_t): Use treg_set_expr.  Try to recombine
19391         with surrounding insns when splitting.
19392         (any_treg_expr_to_reg): New insn_and_split.
19393         (*neg_zero_extract_0, *neg_zero_extract_1, *neg_zero_extract_2,
19394         *neg_zero_extract_3, *neg_zero_extract_4, *neg_zero_extract_5,
19395         *neg_zero_extract_6, *zero_extract_0, *zero_extract_1,
19396         *zero_extract_2): New single bit zero extract patterns.
19397         (bld_reg, *bld_regqi): Fold into bld<mode>_reg.
19398         (*get_thread_pointersi, store_gbr, *mov<mode>_gbr_load,
19399         *mov<mode>_gbr_load, *mov<mode>_gbr_load, *mov<mode>_gbr_load,
19400         *movdi_gbr_load): Use arith_reg_dest instead of register_operand for
19401         set destination.
19402         (set_thread_pointersi, load_gbr): Use arith_reg_operand instead of
19403         register_operand for set source.
19404
19405 2015-01-23  Jan Hubicka  <hubicka@ucw.cz>
19406
19407         * i386.opt (prefetch_sse): New targetsave.
19408         * i386.c (ix86_function_specific_save): Save prefetch_sse.
19409         (ix86_function_specific_restore): Restore prefetch_sse and initialize
19410         ix86_cost/ix86_tune_cost.
19411
19412 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
19413
19414         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
19415         Support the JIT by using 0 as the language type.
19416
19417 2015-01-23  Vladimir Makarov  <vmakarov@redhat.com>
19418
19419         PR target/64317
19420         * lra-lives.c (make_hard_regno_born): Add parameter.  Don't make
19421         REAL_PIC_OFFSET_TABLE_REGNUM conflicting with pic offset pseudo.
19422         (mark_regno_live, process_bb_lives): Pass new parameter value to
19423         make_hard_regno_born.
19424
19425 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
19426
19427         PR rtl-optimization/63637
19428         PR rtl-optimization/60663
19429         * cse.c (merge_equiv_classes): Set new_elt->cost to MAX_COST
19430         if elt->cost is MAX_COST for ASM_OPERANDS.
19431         (find_sets_in_insn): Fix up comment typo.
19432         (cse_insn): Don't set src_volatile for all non-volatile
19433         ASM_OPERANDS in PARALLELs, but just those with multiple outputs
19434         or with "memory" clobber.  Set elt->cost to MAX_COST
19435         for ASM_OPERANDS in PARALLEL.  Set src_elt->cost to MAX_COST
19436         if new_src is ASM_OPERANDS and elt->cost is MAX_COST.
19437
19438 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
19439
19440         * config/i386/sse.md (sse2_loadld): Set attribute isa to sse2 for
19441         alternative 1.
19442
19443 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
19444
19445         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Move definition to
19446         libgcc/config/i386/elf-lib.h.
19447
19448 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
19449
19450         PR driver/64737
19451         * gcc.c (print_configuration): Don't print a blank line at the end
19452         here...
19453         (run_attempt): ... but here unstead.
19454
19455         PR middle-end/64734
19456         * omp-low.c (scan_sharing_clauses): Don't ignore
19457         OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION GOMP_MAP_POINTER clauses
19458         on target data/update constructs.
19459
19460 2015-01-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
19461
19462         PR target/50928
19463         * config/m32c/m32c.c (encode_pattern_1): Removed gcc_unreachable here.
19464         (DEBUG_RELOAD): Removed define.
19465         (m32c_limit_reload_class): Enable traces with if DEBUG0.
19466         (m32c_function_arg): Added a type cast.
19467         (m32c_legitimize_reload_address): Push A_REGS reload with PSImode.
19468         * config/m32c/addsub.md (addsi3_1): Specify the mode of all arguments.
19469         * config/m32c/bitops.md (andqi3_16): Likewise.
19470         * config/m32c/mov.md (m32c_immd_dbl_mov): Likewise.
19471         (push_a01_l): Likewise.
19472
19473 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
19474
19475         PR jit/64721
19476         * main.c (main): Construct toplev instances with init_signals=true.
19477         * toplev.c (general_init): Add param "init_signals", and use it to
19478         conditionalize the calls to signal and host_hooks.extra_signals.
19479         (toplev::toplev): Add param "init_signals".
19480         (toplev::main): When invoking general_init, pass m_init_signals
19481         to control whether signal-handlers are installed.
19482         * toplev.h (toplev::toplev): Add param "init_signals".
19483         (toplev::m_init_signals): New field.
19484
19485 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
19486
19487         PR jit/64722
19488         * emit-rtl.c (init_emit_regs): Set pic_offset_table_rtx to
19489         NULL_RTX before testing PIC_OFFSET_TABLE_REGNUM, since the
19490         latter may be affected by the former (e.g. on i686).
19491
19492 2015-01-23  Martin Liska  <mliska@suse.cz>
19493
19494         * tree.h (tree_vec_elt_check): Workaround -Wstrict-overflow
19495         false positive during profiledbootstrap.
19496
19497 2015-01-23  Tom de Vries  <tom@codesourcery.com>
19498
19499         PR libgomp/64672
19500         * lto-opts.c (lto_write_options): Output non-explicit conservative
19501         -fno-openacc.
19502         * lto-wrapper.c (merge_and_complain): Handle merging -fopenacc.
19503         (append_compiler_options): Pass -fopenacc through.
19504
19505 2015-01-23  Tom de Vries  <tom@codesourcery.com>
19506
19507         PR libgomp/64707
19508         * lto-opts.c (lto_write_options): Output non-explicit conservative
19509         -fno-openmp.
19510         * lto-wrapper.c (merge_and_complain): Handle merging -fopenmp.
19511         (append_compiler_options): Pass -fopenmp through.
19512
19513 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
19514
19515         PR debug/64511
19516         * dwarf2out.c (struct dw_loc_descr_node): Add chain_next
19517         GTY markup.
19518
19519         * diagnostic-core.h (internal_error_no_backtrace): New prototype.
19520         * diagnostic.def (DK_ICE_NOBT): New kind.
19521         * diagnostic.c (diagnostic_action_after_output): Handle DK_ICE_NOBT
19522         like DK_ICE, but never print backtrace.
19523         (diagnostic_report_diagnostic): Handle DK_ICE_NOBT like DK_ICE.
19524         (internal_error_no_backtrace): New function.
19525         * gcc.c (execute): Use internal_error_no_backtrace instead of
19526         internal_error.
19527
19528 2015-01-22  Jeff Law  <law@redhat.com>
19529
19530         PR target/52076
19531         * config/m68k/m68k.md (xorsi3_internal): Twiddle constraints to
19532         improve code density for small immediate to memory case.
19533         (insv): Better handle bitfield assignments when the field is
19534         being set to all ones.
19535         * config/m68k/predicates.md (reg_or_pow2_m1_operand): New
19536         operand predicate.
19537
19538 2015-01-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19539             Jakub Jelinek  <jakub@redhat.com>
19540
19541         PR middle-end/64729
19542         * gcc.c (LINK_SSP_SPEC): Handle -fstack-protector-explicit
19543         for !TARGET_LIBC_PROVIDES_SSP version and
19544         -fstack-protector-{all,strong,explicit} otherwise.
19545         * config/freebsd.h (LINK_SSP_SPEC): Handle
19546         -fstack-protector-{strong,explicit}.
19547
19548 2015-01-22  Jan Hubicka  <hubicka@ucw.cz>
19549             H.J. Lu  <hongjiu.lu@intel.com>
19550
19551         PR ipa/64694
19552         * ipa-inline.c (inline_small_functions): Fix thinko in maintenance of
19553         heap.
19554
19555 2015-01-22  Wei Mi  <wmi@google.com>
19556
19557         PR rtl-optimization/64557
19558         * dse.c (record_store): Call get_addr for mem_addr.
19559         (check_mem_read_rtx): Likewise.
19560
19561 2015-01-22  Eric Botcazou  <ebotcazou@adacore.com>
19562
19563         * fold-const.c (const_binop): Add early return for non-tcc_binary.
19564
19565 2015-01-22  Chen Gang  <gang.chen.5i5j@gmail.com>
19566
19567         * toplev.c (init_local_tick): Process the failure when read
19568         fails for random_seed.
19569
19570         * ubsan.c (ubsan_type_descriptor): Use 'pretty_print' for
19571         'pretty_name' to avoid memory overflow.
19572
19573 2015-01-22  Richard Biener  <rguenther@suse.de>
19574
19575         PR middle-end/64728
19576         * tree-ssa-coalesce.c (coalesce_partitions): Do not perform
19577         abnormal coalescing on undefined SSA names.
19578
19579 2015-22-01  Uros Bizjak  <ubizjak@gmail.com>
19580
19581         PR target/64688
19582         PR target/64477
19583         * config/i386/sse.md (vec_set<mode>_0): Use (Yi/r/C) constraints
19584         for alternative 3.
19585         (*vec_dup<mode>): Use (Yi/$r) constraints for alternative 1.
19586
19587 2015-01-22  Trevor Saunders  <tsaunders@mozilla.com>
19588
19589         PR middle-end/63325
19590         * fold-const.c (fold_checksum_tree): Don't include value of
19591         expr->decl_with_vis.symtab_node in the checksum.
19592
19593 2015-01-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19594
19595         * config/s390/s390.md (atomic code attribute): Fix typo "ior" -> "or".
19596
19597 2015-01-22  Max Ostapenko  <m.ostapenko@partner.samsung.com>
19598
19599         PR driver/64690
19600         * gcc.c (insert_comments): New function.
19601         (try_generate_repro): Call it.
19602         (append_text): Removed.
19603
19604 2015-01-22  Richard Biener  <rguenther@suse.de>
19605
19606         * ipa-inline.c (can_inline_edge_p): Disable inlining of edges
19607         with IL incompatible options.  Properly honor user optimize
19608         attributes.
19609
19610 2015-01-21  Segher Boessenkool  <segher@kernel.crashing.org>
19611
19612         PR rtl-optimization/64682
19613         * combine.c (distribute_notes): When moving a death note for
19614         a register that is set in the new I2, make sure to put it
19615         before that new I2.
19616
19617 2015-01-21  David Edelsohn  <dje.gcc@gmail.com>
19618
19619         * config/rs6000/rs6000.c (rs6000_file_start): Use rs6000_isa_flags
19620         not TARGET_DEFAULT.
19621
19622 2015-01-21  Jakub Jelinek  <jakub@redhat.com>
19623
19624         PR debug/64511
19625         * simplify-rtx.c (simplify_relational_operation_1): Don't try to
19626         optimize (eq/ne (and (side_effects) (const_int 0)) (const_int 0))
19627         into (eq/ne (and (not (side_effects)) (const_int 0)) (const_int 0)).
19628
19629         PR sanitizer/64706
19630         * doc/invoke.texi (-fsanitize=vptr): Document.
19631
19632         PR rtl-optimization/62078
19633         * dse.c: Include cfgcleanup.h.
19634         (rest_of_handle_dse): For -fnon-call-exceptions, if DSE removed
19635         anything call purge_all_dead_edges and cleanup_cfg at the end
19636         of the pass.
19637
19638 2015-01-21  Jan Hubicka  <hubicka@ucw.cz>
19639
19640         * ipa-utils.c (ipa_merge_profiles): Avoid ICE on mismatch in indirect
19641         edges.
19642
19643 2015-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
19644
19645         * gimplify.c (gimplify_function_tree): Check the no_sanitize_thread
19646         decl attribute.
19647
19648 2015-01-21  David Sherwood  <david.sherwood@arm.com>
19649             Tejas Belagod <Tejas.Belagod@arm.com>
19650
19651         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Removed.
19652         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class): Removed.
19653         * config/aarch64/aarch64-protos.h (aarch64_cannot_change_mode_class):
19654         Removed.
19655
19656 2015-01-21  David Sherwood  <david.sherwood@arm.com>
19657             Tejas Belagod <Tejas.Belagod@arm.com>
19658
19659         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist)
19660         (aarch64_reverse_mask): New decls.
19661         * config/aarch64/iterators.md (UNSPEC_REV_REGLIST): New enum.
19662         (insn_count): New mode_attr.
19663         * config/aarch64/aarch64-simd.md (vec_store_lanesoi, vec_store_lanesci)
19664         (vec_store_lanesxi, vec_load_lanesoi, vec_load_lanesci)
19665         (vec_load_lanesxi): Made ABI compliant for Big Endian targets.
19666         (aarch64_rev_reglist, aarch64_simd_ld2, aarch64_simd_ld3)
19667         (aarch64_simd_ld4, aarch64_simd_st2, aarch64_simd_st3)
19668         (aarch64_simd_st4): New patterns.
19669         * config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist)
19670         (aarch64_reverse_mask): New functions.
19671
19672 2015-01-21  Richard Sandiford  <richard.sandiford@arm.com>
19673
19674         * config/aarch64/aarch64-protos.h (aarch64_simd_disambiguate_copy):
19675         Declare.
19676         * config/aarch64/aarch64.c (aarch64_classify_address): Allow extra
19677         addressing modes for BE.
19678         (aarch64_print_operand): Add 'R' specifier.
19679         (aarch64_simd_disambiguate_copy): Delete.
19680         (aarch64_simd_emit_reg_reg_move): New function.
19681         * config/aarch64/aarch64-simd.md: Use aarch64_simd_emit_reg_reg_move
19682         in define_splits for structural moves.
19683         (mov<mode>): Use less restrictive predicates.
19684         (*aarch64_mov<mode>): Simplify and only allow for LE.
19685         (*aarch64_be_movoi, *aarch64_be_movci, *aarch64_be_movxi): New.
19686
19687 2015-01-21  Alan Hayward  <alan.hayward@arm.com>
19688
19689         * rtlanal.c (subreg_get_info): Exit early for simple and common cases.
19690
19691 2015-01-21  Richard Henderson  <rth@redhat.com>
19692
19693         PR target/64669
19694         * ccmp.c (used_in_cond_stmt_p): Remove.
19695         (expand_ccmp_expr): Don't use it.
19696
19697 2015-01-21  Nick Clifton  <nickc@redhat.com>
19698
19699         * config/rl78/rl78.c (rl78_calculate_death_notes): Look inside
19700         PARALLELs.
19701
19702 2015-01-21  Richard Biener  <rguenther@suse.de>
19703
19704         PR middle-end/64313
19705         * tree-core.h (builtin_info, builtin_info_type): Turn from
19706         an object with two arrays into an array of an object with
19707         decl and two flags, implicit_p and declared_p.
19708         * tree.h (builtin_decl_explicit, builtin_decl_implicit,
19709         set_builtin_decl, set_builtin_decl_implicit_p,
19710         builtin_decl_explicit_p, builtin_decl_implicit_p): Adjust.
19711         (set_builtin_decl_declared_p, builtin_decl_declared_p): New functions.
19712         * builtins.c (builtin_info): Adjust.
19713         * gimplify.c (gimplify_addr_expr): References to builtins
19714         that have been declared by the user makes them eligible for
19715         use by the compiler.  Call set_builtin_decl_implicit_p on them.
19716
19717 2015-01-20  Jeff Law  <law@redhat.com>
19718
19719         PR target/59946
19720         * config/m68k/m68k.md (Comparison expanders and patterns): Do not
19721         allow pc-relative addresses in operand predicates or constraints.
19722
19723 2015-01-21  Bin Cheng  <bin.cheng@arm.com>
19724
19725         * config/arm/arm.c (arm_cortex_a53_tune, arm_cortex_a57_tune): Prefer
19726         neon on aarch32 processors for stringops.
19727
19728 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
19729
19730         PR ipa/63576
19731         * ipa-utils.c (ipa_merge_profiles): Merge speculative edges.
19732
19733 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
19734
19735         PR lto/45375
19736         * ipa-inline.c: Include lto-streamer.h
19737         (report_inline_failed_reason): Output source file differences and
19738         flags on optimization/target node mismatch.
19739         (can_inline_edge_p): Consider caller to be the outer inline function;
19740         be less restrictive about matching opimize and optimize_size attributes.
19741         (inline_account_function_p): Break out from ...
19742         (inline_small_functions): ... here.
19743         * ipa-inline-transform.c (clone_inlined_nodes): Use
19744         inline_account_function_p.
19745         (inline_call): Use optimize attribution; use inline_account_function_p.
19746         (inline_transform): Use opt_for_fn.
19747         * ipa-inline.h (inline_account_function_p): Declare.
19748
19749 2015-01-20  Jakub Jelinek  <jakub@redhat.com>
19750
19751         PR debug/64663
19752         * dwarf2out.c (decl_piece_node): Don't put bitsize into
19753         mode if bitsize <= 0.
19754         (decl_piece_bitsize, adjust_piece_list, add_var_loc_to_decl,
19755         dw_sra_loc_expr): Use HOST_WIDE_INT instead of int for bit
19756         sizes and positions.
19757
19758 2015-01-20  Chung-Lin Tang  <cltang@codesourcery.com>
19759
19760         * config/nios2/nios2.c (nios2_asm_file_end): Implement
19761         TARGET_ASM_FILE_END hook for adding .note.GNU-stack section when
19762         needed.
19763         (TARGET_ASM_FILE_END): Define.
19764
19765 2015-01-20  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
19766
19767         * config/arm/arm-protos.h (enum arm_sched_autopref): New constants.
19768         (struct tune_params): Use the enum.
19769         * arm.c (arm_*_tune): Update.
19770         (arm_option_override): Update.
19771
19772 2015-01-20  Richard Biener  <rguenther@suse.de>
19773
19774         PR ipa/64684
19775         * ipa-reference.c (add_static_var): Inline ...
19776         (analyze_function): ... here after splitting out from ...
19777         (is_proper_for_analysis): ... this.
19778
19779 2015-01-20  Matthew Wahab  <matthew.wahab@arm.com>
19780
19781         PR target/64149
19782         * config/arm/arm.opt: Remove lra option and arm_lra_flag variablesle.
19783         * config/arm/arm.h (MODE_BASE_REG_CLASS): Remove use of arm_lra_flagag,
19784         replace the conditional with it's true branch.
19785         * config/arm/arm.config (TARGET_LRA_P): Set to hook_bool_void_true.
19786         (arm_lra_p): Remove.
19787
19788 2015-01-20  Eric Botcazou  <ebotcazou@adacore.com>
19789
19790         * config/visium/visium.h (LIB_SPEC): Adjust in default case.
19791
19792 2015-01-20  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
19793
19794         * config/tilegx/mul-tables.c: Move symtab.h include after
19795         coretypes.h include.
19796         * config/tilepro/mul-tables.c: Add includes hashtab.h, hash-set.h,
19797         vec.h, machmode.h, tm.h, hard-reg-set.h, input.h, function.h, rtl.h,
19798         flags.h, statistics.h, double-int.h, real.h, fixed-value.h, alias.h,
19799         wide-int.h, inchash.h, tree.h, insn-config.h, expmed.h, dojump.h,
19800         explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
19801
19802 2015-01-20  Igor Zamyatin  <igor.zamyatin@intel.com>
19803
19804         PR bootstrap/64676
19805         Revert:
19806         2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
19807
19808         PR rtl-optimization/64081
19809         * loop-iv.c (def_pred_latch_p): New function.
19810         (latch_dominating_def): Allow specific cases with non-single
19811         definitions.
19812         (iv_get_reaching_def): Likewise.
19813         (check_complex_exit_p): New function.
19814         (check_simple_exit): Use check_complex_exit_p to allow certain cases
19815         with exits not executing on any iteration.
19816
19817 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
19818
19819         PR lto/45375
19820         * i386.c (ix86_option_override_internal): Use ix86_tune_cost
19821         to set branch cost.
19822
19823 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
19824
19825         PR lto/45375
19826         * i386.c (gate): Check flag_expensive_optimizations and
19827         optimize_size.
19828         (ix86_option_override_internal): Drop optimize_size condition
19829         on MASK_ACCUMULATE_OUTGOING_ARGS, MASK_VZEROUPPER,
19830         MASK_AVX256_SPLIT_UNALIGNED_LOAD, MASK_AVX256_SPLIT_UNALIGNED_STORE,
19831         MASK_PREFER_AVX128.
19832         (ix86_avx256_split_vector_move_misalign,
19833         ix86_avx256_split_vector_move_misalign): Check optimize_insn_for_speed.
19834         * sse.md (all uses of TARGET_PREFER_AVX128): Add
19835         optimize_insn_for_speed_p check.
19836
19837 2015-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
19838
19839         * config/mips/mips.h (FP_ASM_SPEC): New define.
19840         (ASM_SPEC): Remove floating-point options and use FP_ASM_SPEC
19841         instead.
19842
19843 2015-01-19  Oleg Endo  <olegendo@gcc.gnu.org>
19844
19845         PR target/53988
19846         * config/sh/sh-protos.h (sh_find_set_of_reg): Make sure not to return
19847         nullptr for insn when reaching the first insn.
19848         * config/sh/sh.c (sh_unspec_insn_p): Rewrite using subrtx_iterator.
19849         (sh_insn_operands_modified_between_p): Add nullptr check.
19850         (sh_find_extending_set_of_reg): Fix log message.  Don't accept
19851         sign extending mem load if the insn contains any UNSPEC or
19852         UNSPEC_VOLATILE.
19853
19854 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
19855
19856         * params.def (inline-unit-growth): Drop to 15%.
19857         * invoke.texi (inline-unit-growth): Document change.
19858
19859 2015-01-19  Martin Liska  <mliska@suse.cz>
19860
19861         PR ipa/64668
19862         * ipa-icf-gimple.c (func_checker::compare_operand): Call proper
19863         function for second argument of OBJ_TYPE_REF.
19864
19865 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
19866
19867         PR ipa/64218
19868         * ipa-inline.c (want_inline_function_to_all_callers_p): Fix check
19869         whether function is an alias.
19870
19871 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
19872
19873         * ipa-devirt.c (ipa_devirt): Drop polymorphic call info in hopeless
19874         cases.
19875
19876 2015-01-19  Vladimir Makarov  <vmakarov@redhat.com>
19877
19878         PR rtl-optimization/64671
19879         * lra-remat.c (operand_to_remat): Don't consider jump and call
19880         insns.
19881
19882 2015-01-19  David Edelsohn  <dje.gcc@gmail.com>
19883
19884         PR target/59828
19885         * config/rs6000/default64.h: Include rs6000-cpus.def.
19886         (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use ISA 2.7 (POWER8).
19887         (TARGET_DEFAULT) [BIG_ENDIAN]: Use POWER4.
19888         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add POWER7
19889         and POWER8.
19890         * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Always default to
19891         POWER8.
19892         * config/rs6000/rs6000.c (rs6000_file_start): Emit .machine
19893         pseudo-op to specify assembler dialect.
19894
19895 2015-01-19  Martin Liska  <mliska@suse.cz>
19896
19897         PR ipa/64664
19898         * ipa-icf.c (sem_item_optimizer::filter_removed_items):
19899         Handle safe potentially removed nodes during filtering.
19900
19901 2015-01-19  Martin Liska  <mliska@suse.cz>
19902
19903         * doc/extend.texi (no_icf): Add new attribute description.
19904         * ipa-icf.c (sem_item_optimizer::merge_classes): Handle cases
19905         where the pass attempts to merge a function with no_icf attribute.
19906
19907 2015-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19908
19909         PR target/64532
19910         * doc/md.texi (ARM Options): Document register constraints.
19911
19912 2015-01-19  Jiong Wang  <jiong.wang@arm.com>
19913             Andrew Pinski  <apinski@cavium.com>
19914
19915         PR target/64304
19916         * config/aarch64/aarch64.md (define_insn "*ashl<mode>3_insn"): Deleted.
19917         (ashl<mode>3): Don't expand if operands[2] is not constant.
19918
19919 2015-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19920
19921         PR target/64448
19922         * config/aarch64/aarch64-simd.md (aarch64_simd_bsl<mode>_internal):
19923         Match xor-and-xor RTL pattern.
19924
19925 2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
19926
19927         PR rtl-optimization/64081
19928         * loop-iv.c (def_pred_latch_p): New function.
19929         (latch_dominating_def): Allow specific cases with non-single
19930         definitions.
19931         (iv_get_reaching_def): Likewise.
19932         (check_complex_exit_p): New function.
19933         (check_simple_exit): Use check_complex_exit_p to allow certain cases
19934         with exits not executing on any iteration.
19935
19936 2015-01-19  Jakub Jelinek  <jakub@redhat.com>
19937
19938         * common.opt (fgraphite): Fix a typo.
19939
19940 2015-01-19  Felix Yang  <felix.yang@huawei.com>
19941
19942         * config/aarch64/aarch64-simd.md (aarch64_<maxmin_uns>p<mode>): New
19943         pattern.
19944         * config/aarch64/aarch64-simd-builtins.def (smaxp, sminp, umaxp,
19945         uminp, smax_nanp, smin_nanp): New builtins.
19946         * config/aarch64/arm_neon.h (vpmax_s8, vpmax_s16, vpmax_s32,
19947         vpmax_u8, vpmax_u16, vpmax_u32, vpmaxq_s8, vpmaxq_s16, vpmaxq_s32,
19948         vpmaxq_u8, vpmaxq_u16, vpmaxq_u32, vpmax_f32, vpmaxq_f32, vpmaxq_f64,
19949         vpmaxqd_f64, vpmaxs_f32, vpmaxnm_f32, vpmaxnmq_f32, vpmaxnmq_f64,
19950         vpmaxnmqd_f64, vpmaxnms_f32, vpmin_s8, vpmin_s16, vpmin_s32, vpmin_u8,
19951         vpmin_u16, vpmin_u32, vpminq_s8, vpminq_s16, vpminq_s32, vpminq_u8,
19952         vpminq_u16, vpminq_u32, vpmin_f32, vpminq_f32, vpminq_f64, vpminqd_f64,
19953         vpmins_f32, vpminnm_f32, vpminnmq_f32, vpminnmq_f64, vpminnmqd_f64,
19954         vpminnms_f32): Rewrite using builtin functions.
19955
19956 2015-01-19  Thomas Schwinge  <thomas@codesourcery.com>
19957
19958         PR libgomp/64625
19959         * omp-low.c (offload_symbol_decl): Remove variable.
19960         (get_offload_symbol_decl): Remove function.
19961         (expand_omp_target): For BUILT_IN_GOMP_TARGET,
19962         BUILT_IN_GOMP_TARGET_DATA, BUILT_IN_GOMP_TARGET_UPDATE pass NULL
19963         instead of &__OFFLOAD_TABLE__, for BUILT_IN_GOACC_DATA_START,
19964         BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL,
19965         BUILT_IN_GOACC_UPDATE don't pass it at all.
19966
19967 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
19968
19969         * tree-sra.c (some_callers_have_mismatched_arguments_p): Allow thunk
19970         callers.
19971
19972 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
19973
19974         * ipa-chkp.c (chkp_produce_thunks): Add early param
19975         to split thunks production into two passes.  Keep
19976         'always_inline' function bodies after the first pass.
19977         (pass_data_ipa_chkp_early_produce_thunks): New.
19978         (pass_ipa_chkp_early_produce_thunks): New.
19979         (pass_ipa_chkp_produce_thunks::execute): Adjust to new
19980         chkp_produce_thunks signature.
19981         (make_pass_ipa_chkp_early_produce_thunks): New.
19982         * passes.def (pass_ipa_chkp_early_produce_thunks): New.
19983         (pass_ipa_chkp_produce_thunks): Move after local optimizations.
19984         * tree-pass.h (make_pass_ipa_chkp_early_produce_thunks): New.
19985
19986 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
19987
19988         * cgraph.c (cgraph_node::dump): Dump profile flags.
19989
19990 2015-01-18  Oleg Endo  <olegendo@gcc.gnu.org>
19991
19992         PR target/64652
19993         * config/sh/sh.md (udivsi3_i4, divsi3_i4): Make use of sfunc address
19994         reg appear first in the parallel.
19995
19996 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
19997
19998         * ipa-reference.c (set_reference_optimization_summary,
19999         ipa_reference_get_not_written_global): Do nothing if ipa-reference is
20000         disabled.
20001         (ignore_module_statics): New static var.
20002         (propagate_bits): If ipa-reference is disabled, do not look into local
20003         properties.
20004         (analyze_function): Disable analysis when ipa_reference is disabled.
20005         (generate_summary): Do not dump when reference is disabled;
20006         collect vars accessed from functions with ipa-reference disabled.
20007         (get_read_write_all_from_node): When ipa-reference is disabled, use the
20008         node flags.
20009         (gate): Enable for LTO.
20010         (ignore_edge_p): New function.
20011         (propagate): Skip functions w/o ipa-reference analysis.
20012         * optc-save-gen.awk: Handle optimize_debug correctly.
20013         * opth-gen.awk: Likewise.
20014         * common.opt (fauto-inc-dec, fdelete-dead-exceptions, ffunction-cse,
20015         fgraphite, fstrict-volatile-bitfields, fira-algorithm, fira-region,
20016         fira-share-save-slots, fira-share-spill-slots,
20017         fmodulo-sched-allow-regmoves, fpartial-inlining,
20018         sched-stalled-insns, fsched-stalled-insns-dep, fstrict-overflow,
20019         ftracer, ftree-parallelize-loops, fassociative-math,
20020         freciprocal-math, fvect-cost-model, fsimd-cost-model): Mark as
20021         Optimization
20022         (fauto-profile, fcommon, fdata-sections, fipa-icf-variables,
20023         ftoplevel-reorder, funit-at-a-time, fwhole-program): Do not mark as
20024         Optimization.
20025         * ipa-icf.c (gate, sem_item_optimizer::filter_removed_items):
20026         Fix for IPA.
20027
20028 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
20029
20030         PR ipa/64378
20031         * ipa-prop.c (try_make_edge_direct_virtual_call): Clear speculative
20032         flag correctly.
20033         * ipa-cp.c (ipa_get_indirect_edge_target_1): Handle speculation.
20034
20035 2015-01-18  Sandra Loosemore  <sandra@codesourcery.com>
20036
20037         * doc/invoke.texi ([-funroll-loops], [-funroll-all-loops]):
20038         Remove duplicate option listings.
20039
20040 2015-01-18  Felix Yang  <felix.yang@huawei.com>
20041
20042         * auto-profile.c (afdo_find_equiv_class): Remove unnecessary test.
20043         (autofdo_source_profile::get_callsite_total_count,
20044         function_instance::get_function_instance_by_decl,
20045         string_table::get_index, string_table::get_index_by_decl,
20046         afdo_vpt_for_early_inline, afdo_callsite_hot_enough_for_early_inline):
20047         Fix comment typos. Reformatting and minor code rearrangement.
20048
20049 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
20050
20051         * config/rs6000/rs6000.md (probe_stack): Delete.
20052         (probe_stack_address): New.
20053
20054 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
20055
20056         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use TARGET_32BIT
20057         to test for 32-bit ABIs, not !TARGET_POWERPC64.
20058
20059 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
20060
20061         * config/rs6000/rs6000.c (rs6000_parallel_return): New function.
20062         (rs6000_function_value): Use it.  Handle SCmode and TCmode as well,
20063         for TARGET_32BIT && TARGET_POWERPC64.  Fix another BITS_PER_WORD
20064         snafu.
20065         (rs6000_libcall_value): Use the new function.
20066
20067 2015-01-17  Sandra Loosemore  <sandra@codesourcery.com>
20068
20069         * doc/invoke.texi ([-ftracer]): Remove duplicate option listing.
20070
20071 2015-01-17  Eric Botcazou  <ebotcazou@adacore.com>
20072
20073         * reorg.c (fill_simple_delay_slots): If TARGET_FLAGS_REGNUM is valid,
20074         implement a more precise life analysis for it during backward scan.
20075
20076 2015-01-17  Jan Kratochvil  <jan.kratochvil@redhat.com>
20077
20078         * dwarf2out.c (gen_producer_string): Ignore also OPT_fpreprocessed.
20079
20080 2015-01-17  Bernd Schmidt  <bernds@codesourcery.com>
20081
20082         PR rtl-optimization/52773
20083         * calls.c (emit_library_call_value): When pushing arguments use
20084         stack_pointer_rtx rather than virtual_outgoing_args_rtx in
20085         CALL_INSN_FUNCTION_USAGE.  Only emit one of use of the magic
20086         stack pointer reference into CALL_INSN_FUNCTION_USAGE.
20087
20088 2015-01-17  Jeff Law  <law@redhat.com>
20089
20090         PR rtl-optimization/32790
20091         * reginfo.c (reg_scan_mark_refs): Look for ZERO_EXTRACT,
20092         not ZERO_EXTEND in SET_DESTs.
20093
20094 2015-01-17  Alan Modra  <amodra@gmail.com>
20095
20096         * cprop.c (do_local_cprop): Revert last change.
20097
20098 2015-01-16  DJ Delorie  <dj@redhat.com>
20099             Nick Clifton  <nickc@redhat.com>
20100
20101         * config/rl78/rl78-real.md (addqi3_real): Allow volatiles.
20102         (addhi3_real): Likewise.  Fix [HL+0] syntax.
20103         (subqi3_real): Likewise.
20104         (subhi3_real): Likewise.
20105         (cbranchqi4_real): Likewise.  Allow saddr,#imm.
20106         (cbranchhi4_real): Likewise.
20107         (cbranchhi4_real_inverted): Likewise.
20108         (cbranchsi4_real_lt): Likewise.
20109         (cbranchsi4_real_ge): Likewise.
20110         (cbranchsi4_real_ge): Likewise.
20111         * config/rl78/rl78-virt.md (add<mode>3_virt): Likewise.
20112         (sub<mode>3_virt): Likewise.
20113         (cbranchqi4_virt): Likewise.
20114         (cbranchhi4_virt): Likewise.
20115         * config/rl78/rl78.c (rl78_print_operand_1): 'p' modifier means
20116         always use '[reg+imm]' even when imm is zero.
20117         * config/rl78/predicates.md (rl78_volatile_memory_operand): New.
20118         (rl78_general_operand): New.
20119         (rl78_nonimmediate_operand): New.
20120         (rl78_nonfar_operand): Use them.
20121         (rl78_nonfar_nonimm_operand): Likewise.
20122         (rl78_stack_based_mem): Fix.
20123         * config/rl78/constraints.md (Ibqi): New.
20124         (IBqi): New.
20125         (Wsa): New.
20126         (Wsf): New.
20127         (Cs1): Fix.
20128         * config/rl78/rl78-expand.md (andqi3): Accept volatiles.
20129         (iorqi3): Likewise.
20130         (xorqi3): Likewise.
20131         * config/rl78/rl78-protos.h (rl78_sfr_p): New.
20132
20133         * config/rl78/constrains (Qs8): New constraint.
20134         * config/rl78/rl78.c (rl78_flags_already_set): New function.
20135         * config/rl78/rl78-protos.h (rl78_flags_already_set): New prototype.
20136         * config/rl78/rl78-real.md (update_Z): New attribute.
20137         Update patterns to set it.
20138         (cbranchqi4_real): Call rl78_flags_already_set() to determine if a
20139         shorter compare and branch sequence can be used.
20140         (cbranchhi4_real): Likewise.
20141         (cbranchhi4_real_inverted): Likewise.
20142
20143         * config/rl78/predicates.md (uword_operand): Allow symbol_refs.
20144         * config/rl78/rl78-c.c (rl78_register_pragmas): Register __near
20145         address space.
20146         * config/rl78/rl78.c (rl78_get_name_encoding): New.
20147         (rl78_option_override): Allow -mes0 only if C.
20148         (characterize_address): Support subregs of symbol_refs.
20149         (rl78_addr_space_address_mode): Move.  Add __near.
20150         (rl78_far_p): Likewise.
20151         (rl78_addr_space_pointer_mode): Likewise.
20152         (rl78_as_legitimate_address): Likewise.
20153         (rl78_addr_space_subset_p): Likewise.
20154         (rl78_addr_space_convert): Likewise.
20155         (rl78_print_operand_1): Support 16-bit addressing of 32-bit
20156         symbols with -mes0.
20157         (transcode_memory_rtx): Don't copy ES if -mes0.  Allow symbol[BC]
20158         addressing.
20159         (rl78_alloc_physical_registers_op1): Change logic to prefer
20160         symbol[BC] addressing.
20161         (frodata_section): New.
20162         (rl78_asm_init_sections): Initialize it.
20163         (rl78_select_section): Put __far readonly symbols in .frodata.
20164         (rl78_make_type_far): New.
20165         (rl78_insert_attributes): Force all readonly symbols to be
20166         __far when -mes0.
20167         (rl78_asm_out_integer): New.
20168         * config/rl78/rl78.h (ADDR_SPACE_NEAR): New.
20169         * config/rl78/rl78.opt (-mes0): New.
20170
20171         * config/rl78/rl78.h (ASM_OUTPUT_LABELREF): New.
20172         (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
20173         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
20174         * config/rl78/rl78-protos.h (rl78_output_labelref): New.
20175         (rl78_saddr_p): New.
20176         (rl78_output_aligned_common): New.
20177         * config/rl78/rl78.c (rl78_output_symbol_ref): Strip encodings.
20178         (rl78_handle_saddr_attribute): New.
20179         (rl78_handle_naked_attribute): New.
20180         (rl78_attribute_table): Add saddr.
20181         (rl78_print_operand_1): Don't print '!' on saddr operands.
20182         (rl78_print_operand_1): Strip encodings.
20183         (rl78_sfr_p): New.
20184         (rl78_strip_name_encoding): New.
20185         (rl78_attrlist_to_encoding): New.
20186         (rl78_encode_section_info): New.
20187         (rl78_asm_init_sections): New.
20188         (rl78_select_section): New.
20189         (rl78_output_labelref): New.
20190         (rl78_output_aligned_common): New.
20191         (rl78_asm_out_integer): New.
20192         (rl78_asm_ctor_dtor): New.
20193         (rl78_asm_constructor): New.
20194         (rl78_asm_destructor): New.
20195
20196         * config/rl78/rl78-real.md (movqi_es): Rename to movqi_to_es.
20197         * config/rl78/rl78.c (rl78_expand_epilogue): Update.
20198         (transcode_memory_rtx): Update.
20199         (rl78_expand_epilogue): Use A_REG instead of 0.
20200
20201 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
20202
20203         * config/arm/arm-protos.h (struct tune_params): New field
20204         sched_autopref_queue_depth.
20205         * config/arm/arm.c (sched-int.h): Include header.
20206         (arm_first_cycle_multipass_dfa_lookahead_guard,)
20207         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define hook.
20208         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,)
20209         (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,)
20210         (arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,)
20211         (arm_cortex_a53_tune, arm_cortex_a57_tune, arm_xgene1_tune,)
20212         (arm_cortex_a5_tune, arm_cortex_a9_tune, arm_cortex_a12_tune,)
20213         (arm_v7m_tune, arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune):
20214         Specify sched_autopref_queue_depth value.  Enabled for A15 and A57.
20215         * config/arm/t-arm (arm.o): Update.
20216         * haifa-sched.c (update_insn_after_change): Update.
20217         (rank_for_schedule): Use auto-prefetcher model, if requested.
20218         (autopref_multipass_init): New static function.
20219         (autopref_rank_for_schedule): New rank_for_schedule heuristic.
20220         (autopref_multipass_dfa_lookahead_guard_started_dump_p): New static
20221         variable for debug dumps.
20222         (autopref_multipass_dfa_lookahead_guard_1): New static helper function.
20223         (autopref_multipass_dfa_lookahead_guard): New global function that
20224         implements TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD hook.
20225         (init_h_i_d): Update.
20226         * params.def (PARAM_SCHED_AUTOPREF_QUEUE_DEPTH): New tuning knob.
20227         * sched-int.h (enum autopref_multipass_data_status): New const enum.
20228         (autopref_multipass_data_): Structure for auto-prefetcher data.
20229         (autopref_multipass_data_def, autopref_multipass_data_t): New typedefs.
20230         (struct _haifa_insn_data:autopref_multipass_data): New field.
20231         (INSN_AUTOPREF_MULTIPASS_DATA): New access macro.
20232         (autopref_multipass_dfa_lookahead_guard): Declare.
20233
20234 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
20235
20236         * rtlanal.c (get_base_term): Handle SCRATCH.
20237
20238 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
20239
20240         * config/aarch64/aarch64.c
20241         (aarch64_sched_first_cycle_multipass_dfa_lookahead): Implement hook.
20242         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
20243         * config/arm/arm.c
20244         (arm_first_cycle_multipass_dfa_lookahead): Implement hook.
20245         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
20246
20247 2015-01-17  Alan Modra  <amodra@gmail.com>
20248
20249         * cprop.c (do_local_cprop): Disallow replacement of fixed
20250         hard registers.
20251
20252 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20253
20254         PR target/62066
20255         * config/arm/arm-builtins.c (arm_expand_neon_args): Call va_end before
20256         early return 0.
20257
20258 2015-01-16  Bernd Edlinger  <bernd.edlinger@hotmail.de>
20259
20260         * sanitizer.def (BUILT_IN_TSAN_VPTR_UPDATE): Fixed parameters.
20261         * tsan.c (instrument_expr): Fixed parameters of __tsan_vptr_update.
20262
20263 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20264
20265         * config/arm/arm.md: Move comment about splitting Thumb1 patterns to...
20266         * config/arm/thumb1.md: ... Here.
20267
20268 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
20269
20270         * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Disallow
20271         TImode for TARGET_32BIT.
20272
20273 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
20274
20275         * config/rs6000/rs6000.c (TARGET_LIBGCC_CMP_RETURN_MODE,
20276         TARGET_LIBGCC_SHIFT_COUNT_MODE, TARGET_UNWIND_WORD_MODE): Implement
20277         as ...
20278         (rs6000_abi_word_mode): New function.
20279
20280 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
20281
20282         * config/rs6000/rs6000.c (rs6000_va_start): Use MIN_UNITS_PER_WORD
20283         instead of UNITS_PER_WORD to describe the size of stack slots.
20284
20285 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
20286
20287         * config/rs6000/rs6000.c (TARGET_PROMOTE_FUNCTION_MODE): Implement
20288         as rs6000_promote_function_mode.  Move comment to there.
20289         (rs6000_promote_function_mode): New function.
20290
20291 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
20292
20293         * config/rs6000/rs6000.h (PROMOTE_MODE): Correct test for when -m32
20294         -mpowerpc64 is active.
20295
20296 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
20297
20298         PR middle-end/64353
20299         * tree-cfg.c (pass_data_fixup_cfg): Update SSA for
20300         virtuals on start.
20301
20302 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
20303
20304         * config/arm/cortex-a57.md: Remove duplicate of file accidentally
20305         introduced in revision 219724.
20306
20307 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20308             Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
20309
20310         PR target/64263
20311         * config/aarch64/aarch64.md (*movsi_aarch64): Don't split if the
20312         destination is not a GP reg.
20313         (*movdi_aarch64): Likewise.
20314
20315 2015-01-16  David Edelsohn  <dje.gcc@gmail.com>
20316
20317         PR target/64623
20318         * config/rs6000/default64.h: Revert ISA change.
20319
20320 2015-01-16  Richard Biener  <rguenther@suse.de>
20321
20322         PR middle-end/64614
20323         * tree-ssa-uninit.c: Include tree-cfg.h.
20324         (MAX_SWITCH_CASES): New define.
20325         (convert_control_dep_chain_into_preds): Handle switch statements.
20326         (is_pred_expr_subset_of): Handle x == CST vs. (x & CST) != 0.
20327         (normalize_one_pred_1): Do not split bit-manipulations.
20328         Record (x & CST).
20329
20330 2015-01-16  Richard Biener  <rguenther@suse.de>
20331
20332         PR tree-optimization/64568
20333         * tree-ssa-forwprop.c (pass_forwprop::execute): Guard
20334         complex load rewriting for TARGET_MEM_REFs.
20335
20336 2015-01-16  Uros Bizjak  <ubizjak@gmail.com>
20337
20338         * builtins.c (expand_builtin_acc_on_device): Check target for NULL.
20339
20340 2015-01-16  Matthew Wahab  <matthew.wahab@arm.com>
20341
20342         PR target/64149
20343         * config/aarch64/aarch64.opt: Remove lra option and aarch64_lra_flag
20344         variable.
20345         * config/aarch64/aarch64.c (TARGET_LRA_P): Set to hook_bool_void_true.
20346         (aarch64_lra_p): Remove.
20347
20348 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
20349
20350         PR target/64363
20351         * ipa-chkp.h (chkp_instrumentable_p): New.
20352         * ipa-chkp.c: Include tree-inline.h.
20353         (chkp_instrumentable_p): New.
20354         (chkp_maybe_create_clone): Use chkp_instrumentable_p.
20355         Fix processing of not instrumentable functions.
20356         (chkp_versioning): Use chkp_instrumentable_p. Warn about
20357         not instrumentable functions.
20358         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Use
20359         chkp_instrumentable_p.
20360         * tree-inline.h (copy_forbidden): New.
20361         * tree-inline.c (copy_forbidden): Not static anymore.
20362
20363 2015-01-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20364
20365         * optc-save-gen.awk (cl_target_option_print_diff): Mark indent,
20366         ptr1, ptr2 unused.
20367
20368 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
20369
20370         * lra-constraints.c (curr_insn_transform): Change a reload pseudo of
20371         type OP_OUT to OP_INOUT.
20372
20373 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
20374
20375         * simplify-rtx.c (simplify_replace_fn_rtx): Simplify (lo_sum
20376         (high x) y) to y if x and y have the same base.
20377
20378 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
20379
20380         * config/arm/cortex-a57.md: New.
20381         * config/aarch64/aarch64.md: Include it.
20382         * config/aarch64/aarch64-cores.def (cortex-a57): Tune for it.
20383         * config/aarch64/aarch64-tune.md: Regenerate.
20384
20385 2015-01-16  Zhenqiang Chen  <zhenqiang.chen@arm.com>
20386
20387         PR target/64015
20388         * ccmp.c (expand_ccmp_next): New function.
20389         (expand_ccmp_expr_1, expand_ccmp_expr): Handle operand insn sequence
20390         and compare insn sequence.
20391         * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
20392         aarch64_gen_ccmp_first, aarch64_gen_ccmp_next): New functions.
20393         (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New MICRO.
20394         * config/aarch64/aarch64.md (*ccmp_and): Changed to ccmp_and<mode>.
20395         (*ccmp_ior): Changed to ccmp_ior<mode>.
20396         (cmp<mode>): New pattern.
20397         * doc/tm.texi (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Update
20398         parameters.
20399         * target.def (gen_ccmp_first, gen_ccmp_next): Update parameters.
20400
20401 2015-01-16  Ilya Tocar  <ilya.tocar@intel.com>
20402
20403         * config/i386/avx2intrin.h (_mm256_bslli_epi128,
20404         _mm256_bsrli_epi128): New.
20405         * config/i386/emmintrin.h (_mm_bsrli_si128, _mm_bslli_si128): Ditto.
20406
20407 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
20408
20409         * expmed.c (store_bit_field_using_insv): Improve warning message.
20410         Use %wu instead of HOST_WIDE_INT_PRINT_UNSIGNED.
20411
20412 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
20413
20414         PR rtl-optimization/64011
20415         * expmed.c (store_bit_field_using_insv): Warn and truncate bitsize when
20416         there is partial overflow.
20417
20418 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
20419
20420         * config/nds32/nds32-protos.h (nds32_expand_epilogue): Change
20421         prototype.
20422         (nds32_expand_epilogue_v3pop): Likewise.
20423         * config/nds32/nds32.md (sibcall): Define this for sibling call
20424         optimization.
20425         (sibcall_register): Likewise.
20426         (sibcall_immediate): Likewise.
20427         (sibcall_value): Likewise.
20428         (sibcall_value_register): Likewise.
20429         (sibcall_value_immediate): Likewise.
20430         (sibcall_epilogue): Likewise.
20431         (epilogue): Pass false to indicate this is not a sibcall epilogue.
20432         * config/nds32/nds32.c (nds32_expand_epilogue): Consider sibcall case.
20433         (nds32_expand_epilogue_v3pop): Likewise.
20434
20435 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
20436
20437         * config/nds32/nds32-protos.h (nds32_can_use_return_insn): New.
20438         * config/nds32/nds32.md (unspec_volatile_func_return): Remove.
20439         (return_internal): New.
20440         (return): Define this named pattern.
20441         (simple_return): Define this named pattern.
20442         * config/nds32/nds32.c (nds32_expand_epilogue): Emit return_internal
20443         pattern instead of unspec_volatile_func_return.
20444         (nds32_expand_epilogue_v3pop): Likewise.
20445         (nds32_can_use_return_insn): New function.
20446
20447 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
20448
20449         * config/nds32/constants.md (UNSPEC_VOLATILE_POP25_RETURN): New.
20450         * config/nds32/nds32.md (pop25return): New.
20451         * config/nds32/nds32.c (nds32_expand_epilogue_v3pop): Emit
20452         pop25return pattern.
20453
20454 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
20455
20456         * doc/invoke.texi (NDS32 Options): Remove -mforce-fp-as-gp,
20457         -mforbid-fp-as-gp, and -mex9 options.
20458
20459 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
20460
20461         * doc/invoke.texi (NDS32 Options): Add -mcmodel= option and
20462         remove -mgp-direct option.
20463
20464 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
20465
20466         * doc/invoke.texi (--param early-inlining-insns): Update default value.
20467         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 14.
20468
20469 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
20470
20471         * ipa-inline.c (inline_small_functions): Work around hints
20472         cache issue.
20473
20474 2015-01-15  Sandra Loosemore  <sandra@codesourcery.com>
20475
20476         PR target/59710
20477         * doc/invoke.texi (Option Summary): Document new Nios II
20478         -mgpopt= syntax.
20479         (Nios II Options): Likewise.
20480         * config/nios2/nios2.opt: Add -mgpopt= option support.
20481         Modify existing -mgpopt and -mno-gpopt options to be aliases.
20482         * config/nios2/nios2-opts.h (enum nios2_gpopt_type): New.
20483         * config/nios2/nios2.c (nios2_option_override): Adjust
20484         -mgpopt defaulting.
20485         (nios2_in_small_data_p): Return true for explicit small data
20486         sections even with -G0.
20487         (nios2_symbol_ref_in_small_data_p): Adjust to handle new -mgpopt=
20488         option choices.
20489
20490 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
20491
20492         PR ipa/64612
20493         * ipa-inline-transform.c (can_remove_node_now_p): Fix handling
20494         of comdat locals.
20495         (inline_call): Fix removal of aliases.
20496
20497 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
20498
20499         * flag-types.h (enum sanitize_code): Add SANITIZE_VPTR,
20500         include SANITIZE_VPTR in SANITIZE_UNDEFINED.
20501         * opts.c (common_handle_option): Add -fsanitize=vptr.
20502         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS,
20503         BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS_ABORT): New.
20504         * ubsan.h (enum ubsan_null_ckind): Add UBSAN_DOWNCAST_POINTER,
20505         UBSAN_DOWNCAST_REFERENCE, UBSAN_UPCAST and UBSAN_CAST_TO_VBASE.
20506         (ubsan_expand_vptr_ifn): New prototype.
20507         * internal-fn.c (expand_ANNOTATE, expand_GOMP_SIMD_LANE,
20508         expand_GOMP_SIMD_VF, expand_GOMP_SIMD_LAST_LANE, expand_UBSAN_NULL,
20509         expand_UBSAN_BOUNDS, expand_UBSAN_OBJECT_SIZE, expand_ASAN_CHECK,
20510         expand_LOOP_VECTORIZED): Make argument nameless, remove
20511         ATTRIBUTE_UNUSED.
20512         (expand_UBSAN_VPTR): New function.
20513         * internal-fn.def (UBSAN_NULL, ASAN_CHECK): Use R instead of W
20514         in fn spec.
20515         (UBSAN_VPTR): New internal function.
20516         * sanopt.c (tree_map_traits): Renamed to ...
20517         (sanopt_tree_map_traits): ... this.
20518         (sanopt_tree_triplet, sanopt_tree_triplet_map_traits): New classes.
20519         (sanopt_ctx): Adjust asan_check_map type for tree_map_traits
20520         to sanopt_tree_map_traits renaming.  Add vptr_check_map field.
20521         (maybe_optimize_ubsan_vptr_ifn): New function.
20522         (sanopt_optimize_walker): Handle IFN_UBSAN_VPTR.
20523         (pass_sanopt::execute): Likewise.  Call sanopt_optimize even for
20524         -fsanitize=vptr.
20525         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Handle certain
20526         internal calls like pure functions for aliasing, even when they
20527         have other side-effects that prevent making them ECF_PURE.
20528         * ubsan.c (ubsan_vptr_type_cache_decl): New variable.
20529         (ubsan_expand_vptr_ifn): New function.
20530
20531 2015-01-15  Vladimir Makarov  <vmakarov@redhat.com>
20532
20533         PR rtl-optimization/64110
20534         * stmt.c (parse_output_constraint): Process '^' and '$'.
20535         (parse_input_constraint): Ditto.
20536         * lra-constraints.c (process_alt_operands): Process the new
20537         constraints.
20538         * ira-costs.c (record_reg_classes): Process the new constraint
20539         '^'.
20540         * genoutput.c (indep_constraints): Add '^' and '$'.
20541         * config/i386/sse.md (*vec_dup<mode>): Use '$' instead of '!'.
20542         * doc/md.texi: Add description of the new constraints.
20543
20544 2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
20545             Bernd Schmidt  <bernds@codesourcery.com>
20546             Cesar Philippidis  <cesar@codesourcery.com>
20547             James Norris  <jnorris@codesourcery.com>
20548             Tom de Vries  <tom@codesourcery.com>
20549             Ilmir Usmanov  <i.usmanov@samsung.com>
20550             Dmitry Bocharnikov  <dmitry.b@samsung.com>
20551             Evgeny Gavrin  <e.gavrin@samsung.com>
20552             Jakub Jelinek  <jakub@redhat.com>
20553
20554         * builtin-types.def (BT_FN_VOID_INT_INT_VAR)
20555         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
20556         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
20557         New function types.
20558         * builtins.c: Include "gomp-constants.h".
20559         (expand_builtin_acc_on_device): New function.
20560         (expand_builtin, is_inexpensive_builtin): Handle
20561         BUILT_IN_ACC_ON_DEVICE.
20562         * builtins.def (DEF_GOACC_BUILTIN, DEF_GOACC_BUILTIN_COMPILER):
20563         New macros.
20564         * cgraph.c (cgraph_node::create): Consider flag_openacc next to
20565         flag_openmp.
20566         * config.gcc <nvptx-*> (tm_file): Add nvptx/offload.h.
20567         <*-intelmic-* | *-intelmicemul-*> (tm_file): Add
20568         i386/intelmic-offload.h.
20569         * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): For -fopenacc, link
20570         to libgomp and its dependencies.
20571         * config/arc/arc.h (LINK_COMMAND_SPEC): Likewise.
20572         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
20573         * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
20574         * config/ia64/hpux.h (LIB_SPEC): Likewise.
20575         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
20576         * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
20577         * doc/generic.texi: Update for OpenACC changes.
20578         * doc/gimple.texi: Likewise.
20579         * doc/invoke.texi: Likewise.
20580         * doc/sourcebuild.texi: Likewise.
20581         * gimple-pretty-print.c (dump_gimple_omp_for): Handle
20582         GF_OMP_FOR_KIND_OACC_LOOP.
20583         (dump_gimple_omp_target): Handle GF_OMP_TARGET_KIND_OACC_KERNELS,
20584         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_DATA,
20585         GF_OMP_TARGET_KIND_OACC_UPDATE,
20586         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
20587         Dump more data.
20588         * gimple.c: Update comments for OpenACC changes.
20589         * gimple.def: Likewise.
20590         * gimple.h: Likewise.
20591         (enum gf_mask): Add GF_OMP_FOR_KIND_OACC_LOOP,
20592         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
20593         GF_OMP_TARGET_KIND_OACC_DATA, GF_OMP_TARGET_KIND_OACC_UPDATE,
20594         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
20595         (gimple_omp_for_cond, gimple_omp_for_set_cond): Sort in the
20596         appropriate place.
20597         (is_gimple_omp_oacc, is_gimple_omp_offloaded): New functions.
20598         * gimplify.c: Include "gomp-constants.h".
20599         Update comments for OpenACC changes.
20600         (is_gimple_stmt): Handle OACC_PARALLEL, OACC_KERNELS, OACC_DATA,
20601         OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE, OACC_ENTER_DATA,
20602         OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
20603         (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
20604         OMP_CLAUSE__CACHE_, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
20605         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
20606         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER,
20607         OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
20608         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
20609         OMP_CLAUSE_SEQ.
20610         (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Use
20611         GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
20612         OMP_CLAUSE_SET_MAP_KIND.
20613         (gimplify_oacc_cache): New function.
20614         (gimplify_omp_for): Handle OACC_LOOP.
20615         (gimplify_omp_workshare): Handle OACC_KERNELS, OACC_PARALLEL,
20616         OACC_DATA.
20617         (gimplify_omp_target_update): Handle OACC_ENTER_DATA,
20618         OACC_EXIT_DATA, OACC_UPDATE.
20619         (gimplify_expr): Handle OACC_LOOP, OACC_CACHE, OACC_HOST_DATA,
20620         OACC_DECLARE, OACC_KERNELS, OACC_PARALLEL, OACC_DATA,
20621         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE.
20622         (gimplify_body): Consider flag_openacc next to flag_openmp.
20623         * lto-streamer-out.c: Include "gomp-constants.h".
20624         * omp-builtins.def (BUILT_IN_ACC_GET_DEVICE_TYPE)
20625         (BUILT_IN_GOACC_DATA_START, BUILT_IN_GOACC_DATA_END)
20626         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL)
20627         (BUILT_IN_GOACC_UPDATE, BUILT_IN_GOACC_WAIT)
20628         (BUILT_IN_GOACC_GET_THREAD_NUM, BUILT_IN_GOACC_GET_NUM_THREADS)
20629         (BUILT_IN_ACC_ON_DEVICE): New builtins.
20630         * omp-low.c: Include "gomp-constants.h".
20631         Update comments for OpenACC changes.
20632         (struct omp_context): Add reduction_map, gwv_below, gwv_this
20633         members.
20634         (extract_omp_for_data, use_pointer_for_field, install_var_field)
20635         (new_omp_context, delete_omp_context, scan_sharing_clauses)
20636         (create_omp_child_function, scan_omp_for, scan_omp_target)
20637         (check_omp_nesting_restrictions, lower_reduction_clauses)
20638         (build_omp_regions_1, diagnose_sb_0, make_gimple_omp_edges):
20639         Update for OpenACC changes.
20640         (scan_sharing_clauses): Handle OMP_CLAUSE_NUM_GANGS:
20641         OMP_CLAUSE_NUM_WORKERS: OMP_CLAUSE_VECTOR_LENGTH,
20642         OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT, OMP_CLAUSE_GANG,
20643         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
20644         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_INDEPENDENT,
20645         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ.  Use GOMP_MAP_* instead of
20646         OMP_CLAUSE_MAP_*.
20647         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
20648         Handle GF_OMP_FOR_KIND_OACC_LOOP.
20649         (expand_omp_target, lower_omp_target): Handle
20650         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
20651         GF_OMP_TARGET_KIND_OACC_UPDATE,
20652         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA,
20653         GF_OMP_TARGET_KIND_OACC_DATA.
20654         (pass_expand_omp::execute, execute_lower_omp)
20655         (pass_diagnose_omp_blocks::gate): Consider flag_openacc next to
20656         flag_openmp.
20657         (offload_symbol_decl): New variable.
20658         (oacc_get_reduction_array_id, oacc_max_threads)
20659         (get_offload_symbol_decl, get_base_type, lookup_oacc_reduction)
20660         (maybe_lookup_oacc_reduction, enclosing_target_ctx)
20661         (oacc_loop_or_target_p, oacc_lower_reduction_var_helper)
20662         (oacc_gimple_assign, oacc_initialize_reduction_data)
20663         (oacc_finalize_reduction_data, oacc_process_reduction_data): New
20664         functions.
20665         (is_targetreg_ctx): Remove function.
20666         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CACHE_,
20667         OMP_CLAUSE_DEVICE_RESIDENT, OMP_CLAUSE_USE_DEVICE,
20668         OMP_CLAUSE_GANG, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
20669         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT,
20670         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_NUM_GANGS,
20671         OMP_CLAUSE_NUM_WORKERS, OMP_CLAUSE_VECTOR_LENGTH.
20672         * tree.c (omp_clause_code_name, walk_tree_1): Update accordingly.
20673         * tree.h (OMP_CLAUSE_GANG_EXPR, OMP_CLAUSE_GANG_STATIC_EXPR)
20674         (OMP_CLAUSE_ASYNC_EXPR, OMP_CLAUSE_WAIT_EXPR)
20675         (OMP_CLAUSE_VECTOR_EXPR, OMP_CLAUSE_WORKER_EXPR)
20676         (OMP_CLAUSE_NUM_GANGS_EXPR, OMP_CLAUSE_NUM_WORKERS_EXPR)
20677         (OMP_CLAUSE_VECTOR_LENGTH_EXPR): New macros.
20678         * tree-core.h: Update comments for OpenACC changes.
20679         (enum omp_clause_map_kind): Remove.
20680         (struct tree_omp_clause): Change type of map_kind member from enum
20681         omp_clause_map_kind to unsigned char.
20682         * tree-inline.c: Update comments for OpenACC changes.
20683         * tree-nested.c: Likewise.  Include "gomp-constants.h".
20684         (convert_nonlocal_reference_stmt, convert_local_reference_stmt)
20685         (convert_tramp_reference_stmt, convert_gimple_call): Update for
20686         OpenACC changes.  Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
20687         OMP_CLAUSE_SET_MAP_KIND.
20688         * tree-pretty-print.c: Include "gomp-constants.h".
20689         (dump_omp_clause): Handle OMP_CLAUSE_DEVICE_RESIDENT,
20690         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_GANG,
20691         OMP_CLAUSE_ASYNC, OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ,
20692         OMP_CLAUSE_WAIT, OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR,
20693         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
20694         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_INDEPENDENT.  Use GOMP_MAP_*
20695         instead of OMP_CLAUSE_MAP_*.
20696         (dump_generic_node): Handle OACC_PARALLEL, OACC_KERNELS,
20697         OACC_DATA, OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE,
20698         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
20699         * tree-streamer-in.c: Include "gomp-constants.h".
20700         (unpack_ts_omp_clause_value_fields) Use GOMP_MAP_* instead of
20701         OMP_CLAUSE_MAP_*.  Use OMP_CLAUSE_SET_MAP_KIND.
20702         * tree-streamer-out.c: Include "gomp-constants.h".
20703         (pack_ts_omp_clause_value_fields): Use GOMP_MAP_* instead of
20704         OMP_CLAUSE_MAP_*.
20705         * tree.def (OACC_PARALLEL, OACC_KERNELS, OACC_DATA)
20706         (OACC_HOST_DATA, OACC_LOOP, OACC_CACHE, OACC_DECLARE)
20707         (OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE): New tree codes.
20708         * tree.c (omp_clause_num_ops): Update accordingly.
20709         * tree.h (OMP_BODY, OMP_CLAUSES, OMP_LOOP_CHECK, OMP_CLAUSE_SIZE):
20710         Likewise.
20711         (OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES, OACC_KERNELS_BODY)
20712         (OACC_KERNELS_CLAUSES, OACC_DATA_BODY, OACC_DATA_CLAUSES)
20713         (OACC_HOST_DATA_BODY, OACC_HOST_DATA_CLAUSES, OACC_CACHE_CLAUSES)
20714         (OACC_DECLARE_CLAUSES, OACC_ENTER_DATA_CLAUSES)
20715         (OACC_EXIT_DATA_CLAUSES, OACC_UPDATE_CLAUSES)
20716         (OACC_KERNELS_COMBINED, OACC_PARALLEL_COMBINED): New macros.
20717         * tree.h (OMP_CLAUSE_MAP_KIND): Cast it to enum gomp_map_kind.
20718         (OMP_CLAUSE_SET_MAP_KIND): New macro.
20719         * varpool.c (varpool_node::get_create): Consider flag_openacc next
20720         to flag_openmp.
20721         * config/i386/intelmic-offload.h: New file.
20722         * config/nvptx/offload.h: Likewise.
20723
20724 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
20725
20726         * explow.h: Remove duplicate contents.
20727         * dojump.h: Likewise.
20728
20729 2015-01-15  Richard Earnshaw  <rearnsha@arm.com>
20730
20731         * arm.c (arm_xgene_tune): Add default initializer for instruction
20732         fusion.
20733
20734 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
20735
20736         PR ipa/64068
20737         PR ipa/64559
20738         * ipa.c (symbol_table::remove_unreachable_nodes):
20739         Do not put abstract origins into boundary.
20740
20741 2015-01-15  Evgeny Stupachenko  <evstupac@gmail.com>
20742
20743         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Remove EBX register usage.
20744         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Ditto.
20745
20746 2015-01-15  Steve Ellcey  <sellcey@mips.com>
20747
20748         * Makefile.in (PLUGIN_HEADERS): Add dominance.h, cfg.h, cfgrtl.h,
20749         cfganal.h, cfgbuild.h, cfgcleanup.h, lcm.h, cfgloopmanip.h,
20750         builtins.def, and chkp-builtins.def.
20751
20752 2015-01-15  David Edelsohn  <dje.gcc@gmail.com>
20753
20754         * config/rs6000/default64.h (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use
20755         ISA 2.7 (POWER8).
20756
20757 2015-01-15  Richard Biener  <rguenther@suse.de>
20758
20759         PR tree-optimization/61743
20760         * tree-ssa-pre.c (insert_into_preds_of_block): Preserve range
20761         information on PHIs for some simple cases.
20762
20763 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
20764
20765         * config/arm/arm.md (generic_sched): Specify xgene1 in 'no' list.
20766         Include xgene1.md.
20767         * config/arm/arm.c (arm_issue_rate): Specify 4 for xgene1.
20768         * config/arm/arm-cores.def (xgene1): New entry.
20769         * config/arm/arm-tables.opt: Regenerate.
20770         * config/arm/arm-tune.md: Regenerate.
20771         * config/arm/bpabi.h (BE8_LINK_SPEC): Specify mcpu=xgene1.
20772
20773 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
20774
20775         * tree-if-conv.c: Include hash-map.h.
20776         (aggressive_if_conv): New variable.
20777         (fold_build_cond_expr): Add simplification of non-zero condition.
20778         (add_to_dst_predicate_list): Invoke add_to_predicate_list if edge
20779         destination block is not always executed.
20780         (if_convertible_phi_p): Fix commentary, allow phi nodes have more
20781         than two predecessors if AGGRESSIVE_IF_CONV is true.
20782         (if_convertible_stmt_p): Fix commentary.
20783         (all_preds_critical_p): New function.
20784         (has_pred_critical_p): New function.
20785         (if_convertible_bb_p): Fix commentary, if AGGRESSIVE_IF_CONV is true
20786         BB can have more than two predecessors and all incoming edges can be
20787         critical.
20788         (predicate_bbs): Skip predication for loop exit block, use build2_loc
20789         to compute predicate for true edge.
20790         (find_phi_replacement_condition): Delete this function.
20791         (is_cond_scalar_reduction): Add arguments ARG_0, ARG_1 and EXTENDED.
20792         Allow interchange PHI arguments if EXTENDED is false.
20793         Change check that block containing reduction statement candidate
20794         is predecessor of phi-block since phi may have more than two arguments.
20795         (phi_args_hash_traits): New helper structure.
20796         (struct phi_args_hash_traits): New type.
20797         (phi_args_hash_traits::hash): New function.
20798         (phi_args_hash_traits::equal_keys): New function.
20799         (gen_phi_arg_condition): New function.
20800         (predicate_scalar_phi): Add handling of phi nodes with more than two
20801         arguments, delete COND and TRUE_BB arguments, insert body of
20802         find_phi_replacement_condition to predicate ordinary phi nodes.
20803         (predicate_all_scalar_phis): Skip blocks with the only predecessor,
20804         delete call of find_phi_replacement_condition and invoke
20805         predicate_scalar_phi with two arguments.
20806         (insert_gimplified_predicates): Add assert that non-predicated block
20807         don't have statements to insert.
20808         (ifcvt_split_critical_edges): New function.
20809         (ifcvt_split_def_stmt): Likewise.
20810         (ifcvt_walk_pattern_tree): Likewise.
20811         (stmt_is_root_of_bool_pattern): Likewise.
20812         (ifcvt_repair_bool_pattern): Likewise.
20813         (ifcvt_local_dce): Likewise.
20814         (tree_if_conversion): Add initialization of AGGRESSIVE_IF_CONV which
20815         is copy of inner or outer loop force_vectorize field, invoke
20816         ifcvt_split_critical_edges, ifcvt_local_dce and
20817         ifcvt_repair_bool_pattern for aggressive if-conversion.
20818
20819 2015-01-15  Philipp Tomsich  <ptomsich@theobroma-systems.com>
20820
20821         * config/aarch64/aarch64.md: Include xgene1.md.
20822         * config/aarch64/xgene1.md: New file.
20823
20824 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
20825
20826         * config/aarch64/aarch64-cores.def (xgene1): Update/add the
20827         xgene1 (APM XGene-1) core definition.
20828         * gcc/config/aarch64/aarch64.c: Add cost tables for APM XGene-1
20829         * config/arm/aarch-cost-tables.h: Add cost tables for APM XGene-1
20830         * doc/invoke.texi: Document -mcpu=xgene1.
20831
20832 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
20833
20834         * dojump.h: New header file.
20835         * explow.h: Likewise.
20836         * expr.h: Remove includes.
20837         Move expmed.c prototypes to expmed.h.
20838         Move dojump.c prototypes to dojump.h.
20839         Move alias.c prototypes to alias.h.
20840         Move explow.c prototypes to explow.h.
20841         Move calls.c prototypes to calls.h.
20842         Move emit-rtl.c prototypes to emit-rtl.h.
20843         Move varasm.c prototypes to varasm.h.
20844         Move stmt.c prototypes to stmt.h.
20845         (saved_pending_stack_adjust): Move to dojump.h.
20846         (adjust_address): Move to explow.h.
20847         (adjust_address_nv): Move to emit-rtl.h.
20848         (adjust_bitfield_address): Likewise.
20849         (adjust_bitfield_address_size): Likewise.
20850         (adjust_bitfield_address_nv): Likewise.
20851         (adjust_automodify_address_nv): Likewise.
20852         * explow.c (expr_size): Move to expr.c.
20853         (int_expr_size): Likewise.
20854         (tree_expr_size): Likewise.
20855         Include calls.h dojump.h emit-rtl.h explow.h expmed.h
20856         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
20857         * genemit.c (main): Generate includes statistics.h, real.h,
20858         fixed-value.h, insn-config.h, expmed.h, dojump.h, explow.h, emit-rtl.h,
20859         stmt.h.
20860         * genopinit.c (main): Generate includes hashtab.h, hard-reg-set.h,
20861         function.h, statistics.h, real.h, fixed-value.h, expmed.h, dojump.h,
20862         explow.h, emit-rtl.h, stmt.h.
20863         * genoutput.c (main): Generate includes hashtab.h, statistics.h, real.h,
20864         fixed-value.h, expmed.h, dojump.h, explow.h, emit-rtl.h, stmt.h.
20865         * genemit.c (open_base_files): Generate includes flags.h, statistics.h,
20866         real.h, fixed-value.h, tree.h, expmed.h, dojump.h, explow.h, calls.h,
20867         emit-rtl.h, varasm.h, stmt.h.
20868         * config/tilepro/gen-mul-tables.cc: Generate includes hashtab.h,
20869         hash-set.h, vec.h, machmode.h, tm.h, hard-reg-set.h, input.h,
20870         function.h, rtl.h, flags.h, statistics.h, double-int.h, real.h,
20871         fixed-value.h, alias.h, wide-int.h, inchash.h, tree.h, insn-config.h,
20872         expmed.h, dojump.h, explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
20873         * config/tilegx/mul-tables.c: Include alias.h calls.h dojump.h
20874         double-int.h emit-rtl.h explow.h expmed.h fixed-value.h flags.h
20875         function.h hard-reg-set.h hash-set.h hashtab.h inchash.h input.h
20876         insn-config.h machmode.h real.h rtl.h statistics.h stmt.h symtab.h
20877         tm.h tree.h varasm.h vec.h wide-int.h.
20878         * rtlhooks.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
20879         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
20880         hash-set.h hashtab.h inchash.h input.h insn-config.h machmode.h
20881         real.h statistics.h stmt.h tree.h varasm.h vec.h wide-int.h.
20882         * cfgloopanal.c: Include alias.h calls.h dojump.h double-int.h
20883         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h
20884         insn-config.h real.h statistics.h stmt.h tree.h varasm.h wide-int.h.
20885         * loop-iv.c: Likewise.
20886         * lra-assigns.c: Include alias.h calls.h dojump.h double-int.h
20887         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h real.h
20888         statistics.h stmt.h tree.h varasm.h wide-int.h.
20889         * lra-constraints.c: Likewise.
20890         * lra-eliminations.c: Likewise.
20891         * lra-lives.c: Likewise.
20892         * lra-remat.c: Likewise.
20893         * bt-load.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
20894         explow.h expmed.h fixed-value.h inchash.h insn-config.h real.h
20895         statistics.h stmt.h tree.h varasm.h wide-int.h.
20896         * hw-doloop.c: Likewise.
20897         * ira-color.c: Likewise.
20898         * ira-emit.c: Likewise.
20899         * loop-doloop.c: Likewise.
20900         * loop-invariant.c: Likewise.
20901         * reload.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
20902         explow.h expmed.h fixed-value.h inchash.h real.h rtl.h
20903         statistics.h stmt.h tree.h varasm.h wide-int.h.
20904         * caller-save.c: Include alias.h calls.h dojump.h double-int.h
20905         emit-rtl.h explow.h expmed.h fixed-value.h inchash.h real.h
20906         statistics.h stmt.h tree.h varasm.h wide-int.h.
20907         * combine-stack-adj.c: Likewise.
20908         * cse.c: Likewise.
20909         * ddg.c: Likewise.
20910         * ifcvt.c: Likewise.
20911         * ira-costs.c: Likewise.
20912         * jump.c: Likewise.
20913         * lra-coalesce.c: Likewise.
20914         * lra-spills.c: Likewise.
20915         * profile.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
20916         explow.h expmed.h fixed-value.h insn-config.h real.h statistics.h
20917         stmt.h varasm.h wide-int.h.
20918         * lra.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
20919         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
20920         varasm.h.
20921         * config/sh/sh_treg_combine.cc: Include alias.h calls.h dojump.h
20922         double-int.h explow.h expmed.h fixed-value.h flags.h real.h
20923         statistics.h stmt.h varasm.h wide-int.h.
20924         * reorg.c: Include alias.h calls.h dojump.h double-int.h explow.h
20925         expmed.h fixed-value.h inchash.h real.h statistics.h stmt.h tree.h
20926         varasm.h wide-int.h.
20927         * reload1.c: Include alias.h calls.h dojump.h double-int.h explow.h
20928         expmed.h fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
20929         * config/tilegx/tilegx.c: Include alias.h dojump.h double-int.h
20930         emit-rtl.h explow.h expmed.h fixed-value.h flags.h real.h
20931         statistics.h stmt.h.
20932         * config/tilepro/tilepro.c: Likewise.
20933         * config/mmix/mmix.c: Include alias.h dojump.h double-int.h emit-rtl.h
20934         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h.
20935         * config/pdp11/pdp11.c: Likewise.
20936         * config/xtensa/xtensa.c: Likewise.
20937         * config/lm32/lm32.c: Include alias.h dojump.h double-int.h emit-rtl.h
20938         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
20939         varasm.h.
20940         * tree-chkp.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
20941         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
20942         insn-config.h real.h rtl.h statistics.h stmt.h tm.h.
20943         * cilk-common.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
20944         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
20945         insn-config.h real.h rtl.h statistics.h stmt.h tm.h varasm.h.
20946         * rtl-chkp.c: Likewise.
20947         * tree-chkp-opt.c: Likewise.
20948         * config/arm/arm-builtins.c: Include calls.h dojump.h emit-rtl.h
20949         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
20950         hashtab.h insn-config.h real.h statistics.h stmt.h varasm.h.
20951         * ipa-icf.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
20952         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
20953         statistics.h stmt.h.
20954         * tree-vect-data-refs.c: Likewise.
20955         * graphite-sese-to-poly.c: Include calls.h dojump.h emit-rtl.h explow.h
20956         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
20957         rtl.h statistics.h stmt.h varasm.h.
20958         * internal-fn.c: Likewise.
20959         * ipa-icf-gimple.c: Likewise.
20960         * lto-section-out.c: Likewise.
20961         * tree-data-ref.c: Likewise.
20962         * tree-nested.c: Likewise.
20963         * tree-outof-ssa.c: Likewise.
20964         * tree-predcom.c: Likewise.
20965         * tree-pretty-print.c: Likewise.
20966         * tree-scalar-evolution.c: Likewise.
20967         * tree-ssa-strlen.c: Likewise.
20968         * tree-vect-loop.c: Likewise.
20969         * tree-vect-patterns.c: Likewise.
20970         * tree-vect-slp.c: Likewise.
20971         * tree-vect-stmts.c: Likewise.
20972         * tsan.c: Likewise.
20973         * targhooks.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
20974         fixed-value.h flags.h hashtab.h insn-config.h real.h statistics.h
20975         stmt.h.
20976         * config/sh/sh-mem.cc: Include calls.h dojump.h emit-rtl.h explow.h
20977         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
20978         statistics.h stmt.h varasm.h.
20979         * loop-unroll.c: Likewise.
20980         * ubsan.c: Likewise.
20981         * tree-ssa-loop-prefetch.c: Include calls.h dojump.h emit-rtl.h explow.h
20982         expmed.h fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h
20983         stmt.h varasm.h.
20984         * dse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
20985         fixed-value.h function.h hashtab.h statistics.h stmt.h varasm.h.
20986         * tree-switch-conversion.c: Include calls.h dojump.h emit-rtl.h explow.h
20987         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
20988         statistics.h stmt.h.
20989         * generic-match-head.c: Include calls.h dojump.h emit-rtl.h explow.h
20990         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
20991         statistics.h stmt.h varasm.h.
20992         * gimple-match-head.c: Likewise.
20993         * lto-cgraph.c: Likewise.
20994         * lto-section-in.c: Likewise.
20995         * lto-streamer-in.c: Likewise.
20996         * lto-streamer-out.c: Likewise.
20997         * tree-affine.c: Likewise.
20998         * tree-cfg.c: Likewise.
20999         * tree-cfgcleanup.c: Likewise.
21000         * tree-if-conv.c: Likewise.
21001         * tree-into-ssa.c: Likewise.
21002         * tree-ssa-alias.c: Likewise.
21003         * tree-ssa-copyrename.c: Likewise.
21004         * tree-ssa-dse.c: Likewise.
21005         * tree-ssa-forwprop.c: Likewise.
21006         * tree-ssa-live.c: Likewise.
21007         * tree-ssa-math-opts.c: Likewise.
21008         * tree-ssa-pre.c: Likewise.
21009         * tree-ssa-sccvn.c: Likewise.
21010         * tree-tailcall.c: Likewise.
21011         * tree-vect-generic.c: Likewise.
21012         * tree-sra.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21013         fixed-value.h hashtab.h insn-config.h real.h rtl.h stmt.h varasm.h.
21014         * stor-layout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21015         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h.
21016         * varasm.c: Likewise.
21017         * coverage.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21018         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h
21019         varasm.h.
21020         * init-regs.c: Likewise.
21021         * ira.c: Likewise.
21022         * omp-low.c: Likewise.
21023         * stack-ptr-mod.c: Likewise.
21024         * tree-ssa-reassoc.c: Likewise.
21025         * tree-complex.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21026         fixed-value.h hashtab.h insn-config.h rtl.h statistics.h stmt.h
21027         varasm.h.
21028         * dwarf2cfi.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21029         fixed-value.h hashtab.h insn-config.h statistics.h stmt.h varasm.h.
21030         * shrink-wrap.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21031         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h.
21032         * recog.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21033         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h varasm.h.
21034         * tree-ssa-phiopt.c: Likewise.
21035         * config/darwin.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21036         fixed-value.h hashtab.h real.h statistics.h stmt.h.
21037         * config/fr30/fr30.c: Likewise.
21038         * config/frv/frv.c: Likewise.
21039         * expr.c: Likewise.
21040         * final.c: Likewise.
21041         * optabs.c: Likewise.
21042         * passes.c: Likewise.
21043         * simplify-rtx.c: Likewise.
21044         * stmt.c: Likewise.
21045         * toplev.c: Likewise.
21046         * var-tracking.c: Likewise.
21047         * gcse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21048         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
21049         * lower-subreg.c: Likewise.
21050         * postreload-gcse.c: Likewise.
21051         * ree.c: Likewise.
21052         * reginfo.c: Likewise.
21053         * store-motion.c: Likewise.
21054         * combine.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21055         fixed-value.h hashtab.h real.h stmt.h varasm.h.
21056         * emit-rtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21057         fixed-value.h hashtab.h statistics.h stmt.h.
21058         * dojump.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21059         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
21060         * except.c: Likewise.
21061         * explow.c: Likewise.
21062         * tree-dfa.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21063         fixed-value.h insn-config.h real.h rtl.h statistics.h stmt.h
21064         varasm.h.
21065         * gimple-fold.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21066         fixed-value.h insn-config.h real.h rtl.h statistics.h varasm.h.
21067         * tree-ssa-structalias.c: Likewise.
21068         * cfgexpand.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21069         fixed-value.h insn-config.h real.h statistics.h.
21070         * calls.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21071         fixed-value.h insn-config.h real.h statistics.h stmt.h.
21072         * bb-reorder.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21073         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
21074         * cfgbuild.c: Likewise.
21075         * function.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21076         fixed-value.h real.h rtl.h statistics.h stmt.h.
21077         * cfgrtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21078         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
21079         * dbxout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21080         fixed-value.h real.h statistics.h stmt.h.
21081         * auto-inc-dec.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21082         fixed-value.h real.h statistics.h stmt.h varasm.h.
21083         * cprop.c: Likewise.
21084         * modulo-sched.c: Likewise.
21085         * postreload.c: Likewise.
21086         * ccmp.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
21087         flags.h function.h hard-reg-set.h hashtab.h insn-config.h real.h
21088         statistics.h stmt.h varasm.h.
21089         * gimple-ssa-strength-reduction.c: Include calls.h dojump.h emit-rtl.h
21090         explow.h fixed-value.h flags.h hashtab.h insn-config.h real.h
21091         rtl.h statistics.h stmt.h varasm.h.
21092         * tree-ssa-loop-ivopts.c: Include calls.h dojump.h emit-rtl.h explow.h
21093         fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h stmt.h
21094         varasm.h.
21095         * expmed.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
21096         function.h hard-reg-set.h hashtab.h real.h statistics.h stmt.h
21097         varasm.h.
21098         * target-globals.c: Include calls.h dojump.h emit-rtl.h explow.h
21099         fixed-value.h function.h hashtab.h real.h statistics.h stmt.h
21100         varasm.h.
21101         * tree-ssa-address.c: Include calls.h dojump.h emit-rtl.h explow.h
21102         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
21103         * cfgcleanup.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
21104         function.h real.h statistics.h stmt.h varasm.h.
21105         * alias.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
21106         insn-config.h real.h statistics.h stmt.h.
21107         * dwarf2out.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
21108         statistics.h stmt.h.
21109         * config/nvptx/nvptx.c: Include dojump.h emit-rtl.h explow.h expmed.h
21110         fixed-value.h flags.h hard-reg-set.h insn-config.h real.h
21111         statistics.h stmt.h varasm.h.
21112         * gimplify.c: Include dojump.h emit-rtl.h explow.h expmed.h
21113         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h statistics.h.
21114         * asan.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
21115         flags.h hashtab.h insn-config.h real.h rtl.h statistics.h stmt.h.
21116         * ipa-devirt.c: Include dojump.h emit-rtl.h explow.h expmed.h
21117         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
21118         statistics.h stmt.h varasm.h.
21119         * ipa-polymorphic-call.c: Likewise.
21120         * config/aarch64/aarch64.c: Include dojump.h emit-rtl.h explow.h
21121         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
21122         statistics.h stmt.h.
21123         * config/c6x/c6x.c: Likewise.
21124         * config/aarch64/aarch64-builtins.c: Include dojump.h emit-rtl.h
21125         explow.h expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
21126         statistics.h stmt.h varasm.h.
21127         * ipa-prop.c: Include dojump.h emit-rtl.h explow.h expmed.h
21128         fixed-value.h hashtab.h insn-config.h real.h rtl.h statistics.h
21129         stmt.h varasm.h.
21130         * ipa-split.c: Likewise.
21131         * tree-eh.c: Likewise.
21132         * tree-ssa-dce.c: Likewise.
21133         * tree-ssa-loop-niter.c: Likewise.
21134         * tree-vrp.c: Likewise.
21135         * config/nds32/nds32-cost.c: Include dojump.h emit-rtl.h explow.h
21136         expmed.h fixed-value.h hashtab.h insn-config.h real.h statistics.h
21137         stmt.h.
21138         * config/nds32/nds32-fp-as-gp.c: Likewise.
21139         * config/nds32/nds32-intrinsic.c: Likewise.
21140         * config/nds32/nds32-isr.c: Likewise.
21141         * config/nds32/nds32-md-auxiliary.c: Likewise.
21142         * config/nds32/nds32-memory-manipulation.c: Likewise.
21143         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
21144         * config/nds32/nds32-predicates.c: Likewise.
21145         * config/nds32/nds32.c: Likewise.
21146         * config/cris/cris.c: Include dojump.h emit-rtl.h explow.h expmed.h
21147         fixed-value.h hashtab.h real.h statistics.h.
21148         * config/alpha/alpha.c: Include dojump.h emit-rtl.h explow.h expmed.h
21149         fixed-value.h hashtab.h real.h statistics.h stmt.h.
21150         * config/arm/arm.c: Likewise.
21151         * config/avr/avr.c: Likewise.
21152         * config/bfin/bfin.c: Likewise.
21153         * config/h8300/h8300.c: Likewise.
21154         * config/i386/i386.c: Likewise.
21155         * config/ia64/ia64.c: Likewise.
21156         * config/iq2000/iq2000.c: Likewise.
21157         * config/m32c/m32c.c: Likewise.
21158         * config/m32r/m32r.c: Likewise.
21159         * config/m68k/m68k.c: Likewise.
21160         * config/mcore/mcore.c: Likewise.
21161         * config/mep/mep.c: Likewise.
21162         * config/mips/mips.c: Likewise.
21163         * config/mn10300/mn10300.c: Likewise.
21164         * config/moxie/moxie.c: Likewise.
21165         * config/pa/pa.c: Likewise.
21166         * config/rl78/rl78.c: Likewise.
21167         * config/rx/rx.c: Likewise.
21168         * config/s390/s390.c: Likewise.
21169         * config/sh/sh.c: Likewise.
21170         * config/sparc/sparc.c: Likewise.
21171         * config/spu/spu.c: Likewise.
21172         * config/stormy16/stormy16.c: Likewise.
21173         * config/v850/v850.c: Likewise.
21174         * config/vax/vax.c: Likewise.
21175         * config/cr16/cr16.c: Include dojump.h emit-rtl.h explow.h expmed.h
21176         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
21177         * config/msp430/msp430.c: Likewise.
21178         * predict.c: Likewise.
21179         * value-prof.c: Likewise.
21180         * config/epiphany/epiphany.c: Include dojump.h emit-rtl.h explow.h
21181         expmed.h fixed-value.h hashtab.h statistics.h stmt.h.
21182         * config/microblaze/microblaze.c: Likewise.
21183         * config/nios2/nios2.c: Likewise.
21184         * config/rs6000/rs6000.c: Likewise.
21185         * tree.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
21186         insn-config.h real.h rtl.h statistics.h stmt.h.
21187         * cgraph.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
21188         insn-config.h real.h statistics.h stmt.h.
21189         * fold-const.c: Include dojump.h emit-rtl.h explow.h expmed.h
21190         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
21191         * tree-inline.c: Include dojump.h emit-rtl.h explow.h expmed.h
21192         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
21193         * builtins.c: Include dojump.h emit-rtl.h explow.h expmed.h
21194         fixed-value.h real.h statistics.h stmt.h.
21195         * config/arc/arc.c: Include dojump.h emit-rtl.h explow.h expmed.h
21196         fixed-value.h statistics.h stmt.h.
21197         * config/visium/visium.c: Include dojump.h emit-rtl.h explow.h expmed.h
21198         stmt.h.
21199
21200 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
21201
21202         * gengtype.c (create_user_defined_type): Workaround
21203         -Wmaybe-uninitialized false positives.
21204         * cse.c (fold_rtx): Likewise.
21205         * loop-invariant.c (gain_for_invariant): Likewise.
21206
21207 2015-01-15  Eric Botcazou  <ebotcazou@adacore.com>
21208
21209         * expr.c (expand_expr_real_1) <normal_inner_ref>: Use the expression to
21210         set the memory attributes in all cases but clear MEM_EXPR if need be.
21211
21212 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
21213
21214         PR tree-optimization/64434
21215         * cfgexpand.c (reorder_operands): New function.
21216         (expand_gimple_basic_block): Insert call of reorder_operands if
21217         optimized is true.
21218
21219 2015-01-15  Matthew Fortune  <matthew.fortune@imgtec.com>
21220
21221         * config/mips/micromips.md (*swp): Remove explicit parallel.
21222         (jraddiusp, *movep<MOVEP1:mode><MOVEP2:mode>): Likewise.
21223         * config/mips/mips-dsp.md (add<DSPV:mode>3): Likewise.
21224         (mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>, sub<DSPV:mode>3): Likewise.
21225         (mips_sub<DSP:dspfmt1>_s_<DSP:dspfmt2>, mips_addsc): Likewise.
21226         (mips_addwc, mips_absq_s_<DSPQ:dspfmt2>): Likewise.
21227         (mips_precrq_rs_ph_w, mips_precrqu_s_qb_ph): Likewise.
21228         (mips_shll_<DSPV:dspfmt2>, mips_shll_s_<DSPQ:dspfmt2>): Likewise.
21229         (mips_muleu_s_ph_qbl, mips_muleu_s_ph_qbr): Likewise.
21230         (mips_mulq_rs_ph, mips_muleq_s_w_phl, mips_muleq_s_w_phr): Likewise.
21231         (mips_dpaq_s_w_ph, mips_dpsq_s_w_ph, mips_mulsaq_s_w_ph): Likewise.
21232         (mips_dpaq_sa_l_w, mips_dpsq_sa_l_w, mips_maq_s_w_phl): Likewise.
21233         (mips_maq_s_w_phr, mips_maq_sa_w_phl, mips_maq_sa_w_phr): Likewise.
21234         (mips_extr_w, mips_extr_r_w, mips_extr_rs_w): Likewise.
21235         (mips_extr_s_h, mips_extp, mips_extpdp, mips_mthlip): Likewise.
21236         (mips_wrdsp): Likewise.
21237         * config/mips/mips-dspr2.md (mips_absq_s_qb): Remove explicit
21238         parallel.
21239         (mips_addu_ph, mips_addu_s_ph, mips_cmpgdu_eq_qb): Likewise.
21240         (mips_cmpgdu_lt_qb, mips_cmpgdu_le_qb, mulv2hi3): Likewise.
21241         (mips_mul_s_ph, mips_mulq_rs_w, mips_mulq_s_ph): Likewise.
21242         (mips_mulq_s_w, mips_subu_ph, mips_subu_s_ph): Likewise.
21243         (mips_dpaqx_s_w_ph, mips_dpaqx_sa_w_ph): Likewise.
21244         (mips_dpsqx_s_w_ph, mips_dpsqx_sa_w_ph): Likewise.
21245         * config/mips/mips-fixed.md (usadd<mode>3): Remove explicit parallel.
21246         (ssadd<mode>3, ussub<mode>3, sssub<mode>3, ssmul<mode>3): Likewise.
21247         (ssmaddsqdq4, ssmsubsqdq4): Likewise.
21248
21249 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
21250
21251         * config/mips/mips.c (mips_rtx_costs): Set costs for LSA/DLSA.
21252         (mips_print_operand): Support 'y' to print exact log2 in decimal
21253         of a const_int.
21254         * config/mips/mips.h (ISA_HAS_LSA): New define.
21255         (ISA_HAS_DLSA): Likewise.
21256         * config/mips/mips.md (<GPR:d>lsa): New define_insn.
21257         * config/mips/predicates.md (const_immlsa_operand): New predicate.
21258
21259 2015-01-15  Martin Liska  <mliska@suse.cz>
21260
21261         PR target/64377
21262         * optc-save-gen.awk: Add support for array types.
21263
21264 2015-01-15  Richard Biener  <rguenther@suse.de>
21265
21266         PR middle-end/64365
21267         * tree-data-ref.c (dr_analyze_indices): Make sure that accesses
21268         for MEM_REF access functions with the same base can never partially
21269         overlap.
21270
21271 2015-01-14  Marcos Diaz <marcos.diaz@tallertechnologies.com>
21272
21273         * common.opt: New option -fstack-protector-explicit.
21274         * cfgexpand.c (SPCT_FLAG_EXPLICIT): New enum.
21275         (stack_protect_decl_phase): Handle stack_protect attribute for
21276         explicit stack protection requests.
21277         (expand_used_vars): Similarly.
21278         * doc/cpp.texi (__SSP_EXPLICIT__): Document predefined macro.
21279         * doc/extend.texi: Add documentation for "stack_protect" attribute.
21280         * doc/invoke.texi: Add documentation for -fstack-protector-explicit.
21281
21282 2015-01-14  Oleg Endo  <olegendo@gcc.gnu.org>
21283
21284         PR target/53988
21285         * config/sh/sh-protos.h (sh_find_set_of_reg): Add option to ignore
21286         reg-reg copies.
21287         (sh_extending_set_of_reg): New struct.
21288         (sh_find_extending_set_of_reg, sh_split_tst_subregs,
21289         sh_remove_reg_dead_or_unused_notes): New Declarations.
21290         * config/sh/sh.c (sh_remove_reg_dead_or_unused_notes,
21291         sh_find_extending_set_of_reg, sh_split_tst_subregs,
21292         sh_extending_set_of_reg::use_as_extended_reg): New functions.
21293         * config/sh/sh.md (*tst<mode>_t_zero): Rename to *tst<mode>_t_subregs,
21294         convert to insn_and_split and use new function sh_split_tst_subregs.
21295
21296 2015-01-14  Sandra Loosemore  <sandra@codesourcery.com>
21297
21298         * doc/invoke.texi (Option Summary): Reclassify -fuse-ld as a linker
21299         option.
21300         (Optimization Options): Move -fuse-ld documentation to...
21301         (Link Options): ...here.
21302
21303 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
21304
21305         * config/mips/constraints.md (ZC): Add support for R6 LL/SC
21306         offsets.
21307         (ZD): Update to use ISA_HAS_9BIT_DISPLACEMENT.
21308         * config/mips/mips.h (ISA_HAS_PREFETCH_9BIT): Rename to...
21309         (ISA_HAS_9BIT_DISPLACEMENT): ... this. New macro.
21310         * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZC
21311         instead of ZR for the memory operand of LL/SC.
21312         (compare_and_swap_12, sync_add<mode>): Likewise.
21313         (sync_<optab>_12, sync_old_<optab>_12): Likewise.
21314         (sync_new_<optab>_12, sync_nand_12): Likewise.
21315         (sync_old_nand_12, sync_new_nand_12): Likewise.
21316         (sync_sub<mode>, sync_old_add<mode>): Likewise.
21317         (sync_old_sub<mode>, sync_new_add<mode>): Likewise.
21318         (sync_new_sub<mode>, sync_<optab><mode>): Likewise.
21319         (sync_old_<optab><mode>, sync_new_<optab><mode>"): Likewise.
21320         (sync_nand<mode>, sync_old_nand<mode>): Likewise.
21321         (sync_new_nand<mode>, sync_lock_test_and_set<mode>): Likewise.
21322         (test_and_set_12, atomic_compare_and_swap<mode>): Likewise.
21323         (atomic_exchange<mode>_llsc, atomic_fetch_add<mode>_llsc): Likewise.
21324         * doc/md.texi (ZC): Update description.
21325
21326 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
21327
21328         * builtins.c (expand_builtin_atomic_exchange): Remove error when
21329         memory model is CONSUME.
21330         (expand_builtin_atomic_compare_exchange, expand_builtin_atomic_load,
21331         expand_builtin_atomic_store): Change invalid memory model errors to
21332         warnings.
21333         (expand_builtin_atomic_clear): Change invalid model errors to warnings
21334         and issue warning for CONSUME.
21335
21336 2015-01-14  Aldy Hernandez  <aldyh@redhat.com>
21337
21338         * lto-cgraph: Update function comments for
21339         lto_symtab_encoder_encode_*.
21340
21341 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
21342
21343         * Makefile.in (site.exp): Do not set ENABLE_LTO.
21344
21345 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
21346
21347         * cgraphunit.c (ipa_passes): Remove argument from ipa_write_summaries.
21348         * lto-cgraph.c (select_what_to_stream): Remove argument, use
21349         lto_stream_offload_p instead.
21350         * lto-streamer.h (select_what_to_stream): Remove argument.
21351         * passes.c (ipa_write_summaries): Likewise.
21352         * tree-pass.h (ipa_write_summaries): Likewise.
21353
21354 2015-01-14  Richard Biener  <rguenther@suse.de>
21355
21356         PR tree-optimization/59354
21357         * tree-vect-slp.c (vect_build_slp_tree_1): Treat loads from
21358         groups larger than the slp group size as having gaps.
21359
21360 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
21361
21362         PR middle-end/59448
21363         * builtins.c (get_memmodel): Promote consume to acquire always.
21364
21365 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
21366
21367         PR target/64386
21368         * config/i386/i386.c (ix86_expand_sse_cmp): Handle V64QImode,
21369         V32HImode.
21370
21371 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
21372
21373         PR target/64393
21374         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET):
21375         Enable AVX512BW.
21376         (OPTION_MASK_ISA_AVX512BW_UNSET): Disable AVX512VBMI.
21377         * config/i386/i386.c (ix86_hard_regno_mode_ok): Don't check
21378         AVX512VBMI, as it implies AVX512BW.
21379
21380 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
21381
21382         PR target/64387
21383         * config/i386/sse.md (vec_unpacks_hi_v8sf): Fix predicate.
21384         (vec_unpacks_hi_v16sf): Ditto.
21385
21386 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21387
21388         * config/aarch64/arm_neon.h: Error out if AdvancedSIMD
21389         is not available.
21390
21391 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21392
21393         * doc/invoke.texi (mapcs): Mention deprecation.
21394         (mapcs-frame): Likewise.
21395
21396 2015-01-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
21397
21398         PR target/64453
21399         * config/arm/arm.c (callee_saved_reg_p): Define.
21400         (arm_compute_save_reg0_reg12_mask): Use callee_saved_reg_p to check if
21401         register is callee saved instead of !call_used_regs[reg].
21402         (thumb1_compute_save_reg_mask): Likewise.
21403
21404 2015-01-14  Hale Wang  <hale.wang@arm.com>
21405
21406         * config/arm/arm.c: Tune the max_cond_insns/branch_cost for
21407         Cortex-M7.
21408
21409 2015-01-14  Richard Biener  <rguenther@suse.de>
21410
21411         PR lto/64415
21412         * tree-inline.c (insert_debug_decl_map): Check destination
21413         function MAY_HAVE_DEBUG_STMTS.
21414         (insert_init_debug_bind): Likewise.
21415         (insert_init_stmt): Remove redundant check.
21416         (remap_gimple_stmt): Drop debug stmts if the destination
21417         function has var-tracking assignments disabled.
21418
21419 2015-01-14  Martin Liska  <mliska@suse.cz>
21420
21421         * ipa-icf-gimple.c (func_checker::compare_operand): Add support for
21422         IMAGPART_EXPR and REALPART_EXPR and fix BIT_FIELD_REF comparison.
21423
21424 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21425
21426         PR target/64460
21427         * config/arm/arm.md (*<arith_shift_insn>_multsi): Set 'shift' to 2.
21428         (*<arith_shift_insn>_shiftsi): Set 'shift' attr to 3.
21429
21430 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
21431
21432         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Only infer an ISA
21433         level from an ARCH; do not inject the default.
21434         (MIPS_DEFAULT_ISA_LEVEL_SPEC): New macro split out from
21435         MIPS_ISA_LEVEL_SPEC.
21436         (MIPS_ISA_NAN2008_SPEC): Update comment.
21437         (BASE_DRIVER_SELF_SPECS): Likewise.
21438         * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Add
21439         MIPS_DEFAULT_ISA_LEVEL_SPEC.
21440         * config/mips/mti-elf.h (DRIVER_SELF_SPECS): Likewise.
21441         * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Likewise.
21442         * config/mips/sde.h (DRIVER_SELF_SPECS): Likewise.
21443
21444 2015-01-14  Richard Biener  <rguenther@suse.de>
21445
21446         PR tree-optimization/64493
21447         PR tree-optimization/64495
21448         * tree-vect-loop.c (vect_finalize_reduction): For double-reductions
21449         assign the proper vectorized PHI to the inner loop exit PHIs.
21450
21451 2015-01-14  Joey Ye  <joey.ye@arm.com>
21452
21453         * config/arm/arm.c (arm_compute_save_reg_mask):
21454         Do not save lr in case of tail call.
21455         * config/arm/thumb2.md (*thumb2_pop_single): New pattern.
21456
21457 2015-01-14  Martin Uecker <uecker@eecs.berkeley.edu>
21458
21459         * tree-vrp.c (check_array_ref): Emit more warnings
21460         for warn_array_bounds >= 2.
21461         * common.opt: New option -Warray-bounds=.
21462         * doc/invoke.texi: Document -Warray-bounds=.
21463
21464 2015-01-14  Chung-Ju Wu  <jasonwucj@gmail.com>
21465
21466         * config/nds32/nds32.opt (mforce-fp-as-gp): Remove.
21467         (mforbid-fp-as-gp): Remove.
21468         (mex9): Remove.
21469         * config/nds32/nds32-fp-as-gp.c (nds32_have_prologue_p): Remove.
21470         (nds32_symbol_load_store_p): Remove.
21471         (nds32_fp_as_gp_check_available): Clean up implementation.
21472         * config/nds32/nds32.h (LINK_SPEC): Remove -mforce-as-gp and -mex9
21473         cases.
21474         * config/nds32/nds32.c (nds32_asm_file_start): No need to consider
21475         fp-as-gp and ex9 cases.
21476
21477 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
21478
21479         * tree-profile.c (init_ic_make_global_vars): Drop workaround
21480         for bintuils bug 14342.
21481         (init_ic_make_global_vars): Likewise.
21482         (gimple_init_edge_profiler): Likewise.
21483         (gimple_gen_ic_func_profiler): Likewise.
21484
21485 2015-01-13  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
21486
21487         * ipa-inline.c (inline_small_functions): Swap the operands in
21488         enum.
21489
21490 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
21491
21492         PR ipa/64481
21493         * ipa-inline-analysis.c (node_growth_cache): Remove.
21494         (initialize_growth_caches): Do not initialize it.
21495         (free_growth_caches): Do not free it.
21496         (do_estimate_growth): Rename to ...
21497         (estimate_growth): ... this one; drop growth cache code.
21498         (growth_likely_positive): Always go the heuristics way.
21499         * ipa-inline.c (can_inline_edge_p): Walk through aliases.
21500         (reset_edge_caches): Do not reset node growth.
21501         (heap_edge_removal_hook): Do not maintain cache.
21502         (inline_small_functions): Likewise; strenghten sanity check.
21503         (ipa_inline): Do not maintain caches.
21504         * ipa-inline.h (node_growth_cache): Remove.
21505         (do_estimate_growth): Remove to ...
21506         (estimate_growth): this one; remove inline version.
21507         (reset_node_growth_cache): Remove.
21508
21509 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
21510
21511         PR ipa/64565
21512         * ipa-inline.c (inline_small_functions): Update callee keys after
21513         resolving speculation
21514         (inline_small_functions): Always check monotonicity of the queue.
21515
21516 2015-01-13  Marek Polacek  <polacek@redhat.com>
21517
21518         PR middle-end/64391
21519         * trans-mem.c (get_attrs_for): Return NULL_TREE if X is NULL_TREE.
21520
21521 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
21522
21523         PR rtl-optimization/64286
21524         * ree.c (combine_reaching_defs): Move part of comment earlier,
21525         remove !SCALAR_INT_MODE_P check.
21526         (add_removable_extension): Don't add vector mode
21527         extensions if all uses of the source register aren't the same
21528         vector extensions.
21529
21530 2015-01-13  Renlin Li  <renlin.li@arm.com>
21531
21532         * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO): Return 2.
21533         (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
21534
21535 2015-01-13  Martin Liska  <mliska@suse.cz>
21536
21537         * ipa-icf.c (sem_function::equals_private): Call new functions
21538         cl_target_option_print_diff and cl_optimization_print_diff.
21539         * optc-save-gen.awk (cl_target_option_print_diff): New function.
21540         (cl_optimization_print_diff): Likewise.
21541         * opth-gen.awk: Likewise.
21542
21543 2015-01-13  Richard Sandiford  <richard.sandiford@arm.com>
21544
21545         * config/aarch64/aarch64.md (subsi3, *subsi3_uxtw, subdi3)
21546         (*sub_<optab><ALLX:mode>_<GPI:mode>, *sub_<optab><SHORT:mode>_si_uxtw)
21547         (*sub_<optab><ALLX:mode>_shft_<GPI:mode>)
21548         (*sub_<optab><SHORT:mode>_shft_si_uxtw, *sub_<optab><mode>_multp2)
21549         (*sub_<optab>si_multp2_uxtw, *sub_uxt<mode>_multp2)
21550         (*sub_uxtsi_multp2_uxtw): Add stack pointer sources.
21551
21552 2015-01-13  Andrew Pinski  <apinski@cavium.com>
21553
21554         * config/aarch64/aarch64.c (fusion_load_store): Check dest mode
21555         instead of src mode.
21556
21557 2015-01-13  Richard Biener  <rguenther@suse.de>
21558
21559         PR lto/64373
21560         * lto-streamer-out.c (tree_is_indexable): Guard for NULL
21561         DECL_CONTEXT.
21562
21563 2015-01-13  Andrew Pinski  <apinski@cavium.com>
21564
21565         * config/aarch64/aarch64.c (aarch64_operands_ok_for_ldpstp): Reject
21566         volatile mems.
21567         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
21568
21569 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
21570
21571         PR middle-end/63974
21572         * cfgexpand.c (expand_computed_goto): Don't call
21573         convert_memory_address here.
21574
21575 2015-01-13  Richard Biener  <rguenther@suse.de>
21576
21577         PR tree-optimization/64406
21578         * tree-loop-distibution.c (pass_loop_distribution::execute):
21579         Reset the SCEV hashtable if we distributed anything.
21580
21581 2015-01-13  Richard Biener  <rguenther@suse.de>
21582
21583         PR tree-optimization/64404
21584         * tree-vect-stmts.c (vectorizable_load): Reject conflicting
21585         SLP types for CSEd loads.
21586
21587 2015-01-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
21588
21589         PR tree-optimization/64436
21590         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Move code performing the
21591         merge of two symbolic numbers for a bitwise OR to ...
21592         (perform_symbolic_merge): This. Also fix computation of the range and
21593         end of the symbolic number corresponding to the result of a bitwise OR.
21594
21595 2015-01-13  Richard Biener  <rguenther@suse.de>
21596
21597         PR tree-optimization/64568
21598         * tree-ssa-forwprop.c (pass_forwprop::execute): Properly
21599         release defs of removed stmts, avoid splitting TARGET_MEM_REFs.
21600
21601 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
21602
21603         * config/nds32/nds32.c (nds32_legitimate_address_p): Consider
21604         TARGET_CMODEL_LARGE and TARGET_CMODEL_MEDIUM cases.
21605
21606 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
21607
21608         * config/nds32/nds32.h (NDS32_SYMBOL_FLAG_RODATA): Define our own
21609         target-specific symbol_ref flag.
21610         (NDS32_SYMBOL_REF_RODATA_P): Define it to check if the symbol_ref
21611         resides in rodata section.
21612         * config/nds32/nds32.c (TARGET_ENCODE_SECTION_INFO): Define.
21613         (nds32_encode_section_info): New function.
21614
21615 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
21616
21617         * config/nds32/nds32.md (call): Use pseudo instruction bal which
21618         clobbers TA_REGNUM if large code model is specified.
21619         (call_register): Likewise.
21620         (call_immediate): Likewise.
21621         (call_value): Likewise.
21622         (call_value_register): Likewise.
21623         (call_value_immediate): Likewise.
21624
21625 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
21626
21627         * config/nds32/nds32.h (TARGET_CMODEL_SMALL): New macro.
21628         (TARGET_CMODEL_MEDIUM): New macro.
21629         (TARGET_CMODEL_LARGE): New macro.
21630         * config/nds32/nds32.c (nds32_asm_file_start): Display corresponding
21631         code model setting in assembly code.
21632
21633 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
21634
21635         * common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS):
21636         Remove MASK_GP_DIRECT flag.
21637         * config/nds32/nds32.h (MULTILIB_DEFAULTS): Have -mcmodel=medium as
21638         one of the multilib default options.
21639         * config/nds32/nds32.opt (mgp-direct): Remove.
21640         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Use -mcmodel instead of
21641         -mgp-direct.  We also remove unnecessary -mlittle-endian/-mbig-endian.
21642
21643 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
21644
21645         * config/nds32/nds32.opt (mcmodel): Add new option.
21646         * config/nds32/nds32-opts.h (nds32_cmodel_type): Add new enum type
21647         to describe code model.
21648
21649 2015-01-13  Oleg Endo  <olegendo@gcc.gnu.org>
21650
21651         PR target/64479
21652         * rtlanal.c (set_reg_p): Handle SEQUENCE constructs.
21653
21654 2015-01-12  Kaz Kojima  <kkojima@gcc.gnu.org>
21655
21656         * config/sh/sh.c (sh_atomic_assign_expand_fenv): New function.
21657         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
21658         (sh_builtin_get_fpscr, sh_builtin_set_fpscr): New variables.
21659         (sh_init_builtins): Record decls for __builtin_sh_get_fpscr and
21660         __builtin_sh_set_fpscr.
21661
21662 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
21663
21664         * doc/invoke.texi ([-Wsuggest-attribute=]): Don't use parentheses
21665         after a funtion name just to indicate it is a function.
21666         ([-fsanitize-undefined-trap-on-error]): Likewise.
21667         ([-fdbg-cnt=]): Likewise.
21668         ([-mmemcpy]): Likewise.
21669         ([-mflush-func]): Likewise.
21670         ([-msynci]): Likewise.
21671
21672 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
21673
21674         * doc/invoke.texi ([-Wbad-function-cast]): Rewrite to avoid confusing
21675         example.
21676
21677 2015-01-12  Jakub Jelinek  <jakub@redhat.com>
21678
21679         PR tree-optimization/64563
21680         * tree-vrp.c (vrp_evaluate_conditional): Check for VR_RANGE
21681         instead of != VR_VARYING.
21682
21683         PR target/64513
21684         * config/i386/i386.c (ix86_expand_prologue): Add
21685         REG_FRAME_RELATED_EXPR to %rax and %r10 pushes.
21686
21687         PR tree-optimization/64454
21688         * tree-vrp.c (simplify_div_or_mod_using_ranges): Optimize
21689         op0 % op1 into op0 if op0 is in range [-op1 + 1, op1 - 1]
21690         for signed or [0, op1 - 1] for unsigned modulo.
21691         (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
21692         even if op1 does not satisfy integer_pow2p.
21693
21694         PR other/64370
21695         * sreal.c (sreal::to_double): Use ldexp instead of scalbnl.
21696
21697 2015-01-12  Jeff Law  <law@redhat.com>
21698
21699         PR target/64461
21700         * config/m68k/m68k.md (truncsiqi2): Disable for TARGET_COLDFIRE.
21701         (trunchiqi2, truncsihi2): Similarly.
21702
21703         * config/h8300/h8300.c (Fpa): Use RTX_FRAME_RELATED_P directly
21704         rather than calling F.
21705
21706 2015-01-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>
21707
21708         * tsan.c (instrument_expr): Use force_gimple_operand.
21709         Use may_be_nonaddressable_p instead of is_gimple_addressable.
21710
21711 2015-01-12  Richard Biener  <rguenther@suse.de>
21712
21713         PR tree-optimization/64530
21714         * tree-loop-distribution.c (pg_add_dependence_edges): Shuffle
21715         back dr1.
21716
21717 2015-01-12  Richard Biener  <rguenther@suse.de>
21718
21719         PR middle-end/64357
21720         * tree-cfg.c (gimple_can_merge_blocks_p): Protect simple
21721         latches properly.
21722
21723 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21724
21725         * config/arm/arm.c (arm_cortex_a12_tune): Update entries to match
21726         Cortex-A17 tuning parameters.
21727         * config/arm/arm-cores.def (cortex-a12): Schedule for cortex-a17.
21728
21729 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21730
21731         * config/arm/arm-protos.h (tune_params): Add fuseable_ops field.
21732         * config/arm/arm.c (arm_macro_fusion_p): New function.
21733         (arm_macro_fusion_pair_p): Likewise.
21734         (TARGET_SCHED_MACRO_FUSION_P): Define.
21735         (TARGET_SCHED_MACRO_FUSION_PAIR_P): Likewise.
21736         (ARM_FUSE_NOTHING): Likewise.
21737         (ARM_FUSE_MOVW_MOVT): Likewise.
21738         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,
21739         arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,
21740         arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,
21741         arm_cortex_a53_tune, arm_cortex_a57_tune, arm_cortex_a9_tune,
21742         arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune
21743         arm_cortex_a5_tune): Specify fuseable_ops value.
21744
21745 2015-01-12  H.J. Lu  <hongjiu.lu@intel.com>
21746
21747         PR bootstrap/64561
21748         * configure.ac (HAVE_LD_PIE_COPYRELOC): Update Linux/x86-64 linker
21749         test for PIE with copy reloc.
21750         * configure: Regenerated.
21751
21752 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21753
21754         * config/arm/arm.c (arm_load_tp): Use R0_REGNUM instead of constant 0
21755         in gen_rtx_REG.
21756         (arm_tls_descseq_addr): Likewise.
21757         (arm_gen_movmemqi): Likewise.
21758         (arm_expand_epilogue_apcs_frame): Likewise.
21759         (arm_expand_epilogue): Likewise.
21760         (arm_expand_prologue): Likewise.  Use R1_REGNUM instead of constant 1
21761         in gen_rtx_REG.
21762
21763 2015-01-12  Martin Liska  <mliska@suse.cz>
21764
21765         PR ipa/64550
21766         * ipa-icf-gimple.c (func_checker::compare_memory_operand): Compare
21767         volatility for correct operands.
21768
21769 2015-01-12  Martin Liska  <mliska@suse.cz>
21770
21771         * ipa-icf.c (sem_function::equals_wpa): Add indirect_calls as
21772         indication that a function is not leaf.
21773         (sem_function::compare_polymorphic_p): Likewise.
21774
21775 2015-01-12  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
21776
21777         * config/visium/visium.c: Add includes hashtab.h, hash-set.h,
21778         machmode.h, input.h, statistics.h, vec.h, double-int.h, real.h,
21779         fixed-value.h, alias.h, symtab.h, tree-core.h, wide-int.h, inchash.h,
21780         fold-const.h, tree-check.h.
21781
21782 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
21783
21784         PR ipa/63967
21785         PR ipa/64425
21786         * ipa-inline.c (compute_uninlined_call_time,
21787         compute_inlined_call_time): Use counts for extra precision when
21788         needed possible.
21789         (big_speedup_p): Fix formating.
21790         (RELATIVE_TIME_BENEFIT_RANGE): Remove.
21791         (relative_time_benefit): Remove.
21792         (edge_badness): Turn DECL_DISREGARD_INLINE_LIMITS into hint;
21793         merge guessed and read profile paths.
21794         (inline_small_functions): Count only !optimize_size functions into
21795         initial size; be more lax about sanity check when profile is used;
21796         be sure to update inlined function profile when profile is read.
21797
21798 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
21799
21800         PR ipa/63470
21801         * ipa-inline-analysis.c (inline_edge_duplication_hook): Adjust
21802         cost when edge becomes direct.
21803         * ipa-prop.c (make_edge_direct): Do not adjust when speculation
21804         is resolved or when introducing new speculation.
21805
21806 2015-01-12  Chen Gang  <gang.chen.5i5j@gmail.com>
21807
21808         PR ipa/64551
21809         PR ipa/64552
21810         * ipa-icf.c (sem_function::equals_private): Use '&&' instead of
21811         '||' to fix typo issue.
21812
21813         * gcc/tree.h (target_opts_for_fn): Check NULL_TREE since it can
21814         accept and return NULL.
21815
21816 2015-01-12  Martin Liska  <mliska@suse.cz>
21817
21818         * cgraph.c (cgraph_edge::remove_callee): Move function to header
21819         file for being inlined.
21820         (cgraph_set_edge_callee): Delete.
21821         (cgraph_edge::redirect_callee): Move function to header file
21822         for being inlined.
21823         (cgraph_edge::make_direct): Use new function.
21824         (cgraph_edge::dump_edge_flags): New function created from
21825         static dump_edge_flags function.
21826         (cgraph_node::dump): Use new function.
21827         (cgraph_edge::verify_count_and_frequency): New function created
21828         from verify_edge_count_and_frequency.
21829         (cgraph_edge::verify_corresponds_to_fndecl): New function created
21830         from verify_edge_corresponds_to_fndecl.
21831         (verify_edge_corresponds_to_fndecl): Delete.
21832         (cgraph_node::verify_node): Use new function.
21833         * cgraph.h (cgraph_edge::set_callee): New function.
21834         (cgraph_edge::dump_edge_flags): Likewise.
21835         (cgraph_edge::verify_corresponds_to_fndecl): Likewise.
21836
21837 2015-01-11  Jan Hubicka  <hubicka@ucw.cz>
21838
21839         * ipa-utils.c (estimate_function_body_sizes): Do not
21840         free node params when called late with early=true.
21841
21842 2015-01-11  James Greenhalgh  <james.greenhalgh@arm.com>
21843
21844         * doc/md.texi (Instruction Patterns): Rewrite text for
21845         clarity.
21846         (Example): Likewise.
21847
21848 2015-01-10  Sandra Loosemore  <sandra@codesourcery.com>
21849
21850         * doc/invoke.texi (Option Summary): Break long lines.
21851         [(-fdiagnostics-color)]: Put long literal in @smallexample
21852         instead of inline.
21853         [(-fsanitize-recover)]: Likewise.
21854         [(-fdump-rtl-split*)]: Rewrite to fix over-full hbox.
21855         [(-ffast-math)]: Likewise.
21856         [(--param max-inline-insns-recursive)]: Likewise.
21857         [(--param max-inline-recursive-depth)]: Likewise.
21858         [(-mno-text-section-literals)]: Likewise.
21859
21860 2015-01-10  Thomas Schwinge  <thomas@codesourcery.com>
21861
21862         * doc/install.texi: Update for libgomp being renamed from "GNU
21863         OpenMP Runtime Library" to "GNU Offloading and Multi Processing
21864         Runtime Library".
21865         * doc/sourcebuild.texi: Likewise.
21866
21867 2015-01-10  Anthony Green  <green@moxielogic.com>
21868
21869         * config/moxie/moxie.c (moxie_option_override): Fix forcing of
21870         mul.x availability for moxiebox configuration.
21871
21872 2015-01-09  Anthony Green  <green@moxielogic.com>
21873
21874         * config/moxie/moxie.md: Tabify assembly output.
21875
21876 2015-01-09  Anthony Green  <green@moxielogic.com>
21877
21878         * config/moxie/moxie.md (CC_REG): Correct register definition.
21879
21880 2015-01-09  Sandra Loosemore  <sandra@codesourcery.com>
21881
21882         * doc/invoke.texi ([-fvtable-verify]): Copy-edit and fix markup.
21883         ([-fvtv-debug], [-fvtv-counts]): Likewise.  Correct location
21884         of log files.
21885
21886 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
21887
21888         * config/arm/arm.h (MAX_SYNC_LIBFUNC_SIZE): Delete semicolon.
21889
21890 2015-01-09  Bernd Schmidt  <bernds@codesourcery.com>
21891             Jakub Jelinek  <jakub@redhat.com>
21892
21893         PR middle-end/64412
21894         * lto-streamer.h (lto_stream_offload_p): New declaration.
21895         * lto-streamer.c (lto_stream_offload_p): New variable.
21896         * cgraphunit.c (ipa_passes): Set lto_stream_offload_p
21897         at the same time as section_name_prefix.
21898         * lto-streamer-out.c (hash_tree): Don't hash TREE_TARGET_OPTION
21899         if lto_stream_offload_p.
21900         * tree-streamer-out.c (streamer_pack_tree_bitfields): Don't
21901         stream TREE_TARGET_OPTION if lto_stream_offload_p.
21902         (write_ts_function_decl_tree_pointers): Don't
21903         stream DECL_FUNCTION_SPECIFIC_TARGET if lto_stream_offload_p.
21904         * tree-streamer-in.c (unpack_value_fields): Don't stream
21905         TREE_TARGET_OPTION in if ACCEL_COMPILER.
21906         (lto_input_ts_function_decl_tree_pointers): Don't stream
21907         DECL_FUNCTION_SPECIFIC_TARGET in if ACCEL_COMPILER.
21908         * lto-opts.c (lto_write_options): Use lto_stream_offload_p
21909         instead of section_name_prefix string comparisons.
21910
21911 2015-01-09  Jakub Jelinek  <jakub@redhat.com>
21912
21913         PR rtl-optimization/64536
21914         * cfgrtl.c (rtl_tidy_fallthru_edge): Handle removal of degenerate
21915         tablejumps.
21916
21917 2015-01-09  Michael Collison  <michael.collison@linaro.org>
21918
21919         PR tree-optimization/64322
21920         * tree-vrp.c (extract_range_from_binary_expr_1): Attempt to derive
21921         range for RSHIFT_EXPR even if vr0 range is not VR_RANGE or is symbolic.
21922
21923 2015-01-09  Tom de Vries  <tom@codesourcery.com>
21924
21925         PR rtl-optimization/64539
21926         * regcprop.c (kill_clobbered_values): Factor out of ...
21927         (copyprop_hardreg_forward_1): ... here.  Use kill_clobbered_values
21928         instead of note_stores with kill_clobbered_value.
21929
21930 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
21931
21932          * ginclude/unwind-arm-common.h: Revert previous commit.
21933
21934 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
21935
21936         * config.gcc (arm*-*-freebsd*): New configuration.
21937         * config/arm/freebsd.h: New file.
21938         * config.host: Add extra components for arm*-*-freebsd*.
21939         * config/arm/arm.h: Introduce MAX_SYNC_LIBFUNC_SIZE.
21940         * config/arm/arm.c (arm_init_libfuncs): Use MAX_SYNC_LIBFUNC_SIZE.
21941
21942 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
21943
21944         * config/rs6000/rtems.h (CPP_OS_RTEMS_SPEC): Define __PPC_CPU_E6500__
21945         for -mcpu=e6500.
21946         * config/rs6000/t-rtems: Add e6500 multilibs.
21947
21948 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
21949
21950         * config/rs6000/t-rtems: Add -mno-spe to soft-float multilib for
21951         MPC8540.
21952
21953 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
21954
21955         * config/rs6000/t-rtems: Use MULTILIB_REQUIRED instead of
21956         MULTILIB_EXCEPTIONS.
21957
21958 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
21959
21960         * config/arm/t-rtems: Use MULTILIB_REQUIRED instead of
21961         MULTILIB_EXCEPTIONS.
21962
21963 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
21964
21965         * config/arm/t-rtems-eabi: Rename to...
21966         * config/arm/t-rtems: ...this.
21967         * config/arm/rtems-eabi.h: Rename to...
21968         * config/arm/rtems.h: ...this.
21969         * config.gcc (arm*-*-rtems*): Reflect changes above.
21970
21971 2015-01-09  Richard Biener  <rguenther@suse.de>
21972
21973         PR tree-optimization/64410
21974         * tree-ssa.c (non_rewritable_lvalue_p): Allow REALPART/IMAGPART_EXPR
21975         on the LHS.
21976         (execute_update_addresses_taken): Deal with that.
21977         * tree-ssa-forwprop.c (pass_forwprop::execute): Use component-wise
21978         loads/stores for complex variables.
21979
21980 2015-01-09  Martin Liska  <mliska@suse.cz>
21981
21982         * ipa-icf-gimple.c (func_checker::compare_ssa_name): Enhance SSA
21983         name comparison.
21984         (func_checker::compare_memory_operand): New function.
21985         (func_checker::compare_operand): Split case to newly
21986         added functions.
21987         (func_checker::compare_cst_or_decl): New function.
21988         (func_checker::compare_gimple_call): Identify
21989         memory operands.
21990         (func_checker::compare_gimple_assign): Likewise.
21991         * ipa-icf-gimple.h: New function.
21992
21993 2015-01-09  Martin Liska  <mliska@suse.cz>
21994
21995         PR ipa/64503
21996         * sreal.c (sreal::dump): Change unsigned format to signed for
21997         m_exp value.
21998         (sreal::to_double): Replace exp2 with scalbln.
21999
22000 2015-01-09  Martin Liska  <mliska@suse.cz>
22001
22002         * cgraphunit.c (cgraph_node::create_wrapper): Fix level of indentation.
22003         * ipa-icf.c (sem_function::equals_private): Add support for target and
22004         (sem_item_optimizer::merge_classes): Remove redundant function
22005         optimization flags comparison.
22006         * tree.h (target_opts_for_fn): New function.
22007
22008 2015-01-09  Tom de Vries  <tom@codesourcery.com>
22009
22010         * omp-low.c (expand_omp_for_static_chunk): Fix assert.
22011
22012 2015-01-09  Kito Cheng  <kito@0xlab.org>
22013
22014         PR rtl-optimization/64348
22015         * lra-constraints.c (split_reg): Fix caller-save store/restore
22016         instruction generation.
22017
22018 2015-01-08  John David Anglin  <danglin@gcc.gnu.org>
22019
22020         PR gcov-profile/61790
22021         * gcov-tool.c (do_rewrite): Use strtoll instead of atoll if host has
22022         long long.  Fallback to int64_t if host doesn't have long long and
22023         use strtol if int64_t is long.  Otherwise, use sscanf for conversion.
22024
22025 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
22026
22027         PR tree-optimization/63989
22028         * params.def (PARAM_MAX_TRACKED_STRLENS): Increment default
22029         from 1000 to 10000.
22030         * tree-ssa-strlen.c (get_strinfo): Moved earlier.
22031         (get_stridx): If we don't have a record for certain SSA_NAME,
22032         but it is POINTER_PLUS_EXPR of some SSA_NAME we do with
22033         constant offset, call get_stridx_plus_constant.
22034         (get_stridx_plus_constant): New function.
22035         (zero_length_string): Don't use get_stridx here.
22036
22037         PR target/55023
22038         PR middle-end/64388
22039         * dse.c (struct insn_info): Mention frame_read set also
22040         before reload for tail calls on some targets.
22041         (scan_insn): Revert 2014-12-22 change.  Set frame_read
22042         also before reload for tail calls if
22043         HARD_FRAME_POINTER_IS_ARG_POINTER.  Call add_wild_read
22044         instead of add_non_frame_wild_read for non-const/memset
22045         tail calls after reload.
22046
22047 2015-01-08  Jason Merrill  <jason@redhat.com>
22048
22049         * ubsan.c (do_ubsan_in_current_function): New.
22050         (pass_ubsan::gate): Use it.
22051         * ubsan.h: Declare it.
22052         * convert.c (convert_to_integer): Use it.
22053
22054 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
22055
22056         PR target/64338
22057         * config/i386/i386.c (ix86_expand_int_movcc): Don't reverse
22058         compare_code when it is unconditionally overwritten afterwards.
22059         Use ix86_reverse_condition instead of reverse_condition.  Don't
22060         change code if *reverse_condition* returned UNKNOWN and don't
22061         swap ct/cf and negate diff in that case.
22062
22063 2015-01-08  Mike Stump  <mikestump@comcast.net>
22064
22065         * tsan.c (pass_tsan::gate): Add no_sanitize_thread support.
22066         (pass_tsan_O0::gate): Likewise.
22067         * extend.texi (Function Attributes): Add no_sanitize_thread
22068         documentation.
22069
22070 2015-01-08  Thomas Schwinge  <thomas@codesourcery.com>
22071
22072         * builtins.def (DEF_GOMP_BUILTIN): Also consider flag_offload_abi
22073         for registering builtins.
22074         * config/i386/intelmic-mkoffload.c (prepare_target_image): Don't
22075         add -fopenmp to the argv_obstack used when invoking
22076         compile_for_target.
22077
22078         * config/i386/intelmic-mkoffload.c (compile_for_target): Always
22079         add "-m32" or "-m64" to argv_obstack.
22080         (generate_host_descr_file): Likewise, when invoking host_compiler.
22081         (main): Always add "-m elf_i386" or "-m elf_x86_64" when invoking
22082         ld.
22083
22084 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
22085
22086         * config/sh/sh-mem.cc: Use constant as second operand when emitting
22087         tstsi_t insns.
22088
22089 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
22090
22091         PR target/55212
22092         * config/sh/sh.md (*addsi3_compact): Emit reg-reg copy instead of
22093         constant load if constant operand fits into I08.
22094
22095 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
22096
22097         PR sanitizer/64336
22098         * tree.c (build2_stat): Fix up initialization of TREE_READONLY
22099         and TREE_THIS_VOLATILE for MEM_REFs.
22100         (build5_stat): Fix up initialization of TREE_READONLY and
22101         TREE_THIS_VOLATILE for TARGET_MEM_REFs.
22102
22103 2015-01-08  Kaz Kojima  <kkojima@gcc.gnu.org>
22104
22105         PR target/64533
22106         * config/sh/sh.md (*addsi3_compact): Use u constraint instead
22107         of r for the second alternative of the destination operand.
22108
22109 2015-01-07  Segher Boessenkool  <segher@kernel.crashing.org>
22110
22111         PR target/36557
22112         * config/rs6000/rs6000.md (*eqsi3_ext<mode>, *nesi3_ext<mode>): New.
22113
22114 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
22115
22116         * doc/invoke.texi ([-fvtable-verify]): Fix markup on option
22117         keywords.
22118         ([-fivar-visibility], [-fvisibility]): Likewise.
22119
22120 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
22121
22122         * doc/invoke.texi: Fix incorrect uses of @samp markup throughout
22123         the file where @code, @command, etc is more appropriate.
22124
22125 2015-01-06  Sandra Loosemore  <sandra@codesourcery.com>
22126
22127         * doc/invoke.texi (RS/6000 and PowerPC Options): Tidy formatting
22128         of -mrecip= documentation.
22129
22130 2015-01-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
22131
22132         PR target/64505
22133         * config/rs6000/rs6000.c (rs6000_secondary_reload): Return the
22134         correct reload handler if -m32 -mpowerpc64 is used.
22135
22136 2015-01-06  Tom de Vries  <tom@codesourcery.com>
22137
22138         * tree-ssa-tail-merge.c: Fix typo in struct same_succ_def comment.
22139
22140 2015-01-08  Christian Bruel  <christian.bruel@st.com>
22141
22142         PR target/64507
22143         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Check 0 length.
22144
22145 2015-01-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
22146
22147         PR tree-optimization/63259
22148         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Stop checking
22149         if optab exists for 16bit byteswap.
22150
22151 2015-01-06  Jakub Jelinek  <jakub@redhat.com>
22152
22153         * opts.c (common_handle_option): Add support for
22154         -fno-sanitize=all and -f{,no-}sanitize-recover=all.
22155         * doc/invoke.texi: Document -fno-sanitize=all,
22156         -f{,no-}sanitize-recover=all.  Document that
22157         -fsanitize=float-cast-overflow is not enabled
22158         by -fsanitize=undefined.  Fix up documentation
22159         of -f{,no-}sanitize-recover.
22160
22161 2015-01-06  Eric Botcazou  <ebotcazou@adacore.com>
22162
22163         * config.gcc: Add Visium support.
22164         * configure.ac: Likewise.
22165         * configure: Regenerate.
22166         * doc/extend.texi (interrupt attribute): Add Visium.
22167         * doc/invoke.texi: Document Visium options.
22168         * doc/install.texi: Document Visium target.
22169         * doc/md.texi: Document Visium constraints.
22170         * common/config/visium: New directory.
22171         * config/visium: Likewise.
22172
22173 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
22174
22175         * simplify-rtx.c (simplify_binary_operation_1): Handle more cases
22176         for the "(and X (ior (not X) Y) -> (and X Y)" transform.
22177
22178 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
22179
22180         * combine.c (combine_validate_cost): Do not count the cost of a
22181         split I2 twice.  Do not display it twice in the dump, either.
22182
22183 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
22184
22185         Revert parts of r219199.
22186         * doc/invoke.texi ([-Wliteral-suffix]): Restore markup on
22187         <inttypes.h>.
22188         ([-Wtraditional]): Restore markup on <limits.h>.
22189
22190 2015-01-05  Trevor Saunders  <tsaunders@mozilla.com>
22191
22192         PR c++/31397
22193         * doc/invoke.texi: Document -Wsuggest-override.
22194
22195 2015-01-05  Radovan Obradovic  <radovan.obradovic@imgtec.com>
22196
22197         PR rtl-optimization/64287
22198         * toplev.c (HAVE_epilogue, HAVE_prologue): Provide default.
22199         (process_options): Disable flag_ipa_ra if profiling.
22200
22201 2015-01-05  Eric Botcazou  <ebotcazou@adacore.com>
22202
22203         * config/nds32/nds32-peephole2.md: Do not mention define_peephole.
22204
22205 2015-01-05  Max Filippov  <jcmvbkbc@gmail.com>
22206
22207         * config/xtensa/xtensa.c (hwloop_optimize, hwloop_fail,
22208         hwloop_pattern_reg, xtensa_doloop_hooks, xtensa_reorg_loops):
22209         put under #if TARGET_LOOPS guard.
22210
22211 2015-01-05  Uros Bizjak  <ubizjak@gmail.com>
22212
22213         * config/i386/i386.c (output_387_binary_op): Use std::swap.
22214
22215 2015-01-05  Oleg Endo  <olegendo@gcc.gnu.org>
22216
22217         * rtlanal.c (refers_to_regno_p): Change return value from int to bool.
22218         * rtl.h (refers_to_regno_p): Add overload.
22219         * cse.c: Use it.
22220         * bt-load.c: Likewise.
22221         * combine.c: Likewise.
22222         * df-scan.c: Likewise.
22223         * sched-deps.c: Likewise.
22224         * config/s390/s390.c: Likewise.
22225         * config/m32r/m32r.c: Likewise.
22226         * config/rs6000/spe.md: Likewise.
22227         * config/rs6000/rs6000.c: Likewise.
22228         * config/pa/pa.c: Likewise.
22229         * config/stormy16/stormy16.c: Likewise.
22230         * config/cris/cris.c: Likewise.
22231         * config/arc/arc.md: Likewise.
22232         * config/arc/arc.c: Likewise.
22233         * config/sh/sh.md: Likewise.
22234         * config/sh/sh.c: Likewise.
22235         * config/frv/frv.c: Likewise.
22236
22237 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
22238
22239         PR sanitizer/64265
22240         * gimplify.c (gimplify_function_tree): Add TSAN_FUNC_EXIT internal
22241         call as cleanup of the whole body.
22242         * internal-fn.def (TSAN_FUNC_EXIT): New internal call.
22243         * tsan.c (replace_func_exit): New function.
22244         (instrument_func_exit): Moved earlier.
22245         (instrument_memory_accesses): Adjust TSAN_FUNC_EXIT internal calls.
22246         Call instrument_func_exit if no TSAN_FUNC_EXIT internal calls have
22247         been found.
22248         (tsan_pass): Don't call instrument_func_exit.
22249         * internal-fn.c (expand_TSAN_FUNC_EXIT): New function.
22250         * tree-inline.c (copy_bb): Drop TSAN_FUNC_EXIT internal calls during
22251         inlining.
22252
22253         PR sanitizer/64344
22254         * ubsan.h (ubsan_instrument_float_cast): Add ARG argument.
22255         * ubsan.c (ubsan_instrument_float_cast): Add ARG argument, pass
22256         it to libubsan handler instead of EXPR.  Fold comparisons earlier,
22257         if the result is integer_zerop, return NULL_TREE.
22258         * convert.c (convert_to_integer): Pass expr as ARG.
22259
22260         PR tree-optimization/64465
22261         * tree-inline.c (redirect_all_calls): During inlining
22262         clean up EH stmts and EH edges if redirect_call_stmt_to_callee
22263         changed the stmt to a non-throwing call.
22264
22265 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
22266
22267         * doc/invoke.texi: Fix incorrect uses of @code, @option, @samp,
22268         etc markup throughout the file.
22269
22270 2015-01-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
22271
22272         Enable experimental TSAN support for Ada.
22273         * tsan.c (instrument_expr): Handle VIEW_CONVERT_EXPR.
22274
22275 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
22276
22277         PR tree-optimization/64494
22278         * tree-ssa-loop-im.c (move_computations_dom_walker::before_dom): Also
22279         clear SSA_NAME_ANTI_RANGE_P flag.
22280
22281 2015-01-05  Marek Polacek  <polacek@redhat.com>
22282
22283         * doc/extend.texi (Arrays of Length Zero): Add missing comma.
22284
22285 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
22286
22287         Update copyright years.
22288
22289         * gcc.c (process_command): Update copyright notice dates.
22290         * gcov-dump.c: Ditto.
22291         * gcov.c: Ditto.
22292         * doc/cpp.texi: Bump @copying's copyright year.
22293         * doc/cppinternals.texi: Ditto.
22294         * doc/gcc.texi: Ditto.
22295         * doc/gccint.texi: Ditto.
22296         * doc/gcov.texi: Ditto.
22297         * doc/install.texi: Ditto.
22298         * doc/invoke.texi: Ditto.
22299
22300         * auto-profile.c, auto-profile.h: Fix up Copyright line.
22301
22302 2015-01-04  Sandra Loosemore  <sandra@codesourcery.com>
22303
22304         * doc/invoke.texi ([-fsized-deallocation]): Copy-edit to fix
22305         verb tense, etc.
22306         ([-fvtable-verify], [-fvtv-debug]): Likewise.
22307         ([-Wabi]): Likewise.
22308         ([-fmessage-length]): Likewise.
22309         ([-Wsuggest-final-types], [-Wsuggest-final-methods]): Likewise.
22310         ([-Wno-discarded-qualifiers]): Likewise.
22311         ([-Wnodiscarded-array-qualifiers]): Likewise.
22312         ([-Wno-virtual-move-assign]): Likewise.
22313         ([-fsanitize=address], [-fsanitize=thread]): Likewise.
22314         ([-fsanitize=leak], [-fsanitize=undefined]): Likewise.
22315         ([-fsanitize=unreachable], [-fsanitize-recover]): Likewise.
22316         ([-fsanitize-undefined-trap-on-error]): Likewise.
22317         ([-floop-interchange]): Likewise.
22318         ([-ftree-coalesce-inlined-vars]): Likewise.
22319         ([-fvect-cost-model]): Likewise.
22320         ([-flto]): Likewise.
22321         ([--param]): Likewise.
22322         (Spec Files): Likewise.
22323         ([-mstrict-align]): Likewise.
22324         ([-mfix-cortex-a53-835769]): Likewise.
22325         ([-march], [-mtune]): Likewise.
22326         ([-mpic-register]): Likewise.
22327         ([-munaligned-access]): Likewise.
22328         ([-msp8]): Likewise.
22329         (EIND and Devices with more than 128 Ki Bytes of Flash): Likewise.
22330         (AVR Built-in Macros): Likewise.
22331         ([-mpreferred-stack-boundary]): Likewise.
22332         ([-mtune-crtl]): Likewise.
22333         ([-mashf]): Likewise.
22334         ([-mmcu=]): Likewise.
22335         ([-minrt]): Likewise.
22336         ([-maltivec], [-maltivec=be], [-maltivec=le]): Likewise.
22337         ([-mupper-regs]): Likewise.
22338         ([-matomic-model]): Likewise.
22339         ([-mdiv]): Likewise.
22340         ([-mzdcbranch]): Likewise.
22341         ([-mdisable-callt]): Likewise.
22342         ([-msoft-float]): Likewise.
22343         ([-m8byte-align]): Likewise.
22344         ([-fstack-reuse]): Likewise.
22345
22346 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
22347
22348         * doc/invoke.texi ([-fprofile-generate], [-fprofile-use]):
22349         Fix markup, light copy-editing.
22350         ([-fauto-profile]): Rewrite to fix formatting and content
22351         problems.
22352
22353 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
22354
22355         * doc/invoke.texi ([-fisolate-erroneous-paths-dereference]):
22356         Copy-edit description.
22357         ([-fisolate-erroneous-paths-attribute]): Likewise.
22358         * common.opt (fisolate-erroneous-paths-dereference):
22359         Copy-edit description.
22360         (fisolate-erroneous-paths-attribute): Likewise.
22361
22362 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
22363
22364         * doc/invoke.texi ([-fsemantic-interposition]): Fix typos and
22365         tidy grammar.
22366
22367 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
22368
22369         * doc/invoke.texi ([-fplan9-extensions]): Add/fix @opindex.
22370         ([-fvtv-debug]): Likewise.
22371         ([-Wc++-compat]): Likewise.
22372         ([-Wc++11-compat]): Likewise.
22373         ([-Wc++14-compat]): Likewise.
22374         ([-Wno-sized-deallocation]): Likewise.
22375         ([-femit-class-debug-always]): Likewise.
22376         ([-femit-struct-debug-detailed]): Likewise.
22377         ([-fno-keep-inline-dllexport]): Likewise.
22378         ([-fira-algorithm]): Likewise.
22379         ([-fira-region]): Likewise.
22380         ([-flra-remat]): Likewise.
22381         ([-fipa-ra]): Likewise.
22382         ([-fhoist-adjacent-loads]): Likewise.
22383         ([-fisolate-erroneous-paths-dereference]): Likewise.
22384         ([-fisolate-erroneous-paths-attribute]): Likewise.
22385         ([-ftree-switch-conversion]): Likewise.
22386         ([-ftree-tail-merge]): Likewise.
22387         ([-ftree-loop-if-convert]): Likewise.
22388         ([-ftree-loop-if-convert-stores]): Likewise.
22389         ([-ftree-loop-distribution]): Likewise.
22390         ([-ftree-loop-distribute-patterns]): Likewise.
22391         ([-flto-compression-level]): Likewise.
22392         ([-flto-report]): Likewise.
22393         ([-flto-report-wpa]): Likewise.
22394         ([-fuse-linker-plugin]): Likewise.
22395         ([-mfix-cortex-a53-835769]): Likewise.
22396         ([-mno-fix-cortex-a53-835769]): Likewise.
22397         ([-mmmx]...[-mno-3dnow]): Remove the -mno- forms from the
22398         explicit listing; add a note to the discussion indicating they
22399         exist.  Reorder table to group similar options.  Add missing
22400         @opindex entries.  Add @need commands throughout the table to
22401         allow it to be split across multiple pages.
22402         ([-m8bit-idiv]): Fix @opindex.
22403         ([-mavx256-split-unaligned-load]): Likewise.
22404         ([-mavx256-split-unaligned-store]): Likewise.
22405         ([-mstack-protector-guard]): Likewise.
22406         ([-mcpu=]): Likewise.
22407         ([-mcpu]): Likewise.
22408         ([-mpointer-size=]): Likewise.
22409
22410 2015-01-03  John David Anglin  <danglin@gcc.gnu.org>
22411
22412         * config/pa/pa.md (decrement_and_branch_until_zero): Use `Q' constraint
22413         instead of `m' constraint.  Likewise for unnamed movb comparison
22414         patterns using reg_before_reload_operand predicate.
22415         * config/pa/predicates.md (reg_before_reload_operand): Tighten
22416         predicate to reject register index and LO_SUM DLT memory forms
22417         after reload.
22418
22419 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
22420
22421         * doc/invoke.texi (Option Summary): Fix spelling of
22422         -fdevirtualize-at-ltrans.
22423         ([-fdevirtualize]): Fix markup.
22424         ([-fdevirtualize-speculatively]): Fix typo.
22425         ([-fdevirtualize-at-ltrans]): Likewise.  Make description less
22426         implementor-speaky.
22427         * common.opt (fdevirtualize-at-ltrans): Likewise.
22428         * ipa-devirt.c: Fix typos in comments throughout the file.
22429         (ipa_devirt): Fix typos in format strings for dump output.
22430
22431 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
22432
22433         * doc/invoke.texi ([-fopt-info]): Fix markup, consolidate
22434         discussion of defaults, light copy-editing.
22435
22436 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
22437
22438         * tsan.c (instrument_expr): corrected previous checkin.
22439
22440 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
22441
22442         Instrument bit field and unaligned accesses for TSAN.
22443         * sanitizer.def (BUILT_IN_TSAN_READ_RANGE): New built-in function.
22444         (BUILT_IN_TSAN_WRITE_RANGE): New built-in function.
22445         * tsan.c (instrument_expr): Handle COMPONENT_REF and BIT_FIELD_REF.
22446         Use BUILT_IN_TSAN_READ_RANGE and BUILT_IN_TSAN_WRITE_RANGE for
22447         unaligned memory regions.
22448
22449 2015-01-01  Anthony Green  <green@moxielogic.com>
22450
22451         * config/moxie/predicates.md (moxie_general_movsrc_operand):
22452         Restrict move source register offsets to 16 bits.
22453 \f
22454 Copyright (C) 2015 Free Software Foundation, Inc.
22455
22456 Copying and distribution of this file, with or without modification,
22457 are permitted in any medium without royalty provided the copyright
22458 notice and this notice are preserved.